PackageCompiler.jl
Revise.jl
Our great sponsors
PackageCompiler.jl | Revise.jl | |
---|---|---|
26 | 6 | |
1,364 | 1,142 | |
1.5% | - | |
7.8 | 7.9 | |
4 days ago | 18 days ago | |
Julia | Julia | |
MIT License | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
PackageCompiler.jl
-
Potential of the Julia programming language for high energy physics computing
Yes, julia can be called from other languages rather easily, Julia functions can be exposed and called with a C-like ABI [1], and then there's also various packages for languages like Python [2] or R [3] to call Julia code.
With PackageCompiler.jl [4] you can even make AOT compiled standalone binaries, though these are rather large. They've shrunk a fair amount in recent releases, but they're still a lot of low hanging fruit to make the compiled binaries smaller, and some manual work you can do like removing LLVM and filtering stdlibs when they're not needed.
Work is also happening on a more stable / mature system that acts like StaticCompiler.jl [5] except provided by the base language and people who are more experienced in the compiler (i.e. not a janky prototype)
[1] https://docs.julialang.org/en/v1/manual/embedding/
[2] https://pypi.org/project/juliacall/
[3] https://www.rdocumentation.org/packages/JuliaCall/
-
Making Python 100x faster with less than 100 lines of Rust
One of Julia's Achilles heels is standalone, ahead-of-time compilation. Technically this is already possible [1], [2], but there are quite a few limitations when doing this (e.g. "Hello world" is 150 MB [7]) and it's not an easy or natural process.
The immature AoT capabilities are a huge pain to deal with when writing large code packages or even when trying to make command line applications. Things have to be recompiled each time the Julia runtime is shut down. The current strategy in the community to get around this seems to be "keep the REPL alive as long as possible" [3][4][5][6], but this isn't a viable option for all use cases.
Until Julia has better AoT compilation support, it's going to be very difficult to develop large scale programs with it. Version 1.9 has better support for caching compiled code, but I really wish there were better options for AoT compiling small, static, standalone executables and libraries.
-
What's Julia's biggest weakness?
Doesn’t work on Windows, but https://github.com/JuliaLang/PackageCompiler.jl does.
-
I learned 7 programming languages so you don't have to
Also, you can precompile a whole package and just ship the binary. We do this all of the time.
https://github.com/JuliaLang/PackageCompiler.jl
And getting things precompiled: https://sciml.ai/news/2022/09/21/compile_time/
-
Julia performance, startup.jl, and sysimages
You can have a look at PackageCompiler.jl
- Is it possible to create a Python package with Julia and publish it on PyPi?
- GenieFramework – Web Development with Julia
-
Julia for health physics/radiation detection
You're probably dancing around the edges of what [PackageCompiler.jl](https://github.com/JuliaLang/PackageCompiler.jl) is capable of targeting. There are a few new capabilities coming online, namely [separating codegen from runtime](https://github.com/JuliaLang/julia/pull/41936) and [compiling small static binaries](https://github.com/tshort/StaticCompiler.jl), but you're likely to hit some snags on the bleeding edge.
-
Which programming language or compiler is faster
This is total misinformation, sorry. Julia may, depending on your setup, be slow to initially load, but the compiler is quite fast generally.
Also, there's a solution to precompile binaries with no JIT penalty...
https://github.com/JuliaLang/PackageCompiler.jl
Enjoy!
-
Is rust good for mathematical computing?
*: This is possible in Julia using PackageCompiler.jl but it ships the entire runtime, so big binaries, and the process isn't too smooth yet. In theory, you're definitely capable of compiling into small binaries that don't embed the runtime or at least a big chunk of it, but nobody has worked on this enough yet
Revise.jl
- Julia and Mojo (Modular) Mandelbrot Benchmark
- Tutorial Series to learn Common Lisp quickly
-
Do you use Julia for general purpose tasks?
Do you try using Revise.jl? Reloads function definitions for you. Indispensable.
-
Reloadr – Hot code reloading tool for Python
In Julia, this can be done with even less efforts on the user-side by loading Revise (https://github.com/timholy/Revise.jl) before any other package you load.
-
Julia Update: Adoption Keeps Climbing; Is It a Python Challenger?
Julia has some packages to address this now.
What are some alternatives?
StaticCompiler.jl - Compiles Julia code to a standalone library (experimental)
julia - The Julia Programming Language
Genie.jl - 🧞The highly productive Julia web framework
LuaJIT - Mirror of the LuaJIT git repository
Dash.jl - Dash for Julia - A Julia interface to the Dash ecosystem for creating analytic web applications in Julia. No JavaScript required.
PyCall.jl - Package to call Python functions from the Julia language
Transformers.jl - Julia Implementation of Transformer models
ModelingToolkit.jl - An acausal modeling framework for automatically parallelized scientific machine learning (SciML) in Julia. A computer algebra system for integrated symbolics for physics-informed machine learning and automated transformations of differential equations
db-benchmark - reproducible benchmark of database-like ops
Chain.jl - A Julia package for piping a value through a series of transformation expressions using a more convenient syntax than Julia's native piping functionality.
jurigged - Hot reloading for Python