-
Notifications
You must be signed in to change notification settings - Fork 290
Initial skeleton for N-API support. #440
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
Conversation
dae0393 to
7c00a74
Compare
a35ed9e to
e74ec5b
Compare
|
@kjvalencik I think this is ready for review now! If it would help I can leave in-place GitHub comments explaining what's going on in the PR. |
|
BTW my next step after we finish and merge this PR is to write a quest issue providing background, a task list, and documentation on how to contribute to the N-API port. My goal is to make the work as parallelizeable and as friendly to potential new contributors as possible. |
- Move `extern "C"` definitions into neon-sys - Enable dynamic symbol loading in macOS via neon-build so it happens even for `cargo build` in test/dynamic crate - Remove dynamic symbol loading flag from `neon build` command since it's now in neon-build - Use trybuild instead of compiletest for static tests to avoid stability issues - No longer require Rust nightly since trybuild works for Rust stable - Temporarily disable the package test until we publish a new version of neon-sys
…he Windows linkage info about neon-sys by saving them in text files from a build script within neon-build and then including them into constants.
- neon-runtime and neon-sys can enable both backends simultaneously - Create two mutually exclusive flags at top-level neon lib: napi-runtime and legacy-runtime - Enforce mutual exclusion with a compile_error! error - Disable all compiler warnings - Use nodejs-sys for N-API C bindings - Very simple wiring-up of napi_module_register
…napi_register_module_v1` symbol, as discussed here:
http://www.youtube.com/watch?v=rEHyMIwP020&t=15m29s
8c511e9 to
6d7cd7d
Compare
…ch is too unstable re: exact error messages).
0d81b01 to
9b45458
Compare
9b45458 to
d6c30a8
Compare
…tatic tests for all Rust versions except beta.
First step towards N-API support. This PR is exploring an implementation strategy with scaffolding to build N-API support behind a feature flag (
"napi-runtime"), allowing development to happen on master as we continue maintaining the existing codebase.What I've implemented so far is almost nothing: it's barely enough to support creating an empty module that basically does nothing when it's loaded. But from here, we can split up the work into incremental, separate chunks.