avsm changed the topic of #mirage to: Good news everyone! Mirage 3.0 released!
_whitelogger has joined #mirage
demonimin has quit [Ping timeout: 240 seconds]
demonimin has joined #mirage
demonimin has joined #mirage
demonimin has quit [Ping timeout: 240 seconds]
demonimin has joined #mirage
argent_smith has joined #mirage
copy_ has joined #mirage
Michael____ has joined #mirage
Michael____ has quit [Client Quit]
MK__ has joined #mirage
Andres__ has joined #mirage
<Andres__>
I would like to write a stateful protocol (over tcp) for some app similar to tcp ack-based protocol stack in ocaml. For instance, I have a start handshake, and then data passing, together with sending acks. Is there any piece of code that you can point me to as a best practice so I can start the coding using that structure?
argent_smith has quit [Ping timeout: 240 seconds]
Bluerise has quit [*.net *.split]
abeaumont has quit [*.net *.split]
Bluerise has joined #mirage
argent_smith has joined #mirage
<Andres__>
Is there anyone in here that can answer my questions on mitrage tcp library?
<yomimono>
g2p is presenting the storage work (Wodan) at OCaml Workshop, and there are lots of other talks that might be interesting to Mirage folks
<yomimono>
If nothing else on that, let's move on --
<yomimono>
I had put an item up asking about solo5, because I realized I lost track of what was going on there
<yomimono>
we'd talked about a 3.1 release for the refactored and ARM-ready solo5
<yomimono>
is that at a point where it needs some release managing, or can I go on being blissfully unaware?
<mato>
Unfortunately I don't have an update on this today, I've been swamped by other work at $CORP and had no time for Solo5 :-( :-(
<yomimono>
whew, then nobody's mad at me for being too funemployed to keep an eye on it!
<djwillia>
ricarkol and I are in the process of writing up a paper about record/replay for ukvm/solo5 unikernels
<mato>
But, TL;DR, I have a list of things in my head that need to be done for a next release which would surface all the new goodness we have since the last one, so perhaps I should put those down in an issue somewhere at least?
<yomimono>
mato: that would be very appreciated!
<djwillia>
we haven't talked to mato about how/when any of that should be merged in though
<djwillia>
when we finish a draft we would love to share it for some feedback
<yomimono>
djwillia: that sounds very cool! is there somewhere people can look for more info, or is it still under wraps?
<djwillia>
we hope to send it to Eurosys, which has a deadline at the end of october
<yomimono>
good luck, although I doubt you need it!
<djwillia>
thanks! we'll take all the luck we can get :)
amirmc has quit [Quit: Leaving.]
<yomimono>
If nothing else on solo5 --
<yomimono>
I also put in an agenda item for dropping OCaml 4.03.0 support and adding 4.05.0
<yomimono>
but more generally speaking, it would be useful to have some guidelines for how we intend to keep up with compiler releases, now that they're timeboxed and not feature-boxed
avsm has joined #mirage
<avsm>
ahem, apologies for tardiness
<yomimono>
nbd, glad you're here :)
<yomimono>
was just saying that I'd like to add 4.05.0 support and drop 4.03.0
<avsm>
yes. the only blocker to 4.05.0 support is unfortunately rebasing xen to use the new freestanding minios
<yomimono>
and have some policy written down about which compilers we aim to support, e.g. the two most recent major releases
<mato>
FWIW ocaml-freestanding (and thus mirage/solo5) got 4.05.0 some time ago and should "just work"
<avsm>
i parked my trees that had that work; i'll have time to finish it right after icfp
<avsm>
i am very keen to retire our minios fork and just use the -freestanding variant for both xen and solo5
<yomimono>
I think you're not alone :)
<avsm>
I've been working through the new CI and have an almost working node registration and command executing capnp thing :)
<avsm>
many thanks to talex5 for helping with the basic questions. it's all looking quite nice so far
<avsm>
there's a Logs library backend that funnels any Logs usage through capnp to an aggregator
<avsm>
and I'm putting an Irmin backend on it
<yomimono>
I'll make a post to the mailing list or a PR to mirage-www about compiler versions in the next few days, let's move on to capnp in response to demand :)
<talex5>
Lots of new stuff here!
<talex5>
First, it now has TLS support built-in, so you get encryption and authentication by default.
<talex5>
It generates capnp:// URLs which include the server fingerprint, so there's no messing about with CAs.
<talex5>
With that, I've added a TCP transport (it was just Unix-domain sockets before).
<avsm>
cor blimey
<talex5>
The URIs also include a secret "swiss number", both identifying the target service within the vat and granting access to it.
<talex5>
That means we now have working access control :-) Also, you can now export multiple services as sturdy refs (e.g. "admin" and "user" interfaces).
<talex5>
I'm currently working on full persistence support, which will allow creating sturdy refs dynamically, backed by some storage (filesystem, irmin or whatever).
<talex5>
There have also been lots of updates to the docs. And there's a TOC now, so it's easier to find things:
<avsm>
i was thinking about what a ppx would look like to remove the boilerplate in bits of it
<avsm>
but I'm not entirely sure it's needed. Just for things like parsing params and remembering to release the capabilities
<talex5>
Maybe the capnp compiler could spit out some rough templates too?
<avsm>
that's a good idea, particularly for the Service object definitions
<avsm>
editing templates doesn't seem very ML-ish to me, but in this case it's hard to abstract over object definitions
<talex5>
The schema language does support annotations if we need them.
<talex5>
That could direct code generation.
<avsm>
ah yes, and very rich annotations too
<talex5>
I'm not sure how much effort the wrappers really are though (it seems like a lot when writing the tutorial, but it's only a small part of a real system).
<avsm>
I'm hoping to build the web ui for the CI using the capnp js backend, and possibly with reason or jsoo
<avsm>
I'm spending quite a lot of time defining the data model in OCaml, and then the conversion to and from the capnp. But it's a one-off thing
<avsm>
refactoring is kind of painful since so many modules and objects need to be renamed
<avsm>
overall it is a Very Pleasant Experience
<talex5>
:-)
<talex5>
If anyone has any questions or feedback, feel free to post it on https://discuss.ocaml.org/ (tagged capnp).
<avsm>
i'm planning to release the Logs backend separately as it can be used by other projects, so i'll post there
<avsm>
hoping to have a few re-usable components
<yomimono>
awesome :D
<avsm>
i notice capnp has include support, which i assume can be used to compose libraries of rpcs
<avsm>
incidentally, the reason for all this is just how incredible it makes unikernel programming
<talex5>
Yes, includes should work.
<avsm>
since this is the multilanguage substrate for communicating processes
<avsm>
for anyone wondering why capnp is relevant to mirage :-)
<avsm>
i'm sort of wondering what a unix shell based on capnp might look like...
<avsm>
instead of sudo, you have to rpc to something to grab a capability
<avsm>
but anyway...
<avsm>
maybe the opposite of systemd lies down that road though :-)