-
-
Notifications
You must be signed in to change notification settings - Fork 35.4k
ABI compatibility tool #18159
Copy link
Copy link
Closed as not planned
Labels
help wantedIssues that need assistance from volunteers or PRs that need help to proceed.Issues that need assistance from volunteers or PRs that need help to proceed.stalestalledIssues and PRs that are stalled.Issues and PRs that are stalled.toolsIssues and PRs related to the tools directory.Issues and PRs related to the tools directory.v8 engineIssues and PRs related to the V8 dependency.Issues and PRs related to the V8 dependency.
Metadata
Metadata
Assignees
Labels
help wantedIssues that need assistance from volunteers or PRs that need help to proceed.Issues that need assistance from volunteers or PRs that need help to proceed.stalestalledIssues and PRs that are stalled.Issues and PRs that are stalled.toolsIssues and PRs related to the tools directory.Issues and PRs related to the tools directory.v8 engineIssues and PRs related to the V8 dependency.Issues and PRs related to the V8 dependency.
ABI stability is a hard requirement when upgrading V8 within the same Node branch. This is so that native modules that uses V8 APIs and built for a particular Node branch do not need to be rebuilt.
So far, we've been mostly ensured ABI stability through intensive eyeballing of changes to
deps/v8/include/*.hand by running CITGM. This is tedious and could yield false positives.I have played around a bit with this ABI compliance checker, requiring some tweaking of V8's build files and an additional GN arg (
use_debug_fission = false).Using that tool is fairly inconvenient, very slow (took me like some 20 minutes), and the result is not all that useful. It is a good start, but
v8/include.I'm neither an expert on DWARF nor on binary compatibility, so some contribution and help here would be greatly appreciated. Alternative here is to wait until every native module has migrated to n-api, but in the meantime...