-
Notifications
You must be signed in to change notification settings - Fork 234
Public dev‐meetings
We have two talks scheduled 👀:
- @octachron will present is work on structured compiler output
- @nojb will present a tool used at Lexify to search by type in the codebase
- Ulysse (@voodoos)
- Xavier (@xvw)
- Pizzie (@PizieDust)
- Sonja (@pitag-ha)
- Florian Angeletti (@octachron)
- Darius Foo (@dariusf)
- Andrey Popp (@andreypopp)
- Nicolas Ojeda Bär (@nojb).
- Introduction / Tour de table
- Ongoing projects
- project-wide occurrences demo
- Issues/PR dicussion
- Ulysse: Lead maintainer on Merlin, contributes to OCaml LSP
- Pizzie: Formerly intern in editor's team, now also a contributor
- Sonja: Used to work on other OCaml tools, mostly
ppxlib
, has also worked on Merlin in the past, now does less technical work - Xavier: Has joined Tarides this year and is working on Merlin and OCaml LSP
- Florian: Works on the compiler, particularly improving the error messages, also on tooling and integration
- Andrey: Used to work on esy, has also worked on OCaml LSP. Thinks OCaml editor support is very good and is looking forward to contributing to some of the features.
- Darius: PhD student in Singapore, generally interested in what's going on in the OCaml editors development. "It's in a very good state, much better state than a couple of years ago". Also seeing how to contribute.
- Nicolas: Works at Lexify, where they are heavy users of OCaml, so they're interested in everything in OCaml.
- LSP is mostly primarily targeted on visual editors, but could also be very nice for text-based editors thanks to asynchronously and nice features.
- However some UX work is required for this experience to be similar as the classic Merlin plugins, parts of the Merlin server API is more suitable for text-based editor's atm.
- We want to enhance OCaml LSP to bridge that gap and eventually have extensions for the LSP plug-ins for Emacs and Vim, so that everyone can benefit from LSP.
- Demo and presentation
- Including the details that are still missing to implement a project-wide renaming feature.
- We really encourage people to start using it! -
dune build @build-index -w
More info can be found in the announce and wiki.
Q&A summary:
Q: What's the performance of building the index? Why does it not form part of the default build target?
A: We don't have extensive benchmarks. In the projects where we've benchmarked, there's no major performance issue. What makes it resource heavy: For every change, you don't only need to rebuild the unit's index, but also all its transitive dependency indexes. Planned: On running the occurrences
query, Merlin could ask dune to rebuild.
Q: Big codebases: Dune takes about 20-30 secs to build, our monorepo about 5 min.
A: We are very interested on usability feedback for very large codebases!
Q: Does the shape result keep type information?
A: No
Q: What's the state of project-wide occurrences in Emacs?
A: The Merlin plug-ins have very basic support right now. merlin-project-occurrences
in emacs and :MerlinOccurrencesProjectWide
in vim.
What kind of features are people interested in?
Florian: Suggestion for next meeting: focus on structured compiler diagnostics
{
"metadata" :
{ "version" : [1, 0], "valid" : "Invalid", "invalid_paths" : [[]]},
"compiler_log" :
{
"error" :
{
"kind" : "Report_error",
"main" :
{
"msg" :
[["Open_box", ["V", 0]], ["Open_box", ["B", 0]],
["Text", "This expression has type"],
["Simple_break", [1, 2]], ["Open_tag", "Inline_code"],
["Open_box", ["B", 0]], ["Text", "float"], "Close_box",
Sonja: Which part of the editor stack are Andrey and Darius intersted in contributing?
-
Andrey: At Ahrefs, we have both backend and frontend in OCaml, some of the code is shared between the two, Melange builds frontend, OCaml builds backend. We'd love the editor tooling to understand which modality we're in. We've already done some work on dune's configuration on this. We've currently built an OCaml extension. Works very nicely with the whole Merlin stack. However, there are a few concrete feature use cases that fail. So I'd like to understand Merlin better to understand what's failing.
-
Darius: I'm interested in improving the interactions between editor support and toplevel. Also interested in the interaction with the debugger.
Ulysse: What do you think about these meetings?
-
Xavier: Very useful. Learned a lot about project-wide occurrences.
-
Florian: Yes, very nice, I'd like to see more of them. ( ❤️ )