Skip to content

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

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 mmarchini force-pushed the double-fields-v8-81 branch from 97b47a8 to d73decb Compare April 13, 2020 23:36
@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