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 support for creating sysimages for Julia tools #1225

Closed
manuelma opened this issue Feb 13, 2021 · 4 comments · Fixed by spine-tools/spine-items#152
Closed

Add support for creating sysimages for Julia tools #1225

manuelma opened this issue Feb 13, 2021 · 4 comments · Fixed by spine-tools/spine-items#152
Assignees
Labels
Feature Possible new feature
Milestone

Comments

@manuelma
Copy link
Collaborator

Sysimages are great for speeding up julia tools which I think can help with new users. Details are here

This will supersede the second task of #1217.

@manuelma manuelma self-assigned this Feb 13, 2021
manuelma pushed a commit to spine-tools/spine-engine that referenced this issue Feb 13, 2021
Re spine-tools/Spine-Toolbox#1225

This is basically so we can set the sysimage for the kernel.
manuelma pushed a commit that referenced this issue Feb 13, 2021
Re #1225

This is mainly so Tool items can create mini engine workers to run
jobs related to creating Julia sysimages.
manuelma pushed a commit to spine-tools/spine-items that referenced this issue Feb 13, 2021
Re spine-tools/Spine-Toolbox#1225

The sysimage is created through a new small new widget that's embedded
in the properties UI, whenever the user switches to a spec of Julia
type. The idea is to extend this concept with the other tool types
as needed, and the code is made for that.

The location of the julia sysimage is added to the Tool item's
dictionary and so it ends up in the project file.
Before using the image, the tool verifies that the file exist to avoid
eventual portability problems.
manuelma pushed a commit to spine-tools/spine-items that referenced this issue Feb 13, 2021
manuelma pushed a commit to spine-tools/spine-items that referenced this issue Feb 13, 2021
Re spine-tools/Spine-Toolbox#1225

- Tool's ExecutableItem now takes an extra argument `options`.
- ToolInstance now creates the execution manager during `prepare()`.
manuelma pushed a commit that referenced this issue Feb 13, 2021
Re #1225

SpineEngineWorker does not need the 'toolbox' argument anymore.
It has been replaced by the engine server address, as toolbox was
only used for that.
manuelma pushed a commit that referenced this issue Feb 13, 2021
manuelma pushed a commit to spine-tools/spine-items that referenced this issue Feb 14, 2021
Re spine-tools/Spine-Toolbox#1225

This is more in line with our approach of sharing widgets across
project items of the same kind. Might have a positive impact on
memory footprint when the hypothetical user decides they want to
create dozens of tools in their project.
manuelma pushed a commit to spine-tools/spine-items that referenced this issue Feb 14, 2021
@ptsavol ptsavol added this to the V0.6 milestone Mar 23, 2021
@ptsavol ptsavol modified the milestones: V0.6, V0.7 Aug 13, 2021
@soininen soininen added the Feature Possible new feature label Sep 14, 2021
@ptsavol
Copy link
Member

ptsavol commented Sep 14, 2021

This should be done. We have the sysimage option in Julia Tool Properties. Please reopen if I missed something.

@manuelma
Copy link
Collaborator Author

I'm pretty sure this is broken at the moment and also, PackageCompiler.jl has become smarter since when we tried and implement this so the process should be simpler.

@soininen
Copy link
Contributor

@manuelma I could give this a try if you don't mind.

@soininen soininen assigned soininen and unassigned manuelma Aug 10, 2023
@manuelma
Copy link
Collaborator Author

Thank you @soininen that would be great. Please let me know if you need any help trying to understand what's already in place.

soininen added a commit to spine-tools/spine-engine that referenced this issue Aug 11, 2023
soininen added a commit that referenced this issue Aug 11, 2023
We now store job id into SpineEngineWorker instead of SpineToolboxProject.
This allows other components to create project-independent engine workers
e.g. when creating Julia sysimages.

Re #1225
soininen added a commit to spine-tools/spine-items that referenced this issue Aug 11, 2023
Creating new Julia sysimages was temporarily disabled because it wasn't
working. This restores the functionality.

- Remove the early return from _create_sysimage() to enable the creation.
- Fix missing job id when creating Spine Engine Worker. There's a corresponding
  Toolbox side fix as well
- Fix Windows paths embedded in Julia code: we must escape '\' in Julia's
  strings.
- Don't supply Julia with the --project keyword if we don't have a project
  (the project is actually @.). There's a corresponding Engine side fix as
  well.
- Code beautification.

Re spine-tools/Spine-Toolbox#1225
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature Possible new feature
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants