-
-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Upgrade to LevelDB 1.21 or 1.22 #109
Comments
google/crc32c looks great, benchmarks: google/leveldb@5c39524 |
Somewhat related: I attempted switching to cmake-js to build latest leveldb (master) in my fork. I seems to work OK for MacOS and Linux, I did not try that on other platforms and I am sure I am missing some things that are obvious to people more familiar with the project. For what it's worth cmake builds seem to be easy: snappy and crc32c already use cmake, which makes our CMakeLists.txt look... uncomplicated (at least compared to what I see in .gyp files). Latest prebuild (and prebuild-install) works with cmake-js as well. In any case, feel free to pick up any useful stuff. |
I guess now we have to add |
A rough description of tasks (feel free to edit):
|
Got any details on the cmake-js flaky problems? We've been discussing the future of gyp and node-gyp and cmake-js came up as something that we might encourage as an option but I have no experience with it. |
@rvagg I have no experience as a user of |
In addition of the change from The patches to LevelDB are likely not necessary anymore, as it's related to Edit: These can be defined in |
This just in on the LevelDB mailing list that I thought might be interesting for folks here.
From: Victor Costan
Hi everyone!
For planning purposes, please know that the upcoming leveldb release (1.21) will introduce significant changes to the build process. As always, the API will remain backwards-compatible.
The build system will be switched to CMake.
Configuration macros will change to reflect CMake conventions. (example: HAVE_SNAPPY instead of SNAPPY)
Building the library will require C++11 support.
A new optional dependency will be added, google/crc32c.
Some of the changes above are still under development, while others have already landed on master. I hope this information will help you plan adopting the next release.
Probably just going to mean some GYP config hackery to adapt to the changes they introduce to make it CMake-idiomatic. The C++11 support is easy because Node core is fully C++11 since at least Node 4 and V8 keeps on pushing hard on that front (a little awkwardly in some cases). The google/crc32c dependency will be interesting, we may want to pull that in because I guess it'll add some nice extra error-checking capabilities.
The text was updated successfully, but these errors were encountered: