./build/bin/app_test_exe
Hello World!
ls -lh build/bin/app_test_exe
-rwxr-xr-x@ 1 gabrielbaraldi staff 1.1M Oct 6 17:22 ./build/bin/app_test_exe*
So, when Julia for MCUs? Comon, we have to show to all those micropython bigots!
./build/bin/app_test_exe
Hello World!
ls -lh build/bin/app_test_exe
-rwxr-xr-x@ 1 gabrielbaraldi staff 1.1M Oct 6 17:22 ./build/bin/app_test_exe*
So, when Julia for MCUs? Comon, we have to show to all those micropython bigots!
You might want to play with GitHub - Seelengrab/MCUCompiler.jl ![]()
People saying that “hello world” compiled by juliac is 1.1M (I get 1.6M on my machine) is a bit misleading, as is the description of these binaries as distributable. The binary doesn’t run unless it sits alongside (in my case) 130M of other files (which juliac puts in lib and share). So really “hello world” here is 132M.
“Hello world” in Fortran, compiled by gfortran, gets me a 16k binary, and I can run it on any Linux machine.
I should mention that this repo is waaaayy before --trim , and definitely completely incompatible
They’re very different approaches
It still needs libc.so which is ~300K. It is just present on any linux machine.
Baby steps. The big ones are that julia depends on several libraries and tries to load them by default. We want to change that but it’s not there yet. (The biggest culprits are BLAS and friends)
I’m pretty sure openblas isn’t loaded at Julia startup in v1.13, but only when you call a function in it for the first time. That’s at least what I noticed when starting Julia with OPENBLAS_VERBOSE=2
Just getting Julia to compile (in an official release) is a BIG STEP. Not baby steps. Sure it is 130 MEGABYTES but try old versions of Julia where you CANNOT compile the source code to binary at all. Huge step in the right direction.