avsm changed the topic of #mirage to: mirage 2 released! party on!
AltGr has joined #mirage
tomboy64 has joined #mirage
tomboy65 has quit [Ping timeout: 244 seconds]
mcclurmc has quit [Ping timeout: 240 seconds]
<apache2> pong
<apache2> that wonderful feeling when you're fetching a new opam switch using http:// over tor
nullcat has joined #mirage
mcclurmc has joined #mirage
brson has quit [Ping timeout: 244 seconds]
brson has joined #mirage
brson_ has joined #mirage
brson has quit [Ping timeout: 246 seconds]
brson_ has quit [Ping timeout: 260 seconds]
brson has joined #mirage
brson_ has joined #mirage
copumpkin has quit [Ping timeout: 260 seconds]
contrapumpkin has joined #mirage
brson has quit [Ping timeout: 260 seconds]
nullcat has quit [Ping timeout: 248 seconds]
brson_ has quit [Read error: Connection reset by peer]
tomboy65 has joined #mirage
tomboy64 has quit [Ping timeout: 250 seconds]
seangrove has joined #mirage
brson has joined #mirage
mcclurmc has quit [Ping timeout: 260 seconds]
seliopou has joined #mirage
seangrove has quit [Ping timeout: 260 seconds]
copumpkin has joined #mirage
smondet has quit [Ping timeout: 268 seconds]
smondet has joined #mirage
contrapumpkin has quit [Ping timeout: 268 seconds]
seangrove has joined #mirage
ecerulm has quit [*.net *.split]
brson has quit [Ping timeout: 250 seconds]
brson has joined #mirage
ecerulm has joined #mirage
brson has quit [Client Quit]
seangrove has quit [Ping timeout: 276 seconds]
nullcat has joined #mirage
jermar has joined #mirage
ecerulm has quit [*.net *.split]
ecerulm has joined #mirage
jermar has quit [Ping timeout: 252 seconds]
seangrove has joined #mirage
seangrove has quit [Ping timeout: 244 seconds]
ecerulm has quit [*.net *.split]
ecerulm has joined #mirage
raindev has joined #mirage
lobo has joined #mirage
nullcat has quit [Read error: Connection reset by peer]
ecerulm has quit [Quit: Connection closed for inactivity]
jermar has joined #mirage
seangrove has joined #mirage
jermar has quit [Ping timeout: 240 seconds]
seangrove has quit [Ping timeout: 246 seconds]
avsm has joined #mirage
avsm has quit [Quit: Leaving.]
avsm has joined #mirage
seangrove has joined #mirage
raindev has quit [Ping timeout: 246 seconds]
mort___ has joined #mirage
seangrove has quit [Ping timeout: 240 seconds]
<hannes> morning
<mort___> morning!
<mort___> it's fine and foggy and cold here
<mort___> i'm guessing not so much in marrakesh...
* mort___ eny
* mort___ envy even
<hannes> I have a hard time reading my display in the sun...
avsm has quit [Quit: Leaving.]
engil has joined #mirage
tomboy65 has quit [Ping timeout: 264 seconds]
<maker> engil: y0
<maker> there's all the otehr command-line arguments in https://github.com/mmaker/canopy
tomboy65 has joined #mirage
<maker> I'm not relly convinced about the style of this line though
<maker> is the indentation okay?
gemmag has joined #mirage
<maker> is it really impossible to use Whatever.map on that etherogeneous list?
<aggelos_> can you _build_ an heterogeneous list?
<aggelos_> hmm
* aggelos_ wondern what the situation w/ imaplet_lwt is?
<aggelos_> wonders even
<maker> aggelos_: no, but the thing is that arguments in mirage are of Key t type, where t is some other type, and there's this abstract function hiding the t thingy
<maker> but I'm not familiar enought with ocaml to know what is happening there
<maker> *enough
<Drup> maker: it's exactly an heterogenous list, yes.
<engil> maker: ok :)
<engil> maker: we should maybe add tags, not sure of which way to handle that is the best
<engil> adding somewhere in the header a tags: field I guess would be the simplest
<engil> but I don't know if we can do something more clever using Irmin capabilities
Khady has joined #mirage
gemmag has quit [Ping timeout: 252 seconds]
mort___ has quit [Quit: Leaving.]
gemmag has joined #mirage
<aggelos_> ok, trying to find a small project to start with... what deployments are people using mirage-nat in? would it make sense to dump/restore the state for transparent upgrades?
<aggelos_> or perhaps implement state syncing a la carp?
<aggelos_> any and all guidance is welcome :)
mort___ has joined #mirage
<maker> I spoke a bit with hannes
<maker> so there's some pioneer projects
<maker> tha you can take
<maker> also there's the potential projects
<maker> but I think right now the projects with most interest are the one from engil
<maker> and there's some intent to build a unikernel for managing contacts
<aggelos_> oh
<aggelos_> do tel
<aggelos_> *tell
<maker> so if you want to work on pure ocaml stuff you can check libraries like for handling vcard formats you could test and play with
<aggelos_> wait, but what's the vision re: the contact manager?
<maker> (damn, this was phrased vary badly, hope you got the meaning)
<aggelos_> I think I did, yah
<maker> I think hannes just wants some unikernel thing with the buddy list and a chat program like jackline
<haesbaert> Drup: the example url in the functoria blog post is broken
<haesbaert> oh wait, it's not.
<haesbaert> mybad
<haesbaert> Drup: are you around, I need some assistance in functoria
<Drup> I am around
<haesbaert> so I want to pass a record to Main, how would I go about ?
<haesbaert> I wrap it into a module and somehow pass to functoria
tomboy64 has joined #mirage
<haesbaert> ?
<Drup> How is the record built ?
<haesbaert> inline, like this:
<haesbaert> jlet mydhcp =
<haesbaert> let mydhcp =
<haesbaert> ~hostname:"Charrua DHCP Server"
<haesbaert> ~default_lease_time:(60 * 60 * 1) (* 1 hour *)
<haesbaert> Dhcp_server.Config.make
<haesbaert> ....
<Drup> this looks like a job for keys.
<haesbaert> I want to define this record in another file than unikernel.ml and then have it as an argument to main
<haesbaert> it's really much biger than that
<haesbaert> I mean, it's not something that can be passed as a command line
<Drup> the whole thing, maybe. But the individual pieces ?
<haesbaert> val make :
<haesbaert> ?hostname:string ->
<haesbaert> ?default_lease_time:int ->
<haesbaert> ?hosts:host list ->
<haesbaert> ?max_lease_time:int ->
<haesbaert> addr_tuple:Ipaddr.V4.t * Macaddr.t ->
<Drup> Anyway, yes, make a module that contains it
<haesbaert> network:Ipaddr.V4.Prefix.t ->
<haesbaert> range:Ipaddr.V4.t * Ipaddr.V4.t ->
<haesbaert> options:Dhcp_wire.dhcp_option list -> t
<Drup> and pass the module
<haesbaert> is there an example I can look into ?
<Drup> huum, I'm not sure, but it's not very complicated
<Drup> maybe mirage-www
tomboy65 has quit [Ping timeout: 260 seconds]
<haesbaert> looking
<Drup> hum, actually, I simplified mirage-www, so it doesn't appear anymore
<Drup> haesbaert: The best for you is to look at mirage.ml directly, see how devices are built, and it will be the same
<Drup> You'll need it in the end anyway, if the end goal is to make a dhcpd device
<maker> haesbaert: I just used keys in mirage, perhaps I can help you with that?
<haesbaert> Drup: I'll give it a shot
<Drup> (I Still think those should be keys, in the end)
<haesbaert> can I express a full dhcpd.conf in a key ?
<haesbaert> if it is something that is passed as a command line argument it's out of the question
<haesbaert> maker: that'd b ee nice
<Drup> haesbaert: do you have the code to parse it ? :)
<mort___> wouldn't you want to do somethign where you pass in the conf in a piece of storage, parse that into a record type of some kind, and then use that? ie., the key points to the piece of storage containing the conf?
<haesbaert> I have, but I'm switching the mirage examples to instead of parsing a dhcpd.conf and giving you a config record, you actually use the config builder directly.
<mort___> ah- why?
<mort___> (sorry, jumping in a bit late :)
<Drup> haesbaert: if you have the parser, you can do what mort___ says
<Drup> Ok, let me details
<mort___> (also, kinda wishing i was in morocco!)
<haesbaert> mort___: the way you described it's how it is done now
tomboy65 has joined #mirage
<haesbaert> and it works fine
tomboy64 has quit [Ping timeout: 244 seconds]
<haesbaert> but I want to cut that and build it directly, it's less maintance on the parser and I don't need a storage just to pass a config
<Drup> You can have, at the same time: 1) Many fields with a key for each, when you want to specifiy one 2) a key that takes a .conf and set the keys
<haesbaert> I wanna go for something like this: http://codepad.org/aDmXA9vV
<mort___> ah right
<haesbaert> Drup: that would be an extra layer where I'd need to make sure optional and required values are passed and so on
<Drup> Not really, you can make keys optional/required
<haesbaert> there are 171 possible dhcp options
<Drup> Ah
<Drup> that's a bit big
<Drup> :D
<haesbaert> :P
<haesbaert> so I think an ocaml file with decent comments is a nice way
<haesbaert> I'll look into mirage.ml then
<Drup> Do you want it inside the config.ml or inside the unikernel ?
<haesbaert> I want to define it outside of both
<haesbaert> like dhcpconf.ml
<Drup> That doesn't answer the question, I'm talking about staging
tomboy65 has quit [Ping timeout: 246 seconds]
rudenoise has joined #mirage
<haesbaert> inside the unikernel
<Drup> ok
<haesbaert> in my dream world, the unikernel gets a record which is the dhcp config
<maker> this things are dealt with disks aren't they?
<haesbaert> in what way ?
<Drup> haesbaert: can you link me to the API ?
<haesbaert> sure
<haesbaert> 1s
<maker> haesbaert: mm you need to have a device that contains that dhcpd.conf file *I think*
<Drup> maker: not necessarily
<haesbaert> maker: that's what I have now, and I want to get reid of it
<haesbaert> *rid
<maker> lol, okay
<maker> Drup: and keys are not good, we said.
<haesbaert> I dont want to parse a file and build a config, I want to build thecnfig directly in ocaml
<maker> sorry, it's wasn't meant to be said to you, but to everybody
<haesbaert> np
<haesbaert> :D
<Drup> that is not very mirage-y
<haesbaert> so how would I go about ?
<haesbaert> a dhcpd config is layerd, haed optional crap, many options and so on
<haesbaert> so either I express it as a string (like now), or an ocaml value
<haesbaert> coming up with something new and usable seems incredbly painful
<haesbaert> I could have a keys version that gives a very simple config
<haesbaert> like uber limited
<haesbaert> Actually I'll do that
<haesbaert> a skeleton/dhcp and a skeleton/dhcp_simple or something like that
<Drup> Ok, I think I have a decent idea
<haesbaert> shoot
rudenoise has quit [Remote host closed the connection]
<haesbaert> btw, I now realize I need to build that at runtime since I'll need the mac address of the Netif.t
<Drup> We can refine it later, to give it a more mirage-y look, but that will need an additional functor-like API
tomboy64 has joined #mirage
<Drup> haesbaert: it feels a bit like you should take various other modules as dependency, though
<haesbaert> on the Dhcp_server.Config.make ?
<Drup> No, on the whole thing
<Drup> Have you seen how the http stack is made ?
<haesbaert> no
<Drup> You should look
<Drup> Go read the functoria blog post, then look at how mirage.ml defines the http stack
<haesbaert> ok
tomboy64 has quit [Ping timeout: 244 seconds]
<Drup> https://github.com/haesbaert/charrua-mirage/blob/master/unikernel.ml#L56-L75 you should not have to do that at all, you need to make the things appropriately functorized
<haesbaert> well not really
<haesbaert> I have to build the stack myself
tomboy65 has joined #mirage
<Drup> Why ?
<haesbaert> cause I need the full packet
<haesbaert> including link layers
<haesbaert> I can't just use and udp recv 53
<haesbaert> so I kinda have to build it myself and provide some arp
<haesbaert> but that code is dead
<haesbaert> you're looking at an old version
<haesbaert> 1s
<Drup> I still don't see why you need to make the functor application yourself
beaumonta has joined #mirage
<Drup> (and the subsequent connect calls)
beaumonta is now known as abeaumont_
<haesbaert> by connect you mean ?
<mort___> drup: i believe the point is that the dhcp stack needs to violate layers (access L2 for mac address and L3 for ip config) so can't simply rely on the stack abstraction
<Drup> This should not be in the user code, period. We have the mirage tool precisely to generate this
<Drup> mort___: what does it changes ? You still have access to the full modules
<mort___> from within a STACKV4?
<Drup> I never said to use a STACK
<mort___> or am i misunderstanding — perhaps a better question is: how would you get access to the modules needed?
<Drup> Take them as argument
<Drup> Just never build functor applications yourself, and more importantly, never do the connect yourself
<Drup> the mirage tool is there to do that
<mort___> so your Unikernel.Main functor will take an ARPV4 module, an ETHIF module, etc? and these are tied together in the config.ml ?
<haesbaert> I think the problem before was how to express an ip without a STACK
<Drup> mort___: well, ideally, the DPHC functor will take ARPV4, ETHIF, ... modules and they are tied in the config. ml :)
<Drup> DHCP*
<haesbaert> I think that's doable, but I don't see as a huge gain
<Drup> haesbaert: it removes all of the boilerplate from your file ...
<Drup> like, all of it :|
<haesbaert> not it doesn't
<haesbaert> *no
<haesbaert> You mean move even the N.listen ?
<haesbaert> lemethink about this
<Drup> if you want, yes, it would be in the functor
abeaumont_ has quit [Remote host closed the connection]
<haesbaert> so in the end there would be module Main (C:Console) (D:DHCP)
<haesbaert> something like that ?
tomboy65 has quit [Ping timeout: 252 seconds]
<Drup> Precisely
<haesbaert> and the boiller plate would be in DHCP
abeaumont_ has joined #mirage
<haesbaert> where would that code shift to ?
<haesbaert> file wise
<Drup> Your dhcp library ? ^^
tomboy65 has joined #mirage
<haesbaert> nah, my dhcp library is independent of mirage
<haesbaert> I want to keep that
<haesbaert> I could have a mirage-dhcp
<haesbaert> or could have a dhcp.ml in the skeleton too ?
<Drup> then a mirage-dhcp library
mort___ has quit [Ping timeout: 268 seconds]
<Drup> putting things in a skeleton for user to copy paste in their application is an admission that you fail to provide convenient functions and that users need to copy paste things
<haesbaert> I agree
<Drup> So, yes, mirage-dhcp. :)
<haesbaert> k, I'm convinced then
<Drup> We still need to configure configuration a bit, but I first need to see the functorised-API
<Drup> thing about configuration*
<Drup> think, grmbl
<Drup> (And do read the functoria post and the part of mirage.ml about the stack, it's going to help you)
<haesbaert> I'm half way into it
<haesbaert> so the functorized API takes ARP,ETH->DHCP
<Drup> That's for you to figure out ^^
tomboy65 has quit [Ping timeout: 248 seconds]
<Drup> (My knowledge of networking is close to non-existent, I can only give you the recipe to make it easy to use in mirage :p)
<haesbaert> well thinkin high level, to generate the configuration I need that record and a ETH
<haesbaert> I need the mac address from ETH
<haesbaert> I need to try this out
tomboy65 has joined #mirage
<Drup> Is thomas and/or jeremy around in morroco already ? You can ask them for help too, they know the whole functor thing quite well
<haesbaert> I think jeremy arrived just now
<haesbaert> I didn't pin names to faces yet :P
yegods has joined #mirage
<hannes> jeremy won't be able to join, thomasga will be arriving tomorrow around noon
mort___ has joined #mirage
AltGr has left #mirage [#mirage]
tomboy65 has quit [Ping timeout: 276 seconds]
rudenoise has joined #mirage
rudenoise has quit [Remote host closed the connection]
rudenoise has joined #mirage
tomboy65 has joined #mirage
<Leonidas> hannes: i'm in marrakech now but phone is dying
<Leonidas> (not even battery, hardware)
<Leonidas> hannes: where best to meet in djama el fna?
rudenoise has quit [Remote host closed the connection]
mort___ has quit [Quit: Leaving.]
srax has joined #mirage
* Leonidas at djama el fna
<Leonidas> looking for cafe du paris, just found cafe du france so far :D
<Drup> *du* paris ? :D
yegods has quit []
<maker> Leonidas: y0
<maker> you're stil there?
<maker> we can come pick you up
yegods has joined #mirage
<Leonidas> maker: ok, i'll go back there
<Leonidas> juice stand 57, with a hilariously misplaced tripid
mort___ has joined #mirage
<maker> Leonidas: okay, weit for me
<maker> red hoodie
<Leonidas> Drup: you can tell, my french is not the best :)
<Leonidas> i spoke more french on the last couple of days than in the last decade
<Leonidas> "french"
yegods has quit []
yegods has joined #mirage
yegods has quit []
mcclurmc has joined #mirage
yegods has joined #mirage
rudenoise has joined #mirage
mort___ has quit [Quit: Leaving.]
nullcat has joined #mirage
nullcat has quit [Client Quit]
seangrove has joined #mirage
rudenoise has quit [Remote host closed the connection]
yegods_ has joined #mirage
yegods has quit [Read error: Connection reset by peer]
jermar has joined #mirage
jgjl has joined #mirage
mort___ has joined #mirage
<al-maisan> Hello .. I arrived later in Marrakech than planned and would like to catch up with the group
<al-maisan> What is the plan for this evening?
abeaumont_ has quit [Ping timeout: 268 seconds]
rudenoise has joined #mirage
<al-maisan> hannes: where do you folks plan to go for dinner?
cuvius has joined #mirage
<aggelos_> al-maisan: I don't think there's a plan yet
gemmag has quit [Quit: Leaving.]
jermar has quit [Ping timeout: 260 seconds]
<Leonidas> al-maisan: hi there, no plan
aantron has joined #mirage
jgjl has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
mort___ has quit [Quit: Leaving.]
jgjl has joined #mirage
mort___ has joined #mirage
aantron has quit [Remote host closed the connection]
rudenoise has quit [Remote host closed the connection]
rudenoise has joined #mirage
mort___ has quit [Quit: Leaving.]
aantron has joined #mirage
rudenois_ has joined #mirage
brson has joined #mirage
rudenoise has quit [Ping timeout: 276 seconds]
rudenois_ has quit [Remote host closed the connection]
rudenoise has joined #mirage
wiredsister has joined #mirage
seangrove has quit [Ping timeout: 276 seconds]
jgjl has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
gemmag has joined #mirage
apluke has joined #mirage
raindev has joined #mirage
<hannes> dinner will be served at the venue around 19:00... come around, join us!
mort___ has joined #mirage
mort___ has quit [Client Quit]
rudenoise has quit []
gemmag has quit [Quit: Leaving.]
beaumonta has joined #mirage
raindev has quit [Ping timeout: 244 seconds]
raindev has joined #mirage
jermar has joined #mirage
beaumonta has quit [Ping timeout: 246 seconds]
raindev has quit [Ping timeout: 252 seconds]
raindev has joined #mirage
jgjl has joined #mirage
raindev has quit [Remote host closed the connection]
apluke has quit [Ping timeout: 244 seconds]
<haesbaert> so I was tricked into starting an IPSEC stack
<haesbaert> can probably develop in work time with some luck
jgjl has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
wiredsister has quit [Ping timeout: 244 seconds]
tomboy65 has quit [Ping timeout: 248 seconds]
tomboy65 has joined #mirage
tomboy65 has quit [Ping timeout: 248 seconds]
tomboy65 has joined #mirage
jgjl has joined #mirage
mcclurmc has quit [Ping timeout: 268 seconds]
apluke has joined #mirage
mcclurmc has joined #mirage
tomboy65 has quit [Ping timeout: 246 seconds]
tomboy65 has joined #mirage
jgjl has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
jgjl has joined #mirage
jgjl has quit [Client Quit]
<al-maisan> Leonidas, hannes : could not make it this evening .. see you tomorrow around 13h
<Leonidas> al-maisan: sounds good!
jgjl has joined #mirage
beaumonta has joined #mirage
jgjl has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
beaumonta is now known as abeaumont_
apluke has quit [Ping timeout: 268 seconds]
ezyang has joined #mirage
<ezyang> Does anyone know what MIrageOS paper I should cite about their DSL for programming ML functors?
abeaumont_ has quit [Ping timeout: 264 seconds]
apluke has joined #mirage
apluke has quit [Ping timeout: 260 seconds]
oskarth has quit [Read error: Connection reset by peer]
oskarth has joined #mirage
nullcat has joined #mirage