- 18 Mar, 2020 1 commit
-
-
Tobias Tebbi authored
- Allow type expression for abstract type supertypes. For consistency, and ease of implementation, also allow this for enums. - Allow subtyping of structs. This requires changing all places where we checked for struct types and instead check if we have a subtype of a struct type. - This allows defining two subtypes of the Reference<T> struct for mutable and constant references. Mutable references are a subtype of constant references. - &T desugars to MutableReference<T> const &T desugars to ConstReference<T> - A const field of a class produces a constant reference. A const field of a mutable reference to a struct is const. A mutable field of a const reference to a struct is const. - It is possible to assign a new struct value to a mutable reference to a struct, even if the struct contains const fields. This is analogous to allowing assignments of let-bound structs with constant fields. Not in this CL: - A notion of const slices. - Applying const to appropriate class fields. Bug: v8:7793 Change-Id: I6e7b09d44f54db25f8bf812be5f3b554b80414e0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2096615Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#66759}
-
- 26 Feb, 2020 1 commit
-
-
Seth Brenith authored
This reverts commit 4dc1fb4e. Reason for revert: the regression from the original change was likely due to unlucky factors like code alignment. Original change's description: > Revert "[torque] Support bitfield structs stored within Smis" > > This reverts commit e5e4ea96. > > Reason for revert: mysterious performance regression chromium:1052756 > > Original change's description: > > [torque] Support bitfield structs stored within Smis > > > > This change moves the definition of the bits stored in DebugInfo::flags > > to Torque, and updates the only Torque usage of that field to use more > > natural syntax. This is intended as an example of common patterns found > > in various other classes. Several supporting changes are required: > > > > 1. Add a new type representing a bitfield struct stored within a Smi. It > > is currently called SmiTagged, but I'm open to suggestions. > > 2. Add an enum-style output for Torque bitfield structs whose bitfields > > occupy only one bit each. > > 3. Add a new case to MachineOperatorReducer that makes the generated > > code for IncBlockCounter match with what was generated before this > > change. > > 4. Add support for reporting these bitfields in the postmortem debugging > > API. The format matches existing bitfields but with an offset value > > that includes the SMI shift size. > > > > Bug: v8:7793 > > Change-Id: Icaecbe4a162da55d2d9a3a35a8ea85b285b2f1b7 > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2028832 > > Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> > > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > > Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#66182} > > Bug: chromium:1052756, v8:7793 > Change-Id: I9e2897efbb6321124bf4952cf09de2f179f7310d > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2062569 > Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Cr-Commit-Position: refs/heads/master@{#66349} # Not skipping CQ checks because original CL landed > 1 day ago. Bug: chromium:1052756, v8:7793 Change-Id: I6087928aa14c8551ebd294513bd8d6ffa402a0d4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2070635Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Cr-Commit-Position: refs/heads/master@{#66465}
-
- 19 Feb, 2020 1 commit
-
-
Seth Brenith authored
This reverts commit e5e4ea96. Reason for revert: mysterious performance regression chromium:1052756 Original change's description: > [torque] Support bitfield structs stored within Smis > > This change moves the definition of the bits stored in DebugInfo::flags > to Torque, and updates the only Torque usage of that field to use more > natural syntax. This is intended as an example of common patterns found > in various other classes. Several supporting changes are required: > > 1. Add a new type representing a bitfield struct stored within a Smi. It > is currently called SmiTagged, but I'm open to suggestions. > 2. Add an enum-style output for Torque bitfield structs whose bitfields > occupy only one bit each. > 3. Add a new case to MachineOperatorReducer that makes the generated > code for IncBlockCounter match with what was generated before this > change. > 4. Add support for reporting these bitfields in the postmortem debugging > API. The format matches existing bitfields but with an offset value > that includes the SMI shift size. > > Bug: v8:7793 > Change-Id: Icaecbe4a162da55d2d9a3a35a8ea85b285b2f1b7 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2028832 > Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> > Cr-Commit-Position: refs/heads/master@{#66182} Bug: chromium:1052756, v8:7793 Change-Id: I9e2897efbb6321124bf4952cf09de2f179f7310d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2062569 Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#66349}
-
- 07 Feb, 2020 1 commit
-
-
Seth Brenith authored
This change moves the definition of the bits stored in DebugInfo::flags to Torque, and updates the only Torque usage of that field to use more natural syntax. This is intended as an example of common patterns found in various other classes. Several supporting changes are required: 1. Add a new type representing a bitfield struct stored within a Smi. It is currently called SmiTagged, but I'm open to suggestions. 2. Add an enum-style output for Torque bitfield structs whose bitfields occupy only one bit each. 3. Add a new case to MachineOperatorReducer that makes the generated code for IncBlockCounter match with what was generated before this change. 4. Add support for reporting these bitfields in the postmortem debugging API. The format matches existing bitfields but with an offset value that includes the SMI shift size. Bug: v8:7793 Change-Id: Icaecbe4a162da55d2d9a3a35a8ea85b285b2f1b7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2028832 Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/master@{#66182}
-
- 16 Jan, 2020 1 commit
-
-
Tobias Tebbi authored
Bug: v8:7793 Change-Id: I4fc039711eb9aa9d551144ea6fccc926d4803349 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1993290 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/master@{#65808}
-
- 20 Dec, 2019 1 commit
-
-
Tobias Tebbi authored
This allows the definition of classes with several arrays and ports SmallOrderedHashTable subclasses to Torque as an example, including the existing CSA allocation functions for them. Overview of changes: - Introduce ResidueClass to encapsulate the modulo-arithmetic necessary to do alignment checks. - Add MachineOperatorReducer to the CSA pipeline to address now missing CSA ad-hoc constant folding that got blocked by a temporary phi. - Allow assignments to references to structs. This is needed to initialize the data_table part of SmallOrderedHashMap. - Make the NumberLiteralExpression AST-node store a double instead of a string. This is necessary to detect arrays with constant size used for padding. - Turn offsets into base::Optional<size_t> to ensure we don't use an invalid or statically unknown offset. - Remove CreateFieldReferenceInstruction since it doesn't work for complex offset computations and the logic can be expressed better in ImplementationVisitor. - Validate alignment of structs embedded in classes. Bug: v8:10004 v8:7793 Change-Id: Ifa414b42278e572a0c577bf9da3d37f80771a258 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1958011 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/master@{#65538}
-
- 18 Dec, 2019 1 commit
-
-
Nico Hartmann authored
This CL implements enums in Torque in three steps: 1.) It implements necessary changes to Torque's type system. In particular, the constraints on constexpr types are relaxed such that constexpr types can exist without a corresponding non-constexpr version. Furthermore, constexpr and their non-constexpr counterpart need not be of the same kind of type. This allows an AbstractType to have a UnionType as its non-constexpr counterpart. 2.) The enum feature itself is realized as a pure desugaring in the parser, where all required types, constants and macro specializations (like FromConstexpr<>) are generated from a simple enum declaration, such that enum entries are not just constants, but are namespace scoped and have distinct types so that they can be used within typeswitch constructs. 3.) Almost all of the existing constants defined in torque (.tq files) are ported to new enum definitions. Bug: v8:10053 Change-Id: I72426d3b1434f301fd690847e15603de0dc1021b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1964392 Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#65503}
-
- 16 Dec, 2019 1 commit
-
-
Tobias Tebbi authored
This makes it obvious that methods are actually macros. Also, in the future, we might allow methods that are actually builtins. Bug: v8:7793 Change-Id: Ib641c4b5a222b27c67aa0c31fd3611ed4a11842c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1967330Reviewed-by: Michael Stanton <mvstanton@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#65455}
-
- 10 Dec, 2019 1 commit
-
-
Tobias Tebbi authored
This CL generalizes and improves how we handle allocations in Torque. Overview of the changes: - Remove obsolete special handling for JSObject classes, since it was incomplete: It breaks as soon as slack tracking is active. - Handle array initialization using slices. - Properly align allocation sizes. This enabled allocating strings. - Port AllocateSeq{One,Two}ByteString to Torque, which is much easier now than the old CSA code since allocation size alignment and large-object space allocation just happen out-of-the-box. - Remove obsolete or unnecessary intrinsics, some of them turn into macros in the torque_internal namespace. - Distinguish between header size and overall size for ClassType, make size optional and only defined when it is statically known. Bug: v8:10004 v8:7793 Change-Id: I623db233e7fb4deed54e8039ae0c24705e9a44e8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1932356Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#65397}
-
- 05 Dec, 2019 1 commit
-
-
Almothana Athamneh authored
This CL attempts to run unittests on Fuchsia using Infra Bug: chromium:934932 Change-Id: I4b7cb740e17e65e91ca8c6ba6dfd07719e473e20 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1948709 Commit-Queue: Almothana Athamneh <almuthanna@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#65349}
-
- 15 Nov, 2019 1 commit
-
-
Seth Brenith authored
Currently it's pretty easy to write Torque code that generates an error in some common generic function such as Convert<To: type, From: type>, and unless your change is very small, it can be hard to figure out what part of it caused that macro specialization. This CL updates the Torque compiler to emit some extra information about the stack of code positions that caused a specialization of a macro or builtin, similar to what Clang does for C++ templates. Obviously there might be multiple places that require a particular specialization, but we only report the first one that caused the specialization to be created. Bug: v8:7793 Change-Id: I4c0fbf1fd437d0eb0d7d5002baef7a5361aea5ee Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1911019 Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#64987}
-
- 14 Nov, 2019 1 commit
-
-
Seth Brenith authored
Now that we can represent specific weak types with Weak<T>, this CL updates the generated verifier functions so that they permit weak references only to the specified type. As an example, consider the verifier emitted for the following field in PrototypeInfo: object_create_map: Weak<Map>|Undefined; We used to emit the following, which allowed any weak reference: CHECK(object_create_map__value.IsWeakOrCleared() || object_create_map__value.GetHeapObjectOrSmi().IsOddball()); With this change, we emit a stricter check: CHECK(object_create_map__value.IsCleared() || (!object_create_map__value.IsWeak() && object_create_map__value.GetHeapObjectOrSmi().IsOddball()) || (object_create_map__value.IsWeak() && object_create_map__value.GetHeapObjectOrSmi().IsMap())); Bug: v8:7793 Change-Id: I4be236d97dedbcdd6c98207928aee8bda2a77f00 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1914613 Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#64965}
-
- 11 Nov, 2019 1 commit
-
-
Tobias Tebbi authored
Overview: - Change basic type hierarchy to split Tagged into StrongTagged (= Object) and and WeakHeapObject. This enables to emit the right CSA types (Object, MaybeObject). - The new Weak<T> type encodes a possibly cleared weak bit pattern that points to type T if it's not cleared. - Make TNode<Object> a subtype of TNode<MaybeObject> so that the generated code compiles on the C++ side. Drive-by change: simplify a few CSA helpers by using MaybeObject as a common supertype of MaybeObject and Object. - Port CreateObjectWithoutProperties and LoadMapPrototypeInfo. Bug: v8:7793 Change-Id: I895a6501ce3e287ea8cf4065aaff3a5535245ab4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1889870Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#64876}
-
- 24 Oct, 2019 1 commit
-
-
Tobias Tebbi authored
This expands the existing mechanism for generic structs to also cover abstract types. This involves: - Moving the SpecializationKey from StructType to Type, so that it's also available to AbstractType. - Moving the generic parameters out of the StructDeclaration AST node and using the existing GenericDeclaration AST node for generic structs and abstract types too. - The GenericStructType declarable gets generalized to GenericType. This will be useful for defining a Weak<T> type for weak pointers. Bug: v8:7793 Change-Id: I183b3a038a143cf0ae5888150104c4a025fd736c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1859623 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#64533}
-
- 26 Jul, 2019 1 commit
-
-
Georg Schmid authored
This CL removes the built-in reference type in favor of a Torque-implemented generic struct, i.e., internal::Reference<T>. It also adds various infrastructure for getting and creating new generic struct instances, as well as matching against them. R=tebbi@chromium.org Change-Id: I1e3d6afe355a0603fa9c3ad789c6b8a97d1b3c26 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1718148 Commit-Queue: Georg Schmid <gsps@google.com> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#62939}
-
- 09 Jul, 2019 1 commit
-
-
Simon Zünd authored
This CL changes non-const reference arguments to either a const reference, or pass-by-value combined with std::move. Bug: v8:9429 Change-Id: Iabace132f855462612ac31922fbd8b456d8ae20d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1690827Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Simon Zünd <szuend@chromium.org> Auto-Submit: Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/master@{#62583}
-
- 18 Jun, 2019 1 commit
-
-
Seth Brenith authored
For every @noVerifier in base.tq, this change either removes it or ensures that it has some annotation explaining why it can't be removed. The @noVerifier usages that can't be removed fall into the following categories: 1. Classes that don't have their own instance types and therefore have no meaningful way to do an Is...() check 2. Fields that might not exist 3. Fields that are waiting for MaybeObject support in Torque Bug: v8:9311 Change-Id: Id452d4151ec07347ae96a9b5f3b26e2ac8065d31 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1659134Reviewed-by: Daniel Clifford <danno@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Cr-Commit-Position: refs/heads/master@{#62263}
-
- 11 Jun, 2019 3 commits
-
-
Simon Zünd authored
This CL adds lint errors for unused Torque macros. To prevent lots of noisy warnings, the check is rather narrow. Macros declared as "extern" or marked with "@export" are ignored. Also macros starting with "Convert", "Cast" or "FromConstexpr" are not checked. Drive-by: Removing some unused macros. Bug: v8:7793 Change-Id: Ie0d2e445f8882a9b0ebbda45876b342abf341248 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1645312 Commit-Queue: Simon Zünd <szuend@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#62092}
-
Simon Zünd authored
This CL adds a lint error for variables that are unnecessarily bound with 'let' when they could be bound using 'const. This test is skipped for struct types. For struct types, the "constness" also depends on the struct methods called and whether these methods write to the struct or not. This is not straight-forward to detect. Drive-by: Fix all the newly introduced lint errors. Bug: v8:7793 Change-Id: I0522ffcc4321350eef2e9573b8430bc78200ddce Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1645322 Commit-Queue: Simon Zünd <szuend@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#62085}
-
Simon Zünd authored
This CL introduces an 'import' statement. It does not produce any AST node. The AST contextual directly collects what source id imports what other source id. Currently the import map is unused. In the future, import syntax will be used to implement partial compilation. Bug: v8:7793 Change-Id: I5f09e6254d7ca2e7bc1a93d2e2d82e202cafc8ef Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1649357 Commit-Queue: Simon Zünd <szuend@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#62080}
-
- 06 Jun, 2019 1 commit
-
-
Simon Zünd authored
This CL adds lint errors when 'let' bindings, arguments and labels are not used. Note that errors for 'const' bindings will be added later. In cases where arguments are actually needed to match the signature, the warning can be silenced by prefixing identifiers with "_". This might be needed for generic specializations or builtins called from TurboFan. Trying to use a variable or label that was marked with "_" results in a compilation error. Implicit arguments are not linted. They are implemented using exact string matching. Prefixing an implicit argument with "_" in a callee would break all callers as the names would no longer match. Drive-by: Fix all new lint errors in the existing Torque code. Bug: v8:7793 Change-Id: I68b3c59c76b956e9f88709e9388a40a19546ce52 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1645092 Commit-Queue: Simon Zünd <szuend@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#62027}
-
- 05 Jun, 2019 1 commit
-
-
Tobias Tebbi authored
TBR: yangguo@chromium.org Bug: v8:7793 Change-Id: Ie680d72a1da23038d3136f82532496eabbd9c363 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1632227 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#62004}
-
- 03 Jun, 2019 1 commit
-
-
Simon Zünd authored
This CL changes "MessageWriter" type to std::function instead of a plain function pointer. This allows capturing lambdas, which in turn are used to make unittests more robust. R=sigurds@chromium.org Bug: v8:8880 Change-Id: I9d71ddcac173af36e5b62852f2a9ec6dcfac9f78 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1640201 Commit-Queue: Simon Zünd <szuend@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Auto-Submit: Simon Zünd <szuend@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#61958}
-
- 24 May, 2019 2 commits
-
-
Simon Zünd authored
This CL fixes a crash when "constexpr" is infered from the intializer expression of a variable declaration. R=sigurds@chromium.org Bug: v8:7793 Change-Id: I0ec51280fa145d874424e885905bbf79c93b3904 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1627983 Commit-Queue: Simon Zünd <szuend@chromium.org> Auto-Submit: Simon Zünd <szuend@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#61826}
-
Tobias Tebbi authored
This is a reland of c33a1ef2 It seems the revert was based on a flake. Original change's description: > Reland "[torque] move class tests to unittests" > > This is a reland of f589d561 > > Now with an ASAN-container-overflow false positive workaround: > Somehow ASAN was unhappy about a simple > std::vector<std::string>::push_back. > Increasing the std::vector capacity before doing the push_back > strangely fixes the problem. > > Original change's description: > > [torque] move class tests to unittests > > > > This avoids the generation of fake external classes. > > > > Bug: v8:7793 > > Change-Id: I9744b299d3ec474d72b298b4f6143f95e345d1d9 > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1625991 > > Reviewed-by: Simon Zünd <szuend@chromium.org> > > Reviewed-by: Sigurd Schneider <sigurds@chromium.org> > > Commit-Queue: Tobias Tebbi <tebbi@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#61778} > > TBR: szuend@chromium.org, sigurds@chromium.org > Bug: v8:7793 > Change-Id: Ifa1958e4d6e850ba27632aa95c7efaf5ca4bfefa > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1627970 > Commit-Queue: Tobias Tebbi <tebbi@chromium.org> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Cr-Commit-Position: refs/heads/master@{#61807} Bug: v8:7793 Change-Id: Ia403f1b784500c0903172f13e74c0b325e82599f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1627980Reviewed-by: Simon Zünd <szuend@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#61819}
-
- 23 May, 2019 4 commits
-
-
Francis McCabe authored
This reverts commit c33a1ef2. Reason for revert: fails win32 test: https://ci.chromium.org/p/v8/builders/ci/V8%20Win32%20-%20nosnap%20-%20shared/33658 Original change's description: > Reland "[torque] move class tests to unittests" > > This is a reland of f589d561 > > Now with an ASAN-container-overflow false positive workaround: > Somehow ASAN was unhappy about a simple > std::vector<std::string>::push_back. > Increasing the std::vector capacity before doing the push_back > strangely fixes the problem. > > Original change's description: > > [torque] move class tests to unittests > > > > This avoids the generation of fake external classes. > > > > Bug: v8:7793 > > Change-Id: I9744b299d3ec474d72b298b4f6143f95e345d1d9 > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1625991 > > Reviewed-by: Simon Zünd <szuend@chromium.org> > > Reviewed-by: Sigurd Schneider <sigurds@chromium.org> > > Commit-Queue: Tobias Tebbi <tebbi@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#61778} > > TBR: szuend@chromium.org, sigurds@chromium.org > Bug: v8:7793 > Change-Id: Ifa1958e4d6e850ba27632aa95c7efaf5ca4bfefa > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1627970 > Commit-Queue: Tobias Tebbi <tebbi@chromium.org> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Cr-Commit-Position: refs/heads/master@{#61807} TBR=sigurds@chromium.org,tebbi@chromium.org,szuend@chromium.org Change-Id: I079e3ccf2c7a4778e3e6aabee85313ab5a070ee3 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7793 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1626834Reviewed-by: Francis McCabe <fgm@chromium.org> Commit-Queue: Francis McCabe <fgm@chromium.org> Cr-Commit-Position: refs/heads/master@{#61808}
-
Tobias Tebbi authored
This is a reland of f589d561 Now with an ASAN-container-overflow false positive workaround: Somehow ASAN was unhappy about a simple std::vector<std::string>::push_back. Increasing the std::vector capacity before doing the push_back strangely fixes the problem. Original change's description: > [torque] move class tests to unittests > > This avoids the generation of fake external classes. > > Bug: v8:7793 > Change-Id: I9744b299d3ec474d72b298b4f6143f95e345d1d9 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1625991 > Reviewed-by: Simon Zünd <szuend@chromium.org> > Reviewed-by: Sigurd Schneider <sigurds@chromium.org> > Commit-Queue: Tobias Tebbi <tebbi@chromium.org> > Cr-Commit-Position: refs/heads/master@{#61778} TBR: szuend@chromium.org, sigurds@chromium.org Bug: v8:7793 Change-Id: Ifa1958e4d6e850ba27632aa95c7efaf5ca4bfefa Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1627970 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#61807}
-
Francis McCabe authored
This reverts commit f589d561. Reason for revert: failing win64 asan https://ci.chromium.org/p/v8/builders/ci/V8%20Win64%20ASAN/8653 Original change's description: > [torque] move class tests to unittests > > This avoids the generation of fake external classes. > > Bug: v8:7793 > Change-Id: I9744b299d3ec474d72b298b4f6143f95e345d1d9 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1625991 > Reviewed-by: Simon Zünd <szuend@chromium.org> > Reviewed-by: Sigurd Schneider <sigurds@chromium.org> > Commit-Queue: Tobias Tebbi <tebbi@chromium.org> > Cr-Commit-Position: refs/heads/master@{#61778} TBR=sigurds@chromium.org,tebbi@chromium.org,szuend@chromium.org Change-Id: I762f29a0d3212d2eabfafa48c0e46940d0e6f835 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7793 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1625863Reviewed-by: Francis McCabe <fgm@chromium.org> Commit-Queue: Francis McCabe <fgm@chromium.org> Cr-Commit-Position: refs/heads/master@{#61805}
-
Tobias Tebbi authored
This avoids the generation of fake external classes. Bug: v8:7793 Change-Id: I9744b299d3ec474d72b298b4f6143f95e345d1d9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1625991Reviewed-by: Simon Zünd <szuend@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#61778}
-
- 21 May, 2019 1 commit
-
-
Simon Zünd authored
This CL changes the existing TorqueError struct into a more general TorqueMessage by adding a "kind" enum. The contextual for lint errors is removed and replaced by a list of TorqueMessages. A MessageBuilder is introduced to help with the different combinations of present information and method of reporting. A lint error with custom SourcePosition can be reported like this: Lint("naming convention error").Position(<src_pos_var>); While a fatal error, with CurrentSourcePosition can be thrown like this: Error("something went horrible wrong").Throw(); This approach is both backwards compatible and should prove flexible enough to add more information to messages or add other message kinds. Bug: v8:7793 Change-Id: Ib04fa188e34b3e8e9a6526a086f80da8f690a6f5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617245 Commit-Queue: Simon Zünd <szuend@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#61696}
-
- 14 May, 2019 2 commits
-
-
Tobias Tebbi authored
The missing check that runtime function parameters have to be tagged lead to a bug: https://chromium-review.googlesource.com/c/v8/v8/+/1604071 drive-by-fix: Remove obsolete verbose mode. It hasn't been maintained since the very early Torque versions, and the remaining printf's are rather useless. Bug: v8:7793 Change-Id: I59adf4c6c5d92a8838cdc638afb2ab7a41550b55 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1609910 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#61483}
-
Simon Zünd authored
The language server needs Torque compilation artifacts like declarables for more advanced features. This CL moves the GlobalContext into the LanguageServerData class when Torque compilation finishes, to preserve all the compiler data. Additionally, all declarables are split up by source id. This makes providing all symbols of a file easier. R=tebbi@chromium.org Bug: v8:8880 Change-Id: I424d1ddc04fcd18934f76a736900bc5d08261c07 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1601132 Commit-Queue: Simon Zünd <szuend@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#61462}
-
- 08 May, 2019 1 commit
-
-
Simon Zünd authored
This is a reland of 2d45ecf0 The reland properly initializes struct fields in unittests. To prevent this in the future, TorqueCompilerOptions uses brace initialization. Original change's description: > [torque] Introduce force_assert_statements compiler option > > "assert(...)" statements are usually only visited and generated in > debug builds. To provide Language Server support for statements inside > asserts, the force_assert_statements option allows to manually > override this behavior and visit assert statements in release builds. > > R=sigurds@chromium.org > > Bug: v8:7793 > Change-Id: I38f48e35f2b0a1a98abb74b7babb1edd2d7dba24 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1599180 > Auto-Submit: Simon Zünd <szuend@chromium.org> > Commit-Queue: Sigurd Schneider <sigurds@chromium.org> > Reviewed-by: Sigurd Schneider <sigurds@chromium.org> > Cr-Commit-Position: refs/heads/master@{#61295} Bug: v8:7793 Change-Id: I96ef863c8c85ae87a00cbe858655d4a2c9368b41 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1599599 Auto-Submit: Simon Zünd <szuend@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#61315}
-
- 07 May, 2019 1 commit
-
-
Simon Zünd authored
DocumentSymbol responses provide all symbols (macros, classes, etc.) in a given document. The LSP standard evolved over time and supports two different kind of responses here: - A simpler one, that is a plain list of all the symbols - A more detailed one, allowing a hierarchy of symbols. For example a class symbol has a list of field/method symbols attached. This is used by editors to build hierarchical outline views. For now, the simpler response is chosen as its also used for workspace wide symbol searches. This CL adds the necessary boilerplate so the actual implementation CL is easier to review. R=tebbi@chromium.org Bug: v8:8880 Change-Id: I6c86fc839b1f4e0309f6403a5f9afd5c162c0e89 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1598757 Auto-Submit: Simon Zünd <szuend@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#61294}
-
- 06 May, 2019 2 commits
-
-
Simon Zünd authored
This CL adds navigation support for labels in "goto" statements. Similar to labels listed in the "otherwise" clause of call expression, definitions of such a label can be found in two places: - The signature of the current macro. - A label block of a "try" statement that surrounds the "goto". R=sigurds@chromium.org Bug: v8:8880 Change-Id: I6c5ebea0b0f80b1882e6672bbb0f45196a7201ba Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1594433 Commit-Queue: Simon Zünd <szuend@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#61229}
-
Simon Zünd authored
This CL adds navigation support for labels listed in the "otherwise" part of a call expression. There are two places where a definition for such a label can be found: - The signature of the current macro (caller) - A label block of a "try" statement that surrounds the call expression. R=tebbi@chromium.org Bug: v8:8880 Change-Id: If8849ad29abcf94f301d7a51e3e52c5517601bc0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1593295 Commit-Queue: Simon Zünd <szuend@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#61228}
-
- 02 May, 2019 2 commits
-
-
Simon Zünd authored
This enables "goto definition" navigation for parent types. R=sigurds@chromium.org Bug: v8:8880 Change-Id: I3207ec8b85f0e36cbab3519b89af98bba1666406 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1593081 Commit-Queue: Simon Zünd <szuend@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#61169}
-
Simon Zünd authored
R=sigurds@chromium.org Bug: v8:7793 Change-Id: Id0ba3a7b9f168e661ca786a0f1e18cd58c9210aa Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1593073Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/master@{#61147}
-
- 25 Apr, 2019 2 commits
-
-
Simon Zünd authored
This CL fixes a crash that happens on a goto definition lookup for a file with no data attached to it. Drive-by: Collect language server data even on compilation failures. R=tebbi@chromium.org Bug: v8:8880 Change-Id: Ia6323204391da3e64058e1fe47f87162186c15cd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1583721Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/master@{#61012}
-
Simon Zünd authored
This CL refactors and extends the infrastructure around sending diagnostic notifications. This enables publishing lint errors as warnings after a compilation run. R=sigurds@chromium.org, tebbi@chromium.org Bug: v8:8880 Change-Id: Ia64d2d490c1449021c92f5dc45eb7f8dab21e60a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1582405 Commit-Queue: Simon Zünd <szuend@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#61003}
-