Reimplement BigInt in terms of JSC/V8 code instead of GMP

RESOLVED FIXED in Firefox 66

Status

()

enhancement
P2
normal
RESOLVED FIXED
9 months ago
6 months ago

People

(Reporter: wingo, Assigned: wingo)

Tracking

(Blocks 1 bug)

Trunk
mozilla66
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox65 wontfix, firefox66 fixed)

Details

Attachments

(3 attachments)

Patch forthcoming to reimplement bignums in terms of JSC/V8 code.  Besides absolving us of a dependency, this has a couple more advantages:

 * Better out-of-memory handling; allocations can fail and will be handled by standard JSC mechanisms.
 * Inline digit storage for 64-bit values.
(See https://bugzilla.mozilla.org/show_bug.cgi?id=1494346 for more discussion.)
Attachment #9020713 - Attachment description: Bug 1502797 - Reimplement BigInt using V8/JSC code instead of GMP → Bug 1502796 - Reimplement BigInt using V8/JSC code instead of GMP
Assignee: nobody → wingo
Status: NEW → ASSIGNED
Priority: -- → P2
Attachment #9020713 - Attachment description: Bug 1502796 - Reimplement BigInt using V8/JSC code instead of GMP → Bug 1502797 - Reimplement BigInt using V8/JSC code instead of GMP
Attachment #9020712 - Flags: checkin?
Attachment #9020712 - Flags: checkin? → checkin+
Pushed by jorendorff@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/468165ff69b2
Remove redundant forward declarations of BigInt type r=jandem
Blocks: 1494346
See Also: → 1506542
FWIW I just landed https://hg.mozilla.org/integration/mozilla-inbound/rev/91c06aa99424f98be5d97d288216008d1c5698e9 which changes up the names of some of the FloatingPoint<double>::k* constants.  It is possible some of the constants used in the current patch, are better expressed using different idioms that rev implements.
...yeah yeah, I need to get to the request here.  Today, I hope?  Phabricator decided to Phabricate all over this with the initial comments all gone askew from the places that were actually changed accordingly, and when I tried to review this two weeks ago I ran into that roadblock and gave up on trying to do that review on the plane to Orlando.  :-(

git range-diff for the rebase in phabricator diff #12

Setting checkin-needed based on r+ from jwalden. Subsequent revisions just rebase and fix a couple nits mentioned in the acceptance message. Woo hoo!!

Pushed by jdemooij@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/375bd8800b2d
Reimplement BigInt using V8/JSC code instead of GMP r=jwalden
Status: ASSIGNED → RESOLVED
Closed: 6 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla66
You need to log in before you can comment on or make changes to this bug.