About Julia's development policy regarding Windows

I have run Julia quite a bit in the past, but only on Linux. I have an old computer with Windows 10 installed though and got curious enough to give it a try.
I tried to approach this without leaning too much on my previous knowledge of Julia, to get more of a new user perspective. I might very well have failed this as it can be hard to realise when such knowledge is used.

I installed julia from the windows store as linked above

and it worked fine.
Opening the installed app I get a terminal windows saying

Checking for new Julia versions
Installing Julia 1.11.4+0.x64.w64.mingw32

and checking versioninfo just for reference

julia> versioninfo()
Julia Version 1.11.4
Commit 8561cc3d68 (2025-03-10 11:36 UTC)
Build Info:
  Official https://julialang.org/ release
Platform Info:
  OS: Windows (x86_64-w64-mingw32)
  CPU: 4 × Intel(R) Core(TM) i5-4460  CPU @ 3.20GHz
  WORD_SIZE: 64
  LLVM: libLLVM-16.0.6 (ORCJIT, haswell)
Threads: 1 default, 0 interactive, 1 GC (on 4 virtual cores)

Following the tutorial for the Library

I download the repository, navigate to the examples/ folder using windows command prompt and run julia -q --project as instructed.
This starts Julia, but trying to follow up with using PackageCompiler I run into following error

...
Failed to precompile PackageCompiler [9b87118b-4619-50d2-8e1e-99f35a4d4d9d] to "C:\\Users\\albheim\\.julia\\compiled\\v1.11\\PackageCompiler\\jl_5DD0.tmp".
ERROR: LoadError: ArgumentError: Package RelocatableFolders [05181044-ff0b-4ac5-8273-598c1e38db00] is required but does not seem to be installed:
 - Run `Pkg.instantiate()` to install all recorded dependencies.
...

though luckily it tells med to run Pkg.instantiate() which I do, but now this fails with

ERROR: UndefVarError: `Pkg` not defined in `Main`
Suggestion: check for spelling errors or missing imports.
Hint: Pkg is loaded but not imported in the active module Main.

so I figure I’ll try importing it with import Pkg. This then allows me to first run Pkg.instantiate() and then run using PackageCompiler.

Now for compiling the library, I run the create_library command as suggested which results in following output

julia> create_library("MyLib", "MyLibCompiled";
           lib_name="libinc",
           precompile_execution_file="MyLib/build/generate_precompile.jl",
           precompile_statements_file="MyLib/build/additional_precompile.jl",
           header_files = ["MyLib/build/mylib.h"])
PackageCompiler: bundled libraries:
  ├── Base:
  │    ├── libLLVM-16jl.dll - 81.921 MiB
  │    ├── libatomic-1.dll - 261.672 KiB
  │    ├── libdSFMT.dll - 115.094 KiB
  │    ├── libgcc_s_seh-1.dll - 767.164 KiB
  │    ├── libgfortran-5.dll - 11.162 MiB
  │    ├── libgmp-10.dll - 1.053 MiB
  │    ├── libgmp.dll - 1.053 MiB
  │    ├── libgmpxx-4.dll - 292.898 KiB
  │    ├── libgmpxx.dll - 292.898 KiB
  │    ├── libgomp-1.dll - 1.645 MiB
  │    ├── libjulia-codegen.dll - 103.447 MiB
  │    ├── libjulia-internal.dll - 13.010 MiB
  │    ├── libmpfr-6.dll - 2.526 MiB
  │    ├── libmpfr.dll - 2.527 MiB
  │    ├── libopenlibm.dll - 535.359 KiB
  │    ├── libpcre2-16-0.dll - 711.891 KiB
  │    ├── libpcre2-16.dll - 712.758 KiB
  │    ├── libpcre2-32-0.dll - 684.148 KiB
  │    ├── libpcre2-32.dll - 684.148 KiB
  │    ├── libpcre2-8-0.dll - 774.789 KiB
  │    ├── libpcre2-8.dll - 774.789 KiB
  │    ├── libpcre2-posix-3.dll - 127.047 KiB
  │    ├── libquadmath-0.dll - 1.137 MiB
  │    ├── libssp-0.dll - 143.898 KiB
  │    ├── libstdc++-6.dll - 25.187 MiB
  │    ├── libuv-2.dll - 984.719 KiB
  │    ├── libwinpthread-1.dll - 330.164 KiB
  │    ├── libz.dll - 232.336 KiB
  │    ├── libjulia.dll - 227.359 KiB
  ├── Stdlibs:
  │   ├── OpenBLAS_jll
  │   │   ├── libopenblas64_.dll - 37.669 MiB
  │   ├── libblastrampoline_jll
  │   │   ├── libblastrampoline-5.dll - 2.249 MiB
  Total library file size: 293.037 MiB
  Downloaded artifact: mingw-w64
✔ [04m:40s] PackageCompiler: creating compiler .ji image (incremental=false)
⠸ [01m:43s] PackageCompiler: compiling fresh sysimage (incremental=false)
[pid 10884] waiting for IO to finish:
 Handle type        uv_handle_t->data
 pipe[628]          000001ee4c203820->0000000000000000
✔ [05m:56s] PackageCompiler: compiling fresh sysimage (incremental=false)
✔ [04m:25s] PackageCompiler: compiling nonincremental system image
Precompiling project...
  1 dependency successfully precompiled in 3 seconds
[ Info: PackageCompiler: Executing C:\Users\albheim\Downloads\PackageCompiler.jl-master\PackageCompiler.jl-master\examples\MyLib\build\generate_precompile.jl => C:\Users\albheim\AppData\Local\Temp\jl_packagecompiler_qz6f1M\jl_9A68.tmp
Incremented count: 1 (Cint)
Incremented count: 2 (Cint)
Incremented count: 3 (Cint)
Incremented count: 4 (Cint)
Incremented count: 5 (Cint)
Incremented count: 6 (Cint)
Incremented count: 7 (Cint)
Incremented count: 8 (Cint)
Incremented count: 9 (Cint)
Incremented count: 10 (Cint)
[ Info: PackageCompiler: Done
✔ [04m:25s] PackageCompiler: compiling incremental system image

In the beginning the Julia processes seem to use around 30% CPU and 1GB ram, though for the “compiling incremental system image” it went up to 50% CPU over 4GB of ram.
Then it was done, having generated a bunch of dlls in the MyLibCompiled folder. I never tried to actually use them though as it seemed the problem discussed here were regarding the earlier stages.

So contrary to your claim that

I think this shows it is at least possible to have an okay beginner experience with Julia and PackageCompiler on Windows. And while I did run in to some small friction, it was reasonably well explained what I needed to do when something failed, so I think I could overcome it without too much implicit knowledge.

Moving on to try to help you with your problem, are there any obvious differences between our systems or in the steps we performed? In the thread linked in OP, I saw you had both tried installing Julia on a network drive which was mentioned as a potential problem, and when you tried to install it locally you mentioned you did an admin install. Have you tried just the standard user install also? Have you tried the juliaup installer?

Are there any other problems with Julia, or is it working fine except PackageCompiler?

Could it be an issue with RAM? If you run out and have to start using swap space (I assume windows does this too?) that could slow everything down significantly. Though it seems you got stuck at the nonincremental image generation, at which point I only had around 1GB RAM used by the Julia processes.

19 Likes