@@ -170,9 +170,9 @@ the next where they expect it.
170170 writes the opam files from it. A Hypha library another depends on is
171171 pinned in the ` *.opam.template ` 's ` pin-depends ` , at a release's tag on
172172 GitHub, until the libraries are in opam-repository and the pins go.
173- ` make setup ` makes the checkout 's switch, ` ./_opam ` , and installs into
173+ ` make setup ` makes the repository 's switch, empty , and installs into
174174 it with ` opam install . --deps-only ` , which resolves everything, the
175- pins included; a new release is taken by moving its tag and the bound
175+ compiler and the pins included; a new release is taken by moving its tag and the bound
176176 and running ` make setup ` again. An application commits its solution as
177177 an opam lock (` make lock ` after an upgrade); a library commits none,
178178 its users solving their own. Why: it is how the libraries' users get
@@ -360,14 +360,15 @@ language server (the `LSP` tool) or, without one, Merlin's command line;
360360every user of an export is found this way, since a shadowed, re-exported
361361or aliased name defeats a text search.
362362
363- Nothing is on PATH. Every OCaml tool runs through the checkout's local
364- switch, ` ./_opam ` , as ` opam exec --switch=<checkout> -- ` or through the
365- Makefile; no ` eval ` . A worktree has no switch of its own: it uses its
366- checkout's, the directory ` git rev-parse --git-common-dir ` is in, as the
367- Makefile and the language server find it. ` make setup ` installs Merlin
368- and ` ocaml-lsp-server ` with the rest.
363+ Nothing is on PATH. Every OCaml tool runs through the repository's opam
364+ switch, named ` hypha-<name> ` after the ` (name) ` its ` dune-project `
365+ declares, as ` opam exec --switch=hypha-<name> -- ` or through the
366+ Makefile, whose ` SWITCH ` names it; no ` eval ` . The checkout and every
367+ worktree of it use that one switch, by its name, so a worktree needs no
368+ setup of its own. ` make setup ` installs Merlin and ` ocaml-lsp-server ` with
369+ the rest.
369370
370- ** ` ocamllsp ` runs as the agent's language server** , from the checkout 's
371+ ** ` ocamllsp ` runs as the agent's language server** , from the repository 's
371372switch. It answers every edit to OCaml source with its type errors,
372373and gives a name's definition, its references, tests included, its type
373374and a file's symbols; ask for the symbols before reading a long file
@@ -385,9 +386,10 @@ project`, `locate -position LINE:COL`, `type-enclosing -position LINE:COL`,
385386a use** , never from its declaration in the ` .mli ` , which answers with that
386387declaration alone; a value asked from its ` .mli ` finds every use.
387388
388- ** A dependency's API is read where it is installed** , from its ` .mli `
389- under ` _opam/lib/<package>/ ` or the server's hover, never from memory: the
390- version in the switch is the one the code builds against.
389+ ** A dependency's API is read where it is installed** , from its ` .mli ` in
390+ the switch (` opam var --switch=hypha-<name> lib ` , then ` <package>/ ` ) or the
391+ server's hover, never from memory: the version in the switch is the one
392+ the code builds against.
391393
392394** The stdlib is 5.5's, and nothing newer.** A function whose odoc says
393395` @since ` a later version is not used until every ` dune-project ` asks for
@@ -396,7 +398,7 @@ that version.
396398** A generated file is changed at its source.** An ` *.opam ` file is written
397399by dune from ` dune-project ` , and from an ` *.opam.template ` beside it for
398400what dune cannot say, so either of those is edited, never the ` .opam ` .
399- Nothing under ` _build/ ` or ` _opam/ ` is edited; a test's new expected
401+ Nothing under ` _build/ ` or in the switch is edited; a test's new expected
400402output is taken with ` dune promote ` .
401403
402404** A worktree is outside the checkout** (` GIT.md ` ), so dune takes it as
@@ -407,9 +409,8 @@ missed when the whole project is read.
407409
408410** Search text with ` rg ` , always with a path** , never ` grep -r ` or ` find ` :
409411with no path ` rg ` reads standard input, which an agent's shell never
410- closes, and ` _build/ ` and ` _opam/ ` are gitignored, so ` rg ` skips them
411- where ` find . -name '*.ml' ` returns every copy of the source under
412- ` _build/ ` and every package under ` _opam/ ` .
412+ closes, and ` _build/ ` is gitignored, so ` rg ` skips it where `find . -name
413+ '* .ml'` returns every copy of the source under ` _ build/`.
413414
414415` opam list --installed ` says what the switch holds; `opam list
415416--required-by --recursive` resolves against what is available, not what is
0 commit comments