companion_cube changed the topic of #ocaml to: Discussion about the OCaml programming language | http://www.ocaml.org | OCaml 5.0 released(!!1!): https://ocaml.org/releases/5.0.0.html | Try OCaml in your browser: https://try.ocamlpro.com | Public channel logs at https://libera.irclog.whitequark.org/ocaml/
uncomfy has quit [Quit: uncomfy]
perrierjouet has quit [Quit: WeeChat 4.0.2]
perrierjouet has joined #ocaml
azimut has quit [Ping timeout: 240 seconds]
chrisz has quit [Ping timeout: 240 seconds]
perrierjouet has quit [Quit: WeeChat 4.0.2]
chrisz has joined #ocaml
terrorjack has quit [Quit: The Lounge - https://thelounge.chat]
perrierjouet has joined #ocaml
terrorjack has joined #ocaml
bobo_ has quit [Quit: Konversation terminated!]
perrierjouet has quit [Quit: WeeChat 4.0.2]
perrierjouet has joined #ocaml
<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> > synchronization mechanisms.
<discocaml> <darrenldl> The preceding paragraph:
<discocaml> <darrenldl> >
<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]
bartholin has quit [Quit: Leaving]
szkl has joined #ocaml