philtor has joined #mirage
mcclurmc has quit [Remote host closed the connection]
philtor has quit [Ping timeout: 272 seconds]
englishm has joined #mirage
philtor has joined #mirage
philtor has quit [Ping timeout: 272 seconds]
englishm has quit [Quit: Leaving...]
mcclurmc has joined #mirage
englishm has joined #mirage
<englishm> rgrinberg: I'd like to use opium w/ mirage. I see issue #11 for lwt support - did you decide on a direction w/ avsm for that yet?
<englishm> I saw that there's also an open issue (#282) on the mirage side for adding async support, so I wasn't sure.
<rgrinberg> englishm: i wouldn't hold my breath for async on mirage
<rgrinberg> I'm still working on the port
<rgrinberg> It's mostly a lot of grunt work so it will take some time
<englishm> rgrinberg: Ok, thanks. Anything a newcomer to OCaml could help out with?
<rgrinberg> Sure. I think splitting opium_rock (the base) into opium_rock and opium_rock.async is pretty manageable https://github.com/rgrinberg/opium/tree/master/rock
<rgrinberg> from there, it's just turning the crank just like in cohttp
<rgrinberg> I'm not sure if I would classify this work as good for a newcomer though. I remember the details of the module system were confusing to me as a beginner.
<rgrinberg> great way to learn though
<englishm> I'll start poking around and see what I can figure out. If I make any progress I'll send some PRs your way. :)
mcclurmc has quit [Remote host closed the connection]
<rgrinberg> thanks
<englishm> thank you!
<rgrinberg> dont hesitate to ask or open issues
<rgrinberg> maybe i should do the initial split myself to show the way forward :D
<englishm> sure, don't let me hold you back :)
jprakash has joined #mirage
tlockney is now known as tlockney_away
jprakash has quit [Quit: leaving]
englishm has quit [Remote host closed the connection]
AltGr has joined #mirage
rgrinberg has quit [Quit: Leaving.]
<bsb> Morning
thomasga has joined #mirage
thomasga has quit [Quit: Leaving.]
thomasga has joined #mirage
dsheets has joined #mirage
thomasga has quit [Quit: Leaving.]
dsheets has quit [Ping timeout: 245 seconds]
avsm has joined #mirage
thomasga1 has joined #mirage
avsm has quit [Quit: Leaving.]
dsheets has joined #mirage
thomasga1 has quit [Client Quit]
djs55 has joined #mirage
djs55 has quit [Client Quit]
djs55 has joined #mirage
thomasga1 has joined #mirage
andreas has joined #mirage
andreas1 has quit [Ping timeout: 244 seconds]
thomasga has joined #mirage
thomasga has quit [Client Quit]
thomasga1 has quit [Ping timeout: 240 seconds]
avsm has joined #mirage
lpw25 has joined #mirage
dezzy has quit [Changing host]
dezzy has joined #mirage
avsm has quit [Quit: Leaving.]
avsm has joined #mirage
englishm has joined #mirage
<dsheets> avsm, HSTS HTTP header RFC 6797 and they use preloaded lists to thwart first contact mitm
avsm has quit [Quit: Leaving.]
englishm1 has joined #mirage
avsm has joined #mirage
<avsm> dsheets: yes!
mcclurmc has joined #mirage
rgrinberg has joined #mirage
avsm1 has joined #mirage
avsm has quit [Ping timeout: 260 seconds]
rektide_ is now known as rektide
tlockney_away is now known as tlockney
avsm has joined #mirage
avsm1 has quit [Ping timeout: 245 seconds]
avsm has quit [Quit: Leaving.]
avsm has joined #mirage
<vbmithr_> Hop
<vbmithr_> back
englishm1 has left #mirage [#mirage]
dbuenzli has joined #mirage
avsm has quit [Quit: Leaving.]
philtor has joined #mirage
stevej has joined #mirage
stevej has quit [Quit: ["Textual IRC Client: www.textualapp.com"]]
lpw25 has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]
AltGr has left #mirage [#mirage]
jprakash has joined #mirage
brson has joined #mirage
philtor_ has joined #mirage
mcclurmc has quit [Remote host closed the connection]
avsm has joined #mirage
djs55 has quit [Quit: Leaving.]
philtor has quit [Ping timeout: 260 seconds]
dsheets has quit [Ping timeout: 260 seconds]
philtor has joined #mirage
thomasga has joined #mirage
rgrinberg has quit [Quit: Leaving.]
yomimono has joined #mirage
avsm has quit [Quit: Leaving.]
thomasga has quit [Quit: Leaving.]
mcclurmc has joined #mirage
dbuenzli has quit [Ping timeout: 264 seconds]
mcclurmc has quit [Remote host closed the connection]
philtor_ has quit [Ping timeout: 264 seconds]
agarwal1975 has quit [Quit: agarwal1975]
mcclurmc has joined #mirage
mcclurmc has quit [Remote host closed the connection]
rgrinberg has joined #mirage
mcclurmc has joined #mirage
mcclurmc has quit [Remote host closed the connection]
dsheets has joined #mirage
djs55 has joined #mirage
dbuenzli has joined #mirage
yomimono has quit [Read error: Connection reset by peer]
mcclurmc has joined #mirage
yomimono has joined #mirage
yomimono has quit [Read error: Connection reset by peer]
yomimono has joined #mirage
yomimono has quit [Read error: Connection reset by peer]
yomimono has joined #mirage
yomimono has quit [Read error: Connection reset by peer]
yomimono has joined #mirage
yomimono has quit [Read error: Connection reset by peer]
yomimono has joined #mirage
yomimono has quit [Read error: Connection reset by peer]
yomimono has joined #mirage
yomimono has quit [Read error: Connection reset by peer]
yomimono has joined #mirage
yomimono has quit [Read error: Connection reset by peer]
yomimono has joined #mirage
yomimono has quit [Read error: Connection reset by peer]
yomimono has joined #mirage
yomimono has quit [Read error: Connection reset by peer]
yomimono has joined #mirage
yomimono has quit [Read error: Connection reset by peer]
dbuenzli has quit [Quit: Leaving.]
avsm has joined #mirage
<vbmithr_> hannes: How do I gather entropy with nocrypto ?
<vbmithr_> Is there a way to give /dev/urandom somewhere ?
<vbmithr_> It's annoying to have to do that manually, I'd like to provide a function creating entropy and that's it.
dsheets has quit [Ping timeout: 250 seconds]
<rgrinberg> avsm: I've had a cursory glance at async_kernel to see where the unix dependencies are coming from and it seems like the main obstacle is time
<rgrinberg> how do you guys port time stuff to mirage?
djs55 has quit [Quit: Leaving.]
<avsm> rgrinberg: it's mainly figuring out the channel interfaces
<avsm> the time stuff is pretty easy: both async and lwt keep a timer wheel (or pqueue) of timeouts
<rgrinberg> channel interfaces? like for reader/writer?
<avsm> yeah, they're all C bindings
<avsm> Async.Reader/Writer are specific to unix
<avsm> like Lwt_io (which we dont use in Mirage)
<rgrinberg> I see. So doing async_kernel alone is kind of pointless
<avsm> i think it would be useful — for instance, you could port a lot of cohttp
<avsm> async_unix is where the source of the traffic comes from, but the majority of logic (monitors, combinators) are in async_kernel
<avsm> i've been wondering about porting to use the higher library to remove the IO module
<avsm> (it would be an 'io kind instead)
<rgrinberg> you mean in cohttp?
<avsm> that might make all this easier, since there would be no need to functorize half the library
<avsm> yeah
<rgrinberg> yeah, I think JS would refuse any functorization as well
<rgrinberg> it's just too damn ugly
<avsm> it's a bit of a large hammer, yeah
<avsm> about to finally commit some conduit code btw — quite happy with the interface now
<rgrinberg> I think higher is worth trying I think it would work better for opium as well
<avsm> (cohttp's been blocked far too long on that account)
* avsm really wants to use opium on his website…
<rgrinberg> I want webapp that compiles into a unikernel
<philtor> opium uses Async?
<rgrinberg> indeed
<rgrinberg> avsm: also about the build system stuff, are we waiting on assemblage?
<philtor> avsm: conduit code?
<philtor> rgrinberg: How hard to port to Lwt?
<philtor> I've been thinking I should just port mqtt_client to Lwt to get it into Mirage.
<rgrinberg> philtor: how hard to port opium?
<rgrinberg> or stuff in general
<philtor> rgrinberg: yes
<philtor> (opium)
<rgrinberg> pretty trivial
<rgrinberg> the challenge is supporting both
<philtor> what is the "higher" library?
<philtor> rgrinberg: yes, I'd rather not have two versions either.
<rgrinberg> higher is a little hack to support type constructor polymorphism
<rgrinberg> the point is that instead of writing code inside a functor to parameterize over a monad
<rgrinberg> the monad is a parameter itself
<rgrinberg> (Deferred.t or Lwt.t in our specific case)
<rgrinberg> you still have to do the dictionary plumbing manually however so it's ugly anyway
<rgrinberg> but at least you dont have to do the functor triple by pass surgery to your library
thomasga has joined #mirage
<avsm> thomasga: jesus.cam.ac.uk?
<avsm> rgrinberg: i think so — i'm not convinced by S.mli on thinking about it a bit more though
<thomasga> avsm: ?
<avsm> specifically, defining records in a module type seems pointless (how can you ever use them?)
<avsm> thomasga: thomasga [~samoht@zone7.jesus.cam.ac.uk]
<thomasga> seems that jesus college is providing me the internet
<avsm> heh
<thomasga> haaa eduram
<thomasga> that's weird
yomimono has joined #mirage
yomimono has quit [Client Quit]
yomimono has joined #mirage
<rgrinberg> avsm: that's just laziness to let with fields fill in the accessors
<avsm> oh that makes sense
<avsm> alright, convinced again :)
<rgrinberg> i'm not convinced by Body.t though i think the way it works can lead to subtle bugs :/
<avsm> Yeah, I had similar lazy-body-handling problems in a haskell server i wrote years ago
<rgrinberg> I've looked at similar approaches to the problem in Haskell and it kind of confirms it
thomasga1 has joined #mirage
<avsm> i had spdy support in the back of my head when doing that
<avsm> that adds another layer of interestingness
<rgrinberg> they usually 2 separate types - a "StringBuilder" and a "Body"
<rgrinberg> our Body.t should just be a BodyBuilder
<avsm> aye
<avsm> (pun intended, i hope)
<rgrinberg> BodyBuilder sounds a little odd actually
<rgrinberg> ^_^
thomasga has quit [Ping timeout: 240 seconds]
<rgrinberg> The way it works currently where a caller's body.t vanishes into the ether after to_string is asking for bugs
englishm has quit [Remote host closed the connection]
avsm has quit [Remote host closed the connection]
englishm has joined #mirage
englishm has quit [Remote host closed the connection]
englishm has joined #mirage
englishm has quit [Remote host closed the connection]
mcclurmc has quit [Remote host closed the connection]
mcclurmc has joined #mirage
englishm has joined #mirage
mcclurmc has quit [Remote host closed the connection]
mcclurmc has joined #mirage
thomasga1 has quit [Quit: Leaving.]
mcclurmc has quit [Ping timeout: 244 seconds]
mcclurmc has joined #mirage
englishm has quit [Remote host closed the connection]
yomimono has quit [Ping timeout: 250 seconds]
englishm has joined #mirage
rgrinberg has quit [Quit: Leaving.]