aaa21927efe3b42bbeb3f6a25e31fdb2b356a5c4: Bug 1592307: Part 13: Unicode helpers draft
Iain Ireland <iireland@mozilla.com> - Tue, 10 Dec 2019 00:21:29 +0000 - rev 2525770
Push 462847 by reviewbot at Tue, 10 Dec 2019 00:22:04 +0000
Bug 1592307: Part 13: Unicode helpers There are a variety of helper functions for unicode support. In cases where they map cleanly onto SM code, I hooked them up. The rest are left as stubs and implemented in a later patch. Similarly, the work necessary to support V8's equivalent to JS_USE_INTL_API comes in a later patch. Differential Diff: PHID-DIFF-s772i7glcerykwcqsbw5
a16a221eafb6e6434963da460b9bd969a61c1c40: Bug 1592307: Part 12: Messages draft
Iain Ireland <iireland@mozilla.com> - Tue, 10 Dec 2019 00:21:25 +0000 - rev 2525769
Push 462847 by reviewbot at Tue, 10 Dec 2019 00:22:04 +0000
Bug 1592307: Part 12: Messages V8 has a message template system similar to SM's JSMSG. However, it is currently barely used in irregexp. Only stack overflow uses the message template system. Every other error uses a literal string. This stub code implements the current required API. I am looking into the possibility of uplifting a patch to V8 to consistently use the message template system. Differential Diff: PHID-DIFF-p4wv3tuixwfdqqae42yb
eb25b85c701e9d633a9e694483cd8375bedf3d4b: Bug 1592307: Part 11: Handles draft
Iain Ireland <iireland@mozilla.com> - Tue, 10 Dec 2019 00:21:21 +0000 - rev 2525768
Push 462847 by reviewbot at Tue, 10 Dec 2019 00:22:04 +0000
Bug 1592307: Part 11: Handles V8 has Handles, but they have some important differences from SM's. This patch only includes the required Handle API for irregexp. The implementation comes in a later patch. Differential Diff: PHID-DIFF-cy6vdfyxzu54wao472vq
b7c38a15b1725c6f167f9c2ab6208ce3169aede8: Bug 1592307: Part 10: Label draft
Iain Ireland <iireland@mozilla.com> - Tue, 10 Dec 2019 00:21:17 +0000 - rev 2525767
Push 462847 by reviewbot at Tue, 10 Dec 2019 00:22:04 +0000
Bug 1592307: Part 10: Label V8's labels use different names than SpiderMonkey's, but the underlying concepts are the same. Differential Diff: PHID-DIFF-fjfqfbb6hrbrkpmzm73q
ff71d7ca2b80cf5749a66d45eb0c915ea67990c4: Bug 1592307: Part 9: SmallVector draft
Iain Ireland <iireland@mozilla.com> - Tue, 10 Dec 2019 00:21:14 +0000 - rev 2525766
Push 462847 by reviewbot at Tue, 10 Dec 2019 00:22:04 +0000
Bug 1592307: Part 9: SmallVector SmallVector, like js::Vector, starts with elements allocated inline and expands when full. It is implemented as a wrapper around js::Vector. Differential Diff: PHID-DIFF-ejrng2jscgeicvuemv5u
3a7f8397fd1eefe2c1916f3601a63718490b2285: Bug 1592307: Part 8: Zone containers draft
Iain Ireland <iireland@mozilla.com> - Tue, 10 Dec 2019 00:21:10 +0000 - rev 2525765
Push 462847 by reviewbot at Tue, 10 Dec 2019 00:22:04 +0000
Bug 1592307: Part 8: Zone containers There are two different sets of zone containers used in irregexp. 1. ZoneList: a growable vector that allocates its elements in a Zone. It appears to be the last remnant of an older set of data structures in V8; when the last kind of List other than ZoneList was removed, the base class implementations of List functionality were moved into ZoneList. This code is mostly a straight copy from zone.h, except: a) The DCHECKs have been converted to MOZ_ASSERT b) ZoneAllocationPolicy appears to be a remnant of an abstraction layer across Lists. We don't need that generality for irregexp (and I am not sure that V8 needs it at all), so I removed it and simplified the resulting code. c) Implementations have been inlined from zone-list-inl.h into zone-containers.h d) I cleaned up a few bits of code to match SM-style (no unbraced ifs, etc...) 2. ZoneVector/ZoneLinkedList/ZoneSet/ZoneMap/ZoneUnorderedMap are stdlib containers that are specialized (using ZoneAllocator) to allocate in Zones. This code is copied from zone-allocator.h and zone-containers.h. Differential Diff: PHID-DIFF-mbfniqsu6xcrcz2jimt5
277902c46734d09d00727e526e24b4dbdc2428cb: Bug 1592307: Part 7: Non-GC memory allocation draft
Iain Ireland <iireland@mozilla.com> - Tue, 10 Dec 2019 00:21:07 +0000 - rev 2525764
Push 462847 by reviewbot at Tue, 10 Dec 2019 00:22:04 +0000
Bug 1592307: Part 7: Non-GC memory allocation This patch hooks up jsmalloc and adds Zones, which are a wrapper around LifoAlloc. Containers that allocate in Zones will be added in the next patch. Differential Diff: PHID-DIFF-yv6rsu4bptmt3exlnfhw
50323c7ea61607d164dc89bc32628e93084194f5: Bug 1592307: Part 6: Vector draft
Iain Ireland <iireland@mozilla.com> - Tue, 10 Dec 2019 00:21:02 +0000 - rev 2525763
Push 462847 by reviewbot at Tue, 10 Dec 2019 00:22:04 +0000
Bug 1592307: Part 6: Vector This patch adds Vector, which is roughly equivalent to mozilla::Span. Differential Diff: PHID-DIFF-oqls2mjzfb6zb5kj3mti
daba7ac5fe0bda4644aad1a524b1545d49391fc5: Bug 1592307: Part 5: Add V8::Object shim draft
Iain Ireland <iireland@mozilla.com> - Tue, 10 Dec 2019 00:20:59 +0000 - rev 2525762
Push 462847 by reviewbot at Tue, 10 Dec 2019 00:22:04 +0000
Bug 1592307: Part 5: Add V8::Object shim This patch adds a shim for V8's Object class, which maps fairly well to SM's Value. Remaining rough spots: 1. V8 provides an interface for converting between an Object and an Address (typedef for uintptr_t). SM does its best to avoid exposing the internal Value representation to the outside world. We can either make this work by adding v8::internal::Object as a friend class of JSValue, or upstream an irregexp patch to remove the relatively few places where this is necessary. (A later patch goes with the former for now.) 2. V8's HeapObject (halfway between SM's Object and GCThing) has a Size method, but it should be easy to upstream a patch to eliminate the need for it in irregexp. (This patch is written and ready to go.) 3. V8's ByteArray is a fixed-length array of bytes. In the previous port of irregexp, we just used uint8_t[] (or a unique pointer to uint8_t[]). However, since our goal here is to avoid modifying the implementation of irregexp, we would prefer something that is compatible with the existing code, which means it needs to be a HeapObject. There are a variety of options (add a new class, use Uint8Array, rewrite HeapObject to enable us to store non-GCThings), but none of them is so obviously correct that I was willing to commit to it here. (In a later patch, I create a new class.) Differential Diff: PHID-DIFF-bq3jzpfdwsitkbpntyb2
7a0b0b6fab5d4625780dba0a8292471a6fe33814: Bug 1592307: Part 4: More simple definitions draft
Iain Ireland <iireland@mozilla.com> - Tue, 10 Dec 2019 00:20:55 +0000 - rev 2525761
Push 462847 by reviewbot at Tue, 10 Dec 2019 00:22:04 +0000
Bug 1592307: Part 4: More simple definitions Differential Diff: PHID-DIFF-qxwkvcjw6pqcdrcylsna
050685c8a9271cfac3e918e0275df61cf1d42013: Bug 1592307: Part 3: Macros and #defines draft
Iain Ireland <iireland@mozilla.com> - Tue, 10 Dec 2019 00:20:52 +0000 - rev 2525760
Push 462847 by reviewbot at Tue, 10 Dec 2019 00:22:04 +0000
Bug 1592307: Part 3: Macros and #defines This patch includes a variety of non-domain-specific definitions. Most of them are copy-pasted directly from V8 source. The main (partial) exception is saturated_cast: the full definition requires dozens of lines of template goo, but the only specialization we actually need is trivial to write by hand. I included links to V8 source code for anything that seemed non-trivial, to make it easier to review. Differential Diff: PHID-DIFF-lnb3ev7x3frydetdprfg
64f426e2e7e181602004726e6b31220cf96bb54b: Bug 1592307: Part 2: Add regexp-shim.h and -inl.h imports to V8 files draft
Iain Ireland <iireland@mozilla.com> - Tue, 10 Dec 2019 00:20:49 +0000 - rev 2525759
Push 462847 by reviewbot at Tue, 10 Dec 2019 00:22:04 +0000
Bug 1592307: Part 2: Add regexp-shim.h and -inl.h imports to V8 files This patch adds '#include new-regexp/regexp-shim.h' in the necessary places. The intent of this patch is to cover all of the necessary changes to V8 source files that are not automated away by update-headers.py, so that importing a new version of irregexp is as simple as running update-headers.py and re-applying this patch. Differential Diff: PHID-DIFF-3koxh5kikwlmtrw6oj5m
40f615634060aa29b3a2cae0ef76c18aefbeafe6: Bug 1592307: Part 1: Define empty stub files draft
Iain Ireland <iireland@mozilla.com> - Tue, 10 Dec 2019 00:20:41 +0000 - rev 2525758
Push 462847 by reviewbot at Tue, 10 Dec 2019 00:22:04 +0000
Bug 1592307: Part 1: Define empty stub files Creating shim files, to be filled in over the course of many patches. Differential Diff: PHID-DIFF-zzzzymfivlfvr3ssrscq
9919586f731fea5bbf4dfa0df76dc1f53cab56d3: try_task_config for https://phabricator.services.mozilla.com/D56502 draft
libmozevent <release-mgmt-analysis@mozilla.com> - Tue, 10 Dec 2019 00:20:38 +0000 - rev 2525757
Push 462846 by reviewbot at Tue, 10 Dec 2019 00:21:04 +0000
try_task_config for https://phabricator.services.mozilla.com/D56502 Differential Diff: PHID-DIFF-uuwh5zyph2oqesnmkrbp
6ef924d67a2eeb2fd6bd70c5c2094ff0f442b573: Bug 1592307: Part 15: Option flags draft
Iain Ireland <iireland@mozilla.com> - Tue, 10 Dec 2019 00:20:34 +0000 - rev 2525756
Push 462846 by reviewbot at Tue, 10 Dec 2019 00:21:04 +0000
Bug 1592307: Part 15: Option flags V8's equivalent to JitOptions is a set of FLAG_xxx bools. This patch adds the flags that are checked inside irregexp. Actually hooking them up to JitOptions is a future task. Differential Diff: PHID-DIFF-uuwh5zyph2oqesnmkrbp
5f910520b90708721bcf41a41d1f62f211b14247: Bug 1592307: Part 14: Strings draft
Iain Ireland <iireland@mozilla.com> - Tue, 10 Dec 2019 00:20:31 +0000 - rev 2525755
Push 462846 by reviewbot at Tue, 10 Dec 2019 00:21:04 +0000
Bug 1592307: Part 14: Strings This patch adds a String wrapper and implements some of the easy bits. For the most part, all irregexp needs from a String is access to a contiguous array of 1 or 2 byte characters, which is fairly easy to provide using SM Strings. Currently, there are a couple of places where the underlying representation of the String is inspected. My plan is to upstream a patch that hoists this code into a separate file, which will significantly reduce the overall surface area. Differential Diff: PHID-DIFF-6ws2nizqubmc77mgzg6w
59032da9bf026b33099328a829fd41da8a9cd29e: Bug 1592307: Part 13: Unicode helpers draft
Iain Ireland <iireland@mozilla.com> - Tue, 10 Dec 2019 00:20:28 +0000 - rev 2525754
Push 462846 by reviewbot at Tue, 10 Dec 2019 00:21:04 +0000
Bug 1592307: Part 13: Unicode helpers There are a variety of helper functions for unicode support. In cases where they map cleanly onto SM code, I hooked them up. The rest are left as stubs and implemented in a later patch. Similarly, the work necessary to support V8's equivalent to JS_USE_INTL_API comes in a later patch. Differential Diff: PHID-DIFF-s772i7glcerykwcqsbw5
e71f39f948073ed59329a7884af0c528d6ab447a: Bug 1592307: Part 12: Messages draft
Iain Ireland <iireland@mozilla.com> - Tue, 10 Dec 2019 00:20:25 +0000 - rev 2525753
Push 462846 by reviewbot at Tue, 10 Dec 2019 00:21:04 +0000
Bug 1592307: Part 12: Messages V8 has a message template system similar to SM's JSMSG. However, it is currently barely used in irregexp. Only stack overflow uses the message template system. Every other error uses a literal string. This stub code implements the current required API. I am looking into the possibility of uplifting a patch to V8 to consistently use the message template system. Differential Diff: PHID-DIFF-p4wv3tuixwfdqqae42yb
eb8787e1596c58a8c25a9179d7ef14190795e423: Bug 1592307: Part 11: Handles draft
Iain Ireland <iireland@mozilla.com> - Tue, 10 Dec 2019 00:20:21 +0000 - rev 2525752
Push 462846 by reviewbot at Tue, 10 Dec 2019 00:21:04 +0000
Bug 1592307: Part 11: Handles V8 has Handles, but they have some important differences from SM's. This patch only includes the required Handle API for irregexp. The implementation comes in a later patch. Differential Diff: PHID-DIFF-cy6vdfyxzu54wao472vq
598764b76cf1cf5fea6e043c9000afd08c7dee3a: Bug 1592307: Part 10: Label draft
Iain Ireland <iireland@mozilla.com> - Tue, 10 Dec 2019 00:20:18 +0000 - rev 2525751
Push 462846 by reviewbot at Tue, 10 Dec 2019 00:21:04 +0000
Bug 1592307: Part 10: Label V8's labels use different names than SpiderMonkey's, but the underlying concepts are the same. Differential Diff: PHID-DIFF-fjfqfbb6hrbrkpmzm73q
(0) -1000000 -300000 -100000 -30000 -10000 -3000 -1000 -300 -100 -50 -20 +20 +50 +100 +300 +1000 +3000 +10000 +30000 +100000 +300000 +1000000 tip