Skip to content

LLVM-Backend Generated Interpreter C API Documentation #692

Open
@sskeirik

Description

@sskeirik

The LLVM backend, in conjunction with the tool llvm-kompile, can generate object files which contain the entire definition of an K semantics as machine object code.

These object files can then be used to link the LLVM-generated interpreters into custom C code, or any language that supports C FFIs.

However, currently, the interface that the LLVM-backend generated interpreters expose is a mixture of hard-coded and compile-time generated symbols, and there is no documentation of which sybmols are exported or best practices around, e.g., which symbols are considered part of a stable API and which symbols are considered internal and should not be explicitly linked against.

Such documentation would not only enable K developers to more easily productize K by adapting to specific client needs, it would also enable more possible uses of K in the broader community.

For those reasons, I think it is worth documenting these symbols (even if the documentation is marked experimental, as needed).

Metadata

Metadata

Assignees

No one assigned

    Labels

    bindingsLLVM backend bindings to other languages

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions