Skip to content

Incompatible with Julia 1.12: jl_yield symbol removed #17

@s-celles

Description

@s-celles

Description

(AI generated issue)

NodeCall.initialize() fails on Julia 1.12+ because the C symbol jl_yield no longer exists in the Julia runtime.

Error

julia> using NodeCall
julia> NodeCall.initialize()
ERROR: could not load symbol "jl_yield":
.../julia: undefined symbol: jl_yield

Stacktrace points to src/types/jlnode_helpers.jl:75_jlnode_util_functions.

Without explicit initialize(), any call to node_eval, require, etc. raises an UndefRefError on current_context because the Node.js runtime is never started.

Note: the __init__ function only auto-initializes in interactive mode, so the jl_yield error is silent when using NodeCall from a script — it surfaces only when initialize() is called explicitly or when any Node.js interop function is used.

Environment

  • Julia: 1.12.5
  • NodeCall.jl: v1.1.1
  • OS: Linux x86_64

Context

jl_yield was removed/renamed in Julia 1.12 as part of internal runtime changes. The reference in libjlnode needs to be updated to the new API.

Workaround

None currently — NodeCall.jl cannot be used on Julia 1.12+. Users must fall back to spawning node as an external process.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions