Skip to content

Conversation

@dherman
Copy link
Collaborator

@dherman dherman commented Sep 12, 2019

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.

@dherman
Copy link
Collaborator Author

dherman commented Sep 21, 2019

@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.

@dherman
Copy link
Collaborator Author

dherman commented Sep 22, 2019

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.

@dherman dherman mentioned this pull request Sep 24, 2019
26 tasks
@kjvalencik kjvalencik mentioned this pull request Sep 26, 2019
- 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
@dherman dherman force-pushed the napi-skeleton branch 3 times, most recently from 0d81b01 to 9b45458 Compare September 29, 2019 04:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants