Leonidas changed the topic of #ocaml to: Discussion about the OCaml programming language | http://www.ocaml.org | OCaml 4.13.0 released: https://ocaml.org/releases/4.13.0.html | Try OCaml in your browser: https://try.ocamlpro.com | Public channel logs at https://libera.irclog.whitequark.org/ocaml/
Haudegen has quit [Ping timeout: 240 seconds]
waleee has quit [Ping timeout: 240 seconds]
Techcable_ is now known as Techcable
rgrinberg has joined #ocaml
Everything has joined #ocaml
raftas has joined #ocaml
<raftas> related: i tried using dream but vscode can't seem to recognize it
<raftas> any tips on how to fix this :l
<raftas> everything works fine, the linter just is sad
<d_bot> <NULL> Look at the previous messages : the project is big so installing dune on it would be annoying
<rgrinberg> if the project is so big, manually written .merlin files take just as long to write as dune files
<d_bot> <NULL> .merlin files should already be well set up, the project is still active so I imagine the devs use merlin and not the LSP server
<raftas> btw anyone know of big ocaml open source projects looking for new contributors?
<raftas> i was asked this today and couldn't come up with a good answer...
<companion_cube> I don't know if big projects particularly _seek_ contributors
<companion_cube> typically contributors are people scratching their own itch
<companion_cube> you could try to find a project you like, and seek ways to improve for your use case, and see if maintainers would be interested
<raftas> there was an idea floating around of running an intro ocaml workshop where as a final project participants would go and contribute to open-source ocaml projects
<raftas> for machine learning this has been relatively successful, with people end up contributing to tensorflow, keras, etc
<companion_cube> if it's your jam there is Owl, I suppose.
<raftas> i do know about owl, though it seems mostly dead
<companion_cube> there's also tensorflow bindings (I think? and Torch?) but it's a one person thing
<companion_cube> a very good person tho.
<companion_cube> yep
<raftas> i wasn't targeting machine learning, more open source
<raftas> i was using machine learning more of an example of "open source being used as a successful learning tool"
<companion_cube> right
<companion_cube> well idk, what kind of programs are you interested in?
<raftas> i was considering getting a bunch of people to work on the compiler... but that may be too intense and the learning curve could be too steep
<companion_cube> ah, yeah, the compiler isn't the easiest
<raftas> i think generally people would be interested in infrastructure though
<companion_cube> there's odoc, dune…
<raftas> is dune easy to contribute to...?
<rgrinberg> i think it's pretty easy
<rgrinberg> but I think this way of going about things is exactly backwards.
<raftas> i'll have to look into that as an option then
<rgrinberg> I'd ask the students what they're interested in, and then look for the projects
<raftas> it's gonna be a bunch of PL people :P
<raftas> but yes, i'll certainly do that
<rgrinberg> well then, dune is going to be quite boring for them then
<rgrinberg> there's lots of projects somewhat related to PL though
<raftas> got a list somewhere?
<rgrinberg> just off the top of my head: merlin, stan, coq, rotor, frama-c
<rgrinberg> why3
<raftas> thanks, this is helpful
<d_bot> <Et7f3> PL ?
<raftas> programming languages
<companion_cube> what's stan? there's no opam package by that name :D
<rgrinberg> that reminds me, there's also haxe - that wierd PL also written in OCaml
<rgrinberg> i think they were even looking to hire someone not too long ago
<rgrinberg> that means they're definitely interested in contributions
<raftas> tl;dr of why haxe is cool? :)
<companion_cube> oh it vaguely rings a bell, is stan a probabilistic language?
<rgrinberg> companion_cube it is
<rgrinberg> raftas it can transpile to just about any other planguage
tizoc has quit [Quit: Coyote finally caught me]
rgrinberg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Guest8 has quit [Ping timeout: 256 seconds]
tizoc has joined #ocaml
<d_bot> <minimario> less of an ocaml-specific question, but can someone point me to a good resource on understanding algebraic effects?
<d_bot> <minimario> i've heard the term a lot when people are talking about ocaml but have no idea what they are haha
<companion_cube> you might find slides about multicore OCaml + effects, or look at https://github.com/koka-lang/koka
<d_bot> <minimario> hmm i'm not sure koka is helping me understand what effects are lol
<companion_cube> there's some papers
<companion_cube> it's one of the first actual implementations of typed effect systems
raftas has quit [Quit: Client closed]
mbuf has joined #ocaml
spip has joined #ocaml
spip is now known as Guest5247
rgrinberg has joined #ocaml
Guest5015 has quit [Ping timeout: 268 seconds]
Nahra has quit [Remote host closed the connection]
terrorjack has quit [Quit: The Lounge - https://thelounge.chat]
terrorjack has joined #ocaml
Everything has quit [Quit: leaving]
<d_bot> <minimario> where is the "algebraic" in algebraic effects
<d_bot> <minimario> lol
<d_bot> <minimario> if i am understanding correctly it's just inserting performs and handles around
<companion_cube> they compose, I guess p
<companion_cube> :p
<companion_cube> also the type system is really neat, maybe that's where it's algebraic
<d_bot> <minimario> hmm i hid from academic papers and just watched a video instead
<d_bot> <minimario> hehe
<d_bot> <NULL> I found a way around the problem, but I'd still like a definitive answer : is there any way to have OCaml Platform and `ocaml-lsp-server` work with .merlin files ?
<d_bot> <NULL> Solutions involving downgrading either or both are welcome
<d_bot> <NULL> I'm also very open to solutions that "should work", no need to be sure
Haudegen has joined #ocaml
<companion_cube> move to dune, probably
<d_bot> <NULL> That's a very expensive solution, considering it took me quite a few hours to do the transition, just to get the LSP to work
vb has quit [Ping timeout: 250 seconds]
vb has joined #ocaml
<d_bot> <PureFunctor> Algebraic effects are quite nice
gravicappa has joined #ocaml
<d_bot> <PureFunctor> Although my only real experience with them is through PureScript's row types <https://github.com/natefaubion/purescript-run>, which infer quite nicely
<d_bot> <PureFunctor> Haskell's effect libraries are a bit too much for me
<rgrinberg> you can downgrade ocamllsp
_13h has joined #ocaml
_13h has left #ocaml [#ocaml]
rgrinberg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<d_bot> <darrenldl> @NULL how massive is the project?
<d_bot> <darrenldl> (and is it public?
mro has joined #ocaml
hackinghorn has joined #ocaml
<hackinghorn> hi, when should I use a tuple vs define a new type?
<d_bot> <darrenldl> if you've got more than 3 then it's start thinking about using a new type
<d_bot> <darrenldl> time to start*
<d_bot> <darrenldl> and sometimes for clarity you'd want to name your fields explicitly
<d_bot> <Bluddy> Right. I'd say if you're carrying around things with no obvious order, a tuple is the wrong representation and you need a record.
mro has quit [Remote host closed the connection]
mro has joined #ocaml
rgrinberg has joined #ocaml
nd__ has joined #ocaml
nd__ has quit [Client Quit]
kakadu has joined #ocaml
<hackinghorn> ahh thankss
bartholin has joined #ocaml
Tuplanolla has joined #ocaml
<hackinghorn> what if there is no file in In_channel.read_all ?
rgrinberg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
omr has joined #ocaml
mro has quit [Remote host closed the connection]
Haudegen has quit [Quit: Bin weg.]
mro has joined #ocaml
mro has quit [Remote host closed the connection]
waleee has joined #ocaml
mro has joined #ocaml
mro has quit [Ping timeout: 240 seconds]
xiongxin has joined #ocaml
Haudegen has joined #ocaml
omr has quit [Quit: WeeChat 3.3]
mro has joined #ocaml
omni has quit [Ping timeout: 268 seconds]
omni has joined #ocaml
Anarchos has joined #ocaml
oriba has joined #ocaml
chrisz has quit [Remote host closed the connection]
Absalom has quit [Quit: Ping timeout (120 seconds)]
Absalom has joined #ocaml
<companion_cube> failure should happen when you open the channel to a file
mro has quit [Remote host closed the connection]
tristanC_ is now known as tristanC
<d_bot> <NULL> Why3 (so quite big)
<companion_cube> why is still using the old crufty makefiles? :)
Guest5247 has quit [Read error: Connection reset by peer]
Guest5247 has joined #ocaml
zebrag has joined #ocaml
mro has joined #ocaml
<d_bot> <NULL> The configure + Makefile combo yeah
<companion_cube> I'm not too surprised, they're old school
xiongxin has quit [Remote host closed the connection]
mro has quit [Remote host closed the connection]
<mclovin> there's a PR to switch to dune
<mclovin> but it's two years old
<mclovin> (but upadted two months ago)
Anarchos has quit [Quit: Vision[]: i've been blurred!]
chrisz has joined #ocaml
wingsorc__ has quit [Remote host closed the connection]
wingsorc__ has joined #ocaml
Haudegen has quit [Quit: Bin weg.]
kaph has joined #ocaml
mro has joined #ocaml
<d_bot> <NULL> rgrinberg: I tried it once and couldn't make it work, but second time's the charm. Thanks
kakadu has quit [Quit: Konversation terminated!]
mro has quit [Remote host closed the connection]
chrisz has quit [Remote host closed the connection]
mbuf has quit [Quit: Leaving]
chrisz has joined #ocaml
Haudegen has joined #ocaml
waleee has quit [Ping timeout: 252 seconds]
waleee has joined #ocaml
mro has joined #ocaml
gravicappa has quit [Ping timeout: 268 seconds]
oriba has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
mro has quit [Remote host closed the connection]
mro has joined #ocaml
chrisz has quit [Remote host closed the connection]
bartholin has quit [Quit: Leaving]
mro has quit [Quit: Leaving...]
rond_ has joined #ocaml
rond_ has quit [Client Quit]
sagax has quit [Ping timeout: 250 seconds]
chrisz has joined #ocaml
kaph has quit [Read error: Connection reset by peer]
rgrinberg has joined #ocaml
<hackinghorn> I want to try/with but I'm not sure what the exception will be thrown, what do I write in "with .."?
<d_bot> <NULL> Although dangerous, you can catch all exceptions with `try expr with e -> ...` (you can also replace e by _ or any pattern which matches everything, this is a regular pattern-matching on the type exception after all)
rgrinberg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<hackinghorn> hi
<hackinghorn> so can I the message of this exception e?
<d_bot> <NULL> You can consider exception values as regular values, of an (extensible) sum type
<d_bot> <NULL> So just like you need to write printers for your defined sum types, you need to write a printer for your exceptions (and also for those of the Stdlib because no printer was written for them)
<hackinghorn> oh I found Exn.to_string, ok
<d_bot> <NULL> Wait
<hackinghorn> thankss