adrien changed the topic of #ocaml to: Discussions about the OCaml programming language | http://www.ocaml.org | OCaml 4.07.1 release notes: https://caml.inria.fr/pub/distrib/ocaml-4.07/notes/Changes | Try OCaml in your browser: http://try.ocamlpro.com | Public channel logs at http://irclog.whitequark.org/ocaml | Due to ongoing spam, you must register your nickname to talk on the channel
sonologico has quit [Ping timeout: 245 seconds]
sonologico has joined #ocaml
kvda has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
mfp has quit [Ping timeout: 252 seconds]
keep_learning_M has quit [Quit: This computer has gone to sleep]
keep_learning_M has joined #ocaml
orbifx has quit [Ping timeout: 246 seconds]
kvda has joined #ocaml
kvda has quit [Client Quit]
ziyourenxiang has joined #ocaml
amiloradovsky has quit [Ping timeout: 246 seconds]
kvda has joined #ocaml
keep_learning_M has quit [Quit: This computer has gone to sleep]
keep_learning_M has joined #ocaml
jao has joined #ocaml
silver has quit [Quit: rakede]
notnotdan[m] has quit [Ping timeout: 256 seconds]
notnotdan[m] has joined #ocaml
notnotdan[m] has quit [Remote host closed the connection]
notnotdan[m] has joined #ocaml
keep_learning_M has quit [Quit: This computer has gone to sleep]
kalio has quit [Quit: WeeChat 2.3]
keep_learning_M has joined #ocaml
keep_learning_M has quit [Client Quit]
keep_learning_M has joined #ocaml
keep_learning_M has quit [Quit: This computer has gone to sleep]
kvda has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
kvda has joined #ocaml
kalio has joined #ocaml
jao has quit [Ping timeout: 246 seconds]
keep_learning_M has joined #ocaml
kvda has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
tormen has joined #ocaml
tormen_ has quit [Ping timeout: 240 seconds]
kvda has joined #ocaml
keep_learning_M has quit [Quit: This computer has gone to sleep]
kvda has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
keep_learning_M has joined #ocaml
gravicappa has joined #ocaml
kvda has joined #ocaml
AnAverageHuman has quit [Ping timeout: 256 seconds]
FreeBirdLjj has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 268 seconds]
sonologico has quit [Remote host closed the connection]
kvda has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
keep_learning_M has quit [Quit: This computer has gone to sleep]
keep_learning_M has joined #ocaml
marsam has joined #ocaml
jp_ has quit [Remote host closed the connection]
keep_learning_M has quit [Quit: This computer has gone to sleep]
freyr69 has joined #ocaml
keep_learning_M has joined #ocaml
marsam has quit [Ping timeout: 250 seconds]
govg has joined #ocaml
jp_ has joined #ocaml
jp_ has quit [Ping timeout: 245 seconds]
_whitelogger has joined #ocaml
govg has quit [Quit: leaving]
barockobamo has joined #ocaml
mfp has joined #ocaml
amiloradovsky has joined #ocaml
keep_learning_M has quit [Quit: This computer has gone to sleep]
<Leonidas> what are Metaquot_lifters? I mean, what does "lifting" mean in that context?
dhil has joined #ocaml
asymptotically has joined #ocaml
<Drup> Leonidas: iirc, it takes an AST type and turn it into a metaquot-like thing
kakadu has joined #ocaml
<Leonidas> uhh, ok. Thanks :)
snhmib has joined #ocaml
<Leonidas> is there a way if I pattern match on core_type [%type: 'a list] to get the 'a somehow?
<Drup> Sure, it's a Ptyp_var
<Leonidas> yes, but I'm wondering what the binding syntax would be. let builtin_types = function | [%type: 'a list] -> ?
themsay has joined #ocaml
<Drup> just pattern match on the AST.
<Drup> don't overthink it.
<Leonidas> I was hoping there would be a cool way to use metaquot :-)
<Drup> | [%type: [%t? x] list] -> x
<Drup> that works
<Drup> but you still need to pattern match the x to dig deeper
<xvilka> Since you speak about metaquot here
<xvilka> How to return an empty expression for [%expr] ?
<Leonidas> Yeah, of course, but that already saves me from matching on core_type_desc and figuring out how the list type is encoded \o/
<xvilka> I have an if/else switch where true returns meaningful [%expr fun x ... ->] and need an empty one for false condition
<Drup> Leonidas: just open a toplevel with -dparsetree ...
<Drup> xvilka: there is no such thing as an empty expression.
<xvilka> Drup: oh, but why?
<xvilka> It feels incomplete then
<Drup> because that doesn't make sense, what's the type of the empty expression ? Where can you use it ? what does it evaluate to ?
<xvilka> Drup: of course it evaluates to nothing
<Drup> Can I write `3 + (* empty *)` ?
<xvilka> Drup: of course not
<octachron> nothing is not a meaningful value.
<xvilka> octachron: how it is worse than None then?
<Drup> xvilka: the else branch is optional, that's very different from having an empty expression.
<Drup> xvilka: `None` is a value.
<octachron> None is a value which is well defined and has type `forall 'a. 'a option `.
<xvilka> Drup: I know it is a value, I mean from the philosophical point of view there is not much difference imho
<Drup> xvilka: are you arguing for adding null pointers to OCaml :)
<Leonidas> hmm, Iter looks really good :)
<octachron> Note that you can raise an error in the else branch or add an "assert false"
<xvilka> octachron: I hate exceptions and similar things, but thanks
<Leonidas> exceptions are a good way to obtain 'a
<Drup> xvilka: you hate exceptions but you seem fine with adding something to the langage whose only meaningful usage is crashing the program ? :p
<octachron> xvilka, in this case what you want is to return "Some x" in the then branch and "None" otherwise
<xvilka> Drup: not really, I speak in terms of ppx and processing Ast
<xvilka> I have no intents to use in the runtime
<Drup> if it's in the AST, it should have a semantics.
<xvilka> ok, ok you convinced me
<xvilka> btw, is there any expected date for 4.08 release?
rpcope has quit [Ping timeout: 272 seconds]
rpcope has joined #ocaml
jp_ has joined #ocaml
jp_ has quit [Ping timeout: 246 seconds]
kjak has quit [Ping timeout: 240 seconds]
silver has joined #ocaml
snhmib has quit [Quit: WeeChat 1.6]
themsay has quit [Read error: Connection reset by peer]
themsay has joined #ocaml
Haudegen has joined #ocaml
themsay has quit [Read error: Connection reset by peer]
themsay has joined #ocaml
waleee has joined #ocaml
freyr69 has quit [Ping timeout: 245 seconds]
spew has joined #ocaml
freyr69 has joined #ocaml
ziyourenxiang has quit [Remote host closed the connection]
AnAverageHuman has joined #ocaml
ziyourenxiang has joined #ocaml
dhil has quit [Ping timeout: 255 seconds]
assemblyman has joined #ocaml
brab[m] has left #ocaml [#ocaml]
dhil has joined #ocaml
sgnb has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
<companion_cube> wooooo bye bye mantis
<adrien> I'd say "bye bye INRIA admins" instead :P
<Leonidas> what will replace mantis? debbugs?
<zozozo> Leonidas: github issues
<Leonidas> oh wow, what's next? a reasonable license for the manual?
AnAverageHuman has quit [Ping timeout: 256 seconds]
<companion_cube> who knows?
freyr69 has quit [Remote host closed the connection]
<Leonidas> next: autotools instead of weird homegrown configure?
<Drup> Leonidas: that's actually already on the todolist/being done
<zozozo> 4.08 uses autoconf i think ?
t4nk981 has joined #ocaml
<Leonidas> yeah, I allowed myself this small joke
<companion_cube> what's next, a reasonable stdlib? :p
<Drup> companion_cube: actually, in 4.08, with have modules for integers, strings and booleans :>
<Drup> (I know, a revolution)
<companion_cube> there's been a String module for ages :p
<Drup> which one were missing, apart from int and bool ?
<companion_cube> Float? I don't recall
<companion_cube> well.
<companion_cube> IO
<companion_cube> and tons of things in Option, List, etc.
jp_ has joined #ocaml
assemblyman has quit [Quit: ™]
jp_ has quit [Ping timeout: 250 seconds]
<Leonidas> Fn was also missing
<Leonidas> now there is Fun
<companion_cube> really? :o
<companion_cube> 4.08 is going to be a lot of work for containers…
<Leonidas> it is a bit annoying it is called Fun in OCaml and Fn in Core now :-|
<companion_cube> discrepancy 5619?
<companion_cube> I mean, it's not like Core has anything to do with the stdlib anyway
<Leonidas> The base names are mostly the same and the regular function names are swapping _opt/_exn
<Leonidas> it would be nice if the ocaml stdlib were decoupled from the compiler, then one could use the new stuff in older versions
waleee has quit [Quit: WeeChat 2.4]
<Leonidas> Drup: A belated thanks, I didn't know one could run the toplevel with -dparsetree. This is amazing, I don't have to write small programs to test random expressions!
<Drup> :D
<Drup> it's essential in the ppx-developement toolbox
<Leonidas> Wish I knew that the last time I was doing ppx
<companion_cube> Leonidas: yeah, it'd be nice, I think it's called containers 🤔
<Leonidas> yeah, now we just need to remove the stdlib from ocaml itself
<Armael> do you tho
<Armael> :)
KeyJoo has joined #ocaml
ttt123[m] has left #ocaml [#ocaml]
dhil has quit [Ping timeout: 268 seconds]
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 245 seconds]
jao has joined #ocaml
Haudegen has quit [Remote host closed the connection]
ptival[m] has quit [Quit: User has been idle for 30+ days.]
barockobamo has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
kjak has joined #ocaml
al-damiri has joined #ocaml
dhil has joined #ocaml
orbifx has joined #ocaml
jp_ has joined #ocaml
Haudegen has joined #ocaml
jp_ has quit [Remote host closed the connection]
jp_ has joined #ocaml
themsay has quit [Read error: Connection reset by peer]
<Leonidas> Today I had a production error due to List not being tail recursive, so yeah, where do I sign up :p
themsay has joined #ocaml
<aecepoglu[m]> At least you get to write in a language where things can be tail recursive
<aecepoglu[m]> does merlin 3.2.2 not have ocamlmerlin-lsp binary?
dhil has quit [Ping timeout: 250 seconds]
<spew> does anyone have any preferred mock testing libraries for ocaml?
_whitelogger has joined #ocaml
orbifx has quit [Ping timeout: 244 seconds]
Serpent7776 has joined #ocaml
KeyJoo has quit [Ping timeout: 244 seconds]
orbifx has joined #ocaml
themsay has quit [Read error: Connection reset by peer]
themsay has joined #ocaml
JimmyRcom has joined #ocaml
themsay has quit [Ping timeout: 268 seconds]
<def`> aecepoglu[m]: no it has to be installed separately
<aecepoglu[m]> merlin-lsp from the dev servers, got it
<companion_cube> def`: remind me, is there some beer-as-a-service platform where happy merlin users can ebriate y'all?
<def`> :) releasing cool libraries on opam is as cool as it can get :P
<def`> as close*
<companion_cube> fair enough, I'll just wait to meet you in person then :p
<Leonidas> heh, someone asked about batteries on reddit and everyone is like: meh, better use containers or base.
orbifx has quit [Ping timeout: 252 seconds]
<companion_cube> :D
artart78 has quit [Ping timeout: 264 seconds]
<Leonidas> is there an easy way to convert these .pp.ml files that dune makes into sonething readable?
<Leonidas> I'd like to see what the hell my PPX built that does not compile
<Leonidas> .pp.ml: OCaml abstract syntax tree implementation file (Version 023)
<octachron> Dune build the ppx driver somewhere in _build/.../.ppx/.. , you can invoke this driver on the source file directly to see the result
themsay has joined #ocaml
<Leonidas> yes, true. Unfortunately new dunes instead of + concatting all the linked ppxes just hash them so I have a folder with 17 hashes ^^"
malc_ has joined #ocaml
<Leonidas> but the proper one can be retrieved from the build log
jp_ has quit [Remote host closed the connection]
jao has quit [Ping timeout: 268 seconds]
jnavila has joined #ocaml
gravicappa has quit [Ping timeout: 255 seconds]
kakadu_ has joined #ocaml
<Drup> Leonidas: alternative solution: ocamlfind c -pkg <myppx> -dparsetree
<Drup> or -dsource, for something more readable
<Leonidas> Thanks, both solutions work just fine :)
<Leonidas> turns out let () = [(fun () -> ()) ()] is not actually sensible code, who'd knew! :>
<aecepoglu[m]> just curious, why that and not just `()` ? Does that stand in for some lambda calculus?
<Drup> aecepoglu[m]: it stands for "my ppx is having a stroke and I need to debug it"
<Leonidas> aecepoglu[m]: the actual function to be called later on is more complex, but for now it is basically the simplest thing that will prove the concept to work. Or, whatever Drup said :>
jp_ has joined #ocaml
spew has quit [Quit: going home]
jao has joined #ocaml
Haudegen has quit [Read error: Connection reset by peer]
t4nk981 has quit []
orbifx has joined #ocaml
Serpent7776 has quit [Quit: leaving]
jp_ has quit []
Haudegen has joined #ocaml
malc_ has quit [Quit: ERC (IRC client for Emacs 27.0.50)]
orbifx has quit [Ping timeout: 245 seconds]
kakadu_ has quit [Remote host closed the connection]
asymptotically has quit [Quit: Leaving]
AnAverageHuman has joined #ocaml
xqb16141 has joined #ocaml
AnAverageHuman has quit [Ping timeout: 256 seconds]
jnavila has quit [Quit: Konversation terminated!]
AnAverageHuman has joined #ocaml
AtumT has joined #ocaml
AtumT has quit [Quit: AtumT]
Haudegen has quit [Read error: Connection reset by peer]
keep_learning_M has joined #ocaml
themsay has quit [Read error: Connection reset by peer]
themsay has joined #ocaml