-
Notifications
You must be signed in to change notification settings - Fork 35
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
Simplify precompiles #514
Simplify precompiles #514
Conversation
This switches to "do a little work" for precompilation, rather than explicitly spelling out the specific signatures. This should be more maintainable and potentially more exhaustive (or could be made to be so) since it precompiles across runtime dispatch boundaries. There are also a couple of improvements in `step_expr!` inference that I made while trying to track down some invalidations. These weren't the cause, but they don't hurt.
Codecov Report
@@ Coverage Diff @@
## master #514 +/- ##
==========================================
+ Coverage 83.75% 86.70% +2.95%
==========================================
Files 12 12
Lines 2320 2376 +56
==========================================
+ Hits 1943 2060 +117
+ Misses 377 316 -61
Continue to review full report at Codecov.
|
The main thing to think about here is whether we're OK with |
Doesn't feel that costly but is it not possible to use an "anonymous module" á la:
? |
That's the first thing I tried. Here's what happens: julia> using Anon
[ Info: Precompiling Anon [412b51d8-6eb2-47c2-9dc2-53277b3423fe]
ERROR: LoadError: Evaluation into the closed module `anonymous` breaks incremental compilation because the side effects will not be permanent. This is likely due to some other module mutating `anonymous` with `eval` during precompilation - don't do this. |
Could also hide it better with |
I like that suggestion. I've updated this. It doesn't sound like there are any major concerns, so I'll merge. No need to tag immediately, so there's time to revisit this if someone objects. |
This switches to "do a little work" for precompilation,
rather than explicitly spelling out the specific signatures.
This should be more maintainable and potentially more
exhaustive (or could be made to be so) since it
precompiles across runtime dispatch boundaries.
There are also a couple of improvements in
step_expr!
inference that I made while trying to track down some
invalidations. These weren't the cause, but they don't
hurt.