Skip to content

Dev meeting 2020 06 02

Jon Ludlam edited this page Jun 2, 2020 · 4 revisions

Present

@lpw25, @Drup, @Julow, @jonludlam

Previous actions

  • @avsm to post on discuss about plans for replacing ocamldoc plugins

    • posted to caml-devel, no responses?
  • -@jonludlam to start a definitive list of what's required to replace ocamldoc-

    • new milestone on github: https://github.com/ocaml/odoc/milestone/5
    • relevant issues linked to milestone
    • question about whether '-keep-code' is important for that milestone. The ocamldoc version is quite basic, and nobody was aware of anyone using it. It's certainly a desired feature that many people have asked about, but the feeling was that the lack of it wouldn't block the goal of replacing ocamldoc, as long as we've got it on the roadmap.
  • -@jonludlam to cherry-pick 4.11 fix onto 1.5 release branch- and make release

  • @lpw25 to dig out the branches relevant to --keep-code

  • @avsm to investigate odig issue on docs.mirage.io

  • @avsm to add toplevel support to merlin's roadmap

  • @jonludlam to find out status of dune build @doc supporting external libs

Status report

@jonludlam to report on the status of the new model

Includes

The problem with includes is that items introduced by an include can be shadowed by subsequent items. This means the expansion of the include must have some of its identifiers mapped to different ones after the expansion is made. @lpw25 has suggested a design which will likely be implemented after the PR to master.

Memory

@lpw25 reported that running the new model on the JS libraries caused OOM errors. @jonludlam has been removing redundant caching layers and generally optimising the memory usage, which should be ready for retesting soon. Statmemprof was used, via emacs/sturgeon which was somewhat helpful.

References

@Julow is working on the resolution of all types of references, e.g. record fields, exceptions, variant types, etc. This has involved some refactoring, which is all going well and should be ready to merge to the new model branch soon.

Code-tracking branches

https://github.com/lpw25/odoc/tree/elasticsearch https://github.com/lpw25/doc-ock/tree/uses

@lpw25 pointed out the branches used for code search, relevant to '-keep-code' as discussed last time. The aim of the 'uses' branch is to produce 2 bits of data:

  1. A map from locations to paths in the source files. These paths are then resolved as usual and used to create links in the markup of the source.
  2. The types in Lang.* have additional fields that point to the locations in the ml and mli files corresponding to the definitions.

Most of the work is in read_cmt - a particular difficulty is in matching the definitions in the mli files to the ml files.

Issues bot

It was agreed that the issue bot has done an excellent job of culling a large number of inactive issues, but that it was a little aggressive now. @jonludlam tasked with calming it down.

Indexes

The question about indexes came up while reviewing issues that need fixing for the milestone. Ocamldoc produces index files with links to all of the modules, types, etc that it knows about. @lpw25 pointed out that these are less useful when you've got search. @drup mentioned that the {!indexlist} constructs are useful for presentations. These constructs like this are more useful than the hard-coded index of different items that ocamldoc current produces.

There was then some discussion on exactly what modules etc indexlist should produce - it was agreed that this should be a per-package thing. Also discussed was the need for cross-package references - specifically forward references for packages that aren't required for the source to compile. This will affect how dependencies are calculated, and probably require odoc specifying dependencies at the package rather than module level.

Actions

  • @avsm to investigate odig issue on docs.mirage.io
  • @avsm to add toplevel support to merlin's roadmap
  • @jonludlam to find out status of dune build @doc supporting external libs
  • @avsm to post on discuss about plans for replacing ocamldoc plugins
  • @jonludlam to release 1.5.1 with OCaml 4.11 support
  • @jonludlam to soothe issue bot

Next meeting

Next meeting will be 2020-06-16 at 9am