Enable setting definition and includes with environment variables
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 42/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Stale
- Tech stack
- python
- Domain
- build-system, cli
Research direction
Start at the kbuild run and kprove command entry points and trace how --definition and -I are currently supplied. Check how K_DEFINITION and K_INCLUDES should be read, then verify that explicitly passed flags take precedence and that the kbuild run example works with the target-derived environment.
Written by the indexing model from the issue text.
Description
E.g. K_DEFINITION and K_INCLUDES. A flag explicitly passed to the command should have a higher priority than the corresponding environment variable.
Rationale
For a given kompile target, kbuild manages the output directory (by default) and the list of includes the target should be kompiled against. Letting K tools (e.g. kprove) consume --definition and -I from an environment variable enables their combination with kbuild, without having to implement a custom runner script (e.g. kbuild prove) for each tool.
E.g. instead of
$ kprove --definition path/to/haskell/target -I list -I of -I includes ...
one could
$ kbuild run haskell kprove ...
where haskell is a kbuild target. In this example, kbuild run executes kprove in an environment where K_DEFINITION=path/to/haskell/target and K_INCLUDES=list,of,includes, based on the target.
A natural use case for this is proving against existing definitions: the proof project marks the definition project as a dependency, then kbuild takes care of setting up the environment:
$ kbuild run evm-semantics.haskell kprove my-spec.k
- Dominant language
- Python
- Stars
- 591
- Forks
- 163
- PR merge metrics
- No merged PRs in 30d
Contributor guide
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.
More from runtimeverification/k
-
runtimeverification/k#4939 · 1 assignee ·
-
Concolic Explorer Open
Difficulty 5/5 Over a week Newbie friendliness 32/100
runtimeverification/k#4937 ·
-
Difficulty 5/5 Over a week Newbie friendliness 30/100
runtimeverification/k#4936 ·
-
type:epic
runtimeverification/k#4934 · 4 comments · 1 assignee ·
-
runtimeverification/k#4924 · 1 assignee ·
All issues in runtimeverification/k
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
bancolombia/sentinel#23 ·
-
test md OpenCI
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
-
integration:quickjs org:external priority:backlog topic:code-interpreter topic:middleware type:feature
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
langchain-ai/deepagents#6450 ·
-
bug client
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100