Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(compiler) Make compiled mode be the default and drop interpreted mode #465

Merged
merged 1 commit into from
Apr 26, 2024

Conversation

perlun
Copy link
Collaborator

@perlun perlun commented Apr 24, 2024

This is the biggest change for a while. Because
#406 is moving along nicely, we are now ready to:

  • Flip the switch, i.e. make compiled mode the default for Perlang.
  • Remove the PerlangInterpreter class in its entirety. This may be reimplemented in one form or another, once we have the LLVM-emitting backend in place, but not as a tree-walking interpreter.

This probably means we'll drop Windows (and perhaps macOS) support for a while. Please don't despair; this is not intended to be permanent. While we depend on a specific Clang version for compiling Perlang code, it simply gets easier to not have to support too many platforms. Once we have started emitting C++ code from Perlang, in an idempotent way (being able to disable all timestamping etc in the file header), we could see how hard it would be to get this Perlang-to-C++-transpiled code compiling on macOS and Windows too.

@perlun perlun added the experimental compilation Issues which are relevant when using experimental compilation label Apr 24, 2024
@perlun perlun force-pushed the cleanup/remove-interpreted-mode branch 3 times, most recently from e124496 to 390403d Compare April 25, 2024 20:18
This is the biggest change for a while. Because
#406 is moving along
nicely, we are now ready to:

* Flip the switch, i.e. _make compiled mode the default_ for Perlang.
* Remove the PerlangInterpreter class in its entirety. This may be
  reimplemented in one form or another, once we have the LLVM-emitting
  backend in place, but not as a tree-walking interpreter.

This probably means we'll drop Windows (and perhaps macOS) support for a
while. Please don't despair; this is not intended to be permanent. While
we depend on a specific Clang version for compiling Perlang code, it
simply gets easier to not have to support too many platforms. Once we
have started emitting C++ code from Perlang, in an idempotent way (being
able to disable all timestamping etc in the file header), we could see
how hard it would be to get this Perlang-to-C++-transpiled code
compiling on macOS and Windows too.
@perlun perlun force-pushed the cleanup/remove-interpreted-mode branch from 390403d to 7347831 Compare April 26, 2024 20:20
@perlun perlun added this to the 0.5.0 milestone Apr 26, 2024
@perlun perlun merged commit 315b642 into master Apr 26, 2024
11 checks passed
@perlun perlun deleted the cleanup/remove-interpreted-mode branch April 26, 2024 20:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
experimental compilation Issues which are relevant when using experimental compilation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant