runtimeverification / runtimeverification/llvm-backend
LLVM-Backend Generated Interpreter C API Documentation
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 43
- Forks
- 22
- PR merge metrics
- No merged PRs in 30d
Description
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).
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the LLVM backend and the llvm-kompile-generated interpreters described in the issue. Inventory the hard-coded and compile-time-generated symbols exposed by the object files, then document which are stable or internal and the recommended C FFI linking practices.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c, cpp
- Domain
- api, documentation
- Issue type
- Documentation
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100