Skip to content
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

src: boxed double fields for V8 8.1 #358

Closed
wants to merge 2 commits into from

Conversation

mmarchini
Copy link
Contributor

V8 8.1 disabled unboxed double fieds, which means all double fields are
now stored on memory as references to HeapNumber objects instead of the
double value. In theory V8 could store boxed doubles before, but we
didn't take it into account in our dobule fields code. In the future, V8
intends to re-enable unboxed doubles, which means we'll need to add
logic to handle both types of fields in the same llnode session.

This also fixes a bug where llnode was not handling double fields at all
in some cases.

Fixes: #353
Signed-off-by: Matheus Marchini mmarchini@netflix.com

src/llv8-inl.h Outdated Show resolved Hide resolved
V8 8.1 disabled unboxed double fieds, which means all double fields are
now stored on memory as references to HeapNumber objects instead of the
double value. In theory V8 could store boxed doubles before, but we
didn't take it into account in our dobule fields code. In the future, V8
intends to re-enable unboxed doubles, which means we'll need to add
logic to handle both types of fields in the same llnode session.

This also fixes a bug where llnode was not handling double fields at all
in some cases.

Fixes: nodejs#353
Signed-off-by: Matheus Marchini <mmarchini@netflix.com>
@mmarchini
Copy link
Contributor Author

I'm getting the OS X failures on master as well, and we're also seeing it on the daily runs: https://github.com/nodejs/llnode/runs/603630513?check_suite_focus=true. I think something changed on OS X lldb output when running a program, because that's where the test is failing. Will open an issue to investigate. In the meantime, llnode should still work on OS X, but we don't have coverage until the issue is resolved.

mmarchini added a commit that referenced this pull request Apr 21, 2020
V8 8.1 disabled unboxed double fieds, which means all double fields are
now stored on memory as references to HeapNumber objects instead of the
double value. In theory V8 could store boxed doubles before, but we
didn't take it into account in our dobule fields code. In the future, V8
intends to re-enable unboxed doubles, which means we'll need to add
logic to handle both types of fields in the same llnode session.

This also fixes a bug where llnode was not handling double fields at all
in some cases.

Fixes: #353
Signed-off-by: Matheus Marchini <mmarchini@netflix.com>

PR-URL: #358
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
@mmarchini
Copy link
Contributor Author

Landed in dd57bfb

@mmarchini mmarchini closed this Apr 22, 2020
mmarchini added a commit to mmarchini/llnode that referenced this pull request Apr 27, 2020
Notable Changes:

  - Added support for Node.js v14

Commits:

  * [[`4918962bee`](nodejs@4918962bee)] - **build**: add v14 to the test matrix (Matheus Marchini) [nodejs#361](nodejs#361)
  * [[`c86eb4356c`](nodejs@c86eb4356c)] - **src**: update RegExp type constant for V8 8.1 (Matheus Marchini) [nodejs#361](nodejs#361)
  * [[`dd57bfb8af`](nodejs@dd57bfb8af)] - **src**: boxed double fields for V8 8.1 (Matheus Marchini) [nodejs#358](nodejs#358)
  * [[`fdddce0d2c`](nodejs@fdddce0d2c)] - **doc**: fix supported version comment on README (Matheus Marchini) [nodejs#356](nodejs#356)
  * [[`7b9598e9da`](nodejs@7b9598e9da)] - **tools**: git ignore core dumps (Matheus Marchini) [nodejs#308](nodejs#308)
  * [[`8e2a55c82e`](nodejs@8e2a55c82e)] - **src**: update SFI script accessor for V8 8.1 (Matheus Marchini) [nodejs#352](nodejs#352)
  * [[`364e034686`](nodejs@364e034686)] - **src**: fix some warnings and erroneous PRINT\_DEBUG (Matheus Marchini) [nodejs#354](nodejs#354)
  * [[`461e83aa0c`](nodejs@461e83aa0c)] - **src**: improve Error message on LoadPtr (Matheus Marchini) [nodejs#351](nodejs#351)
  * [[`1948512b5e`](nodejs@1948512b5e)] - **tools**: add script with commands to facilitate dev (Matheus Marchini) [nodejs#339](nodejs#339)
mmarchini added a commit that referenced this pull request May 4, 2020
Notable Changes:

  - Added support for Node.js v14

Commits:

  * [[`4918962bee`](4918962bee)] - **build**: add v14 to the test matrix (Matheus Marchini) [#361](#361)
  * [[`c86eb4356c`](c86eb4356c)] - **src**: update RegExp type constant for V8 8.1 (Matheus Marchini) [#361](#361)
  * [[`dd57bfb8af`](dd57bfb8af)] - **src**: boxed double fields for V8 8.1 (Matheus Marchini) [#358](#358)
  * [[`fdddce0d2c`](fdddce0d2c)] - **doc**: fix supported version comment on README (Matheus Marchini) [#356](#356)
  * [[`7b9598e9da`](7b9598e9da)] - **tools**: git ignore core dumps (Matheus Marchini) [#308](#308)
  * [[`8e2a55c82e`](8e2a55c82e)] - **src**: update SFI script accessor for V8 8.1 (Matheus Marchini) [#352](#352)
  * [[`364e034686`](364e034686)] - **src**: fix some warnings and erroneous PRINT\_DEBUG (Matheus Marchini) [#354](#354)
  * [[`461e83aa0c`](461e83aa0c)] - **src**: improve Error message on LoadPtr (Matheus Marchini) [#351](#351)
  * [[`1948512b5e`](1948512b5e)] - **tools**: add script with commands to facilitate dev (Matheus Marchini) [#339](#339)

PR-URL: #363
@coveralls
Copy link

Pull Request Test Coverage Report for Build 9511bb421bb4df96d018a874520e473a17913615-PR-358

Warning: This coverage report may be inaccurate.

We've detected an issue with your CI configuration that might affect the accuracy of this pull request's coverage report.
To ensure accuracy in future PRs, please see these guidelines.
A quick fix for this PR: rebase it; your next report should be accurate.

  • 29 of 38 (76.32%) changed or added relevant lines in 5 files are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage increased (+4.1%) to 79.014%

Changes Missing Coverage Covered Lines Changed/Added Lines %
src/llv8.cc 3 6 50.0%
src/llv8-inl.h 18 24 75.0%
Totals Coverage Status
Change from base Build fdddce0d2c7d15993584ec828569b94d61ac374a: 4.1%
Covered Lines: 3758
Relevant Lines: 4743

💛 - Coveralls

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.

Double-check unused Double Field code
4 participants