1. 22 Aug, 2019 1 commit
    • Simon Zünd's avatar
      Introduce "-m32" compilation mode for Torque · 4f0ee93b
      Simon Zünd authored
      Forge (Google3) can only run 64-bit executables. As Torque runs as part
      of the build process, we need a 32-bit "cross-compile" mode when
      we target 32-bit architectures. Note that this flag won't be needed
      in Chromium/V8 land, since we build V8 with the same bit width as
      the target architecture.
      
      This CL adds a new runtime flag to torque "-m32". When enabled, the
      flag forces 32-bit word sizes for various pointer/word sizes. By
      default, the host system sizes from {src/commons/globals.h}
      are used.
      
      R=tebbi@chromium.org
      
      Bug: v8:9641
      Change-Id: I8701eec45e3fb59dc65049b0a679d34589c4127f
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1763540
      Commit-Queue: Simon Zünd <szuend@chromium.org>
      Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#63334}
      4f0ee93b
  2. 05 Jun, 2019 1 commit
  3. 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
  4. 14 May, 2019 1 commit
  5. 08 May, 2019 1 commit
    • Simon Zünd's avatar
      Reland "[torque] Introduce force_assert_statements compiler option" · 2e3862d7
      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: 's avatarSigurd Schneider <sigurds@chromium.org>
      Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#61315}
      2e3862d7
  6. 07 May, 2019 2 commits
  7. 24 Apr, 2019 1 commit
    • Simon Zünd's avatar
      [torque] Collect lint errors for later processing · 1397697e
      Simon Zünd authored
      This CL changes lint errors to not be printed directly to stderr.
      Instead, they are collected in a list that gets surfaced via
      the TorqueCompilerResult. This is done so they can be presented
      to language server clients.
      
      This change also removes the "abort_on_lint_errors" option.
      API users can now decide for themselves what to do, depending on
      the presence of lint errors in the returned list.
      
      R=sigurds@chromium.org, tebbi@chromium.org
      
      Bug: v8:8880
      Change-Id: I44601010491aafcf4c8609fd8c115219317506a4
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1581608Reviewed-by: 's avatarSigurd Schneider <sigurds@chromium.org>
      Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60983}
      1397697e
  8. 16 Apr, 2019 2 commits
    • Simon Zünd's avatar
      [torque] Refactor compiler interface to not 'leak' contextuals · 724d6586
      Simon Zünd authored
      The Torque compiler makes heavy use of scoped globals (contextuals).
      This created a problem for the design of the compiler interface:
      
          - Either the compiler provides all the necessary scopes itself,
            disallowing callers any access to the contextuals, which might
            contain data the caller is interested in (such as the
            compilation result).
          - Or the caller provides all the necessary scopes.
      
      This design was fine when the compiler executable was the only user.
      With the recent addition of unit tests and the language server, this
      interface became brittle, as missing scopes are only detected at
      runtime.
      
      This CL refactors the compiler interface to not leak contextual
      scopes past the interface boundary. Content of contextuals is
      collected and returned, providing access for the caller and freedom
      to either use the data directly or move it into the callers own scopes.
      
      R=sigurds@chromium.org
      
      Bug: v8:7793
      Change-Id: Ieb988522d08fc6026b3fb74d976008e566146770
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1529000
      Commit-Queue: Simon Zünd <szuend@chromium.org>
      Reviewed-by: 's avatarSigurd Schneider <sigurds@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60867}
      724d6586
    • 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
  9. 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
  10. 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
  11. 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
  12. 28 Feb, 2019 1 commit
    • Simon Zünd's avatar
      [torque] Introduce LanguageServerData class · 3f057d44
      Simon Zünd authored
      This CL introduces a new contextual 'LanguageSererData'. Its purpose
      is to hold all the eagerly calculated data needed to answer
      language server requests. The first thing collected are the
      definitoins of some IdentifierExpresisons and macro/builtin
      call-sites.
      
      Collecting this data is not necessary for normal compilation, so it
      is disabled by default and can be enabled via a Torque compiler
      option. Since the holder class is a contextual for which no scope
      exists during normal compilation, accidental collection of
      unnecessary language server data *should* be prevented.
      
      R=tebbi@chromium.org
      
      Bug: v8:7793
      Change-Id: Iffcebad4c420a0a51b1ed3c37a37c3475c6ab2e8
      Reviewed-on: https://chromium-review.googlesource.com/c/1491594Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Commit-Queue: Simon Zünd <szuend@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59941}
      3f057d44
  13. 20 Feb, 2019 1 commit
  14. 29 Jan, 2019 1 commit
  15. 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
  16. 13 Nov, 2018 1 commit
  17. 05 Nov, 2018 1 commit
    • Tobias Tebbi's avatar
      [torque] cleanup generics and scopes · 06c8ce59
      Tobias Tebbi authored
      - Name lookup in module scopes has namespace semantics now: All
        overloads from all parent modules are combined before overload
        resolution.
      - Allow overloads of different callables: runtime-functions,
        macros, builtins, and generics.
      - The duplication between the DeclarationVisitor and the
        ImplementationVisitor is removed: The DeclarationVisitor creates
        declarables for everything except for implicit generic specializations.
        The ImplementationVisitor iterates over declarables.
        The DeclarationVisitor only looks at the header of declarations, not
        at the body.
      - Modules become Declarable's, which will enable them to be nested.
      - Modules replace the existing Scope chain mechanism, which will make it
        easier to inline macros.
      - The DeclarationVisitor and Declarations become stateless. All state is
        moved to contextual variables and the GlobalContext.
      - Implicit specializations are created directly from the
        ImplementationVisitor. This will enable template parameter inference.
      - As a consequence, the list of all builtins is only available after the
        ImplementationVisitor has run. Thus GenerateBuiltinDefinitions has to
        move to the ImplementationVisitor. Also, this makes it necessary to
        resolve the link from function pointer types to example builtins only
        at this point.
      
      
      Bug: v8:7793
      Change-Id: I61cef2fd3e954ab148c252974344a6e38ee2d01d
      Reviewed-on: https://chromium-review.googlesource.com/c/1304294
      Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      Reviewed-by: 's avatarDaniel Clifford <danno@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#57231}
      06c8ce59
  18. 11 Sep, 2018 1 commit
  19. 24 Jul, 2018 1 commit
  20. 20 Jul, 2018 1 commit
  21. 13 Jun, 2018 1 commit
  22. 30 May, 2018 1 commit
  23. 23 May, 2018 1 commit
  24. 16 May, 2018 1 commit
  25. 03 May, 2018 1 commit
    • Daniel Clifford's avatar
      Refactor/cleanup various Torque classes, inclduing making Type a Declarable · 90415437
      Daniel Clifford authored
      This is a preparatory step for implementing generics. Along the way, clean up
      and encapsulate a bunch of code, including:
      
      * Fully encapsulate Scope by adding the new class ScopeChain that provide an
        abstraction for creating and activating scopes.
      * Untangle Modules and Scopes.
      * Unify scope activation so that it is always associated with an AST node
        and triggered by a RAII helper class.
      * Unify (somewhat) how builtins and macros are created, fixing a few
        inconsistencies with when and how parameters and their types are declared.
      * Create a new Declarations class that brokers between the visitor classes and
        the ScopeChain. This moves handling of declaration-related errors out of the
        visitors but also makes it possible to do so without polluting Scope and
        ScopeChain with details about resolving SourcePositions in error cases.
      
      Change-Id: I180017d4cf39ccf5ef1d20b84f53284c252f8d87
      Reviewed-on: https://chromium-review.googlesource.com/1038504
      Commit-Queue: Daniel Clifford <danno@chromium.org>
      Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52947}
      90415437
  26. 24 Apr, 2018 1 commit
  27. 16 Apr, 2018 1 commit
    • Daniel Clifford's avatar
      Torque: Implement a DSL for CSA · a3353da8
      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: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52618}
      a3353da8