<discocaml>
<cemerick> anyone work with it much yet? Seems it's not been mentioned @ discuss outside of companion_cube listing it off as a "contender" vis a vis moonpool, eio, etc
<discocaml>
<cemerick> very zesty @dinosaure 😜, how would you characterize miou's status?
ced1 has joined #ocaml
ced1 is now known as cedb
cedb has quit [Ping timeout: 245 seconds]
ced1 has joined #ocaml
ced1 is now known as cedb
Bitwiser has quit [Ping timeout: 245 seconds]
Bitwiser has joined #ocaml
bartholin has joined #ocaml
bartholin has quit [Remote host closed the connection]
Serpent7776 has joined #ocaml
rgrinberg has joined #ocaml
dnh has joined #ocaml
Tuplanolla has joined #ocaml
CalimeroTeknik has quit [Changing host]
CalimeroTeknik has joined #ocaml
dnh has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
dnh has joined #ocaml
Serpent7776 has quit [Ping timeout: 255 seconds]
mima has joined #ocaml
dhil has joined #ocaml
pieguy128 has joined #ocaml
rgrinberg has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
rgrinberg has joined #ocaml
dnh has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
rgrinberg has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<discocaml>
<dinosaure> Yeah, it's basically a round robin scheduler 🙂
<discocaml>
<dinosaure> Currently we are focus onthe documentation but the core is ready
<discocaml>
<dinosaure> I will probably do an anouncement next month
dhil has quit [Ping timeout: 255 seconds]
Serpent7776 has joined #ocaml
mima has quit [Ping timeout: 255 seconds]
<discocaml>
<dinosaure> But yeah the library is ready, we did several tries to see if the API is correct, ar least if ideas that propose `miou` are correct
<discocaml>
<dinosaure> About this point, I will precise a bit more what happened in my blog I think. But yeah, we would like to not depend on `eio` for "social reasons". So it's not originally a technical reason to make a new scheduler even if, currently, we have some deep technical differences.
<hannes>
it is fair to say that the design is different, as is resource management. and at the bottom the lines of code is drastically different (though obviously the featureset is different).
Bitwiser has quit [Ping timeout: 255 seconds]
pkal has left #ocaml [Killed buffer]
<discocaml>
<dinosaure> Actually, if you are interested, https://github.com/roburio/miou/blob/main/lib/state.mli explains the deep difference about our usage of effects and and the usage of others schedulers. The key is the availability for any tasks to have an equal opportunity to be in-sync with system events.
Anarchos has joined #ocaml
<discocaml>
<dinosaure> (which is the main advantage of a round robin scheduler, of course, some disadvantages exist but we will try to precise that on the documentation)
<discocaml>
<darrenldl> i made a tui chat app demo with eio some time ago, might be time to try porting that to miou just to see how using miou feels
<discocaml>
<dinosaure> (And I just realize that I did some jokes on the doc that we probably should avoid 🙃)
bartholin has joined #ocaml
waleee has joined #ocaml
Anarchos has quit [Ping timeout: 255 seconds]
Anarchos has joined #ocaml
Groumf has quit [Ping timeout: 246 seconds]
Anarchos has quit [Quit: Vision[]: i've been blurred!]
Hammdist has quit [Ping timeout: 246 seconds]
<hannes>
darrenidl; I think that's a excellent idea
Hammdist has joined #ocaml
dnh has joined #ocaml
<companion_cube>
@cemerick I wouldn't say moonpool is a competitor to Eio or Miou btw. It's more of an alternative to domainslib. Like a classic thread pool, not a layer above epoll which would be used for IO
dnh has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<discocaml>
<dinosaure> (And I just realize that I did some jokes on the doc that we probably should avoid 🙃)
Hammdist has quit [Ping timeout: 246 seconds]
<discocaml>
<dinosaure> Yes, I agree with that 🙂 for pure algorithm (like SAT solver :p), `moonpool` is probably better
<companion_cube>
SAT solvers are hard to parallelize but otherwise yeah
Hammdist has joined #ocaml
<discocaml>
<dinosaure> You are better than me about that 🙂
bartholin has quit [Quit: Leaving]
waleee has quit [Ping timeout: 245 seconds]
mima has joined #ocaml
rgrinberg has joined #ocaml
dnh has joined #ocaml
dnh has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Hammdist has quit [Ping timeout: 246 seconds]
rgrinberg has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
Guest76 has joined #ocaml
Guest76 has quit [Client Quit]
dnh has joined #ocaml
dnh has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
dnh has joined #ocaml
dnh has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<discocaml>
<darrenldl> hannes: oops irc can see deleted messages : v
<discocaml>
<darrenldl>
<discocaml>
<darrenldl> i was thinking its a silly to bring up, but good to know someone thinks its not a terrible idea : D
Hammdist has joined #ocaml
<hannes>
darrenldl: it'd be interesting to hear from your experience.. any outside feedback / comparison is always very useful (to eventually re-evaluate the API)
<discocaml>
<darrenldl> fs has been a pain point to me in eio, so id be curious how it stacks up in miou (or if its within miou's purview)
<discocaml>
<darrenldl> eio feels overreaching at points, im guessing miou would make me think less so
<hannes>
"fs"?
<discocaml>
<darrenldl> file system
<discocaml>
<darrenldl> paths have to be computed using eio primitives
<discocaml>
<darrenldl> which i have mixed feelings about
<discocaml>
<darrenldl> namely you have to specify the "root" of path resolution, which can either be root of file system, or current working directory
<discocaml>
<darrenldl>
<discocaml>
<darrenldl> supposedly the latter can provide a safety net in avoiding looking up to the wrong place
<hannes>
hmm
<hannes>
I can see pain there. I appreciate something along these lines to be optional - i.e. define the basic functions (open/read/write/close) on "string", and document that users can use "fpath" or something along these lines if they want more safety
azimut has quit [Ping timeout: 246 seconds]
<hannes>
since "sandboxing" / escaping from a folder involves likely more than the fs API (haven't looked into eio, but e.g. links come to mind, as do relative paths)
bartholin has joined #ocaml
<haesbaert>
I think the "nice thing" is to provide some openat relative thing if you want to be safe and so on
<discocaml>
<darrenldl> the very annoying consequence is i need to pass down either the fs component of eio's environment, or pass the entire environment down
<haesbaert>
I've felt your pain
<discocaml>
<darrenldl> i really feel like the environment thing should operate at dune virtual library level, not at a vale level
<discocaml>
<darrenldl> value level*
<hannes>
haesbaert: openat is nice indeed, but you can just expose that in your API :)
<haesbaert>
ack, that's what I meant
<hannes>
darrenldl: I honestly still don't understand what this "environment" is, and why I should care... but then I may have read too many POSIX manpages (and dislike having to pass "environments" and other global state through) ;)
<haesbaert>
hannes: it's the "object capability" thing, you get the "fs from an env"
rgrinberg has joined #ocaml
<hannes>
haesbaert: thanks. can i take a beer instead?
<haesbaert>
a beer is easy, I'd take a punch and would still think it was worth it
<discocaml>
<darrenldl> you grab things like stdin, stdout, clock, monotonic clock, file system out of this environment
<haesbaert>
at any rate, if you're building stuff like an httpd, you should chroot and drop to nobody anyway
<discocaml>
<darrenldl> if one really wants sandboxing, bwrap is around the corner
<haesbaert>
but that's highly unportable
<haesbaert>
but then again, who cares about portability in 2023, the world is linux and everyone else eats cake
<discocaml>
<darrenldl> i think it should still be something that appeals to os level stuff than at a language api level in a language with no capability system...but im barking up the wrong tree judging last discussion on ocaml.org
<haesbaert>
you're not, virtually no one likes the capability stuff
<haesbaert>
it's a recurrent topic of content, to put it mildly
<haesbaert>
*contention
<discocaml>
<darrenldl> sadly so
perrierjouet has joined #ocaml
<haesbaert>
you can use the Eio.LowLevel directly nowadays I think, at least that was the plan
<discocaml>
<darrenldl> oh i didnt know about that, huh
<haesbaert>
it's kinda new, worth the shot :)
<discocaml>
<darrenldl> ah okay, new stuff, neat
perrierjouet has quit [Client Quit]
perrierjouet has joined #ocaml
perrierjouet has quit [Client Quit]
dnh has joined #ocaml
xmachina1 has joined #ocaml
dnh has quit [Ping timeout: 245 seconds]
xmachina1 has quit [Client Quit]
xmachina has joined #ocaml
<discocaml>
<darrenldl> i might look into contributing to miou after studies
<discocaml>
<darrenldl>
<discocaml>
<darrenldl> eio code was a bit complex everywhere i looked, presumably to squeeze performance, but still
rgrinberg has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<discocaml>
<lecondorduplateau> f*ck apolitical libraries, that's part of the artistic direction ☭
xmachina has quit [Quit: WeeChat 4.0.3]
xmachina has joined #ocaml
Bitwiser has joined #ocaml
rgrinberg has joined #ocaml
mima has quit [Ping timeout: 255 seconds]
<discocaml>
<dinosaure> From my experience, the performance is probably the last thing you should think about and the first must be the API. If you improve something on performances but you did not agreed on a specification on what the stuff do upfront, IMHO, you just make a new code, you did not improve it. When we talk about performances, an oracle matters and the specification matters to be able to evaluate and compare what you did.
<discocaml>
<dinosaure> About `miou` and fs, it's very like `lwt` and `lwt.unix`. `miou` has the basics and `miou.unix` (currently named `miouu` but the name, even if it's fancy, is not usable) has all POSIX stuffs.
<discocaml>
<dinosaure> This separation is related to unikernels of course but I don't think that we experiment something new on this side 🙂 . I mean, for +10 years `lwt` keeps such choice and it was fine.
dhil has joined #ocaml
xmachina has quit [Quit: WeeChat 4.0.3]
xmachina has joined #ocaml
Groumf has joined #ocaml
rgrinberg has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
farn has quit [Ping timeout: 240 seconds]
rgrinberg has joined #ocaml
farn has joined #ocaml
Hammdist has quit [Ping timeout: 246 seconds]
Hammdist has joined #ocaml
Bitwiser has quit [Ping timeout: 246 seconds]
Bitwiser has joined #ocaml
Hammdist has quit [Ping timeout: 246 seconds]
Hammdist has joined #ocaml
Bitwiser has quit [Ping timeout: 246 seconds]
Anarchos has joined #ocaml
<Anarchos>
rgrinberg i have questions about dune, spawn github repositories.
Bitwiser has joined #ocaml
xmachina has quit [Quit: WeeChat 4.0.3]
xmachina has joined #ocaml
dhil has quit [Ping timeout: 245 seconds]
<discocaml>
<Et7f3 (@me on reply)> Ask them
<Anarchos>
i see that in the dune/vendor folder, spawn is retrieved from github.com/rgrinberg/spawn, which is behind janestreet's version. So if i have a pull request in spawn to do, where to direct it ? Janestreet or rgrinberg ?
<rgrinberg>
janestreet
<Anarchos>
ok
<Anarchos>
so i have to clone the janestreet spawn repo instead of yours.
rgrinberg has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
rgrinberg has joined #ocaml
xmachina has quit [Quit: WeeChat 4.0.3]
xmachina has joined #ocaml
Serpent7776 has quit [Ping timeout: 245 seconds]
Hammdist has quit [Ping timeout: 246 seconds]
hrberg has quit [Ping timeout: 256 seconds]
bartholin has quit [Quit: Leaving]
xmachina has quit [Quit: WeeChat 4.0.3]
xmachina has joined #ocaml
rgrinberg has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
Anarchos has quit [Quit: Vision[]: i've been blurred!]
rgrinberg has joined #ocaml
azimut has joined #ocaml
rgrinberg has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
rgrinberg has joined #ocaml
azimut has quit [Remote host closed the connection]
azimut has joined #ocaml
rgrinberg has quit [Quit: My Mac has gone to sleep. ZZZzzz…]