• 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
Name
Last commit
Last update
benchmarks Loading commit data...
build_overrides Loading commit data...
custom_deps Loading commit data...
docs Loading commit data...
gni Loading commit data...
include Loading commit data...
infra Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
testing Loading commit data...
third_party Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.clang-tidy Loading commit data...
.editorconfig Loading commit data...
.git-blame-ignore-revs Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.vpython Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
LICENSE Loading commit data...
LICENSE.fdlibm Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...
snapshot_toolchain.gni Loading commit data...