myrkraverk has quit [Read error: Connection reset by peer]
yziquel has quit [Ping timeout: 245 seconds]
myrkraverk_ has quit [Read error: Connection reset by peer]
myrkraverk__ has joined #ocaml
bartholin has joined #ocaml
bibi_ has joined #ocaml
bibi_ has quit [Client Quit]
TrillionEuroNote has quit [Ping timeout: 244 seconds]
TrillionEuroNote has joined #ocaml
yziquel has joined #ocaml
bob has left #ocaml [Leaving]
bob has joined #ocaml
rgrinberg has joined #ocaml
yziquel has quit [Ping timeout: 245 seconds]
rgrinberg has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
myrkraverk__ is now known as myrkraverk
waleee has joined #ocaml
Serpent7776 has joined #ocaml
Tuplanolla has joined #ocaml
rgrinberg has joined #ocaml
steenuil has quit [Remote host closed the connection]
steenuil has joined #ocaml
waleee has quit [Ping timeout: 240 seconds]
rgrinberg has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
rgrinberg has joined #ocaml
remexre has quit [Read error: Connection reset by peer]
remexre has joined #ocaml
yosik has joined #ocaml
yosik has quit [Changing host]
yosik has joined #ocaml
rgrinberg has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
rgrinberg has joined #ocaml
rgrinberg has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
rgrinberg has joined #ocaml
leah2 has quit [Ping timeout: 240 seconds]
<discocaml>
<lyhokia> How do I fix this error:
<discocaml>
<lyhokia> ```
<discocaml>
<lyhokia> The module Stream1 is an alias for module Dune__exe__Stream1, which is missing ocamllsp [1, 26]
<discocaml>
<lyhokia> ```
<discocaml>
<lyhokia> here Stream1 is a file that dune can detect. I have no trouble building with dune, but ocamllsp doesn't seem to locate the source file correctly. I have confirmed that everything is installed in a same switch here.
xenu has quit [Server closed connection]
xenu has joined #ocaml
leah2 has joined #ocaml
rgrinberg has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
rgrinberg has joined #ocaml
rgrinberg has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
rgrinberg has joined #ocaml
rgrinberg has quit [Client Quit]
rgrinberg has joined #ocaml
yosik has quit [Ping timeout: 240 seconds]
rgrinberg has quit [Client Quit]
rgrinberg has joined #ocaml
rgrinberg has quit [Client Quit]
<discocaml>
<rikamg> I sometimes get spurious errors like that from the LSP, they usually go away after I `dune clean`, reload the editor and then rebuild.
<discocaml>
<lyhokia> This persist, I'm assuming I have misconfiguration but I can't find out why
dnh has joined #ocaml
dnh has quit [Client Quit]
rgrinberg has joined #ocaml
h0rror has joined #ocaml
waleee has joined #ocaml
TrillionEuroNote has quit [Ping timeout: 240 seconds]
dnh has joined #ocaml
TrillionEuroNote has joined #ocaml
Guest77 has joined #ocaml
waleee has quit [Ping timeout: 258 seconds]
Serpent7776 has quit [Ping timeout: 252 seconds]
Serpent7776 has joined #ocaml
dnh has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
dnh has joined #ocaml
Anarchos has joined #ocaml
Guest77 has quit [Quit: Client closed]
Anarchos has quit [Quit: Vision[]: i've been blurred!]
dhil has joined #ocaml
rgrinberg has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
rgrinberg has joined #ocaml
rgrinberg has quit [Client Quit]
dnh has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
dnh has joined #ocaml
dhil has quit [Ping timeout: 240 seconds]
bob is now known as parataxis
rgrinberg has joined #ocaml
rgrinberg has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
Serpent7776 has quit [Ping timeout: 252 seconds]
rgrinberg has joined #ocaml
Serpent7776 has joined #ocaml
dhil has joined #ocaml
waleee has joined #ocaml
dnh has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
waleee has quit [Ping timeout: 240 seconds]
daftaupe has quit [Ping timeout: 258 seconds]
<parataxis>
I have a thing that has a mutex that's required to be held to do certain operations. I have an unwind-protect with_lock function that calls the function with the lock held, but what I'd really like is a requires_lock decorator function that only acquires the lock if with_lock isn't on the stack. is the solution here to do some magic with domain-local storage or is there just a reentrant lock I can use?
<parataxis>
or do you not even use Mutex if you're using ocaml 5 domains?
<parataxis>
I'm porting C code that uses pthreads so I'm in a very threads and mutexes frame of mind where maybe I shouldn't be
TrillionEuroNote has quit [Ping timeout: 240 seconds]
TrillionEuroNote has joined #ocaml
daftaupe has joined #ocaml
bibi_ has joined #ocaml
<companion_cube>
I use a `with_lock` but haven't used reentrant locks
<companion_cube>
they're not in the stdlib, and it seems that most people interested in fancy concurrent code right now are focused on lock-free data structures
waleee has joined #ocaml
<parataxis>
in this case the lock is guarding on-disk data is lock-free isn't really possible
<parataxis>
think database transaction commit
<companion_cube>
oh yeah I'm not saying it's the one way
<companion_cube>
although for on-disk data I'd just use sqlite
<parataxis>
sqlite is great but it's not the right tool for this specific thing
<companion_cube>
(but do you need a file lock??)
<parataxis>
this is a write-optimized search postings list
bibi_ has quit [Ping timeout: 264 seconds]
<parataxis>
the way the data is laid out on disk is as an append-only log of tree roots. the only things that need to be synchronized are getting the most recent root and appending to the log but neither of those operations are atomic
<companion_cube>
your quickest option might be to write a few C bindings to the relevant pthread functions (reentrant locks)
<companion_cube>
and use a `with_reentrant_lock` function, I guess
<parataxis>
that's an option
<parataxis>
I don't know how that would interact with domains, though
<companion_cube>
should be just fine!
<companion_cube>
domains are just like a kind of threads (with a few more contraints on how to use them)
<parataxis>
they seem like java executors
<companion_cube>
I mean, if you hold locks for dozens of seconds it's certainly going to affect the GC of other domains
<companion_cube>
no, they really are threads
<companion_cube>
(with a slightly complicated relationship to the GC)
rgrinberg has quit [Quit: My Mac has gone to sleep. ZZZzzz…]