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
reynir has joined #ocaml
dlebrecht[m] has quit [Ping timeout: 240 seconds]
copy` has quit [Ping timeout: 256 seconds]
aspiwack[m] has quit [Ping timeout: 256 seconds]
aantron has quit [Ping timeout: 255 seconds]
M-ErkkiSeppl has quit [Ping timeout: 256 seconds]
srenatus has quit [Ping timeout: 256 seconds]
isaachodes[m] has quit [Ping timeout: 256 seconds]
Haudegen[m] has quit [Ping timeout: 256 seconds]
remix2000[m] has quit [Ping timeout: 246 seconds]
multiocracy[m] has quit [Ping timeout: 256 seconds]
M-martinklepsch has quit [Ping timeout: 240 seconds]
drsmkl[m] has quit [Ping timeout: 265 seconds]
regnat[m] has quit [Ping timeout: 240 seconds]
ansiwen has quit [Ping timeout: 240 seconds]
smondet[m] has quit [Ping timeout: 240 seconds]
peddie[m] has quit [Ping timeout: 240 seconds]
talyian[m] has quit [Ping timeout: 240 seconds]
equalunique[m] has quit [Ping timeout: 240 seconds]
spectrumgomas[m] has quit [Ping timeout: 256 seconds]
Bluddy[m] has quit [Ping timeout: 256 seconds]
yetanotherion[m] has quit [Ping timeout: 256 seconds]
hdurer[m] has quit [Ping timeout: 256 seconds]
M-jimt has quit [Ping timeout: 260 seconds]
caseypme[m] has quit [Ping timeout: 260 seconds]
orbifx[m] has quit [Ping timeout: 255 seconds]
octachron has quit [Ping timeout: 260 seconds]
octachron has joined #ocaml
<etc_> companion_cube: thanks! do you know why it's designed that way? Documentation maybe?
bbc has quit [Ping timeout: 256 seconds]
<companion_cube> type inference, too
infinity0 has quit [Ping timeout: 276 seconds]
jimmyrcom has quit [Ping timeout: 264 seconds]
bbc has joined #ocaml
rgr[m] has quit [Ping timeout: 276 seconds]
cbot_ has joined #ocaml
cbot has quit [Ping timeout: 264 seconds]
cbot_ has quit [Max SendQ exceeded]
cbot has joined #ocaml
silver_ has joined #ocaml
BitPuffin has quit [Remote host closed the connection]
cbot has quit [Ping timeout: 256 seconds]
silver has quit [Ping timeout: 264 seconds]
cbot has joined #ocaml
etc_ has quit [Quit: leaving]
ziyourenxiang has quit [Ping timeout: 240 seconds]
mfp has quit [Ping timeout: 264 seconds]
cbot has quit [Ping timeout: 246 seconds]
FreeBirdLjj has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 256 seconds]
jao has quit [Ping timeout: 260 seconds]
silver_ has quit [Read error: Connection reset by peer]
jimmyrcom has joined #ocaml
isd has quit [Quit: Leaving.]
demonimin has quit [Ping timeout: 240 seconds]
demonimin has joined #ocaml
demonimin has joined #ocaml
malina has joined #ocaml
mxms has joined #ocaml
<mxms> I want to check if something is none without using a match clause. I don't have the Option module apparently, and according to a stackoverflow post, it's not part of std lib
jimmyrcom_ has quit [Ping timeout: 276 seconds]
jimmyrcom has quit [Ping timeout: 276 seconds]
<mxms> i just want if v is None then a else b
jimmyrcom has joined #ocaml
jimmyrcom_ has joined #ocaml
<lyxia> How come you can't pattern match on it
<mxms> i have to pattern match twice, and ocaml is like, some unused clauses since it seems there's no way to delimit nested match clauses
<companion_cube> if v=None then a else b, but it's not particularly recommended
<mxms> there is good whitespace, but i dont know if ocaml cares about whitespace :s
<mxms> companion_cube: will try ,ty
moei has quit [Quit: Leaving...]
jimmyrcom has quit [Ping timeout: 246 seconds]
<Enjolras> nested match :use begin end or ( )
<companion_cube> use begin end*
jimmyrcom has joined #ocaml
zv has quit [Ping timeout: 264 seconds]
zv has joined #ocaml
jimmyrcom has quit [Ping timeout: 276 seconds]
jon has joined #ocaml
jon is now known as Guest17193
unyu has quit [Ping timeout: 256 seconds]
cbot has joined #ocaml
pierpa has quit [Quit: Page closed]
oh_lawd has quit [Ping timeout: 256 seconds]
Duns_Scrotus has quit [Ping timeout: 256 seconds]
mxms has quit [Ping timeout: 256 seconds]
mxms0 has joined #ocaml
jimmyrcom_ has quit [Ping timeout: 256 seconds]
Duns_Scrotus has joined #ocaml
unyu has joined #ocaml
unyu has quit [Changing host]
unyu has joined #ocaml
<ShalokShalom> hi
<ShalokShalom> is it completly fine to use type annotations like so?
ShalokShalom has joined #ocaml
<ShalokShalom> since I think its very appealing
<lyxia> yes
mbuf has joined #ocaml
isd has joined #ocaml
govg has joined #ocaml
lucasem has left #ocaml [#ocaml]
pierpal has quit [Read error: Connection reset by peer]
pierpal has joined #ocaml
govg has quit [Remote host closed the connection]
govg has joined #ocaml
pierpal has quit [Read error: Connection reset by peer]
pierpal has joined #ocaml
pierpal has quit [Read error: Connection reset by peer]
pierpal has joined #ocaml
moei has joined #ocaml
pierpal has quit [Read error: Connection reset by peer]
govg is now known as Guest41134
pierpal has joined #ocaml
M-martinklepsch has joined #ocaml
copy` has joined #ocaml
aantron has joined #ocaml
Haudegen[m] has joined #ocaml
spectrumgomas[m] has joined #ocaml
pierpal has quit [Quit: Poof]
pierpal has joined #ocaml
pierpal has quit [Read error: Connection reset by peer]
Bluddy[m] has joined #ocaml
isd has quit [Ping timeout: 240 seconds]
dlebrecht[m] has joined #ocaml
ansiwen has joined #ocaml
multiocracy[m] has joined #ocaml
remix2000[m] has joined #ocaml
orbifx[m] has joined #ocaml
talyian[m] has joined #ocaml
demonimin has quit [Ping timeout: 240 seconds]
demonimin has joined #ocaml
drsmkl[m] has joined #ocaml
srenatus has joined #ocaml
regnat[m] has joined #ocaml
isd has joined #ocaml
aspiwack[m] has joined #ocaml
M-jimt has joined #ocaml
M-ErkkiSeppl has joined #ocaml
rgr[m] has joined #ocaml
smondet[m] has joined #ocaml
equalunique[m] has joined #ocaml
isaachodes[m] has joined #ocaml
hdurer[m] has joined #ocaml
peddie[m] has joined #ocaml
yetanotherion[m] has joined #ocaml
caseypme[m] has joined #ocaml
zolk3ri has joined #ocaml
demonimin has quit [Ping timeout: 256 seconds]
demonimin has joined #ocaml
demonimin has joined #ocaml
demonimin has quit [Changing host]
piazzt has joined #ocaml
cbot has quit [Quit: Leaving]
zpe has quit [Remote host closed the connection]
zpe has joined #ocaml
zpe has quit [Remote host closed the connection]
ygrek has joined #ocaml
baroud has joined #ocaml
isd has quit [Remote host closed the connection]
demonimin has quit [Ping timeout: 240 seconds]
muelleme has quit [Ping timeout: 265 seconds]
AltGr has joined #ocaml
cuicui has joined #ocaml
mxms0 has left #ocaml ["WeeChat 2.1-dev"]
spew has joined #ocaml
nullifidian has quit [Ping timeout: 240 seconds]
demonimin has joined #ocaml
nullifidian has joined #ocaml
Haudegen has joined #ocaml
zpe has joined #ocaml
steenuil has joined #ocaml
Guest41134 has quit [Quit: leaving]
govg has joined #ocaml
muelleme has joined #ocaml
cuicui has quit [Read error: Connection reset by peer]
cuicui has joined #ocaml
argent_smith has joined #ocaml
tilpner has quit [Quit: :wq]
tilpner has joined #ocaml
jao has joined #ocaml
oh_lawd has joined #ocaml
mfp has joined #ocaml
<keep_learning> Hi Everyone, I recently switched to OCaml version 4.06.0 and trying to install latest version of Coq https://gist.github.com/mukeshtiwari/f9c33e1f564f6c04022abec0ffc594c3
<keep_learning> Could some one please tell me how to install Coq using opam (opam install coq is failing with error)
<keep_learning> Please leave your answer in comment. In the meantime, I am trying to update opam to install coq-8.7.2.
TarVanimelde has joined #ocaml
<bartholin> opam install coq
<bartholin> but first, you should install opam, and initialize opam with opam init
<bartholin> and modify your .bashrc
TarVanimelde has quit [Quit: TarVanimelde]
dario9 has joined #ocaml
ygrek has quit [Ping timeout: 256 seconds]
ziyourenxiang has joined #ocaml
BitPuffin has joined #ocaml
baroud has quit [Ping timeout: 265 seconds]
<dario9> Hello everyone! I have a Dune question: Is there a standard/shortcut way of specifying in 'test/jbuild' that the test executable 'test/test_foo' depends on the module 'src/foo.ml', or do I have to write a custom rule? Note that 'src/foo.ml' is not part of a library and is therefore not installed.
tilpner has quit [Quit: :wq]
tilpner has joined #ocaml
kakadu has joined #ocaml
gareppa has joined #ocaml
zpe_ has joined #ocaml
zpe has quit [Read error: Connection reset by peer]
infinity0 has joined #ocaml
pierpal has joined #ocaml
Haudegen has quit [Read error: Connection reset by peer]
nullifidian_ has joined #ocaml
ShalokShalom2 has joined #ocaml
nullifidian has quit [Ping timeout: 260 seconds]
ShalokShalom has quit [Ping timeout: 256 seconds]
zpe_ has quit [Remote host closed the connection]
zpe has joined #ocaml
<rgr[m]> dario9: is foo.ml part of some library? If that's the case, then you could simply depend on that library in your test executable
malina has quit [Remote host closed the connection]
jbrown has joined #ocaml
malina has joined #ocaml
baroud has joined #ocaml
sh0t has joined #ocaml
Haudegen has joined #ocaml
ousado has quit [Ping timeout: 276 seconds]
ousado has joined #ocaml
<dario9> rgr[m]: No, foo.ml is not part of a library. It's simply a module used by the executable in 'src'.
mbuf has quit [Quit: Leaving]
jao has quit [Ping timeout: 240 seconds]
sh0t has quit [Remote host closed the connection]
mengu has joined #ocaml
gtrak has joined #ocaml
sevensor has joined #ocaml
xutux has joined #ocaml
shinnya has joined #ocaml
gareppa has quit [Quit: Leaving]
gareppa has joined #ocaml
_andre has joined #ocaml
sh0t has joined #ocaml
ShalokShalom2 has quit [Read error: Connection reset by peer]
opios has quit [Ping timeout: 264 seconds]
oh_lawd has quit [Ping timeout: 276 seconds]
l1x has quit [Ping timeout: 276 seconds]
oh_lawd has joined #ocaml
pierpal has quit [Ping timeout: 276 seconds]
gareppa has quit [Quit: Leaving]
dario9 has quit [Quit: Konversation terminated!]
FreeBirdLjj has joined #ocaml
kark has quit [Ping timeout: 268 seconds]
huglovefan has joined #ocaml
mengu has quit [Ping timeout: 264 seconds]
mengu has joined #ocaml
al-damiri has joined #ocaml
zpe has quit [Remote host closed the connection]
moolc has joined #ocaml
mengu has quit [Ping timeout: 240 seconds]
mengu has joined #ocaml
baroud has quit [Remote host closed the connection]
pierpal has joined #ocaml
Haudegen has quit [Remote host closed the connection]
<companion_cube> can anyone confirm that Array{,Labels}.FloatArray is new?
<companion_cube> in 4.07
<theblatt1> man Array | grep -e FloatArray -> nothing
<theblatt1> likewise ArrayLabels
<companion_cube> it's Floatarray actually, grr
<companion_cube> seems like it's on 4.06
<octachron> companion_cube, yes floatarray was introduced in 4.06
<companion_cube> containers 2.1 breaks on 4.07 because somehow `Array.Floatarray` and `ArrayLabels.Floatarray` become incompatible, or so I think
<companion_cube> I should try
<rks`> haha
<rks`> of course they are
<rks`> someone really need to write a check ensuring that Foo and FooLabels have the same interface…
<rks`> (needs*)
m4lvin has quit [Quit: No Ping reply in 180 seconds.]
<Drup> I'm pretty sure we added one ...
<Drup> I remember reviewing the PR
m4lvin has joined #ocaml
cuicui has quit [Quit: leaving]
shinnya has quit [Ping timeout: 260 seconds]
<companion_cube> I get this in containers: https://paste.isomorphis.me/x92 :/
AltGr has left #ocaml [#ocaml]
<companion_cube> hmmm looks like Drup's trick of `module type of struct include Foo end` is not always good‽
pierpal has quit [Ping timeout: 260 seconds]
<xutux> ?
<Drup> companion_cube: [reference needed]
cbot has joined #ocaml
<companion_cube> well see last commit in containers :3
<companion_cube> with 4.07, `include module type of struct inclde CCArray end` fails for CCArrayLabels
<companion_cube> but `include module type of CCArray` works
<companion_cube> (haven't run the tests tho)
<Drup> the semantics of module type of was changed recently tho
<Drup> companion_cube: also, the fact that it broke might be a sign that it's actually broken :>
FreeBirdLjj has quit [Remote host closed the connection]
<companion_cube> :/
<companion_cube> which one?
<Drup> the stdlib.
<Drup> have you checked that the types are properly compatible ?
<companion_cube> well i'm recompiling OCaml right now
<companion_cube> but I suppose people ran tests, right?
<companion_cube> array.mli and arrayLabels.mli seem compatible…
<octachron> and floatarray is a predefined type
<moolc> 4.07 is tagged but not yet release, right?
<moolc> released
<Drup> moolc: only in beta for now
<moolc> Drup: right
zpe has joined #ocaml
jimmyrcom has joined #ocaml
FreeBirdLjj has joined #ocaml
jao has joined #ocaml
Haudegen has joined #ocaml
zpe has quit [Remote host closed the connection]
<kit_ty_kate> companion_cube: yeah I think it might be a problem at the typechecker level
<kit_ty_kate> module A : module type of ArrayLabels = Array;; is doing fine
zpe has joined #ocaml
<kit_ty_kate> (with -nolabels ofc)
gareppa has joined #ocaml
<companion_cube> yes, it's in the test suite :/
gareppa has quit [Remote host closed the connection]
<moolc> Drup: http://caml.inria.fr/ lists 4.06.0 as the latest released version.. i have 4.06.1 here..
sevensor has quit [Quit: leaving]
<companion_cube> if I add `module A : module type of struct include Array end = ArrayLabels` to tests/lib-stdlabels/test_stdlabels.ml it fails
<companion_cube> so clearly `module type of A` and `module type of struct include A end` are not the same
<companion_cube> and the former is more accurate than the latter here, it seems
jnavila has joined #ocaml
muelleme has quit [Ping timeout: 268 seconds]
letoh has quit [Ping timeout: 268 seconds]
jnavila has quit [Ping timeout: 240 seconds]
pmetzger has joined #ocaml
hdon has joined #ocaml
<hdon> hi all :) i'm new to ocaml. i'm reading some code, and it looks like the C Preprocessor or something similar makes a pass on this code. does OCaml use the C Preprocessor? If not, what are these things like #define and #if?
<pmetzger> OCaml does not use the C preprocessor.
<pmetzger> Where are you seeing things like #define?
<hdon> is it possible that this is an unusal project that actually does use C preprocessor?
malina has quit [Quit: Throwing apples of Montserrat]
<pmetzger> Ah. That's an unusual usage. That code is using: https://github.com/mjambon/cppo
* hdon clicks
<pmetzger> Most code doesn't do that. the .cppo. in the name indicates that it's using the cppo package.
<hdon> ahhh thanks :)
<pmetzger> I didn't realize anyone actually used that thing but _me_. :)
<hdon> lol
<hdon> i'm looking for a sort of "hello world" for "deriving"
ziyourenxiang has quit [Ping timeout: 240 seconds]
<hdon> what does "ppx" mean?
<Drup> hdon: derivers are not simple pieces of OCaml code. Are you trying to write a new one ?
Haudegen has quit [Remote host closed the connection]
<Drup> If you are a beginner, that's going to be a bit challenging
<hdon> Drup: software transformation is a bit of fetish of mine. i'm not afraid of manipulating ASTs :)
<hdon> or other intermediate representations
<Drup> Right. Then "ppx"s in OCaml are AST transformers that are applied to OCaml's syntax tree before typechecking
<hdon> mmm ok. what does it stand for?
<Drup> PreProcessor eXtensions, iirc
<Drup> something of that taste
<hdon> ah :) thanks
<hdon> so is there something like a hello world for using ppx?
* hdon clicks
* moolc is tempted to paste goatse
* hdon clicks
* hdon 's face melts
<moolc> ;)
<Drup> I though you were not afraid of AST transformers :>
<hdon> that's goaste not goatse
<hdon> what is a ppx driver?
<Drup> it's a thing that collects all the functions from ast -> ast and applies them on its own, while checking they don't screw each others
<hdon> the functions from ast -> ast? do you mean drivers collect the functions that rewrite the ast?
<pmetzger> BTW, I really wish, really wish, there was better ppx documentation. I would write it, but first I would need to get past needing it myself. :(
<hdon> :3
<Drup> pmetzger: which part exactly. The recent release of ppxlib should help a bit on the tooling side, but you still fundamentally need to understand the OCaml AST.
<Drup> and that one is .. big
<Drup> (and well documented, but still, it's big)
<moolc> pmetzger: whitequarks stuff doesn't cut it?
<pmetzger> Understanding the AST is a bit difficult, but there seem like there are a dozen little helper libraries and I have no clue how they fit together.
<pmetzger> The whitequark blog posts were useful but not useful enough. :(
<Drup> pmetzger: yeah, so starting today, you can just forget everything and use ppxlib, mostly
<pmetzger> ppx is the one part of ocaml I _really_ don't understand, and I understand what ASTs are and how they work in general. It's just that there are so many pieces here one is expected to use.
<pmetzger> Yah, I saw the announcement on discourse earlier.
<pmetzger> Unfortunately, the docs on the Jane Street stuff are all the usual thing. You go to https://ocaml-ppx.github.io/ppxlib/index.html and it's not really documentation.
<Drup> I don't disagree :<
<pmetzger> In particular, I want to make a couple of things that use ppx (like sedlex) better but every time I touch them I end up asking people to help me figure out one thing after another. I feel crippled.
<hdon> pmetzger: RE: "a dozen little helper libraries" -- at least one library i know of is responsible for normalizing the AST so that changes in compiler insulate you from changes to the AST generated and used by the compiler
<Drup> that's "ocaml-migrate-parsetree"
<hdon> pmetzger: i suspect that other helper libraries are just responsible for simplifying specific use cases
<hdon> but i am just guessing
<pmetzger> documentation would tell us so we don't have to guess anything. :(
<hdon> heh, true
<hdon> anyone have any book recommends for ocaml?
<pmetzger> Real World OCaml.
<pmetzger> But you might want to start with the development release: https://dev.realworldocaml.org/
<Drup> pmetzger: as a casual ppx author, you mostly have to care about ocaml-migrate-parsetree, aka omp and metaquot, which allows you to write parsetree using the ocaml syntax
<pmetzger> Drup: if you brain dump this into an email message to me, I'll start a project on github to stone soup real documentation starting with what you write. Really.
<Drup> can I brain dump on irc instead ? :D
<pmetzger> You could, but it will be messier. :(
Guest31212 has joined #ocaml
<pmetzger> ocaml-migrate-parsetree is part of the jane street library package or not?
moolc has left #ocaml ["ERC (IRC client for Emacs 27.0.50)"]
<Drup> pmetzger: no
<Drup> it's a dependency
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
<pmetzger> is this the stuff I see in ppx_sedlex.ml like "%expr" and the like?
<pmetzger> I did a bunch of blind hacking on that file and got what I wanted fairly easily but it wasn't clean and I had no real sense of what pieces I was invoking.
<pmetzger> It reminded me a bit of lisp macros but I didn't know where the stuff comes from etc.
letoh has joined #ocaml
<pmetzger> it was clear I was manipulating a syntax extension to generate syntax extensions but I grokked little more.
FreeBirdLjj has quit [Ping timeout: 265 seconds]
<pmetzger> Drup: That reminds me, you asked me to do a pull request of my stuff so you could help me look at it. Or am I misremembering?
<Drup> ah, yes, probably
muelleme has joined #ocaml
<pmetzger> I can do that nowish.
jnavila has joined #ocaml
<pmetzger> damn. git rebase conflicts. need to remember now how to deal with those.
nullifidian__ has joined #ocaml
huglovefan has quit [Quit: huglovefan]
nullifidian_ has quit [Ping timeout: 256 seconds]
<pmetzger> ah, merge hell. How I didn't miss you.
mengu has quit [Remote host closed the connection]
mengu has joined #ocaml
jnavila has quit [Ping timeout: 256 seconds]
pierpal has joined #ocaml
mengu has quit [Ping timeout: 240 seconds]
jimmyrcom_ has joined #ocaml
pierpal has quit [Ping timeout: 256 seconds]
kakadu has quit [Quit: Konversation terminated!]
moei has quit [Quit: Leaving...]
pierpa has joined #ocaml
mengu has joined #ocaml
tarptaeya has joined #ocaml
spew has quit [Quit: Connection closed for inactivity]
mengu has quit [Ping timeout: 268 seconds]
Guest31212 is now known as Haudegen
jnavila has joined #ocaml
<M-ErkkiSeppl> cool, I thought ocaml effects were single-shot continuations but then noticed this: Obj.clone_continuation
<M-ErkkiSeppl> I guess implementing ConcurrentML primitives with ocaml-multicore would be a nice project
M-ErkkiSeppl is now known as flux[m]
<Bluddy[m]> companion_cube: any progress? is there really a typechecker bug?
<pmetzger> Drup: I did a PR to afrisch/sedlex -- note that it needs cleanup in the ppx bit, which I really did half-blind since I Don't Know What I Am Doing.
<Bluddy[m]> but what about this comment:
<Bluddy[m]> > so clearly `module type of A` and `module type of struct include A end` are not the same
<Bluddy[m]> Is this intended behavior?
<pmetzger> What I really want is to understand ppx enough that I can add things like leading and trailing context operators and something to parse "normal" regexes presented in {| |} strings.
<Drup> Bluddy[m]: yes.
<Bluddy[m]> yikes. i SO don't get modules
<companion_cube> Bluddy[m]: I don't know
<pmetzger> a couple of months ago I read a bunch of regex papers to get myself ready to do this stuff, then I ran aground on ppx and lost momentum. :(
<Drup> Bluddy[m]: Yes, we sort of gathered that.
<pmetzger> It turned out a couple of papers were written by a guy I knew at Columbia when I was a student there, and I had no idea he'd done regex theory.
<Drup> Bluddy[m]: but honestly that's a very corner case that is pretty hard to explain and most likely shouldn't be happening
<Drup> it will probably change in the next ocaml versions
<Bluddy[m]> Drup: ouch
<Bluddy[m]> Is there a paper that'll lead to me having better understanding?
<Drup> Bluddy[m]: xavier leroy popl 94 and 95
<Drup> (or section 3 of my thesis, which sorts of reformulate them in a way that might be easier to understand)
<Bluddy[m]> cool. thanks
<Bluddy[m]> btw how's eliom development going? I saw there's a new site. Are you still involved with it?
<companion_cube> Bluddy[m]: I can't really submit a bug report on mantis right now, I don't have my credentials :/
<companion_cube> but it 'd be extra neat if someone could confirm the issue with 4.07 and the labels test
<Drup> Bluddy[m]: from a distance only
dedgrant has quit [Quit: Leaving]
<Bluddy[m]> Drup: well, I really enjoyed writing a small app in Eliom, for what it's worth. Any idea if Ocsigen server is performant enough for use to convince Reason guys to use it? Compared to cohttp?
kakadu has joined #ocaml
orbifx has joined #ocaml
<pmetzger> Wow. The Tezos people seem to have some aggressive hiring plans. I saw something on the Types mailing list that they're looking to recruit 40 people, with a preference for PhDs.(!?!?) Are there even that many competent PhDs with a PL background available?
<Drup> pmetzger: I don't think they're necesserely looking for a PL background
<Drup> (and even if that was the case, yeah, sure)
<pmetzger> True. But I'll bet the people who can handle things like odd machines, OCaml, formal verification and the rest probably are PL people. Or at least many would be.
xutux has quit [Ping timeout: 256 seconds]
<Drup> you would be surprised
<Drup> also, tezos is a cryptocurrency, they need other skillsets as well
<Drup> Bluddy[m]: I have not made nor seen measures, so I can't say
Haudegen has quit [Remote host closed the connection]
<Drup> I think it's probably better than ruby/php/python servers, and people build big websites with those, so I feel like the point is sort of moot
<Drup> also, next version of ocsigenserver use cohttp under the hood
<pmetzger> Yah, true. They probably need a bunch of other skillsets. Still, 40 PhDs is a lot to be looking to hire on anything.
<Bluddy[m]> oh neat
<Bluddy[m]> from looking at discussion on their forum, they are looking for a fast backend
<Bluddy[m]> and they'd prefer to use OCaml if they could
<Bluddy[m]> they just look at the OCaml ecosystem and see a tiny one compared to js
<Bluddy[m]> so focusing on making a solid OCaml server that suits their needs is a good idea in general for the community
<octachron> Bluddy[m], I understand that you are thus planning to contribute to eliom?
<Bluddy[m]> i'm considering where to invest my limited time in a way that i feel benefits the community the most. i think we could turn that line into a meme at this point though.
argent_smith has quit [Read error: Connection reset by peer]
<pmetzger> Today's OCaml ecosystem irritant to me is that ocaml.org (the web site) won't build under 4.06 :)
<pmetzger> (So I couldn't test the two pull requests I sent without building 4.05 again which I didn't want to take time for.)
jimmyrcom has quit [Ping timeout: 240 seconds]
argent_smith has joined #ocaml
<octachron> Bluddy[m], I understand perfectly the cautiousness about spending one's precious free time; but, well, paralysis by analysis is a thing too
bairui_ has joined #ocaml
<companion_cube> I hate ppx ;_;
<companion_cube> why do opam packages always break?
Haudegen has joined #ocaml
xutux has joined #ocaml
bairui has quit [Ping timeout: 260 seconds]
<pmetzger> companion_cube: do you hate all syntactic extension mechanisms or only ppx? :)
<companion_cube> I hate all syntax extension mechanisms that regularly break
<companion_cube> (also, I'm annoyed at opam right now for not having lockfiles)
<pmetzger> I find that I want features from opam in macports and features from macports in opam.
<pmetzger> like macports has no notion of being able to do things like saying "this version of the compiler needs this version of the library", and opam has no notion of "which are the packages I requested, rather than having been installed because something requested required them". I could give a long list.
cbot_ has joined #ocaml
cbot has quit [Ping timeout: 260 seconds]
Kalpatitoo_ has joined #ocaml
argent_smith1 has joined #ocaml
<Kalpatitoo_> is it possible to specify in function type annotation that 'a and 'b are supposed to not be equal?
<Kalpatitoo_> like, that there should be an error if they are unified
<Bluddy[m]> companion_cube: are these ppx extensions using OMP?
<companion_cube> I have absolutely no idea and I don't care
<companion_cube> I just expect `opam install tls` to work, and apparently nocrypto doesn't want to install itself cause it doesn't find some sexp ppx or whatever
<companion_cube> pmetzger: cool story, but I don't use a mac.
argent_smith has quit [Ping timeout: 260 seconds]
<pmetzger> companion_cube: Most mac users don't use macports either. :)
mengu has joined #ocaml
xutux has quit [Ping timeout: 264 seconds]
<Bluddy[m]> companion_cube: ppx_sexp_conv uses OMP, so I don't know what the problem is. Unless OMP doesn't support 4.07 yet?
<companion_cube> it's on 4.05 on my debian, and I have absolutely no idea.
<pmetzger> Never use the system ocaml packages. I say that as someone who maintains system ocaml stuff in macports. :(
<companion_cube> it's on a 4.05 switch…
<companion_cube> I suspect the switch is broken for some reason
<companion_cube> but this is annoying
jnavila has quit [Remote host closed the connection]
zolk3ri has quit [Remote host closed the connection]
<pmetzger> is there an opam command to rebuild your switch from scratch? I can't remember.
<pmetzger> I guess you can dump out the package list and rebuild from that...
<orbifx> Kalpatitoo_: best ask on the list or forum. I think not, but I'm probably wrong.
<orbifx> pmetzger: uninstall and reinstall your switch?
<orbifx> does anyone use Gopher here?
<pmetzger> orbifx: That's what I was kind of suggesting to companion_cube, not that he needed my advice, he certainly knows more about fixing this than me.
<companion_cube> I opam sw rebuild'ed it, to no result
<Kalpatitoo_> orbifx, i don't know when i should use the list or the chan, and i didn't even know there was a forum haha
<companion_cube> maybe I should throw it away and change compiler
<companion_cube> wtf
xutux has joined #ocaml
<orbifx> Kalpatitoo_: try IRC, but no one might be around at the time or your message lost in the stack. List & forum are interchangeable; try both or either.
<Kalpatitoo_> i see, thx
_andre has quit [Quit: leaving]
muelleme has quit [Ping timeout: 256 seconds]
bairui_ is now known as bairui
argent_smith has joined #ocaml
<Bluddy[m]> companion_cube: I get the same issue trying to build containers on 4.07. Is there another specific test you wanted me to run?
xutux has quit [Remote host closed the connection]
xutux has joined #ocaml
argent_smith1 has quit [Ping timeout: 240 seconds]
<companion_cube> not particularly :/
sh0t has quit [Remote host closed the connection]
Kalpatitoo_ has quit [Read error: Connection reset by peer]
<Drup> companion_cube: so what fails exactly in containers ?
<companion_cube> this type stuff for array/arrayLabels
<companion_cube> incompatibility of Floatarray
<Drup> I need something a bit more precise
<Drup> which piece of code ?
* Bluddy[m] sent a long message: Bluddy[m]_2018-04-17_21:34:24.txt <https://matrix.org/_matrix/media/v1/download/matrix.org/VkbASzLmdhZQJekVtydgmpHV>
* Bluddy[m] sent a long message: Bluddy[m]_2018-04-17_21:35:23.txt <https://matrix.org/_matrix/media/v1/download/matrix.org/wfRPJNsgDmEIHiBkILOkIKvC>
<Drup> ok, I'm pretty sure it's a consequence of the change in semantics of module type of
<companion_cube> maybe, but it's annoying as hell
<companion_cube> I mena it literally breaks my code -_-
<Bluddy[m]> why doesn't it break the stdlib?
<Drup> companion_cube: using just "module type of" should be fine here
<companion_cube> but why isn't `module type of struct include … end` always stronger? :/
<companion_cube> I mean, I fixed it in containers, but it's still a breakage
<Drup> companion_cube: the semantics was changed recently
<companion_cube> -_-
<Drup> Now, it preserve module aliases, so the signature is "module Floatarray = M.Floatarray"
<companion_cube> well now I'm afraid this will break my other code in the future, like the one in CCFormat
<Drup> with M being Array or ArrayLabels
<Drup> hence not the same
<Drup> it used to expand the signature
<companion_cube> erf
<companion_cube> with the inability to override modules, I'm doomed
<companion_cube> override submodules*
<Drup> You can override submodules in signatures
<Bluddy[m]> what was the rationale for the change?
<Drup> ah, I forgot about the annotations
<Bluddy[m]> yeah, [@remove_aliases]
<Drup> companion_cube: you can add `[@remove_aliases]` to your `module type of`.
<companion_cube> in signatures but not in struct include, can I?
<Drup> companion_cube: do we agree that removing the `struct include X end` trick fixes the problem ?
tarptaeya has quit [Quit: Konversation terminated!]
<companion_cube> yes, in this particular case
<Drup> right
tarptaeya has joined #ocaml
<companion_cube> guess I just used a now-broken version of OCaml
<Drup> what does that mean ?
<companion_cube> well sometimes OCaml does break retrocompatibility
<Bluddy[m]> so just `include module type of ArrayLabels` works?
<Drup> ah, well, yes
<Drup> (stop being so melodramatic, it doesn't mean that it's "broken", it's just not retro-compatible. Sometimes you don't have a choice if you want to make things better)
<Bluddy[m]> yes!!!!
<Bluddy[m]> that's my line!
<companion_cube> well it broke my code, sorry, yes
<Drup> Bluddy[m]: no, you want to break everything all the time without taking the time to understand them
<Bluddy[m]> yes! break everything! smash!
jimmyrcom has joined #ocaml
<Drup> companion_cube: this change is the first step into removing the ugly `module type of struct include X end`
<Drup> (and you would just do `module type of X` instead)
<Drup> I though you would appreciate that :D
<orbifx> quit
<orbifx> oops
<orbifx> laters
orbifx has quit [Quit: WeeChat 2.1]
moei has joined #ocaml
gtrak has quit [Ping timeout: 264 seconds]
argent_smith has quit [Quit: Leaving.]
muelleme has joined #ocaml
jimmyrcom_ has quit [Ping timeout: 264 seconds]
<companion_cube> Drup: well that's going to be hell for maintaining several versions, but ok
<Drup> companion_cube: but ... the new code (`module type of ArrayLabels`) should work with the old versions
<Drup> (worse case, you can use the annotation)
<Drup> granted, it works because Arraylabels doesn't contain types, but still, it's sufficient here
<companion_cube> it won't work for the others, but ok, it doesn't seem to break hashtbl or CCFOrmat for now
<companion_cube> so it's fine
<Drup> yeah, they don't have submodules
<companion_cube> what's really pissing me off is that I can't install tls anymore on my server
gtrak has joined #ocaml
Haudegen has quit [Remote host closed the connection]
tarptaeya has quit [Quit: Konversation terminated!]
pmetzger has quit [Remote host closed the connection]
hdon has quit [Ping timeout: 256 seconds]
hdon has joined #ocaml
hdon has quit [Ping timeout: 264 seconds]
kakadu has quit [Remote host closed the connection]
gtrak has quit [Ping timeout: 260 seconds]
hdon has joined #ocaml
hdon has quit [Ping timeout: 260 seconds]
nullifidian_ has joined #ocaml
pmetzger has joined #ocaml
nullifidian__ has quit [Read error: Connection reset by peer]
noplamodo has quit [Ping timeout: 256 seconds]
noplamodo has joined #ocaml
BitPuffin has quit [Remote host closed the connection]