<discocaml>
<darrenldl> is there a legitimate use of spurious wakeups in condition var? why do we still have to check the condition in a loop to this day?
<companion_cube>
it's not a feature
<companion_cube>
it's an implementation detail
<discocaml>
<darrenldl> why must API expose said detail though?
<discocaml>
<darrenldl> if they anticipate people to always put it in a loop when using the api, why not just do the loop underneath the api?
<discocaml>
<darrenldl> (at least for eio condition)
<companion_cube>
oh, in eio
<companion_cube>
no idea
<discocaml>
<darrenldl> i mean even outside of eio, it didn't make sense to me why it landed as an api
<companion_cube>
it's just how it works
<companion_cube>
many threads might be woken up and only one will get the thing
<companion_cube>
(e.g the element in a blocking queue)
<companion_cube>
you have to have the loop
<discocaml>
<darrenldl> right, but there's no fundamental reason why the loop cannot be within the code underneath API, and the justification by David R. Butenhof reads a bit silly
<discocaml>
<darrenldl> > We followed that intent with several levels of justification. The first was that
<discocaml>
<darrenldl> > "religiously" using a loop protects the application against its own imperfect
<discocaml>
<darrenldl> > coding practices. The second was that it wasn't difficult to abstractly imagine
<discocaml>
<darrenldl> > machines and implementation code that could exploit this requirement to improve
<discocaml>
<darrenldl> > the performance of average condition wait operations through optimizing the
<discocaml>
<darrenldl> > The intent was to force correct/robust code by requiring predicate loops. This was
<discocaml>
<darrenldl> > driven by the provably correct academic contingent among the "core threadies" in
<discocaml>
<darrenldl> > the working group, though I don't think anyone really disagreed with the intent
<discocaml>
<darrenldl> > once they understood what it meant.
<discocaml>
<darrenldl> anyway, i'm not sure what i'm looking for in this, whatever
spip has joined #ocaml
bgs has joined #ocaml
MarvelousWololo has quit [Read error: Connection reset by peer]
MarvelousWololo has joined #ocaml
amk has quit [Ping timeout: 244 seconds]
amk has joined #ocaml
Tuplanolla has joined #ocaml
bartholin has joined #ocaml
MarvelousWololo has quit [Quit: MarvelousWololo]
Serpent7776 has joined #ocaml
wingsorc has joined #ocaml
gareppa has joined #ocaml
perrierjouet has quit [Quit: WeeChat 4.0.2]
aljazmc has joined #ocaml
perrierjouet1 has joined #ocaml
tomwinston has joined #ocaml
<discocaml>
<bluddy5> If I want to re-export a type's constructors from a different module, do I need to rewrite those constructors?
<discocaml>
<bluddy5> Suppose A has `type foo = Foo | Bar | Baz` and I want everyone to use B as the access point to `foo`. B has `type foo = A.foo`. If I want to allow other modules to use `Foo | Bar | Baz` while only accessing `B`, do I need to recreate the constructors?
<discocaml>
<____aaaaaaaaaaaa> What is Ocamel
<discocaml>
<____aaaaaaaaaaaa> ive seen it around recently
<discocaml>
<Kali> OCaml is a functional, object-oriented, and imperative programming language which focuses on expressivity while still being safe and easy to write
<discocaml>
<froyo> yes
<discocaml>
<froyo> in reply to Bluddy
<discocaml>
<bluddy5> ok so the only easy solution is ppx_import. Thanks.
<discocaml>
<froyo> yes or to flatten your modules a bit
<discocaml>
<froyo> so that you don't have to do this reexporting often
tomwinston has quit [Quit: Client closed]
<discocaml>
<leviroth> >If I want to allow other modules to use Foo | Bar | Baz while only accessing B, do I need to recreate the constructors?
<discocaml>
<leviroth>
<discocaml>
<leviroth> Strictly speaking they should be able to *use* the constructors through type-directed disambiguation, but of course it's often more ergonomic to re-export the constructors.
mima has joined #ocaml
perrierjouet1 has quit [Quit: WeeChat 4.0.2]
perrierjouet has joined #ocaml
kakadu has joined #ocaml
Xogium has joined #ocaml
<Xogium>
hi folks :) hopefully quick question today. I've installed an opam switch that had been created with opam switch export using --freeze and --full. Is there any way to force opam to update the pinned git packages to their latest commit without manually unpinning and pinning them again ?
gareppa has quit [Quit: WeeChat 3.8]
gareppa has joined #ocaml
azimut has joined #ocaml
masterbuilder has joined #ocaml
uncomfy has joined #ocaml
uncomfy has quit [Quit: uncomfy]
perrierjouet has quit [Ping timeout: 250 seconds]
perrierjouet has joined #ocaml
masterbuilder has quit [Quit: Lost terminal]
<discocaml>
<flyinfoxtrot> anyone know is it possible to make https request using cohttp-eio?
mima has quit [Ping timeout: 250 seconds]
kakadu has quit [Quit: Konversation terminated!]
MarvelousWololo has joined #ocaml
czy has quit [Remote host closed the connection]
bgs has quit [Remote host closed the connection]
gareppa has quit [Quit: WeeChat 3.8]
zgasma has quit [Quit: leaving]
waleee has joined #ocaml
Anarchos has joined #ocaml
Anarchos has quit [Quit: Vision[]: i've been blurred!]
Anarchos has joined #ocaml
mima has joined #ocaml
Hmmf has joined #ocaml
Serpent7776 has quit [Ping timeout: 245 seconds]
<discocaml>
<anmonteiro> this doesn't seem like the "only easy solution"
<discocaml>
<anmonteiro> an easier solution is copy pasting
Anarchos has quit [Quit: Vision[]: i've been blurred!]
Tuplanolla has quit [Quit: Leaving.]
aljazmc has quit [Remote host closed the connection]