zebrag has quit [Remote host closed the connection]
zebrag has joined #ocaml
Skyfire has quit [Quit: WeeChat 3.3]
sch1z0_c0d3 has left #ocaml [Leaving]
Skyfire has joined #ocaml
rgrinberg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
nfc_ has quit [Ping timeout: 265 seconds]
rgrinberg has joined #ocaml
wyrd has quit [Remote host closed the connection]
wyrd has joined #ocaml
nfc_ has joined #ocaml
hackinghorn has joined #ocaml
hornhack has quit [Ping timeout: 265 seconds]
waleee has quit [Ping timeout: 245 seconds]
rgrinberg has quit [Ping timeout: 265 seconds]
rgrinberg has joined #ocaml
nfc_ has quit [Ping timeout: 252 seconds]
rgrinberg has quit [Remote host closed the connection]
gopiandcode has joined #ocaml
rgrinberg has joined #ocaml
nfc_ has joined #ocaml
zebrag has quit [Remote host closed the connection]
ks_ has quit [*.net *.split]
riverdc_ has quit [*.net *.split]
theblatte has quit [*.net *.split]
Leonidas has quit [*.net *.split]
Leonidas has joined #ocaml
theblatte has joined #ocaml
riverdc has joined #ocaml
ks_ has joined #ocaml
<d_bot>
<dariusf> is anyone else seeing `Uninterpreted extension` errors on extension nodes in ocaml platform? when i restart the lsp server the error goes away, but comes back on next save
<rgrinberg>
There's a PR to fix that. Hopefully we'll release 1.9.0 with the fix soon
<d_bot>
<dariusf> awesome, thanks
rgrinberg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
shawnw has quit [Ping timeout: 245 seconds]
deus` has joined #ocaml
deus` has left #ocaml [#ocaml]
gravicappa has joined #ocaml
mro has joined #ocaml
vb has quit [Ping timeout: 245 seconds]
vb has joined #ocaml
mro has quit [Remote host closed the connection]
mro has joined #ocaml
mro has quit [Remote host closed the connection]
mro has joined #ocaml
Haudegen has joined #ocaml
mro has quit [Remote host closed the connection]
mro has joined #ocaml
mro has quit [Remote host closed the connection]
mro has joined #ocaml
vukung has joined #ocaml
Boarders has quit [Ping timeout: 245 seconds]
Boarders has joined #ocaml
hendursa1 has joined #ocaml
hendursaga has quit [Ping timeout: 276 seconds]
wwilly has quit [Quit: Leaving]
spip has quit [Quit: Konversation terminated!]
spip has joined #ocaml
wyrd has quit [Ping timeout: 276 seconds]
wyrd has joined #ocaml
bartholin has joined #ocaml
mro has quit [Remote host closed the connection]
mro has joined #ocaml
<bartholin>
how do I use a third-party library on the command line?
<bartholin>
if I do open Cohttp;; I get an error about unbound module
<bartholin>
if I do #load "cohttp.cma";; I also get an error because the file cannot be found
<d_bot>
<Deus> Maybe you should take a look at ocamlfind
<bartholin>
how do I invoke ocamlfind on the REPL?
<bartholin>
the only problem is that I don't see if there is any error, but whatever
quernd41 has joined #ocaml
quernd4 has quit [Ping timeout: 245 seconds]
quernd41 is now known as quernd4
gravicappa has joined #ocaml
kakadu has joined #ocaml
<bartholin>
oh, with my hack, if there is a bug while loading the library, then I don't get stdout back. Yay!
mro has joined #ocaml
mro has quit [Ping timeout: 260 seconds]
hackinghorn has joined #ocaml
mro has joined #ocaml
hornhack has quit [Ping timeout: 258 seconds]
glassofethanol has quit [Read error: Connection reset by peer]
mro has quit [Remote host closed the connection]
glassofethanol has joined #ocaml
xiongxin has joined #ocaml
mro has joined #ocaml
rgrinberg has joined #ocaml
mro has quit [Ping timeout: 265 seconds]
waleee has joined #ocaml
zebrag has joined #ocaml
wyrd has quit [Remote host closed the connection]
vukung has quit [Quit: Lost terminal]
wyrd has joined #ocaml
mro has joined #ocaml
mro has quit [Ping timeout: 258 seconds]
<d_bot>
<toots> Hey 👋 With OCaml5 coming up with Domains, I'm trying to find a developer-oriented documentation of the features, limitations, how to use etc. Any of y'all know if a good link here? Thks!
<companion_cube>
there's slides from talks, I guess
<companion_cube>
you could read the monthly discuss thread on multicore OCaml
<d_bot>
<toots> Yeah I read those but I'm looking for something a little bit more comprehensive.
<companion_cube>
not sure there's more detaield than that
<d_bot>
<toots> 👍
<companion_cube>
I don't personally know more than that* I'd say
<companion_cube>
look at domainslib and its documentation perhaps
<d_bot>
<toots> I'll post something in the board then just wanted to check in here first.
<d_bot>
<toots> Yeah I've seen that but I want to know about the low-level stuff 🙂
<companion_cube>
there might be a paper on the GC architecture
<companion_cube>
a lot of it is also changes to the runtime to remove globals and stuff
<companion_cube>
but I don't think it'll be very different to use
mro has joined #ocaml
wwilly has quit [Ping timeout: 260 seconds]
<d_bot>
<toots> For existing code yes but I want to know how to use the `Domain` module properly, I have scheduling library that could take advantage of it and is currently using `Thread` , `Mutex` and `Condition`. I'd like to know what I can get rid of in favor of `Domain` and `Atomic`
mro has quit [Remote host closed the connection]
mro has joined #ocaml
mro has quit [Remote host closed the connection]
<companion_cube>
yeah I'd like to know too
<companion_cube>
Atomic is definitely not the same, and I don't expect most people to use it?
<companion_cube>
(I mean it's cool for basic synchronization but it's not as general as Mutex)
<companion_cube>
Domain would just replace Thread I think
mro has joined #ocaml
hyphen has joined #ocaml
wwilly has joined #ocaml
<d_bot>
<toots> Yeah. Looks to me `Atomic` could avoid the use of `Mutex` to access/update protected values?
<d_bot>
<RegularSpatula> Yesss every time I see people battling the borrow checker and thinking about lifetimes when they’re writing small apps to parse files or make http requests, I’m thinking, it’s so much simpler in ocaml…
<d_bot>
<RegularSpatula> That said, rust was nice for doing scientific/numerical stuff
mro has quit [Remote host closed the connection]
bartholin has quit [Quit: Leaving]
mro has joined #ocaml
mro has quit [Remote host closed the connection]
rak has quit [Quit: Segmentation fault (core recycled)]
rak has joined #ocaml
motherfsck has quit [Ping timeout: 252 seconds]
kakadu has quit [Quit: Konversation terminated!]
<hyphen>
d_bot: nice, it's not exactly that but it goes into the same idea
Haudegen has joined #ocaml
wwilly has quit [Quit: Leaving]
motherfsck has joined #ocaml
mbuf has quit [Quit: Leaving]
Tuplanolla has joined #ocaml
mro has joined #ocaml
mro has quit [Ping timeout: 258 seconds]
wonko has joined #ocaml
gravicappa has quit [Ping timeout: 245 seconds]
rond_ has quit [Quit: Client closed]
hendursa1 has quit [Quit: hendursa1]
hendursaga has joined #ocaml
<d_bot>
<monk> i got into rust before i did ocaml and absolutely love the language but i do constantly wish there was like 1/5th the same ecosystem/community rallying around ocaml for all the domains where a borrow checker based language is not necessary
<d_bot>
<monk> "not necessary" meaning "those of us who can worry less about resource efficiency and execution speed time".
<d_bot>
<monk> i was just in the webdev channel the other day mourning the sparseness of webdev examples whereas rust has an endless stream of them. i really like rocket and hear good things about the more popular actix, but i'm also very cool with side stepping a bunch of macro and borrow checker stuff for setting up a webserver etc.
<d_bot>
<monk> i keep thinking rust is bound to became a bigger deal in this area
<d_bot>
<monk> but then i think about the amount of institutional buy-in for all the various ecosystems/libraries that offload their numerics into c++/fortran land and second guess it
<d_bot>
<monk> it's not that a rust based project should set out to dethrone eg tensor flow but even the idea of a rust project coming out and then building up the gradual buy-in to come even close to the idea
<d_bot>
<monk> would it be silly to start using 4.12+domains as a default switch for projects?
<sadiq>
there's a real chance that some things will changed during the merge process.
<sadiq>
and indeed we've already had a deprecation in domain vs thread local storage.
<sadiq>
so essentially it's fine to go with 4.12+domains as long as you're comfortable changing things when you migrate to 5.0
<sadiq>
(and also that 4.12+domains has had significantly less testing than trunk 4.12)
<d_bot>
<monk> good to know. i just have small toy projects anyway.
<d_bot>
<monk> the syntax for effects isn't going to land into 5.0, but will it possibly within the 5.x version of ocaml?
<d_bot>
<monk> within a* 5.x version
<d_bot>
<monk> seems like a big enough change to justify a major version, but fwik of ocaml's major versioning that feels like a fast jump assuming safe effects get figured out < 3 years or w/e
<d_bot>
<octachron> This is the objective. But converging on a precise semantic and type system for effects will take some time.
<d_bot>
<monk> that's really cool 🙂
<d_bot>
<monk> truly, good luck on that effort
<d_bot>
<octachron> And concerning major version number, between effects and modular implicits, those might change faster than usual indeed.
<sadiq>
companion_cube, domains will probably uncover more thread unsafety than threads.
<sadiq>
(because threads share a runtime lock, so you wouldn't notice issues with things that could only be accessed with the lock)
<d_bot>
<infrandomness> Hi, does anyone know of a GUI library in OCaml, or bindings ? I'm looking forward making GUIs with this language
<d_bot>
<Deus> Lablgtk
<companion_cube>
sadiq: I suppose so, yes
<companion_cube>
since preemption only happens at specific points with Threads
<companion_cube>
I also have some code that assumes that changing, say, a `int ref` is atomic
<companion_cube>
(since there's no allocation)
<smondet[m]>
companion_cube: AFAIU that's what the Atomic module in the stdlib is for: right now it uses the assumption that you can modify refs and will be replaced with the preemptible one when domains are merged