<companion_cube>
I'm not sure, it doesn't really have the same notion of fiber does it? :/
<companion_cube>
Or, at least, promise
<discocaml>
<dinosaure> Note that if you want httpaf and a scheduler with cancellation, you have miou with https://github.com/robur-coop/httpcats 🙂 . As moonpool, you can cancel any fibers and we explain how to handle the sigint signal to clean-up and stop an echo server in our book here: https://robur-coop.github.io/miou/conditions_and_mutexes.html#conditions. `httpcats` is not released because we currently do a bug change on `mirage-crypto`/`tls` - and it's no
<discocaml>
<dinosaure> Also, we did some small benchmark and we currently are twice faster than cohttp/eio (~200k req/sec where cohttp/eio handles only 100k req/sec)
<discocaml>
<dinosaure> Of course, all of these is pretty experimental but, at this stage, we mostly need users to start an interactive loop to improve Miou and httpcats
<discocaml>
<darrenldl> > eio's cancellation is confusing
<discocaml>
<darrenldl> i share the sentiment, though in my scenario i couldn't tell if i was the stupid one or not so i didn't chase down the rabbit hole
<discocaml>
<dinosaure> And yeah. Cancellation is a hard issue - even more when it's about domains. For Miou, we tried to specify it a lot with a certain vision: we call it asynchronous cancellation. It does not block your all process (we actually can execute a part of some of your tasks) but we prioritize it over anything. Also, not sur for riot but cancellation cancels all subtasks of a task too (structured concurrency).
<companion_cube>
Yeah it's always something you have to cooperatively check
<companion_cube>
If you don't have a specialized runtime like the beam
<companion_cube>
(i think riot must do the same with supervision trees)
infinity0 has quit [Ping timeout: 260 seconds]
infinity0 has joined #ocaml
<discocaml>
<struktured> has anyone seen a signature emitted by utop which has a line like ```val _ : int -> string```. The emphasis here is the underscore where I would expect a valid symbol name instead. I was wondering why that happens and what it means. Thanks
waleee has quit [Ping timeout: 256 seconds]
<discocaml>
<limp.biskit> that is very very cool, might have a look at porting sometime
<discocaml>
<limp.biskit> i just don’t get why they can’t expose cancellation to the user
<discocaml>
<limp.biskit> you shouldn’t have to throw exceptions as the only way to kill something
<discocaml>
<limp.biskit> do you know if there’s any caqti equivalent for miou yet?
<discocaml>
<dinosaure> I don't think so 😕 but you can try 😉 it can be a nice oppportunoty to test it
sroso has joined #ocaml
<discocaml>
<limp.biskit> also - any lwt integration :p
<discocaml>
<dinosaure> Not the case too, I need to think about that but it requires lot of work I think
jabuxas has quit [Ping timeout: 268 seconds]
szkl has quit [Quit: Connection closed for inactivity]
nickiminjaj has joined #ocaml
nickiminjaj has quit [Client Quit]
nickiminjaj has joined #ocaml
nickiminjaj has quit [Changing host]
nickiminjaj has joined #ocaml
nickiminjaj has quit [Client Quit]
Anarchos has quit [Ping timeout: 252 seconds]
nickiminjaj has joined #ocaml
nickiminjaj has quit [Ping timeout: 260 seconds]
cross has quit [Ping timeout: 246 seconds]
cross has joined #ocaml
Serpent7776 has joined #ocaml
<discocaml>
<darrenldl> ikr
<discocaml>
<darrenldl> i presume there are deep technical reasons why it's not exposed, but anyway
<discocaml>
<darrenldl> i struggled with cancellation seemingly not propagating through some combinators, but i have yet to make minimal examples to confirm anything
mbuf has joined #ocaml
dhil has joined #ocaml
mro has joined #ocaml
nojebar has joined #ocaml
nojebar is now known as nojb
nojb has left #ocaml [#ocaml]
nojb has joined #ocaml
dnh has joined #ocaml
pi3ce has quit [Ping timeout: 260 seconds]
pi3ce has joined #ocaml
dhil has quit [Quit: Leaving]
<discocaml>
<limp.biskit> that being said i haven’t tried manually creating cancellation contexts. the docs seem to warn against it
bartholin has joined #ocaml
nojb has quit [Ping timeout: 255 seconds]
pi3ce has quit [Quit: No Ping reply in 180 seconds.]
pi3ce has joined #ocaml
<discocaml>
<limp.biskit> i think manually creating cancellation contexts are impractical since children are still attached to a switch and inherit it’s cancellation contexts. behind the scenes i think it’s still raising Cancelled exceptions so atp it’s probably better to have a dedicated X_cancelled exception for intentional cancelled operations
<discocaml>
<limp.biskit> such a strange way of doing things
pi3ce has quit [Quit: No Ping reply in 180 seconds.]
pi3ce has joined #ocaml
sroso has quit [Quit: Leaving :)]
<Armael>
/w 15
cimento has joined #ocaml
cimento has quit [Client Quit]
nickiminjaj has joined #ocaml
n8n has joined #ocaml
nickiminjaj has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
nickiminjaj has joined #ocaml
nickiminjaj has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
nickiminjaj has joined #ocaml
oriba has joined #ocaml
mro has quit [Quit: Leaving]
nickiminjaj has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
olle has quit [Ping timeout: 260 seconds]
nickiminjaj has joined #ocaml
nickiminjaj has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Anarchos has joined #ocaml
alexherbo2 has joined #ocaml
nickiminjaj has joined #ocaml
nickiminjaj has quit [Client Quit]
micro has quit [Ping timeout: 268 seconds]
micro has joined #ocaml
dnh has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
jabuxas has joined #ocaml
dnh has joined #ocaml
myrkraverk_ has joined #ocaml
jusensei29 has joined #ocaml
henrytill_ has joined #ocaml
brettgilio_ has joined #ocaml
pluviaq_ has joined #ocaml
patrick__ has joined #ocaml
discocaml_ has joined #ocaml
conjunctive_ has joined #ocaml
bibi__ has joined #ocaml
terrorjack0 has joined #ocaml
brettgilio has quit [Ping timeout: 268 seconds]
patrick_ has quit [Ping timeout: 268 seconds]
henrytill has quit [Ping timeout: 268 seconds]
terrorjack has quit [Ping timeout: 268 seconds]
pluviaq has quit [Ping timeout: 268 seconds]
discocaml has quit [Ping timeout: 268 seconds]
bibi_ has quit [Read error: Connection reset by peer]
<Anarchos>
what is the dune branch/tag used when 'opam switch' is set on 4.14.2 (the LTR release of ocaml 4) ?
Anarchos has quit [Quit: Vision[]: i've been blurred!]
jabuxas has joined #ocaml
nickiminjaj has joined #ocaml
nickiminjaj_ has joined #ocaml
nickiminjaj_ has joined #ocaml
nickiminjaj_ has quit [Changing host]
nickiminjaj has quit [Ping timeout: 260 seconds]
jabuxas has quit [Ping timeout: 260 seconds]
<discocaml_>
<ilias1911> Hi guys! I'm looking for data structures for term-indexed maps, with terms potentially containing variables. I'd like to be able to perform queries returning all values associated to keys that are unifiable to a given key but I don't care about isos. I know of @octachron 's work (https://github.com/Drup/dowsing) but if I can, I'd rather read a paper describing a solution rather than a large amout of code! I'm considering using a trie index
Anarchos has joined #ocaml
<companion_cube>
(this is Drup's, not octachron, btw)
<discocaml_>
<ilias1911> Ah sorry, will fix my message 🤦♂️
<companion_cube>
for unification you could use a discrimination tree, it's kind of like a trie
<discocaml_>
<Kali> dont
<discocaml_>
<Kali> edits resend on the irc bridge
<discocaml_>
<Kali> and that's a big block of text
<discocaml_>
<ilias1911> Oh, good to know. Will not fix then! Sorry for pinging the wrong person.
<discocaml_>
<ilias1911> Thanks for the reference CCube
<discocaml_>
<ilias1911> I see, so iiuc it's easy to have keys containing variables in the domain of the map and check they are instantiable to a query but harder to do the reverse. That'd match what I guessed from my small experiments
<companion_cube>
you can query for all terms matching your query term
<companion_cube>
or all terms that are instances of your query term
<companion_cube>
but one of the two (I think the latter) is more expensive
masterbuilder has joined #ocaml
<prgbln>
is there an easy way to stop dune from complaining about unused constructors? can't prefix with an underscore unfortunately
<discocaml_>
<contextfreebeer> disable that warning in your dune file maybe?
<prgbln>
was hoping there's something akin to the underscore prefix, but i suppose no
<discocaml_>
<hockletock> `[@warning "-37"]`
<discocaml_>
<kakadu18> @ilias1911 It looks like you are implementing a tabling from logic programming. You could try to find some paper about it... We have implemented somthing similar for OCanren project
<prgbln>
hockletock: this works when placed next to the type keyword, cheers
<discocaml_>
<hockletock> can disable it for a whole module with `[@@@warning "-37"]` or add the line `(env (dev (flags :standard -warn-error -37)))` to your dune-workspace @prgbln
<prgbln>
hockletock: thank you, didn't know about doing this for a module
* Anarchos
finds it hard to leverage lwt and dune source code when installing packages trhough opam exhibit interdependencies...
alexherbo2 has quit [Remote host closed the connection]
<discocaml_>
<ilias1911> Thanks Kakadu, will have a look as well!
olle has quit [Ping timeout: 256 seconds]
Serpent7776 has quit [Ping timeout: 256 seconds]
Anarchos has quit [Quit: Vision[]: i've been blurred!]