From 0da6d5abc67f7b4d90038e6efa4df8e38e98a8be Mon Sep 17 00:00:00 2001 From: Romeo Valentin Date: Thu, 31 Jul 2025 16:21:42 -0700 Subject: [PATCH] Redo `runicc.jl` for julia v1.12.0-rc1 --- juliac/runicc.jl | 23 ++++++----------------- 1 file changed, 6 insertions(+), 17 deletions(-) diff --git a/juliac/runicc.jl b/juliac/runicc.jl index 101f339..7bc44bc 100644 --- a/juliac/runicc.jl +++ b/juliac/runicc.jl @@ -1,22 +1,11 @@ -module RunicC - using Runic: Runic # Compileable main function corresponding to `int main(int argc, char** argv)` -Base.@ccallable function main(argc::Cint, argv::Ptr{Ptr{UInt8}})::Cint - # Load command line arguments. Note that the first argument is the - # executable name so we skip it. - args = Vector{String}(undef, argc - 1) - for i in 2:argc - argptr = unsafe_load(argv, i) - arg = unsafe_string(argptr) - args[i - 1] = arg +function @main(args::Vector{String})::Cint + if length(args) == 1 + Runic.print_help() + return 0 + else + return Runic.main(args[2:end]) end - # Call Runic's main function - return Runic.main(args) -end - -# Tell juliac about the main entrypoint -Base.Experimental.entrypoint(main, (Cint, Ptr{Ptr{UInt8}})) - end