adrien changed the topic of #ocaml to: Discussions about the OCaml programming language | http://www.ocaml.org | OCaml 4.06.0 release notes: https://caml.inria.fr/pub/distrib/ocaml-4.06/notes/Changes | Try OCaml in your browser: http://try.ocamlpro.com | Public channel logs at http://irclog.whitequark.org/ocaml
hdon has joined #ocaml
sagax has quit [Remote host closed the connection]
hdon has quit [Ping timeout: 240 seconds]
Bronsa` has quit [Ping timeout: 260 seconds]
infinity0_ has joined #ocaml
infinity0_ has joined #ocaml
infinity0_ has quit [Changing host]
infinity0_ is now known as infinity0
infinity0 has quit [Killed (hitchcock.freenode.net (Nickname regained by services))]
atheris has quit [Quit: Leaving]
caltelt has joined #ocaml
ziyourenxiang has quit [Ping timeout: 256 seconds]
sh0t has quit [Remote host closed the connection]
caltelt has quit [Ping timeout: 256 seconds]
hdon has joined #ocaml
hdon has quit [Ping timeout: 264 seconds]
jao has joined #ocaml
caltelt has joined #ocaml
malina has quit [Remote host closed the connection]
hdon has joined #ocaml
hdon has quit [Ping timeout: 248 seconds]
iitalics has quit [Quit: WeeChat 2.1]
Gurkenglas has quit [Ping timeout: 264 seconds]
dedgrant_ has quit [Ping timeout: 240 seconds]
demonimin has quit [Ping timeout: 240 seconds]
demonimin has joined #ocaml
hdon has joined #ocaml
hdon has quit [Ping timeout: 240 seconds]
webshinra_ has joined #ocaml
hdon has joined #ocaml
flx_ has joined #ocaml
lopex_ has joined #ocaml
jyc_ has joined #ocaml
m4lvin_ has joined #ocaml
breitenj- has joined #ocaml
hdon has quit [Ping timeout: 264 seconds]
caseypme[m]1 has joined #ocaml
jmiven_ has joined #ocaml
breitenj has quit [Ping timeout: 256 seconds]
jyc has quit [Ping timeout: 256 seconds]
lopex has quit [Ping timeout: 256 seconds]
caseypme[m] has quit [Ping timeout: 256 seconds]
jmiven has quit [Ping timeout: 256 seconds]
spectrumgomas[m] has quit [Ping timeout: 256 seconds]
webshinra has quit [Ping timeout: 256 seconds]
flux has quit [Ping timeout: 256 seconds]
m4lvin has quit [Ping timeout: 256 seconds]
Fistine has quit [Ping timeout: 256 seconds]
igitoor has quit [Ping timeout: 256 seconds]
lopex_ is now known as lopex
jyc_ is now known as jyc
flx_ is now known as flux
Fistine has joined #ocaml
igitoor has joined #ocaml
octachron has quit [Ping timeout: 260 seconds]
igitoor has quit [Changing host]
igitoor has joined #ocaml
yetanotherion[m] has quit [Ping timeout: 255 seconds]
copy` has quit [Ping timeout: 255 seconds]
talyian[m] has quit [Ping timeout: 240 seconds]
M-ErkkiSeppl has quit [Ping timeout: 240 seconds]
orbifx[m] has quit [Ping timeout: 240 seconds]
caseypme[m]1 has quit [Ping timeout: 240 seconds]
M-martinklepsch has quit [Ping timeout: 245 seconds]
srenatus has quit [Ping timeout: 240 seconds]
ansiwen has quit [Ping timeout: 240 seconds]
Bluddy[m] has quit [Ping timeout: 255 seconds]
Haudegen[m] has quit [Ping timeout: 255 seconds]
remix2000[m] has quit [Ping timeout: 255 seconds]
aantron has quit [Ping timeout: 255 seconds]
smondet[m] has quit [Ping timeout: 255 seconds]
neatonk[m] has quit [Ping timeout: 255 seconds]
loxs[m] has quit [Ping timeout: 260 seconds]
regnat[m] has quit [Ping timeout: 260 seconds]
hdurer[m] has quit [Ping timeout: 260 seconds]
Bozghurt[m] has quit [Ping timeout: 240 seconds]
isaachodes[m] has quit [Ping timeout: 240 seconds]
M-jimt has quit [Ping timeout: 240 seconds]
bli[m] has quit [Ping timeout: 255 seconds]
rgr[m] has quit [Ping timeout: 255 seconds]
aspiwack[m] has quit [Ping timeout: 255 seconds]
hcarty[m] has quit [Ping timeout: 246 seconds]
drsmkl[m] has quit [Ping timeout: 256 seconds]
equalunique[m] has quit [Ping timeout: 256 seconds]
dlebrecht[m] has quit [Ping timeout: 255 seconds]
olopierpa[m] has quit [Ping timeout: 255 seconds]
octachron has joined #ocaml
mmmmmmmmmmmm[m] has quit [Ping timeout: 276 seconds]
multiocracy[m] has quit [Ping timeout: 276 seconds]
tiksin[m] has quit [Ping timeout: 276 seconds]
peddie[m] has quit [Ping timeout: 276 seconds]
cross has joined #ocaml
tormen_ has joined #ocaml
nicoo has quit [Remote host closed the connection]
nicoo has joined #ocaml
tormen has quit [Ping timeout: 264 seconds]
mfp has quit [Ping timeout: 248 seconds]
govg has quit [Ping timeout: 268 seconds]
pierpa has quit [Quit: Page closed]
jao has quit [Ping timeout: 240 seconds]
jbrown has quit [Ping timeout: 260 seconds]
FreeBirdLjj has joined #ocaml
mbuf has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 260 seconds]
pierpal has joined #ocaml
hdon has joined #ocaml
hdon has quit [Ping timeout: 255 seconds]
demonimin has quit [Ping timeout: 264 seconds]
hdon has joined #ocaml
demonimin has joined #ocaml
demonimin has joined #ocaml
demonimin has quit [Changing host]
pierpal has quit [Read error: Connection reset by peer]
hdon has quit [Ping timeout: 256 seconds]
pierpal has joined #ocaml
moei has quit [Ping timeout: 255 seconds]
moei has joined #ocaml
hdon has joined #ocaml
FreeBirdLjj has joined #ocaml
sagax has joined #ocaml
FreeBirdLjj has quit [Client Quit]
hdon has quit [Ping timeout: 256 seconds]
hdon has joined #ocaml
hdon has quit [Ping timeout: 260 seconds]
hdon has joined #ocaml
demonimin has quit [Ping timeout: 240 seconds]
demonimin has joined #ocaml
Gurkenglas has joined #ocaml
cbot has quit [Quit: Leaving]
hdon has quit [Ping timeout: 260 seconds]
hdon has joined #ocaml
demonimin has quit [Ping timeout: 255 seconds]
moei has quit [Quit: Leaving...]
zmt01 has joined #ocaml
hdon has quit [Ping timeout: 255 seconds]
demonimin has joined #ocaml
zmt00 has quit [Ping timeout: 255 seconds]
pierpal has quit [Read error: Connection reset by peer]
pierpal has joined #ocaml
sgnb has joined #ocaml
hdon has joined #ocaml
mk9 has joined #ocaml
pierpal has quit [Ping timeout: 255 seconds]
hdon has quit [Ping timeout: 256 seconds]
Haudegen has joined #ocaml
moei has joined #ocaml
zolk3ri has joined #ocaml
gareppa has joined #ocaml
gareppa has quit [Quit: Leaving]
mk9 has quit [Quit: mk9]
govg has joined #ocaml
pierpal has joined #ocaml
mk9 has joined #ocaml
Gurkenglas has quit [Ping timeout: 276 seconds]
TC01 has quit [Ping timeout: 268 seconds]
exarkun has quit [Read error: Connection reset by peer]
ansiwen has joined #ocaml
exarkun has joined #ocaml
aspiwack[m] has joined #ocaml
spectrumgomas[m] has joined #ocaml
M-martinklepsch has joined #ocaml
aantron has joined #ocaml
rgr[m] has joined #ocaml
drsmkl[m] has joined #ocaml
peddie[m] has joined #ocaml
smondet[m] has joined #ocaml
copy` has joined #ocaml
equalunique[m] has joined #ocaml
M-jimt has joined #ocaml
caseypme[m] has joined #ocaml
srenatus has joined #ocaml
hdurer[m] has joined #ocaml
olopierpa[m] has joined #ocaml
orbifx[m] has joined #ocaml
loxs[m] has joined #ocaml
Haudegen[m] has joined #ocaml
multiocracy[m] has joined #ocaml
Bluddy[m] has joined #ocaml
neatonk[m] has joined #ocaml
tiksin[m] has joined #ocaml
hcarty[m] has joined #ocaml
isaachodes[m] has joined #ocaml
regnat[m] has joined #ocaml
Bozghurt[m] has joined #ocaml
mmmmmmmmmmmm[m] has joined #ocaml
yetanotherion[m] has joined #ocaml
remix2000[m] has joined #ocaml
talyian[m] has joined #ocaml
dlebrecht[m] has joined #ocaml
bli[m] has joined #ocaml
M-ErkkiSeppl has joined #ocaml
zolk3ri has quit [Ping timeout: 255 seconds]
zolk3ri has joined #ocaml
caltelt has quit [Ping timeout: 240 seconds]
mk9 has quit [Quit: mk9]
zolk3ri_ has joined #ocaml
M-jimt has quit [Ping timeout: 240 seconds]
aantron has quit [Ping timeout: 256 seconds]
rgr[m] has quit [Ping timeout: 245 seconds]
spectrumgomas[m] has quit [Ping timeout: 245 seconds]
samposm has joined #ocaml
samposm has quit [Ping timeout: 240 seconds]
zolk3ri has quit [Ping timeout: 240 seconds]
peddie[m] has quit [Ping timeout: 246 seconds]
dlebrecht[m] has quit [Ping timeout: 260 seconds]
bli[m] has quit [Ping timeout: 245 seconds]
neatonk[m] has quit [Ping timeout: 245 seconds]
remix2000[m] has quit [Ping timeout: 256 seconds]
loxs[m] has quit [Ping timeout: 256 seconds]
equalunique[m] has quit [Ping timeout: 256 seconds]
aspiwack[m] has quit [Ping timeout: 255 seconds]
olopierpa[m] has quit [Ping timeout: 256 seconds]
orbifx[m] has quit [Ping timeout: 256 seconds]
hdurer[m] has quit [Ping timeout: 256 seconds]
mmmmmmmmmmmm[m] has quit [Ping timeout: 276 seconds]
multiocracy[m] has quit [Ping timeout: 276 seconds]
tiksin[m] has quit [Ping timeout: 276 seconds]
Bozghurt[m] has quit [Ping timeout: 255 seconds]
isaachodes[m] has quit [Ping timeout: 255 seconds]
srenatus has quit [Ping timeout: 255 seconds]
M-ErkkiSeppl has quit [Ping timeout: 260 seconds]
talyian[m] has quit [Ping timeout: 260 seconds]
Bluddy[m] has quit [Ping timeout: 260 seconds]
caseypme[m] has quit [Ping timeout: 260 seconds]
smondet[m] has quit [Ping timeout: 260 seconds]
regnat[m] has quit [Ping timeout: 246 seconds]
Haudegen[m] has quit [Ping timeout: 256 seconds]
drsmkl[m] has quit [Ping timeout: 256 seconds]
copy` has quit [Ping timeout: 256 seconds]
hcarty[m] has quit [Ping timeout: 240 seconds]
yetanotherion[m] has quit [Ping timeout: 240 seconds]
M-martinklepsch has quit [Ping timeout: 240 seconds]
ansiwen has quit [Ping timeout: 276 seconds]
<rwmjones> does anyone know the release date for 4.07?
argent_smith1 has joined #ocaml
<rwmjones> ddoligez said "in a few weeks" .. a few weeks ago ..
<kit_ty_kate> rwmjones: I'd say probably in 2 weeks or so (wild guess)
TarVanimelde has joined #ocaml
<rwmjones> right in the middle of the risc-v conference :-(
mk9 has joined #ocaml
mfp has joined #ocaml
ansiwen has joined #ocaml
aspiwack[m] has joined #ocaml
M-martinklepsch has joined #ocaml
spectrumgomas[m] has joined #ocaml
rgr[m] has joined #ocaml
aantron has joined #ocaml
drsmkl[m] has joined #ocaml
smondet[m] has joined #ocaml
M-jimt has joined #ocaml
equalunique[m] has joined #ocaml
peddie[m] has joined #ocaml
copy` has joined #ocaml
srenatus has joined #ocaml
hdurer[m] has joined #ocaml
Haudegen[m] has joined #ocaml
loxs[m] has joined #ocaml
orbifx[m] has joined #ocaml
olopierpa[m] has joined #ocaml
neatonk[m] has joined #ocaml
multiocracy[m] has joined #ocaml
tiksin[m] has joined #ocaml
Bozghurt[m] has joined #ocaml
Bluddy[m] has joined #ocaml
mmmmmmmmmmmm[m] has joined #ocaml
yetanotherion[m] has joined #ocaml
hcarty[m] has joined #ocaml
remix2000[m] has joined #ocaml
regnat[m] has joined #ocaml
isaachodes[m] has joined #ocaml
talyian[m] has joined #ocaml
bli[m] has joined #ocaml
caseypme[m] has joined #ocaml
dlebrecht[m] has joined #ocaml
M-ErkkiSeppl has joined #ocaml
TarVanimelde has quit [Quit: TarVanimelde]
pierpal has quit [Ping timeout: 240 seconds]
bairui has quit [Quit: WeeChat 1.4-dev]
bairui has joined #ocaml
mk9 has quit [Quit: mk9]
jao has joined #ocaml
govg_ has joined #ocaml
samposm has joined #ocaml
mfp has quit [Ping timeout: 240 seconds]
samposm has quit [Ping timeout: 240 seconds]
govg has quit [Ping timeout: 240 seconds]
mfp has joined #ocaml
tilpner has quit [Quit: :wq]
jao has quit [Ping timeout: 240 seconds]
Haudegen has quit [Read error: Connection reset by peer]
tilpner has joined #ocaml
bramford has joined #ocaml
zolk3ri_ has quit [Ping timeout: 240 seconds]
silenc3r has joined #ocaml
silenc3r has quit [Remote host closed the connection]
silenc3r has joined #ocaml
mk9 has joined #ocaml
kakadu has joined #ocaml
zolk3ri has joined #ocaml
ShalokShalom3 has joined #ocaml
_andre has joined #ocaml
malina has joined #ocaml
silenc3r has quit [Quit: Leaving]
seirl has joined #ocaml
seirl has left #ocaml ["WeeChat 2.1"]
mk9 has quit [Quit: mk9]
Haudegen has joined #ocaml
sgnb has quit [Read error: Connection reset by peer]
Haudegen has quit [Ping timeout: 264 seconds]
Haudegen has joined #ocaml
<ShalokShalom3> does anyone still use "The whitespace thing"?
<bramford> I'm having trouble debugging a TLS error using cohttp-lwt-unix - https://gist.github.com/bramford/93212ddff807bc131d1562197f5f2d01
<rgr[m]> bramford: try using the ssl backend instead?
pierpal has joined #ocaml
<Armael> ShalokShalom3: I doubt it
<ShalokShalom3> thy
<octachron> Has anyone ever used it?
<bramford> rgr: how can I force the use of ssl instead of tls? I have `lwt_ssl`, `ssl` and `tls` packages installed. Should I remove `tls` and recompile cohttp?
<ShalokShalom3> i guess the creator and some other sane persons?
jmiven_ is now known as jmiven
<Leonidas> ShalokShalom3: I don't recall anyone ever using it
tarptaeya has joined #ocaml
ShalokShalom has joined #ocaml
<ShalokShalom> Leonidas: I guess thats because such apps do not report who is using them
ShalokShalom3 has quit [Ping timeout: 260 seconds]
<rgr[m]> bramford: theres an env var whose name I forgot and can't lookup on my phone :P
silenc3r has joined #ocaml
<Leonidas> ShalokShalom: Well, something that was last released in 2012, described as "something of a hack" & "should be rewritten using camlp4 in the future" and where I haven't seen any code using it since I first learned OCaml around 2009 is sort-of unlikely to be used.
<Leonidas> ShalokShalom: Just today I was thinking that I'd enjoy a S-Exp version of OCaml :-)
<Leonidas> that would also get rid of ; and ambiguity with nested matches :-)
hdon has joined #ocaml
hdon has quit [Ping timeout: 240 seconds]
spew has joined #ocaml
<ShalokShalom> Leonidas: sure
<ShalokShalom> i was just curious to get a FSharp syntax into OCaml
sh0t has joined #ocaml
<ShalokShalom> i am sick of their attitude, while this block building here confuses me
<ShalokShalom> and Reason is even more worse
<ShalokShalom> imho
jbrown has joined #ocaml
gtrak has joined #ocaml
<remix2000[m]> Hi! I'm going to build a medium-sized web application. It will be a GitHub clone, so it has to execute shell commands and interact with filesystem. I will probably choose Elixir (phoenix) or OCaml (ocsigen?) for backend. I really love OCaml, but is its web stack mature enough?
shinnya has joined #ocaml
<Leonidas> ShalokShalom: I sort of agree with you here, though the F# syntax is also a new thing, the original F# had the same block-syntax as OCaml
<Leonidas> ShalokShalom: In Reason I noticed how annoying having an additional syntax is, because their syntax error reporting is even worse than vanilla OCaml
<Drup> That's impressive
<Drup> I did not know that was even possible :D
<Armael> wow how did they manage to do that?
mbuf has quit [Quit: Leaving]
<Armael> actually... I just recalled python "unexpected EOF" messages in case of unbalanced parenthesis
<Drup> remix2000[m]: I can't really compare with Elixir, as I don't know it, but the ocsigen stack, while it has its warth, is certainly fairly stable and featureful.
<ShalokShalom> Leonidas: no
<ShalokShalom> the original implementation and the current implementation is the same
<ShalokShalom> with one exception: the light syntax is now the default
<ShalokShalom> and you can opt in the begin/end/in syntax without any notation
<Leonidas> Armael: all syntax errors lead to VS Code pointing at your last }; and saying "this is wrong".
<Armael> :Dd
<Leonidas> ShalokShalom: ah, ok. What's then with the attitude.
<ShalokShalom> remix2000[m]: there is already one in Elixir
<Leonidas> Armael: this was a MAJOR turn down for me. If they prioritize a nice looking website above a sort-of helpful parser, I am not interested :|
<ShalokShalom> Leonidas: It lead me here :D
<ShalokShalom> And I hope I find my new home here
<Leonidas> ShalokShalom: Welcome then, glad to have you onboard :-)
<ShalokShalom> ^^
<ShalokShalom> thanks dude
<Leonidas> ShalokShalom: (should I say that we are a resonable buch of people? :p)
<ShalokShalom> I am not bothering about the lack of operator overloading or anything else in the syntax
<ShalokShalom> Leonidas: Yeah, I hope so
<remix2000[m]> ShalokShalom: that's not exactly what I want to acheive, but okay, I'll take a look
<ShalokShalom> I just see indendation as a reasonable way to build blocks, since its there in the syntax anyway
<ShalokShalom> remix2000[m]: You can contribute to this post, ask him about pain points in the implementation of something and so on
<Leonidas> ShalokShalom: Fun fact: Camlp4 is a revised syntax of older Camlp4 (which is not Camlp5) and OCaml itself also had a revised syntax.
<ShalokShalom> To me, I avoid dynamic languages
<ShalokShalom> Leonidas: Yeah, I know about that one (revised syntax)
<ShalokShalom> I prefer the casual one
sh0t has quit [Remote host closed the connection]
<ShalokShalom> I hear, PPX is a superb system to implement new syntaxes
<ShalokShalom> what do you use for parsing here?
<ShalokShalom> is there a reference library?
<ShalokShalom> About the reason syntax: Isnt it the case, that their Bucklesscript code reports like Elm?
<ShalokShalom> Do you mean their error reporting in casual compilers?
<Leonidas> ShalokShalom: you don't do parsing if you write the PPX rewriters in OCaml. You get an AST and return an AST.
govg_ has quit [Quit: leaving]
<ShalokShalom> oh
<ShalokShalom> interesting
govg has joined #ocaml
<ShalokShalom> is there a tutorial? :D
* ShalokShalom is asking probably too much
<ShalokShalom> if I get an AST and give an AST, it should be very easy to develop such an indendation sensitive syntax
<Armael> umm PPX are precisely design to avoid extending the syntax
<ShalokShalom> yeah, what I mean
<Armael> the code is parsed using the standard ocaml parser, which gives an AST.
<Armael> PPX can then rewrite the AST
<ShalokShalom> is that they are there to design the API
<ShalokShalom> yeah
<ShalokShalom> you are pretty precise ;)
tilpner has quit [Ping timeout: 264 seconds]
<ShalokShalom> thanks
govg has quit [Quit: leaving]
pmetzger has joined #ocaml
pierpal has quit [Read error: Connection reset by peer]
sh0t has joined #ocaml
aciniglio has joined #ocaml
Bronsa has quit [Remote host closed the connection]
Bronsa has joined #ocaml
tarptaeya has quit [Read error: Connection reset by peer]
silenc3r has quit [Quit: Leaving]
Haudegen has quit [Remote host closed the connection]
silenc3r has joined #ocaml
Gurkenglas has joined #ocaml
tilpner has joined #ocaml
mal`` has quit [Quit: Leaving]
jao has joined #ocaml
<remix2000[m]> What does such function call mean? `Mod.(fn char) "hello, world"` Like this one in alcotest example: https://git.io/vpW2O
<octachron> This is a local open, i.e. a short syntax for (let open Mod in fn char) "hello, world"
nullifidian has quit [Remote host closed the connection]
mk9 has joined #ocaml
<pmetzger> Often one wants to use a version of a function (or even operator) from a particular module but not use it throughout a file.
<pmetzger> By doing a "local open" one can use the version in that module but not import it generally throughout the file.
<pmetzger> It's a very neat feature. I've never seen it in another language with modules, though I'm sure that might be because I wasn't paying attention.
<remix2000[m]> octachron: I know that one… Is it that Alcotest module contains function `char` that is passed as parameter to `check`?
<octachron> yes
mal`` has joined #ocaml
exarkun has quit [Read error: Connection reset by peer]
exarkun has joined #ocaml
mk9 has quit [Quit: mk9]
<Leonidas> remix2000[m]: I've also seen it as a way to define local infix operators like Float.(1. + 2.) or Int.(1 = 2)
<pmetzger> Leonidas: that's a frequent use, and a very nice one. I wish we had modular implicits so that you could just overload certain operators (like =) but it is what it is.
bartholin has quit [Ping timeout: 248 seconds]
<Leonidas> agreed
nullifidian has joined #ocaml
FreeBirdLjj has joined #ocaml
<Leonidas> at least multicore was rebased onto trunk which makes me sort of hopefull it didn't fall of the truck
<Leonidas> is there any kickstarter on the way to clone lpw25 a few dozen times? :)
<pmetzger> We have the technology now, but I think he'd need to approve of it.
muelleme has joined #ocaml
<pmetzger> I know it isn't going to happen soon and people don't need to tell me that. I just wish we had modular implicits sooner rather than later. It makes so much stuff so much cleaner. But yes, I get the manpower to do it right just isn't there, no one needs to tell me again.
<Leonidas> For the record, it takes time to get it right but I really appreciate that things are being thought through. It is one of the things I like about the language a lot.
<Leonidas> I recently looked into how Python 3.x incorporated async and, well, I think it is easier to learn Erlang from scratch than understand how async things in Python work
<Leonidas> > If the implementation is hard to explain, it's a bad idea.
<steenuil> well, Python is not very well known for having language designers that think things through
muelleme has quit [Ping timeout: 260 seconds]
<Leonidas> Maybe this is me being an old man, defining the "right Python" to be the one that I used and the "current Python" to be new fangled sillyness because real programmers back in the day used Twisted.
<Leonidas> ShalokShalom: anyway, if you want to implement something like TWT in PPX that won't be possible.
tarptaeya has joined #ocaml
<Leonidas> ShalokShalom: I am not aware of any tutorials on how to write PPXes, I read the source of how other PPXes do things.
<ShalokShalom> why?
<ShalokShalom> won`t be possible?
<ShalokShalom> i thought thats it, what ppx is all about?
<ShalokShalom> i thought Reason is build on it?
<ShalokShalom> if they can do what they do, why not twt?
<Leonidas> ShalokShalom: because by the time the PPX is run, the code is already parsed, according to default OCaml rules (extended with the @@@ PPX entrypoints)
<Leonidas> ShalokShalom: Reason does not use PPX.
<Leonidas> ShalokShalom: The only PPX that Reason use as far as I know is for the JSX syntax.
<ShalokShalom> oh, I see
<ShalokShalom> thy
<ShalokShalom> oh, there is another thing as the PPX
<ShalokShalom> i think I mixed this
<steenuil> ppx's are part of the OCaml syntax, they're basically like special comments that can be interpreted by the compiler
<ShalokShalom> what is the thing reason is based on?
<steenuil> err, by rewriters
<steenuil> I think they just wrote a new parser for it
<ShalokShalom> there is a similar system, called in a similar manner?
bartholin has joined #ocaml
<ShalokShalom> no, i think there is a plugin system to write alternative syntaxes on OCaml?
<gtrak> hmm, we recently switched a big monorepo over to jbuilder (possibly related?), and I'm noticing merlin is no longer respecting (merlin-locate-preference 'ml), has anyone else experienced this and know of a workaround?
<ShalokShalom> i will ask somebody, who has hinted me about this
<Leonidas> ShalokShalom: you mean camlp4 maybe?
<ShalokShalom> maybe?
<steenuil> Camlp4, but it's not used much anymore
<ShalokShalom> is there a recent replacement?
<Leonidas> yes, a mix of ppx and "don't do that" ;)
<ShalokShalom> hnn
<ShalokShalom> sad
<Leonidas> After working with camlp4 I am not really sad to see it go
<steenuil> well you can still use camlp4 if you really want
<Leonidas> Though the author of TWT was somewhat doubtful it can be implemented on top of camlp4
<Leonidas> I think what Reason does is to have their own frontend that parses from source to an AST and feeds that into the rest of the compiler
<Leonidas> Which you can certainly do, but given that OCaml has rather a lot of features it is rather a lot of work to replicate
<pmetzger> I find ppx easier to work on than camlp4 as the ppx documentation is terrible but the camlp4 docs were even more beginner unfriendly. I have successfully faked my way through small ppx changes, and I haven't managed that with camlp4.
<pmetzger> It would be nice if the ppx docs were good enough that I could understand the whole picture. If I understood it I would write such docs myself. :)
<Leonidas> PPX is sort of easy since it is just transformations of the tree type and that one is easy to understand if you have a grasp of how OCaml syntax maps to that tree
<Leonidas> (also you can cheat and use -dparsetree to see how OCaml would represent a bit of code as parsetree)
<Leonidas> (also you can use ppx_metaquot to just write the OCaml Code you want to generate)
<Leonidas> I am not aware of a language that allows changing its syntax via macros to the extent ShalokShalom would like to :-)
hdon has joined #ocaml
<octachron> pmetzger, honestly, writing ppx documentation is quite low on my documentation stack. Removing the language extension part of the manual is much higher for instance.
shinnya has quit [Ping timeout: 260 seconds]
<Leonidas> That would be super cool too :-)
<Leonidas> my main issue with ppx was always the tooling around it, with ppx_driver, omp, build systems not supporting some things, not so much the extension mechanism itself.
<steenuil> Leonidas: Racket maybe?
<pmetzger> The issue isn't the basics of the PPX mechanism which I understand. The issue is that there's all these tools (including for handling the differences between the trees in different OCaml versions) that I don't really understand.
<pmetzger> I get the basic "get AST, transform AST, profit" business. :)
<Leonidas> steenuil: I was just about to protest that syntax-case does not give you the freedom to make a sexp-less version of Scheme, but Racket has a way more powerful mechanism so you might be right.
<gtrak> there's a racket algol
hdon has quit [Ping timeout: 240 seconds]
<Leonidas> pmetzger: That's why it is nice to hook into ppx_deriving/ppx_type_conv if possible :)
<pmetzger> octachron: If it were me, shallow as it might seem, my highest priority wouldn't be content but rather fixing the CSS to look cooler.
FreeBirdLjj has quit [Remote host closed the connection]
<steenuil> Racket lets you write macros that parse any string and output Racket modules
<steenuil> I don't know that much about how it works but it's a cool idea
<Leonidas> So it is more like a compiler framework.
<pmetzger> Racket is a lisp, and lisps are homoiconic which makes many things easier.
<steenuil> yeah, on the front page it says "Racket is a general-purpose programming language as well as the world’s first ecosystem for developing and deploying new languages."
<pmetzger> octachron: Seriously! It gets tiring reading the really long lines etc. at times. But come to think of it, if it were me, I'd be recruiting clever people who are not good enough at saying no to help fix specific small things. :)
<octachron> pmetzger, well, I don't think I can do much better than http://www.polychoron.fr/ocaml-nonmanual/polymorphism.html in term of design
<octachron> and even that would require hacking hacha
<pmetzger> That's quite nice! Is that a potential redesign candidate?
zlsyx has joined #ocaml
FreeBirdLjj has joined #ocaml
<octachron> potential is the key word here
<pmetzger> My only real initial comment is I'd make the default font a couple of points larger still, but it isn't bad at all.
aciniglio has quit [Ping timeout: 264 seconds]
<pmetzger> and some of these shadow boxes are a bit too big, but I like the principle. It might be enough to do contrasting backgrounds.
<pmetzger> octachron: This is a nice thing. Is the toolchain that produces it very different?
<steenuil> I actually like how the manual currently looks. I'm just offended by how the drop shadows on the arrows don't follow the rotation.
<pmetzger> There's a lot I would tune on this newer version but it's pretty good.
<pmetzger> steenuil: do you have normal vision? I don't. It makes certain kinds of manual formatting choices worse for me than others. Long lines are pretty much bad for everyone but they're even worse for me.
<pmetzger> It turns out that if you fix things so that slightly visually impaired people can read things well, normal people have a significant boost in reading comprehension and speed too, so it's sort of a win/win.
<pmetzger> The easier it is to read something, the more your brain is focused on the content and not the act of parsing the letters.
<steenuil> oh, if you want to reduce the width of the lines I'm all for that
<steenuil> I didn't think about that
<octachron> pmetzger, no the toolchain is essentially the same with a patch on the component producing the individual html pages
<pmetzger> It's a significant concern. Also font choices, more delineation of where section boundaries or examples are vs. other things, etc. Things that add "texture" make it easier to find your location on the page. If it's a very even gray and your eye saccades it's harder to find the exact same spot.
<pmetzger> octachron: do you need a victim to work on making this production worthy? I might be willing to assist.
<pmetzger> Especially if it's just a question of a patch on the existing toolchain plus tweaking the CSS and proofreading the manual. I need to re-read the whole manual anyway at some point soon, I could kill two birds with one stone.
<octachron> Not right now, but once I have something more stable I will probably open a subject on OCaml's discourse
<steenuil> the page width could easily be fixed with a body { max-width: 800px; } in the CSS file
<pmetzger> Please do. And bear in mind that other people will be willing to pitch in, you don't have to do it all alone.
<pmetzger> steenuil: and you can set stuff up so the left index column disappears automatically on narrow displays or mobile.
<steenuil> yeah, exactly
<pmetzger> steenuil: there's a lot of nice things you can make happen.
<pmetzger> The world has gotten a lot better on web layout. We can also now pick good webfonts so we don't have to worry about what the user's browser has etc.
<steenuil> Racket's manual is really worth looking at, some guy who's really good with typography helped the Racket community with making it look good https://docs.racket-lang.org/
gareppa has joined #ocaml
<pmetzger> This was discussed on discuss.ocaml.org, but yah, the racket manual looks like the best example out there in terms of pretty typography. We could do worse than to steal every decision they made.
FreeBirdLjj has quit [Read error: Connection timed out]
FreeBirdLjj has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 248 seconds]
jao has quit [Ping timeout: 256 seconds]
al-damiri has joined #ocaml
FreeBirdLjj has joined #ocaml
jnavila has joined #ocaml
<Leonidas> pmetzger: Racket people have been doing a lot of work on documentation, how do you like that one?
<Leonidas> ohh, I have skipped that part of the discussion, silly me
<Leonidas> Interesting how people, when considering documentation they like immediately say Racket :-)
ansiwen[q] has joined #ocaml
<Leonidas> as far as I am aware this book is also generated by the racket documentation tool: https://practicaltypography.com/
FreeBirdLjj has quit [Ping timeout: 264 seconds]
<steenuil> it's the same person who improved the looks of the Racket documentation, Leonidas
<Leonidas> that said I find the font shapes in the book a bit cramped
isd has joined #ocaml
ratsch has joined #ocaml
hdon has joined #ocaml
gareppa has quit [Quit: Leaving]
jnavila has quit [Ping timeout: 240 seconds]
mk9 has joined #ocaml
mk9 has quit [Client Quit]
mk9 has joined #ocaml
mk9 has quit [Client Quit]
mk9 has joined #ocaml
mk9 has quit [Client Quit]
<steenuil> by the way, where's the repo for http://caml.inria.fr/pub/docs/manual-ocaml/index.html?
<pmetzger> Leonidas: I don't like his fonts that deeply, but he's got good sense on layout.
<pmetzger> steenuil: Isn't that generated?
<octachron> steenuil, https://github.com/ocaml/ocaml
<steenuil> oh, right, thanks
<pmetzger> Anyway, we could do much worse than stealing the CSS from Racket, and I'd even suggest we do so. :)
<octachron> (the structure of the manual is explained a bit in manual/README.md)
jfntn has joined #ocaml
<pmetzger> octachron: I presume there's nothing I can do to help speed up the work towards changing the manual layout, css, etc., but if anything comes up, please don't hesitate to poke me.
jfntn has quit [Client Quit]
<pmetzger> As an aside, I've heard a few times about a docs.ocaml.org project but I don't have a sense of what it is supposed to do (other than move the documentation to that URL).
baroud has joined #ocaml
silver has joined #ocaml
cbot has joined #ocaml
kakadu has quit [Quit: Konversation terminated!]
hdon has quit [Changing host]
hdon has joined #ocaml
Anarchos has joined #ocaml
<Leonidas> octachron: I really like your introduction to weak polymorphism, this is so far the best explanation I have read.
jnavila has joined #ocaml
tarptaeya_ has joined #ocaml
dtornabene has joined #ocaml
tarptaeya has quit [Ping timeout: 264 seconds]
shinnya has joined #ocaml
<pmetzger> Yah, apart from the formatting, that should really go in the manual. :)
tarptaeya has joined #ocaml
tarptaeya_ has quit [Ping timeout: 240 seconds]
ratsch has quit [Remote host closed the connection]
ratsch has joined #ocaml
Gurkenglas has quit [Ping timeout: 260 seconds]
muelleme has joined #ocaml
muelleme has quit [Ping timeout: 248 seconds]
<octachron> pmetzger, this is already in the manual since 4.06; I should update the disclaimer at the top
<octachron> Leonidas, thanks!
<pmetzger> I should re-read the manual!
<pmetzger> (I read it around 4.05 I think.)
Haudegen has joined #ocaml
pierpal has joined #ocaml
kakadu has joined #ocaml
jack5638 has quit [Ping timeout: 256 seconds]
Anarchos has quit [Quit: Vision[0.10.2]: i've been blurred!]
jack5638 has joined #ocaml
tarptaeya has quit [Read error: Connection reset by peer]
tarptaeya has joined #ocaml
baroud has quit [Quit: ERC (IRC client for Emacs 25.3.1)]
baroud has joined #ocaml
tarptaeya has quit [Ping timeout: 240 seconds]
tarptaeya has joined #ocaml
zmt01 has quit [Quit: Leaving]
zmt00 has joined #ocaml
<pmetzger> Whoever zapashcanon is, he or she is doing a great job going through the bugs for ocaml.org!
<ShalokShalom> :)
pierpal has quit [Ping timeout: 248 seconds]
isd has quit [Quit: Leaving.]
kakadu_ has joined #ocaml
baroud has quit [Ping timeout: 264 seconds]
gareppa has joined #ocaml
kakadu has quit [Ping timeout: 248 seconds]
gareppa has quit [Quit: Leaving]
cbot has quit [Ping timeout: 264 seconds]
pierpa has joined #ocaml
<steenuil> do you reckon a PR with just a few visual improvements to the html version of the manual would be ok?
<octachron> I would review it
<octachron> so, yes, probably?
<steenuil> alright
zlsyx has quit [Read error: Connection reset by peer]
zlsyx has joined #ocaml
<pmetzger> steenuil: I will cheer when you do the PR. :)
tarptaeya has quit [Quit: Konversation terminated!]
Bronsa` has joined #ocaml
kakadu_ has quit [Read error: Connection reset by peer]
kakadu_ has joined #ocaml
Anarchos has joined #ocaml
<Anarchos> how to specify a link flag, say "-lsocket" to a opam install ? I tried « LDFLAGS=-lsocket opam install merlin» but it ends with « cannot find -lsocket»
<pmetzger> Anarchos: you are developing a new opam file?
<pmetzger> Or you are trying to use opam for something and it is failing?
<Anarchos> pmetzger no, i try to install merlin on an exotic architecture with requires it
<pmetzger> You probably need to do this a the layer of the build system for merlin and not at the layer of opam.
<pmetzger> What's the exotic architecture?
jnavila has quit [Remote host closed the connection]
<Anarchos> pmetzger HaikuOS, which requires -lsocket to find « connect »
jnavila has joined #ocaml
spew has quit []
argent_smith1 has quit [Quit: Leaving.]
unyu has quit [Quit: The end of the world is nigh. Bring as much popcorn as you can!]
unyu has joined #ocaml
<pmetzger> it looks like it is built with make.
<pmetzger> Maybe you need to fix the Merlin makefiles, and possibly submit a pull request upstream after.
<pmetzger> opam doesn't build anything itself, it asks the underlying build system to build things.
<Anarchos> pmetzger how to modify the merlin build system after sources are downloaded ? Is there a patch mechanism available in opam ?
<pmetzger> There's a patch mechanism: https://opam.ocaml.org/doc/Manual.html — but I suspect that what you really want to do is submit a PR to the Merlin team. Make it work locally with the minimum changes you have to, submit a PR to the Merlin team.
<pmetzger> that said, you _can_ conditionally add patches (see the opam manual).
_andre has quit [Quit: leaving]
silenc3r has quit [Quit: Leaving]
isd has joined #ocaml
sagax has quit [Ping timeout: 276 seconds]
sagax has joined #ocaml
zlsyx has quit [Quit: Leaving...]
dedgrant_ has joined #ocaml
nullifidian has quit [Remote host closed the connection]
jao has joined #ocaml
gtrak has quit [Ping timeout: 268 seconds]
orbifx has joined #ocaml
dedgrant_ has quit [Ping timeout: 240 seconds]
nullifidian has joined #ocaml
sh0t has quit [Remote host closed the connection]
caltelt has joined #ocaml
hdon has quit [Ping timeout: 240 seconds]
hdon has joined #ocaml
Bronsa` has quit [Ping timeout: 260 seconds]
jonh has left #ocaml ["WeeChat 1.4"]
dtornabene has quit [Remote host closed the connection]
cbot has joined #ocaml
kakadu_ has quit [Remote host closed the connection]
isd has quit [Ping timeout: 240 seconds]
<pmetzger> okay, does anyone around know much about oasis? I'm trying to fix the build for something in macports and I'm finding oasis impenetrable.
<orbifx> pmetzger: say more, but I only have a minute
sagax has quit [Ping timeout: 240 seconds]
<orbifx> otherwise best ask on mailing list or forum
<pmetzger> so basically I need to force a "destdir" that is installed into that isn't the same as the set of paths that the package will ultimately reside in
<pmetzger> There's some mention of variables in the oasis manual but it's kind of inscrutable.
<pmetzger> reading setup.ml is also inscrutable. :)
<pmetzger> the way macports works is it first installs into a for-the-purpose directory and then moves everything that got installed into the "real" location. It does this partially so it can record everything the package created etc.
<pmetzger> the previous macports ocaml maintainer, long gone, did a bunch of stuff to make this work but this one port I'm trying to fix is broken, apparently because it is trying to install into the real final location, and I'm having trouble figuring out how oasis does destdir stuff.
<orbifx> sounds like pacman (for Arch)
<orbifx> can you change to dune (jbuilder)?
<orbifx> I used to use oasis but gave it up in favour of dune
nullifidian has quit [Remote host closed the connection]
<pmetzger> I don't control the package that uses oasis. I'm only packaging it, the upstream used oasis and I can't control them.
<pmetzger> I agree this would all be simpler with Dune but sadly not something I can do.
<pmetzger> if setup.ml had some comments, but it doesn't. :)
<pmetzger> I can't even figure out how oasis itself was run.
<pmetzger> setup.data _seems_ to have the right destdir...
<orbifx> I gotta go now, best ask in the list or email the author
<orbifx> laters
orbifx has quit [Quit: WeeChat 2.1]
isd has joined #ocaml
<pmetzger> kk
<kit_ty_kate> pmetzger: isn't ./configure --prefix what you are looking for ?
<pmetzger> no, that sets the actual final install location I think.
<malina> no it configures what your final root will be
<pmetzger> but setup.data seems to have the right destdir...
<malina> fr the program to figure out..
<pmetzger> so I'm really puzzled about what is going on.
<malina> destdir is where you want it to go, (like yoru prefix) but it doesn't have to be
<malina> oops sorry, I thought this was another channel though.. I 'm out as I do not know the specifics in any case of ocaml files.
silver has quit [Read error: Connection reset by peer]
<steenuil> I submitted the PR to improve the manual's stylesheet, and it just occurred to me that what I added was basically bettermotherfuckingwebsite.com
<pmetzger> steenuil: explain?
Haudegen has quit [Remote host closed the connection]
gtrak has joined #ocaml
<steenuil> well, I just made the page narrower and increased the line height, and that website is about making a very basic website look good by adding a few lines of CSS