Comments (6)
Realistically, only Jeff can do this. I'm also not sure if it's even possible. My understanding of the way this works is that incremental compilation is a non-starter, but Jeff is going to have to comment on that.
from julia.
The problem is inlining. Or when f calls g, even if g is not inlined, f's inferred type depends on information about g. It's very true that allowing separate compilation is a desirable feature of a type system, but we don't have it.
Actually, there is a way to rebuild sys.ji faster. The idea is to "edit" the image by starting julia with your current system image, then loading your changed files, then saving the system image again. This will work for changes that not too many things depend on. Eventually I can implement something that traverses dependencies and makes sure everything that needs to gets re-compiled. This is the way to do it.
from julia.
That's a cool idea and would be really awesome. We need some sort of dependency tracking in order for methods to get recompiled when other methods that they depend on change anyway. Would implementing that have the desired effect? Currently, when you redefine a method, you then have to also redefine any methods that used that function.
from julia.
Yes, I think that is the real issue here. I need to do it at some point anyway. Once that is done, the way to build sys.ji will be to start julia with the current sys.ji, then call load
on files newer than sys.ji, then save the image again. It will only take as long as necessary, depending how deep your changes go. That would be perfect.
from julia.
Yes, this solution is perfect. Perhaps github needs to provide a +1 button to give a thumbs up...
from julia.
With the base library stabilising, this is not as important. Closing as wontfix.
from julia.
Related Issues (20)
- Explicit GC.gc call does not reclaim memory on 1.11 and master HOT 7
- "@ref adding-tests-to-packages" is broken HOT 2
- BUG: `clamp(typemax(UInt64), Int64)` errors HOT 4
- Base.summarysize misses null byte of String HOT 1
- Native BFloat16 support not working on AMD EPYC 9554 HOT 6
- Code warntype should show print the unstable SSA values in red/yellow
- Unoptimal inference when function has error in a implicit return HOT 3
- Bad backtraces because codeloc compression does not roundtrip properly HOT 2
- make install with Julia v1.11.0-beta1 "Tarball with dependencies" hangs (Building HTML documentation) HOT 1
- Dot broadcast doesn't work with `do ... end` HOT 1
- Provide a julia alternative of `pthread_once` HOT 2
- `opaque_closure` test segfaulting on aarch64-linux-gnu HOT 4
- Use of `Base.MainInclude.eval` no longer works on 1.11 HOT 6
- Allow symlink'd startup.jl file HOT 2
- Error in Sqrt for julia > 1.10.2 HOT 1
- More helpful error message with `open(~/path/to/file.txt)` HOT 3
- Add command line option to for "inline script" mode HOT 2
- Basic repl interaction not fully precompiled HOT 6
- jl_eval_string(code) for some pieces of code no longer works (julia-1.11.0-beta1) - C wrapper (libjulia.so) HOT 4
- Change in behavior of `UndefVarError(::Symbol)` constructor breaks `@test_throws` in 1.11.0-beta1 HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from julia.