Skip to content

Commit e8389e8

Browse files
remove use of jl_set_value on 1.9. fix UndefVarError for new nightly error formatting (#709)
Co-authored-by: Ian Butterworth <[email protected]>
1 parent 9537cdd commit e8389e8

3 files changed

Lines changed: 14 additions & 4 deletions

File tree

docs/src/devdocs/binaries_part_2.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -175,8 +175,12 @@ int main(int argc, char *argv[])
175175
jl_set_ARGS(argc, argv);
176176

177177
// Set PROGRAM_FILE to argv[0].
178-
jl_set_global(jl_base_module,
179-
jl_symbol("PROGRAM_FILE"), (jl_value_t*)jl_cstr_to_string(argv[0]));
178+
#if JULIA_VERSION_MAJOR == 1 && JULIA_VERSION_MINOR >= 9
179+
jl_binding_t *bp = jl_get_binding_wr(jl_base_module, jl_symbol("PROGRAM_FILE"), 1);
180+
jl_checked_assignment(bp, (jl_value_t*)jl_cstr_to_string(argv[0]));
181+
#else
182+
jl_set_global(jl_base_module, jl_symbol("PROGRAM_FILE"), (jl_value_t*)jl_cstr_to_string(argv[0]));
183+
#endif
180184

181185
// Set Base.ARGS to `String[ unsafe_string(argv[i]) for i = 1:argc ]`
182186
jl_array_t *ARGS = (jl_array_t*)jl_get_global(jl_base_module, jl_symbol("ARGS"));

src/embedding_wrapper.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,12 @@ int main(int argc, char *argv[]) {
104104
checked_eval_string("append!(empty!(Base.ARGS), Core.ARGS)");
105105
jl_value_t *firstarg = checked_eval_string("popfirst!(ARGS)");
106106
JL_GC_PUSH1(&firstarg);
107-
jl_set_global(jl_base_module, jl_symbol("PROGRAM_FILE"), firstarg);
107+
#if JULIA_VERSION_MAJOR == 1 && JULIA_VERSION_MINOR >= 9
108+
jl_binding_t *bp = jl_get_binding_wr(jl_base_module, jl_symbol("PROGRAM_FILE"), 1);
109+
jl_checked_assignment(bp, firstarg);
110+
#else
111+
jl_set_global(jl_base_module, jl_symbol("PROGRAM_FILE"), firstarg);
112+
#endif
108113
JL_GC_POP();
109114

110115
// call the work function, and get back a value

test/runtests.jl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,8 @@ end
132132

133133
io = IOBuffer()
134134
p = run(pipeline(ignorestatus(`$(app_path("Undefined"))`), stderr=io;))
135-
@test occursin("UndefVarError: undefined not defined", String(take!(io)))
135+
str = String(take!(io))
136+
@test all(occursin(str), ["UndefVarError:", "undefined", "not defined"])
136137
@test p.exitcode == 1
137138
end
138139
end

0 commit comments

Comments
 (0)