avsm changed the topic of #mirage to: mirage 2 released! party on!
lobo has quit [Quit: sleep]
brson has quit [Quit: leaving]
nordwap has joined #mirage
nordwp_home has quit [Ping timeout: 260 seconds]
nordwap has quit [Ping timeout: 260 seconds]
dsheets has joined #mirage
andreas23 has joined #mirage
dsheets has quit [Ping timeout: 260 seconds]
lars_kurth has joined #mirage
dsheets has joined #mirage
lars_kurth has quit [Ping timeout: 260 seconds]
lars_kurth has joined #mirage
lars_kurth has quit [Ping timeout: 260 seconds]
lars_kurth has joined #mirage
jonludlam has joined #mirage
mort___ has quit [Quit: Leaving.]
lars_kurth has quit [Ping timeout: 246 seconds]
lars_kurth has joined #mirage
dsheets has quit [Ping timeout: 246 seconds]
lars_kurth has quit [Ping timeout: 245 seconds]
lars_kurth has joined #mirage
mort___ has joined #mirage
andreas23 has quit [Quit: Leaving.]
yomimono has joined #mirage
dsheets has joined #mirage
dsheets has quit [Ping timeout: 246 seconds]
lars_kurth has quit [Ping timeout: 245 seconds]
dsheets has joined #mirage
dexterph has quit [Ping timeout: 264 seconds]
dexterph has joined #mirage
lars_kurth has joined #mirage
nordwp_home has joined #mirage
lars_kurth has quit [Ping timeout: 246 seconds]
lars_kurth has joined #mirage
nordwp_home has quit [Ping timeout: 260 seconds]
lars_kurth has quit [Ping timeout: 246 seconds]
lars_kurth has joined #mirage
<Drup> yomimono: TIL "have a gander"
<yomimono> drup: happy to help :P
<Drup> is it distinctively american ? :p
lars_kurth_alt has joined #mirage
<yomimono> oh hm, good question? I can ask around later; only americans in my office at the moment
<yomimono> (unless any non-AmE native english speakers are on the channel...?)
lars_kurth has quit [Ping timeout: 246 seconds]
<yomimono> according to worldwidewords.org it is: "It seems the verb to gander in this sense is actually American in origin"
<Drup> I like the amount of carefulness in this phrasing.
<yomimono> ...oh wait, then it disagrees with itself. http://www.worldwidewords.org/qa/qa-gan2.htm
<yomimono> Thanks for calling this out; I hadn't thought much about it!
<Drup> I was just curious :)
x-ip has joined #mirage
x-ip has quit [Changing host]
x-ip has joined #mirage
<Drup> After re-reading https://github.com/mirage/mirage/issues/476#issuecomment-161983465, I'm not sure I understand the question, in fact
<yomimono> when you call netif.connect (), you get a new record each time even though each one will be passing data through to the same interface
<yomimono> (if I understand correctly)
<yomimono> it's not a huge deal until you start trying to, for example, register listeners at different levels of the stack
<Drup> nobody should call netif.connect except the piece of code involved in the netif device
<Drup> and that would be wrapped in a lazy, so evaluated only once
<Drup> (unless, of course, you declare several different net interface)
<yomimono> except that ipv4 calls ethifv4 calls netif.connect, and ethifv4 calls netif.connect...
<yomimono> it's possible my question is poorly formed because I don't understand Lazy well
<Drup> let me check the code
<Drup> No, it's what I though, Netif.connect is only called in the net interface declaration
<yomimono> but it's not just the repeated calls to connect that are a problem; if you have two different records representing, say, the ipv4 layer, and you configure one of them but use the second as an argument to a listen function, you'll get some unexpected behavior
<Drup> how that could happen ?
<yomimono> hang on, let me pastebin something
<yomimono> which is generated from mirage-skeleton example network
<Drup> yeah
<yomimono> there are a bunch of records that are generated in stackv4_dhcp1
<yomimono> hang on, sorry, I'm thinking through this and (as always) it's possible that I'm wrong
<Drup> It's okay, the invariants are a bit weird
<mort___> (OT: re ganders, as an english-english speaker I would certainly understand the phrase "have a gander" and I wouldn't associate it as particularly american, fwiw)
lobo has joined #mirage
<yomimono> the udp and tcp records are constructed with their own ip record, invisible to the caller. but the only ip record that the application will have access to is the ip record that's made in stackv4_dhcp and returned in the stack record
<yomimono> so if the application then configures the ip, it won't be configuring the ip that the udp and tcp records have stored
<yomimono> (if I'm reasoning about this correctly)
<Drup> yomimono: hum, don't they all use the one returned by the ip device ?
<yomimono> drup: IP records get told about their configuration (either by manual configuration or via DHCP), they don't autodiscover
<yomimono> not sure what you mean by "returned by the ip device" though?
<Drup> by "ipv411 () " in the code you pasted
<Drup> I think the issue you are pointing out is the same as the fact that too call of this function don't return the same record
<Drup> two calls*
<yomimono> nope. connect optionally takes some configuration arguments but there's mutable state in the record that the user can change later
<yomimono> IPv4.connect, that is
<yomimono> Drup: yeah; it'd be fine if either each call returned the same record or we only made one call
<Drup> yomimono: originally, the unit functions were there to delay side effects
<Drup> I think I just naively assumed referential transparency and was ridiculously wrong about it.
<Drup> (I don't remember if I added that in functoria or not)
<Drup> so, instead of using unit functions to delay side effects, we could just use lazy, which would mean all the values are computed once.
<yomimono> OK, sounds reasonable to me.
<Drup> I will try that just after I finish writing my rebuttal :<
<yomimono> can your rebuttal just be "THE REVIEWER IS A BUTT"?
<yomimono> (ideally accompanied by a crude drawing of a butt)
<Drup> I think it's not the best strategy if I want my paper to be accepted.
<yomimono> That's no fun.
<hannes> Drup: that's ESOP?
<Drup> yeah
<hannes> is there a generic last-recently-used data structure in some OCaml library? what I would like to have is a cache which does not grow beyond XX entries..
<hannes> Drup: what about?
<Drup> eliom
<Drup> hannes: ask on #ocaml, I'm sure companion_cube has an idea /D
<Drup> yomimono: tbh, I was very tempted to add at the end of the mail:
<hannes> Drup: oh yep, I wanted to ask in ocaml, but somehow the focus was here..
<yomimono> drup: niiiiiiice
<Drup> yomimono: btw, did you made progress on the alternative functoria UI ?
<yomimono> drup: nope.
<yomimono> been hacking on stuff for UCN demo the last couple of weeks
<Drup> ok
<yomimono> might pick it back up after, although not really sure -- UI isn't really my thing
<yomimono> I think yallop is farther along
<yomimono> in terms of having something useful/showable
<Drup> ok
lars_kurth_alt has quit [Ping timeout: 245 seconds]
mattg_ has joined #mirage
mattg has quit [Ping timeout: 264 seconds]
mattg_ is now known as mattg
yomimono has quit [Ping timeout: 246 seconds]
dsheets has quit [Remote host closed the connection]
lars_kurth_alt has joined #mirage
lars_kurth_alt has quit [Ping timeout: 260 seconds]
miragebot has joined #mirage
<miragebot> [mirage] Drup pushed 2 new commits to master: http://git.io/vR8ys
<miragebot> mirage/master 251f9a6 Mindy Preston: meta_ipv4 parenthesizes its output...
<miragebot> mirage/master 91e05fd Gabriel Radanne: Merge pull request #477 from yomimono/resolver_fix...
miragebot has left #mirage [#mirage]
lars_kurth_alt has joined #mirage
jonludlam has quit [Ping timeout: 260 seconds]
mort___ has quit [Ping timeout: 260 seconds]
brson has joined #mirage
mort___ has joined #mirage
agarwal1975 has joined #mirage
agarwal1975 has quit [Client Quit]
mort___ has quit [Quit: Leaving.]
mort___ has joined #mirage
mort___ has quit [Quit: Leaving.]
mort___ has joined #mirage
lars_kurth_alt has quit [Ping timeout: 260 seconds]
mort___ has quit [Quit: Leaving.]
yomimono has joined #mirage
lars_kurth_alt has joined #mirage
lars_kurth_alt has quit [Ping timeout: 245 seconds]
x-ip has quit [Quit: Leaving]
lars_kurth_alt has joined #mirage
lars_kurth_alt has quit [Ping timeout: 246 seconds]
<Drup> yomimono: btw, if you want a functoria-patched skeleton: https://github.com/mirage/mirage-skeleton/pull/104
<yomimono> drup: cool, thanks :)
<Drup> are you working now ?
<yomimono> a little
<Drup> (if yes, I have something to make you test, I can't manage to have a proper xen environment)
<yomimono> (yes, but I don't want to admit it)
<yomimono> oh, sure, I can do that
<Drup> as a fix for the multiple connect issue
<yomimono> OK, I'll give it a go
<yomimono> works for the mirage-skeleton network example, but generates something uncompileable for the more complicated thing I was trying to do something else with
<Drup> Oh ?
<yomimono> I'll put that unikernel up somewhere, just a sec
<yomimono> tracing-related
<Drup> aarrg
<Drup> I told thomas that it would break, it didn't miss =_=
<Drup> booh, use the dynamic stack already :p
<yomimono> I don't know what you mean by that
<Drup> Oh.
<yomimono> ah. I've been compiling this with mirage 2.6.1 so I haven't added any new hotness
<Drup> ok
<yomimono> (might be handing it off to someone who is slightly less enthusiastic an alpha tester than I am)
<Drup> fair enough :p
<yomimono> but if you prefer not to debug from this I understand that too
<Drup> but, wait, how does it works ? mirage 2.6.1 doesn't use functoria
<yomimono> I've been compiling with both, trying to figure out whether functoria would be smarter about some annoying stack bugs 2.6.1 has
<Drup> oh, right
<Drup> anyway, it's obviously the tracing, I don't really need to debug
<yomimono> luckily not a lot of deps on mirage so it's not too annoying to pin and unpin it
<Drup> it's disgusting, but you should be able to test with it
<yomimono> drup: much better! \o/
<yomimono> thanks!
<Drup> well no, you are testing for me :D
StatelessCat has joined #mirage
<Drup> can you pastebin the new connect log with all that ?
<yomimono> sure
<yomimono> things progress as expected -- before your fix I couldn't even get a DHCP lease
<Drup> cool!
<yomimono> not sure how it was working for mirage-www, I think that net might be set statically
<yomimono> but yes, 1000% improvement :D
<Drup> the ip is static in mirage-www
<Drup> (and hum, I didn't tested on xen)
<yomimono> it's built for xen for mirage.io, so it at least kinda works :P
<Drup> I need to add a test in CI for tracing
<Drup> it's not going to be trigered simply by mirage skeleton
<Drup> or maybe add a skeleton about tracing
<yomimono> we could just -- yeah, what you said
<yomimono> I think that's a good idea anyway
<Drup> do you have a good not-too-complicated example already done ?
<yomimono> I think there's one attached to the blog post introducing tracing
<yomimono> if not, we can add it to something like the hello world or one of the network examples
<Drup> I would prefer a new one, special for tracing
<Drup> (it must be opt-in, since it needs a fork of lwt)
<yomimono> yeah, I was thinking copy something into thing_tracing, like there's static_website and static_website_tls
<yomimono> but this example's good and it's nice to have stuff in skeleton that mirrors the docs that already exist
<Drup> yes
<Drup> I'll do that, but after my episode of elementary :3
<yomimono> niiiiice
<yomimono> I think I'm going to close my computer and go to sleep!
<yomimono> thanks again for the patch :)
yomimono has quit [Quit: Leaving]
kensan has joined #mirage
nordwp_home has joined #mirage
nordwp_home has quit [Ping timeout: 260 seconds]
nordwp_home has joined #mirage