question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Add support for packagcompiler for julia support

See original GitHub issue

cc: @davidanthoff @arnavs This is a specific implementation of the discussion in #601

We have now discussed how best to annotate project files for packagecompiler, which is a prerequisite for getting immediate support in repo2docker

Background Right now, repo2docker doesn’t support the package compiler but:

Extension to the Project File After discussion with maintainers of Julia and the package manager (cc: @KristofferC @aviks) the proposal was to standardize on a section such as the following inside of the Project.toml files:

[deps]
Markdown = "XXXXXXXXXXX"
Random = "XXXXXXX"

[packagecompiler]
compilerflags = "-O3"
packages = ["Markdown", "Random"]

Note that this is not repo2docker specific, and could be used by other backend systems for packagecompile’ing based on a Project and Manifest. It would be hand-modified in the Project.toml.

@SimonDanisch any thoughts on this including the naming or additional options to be able to pass to the compile_incremental?

Implementation of PackageCompiler Support

Now, to implement support repo2docker, we can produce a PR which does the following:

Issue Analytics

  • State:open
  • Created 4 years ago
  • Reactions:1
  • Comments:32 (15 by maintainers)

github_iconTop GitHub Comments

1reaction
davidanthoffcommented, Jun 27, 2019

One more thought: I think we should maybe not yet give up on postBuild.

I think, now that I understand the current state of PackageCompiler.jl better, it is actually not too surprising that we couldn’t get that to work: PackageCompiler.jl currently really doesn’t seem to work with anything but the default julia environment, and of course here in the repo2docker story we use a custom project at the core of the design. So that can’t work out.

But, if PackageCompiler.jl worked properly with julia environments, it really should all just work, or at least I don’t really see a reason why not. So maybe it is worth trying to fix the julia env story in PackageCompiler.jl, and then try the postBuild approach again?

1reaction
davidanthoffcommented, Jun 26, 2019

Yes, thanks @aviks, this is incredibly helpful!

Did juliabox at some point have a custom sysimage? Or did I completely mix that up?

I was not aware that with a custom sysimage, one can’t update packages anymore. I had thought that if I include a package in a custom sysimage, and then do a pkg> up that updates that package, I would lose the benefit of the precompiled stuff, but that my environment would then load the new, updated version of the package. But if I understand things right now, the sysimage version of the package would then essentially take precedence over the version of package in the environment, even if the environment has a newer package version… If that is so, it is a real bummer…

So maybe all of that does speak in favor of an opt-in approach, at least once PackageCompiler.jl is more stable…

I have to admit that I’m not super happy with any of the options here (including not doing anything)…

Read more comments on GitHub >

github_iconTop Results From Across the Web

Pkg - Julia Documentation - The Julia Programming Language
Pkg is Julia's builtin package manager, and handles operations such as installing, updating and removing packages. Note. What follows is a very brief ......
Read more >
Home · PackageCompiler - Julia programming language
PackageCompiler · You can save loaded packages and compiled functions into a file (called a sysimage) that you pass to julia upon startup....
Read more >
Add Julia support · Issue #331 · compiler-explorer ... - GitHub
Is there some documentations on how to add a new language to Compiler Explorer? The standard way in Julia to get the LLVM...
Read more >
Packages · The Julia Language
Julia has a built-in package manager for installing add-on functionality written in Julia. It can also install external libraries using your operating system's ......
Read more >
Deep Dive: Creating Shared Libraries with PackageCompiler.jl
For more info on the Julia Programming Language, follow us on Twitter: ... Want to help add timestamps to our YouTube videos to...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found