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?
MK__ has quit [Remote host closed the connection]
MK__ has joined #mirage
Andres__ has quit [Ping timeout: 260 seconds]
abeaumont has joined #mirage
yomimono has joined #mirage
ricarkol has joined #mirage
djs55 has joined #mirage
talex5 has joined #mirage
amirmc has joined #mirage
* djs55 waves
<talex5> hi
<yomimono> hi!
<yomimono> must be time for a meeting!
* mato waves
<yomimono> There's still time to add items if there's something you'd like to discuss :)
<Drup> Does "wee ICFP" counts as agenda item ?
<yomimono> I'll add it! :D
<yomimono> Might be nice to get a sense of who's going - I am :)
<Drup> Me too!
djwillia has joined #mirage
<Drup> I'm arriving on saturday evening, if people want to get out to eat
<yomimono> first up, "wee ICFP" - the International Conference on Functional Programming (I think?) is happening in Oxford next week
<yomimono> there will be some Cambridge contingent as well, I hear :)
<yomimono> as in, some folks coming from Cambridge
<mato> Oh, it's in Europe! I didn't know that.
<mato> Err... near Europe. Or something.
<yomimono> Still time for last minute flights :D
<yomimono> http://icfp17.sigplan.org/ for more info :)
<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?
<yomimono> djwillia: oh, jinx :) I'll look forward to seeing it!
<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> can the access control be expressed in terms of an rpc interface, or is it at the connection level?
<avsm> i.e. for my command line CI tool, can i do a github auth or something and then allow particular uids to go through
<talex5> It's capability based - if you have the sturdy ref, you can access it.
<avsm> i see, that's easy then -- just need an Auth RPC service
<avsm> and then manufacture a sturdy ref to persist on the CLI
<talex5> Yes, go the GitHub auth and give the user a capability back (sturdy or otherwise).
<avsm> how much effort will it be to make the runtime mirage-friendly?
<avsm> i think core_kernel is the culprit atm
TImada has joined #mirage
<talex5> There might be some core_kernel in the capnp runtime.
<talex5> Might need to remove that, but should be easy.
<talex5> The RPC split has a separate unix package with the unix-specific bits, as usual.
<avsm> I also tried the python bindings and they work great after some hassle to connect over a unix domain socket
<talex5> s/split/library/
<avsm> but it sounds like tcp transports fix that too
<talex5> Python stuff is documented too now:
<avsm> this is awesome :-)
<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 :-)
<avsm> thanks, will read. there's also http://shill.seas.harvard.edu which is a language along the same lines that is more recent
<talex5> Ah, hadn't seen that.
<talex5> Anyway, that's all from me.
<avsm> and me.
<yomimono> And that's it for the agenda :)
<avsm> see several of you in Oxford at ICFP next week!
<yomimono> I'll be in Cambridge for a few days after ICFP, if any lurkers want to meet up -- 10th through 12th, drop me a line :)
<avsm> +1 :-)
* yomimono casts "end meeting"
talex5 has quit [Quit: Leaving]
djwillia has left #mirage ["ERC Version 5.3 (IRC client for Emacs)"]
MK__ has quit [Remote host closed the connection]
yomimono has quit [Quit: Ex-Chat]
avsm has quit [Ping timeout: 260 seconds]
TImada has quit [Quit: Page closed]
ricarkol has quit [Quit: Page closed]
djs55 has quit [Quit: Leaving.]
argent_smith has quit [Quit: Leaving.]