companion_cube changed the topic of #ocaml to: Discussion about the OCaml programming language | http://www.ocaml.org | OCaml 5.2.0 released: https://ocaml.org/releases/5.2.0 | Try OCaml in your browser: https://try.ocamlpro.com | Public channel logs at https://libera.irclog.whitequark.org/ocaml/
Tuplanolla has quit [Quit: Leaving.]
myrkraverk_ has joined #ocaml
myrkraverk has quit [Ping timeout: 244 seconds]
f[x] has quit [Remote host closed the connection]
humasect has quit [Remote host closed the connection]
myrkraverk has joined #ocaml
myrkraverk_ has quit [Ping timeout: 248 seconds]
Frostillicus has joined #ocaml
humasect has joined #ocaml
humasect has quit [Ping timeout: 276 seconds]
Frostillicus has quit [Ping timeout: 252 seconds]
<discocaml> <darrenldl> verifpal?
<discocaml> <darrenldl> verifpal is the main odd one out in protocotol verification - you have mostly haskell and ocaml, then verifpal in go
humasect has joined #ocaml
humasect has quit [Ping timeout: 276 seconds]
syrax has quit [Ping timeout: 244 seconds]
wbooze has quit [Read error: Connection reset by peer]
wbooze has joined #ocaml
<discocaml> <sim642> Writing static analyses that is. Static analysis of OCaml itself is still quite lacking. But in recent years there have been multiple projects trying to improve it
wbooze has quit [Quit: Leaving]
<dh`> I really dislike haskell separate type signatures, fwiw
<dh`> they occupy valuable vertical space
<dh`> also the convention of attaching them to every top-level definition seems to cause people to stop thinking about whether they're providing useful information
myrkraverk_ has joined #ocaml
myrkraverk has quit [Ping timeout: 252 seconds]
mange has joined #ocaml
wbooze has joined #ocaml
humasect has joined #ocaml
bartholin has joined #ocaml
myrkraverk has joined #ocaml
myrkraverk_ has quit [Ping timeout: 252 seconds]
myrkraverk_ has joined #ocaml
myrkraverk has quit [Ping timeout: 265 seconds]
humasect has quit [Quit: Leaving...]
Frostillicus has joined #ocaml
Serpent7776 has joined #ocaml
<discocaml> <shalokshalom> I read that the new multi core system of OCaml enables the imolementation of Erlang-like fault tolerance
<discocaml> <shalokshalom> I read that the new multi core system of OCaml enables the implementation of Erlang-like fault tolerance - is this correct(
<discocaml> <shalokshalom> I read that the new multi core system of OCaml enables the implementation of Erlang-like fault tolerance - is this correct?
<discocaml> <shalokshalom>
<discocaml> <shalokshalom> I heard there is already a practical implementation of that?
Frostillicus has quit [Ping timeout: 276 seconds]
Haudegen has joined #ocaml
<discocaml> <undu> Isn't that riot? https://riot.ml/
Frostillicus has joined #ocaml
<discocaml> <shalokshalom> Ah, I probably mistook it
<discocaml> <shalokshalom> I was looking for fault tolerance, that is simply multi core use.
xenu has quit [Ping timeout: 252 seconds]
<discocaml> <darrenldl> not sure how much fault tolerance you can have without a large backing runtime
Frostillicus has quit [Ping timeout: 260 seconds]
<discocaml> <froyo> I think they're looking for that process-supervisor tree hierarchy that something like the otp framework provides. marginally hot code reloading may be considered fault tolerance as well.
<discocaml> <froyo> riot does provide supervisors as far as i understand
Frostillicus has joined #ocaml
bartholin has quit [Remote host closed the connection]
<discocaml> <shalokshalom> Riot does not mention supervisors
wbooze has quit [Ping timeout: 265 seconds]
dhil has joined #ocaml
Frostillicus has quit [Ping timeout: 245 seconds]
Frostillicus has joined #ocaml
remexre has quit [Ping timeout: 252 seconds]
remexre has joined #ocaml
Frostillicus has quit [Ping timeout: 245 seconds]
Haudegen has quit [Quit: Bin weg.]
<discocaml> <bluddy5> It's still early days for Riot.
Frostillicus has joined #ocaml
Frostillicus has quit [Ping timeout: 276 seconds]
Frostillicus has joined #ocaml
<discocaml> <JM> Is riot still active?
iNomad has joined #ocaml
Haudegen has joined #ocaml
Frostillicus has quit [Ping timeout: 265 seconds]
Frostillicus has joined #ocaml
myrkraverk has joined #ocaml
myrkraverk_ has quit [Ping timeout: 248 seconds]
<discocaml> <dubious245> I like type signatures for some of the top level bindings like:
<discocaml> <dubious245> ```ocaml
<discocaml> <dubious245> let do_something a =
<discocaml> <dubious245> (*Do Something, type inference take the wheel.*)
<discocaml> <dubious245>
<discocaml> <dubious245> let do_something_else b =
<discocaml> <dubious245> (*Do Something. have at it type infrence I dont care.*)
<discocaml> <dubious245>
<discocaml> <dubious245> sig image -> image
<discocaml> <dubious245> let do_important_thing a b =
<discocaml> <dubious245> (*Do Something but type inference be aware this has to return an image and take an image for the api to work.*)
<discocaml> <dubious245> ```
<discocaml> <dubious245> Please ignore the typo in that last one. there should be one argument. :mcderpy:
<discocaml> <froyo> `sig` will definitely cause a conflict but I don't see why `val` won't work
<discocaml> <froyo> `val do_important_thing : image -> image` even, for consistency
<discocaml> <froyo> interestingly F* does something like that
<discocaml> <deepspacejohn> If the hypothetical sig/val was universally quantified that would be nice
<discocaml> <deepspacejohn> Otherwise I'm just has happy writing
<discocaml> <deepspacejohn> ```
<discocaml> <deepspacejohn> let do_important_thing :
<discocaml> <deepspacejohn> image -> image =
<discocaml> <deepspacejohn> fun a b ->
<discocaml> <deepspacejohn> ```
<discocaml> <deepspacejohn> instead.
<discocaml> <deepspacejohn> universal quantification differences are my main issue with using .ml type annotations as the source of truth. `'a -> 'b` in a ml and `'a -> 'b` in a mli mean different things.
<discocaml> <froyo> can just make the variables universal tbh it's no big deal
<discocaml> <froyo> ```
<discocaml> <froyo> let do_important_thing
<discocaml> <froyo> : 'a. 'a image -> 'a whatever
<discocaml> <froyo> = fun im ->
<discocaml> <froyo> ...
<discocaml> <froyo> ```
<discocaml> <froyo> if it is universal like in a mli, idk how you'd go back to unification variables behavior of a ml
<discocaml> <froyo> and that is certainly useful
<discocaml> <froyo> the other way is easy to achieve as i show here
<discocaml> <froyo> but then i get it creates a bit of a mismatch i.e. you can't construct a mli by grepping for `val` and piping that into a file
<discocaml> <froyo> i mean you can, but there are subtle differences
<discocaml> <froyo> so i guess it depends on what you value more
<discocaml> <froyo> ocamlc/opt -i already gives you the latter functionality
<discocaml> <froyo> idk it's just a different declaration paradigm that's why it fits poorly
<discocaml> <froyo> pub/export and types over the function name
<discocaml> <froyo> better make use of ocaml's way instead of trying to force it to act like rust or haskell
toastal has joined #ocaml
Frostillicus has quit [Ping timeout: 245 seconds]
Frostillicus has joined #ocaml
mange has quit [Quit: Zzz...]
Tuplanolla has joined #ocaml
Ekho has quit [Ping timeout: 252 seconds]
j0lol has quit [Ping timeout: 252 seconds]
jbowen has quit [Ping timeout: 268 seconds]
alfiee has quit [Ping timeout: 272 seconds]
jyc has quit [Ping timeout: 248 seconds]
Putonlalla has quit [Ping timeout: 248 seconds]
cbarrett has quit [Ping timeout: 268 seconds]
jyc has joined #ocaml
nyuhu has quit [Ping timeout: 272 seconds]
jbowen has joined #ocaml
nyuhu has joined #ocaml
Ekho has joined #ocaml
leonardus has quit [Ping timeout: 252 seconds]
jyc has quit [Ping timeout: 252 seconds]
leonardus has joined #ocaml
cbarrett has joined #ocaml
jyc has joined #ocaml
alfiee has joined #ocaml
j0lol has joined #ocaml
Putonlalla has joined #ocaml
Haudegen has quit [Quit: Bin weg.]
bartholin has joined #ocaml
Frostillicus has quit [Ping timeout: 252 seconds]
Frostillicus has joined #ocaml
Haudegen has joined #ocaml
iNomad has quit [Quit: leaving]
Frostillicus has quit [Ping timeout: 252 seconds]
inline has joined #ocaml
Frostillicus has joined #ocaml
dhil has quit [Remote host closed the connection]
euphores has quit [Quit: Leaving.]
euphores has joined #ocaml
divya has quit [Ping timeout: 252 seconds]
toastal has left #ocaml [#ocaml]
toastal has joined #ocaml
YuGiOhJCJ has joined #ocaml
leah2 has quit [Ping timeout: 265 seconds]
ol0ck_ has joined #ocaml
xenu has joined #ocaml
leah2 has joined #ocaml
divya has joined #ocaml
humasect has joined #ocaml
YuGiOhJCJ has quit [Quit: YuGiOhJCJ]
humasect has quit [Quit: Leaving...]
toastal has quit [Ping timeout: 245 seconds]
Serpent7776 has quit [Ping timeout: 276 seconds]
toastal has joined #ocaml
euphores has quit [Ping timeout: 248 seconds]
euphores has joined #ocaml
bartholin has quit [Remote host closed the connection]
myrkraverk_ has joined #ocaml
myrkraverk has quit [Ping timeout: 248 seconds]
Haudegen has quit [Quit: Bin weg.]
Tuplanolla has quit [Quit: Leaving.]