ocaml / ocaml/dune

Add dune facilities in the toplevel

Open
#5,569 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

build rpc
Dominant language
OCaml
Stars
1.9k
Forks
500
Avg merge
15h 21m
Merged PRs (30d)
277

Description

Dune specific facilities like dune-build-info, virtual libraries, ... requires specific handling during linking. Dune could provide improved #require facilities in the toplevel using dune-plugin-site (work outside a dune workspace, less scanning, but only use META) or dune-rpc (can give access to local libraries, could use dune-package information).

Such feature should be added step by step, first redo the current #require feature, then ... but at the end the long run would be:

  • #require-private to access private library of the current workspace
  • Possibility to build the library not yet built
  • Virtual libraries handling
  • Dune build info
  • ocaml (utop) or dune ocaml (resp. dune utop) could be handled differently the first would only access installed information.

It would help for:

  • dune-build-info: #5566

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by examining the existing #require facility in the toplevel and the alternatives named in the issue: dune-plugin-site and dune-rpc. The proposed first milestone is to redo the current #require behavior; later completion would require deciding how private libraries, unbuilt libraries, virtual libraries, and dune-build-info are handled.

Written by the indexing model from the issue text.

Assessment

Tech stack
ocaml
Domain
build-system, cli
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.