adrien changed the topic of #ocaml to: Discussions about the OCaml programming language | http://www.ocaml.org | OCaml 4.09 release notes: https://caml.inria.fr/pub/distrib/ocaml-4.09/notes/Changes | Try OCaml in your browser: http://try.ocamlpro.com | Public channel logs at http://irclog.whitequark.org/ocaml
kvda has joined #ocaml
kvda has quit [Ping timeout: 260 seconds]
kvda has joined #ocaml
kvda has quit [Ping timeout: 246 seconds]
kvda has joined #ocaml
olle has quit [Ping timeout: 264 seconds]
olle has joined #ocaml
jao has quit [Read error: Connection reset by peer]
jao has joined #ocaml
pigeonv has quit [Ping timeout: 265 seconds]
HyperMonkey has joined #ocaml
towel_ has joined #ocaml
kvda has quit [Read error: Connection reset by peer]
towel has quit [Quit: ZNC - https://znc.in]
dborisog has joined #ocaml
vicfred has quit [Quit: Leaving]
mbuf has joined #ocaml
jbrown has quit [Ping timeout: 246 seconds]
jao has quit [Ping timeout: 264 seconds]
warriors has joined #ocaml
warriors has left #ocaml [#ocaml]
mfp has quit [Ping timeout: 272 seconds]
objmagic has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<dborisog> I currently run my Ocsigen project on my OS, Ubuntu 20; OCaml 4.10.0 and one of the packages is ocsigen-toolkit.2.7.0. I would like to run it in Docker container. I found an official image ocaml/opam2:4.10 ( https://hub.docker.com/r/ocaml/opam2/tags ), yet the following instruction "RUN opam install ocsigen-toolkit.2.7.0" produces "[ERROR] Package ocsigen-toolkit has no version 2.7.0", and preceding "RUN opam update" does not help. Is there a way to
<dborisog> install ocsigen-toolkit.2.7.0 on top of ocaml/opam2:4.10 image?
waleee-cl has quit [Quit: Connection closed for inactivity]
mbuf has quit [Read error: Connection reset by peer]
mbuf has joined #ocaml
kvda has joined #ocaml
Haudegen has joined #ocaml
hlisp has joined #ocaml
jbrown has joined #ocaml
Leonidas has quit [Quit: An ideal world is left as an exercise to the reader]
hlisp has quit [Ping timeout: 258 seconds]
kvda has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
hlisp has joined #ocaml
HyperMonkey has quit [Remote host closed the connection]
peterbb has quit [Quit: peterbb]
hlisp has quit [Ping timeout: 246 seconds]
hlisp_ has joined #ocaml
hlisp_ has quit [Client Quit]
hlisp has joined #ocaml
mfp has joined #ocaml
andreas303 has quit [Quit: andreas303]
andreas303 has joined #ocaml
Anarchos has joined #ocaml
<Anarchos> https://pastebin.com/BwysST4k, how to solve that ? i tried type save = Session.save, but no success.
<octachron> Module types must be equal, so " type save = Session.save = Text | Binary"
<Anarchos> yes it worked like that. Dunno why cause modules seem too arcane to me...
<Anarchos> anyway, even with .mli file , ocamldebug is still unable to find debuggable event.
oturtle has quit [Ping timeout: 258 seconds]
oturtle has joined #ocaml
pigeonv has joined #ocaml
hlisp has quit [Remote host closed the connection]
hlisp has joined #ocaml
hlisp has quit [Ping timeout: 258 seconds]
gahr has quit [Quit: leaving]
jbrown has quit [Ping timeout: 272 seconds]
gahr has joined #ocaml
FreeBirdLjj has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 260 seconds]
jao has joined #ocaml
Leonidas has joined #ocaml
X-Scale` has joined #ocaml
X-Scale has quit [Ping timeout: 272 seconds]
X-Scale` is now known as X-Scale
gahr has quit [Quit: leaving]
gahr has joined #ocaml
hlisp has joined #ocaml
hlisp has quit [Ping timeout: 256 seconds]
hlisp_ has joined #ocaml
Anarchos has quit [Remote host closed the connection]
Anarchos has joined #ocaml
Anarchos has quit [Remote host closed the connection]
Anarchos has joined #ocaml
Anarchos has quit [Client Quit]
objmagic has joined #ocaml
Haudegen has quit [Quit: Bin weg.]
muskan has joined #ocaml
sgnb` has quit [Ping timeout: 256 seconds]
sgnb` has joined #ocaml
dckc has quit [Ping timeout: 260 seconds]
dckc has joined #ocaml
dckc has left #ocaml ["Leaving"]
hlisp_ has quit [Ping timeout: 265 seconds]
hlisp has joined #ocaml
raver has quit [Read error: Connection reset by peer]
hlisp has quit []
raver has joined #ocaml
bartholin has joined #ocaml
muskan has quit [Remote host closed the connection]
waleee-cl has joined #ocaml
Haudegen has joined #ocaml
Anarchos has joined #ocaml
<olle_> PHP now have phantom types (using the analyzer Psalm from Vimeo)
<olle_> \o/
zolk3ri has quit [Remote host closed the connection]
vicfred has joined #ocaml
<vsiles> blah, use Hack instead
<vsiles> </corporate tax>
<Drup> (or don't)
<companion_cube> if you have millions of lines of php, maybe do, yes
<olle_> vsiles: Hack is a hackfraud
<olle_> can't trust fb
<def> Require Import Popcorn.
<olle_> ^^
<olle_> and also match expressions? https://wiki.php.net/rfc/match_expression_v2
<olle_> in this speed, they'll have linear types in 20 years!
<vsiles> you can trust fb for part of hack, the team is actually really great. But it's also full of crap so....
<olle_> vsiles: i trust the devs for sure, i don't trust the management
<olle_> hack could have been the typescript of php
<olle_> but they decided to drop support
<olle_> but, i'm off now, so :)
<olle_> \o
<vsiles> :D
<vsiles> have fun
ollehar_ has quit [Ping timeout: 256 seconds]
olle_ has quit [Ping timeout: 272 seconds]
<def> they also dropped flow. At least this part is reliable :P
<companion_cube> well, flow clearly lost to typescript
<companion_cube> did hack lose to anything?
<theblatte> hack was never widely used outside fb, php backported some of the good stuff into the language
<vsiles> theblatte: slack's using it, but yes, they are the only ones
<def> companion_cube: did it lose, or was it killed before the fight :P ?
<companion_cube> flow? I think it tried to fight?
HyperMonkey has joined #ocaml
<Anarchos> how to tell dune to install a package with debugging informations ?
<def> My biased impression is that PHP is too broken, and Hack was right that breaking compatibility was the only way forward.
<def> (Though I don't know if it broke compat in the right way :))
Haudegen has quit [Quit: Bin weg.]
tane has joined #ocaml
muskan has joined #ocaml
chripell_ has quit [Quit: Leaving]
wildsebastian has quit [Ping timeout: 240 seconds]
bitonic has quit [Read error: Connection reset by peer]
angerman has quit [Ping timeout: 260 seconds]
caasih has quit [Ping timeout: 265 seconds]
wildsebastian has joined #ocaml
caasih has joined #ocaml
bytesighs has quit [Read error: Connection reset by peer]
jeroud has quit [Ping timeout: 272 seconds]
rgrinberg has quit [Ping timeout: 272 seconds]
bitonic has joined #ocaml
caasih has quit [Read error: Connection reset by peer]
bytesighs has joined #ocaml
caasih has joined #ocaml
rgrinberg has joined #ocaml
higherorder has quit [Ping timeout: 240 seconds]
<olle> hack vm was not fast enough compared to php 7
angerman has joined #ocaml
<olle> when they also broke backward compat, there were no motivation to convert a big codebase to hack
<olle> high commitment, low reward
<olle> and now there are very good static analysis tool to php, so
<olle> they missed the opportunity
wildsebastian has quit [Ping timeout: 244 seconds]
bitonic has quit [Ping timeout: 272 seconds]
mbuf has quit [Quit: Leaving]
wildsebastian has joined #ocaml
Haudegen has joined #ocaml
bitonic has joined #ocaml
jeroud has joined #ocaml
higherorder has joined #ocaml
pigeonv has quit [Ping timeout: 272 seconds]
jnavila has joined #ocaml
jnavila_ has joined #ocaml
jnavila has quit [Ping timeout: 272 seconds]
muskan has quit [Ping timeout: 245 seconds]
pigeonv has joined #ocaml
waleee-cl has quit [Quit: Connection closed for inactivity]
dborisog has quit [Ping timeout: 258 seconds]
<flux1> does some library provide easy way to navigate jsons?
<companion_cube> ppx_deriving+yojson, yojson, ezjsonm… ?
<flux1> what I mean is like function to call `walk [Index 0; Field "foo"; Index 1] json` and end up with the right object
<companion_cube> hmm, not sure
<flux1> I guess I'll just write that one function for myself :) but a general one would be cool
<olle> flux1: sounds like xml query language to me
<olle> fuck that shit...
<flux1> olle: have, have you use `jq`?
<olle> or jquery, of course
<flux1> well, the alternative is to write a piece of code to do it for you
<flux1> it gets tedious after a while :)
pigeonv has quit [Ping timeout: 260 seconds]
waleee-cl has joined #ocaml
<olle> that?
<olle> this even
<flux1> perhaps. I took a look that someone had begun to write a jsonpath implementation for ocaml but stopped
<olle> json query language standard
<flux1> and, of course, it would be nice if such a thing would be as type-safe as feasible
<flux1> so perhaps something ocaml-specific
<olle> hm hm
<olle> yeah, if it returns Some object or Some array or just None
<simpson> olle: jq is like awk, but for JSON. It is *extremely* useful to know, despite requiring learning a DSL. https://stedolan.github.io/jq/manual/
pigeonv has joined #ocaml
<olle> ah
<olle> why is it useful, exactly...?
<flux1> well, if you have json and you want to process it somehow
<simpson> Perhaps one might need to process GiB of JSON data.
<olle> let me stop you right there
<olle> xD
<olle> too much webscale for me
<flux1> json is very common these days
<flux1> which is a good thing. we could be sinking in XML.
<flux1> recently I found a website that shows the lake temperatures of Finland—well, the ones that are being officially monitored. turns out the front renders the data based on the json dump it is provided
<simpson> olle: Well, jq is *also* a compact higher-order concatenative filter language, and with only a few dozen lines, it's possible to write out a basic term-rewriting system: https://github.com/MostAwesomeDude/klesi/blob/master/cat.jq But yeah, jq is useful for cloud work, just like awk is useful for text processing.
<flux1> so with a little bit of unreadable jq ;) I was able to dump that data into something that was readable and that again to something influxdb was able to accept
<flux1> I imagine it would have been a lot more in any other language; and probably not more readable anyway
<flux1> wish more utilities came with json output so we would finally get rid of the ad-hoc text-processing breaking whenever an app decides to change its output format
<flux1> I mean it could happen with json as well, but it's so much easier to extend it without breaking anything
<flux1> maybe jq could be implemented as a DSL in ocaml 🤔
Anarchos has quit [Quit: Vision[0.10.3]: i've been blurred!]
jnavila_ has quit [Quit: Konversation terminated!]
<olle> simpson: alright
<olle> flux1: ppx called :)
<olle> ppx all the things!
<flux1> yeah, but it still needs to fix OCaml syntactically
<flux1> preferably leverage ocaml facilities as good as possible to avoid doing them again :)
<olle> builder pattern + phantom types
<waleee-cl> olle: another reason to use jq, nice highlighting (on my distro at least) of fields and values in the json
<companion_cube> oh I forgot, flux1, there's also `ocaml-decoders`
<flux1> companion_cube: well that's exactly the ticket!
<companion_cube> it's inspired by Elm
<flux1> better error messages as well :)
<companion_cube> yes, the messages are neat
<flux1> well, I already pushed my inferior version. I guess I need to force-push an older one so I can refactor it to use this one neatly ;).
jbrown has joined #ocaml
Jesin has quit [Quit: Leaving]
Jesin has joined #ocaml
Haudegen has quit [Quit: Bin weg.]
Haudegen has joined #ocaml
jbrown has quit [Ping timeout: 246 seconds]
objmagic has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
jao has quit [Read error: Connection reset by peer]
leah2 has quit [Ping timeout: 244 seconds]
objmagic has joined #ocaml
tane has quit [Quit: Leaving]
leah2 has joined #ocaml
objmagic has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
jao has joined #ocaml
objmagic has joined #ocaml
peterbb has joined #ocaml
Hrundi_V_Bakshi has joined #ocaml
peterbb has quit [Ping timeout: 264 seconds]
Hrundi_V_Bakshi has quit [Ping timeout: 240 seconds]
kvda has joined #ocaml
objmagic has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Haudegen has quit [Ping timeout: 258 seconds]
pigeonv has quit [Ping timeout: 272 seconds]