Skip to content

ffi: enable module by default - #65475

Merged
nodejs-github-bot merged 1 commit into
nodejs:mainfrom
mcollina:ffi-enable-by-default
Aug 28, 2026
Merged

ffi: enable module by default#65475
nodejs-github-bot merged 1 commit into
nodejs:mainfrom
mcollina:ffi-enable-by-default

Conversation

@mcollina

Copy link
Copy Markdown
Member

Enable node:ffi by default in builds with FFI support. Keep --experimental-ffi as a compatibility no-op and --no-experimental-ffi as an opt-out. The module remains experimental and continues to emit a warning when first loaded.

Enable node:ffi by default in builds with FFI support. Keep
--experimental-ffi as a compatibility no-op and --no-experimental-ffi as
an opt-out. Loading the module still emits an experimental warning.

Signed-off-by: Matteo Collina <hello@matteocollina.com>
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

Review requested:

  • @nodejs/performance

@nodejs-github-bot nodejs-github-bot added benchmark Issues and PRs related to Node.js benchmarks and benchmarking infrastructure. ffi Issues and PRs related to experimental Foreign Function Interface support. labels Aug 21, 2026
@codecov

codecov Bot commented Aug 22, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 90.13%. Comparing base (adad4d6) to head (4e019a2).
⚠️ Report is 121 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main   #65475      +/-   ##
==========================================
- Coverage   90.13%   90.13%   -0.01%     
==========================================
  Files         751      751              
  Lines      252405   252405              
  Branches    47464    47463       -1     
==========================================
- Hits       227508   227502       -6     
+ Misses      16213    16206       -7     
- Partials     8684     8697      +13     
Files with missing lines Coverage Δ
src/node_options.cc 79.64% <ø> (ø)
src/node_options.h 95.34% <100.00%> (+0.46%) ⬆️

... and 31 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@ShogunPanda ShogunPanda left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! 🚀

@mertcanaltin mertcanaltin left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@mcollina mcollina added the semver-minor PRs that contain new features and should be released in the next minor version. label Aug 23, 2026
@mcollina

Copy link
Copy Markdown
Member Author

Marking it as semver-minor because it's node:-prefixed.

@mcollina mcollina added the notable-change PRs with changes that should be highlighted in changelogs. label Aug 23, 2026
@github-actions

Copy link
Copy Markdown
Contributor

The notable-change PRs with changes that should be highlighted in changelogs. label has been added by @mcollina.

Please suggest a text for the release notes if you'd like to include a more detailed summary, then proceed to update the PR description with the text or a link to the notable change suggested text comment. Otherwise, the commit will be placed in the Other Notable Changes section.

@mcollina mcollina added the request-ci Add this label to start a Jenkins CI on a PR. label Aug 23, 2026
@github-actions github-actions Bot removed the request-ci Add this label to start a Jenkins CI on a PR. label Aug 23, 2026
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@benjamingr benjamingr left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

neat

@gurgunday gurgunday left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@mcollina mcollina added the commit-queue PRs queued for automated landing through the Commit Queue. label Aug 27, 2026
@nodejs-github-bot
nodejs-github-bot merged commit 9f04fcd into nodejs:main Aug 28, 2026
89 checks passed
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

Landed in 9f04fcd

@nodejs-github-bot nodejs-github-bot removed the commit-queue PRs queued for automated landing through the Commit Queue. label Aug 28, 2026
panva pushed a commit that referenced this pull request Aug 29, 2026
test-module-builtin-experimental was added in #65418 asserting that
node:ffi is unavailable without --experimental-ffi, but #65475 had
already enabled node:ffi by default in builds with FFI support. The two
landed independently and broke main.

Expect node:ffi to behave like node:sqlite: available by default with
the node: scheme, and gone when opted out with --no-experimental-ffi.

Refs: #65418
Refs: #65475
Signed-off-by: Matteo Collina <hello@matteocollina.com>
PR-URL: #65636
Reviewed-By: Filip Skokan <panva.ip@gmail.com>
aduh95 pushed a commit that referenced this pull request Aug 29, 2026
Enable node:ffi by default in builds with FFI support. Keep
--experimental-ffi as a compatibility no-op and --no-experimental-ffi as
an opt-out. Loading the module still emits an experimental warning.

Signed-off-by: Matteo Collina <hello@matteocollina.com>
PR-URL: #65475
Reviewed-By: Paolo Insogna <paolo@cowtech.it>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Filip Skokan <panva.ip@gmail.com>
Reviewed-By: Chemi Atlow <chemi@atlow.co.il>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Gürgün Dayıoğlu <hey@gurgun.day>
aduh95 pushed a commit that referenced this pull request Aug 29, 2026
test-module-builtin-experimental was added in #65418 asserting that
node:ffi is unavailable without --experimental-ffi, but #65475 had
already enabled node:ffi by default in builds with FFI support. The two
landed independently and broke main.

Expect node:ffi to behave like node:sqlite: available by default with
the node: scheme, and gone when opted out with --no-experimental-ffi.

Refs: #65418
Refs: #65475
Signed-off-by: Matteo Collina <hello@matteocollina.com>
PR-URL: #65636
Reviewed-By: Filip Skokan <panva.ip@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

benchmark Issues and PRs related to Node.js benchmarks and benchmarking infrastructure. ffi Issues and PRs related to experimental Foreign Function Interface support. notable-change PRs with changes that should be highlighted in changelogs. semver-minor PRs that contain new features and should be released in the next minor version.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants