ChifiSource / Toolips.jl

a manic web-development framework
https://toolips.app
MIT License
60 stars 1 forks source link

Don't rely on implicit binding creation of setglobal! #121

Closed Keno closed 4 months ago

Keno commented 4 months ago

The mod.sym = val syntax is not supposed to be able to create new bindings if mod.sym does not yet exist. The error check for this was accidentally dropped in Julia 1.9, but will likely be put back in 1.11 [1]. This uses Core.eval/invokelatest to achieve the same effect using the recommeded replacement. As a general note, the way this package uses bindings is clever, but not particularly idiomatic in Julia. Not saying you can't do it, but I would recommend revisiting if at least the injected bindings could perhaps be replaced by something like an IdDict.

[1] https://github.com/JuliaLang/julia/pull/54678