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)
- a compiler flag to ignore all uses of `@assume_effects`?
- Race Condition: `Test.@test_logs` is not thread safe. HOT 1
- Installation of DiffEqBase fails when not connected to power HOT 3
- LLVM Error out of memory on CI on32-bit GNU linux `compileall`(?)
- Keyword arguments emitted by macros don't get gensym'd
- Interest for an `Iterators.nth(x, n)` API? HOT 4
- `iterate` returns tuple for non-existent state HOT 6
- Should n-arg fastmath addition default to using to 2-arg fastmath addition for all types HOT 1
- suboptimal return type inference for `Base.setindex`
- Stdlib pkgimages seems to be compiled with generic target HOT 2
- Broadcast with missing destroys sparsity
- eltype of Symmetric or Hermitian matrix of matrices is AbstractMatrix HOT 9
- Keyword arguments can be placed anywhere in a function call HOT 1
- Julia's target parsing/detecting deserves a refactor HOT 1
- `help` in normal mode REPL acts strange HOT 1
- `checked_rem` and `checked_mod` don't follow the same promotion rules as regular rem and mod
- `@doc` (`MD` object) doesn't print with horizontal bars between methods, which can mislead the reader.
- support syntax `macro OtherPackage.theirmacro(args...) ... end`
- Feature request: Non allocating sort for tuple HOT 1
- suboptimal return type inference for `reverse(::Tuple)` on v1.11 and master HOT 3
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.