1. 21 Feb, 2020 1 commit
  2. 16 Jan, 2020 1 commit
  3. 20 Dec, 2019 1 commit
    • Tobias Tebbi's avatar
      [torque] multiple arrays in one object · 59e8d45a
      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: 's avatarClemens Backes <clemensb@chromium.org>
      Reviewed-by: 's avatarNico Hartmann <nicohartmann@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#65538}
      59e8d45a
  4. 15 Nov, 2019 1 commit
    • Seth Brenith's avatar
      [torque] Generate more detailed errors when instantiating generics · 332290e4
      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: 's avatarTobias Tebbi <tebbi@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#64987}
      332290e4
  5. 09 Oct, 2019 1 commit
  6. 22 Aug, 2019 1 commit
    • Seth Brenith's avatar
      [tools][torque]Improve postmortem API behavior on strings · 1a815e44
      Seth Brenith authored
      This change adds the indexed field for the characters in the definition
      of sequential string types, and introduces support for recognizing the
      various specific string types in v8_debug_helper. In an attempt to
      avoid duplicating info about string instance types, it also refactors
      String::Get so that StringShape (a simple class usable by postmortem
      tools) can dispatch using a class that defines behaviors for each
      concrete type.
      
      Bug: v8:9376
      Change-Id: Id0653040f6decddc004c73f8fe93d2187828c2c6
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1735795
      Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
      Reviewed-by: 's avatarMichael Stanton <mvstanton@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#63352}
      1a815e44
  7. 31 Jul, 2019 1 commit
    • Seth Brenith's avatar
      Reland "Add postmortem debugging helper library" · 0921e8f2
      Seth Brenith authored
      This is a reland of 517ab73f
      
      Updates since original: now compressed pointers passed to the function
      GetObjectProperties are required to be sign-extended. Previously, the
      function allowed zero-extended values, but that led to ambiguity on
      pointers like 0x88044919: is it compressed or is the heap range actually
      centered on 0x100000000?
      
      Original change's description:
      > Add postmortem debugging helper library
      >
      > This change begins to implement the functionality described in
      > https://docs.google.com/document/d/1evHnb1uLlSbvHAAsmOXyc25x3uh1DjgNa8u1RHvwVhk/edit#
      > for investigating V8 state in crash dumps.
      >
      > This change adds a new library, v8_debug_helper, for providing platform-
      > agnostic assistance with postmortem debugging. This library can be used
      > by extensions built for debuggers such as WinDbg or lldb. Its public API
      > is described by debug-helper.h; currently the only method it exposes is
      > GetObjectProperties, but we'd like to add more functionality over time.
      > The API surface is restricted to plain C-style structs and pointers, so
      > that it's easy to link from a debugger extension built with a different
      > toolchain.
      >
      > This change also adds a new cctest file to exercise some basic
      > interaction with the new library.
      >
      > The API function GetObjectProperties takes an object pointer (which
      > could be compressed, or weak, or a SMI), and returns a string
      > description of the object and a list of properties the object contains.
      > For now, the list of properties is entirely based on Torque object
      > definitions, but we expect to add custom properties in future updates so
      > that it can be easier to make sense of complex data structures such as
      > dictionaries.
      >
      > GetObjectProperties does several things that are intended to generate
      > somewhat useful results even in cases where memory may be corrupt or
      > unavailable:
      > - The caller may optionally provide a type string which will be used if
      >   the memory for the object's Map is inaccessible.
      > - All object pointers are compared against the list of known objects
      >   generated by mkgrokdump. The caller may optionally provide the
      >   pointers for the first pages of various heap spaces, to avoid spurious
      >   matches. If those pointers are not provided, then any matches are
      >   prefixed with "maybe" in the resulting description string, such as
      >   "maybe UndefinedValue (0x4288000341 <Oddball>)".
      >
      > Bug: v8:9376
      >
      > Change-Id: Iebf3cc2dea3133c7811bcefcdf38d9458b02fded
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1628012
      > Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Reviewed-by: Michael Stanton <mvstanton@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#62882}
      
      Bug: v8:9376
      Change-Id: I866a1cc9d4c34bfe10c7b98462451fe69763cf3f
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1717090Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Reviewed-by: 's avatarMichael Stanton <mvstanton@chromium.org>
      Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
      Cr-Commit-Position: refs/heads/master@{#63008}
      0921e8f2
  8. 24 Jul, 2019 1 commit
    • Zhi An Ng's avatar
      Revert "Add postmortem debugging helper library" · 6747e3a1
      Zhi An Ng authored
      This reverts commit 517ab73f.
      
      Reason for revert: Test failures https://bugs.chromium.org/p/v8/issues/detail?id=9538
      
      Original change's description:
      > Add postmortem debugging helper library
      > 
      > This change begins to implement the functionality described in
      > https://docs.google.com/document/d/1evHnb1uLlSbvHAAsmOXyc25x3uh1DjgNa8u1RHvwVhk/edit#
      > for investigating V8 state in crash dumps.
      > 
      > This change adds a new library, v8_debug_helper, for providing platform-
      > agnostic assistance with postmortem debugging. This library can be used
      > by extensions built for debuggers such as WinDbg or lldb. Its public API
      > is described by debug-helper.h; currently the only method it exposes is
      > GetObjectProperties, but we'd like to add more functionality over time.
      > The API surface is restricted to plain C-style structs and pointers, so
      > that it's easy to link from a debugger extension built with a different
      > toolchain.
      > 
      > This change also adds a new cctest file to exercise some basic
      > interaction with the new library.
      > 
      > The API function GetObjectProperties takes an object pointer (which
      > could be compressed, or weak, or a SMI), and returns a string
      > description of the object and a list of properties the object contains.
      > For now, the list of properties is entirely based on Torque object
      > definitions, but we expect to add custom properties in future updates so
      > that it can be easier to make sense of complex data structures such as
      > dictionaries.
      > 
      > GetObjectProperties does several things that are intended to generate
      > somewhat useful results even in cases where memory may be corrupt or
      > unavailable:
      > - The caller may optionally provide a type string which will be used if
      >   the memory for the object's Map is inaccessible.
      > - All object pointers are compared against the list of known objects
      >   generated by mkgrokdump. The caller may optionally provide the
      >   pointers for the first pages of various heap spaces, to avoid spurious
      >   matches. If those pointers are not provided, then any matches are
      >   prefixed with "maybe" in the resulting description string, such as
      >   "maybe UndefinedValue (0x4288000341 <Oddball>)".
      > 
      > Bug: v8:9376
      > 
      > Change-Id: Iebf3cc2dea3133c7811bcefcdf38d9458b02fded
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1628012
      > Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Reviewed-by: Michael Stanton <mvstanton@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#62882}
      
      TBR=yangguo@chromium.org,mvstanton@chromium.org,jgruber@chromium.org,tebbi@chromium.org,seth.brenith@microsoft.com
      
      Change-Id: Ia078f2e8d101d2375b5db88021b2d65d28f1b075
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:9376
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1716033Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Commit-Queue: Zhi An Ng <zhin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#62899}
      6747e3a1
  9. 23 Jul, 2019 1 commit
    • Seth Brenith's avatar
      Add postmortem debugging helper library · 517ab73f
      Seth Brenith authored
      This change begins to implement the functionality described in
      https://docs.google.com/document/d/1evHnb1uLlSbvHAAsmOXyc25x3uh1DjgNa8u1RHvwVhk/edit#
      for investigating V8 state in crash dumps.
      
      This change adds a new library, v8_debug_helper, for providing platform-
      agnostic assistance with postmortem debugging. This library can be used
      by extensions built for debuggers such as WinDbg or lldb. Its public API
      is described by debug-helper.h; currently the only method it exposes is
      GetObjectProperties, but we'd like to add more functionality over time.
      The API surface is restricted to plain C-style structs and pointers, so
      that it's easy to link from a debugger extension built with a different
      toolchain.
      
      This change also adds a new cctest file to exercise some basic
      interaction with the new library.
      
      The API function GetObjectProperties takes an object pointer (which
      could be compressed, or weak, or a SMI), and returns a string
      description of the object and a list of properties the object contains.
      For now, the list of properties is entirely based on Torque object
      definitions, but we expect to add custom properties in future updates so
      that it can be easier to make sense of complex data structures such as
      dictionaries.
      
      GetObjectProperties does several things that are intended to generate
      somewhat useful results even in cases where memory may be corrupt or
      unavailable:
      - The caller may optionally provide a type string which will be used if
        the memory for the object's Map is inaccessible.
      - All object pointers are compared against the list of known objects
        generated by mkgrokdump. The caller may optionally provide the
        pointers for the first pages of various heap spaces, to avoid spurious
        matches. If those pointers are not provided, then any matches are
        prefixed with "maybe" in the resulting description string, such as
        "maybe UndefinedValue (0x4288000341 <Oddball>)".
      
      Bug: v8:9376
      
      Change-Id: Iebf3cc2dea3133c7811bcefcdf38d9458b02fded
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1628012
      Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Reviewed-by: 's avatarMichael Stanton <mvstanton@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#62882}
      517ab73f
  10. 21 Jun, 2019 1 commit
    • Sigurd Schneider's avatar
      [torque] Support 'real' internal classes · 76c1e829
      Sigurd Schneider authored
      Rework the implementation of non-external Torque classes to use
      Struct machinery rather than FixedArray machinery. This allows
      Torque-only defined 'internal' classes to the automatically generate
      class verifiers and printers.
      
      As part of this change, generate C++ boilerplate accessors for
      internal Torque classes, since this is a pre-requisite for the
      verifiers, printers and other Struct-based functionality.
      
      Moreover, augment the header-generating functionality in Torque
      to create separate header files for field offset definitions,
      internal class C++ definitions and instance types.
      
      Bug: v8:7793
      Change-Id: I47d5f1570040c2b44d378f23b6cf95d3d132dacc
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1607645
      Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
      Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#62317}
      76c1e829
  11. 18 Jun, 2019 1 commit
  12. 06 Jun, 2019 1 commit
    • Simon Zünd's avatar
      [torque] Add lint errors for unused variable and label bindings · 0e53739c
      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: 's avatarTobias Tebbi <tebbi@chromium.org>
      Reviewed-by: 's avatarSigurd Schneider <sigurds@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#62027}
      0e53739c
  13. 05 Jun, 2019 1 commit
  14. 03 Jun, 2019 1 commit
  15. 28 May, 2019 1 commit
  16. 21 May, 2019 1 commit
    • Simon Zünd's avatar
      [torque] More flexibel and uniform error reporting · bdfd1e4b
      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: 's avatarTobias Tebbi <tebbi@chromium.org>
      Reviewed-by: 's avatarSigurd Schneider <sigurds@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#61696}
      bdfd1e4b
  17. 14 May, 2019 1 commit
  18. 08 May, 2019 1 commit
    • Sigurd Schneider's avatar
      [torque] Refactor annotation handling · ad010efa
      Sigurd Schneider authored
      This CL introduces an AnnotationSet to unify annotation handling. Grammar
      rules now accept a list of annotations (via annotations Symbol), where an
      annotation is an Identifier starting with '@'. The new class AnnotationSet
      can be used to restrict the allowed annotations and query presence of annotations
      in the Make* functions.
      
      Bug: v8:7793
      Change-Id: Iad5435d4a94a3bea99aca76c23d2cffffe78a97f
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1601142
      Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
      Reviewed-by: 's avatarSimon Zünd <szuend@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#61334}
      ad010efa
  19. 25 Apr, 2019 1 commit
  20. 24 Apr, 2019 2 commits
  21. 16 Apr, 2019 1 commit
    • Simon Zünd's avatar
      Reland^3 "[torque] Throw exception instead of aborting if something goes wrong" · 2d8f2e86
      Simon Zünd authored
      This is a reland of ffe6940f
      
      The UBSan issue is fixed with https://crrev.com/c/1566511
      
      TBR=tebbi@chromium.org
      
      Original change's description:
      > Reland^2 "[torque] Throw exception instead of aborting if something goes wrong"
      >
      > This is a reland of 251d1623
      >
      > The reland fixes ASAN component builds by adding RTTI build config to both
      > torque executables. Big thanks to sigurds for finding the fix.
      >
      > Original change's description:
      > > Reland "[torque] Throw exception instead of aborting if something goes wrong"
      > >
      > > This is a reland of 3bd49f9b
      > >
      > > The issue on the windows bot is apparently a compiler bug in MSVC related to
      > > move construction. The fix seems to be to change the order of the fields in
      > > "JsonParseResult" (go figure).
      > >
      > > Drive-by-change: Fix LS on windows by emitting correct line endings and
      > > enabling exceptions for the LS executable as well.
      > >
      > > Original change's description:
      > > > [torque] Throw exception instead of aborting if something goes wrong
      > > >
      > > > This CL enables exceptions for the Torque compiler and Torque language
      > > > server. Instead of aborting when something goes wrong during
      > > > compilation, a TorqueError is thrown, containing the error message
      > > > and a source position. The compiler executable still prints the error
      > > > and aborts, while the language server will pass this information
      > > > along to the client (not included in this CL).
      > > >
      > > > R=danno@chromium.org
      > > >
      > > > Bug: v8:8880
      > > > Change-Id: Iad83c46fb6a91c1babbc0ae7dbd94fbe4e7f1663
      > > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1526003
      > > > Reviewed-by: Daniel Clifford <danno@chromium.org>
      > > > Commit-Queue: Simon Zünd <szuend@chromium.org>
      > > > Cr-Commit-Position: refs/heads/master@{#60512}
      > >
      > > Bug: v8:8880
      > > Change-Id: I00e6591bbb4c516dd7540a7e27196853bc637f11
      > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1545995
      > > Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
      > > Commit-Queue: Simon Zünd <szuend@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#60736}
      >
      > Bug: v8:8880
      > Change-Id: Iba198d771169283e83e74324f27aa9e90b8d8975
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1563770
      > Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
      > Commit-Queue: Simon Zünd <szuend@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#60804}
      
      Bug: v8:8880
      Change-Id: I5b7e40ad27bff8f7bfa22240954c2cb75083ad82
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1564065Reviewed-by: 's avatarSimon Zünd <szuend@chromium.org>
      Commit-Queue: Simon Zünd <szuend@chromium.org>
      Auto-Submit: Simon Zünd <szuend@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60860}
      2d8f2e86
  22. 12 Apr, 2019 2 commits
    • Simon Zünd's avatar
      Revert "Reland^2 "[torque] Throw exception instead of aborting if something goes wrong"" · d7801445
      Simon Zünd authored
      This reverts commit ffe6940f.
      
      Reason for revert: Breaks UBSan bot
      
      Original change's description:
      > Reland^2 "[torque] Throw exception instead of aborting if something goes wrong"
      > 
      > This is a reland of 251d1623
      > 
      > The reland fixes ASAN component builds by adding RTTI build config to both
      > torque executables. Big thanks to sigurds for finding the fix.
      > 
      > Original change's description:
      > > Reland "[torque] Throw exception instead of aborting if something goes wrong"
      > >
      > > This is a reland of 3bd49f9b
      > >
      > > The issue on the windows bot is apparently a compiler bug in MSVC related to
      > > move construction. The fix seems to be to change the order of the fields in
      > > "JsonParseResult" (go figure).
      > >
      > > Drive-by-change: Fix LS on windows by emitting correct line endings and
      > > enabling exceptions for the LS executable as well.
      > >
      > > Original change's description:
      > > > [torque] Throw exception instead of aborting if something goes wrong
      > > >
      > > > This CL enables exceptions for the Torque compiler and Torque language
      > > > server. Instead of aborting when something goes wrong during
      > > > compilation, a TorqueError is thrown, containing the error message
      > > > and a source position. The compiler executable still prints the error
      > > > and aborts, while the language server will pass this information
      > > > along to the client (not included in this CL).
      > > >
      > > > R=danno@chromium.org
      > > >
      > > > Bug: v8:8880
      > > > Change-Id: Iad83c46fb6a91c1babbc0ae7dbd94fbe4e7f1663
      > > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1526003
      > > > Reviewed-by: Daniel Clifford <danno@chromium.org>
      > > > Commit-Queue: Simon Zünd <szuend@chromium.org>
      > > > Cr-Commit-Position: refs/heads/master@{#60512}
      > >
      > > Bug: v8:8880
      > > Change-Id: I00e6591bbb4c516dd7540a7e27196853bc637f11
      > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1545995
      > > Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
      > > Commit-Queue: Simon Zünd <szuend@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#60736}
      > 
      > Bug: v8:8880
      > Change-Id: Iba198d771169283e83e74324f27aa9e90b8d8975
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1563770
      > Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
      > Commit-Queue: Simon Zünd <szuend@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#60804}
      
      TBR=sigurds@chromium.org,tebbi@chromium.org,szuend@chromium.org
      
      Change-Id: I30ccec8ac28158c102a4e9a01074432172685f96
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:8880
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1564207Reviewed-by: 's avatarSimon Zünd <szuend@chromium.org>
      Commit-Queue: Simon Zünd <szuend@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60805}
      d7801445
    • Simon Zünd's avatar
      Reland^2 "[torque] Throw exception instead of aborting if something goes wrong" · ffe6940f
      Simon Zünd authored
      This is a reland of 251d1623
      
      The reland fixes ASAN component builds by adding RTTI build config to both
      torque executables. Big thanks to sigurds for finding the fix.
      
      Original change's description:
      > Reland "[torque] Throw exception instead of aborting if something goes wrong"
      >
      > This is a reland of 3bd49f9b
      >
      > The issue on the windows bot is apparently a compiler bug in MSVC related to
      > move construction. The fix seems to be to change the order of the fields in
      > "JsonParseResult" (go figure).
      >
      > Drive-by-change: Fix LS on windows by emitting correct line endings and
      > enabling exceptions for the LS executable as well.
      >
      > Original change's description:
      > > [torque] Throw exception instead of aborting if something goes wrong
      > >
      > > This CL enables exceptions for the Torque compiler and Torque language
      > > server. Instead of aborting when something goes wrong during
      > > compilation, a TorqueError is thrown, containing the error message
      > > and a source position. The compiler executable still prints the error
      > > and aborts, while the language server will pass this information
      > > along to the client (not included in this CL).
      > >
      > > R=danno@chromium.org
      > >
      > > Bug: v8:8880
      > > Change-Id: Iad83c46fb6a91c1babbc0ae7dbd94fbe4e7f1663
      > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1526003
      > > Reviewed-by: Daniel Clifford <danno@chromium.org>
      > > Commit-Queue: Simon Zünd <szuend@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#60512}
      >
      > Bug: v8:8880
      > Change-Id: I00e6591bbb4c516dd7540a7e27196853bc637f11
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1545995
      > Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
      > Commit-Queue: Simon Zünd <szuend@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#60736}
      
      Bug: v8:8880
      Change-Id: Iba198d771169283e83e74324f27aa9e90b8d8975
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1563770Reviewed-by: 's avatarSigurd Schneider <sigurds@chromium.org>
      Commit-Queue: Simon Zünd <szuend@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60804}
      ffe6940f
  23. 10 Apr, 2019 2 commits
    • Maya Lekova's avatar
      Revert "Reland "[torque] Throw exception instead of aborting if something goes wrong"" · 69e90801
      Maya Lekova authored
      This reverts commit 251d1623.
      
      Reason for revert: Breaks ASAN debug builders for ClusterFuzz, see https://ci.chromium.org/p/v8/builders/ci/V8%20Clusterfuzz%20Linux64%20ASAN%20-%20debug%20builder/8115
      
      Original change's description:
      > Reland "[torque] Throw exception instead of aborting if something goes wrong"
      > 
      > This is a reland of 3bd49f9b
      > 
      > The issue on the windows bot is apparently a compiler bug in MSVC related to
      > move construction. The fix seems to be to change the order of the fields in
      > "JsonParseResult" (go figure).
      > 
      > Drive-by-change: Fix LS on windows by emitting correct line endings and
      > enabling exceptions for the LS executable as well.
      > 
      > Original change's description:
      > > [torque] Throw exception instead of aborting if something goes wrong
      > >
      > > This CL enables exceptions for the Torque compiler and Torque language
      > > server. Instead of aborting when something goes wrong during
      > > compilation, a TorqueError is thrown, containing the error message
      > > and a source position. The compiler executable still prints the error
      > > and aborts, while the language server will pass this information
      > > along to the client (not included in this CL).
      > >
      > > R=danno@chromium.org
      > >
      > > Bug: v8:8880
      > > Change-Id: Iad83c46fb6a91c1babbc0ae7dbd94fbe4e7f1663
      > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1526003
      > > Reviewed-by: Daniel Clifford <danno@chromium.org>
      > > Commit-Queue: Simon Zünd <szuend@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#60512}
      > 
      > Bug: v8:8880
      > Change-Id: I00e6591bbb4c516dd7540a7e27196853bc637f11
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1545995
      > Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
      > Commit-Queue: Simon Zünd <szuend@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#60736}
      
      TBR=danno@chromium.org,tebbi@chromium.org,szuend@chromium.org
      
      Change-Id: I0b22db1652bd46fbb7167f75b710ed5e408ea8ac
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:8880
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1561311Reviewed-by: 's avatarMaya Lekova <mslekova@chromium.org>
      Commit-Queue: Maya Lekova <mslekova@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60747}
      69e90801
    • Simon Zünd's avatar
      Reland "[torque] Throw exception instead of aborting if something goes wrong" · 251d1623
      Simon Zünd authored
      This is a reland of 3bd49f9b
      
      The issue on the windows bot is apparently a compiler bug in MSVC related to
      move construction. The fix seems to be to change the order of the fields in
      "JsonParseResult" (go figure).
      
      Drive-by-change: Fix LS on windows by emitting correct line endings and
      enabling exceptions for the LS executable as well.
      
      Original change's description:
      > [torque] Throw exception instead of aborting if something goes wrong
      >
      > This CL enables exceptions for the Torque compiler and Torque language
      > server. Instead of aborting when something goes wrong during
      > compilation, a TorqueError is thrown, containing the error message
      > and a source position. The compiler executable still prints the error
      > and aborts, while the language server will pass this information
      > along to the client (not included in this CL).
      >
      > R=danno@chromium.org
      >
      > Bug: v8:8880
      > Change-Id: Iad83c46fb6a91c1babbc0ae7dbd94fbe4e7f1663
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1526003
      > Reviewed-by: Daniel Clifford <danno@chromium.org>
      > Commit-Queue: Simon Zünd <szuend@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#60512}
      
      Bug: v8:8880
      Change-Id: I00e6591bbb4c516dd7540a7e27196853bc637f11
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1545995Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Commit-Queue: Simon Zünd <szuend@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60736}
      251d1623
  24. 04 Apr, 2019 1 commit
    • Tobias Tebbi's avatar
      [torque] named arguments for constructors · e87e3b1f
      Tobias Tebbi authored
      This changes the syntax for constructing structs and classes to explicitly
      mention the fieldnames, similar to JavaScript object literals.
      The fields still have to be listed in the same order as in the struct/class
      declaration.
      As in Javascript, {foo: foo} can be abbreviated as {foo}.
      
      Example:
      
      macro NewJSArray(implicit context: Context)(
          map: Map, elements: FixedArrayBase): JSArray {
        return new JSArray{
          map,
          properties_or_hash: kEmptyFixedArray,
          elements,
          length: elements.length
        };
      }
      
      Drive-by cleanup: Make struct and class constructors follow the same pattern
                        in the parser and the AST.
      
      Bug: v8:9018 v8:7793
      Change-Id: I22ff7f68270e4f406aa80731a709d41ea52f52bb
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1551999Reviewed-by: 's avatarSigurd Schneider <sigurds@chromium.org>
      Reviewed-by: 's avatarDaniel Clifford <danno@chromium.org>
      Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60622}
      e87e3b1f
  25. 28 Mar, 2019 2 commits
    • Simon Zünd's avatar
      Revert "[torque] Throw exception instead of aborting if something goes wrong" · c3b51ac0
      Simon Zünd authored
      This reverts commit 3bd49f9b.
      
      Reason for revert: Build failure on Win Bot
      
      Original change's description:
      > [torque] Throw exception instead of aborting if something goes wrong
      > 
      > This CL enables exceptions for the Torque compiler and Torque language
      > server. Instead of aborting when something goes wrong during
      > compilation, a TorqueError is thrown, containing the error message
      > and a source position. The compiler executable still prints the error
      > and aborts, while the language server will pass this information
      > along to the client (not included in this CL).
      > 
      > R=​danno@chromium.org
      > 
      > Bug: v8:8880
      > Change-Id: Iad83c46fb6a91c1babbc0ae7dbd94fbe4e7f1663
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1526003
      > Reviewed-by: Daniel Clifford <danno@chromium.org>
      > Commit-Queue: Simon Zünd <szuend@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#60512}
      
      TBR=danno@chromium.org,mvstanton@chromium.org,szuend@chromium.org
      
      Change-Id: Iac253da404eaf6e534267f59a42ca93667c205e4
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:8880
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1543849Reviewed-by: 's avatarSimon Zünd <szuend@chromium.org>
      Commit-Queue: Simon Zünd <szuend@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60513}
      c3b51ac0
    • Simon Zünd's avatar
      [torque] Throw exception instead of aborting if something goes wrong · 3bd49f9b
      Simon Zünd authored
      This CL enables exceptions for the Torque compiler and Torque language
      server. Instead of aborting when something goes wrong during
      compilation, a TorqueError is thrown, containing the error message
      and a source position. The compiler executable still prints the error
      and aborts, while the language server will pass this information
      along to the client (not included in this CL).
      
      R=danno@chromium.org
      
      Bug: v8:8880
      Change-Id: Iad83c46fb6a91c1babbc0ae7dbd94fbe4e7f1663
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1526003Reviewed-by: 's avatarDaniel Clifford <danno@chromium.org>
      Commit-Queue: Simon Zünd <szuend@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60512}
      3bd49f9b
  26. 05 Mar, 2019 1 commit
  27. 04 Feb, 2019 1 commit
  28. 10 Jan, 2019 1 commit
    • Daniel Clifford's avatar
      [torque]: Class declarations · d0e95c7a
      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: 's avatarTobias Tebbi <tebbi@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58704}
      d0e95c7a
  29. 14 Dec, 2018 1 commit
    • Daniel Clifford's avatar
      [builtins] Port GetArgumentsFrameAndCount to Torque · a74afec6
      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: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58253}
      a74afec6
  30. 13 Nov, 2018 1 commit
  31. 02 Nov, 2018 1 commit
  32. 10 Oct, 2018 1 commit
  33. 04 Oct, 2018 1 commit
  34. 13 Sep, 2018 1 commit
  35. 12 Sep, 2018 2 commits