Comments (7)
on the other hand, I think eventually we are going to make IonCLI a self-contained executable, which means it will ship with a small libjulia
so I think all these issues won't happen for IonCLI side in the future, but I still need to wait for the progress of PackageCompiler.
from comonicon.jl.
let users to build it manually via a generated function
XX.comonicon_build()
Here's my reasoning: If building the sysimage is just an optional optimization step, and if users could use XX
without building the symimage, it is okay to not build them by default. But if not, since he/she has to build the sysimage manually to use the functionality, not running a fallback solution seems not that friendly.
from comonicon.jl.
Whether we should build sysimage as a fallback solution is not the key problem here. It is just a way to make sure things functioning; it could be slow to build but it is reliable.
Take the example of IonCLI
, we should either provide a way to use IonCLI
without sysimage, or provide better sysimage support/coverage.
from comonicon.jl.
for a complicated CLI application like IonCLI, it will take a lot of time to start, I think fallback to local system build should be a better workaround.
provide better sysimage support/coverage.
The main issue is PackageCompiler cannot generate the correct system image on GitHub action, and I'm not sure about why. Yeah, I agree if we treat the downloaded system image as an optimization, then building locally is something acceptable. I'll bring back the old behaviour on this.
from comonicon.jl.
It seems that this still doesn't work:
┌ Error: Error building `IonCLI`:
│ ERROR: LoadError: ArgumentError: Package Test not found in current path:
│ - Run `import Pkg; Pkg.add("Test")` to install the Test package.
│
│ Stacktrace:
│ [1] require(::Module, ::Symbol) at ./loading.jl:893
│ [2] include(::Function, ::Module, ::String) at ./Base.jl:380
│ [3] include(::Module, ::String) at ./Base.jl:368
│ [4] exec_options(::Base.JLOptions) at ./client.jl:296
│ [5] _start() at ./client.jl:506
│ in expression starting at /Users/jc/.julia/packages/IonCLI/04Jl6/test/runtests.jl:3
│ ┌ Error: Download failed: curl: (22) The requested URL returned error: 404 Not Found
│ └ @ Base download.jl:43
│ ┌ Warning: fail to download https://github.com/Roger-luo/IonCLI.jl/releases/download/v0.5.0/ion-1.5.1-darwin-x86_64.tar.gz, building the system image locally
│ └ @ Comonicon.BuildTools ~/.julia/packages/Comonicon/aSFTN/src/tools/build.jl:295
from comonicon.jl.
Yeah, this is because when building system image, we will execute tests to generate precompile statements. I just updated IonCLI, can you check if this works for you now?
from comonicon.jl.
Great! It works now. 🎉
from comonicon.jl.
Related Issues (20)
- [BUG] Custom `JULIA_DEPOT_PATH` not being respected HOT 1
- [BUG] SysImg install incompatible with submodules HOT 1
- doc link 404 HOT 3
- julia args HOT 1
- [Request] Allow short option to not be first letter of long HOT 5
- [BUG] sysimage_build_args isn' t configurable
- [BUG] Infinite build time on Julia 1.10 HOT 13
- [BUG] test failing for hint
- Control the empty lines in the usage doc HOT 2
- Base now exports `@main` HOT 3
- Provide overloads of `tryparse` for common stdlib types
- [BUG] Command description not printin in help
- [feature request] Run `command_main()` only when running script frome the command line HOT 2
- [BUG] `Vararg` does not work on recent Julia versions
- [BUG] Help text wraps; terminal width not detected correctly HOT 2
- [BUG] ERROR: System image file failed consistency check: maybe opened the wrong version?
- Sysimage precompilation error on Github CI / Docker image
- Clarify README about what this package does HOT 2
- PackageCompiler fails to build standalone app because it attempts to bundle mingw-w64 [BUG]
- [BUG] documentation not upto date with `ion`
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from comonicon.jl.