blang: comparisons only work with atoms
Open
Nobody has claimed this yet.
acknowledged
enhancement
- Dominant language
- OCaml
- Stars
- 1.9k
- Forks
- 500
- Avg merge
- 15h 21m
- Merged PRs (30d)
- 277
Description
Hi,
Comparisons in blang (for example in enabled_if) seem to be restricted to atoms:
File "dune", line 2, characters 16-31:
2 | (enabled_if (= (and true true) true))
^^^^^^^^^^^^^^^
Error: Unexpected list
The AST looks to be designed that way:
It looks like it could be extended.
cc @snowleopard
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.
Research direction
Start by reading src/dune_rules/blang.ml around the AST definition linked in the issue, then reproduce the enabled_if example in a small dune file. Extend the comparison handling so the shown expression is accepted, and verify that the example no longer reports Unexpected list.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ocaml
- Domain
- build-system
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100