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

Building sys.ji takes very long #47

Closed
ViralBShah opened this issue Jun 15, 2011 · 6 comments
Closed

Building sys.ji takes very long #47

ViralBShah opened this issue Jun 15, 2011 · 6 comments
Assignees
Labels
won't change Indicates that work won't continue on an issue or pull request

Comments

@ViralBShah
Copy link
Member

It would be great if all the individual .j files are compiled separately, and then somehow combined into sys.ji. Even a one line modification triggers sys.ji to be built from scratch. Would be nice if it was faster.

@ghost ghost assigned JeffBezanson Jun 15, 2011
@StefanKarpinski
Copy link
Member

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.

@JeffBezanson
Copy link
Member

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.

@StefanKarpinski
Copy link
Member

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.

@JeffBezanson
Copy link
Member

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.

@ViralBShah
Copy link
Member Author

Yes, this solution is perfect. Perhaps github needs to provide a +1 button to give a thumbs up...

@ViralBShah
Copy link
Member Author

With the base library stabilising, this is not as important. Closing as wontfix.

StefanKarpinski pushed a commit that referenced this issue Feb 8, 2018
cmcaine pushed a commit to cmcaine/julia that referenced this issue Sep 24, 2020
hello-world: Update to fit the new canonical data
LilithHafner pushed a commit to LilithHafner/julia that referenced this issue Oct 11, 2021
Added dlo and dhi arguments for kde.
Keno pushed a commit that referenced this issue Oct 9, 2023
Make it easier to create useful bug reports from Julia tests
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
won't change Indicates that work won't continue on an issue or pull request
Projects
None yet
Development

No branches or pull requests

3 participants