Skip to content

Better error messages when libjulia-codegen fails to load #47027

@staticfloat

Description

@staticfloat

In #41936 we added the ability to run Julia without codegen linked in to the process, to make it easier to separate codegen from the rest of the runtime, for use in situations where we actually don't want the ability to generate new code. Unfortunately, our loader mechanism can currently get confused between the case where libjulia-codegen is missing (and therefore should not be linked in), and the case where libjulia-codegen fails to load due to some error. We need to disambiguate these two cases, and only optimistically continue execution if libjulia-codegen is actually missing from the lib/julia folder.

The current behavior is that cli/loader_lib.c attempts to load libjulia-codegen, and if it fails, it always tries to continue in codegen-less mode (which apparently doesn't work that well on 1.8.X).

I suggest we try to access() our libjulia-codegen path before trying to dlopen() it, and only enter codegen-less mode if access() fails. Otherwise, dlopen() errors should be fatal just like for libjulia-internal.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugIndicates an unexpected problem or unintended behavior

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions