Hello,
the meeting notes from two weeks ago:
Participants: Magnus, Pierre, Thomas, Vincent, Reynir, Samuel, Romain,
Hannes, Shakthi
- What do we want Mirage5 to look like? And when do we want to make a
release? (Thomas)
- runtime args
- many changes in mirage tool, so should probably be in next
release
- Hannes: would be nice to release this early, could be part of
ocaml5 - but could also release as 4.x
- Ocaml 5 support
- need ocaml5 support, at least single core support in solo5 -
could release multicore support later
- Hannes: ocaml5 doesn't need changes in all of mirage? thomas:
we could separate it, but could also make mirageos5 the ocaml5 release.
Multicore support will probably require more tooling changes (e.g. if we
add support for new runtime), could start with single core support in solo5
- dune pkg?
- support the new dune pkg system, alpha expected in may
- Hannes: has already been delayed, so suggest not waiting for
this. Thomas: should be ready for may this time
- Romain: dune pkg aims to resolve some of the issues we have
with opam monorepo, where can we discuss the issues with dune team?
Thomas: team building and testing packages now, blocker at the moment is
that packages are required to be relocatable.
-
https://github.com/ocaml/dune/issues?q=is%3Aopen+is%3Aissue+milestone%3A%22Package+Management+MVP%22
- Romain: to clarify the story about cross-compilation, only
few packages requires it actually and mainly packages with C stubs
(Zarith, digestif, mirage-crypto). So, we don't systematically need to
"dunify" all packages (like dbuenzli packages). So it's good that `dune
pkg` considers packages as a black box package which does not need dune
to build
- hannes: Good package to test x-compilation is Zarith/GMP
- Romain: Zarith/GMP will still need an overlay however
considering the status of the dunification of this package
(https://github.com/ocaml/Zarith/pull/143)
- No more Lwt?
- larger discussion, may not be able to resolve this now, but
start discussion
- Hannes: this could be a separate discussion and will require
some evaluation as well. Not sure we're ready to move away from this by
next release. Several alternative schedulers
- Thomas: Agree it's early, we need to experiment. Currently we
see that Lwt binds are very slow (see irmin benchmarks, where they
allocate a lot) so we would like to experiment with alternate solutions
for Mirage
- Thomas: ocaml5 support single core + runtime args could be an
ocaml5 release, then later in the year we could add support for dune pkg
and multicore support
- Thomas: will write a suggestion for release candidate and we can
discuss in two weeks
- PRs:
- [mirage/mirage#1495](https://github.com/mirage/mirage/pull/1495):
refactor Dune files
- If you have tooling issues (e.g. merlin not working
properly) please let Thomas know and this could be fixed in this PR
- Two conflicting design issues; if you only build a single
unikernel in a repo then the workflow is ok, but doesn't match mirage
skeleton - where we build 10 unikernels in one go after configuring each
of them. Do we want the ability to have multiple unikernels in a single
repo? Hannes: Never used this, usually build from each directory
- Building MirageOS Library packages on Alpine 3.19
[Summary](https://hackmd.io/_0QAwb0rS72wDx52hkegPA). Reference:
https://ocaml.ci.dev/github/mirage CI builds
- Shakthi: trying to build for alpine in CI, have some patches. Are
some other distro failures as well. I could start with a subset and fix
common failures.
- Thomas: seems to be working in regular CI, should investigate
what the difference is. Nice to have Alpine support, so upstreaming
would be good
- MirageOS retreat in Marrakech (Hannes)
- 18 people signed up!
- Cstruct.t vs bytes/string
- Hannes: working on removing cstruct in various repositories. E.g.
mirage-crypto. Result is very nice, we see performance improvements.
Plan is to remove cstruct in the whole network stack. Not planned in the
tcp part of mirage-tcpip (as it's very big), but in the other packages
in the stack. Also tools that use ocaml heap produce more interesting
results, like statmemprof.
- Thomas: what type of benchmarks? Hannes: micro benchmarks,
performance measurements, throughput for symmetric ciphers. No
improvement for large blocks, but for smaller there is (1024 and less)
- mirage-flow 4.x and shutdown
- Hannes: added shutdown function so you can close the connection,
based on initial work from Dave. Have some PRs open, would be nice to
have reviews. Thomas: Dave will take a look at mirage-tcpip
- Romain: currently testing tls with shutdown. Works better with http
- Next meeting will be April 8th, same time