-
-
Notifications
You must be signed in to change notification settings - Fork 410
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
Use NaN-boxing on value::InnerValue #4091
Open
hansl
wants to merge
29
commits into
boa-dev:main
Choose a base branch
from
hansl:nan_box
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+1,310
−493
Open
Changes from 1 commit
Commits
Show all changes
29 commits
Select commit
Hold shift + click to select a range
6d3d9db
Start of nan boxing values
hansl c64417d
Continuing, but this endian thing is not helping
hansl e357908
Finish the boxing and add tests
hansl d16a546
Better tests and fixing a couple of bugs
hansl e2496c3
Rollback changes outside of core/engine/src/value/...
hansl 683444e
Fix Drop::drop and clippies
hansl 9d1ac9f
Move MSRV to 1.83
hansl 167d634
Move MSRV back to 1.82 and impl missing const fn
hansl 2a68855
Fix a few clippies and ignore the one thats wrong
hansl 56d513a
Merge branch 'main' into nan_box
hansl c7cd8b0
WIP
hansl 52fc103
Duh!
hansl 084b25e
Merge remote-tracking branch 'upstream/main' into nan_box
hansl 345cd69
Oops
hansl 710d8f1
Clippies
hansl c6d0669
refactor bit-masks and ranges
hansl 7ae9352
Merge remote-tracking branch 'upstream/main' into nan_box
hansl ad64fd9
NAN is not null_ptr and clippies
hansl ac171fe
Move all magic numbers and bits to the bits private module
hansl 8789d55
Merge remote-tracking branch 'upstream/main' into nan_box
hansl ec32abd
Implement both enum-based and nan-boxed JsValue inner behind a flag
hansl 40d5e5c
Clippies
hansl e647385
Remove debug logging
hansl 69bbf82
Some simple attempts to improve performance with NonNull
hansl ca9f657
Use top 2 bits for pointer tagging, speeding up as_variant
hansl e29cedb
Remove the feature flag for NaN boxing now that were closer in perf
hansl c949461
Add a bits section to explain the scheme
hansl c21c886
Inline ALL THE THINGS - slight increase in perf
hansl 5d406c7
Merge branch 'main' into nan_box
hansl File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So in the pointer space we only have 1 unused slot left right which is
7FF8
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
7FF8
(orb0111_1111_1111_1000
) is used by bigint if the pointer is non-null. The 16th MSB isn't used (yet?), so pointers are actually 48 bits (I'll correct the comment).There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let me know if the commit helps clarifying this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes sorry I meant to ask if 7FFF is unused and reserved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is unused and reserved for now.