Skip to content

Cache non-incremental base system image to reduce cycle timesΒ #841

@sloede

Description

@sloede

Would it be possible to cache the non-incremental base system image created first when using incremental=false? On my machine, this step alone takes usually between 2 and 3 minutes (see #839), making the development cycle with PC.jl painfully slow.

I see at least two variants how this could be achieved:

  1. Allow the user to control this manually by providing a base_sysimage_cache argument to create_sysimage (and create_library, create_app). By default it is nothing, but if set, an existing cache file will be read in and/or written out to the given locations. This requires the user to figure out when it is OK to reuse the base image and when it is not.
  2. Enable automatic caching by providing a base_sysimage_cache argument to create_sysimage. It should be the path to a folder where create_sysimage will store the base sysimage plus information it needs to determine whether it is safe to reuse the image or not (e.g., by verifying the arguments to create_fresh_sysimage are identical, plus relevant Julia command line args that affect compilation).

To me, the first variant seems not too hard to implemented, and it could be later augmented to the second variant (and/or an automatic cache management using Scratch.jl managed storage).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions