- 10 Jan, 2019 1 commit
-
-
Daniel Clifford authored
Class declarations support structured heap data that is a subtype of HeapObject. Only fields of Object subtypes (both strong and weak) are currently supported (no scalar fields yet). With this CL, both the field list macro used with the C++ DEFINE_FIELD_OFFSET_CONSTANTS macro (to make field offset constants) as well as the Torque "operator '.field'" macros are generated for the classes declared in Torque. This is a first step to removing the substantial amount of duplication and boilerplate code needed to declare heap object classes. As a proof of concept, and handful of class field definitions, including those for non trivial classes like JSFunction, have been moved to Torque. Bug: v8:7793 Change-Id: I2fa0b53db65fa6f5fe078fb94e1db3418f908753 Reviewed-on: https://chromium-review.googlesource.com/c/1373971 Commit-Queue: Daniel Clifford <danno@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#58704}
-
- 14 Dec, 2018 1 commit
-
-
Daniel Clifford authored
In the process, add the bint type (which stands for Best-INTeger), which implements Torque's idea of CSA's ParameterMode. It maps to a different type on 32-bit (Smi) and 64-bit (intptr). There are convert operators that are either no-ops or conversions to-and-from Smi and intptrs on the each platform, depending on the underlying type for bint. This allows Torque code to git most of the benefits of ParameterMode without having to explicitly pass around the mode, since it is almost always OptimalMode anyways. Change-Id: I92e08adc1d79cb3e24576c96f9734aec1af54162 Reviewed-on: https://chromium-review.googlesource.com/c/1361160 Commit-Queue: Daniel Clifford <danno@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#58253}
-
- 13 Nov, 2018 1 commit
-
-
Mike Stanton authored
BUG=v8:7793 Change-Id: Ibcf16998ef9a44ae899a2536ccf02af1b7b7193d Reviewed-on: https://chromium-review.googlesource.com/c/1333410 Commit-Queue: Michael Stanton <mvstanton@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#57469}
-
- 02 Nov, 2018 1 commit
-
-
Tobias Tebbi authored
Bug: v8:8393 Change-Id: I6ab34cbe6c17f358c570e0bd27bf2de917f71b71 Reviewed-on: https://chromium-review.googlesource.com/c/1309764 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Daniel Clifford <danno@chromium.org> Cr-Commit-Position: refs/heads/master@{#57211}
-
- 10 Oct, 2018 1 commit
-
-
Nico Weber authored
Bug: chromium:101600, v8:8257 Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel Change-Id: Ie6c4f80cdec855355c0b8985e4f8a88da2ddfef9 Reviewed-on: https://chromium-review.googlesource.com/c/1273322Reviewed-by: Adam Klein <adamk@chromium.org> Reviewed-by: Dmitry Gozman <dgozman@chromium.org> Commit-Queue: Nico Weber <thakis@chromium.org> Cr-Commit-Position: refs/heads/master@{#56538}
-
- 04 Oct, 2018 1 commit
-
-
Tobias Tebbi authored
Bug: v8:7793 Change-Id: I5261122faf422987968ee1e405966f878ff910a1 Reviewed-on: https://chromium-review.googlesource.com/c/1245766 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Daniel Clifford <danno@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#56391}
-
- 13 Sep, 2018 1 commit
-
-
Simon Zünd authored
Drive-by change: Add helper method for reporting naming convention errors and refactor existing call sites. R=tebbi@chromium.org Bug: v8:7793 Change-Id: I7315b935229ffb7557fa55ebcb222fc91124aab7 Reviewed-on: https://chromium-review.googlesource.com/1223831Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Simon Zünd <szuend@google.com> Cr-Commit-Position: refs/heads/master@{#55847}
-
- 12 Sep, 2018 2 commits
-
-
Simon Zünd authored
R=tebbi@chromium.org Bug: v8:7793 Change-Id: I0314f1b45433c3023f803d67a056ffd6dbf83ce9 Reviewed-on: https://chromium-review.googlesource.com/1221212 Commit-Queue: Simon Zünd <szuend@google.com> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#55832}
-
Simon Zünd authored
R=tebbi@chromium.org Bug: v8:7793 Change-Id: I8db34b56e3dd3ac24ca7e368054829befb13397f Reviewed-on: https://chromium-review.googlesource.com/1221187Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Simon Zünd <szuend@google.com> Cr-Commit-Position: refs/heads/master@{#55824}
-
- 11 Sep, 2018 1 commit
-
-
Simon Zünd authored
This CL adds a contextual variable that tracks lint errors and will cause the Torque compiler to abort if there were any. R=tebbi@chromium.org Bug: v8:7793 Change-Id: Ia7c2b5b6c7cb12d489b12596afa84f933fc3f337 Reviewed-on: https://chromium-review.googlesource.com/1219388Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Simon Zünd <szuend@google.com> Cr-Commit-Position: refs/heads/master@{#55797}
-
- 10 Sep, 2018 1 commit
-
-
Simon Zünd authored
This CL adds naming convention errors for: - Variable names - Torque Macro/Builtin names - Parameter names R=tebbi@chromium.org Bug: v8:7793 Change-Id: Icfe20e53524234f0b4534f0102aff6b14121dfbc Reviewed-on: https://chromium-review.googlesource.com/1213184 Commit-Queue: Simon Zünd <szuend@google.com> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#55758}
-
- 20 Jul, 2018 1 commit
-
-
Tobias Tebbi authored
Bug: v8:7793 Change-Id: I208edf856f0283d840358f3c11bab97af0397056 Reviewed-on: https://chromium-review.googlesource.com/1095192Reviewed-by: Daniel Clifford <danno@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#54574}
-
- 29 May, 2018 1 commit
-
-
Tobias Tebbi authored
This adds support for union types to Torque. There is a new type expression A | B to form the union of the type expressions A and B. This is only possible if A and B have a common supertype, to prevent nonsensical unions of types with different representations. Union types are normalized: A | B == B | A A | (B | C) == (A | B) | C A | A == A The subtyping rules are defined recursively: (A | B) <: C if A <: C and B <: C A <: (B | C) if A <: B or A <: C This allows to define Object as a union type: type Tagged generates 'TNode<Object>'; type Smi extends Tagged generates 'TNode<Smi>'; type HeapObject extends Tagged generates 'TNode<HeapObject>'; type Object = Smi | HeapObject; The type {Tagged} is introduced to have a common supertype of all tagged values, but we should not use it directly, because {Object} contains the additional information that there is nothing but {Smi} and {HeapObject} values. When mapping union types to CSA types, we select the most specific common supertype. For Number and Numeric, we already use union types on the CSA side. Since it is not possible to map to CSA union types in general, we special-case these two union types to map them to the CSA union types we already use. Bug: v8:7793 Change-Id: I7a4e466436f55d04012f29ef17acfdb957653908 Reviewed-on: https://chromium-review.googlesource.com/1076132Reviewed-by: Michael Stanton <mvstanton@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#53411}
-
- 16 May, 2018 1 commit
-
-
Tobias Tebbi authored
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I20e30f0c19c887b1e093b02e39c7bd3d53d15182 Reviewed-on: https://chromium-review.googlesource.com/1054073 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Daniel Clifford <danno@chromium.org> Cr-Commit-Position: refs/heads/master@{#53221}
-
- 24 Apr, 2018 1 commit
-
-
Marja Hölttä authored
BUG=v8:7490 Change-Id: I03421657d4abc3cd6e27ffafa6b922ea0e83b2b4 Reviewed-on: https://chromium-review.googlesource.com/1016381 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by: Daniel Clifford <danno@chromium.org> Cr-Commit-Position: refs/heads/master@{#52752}
-
- 19 Apr, 2018 1 commit
-
-
Simon Zünd authored
Module names in torque are allowed to have underscores but not dashes. To stay consistent with C++ file naming conventions, the underscores in module names are replaced by dashes for file names. Example: module typed_array {} would now generate: builtins-typed-array-from-dsl-gen.(cc|h) instead of: builtins-typed_array-from-dsl-gen.(cc|h) R=danno@chromium.org Change-Id: Iff42d7b9b5f65c378ee30f9d884ab6a3a3cd42a7 Reviewed-on: https://chromium-review.googlesource.com/1016460Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Daniel Clifford <danno@chromium.org> Cr-Commit-Position: refs/heads/master@{#52686}
-
- 16 Apr, 2018 1 commit
-
-
Daniel Clifford authored
An overview of motivation behind Torque and some of its principles can be found here: https://bit.ly/2qAI5Ep Note that there is quite a bit of work left to do in order to get Torque production-ready for any non-trivial amount of code, but landing the prototype as-is will allow for much faster iteration. Bugs will be filed for all of the big-ticket items that are not landing blockers but called out in this patch as important to fix. Cq-Include-Trybots: luci.v8.try:v8_linux_nosnap_rel;luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: Ib07af70966d5133dc57344928885478b9c6b8b73 Reviewed-on: https://chromium-review.googlesource.com/845682 Commit-Queue: Daniel Clifford <danno@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#52618}
-