PackageCompiler was completely rewritten in 2020, and then StaticCompiler was completely rewritten in 2022. To say it’s not much a lot better is just plain incorrect. These days PackageCompiler works quite well with just one line of code and is actually documented (the version way back then was… bad). StaticCompiler is still limited in application but is quite good for what it handles now. Are they perfect? No, but they have improved at least 10-fold and are used in real industrial applications all of the time (they are used in all applications of JuliaSim for example, which could not have been possible with the old versions).
For details on PackageCompiler’s transformation, see
JuliaLang:master ← JuliaLang:kc/packagecompilerx
opened 02:22PM - 09 Feb 20 UTC
This PR completely replaces PackageCompiler.jl with that of PackageCompilerX.jl.… The maintainers of this package as well as those of PackageCompilerX.jl feels like this is the best way forward.
A few options were considered:
- Just deprecate this repo, rename PackageCompilerX to something else (AppCompiler.jl). There are some drawbacks to this. Firstly, this package name is already pretty good and it would be a shame to waste it. Secondly, it is a bit confusing to have a lot of references spread out over the internet and then have it be deprecated. Also, it would remove the history of everyone contributing to this package which is a shame.
- Just repoint the URL in the registry to PackageCompilerX. This would cause existing manifests to break so it is a non-starter.
Instead, just putting a complete rewrite on top of the existing history felt like the best choice.
Some improvements / changes in PackageCompilerX.jl vs the current PackageCompiler:
- Support for artifacts in Apps. This allows one to distribute apps that depend on e.g. libraries via the artifact system to other machines.
- More CI, including e.g. ARM support.
- Better defaults for cpu targets, matching those that Julia itself uses
- Proper documentation including some examples, tutorials and developer docs.
- No command line interface, this felt like adding a lot of code for little benefit.
- Uses the Artifact system to get a compiler for Windows instead of the largely deprecated WinRPM.
- Drops pre 1.3.1 Julia support.
- There is no need to annotate the entry points of apps with `Base.@ccallable` since that is done automatically.
- The `julia_main` function no longer take any arguments. Just like in normal Julia code, just access the global `ARGS`.
- An app needs to be structured as a package. (project file and `src/Package.jl` file)
I will go through earlier issues and add here which are either fixed by this PR, no longer relevant due to fixes in Julia or changes in PackageCompiler functionality:
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/52
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/83
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/108
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/129
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/131
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/289
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/297
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/290
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/281
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/192
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/277
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/276
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/272
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/271
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/270
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/258
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/255
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/252
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/234
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/233
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/230
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/236
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/228
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/225
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/223
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/222
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/221
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/220
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/215
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/212
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/208
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/202
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/201
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/194
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/193
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/190
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/184
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/223
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/182
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/180
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/163
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/151
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/155
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/154
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/152
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/145
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/141
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/226
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/140
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/138
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/117
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/76
Closes https://github.com/JuliaLang/PackageCompiler.jl/issues/59
Got kinda lost with isues at this point. Will take another pass after this PR is merged.
After this PR is mergd, we should transfer over issues PR from PackgeCompilerX to this repo.
13 Likes