<discocaml>
<omasanori> sorry for another link btw 😉
<olle>
Oh cool
<olle>
I thought Koka2 used ref counting of sorts?
<olle>
Right, it does
<olle>
Paper summary says it's "competivtive" with ocaml gc
<olle>
competetive*?
<discocaml>
<omasanori> So, implementing Perceus to OCaml will make OCaml competitive with OCaml, sounds nice
<olle>
:))
<olle>
Some numbers would be nice, but I don't have time to look at it now
waleee has quit [Ping timeout: 258 seconds]
Anarchos has joined #ocaml
xd1le_ has joined #ocaml
xd1le_ has quit [Client Quit]
xd1le has quit [Ping timeout: 272 seconds]
Anarchos has quit [Ping timeout: 272 seconds]
<SquidDev>
It doesn't handle reference cycles/mutable references - I assume handling those would require adding back a normal GC as well (like Python does), and it's not clear what impact that'd have on performance.
<olle>
Eh?
<olle>
Usually ref counting is patched to deal with those cases
<SquidDev>
Oh? My understanding is you couldn't do cycle detection with ref counting without a tracing GC.
<SquidDev>
Not my area of expertise though, so almost definitely wrong :).
<olle>
SquidDev: Yea, they add some tracing on it somehow, not sure, but PHP does it
waleee has joined #ocaml
gareppa has joined #ocaml
gareppa has quit [Quit: WeeChat 3.8]
luke98 has joined #ocaml
luke98 has quit [Ping timeout: 246 seconds]
luke99 has joined #ocaml
mizlan has joined #ocaml
mbuf has quit [Quit: Leaving]
luke99 has quit [Ping timeout: 246 seconds]
mizlan has quit [Ping timeout: 246 seconds]
mizlan has joined #ocaml
oriba has joined #ocaml
zgasma has joined #ocaml
MarvelousWololo has joined #ocaml
zgasma has quit [Client Quit]
zgasma has joined #ocaml
zgasma has quit [Client Quit]
zgasma has joined #ocaml
zgasma has quit [Client Quit]
zgasma has joined #ocaml
cross has quit [Remote host closed the connection]
mizlan has quit [Remote host closed the connection]
mizlan has joined #ocaml
bartholin has quit [Ping timeout: 245 seconds]
bartholin has joined #ocaml
<discocaml>
<arbipher> What is the meaning of calling `let key = DLS.kew_key f` then immediately `DLS.set key other_value`? Will the initializer `f` be ignored?
<discocaml>
<hockletock> the function provided is actually returned with the key; `new_key f` returns `k = (idx, f)`
Serpent7776 has quit [Ping timeout: 250 seconds]
<discocaml>
<hockletock> in particular init isn't called until you try to retrieve the key. So if nothing ever calls format.get_str_formatter (in a domain?) the formatter doesn't need to be initialized
<discocaml>
<hockletock> nevermind, it is being immediately overwritten and I'm in over my head
<discocaml>
<arbipher> What is the meaning of calling `let key = DLS.new_key f` then immediately `DLS.set key other_value`? Will the initializer `f` be ignored?
<discocaml>
<arbipher> Yes. So the original code could be `let key = let v = other_value in DLS.new_key (fun () -> v)` if the `f` will not be used.
<discocaml>
<Kali> could you not simply do `let key = DLS.new_key (Fun.const other_value)`?
<discocaml>
<Kali> could you not simply do `let key = DLS.new_key (Fun.const v)`?
<discocaml>
<arbipher> that's nicer.
<discocaml>
<florianjs> nice to meet you all
<discocaml>
<Kali> welcome
<discocaml>
<Kali> welcome!
cross has joined #ocaml
sagax has joined #ocaml
<discocaml>
<arbipher> Is it possible that `DLS.set` is only valid for the calling domain while `f` in `DLS.new_key f` also species how to generate the value in other domains?
Tuplanolla has quit [Ping timeout: 246 seconds]
<discocaml>
<arbipher> I tried to change the two lines into one `DLS.new_key (Fun.const v)` (in `format.ml`) then this testsuite `tests/lib-format/domains.ml` will fail.