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

Add a @compile directive to disable interpreter #42128

Merged
merged 1 commit into from
Sep 10, 2021
Merged

Conversation

timholy
Copy link
Member

@timholy timholy commented Sep 5, 2021

We currently use a while false; end hack to disable to interpreter,
and this is getting more widely used outside of base. Unfortunately,
improvements to the interpreter that would allow us to interpret loops
would defeat the intention. This allows developers to annotate blocks
with @compile to specify that they want to force the compiler to run
on this block.

We currently use a `while false; end` hack to disable to interpreter,
and this is getting more widely used outside of base. Unfortunately,
improvements to the interpreter that would allow us to interpret loops
would defeat the intention. This allows developers to annotate blocks
with `@compile` to specify that they want to force the compiler to run
on this block.
Copy link
Member

@aviatesk aviatesk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. This is great to have.

@aviatesk aviatesk requested a review from vtjnash September 6, 2021 10:22
@aviatesk aviatesk merged commit 5405994 into master Sep 10, 2021
@aviatesk aviatesk deleted the teh/nointerpret branch September 10, 2021 00:09
timholy added a commit that referenced this pull request Sep 25, 2021
There was an unintended collision in meaning between #42128 and #37041.
Since both use the `Expr(:meta)` mechanism, it doesn't really seem
feasible to have them both use the same name. Consequently, it's
better to rename the newer meaning.

Fixes #42373
timholy added a commit that referenced this pull request Sep 28, 2021
This more explicit directive distinguishes `@compile`
(now moved to Experimental) from `@compiler_options`
(which uses the same `:compile` symbol). It eliminates
a collision between #42128 and #37041.

Fixes #42373
Closes #42379
JeffBezanson pushed a commit that referenced this pull request Oct 20, 2021
There was an unintended collision in meaning between #42128 and #37041.
Since both use the `Expr(:meta)` mechanism, it doesn't really seem
feasible to have them both use the same name. Consequently, it's
better to rename the newer meaning.

Fixes #42373
JeffBezanson pushed a commit that referenced this pull request Oct 21, 2021
There was an unintended collision in meaning between #42128 and #37041.
Since both use the `Expr(:meta)` mechanism, it doesn't really seem
feasible to have them both use the same name. Consequently, it's
better to rename the newer meaning.

Fixes #42373
timholy added a commit that referenced this pull request Oct 22, 2021
There was an unintended collision in meaning between #42128 and #37041.
Since both use the `Expr(:meta)` mechanism, it doesn't really seem
feasible to have them both use the same name. Consequently, it's
better to rename the newer meaning.

Fixes #42373
LilithHafner pushed a commit to LilithHafner/julia that referenced this pull request Feb 22, 2022
We currently use a `while false; end` hack to disable to interpreter,
and this is getting more widely used outside of base. Unfortunately,
improvements to the interpreter that would allow us to interpret loops
would defeat the intention. This allows developers to annotate blocks
with `@compile` to specify that they want to force the compiler to run
on this block.
LilithHafner pushed a commit to LilithHafner/julia that referenced this pull request Feb 22, 2022
There was an unintended collision in meaning between JuliaLang#42128 and JuliaLang#37041.
Since both use the `Expr(:meta)` mechanism, it doesn't really seem
feasible to have them both use the same name. Consequently, it's
better to rename the newer meaning.

Fixes JuliaLang#42373
LilithHafner pushed a commit to LilithHafner/julia that referenced this pull request Mar 8, 2022
We currently use a `while false; end` hack to disable to interpreter,
and this is getting more widely used outside of base. Unfortunately,
improvements to the interpreter that would allow us to interpret loops
would defeat the intention. This allows developers to annotate blocks
with `@compile` to specify that they want to force the compiler to run
on this block.
LilithHafner pushed a commit to LilithHafner/julia that referenced this pull request Mar 8, 2022
There was an unintended collision in meaning between JuliaLang#42128 and JuliaLang#37041.
Since both use the `Expr(:meta)` mechanism, it doesn't really seem
feasible to have them both use the same name. Consequently, it's
better to rename the newer meaning.

Fixes JuliaLang#42373
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants