companion_cube changed the topic of #ocaml to: Discussions about the OCaml programming language | http://www.ocaml.org | OCaml 4.04.0 release notes: http://ocaml.org/releases/4.04.html | Try OCaml in your browser: http://try.ocamlpro.com | Public channel logs at http://irclog.whitequark.org/ocaml
jimt has quit [Quit: leaving]
infinity0 has quit [Ping timeout: 268 seconds]
jimt has joined #ocaml
Simn has quit [Read error: Connection reset by peer]
flashmozg has joined #ocaml
<flashmozg> Hello, what do I need to do for ocaml to recognize that I've installed batteries?
sh0t has joined #ocaml
nicoo has quit [*.net *.split]
infinity0 has joined #ocaml
jimt_ has joined #ocaml
jimt has quit [Ping timeout: 240 seconds]
nicoo has joined #ocaml
mfp__ has quit [Ping timeout: 255 seconds]
sh0t has quit [Remote host closed the connection]
copy_ has quit [Quit: Connection closed for inactivity]
rdutra has quit [Ping timeout: 240 seconds]
nicoo has quit [Ping timeout: 248 seconds]
haesbaert has quit [Quit: Lost terminal]
nicoo has joined #ocaml
groovy2shoes has quit [Quit: Leaving]
jimt_ is now known as jimt
rdutra has joined #ocaml
sh0t has joined #ocaml
jlam_ has joined #ocaml
ziyourenxiang has joined #ocaml
jlam__ has joined #ocaml
jlam_ has quit [Ping timeout: 240 seconds]
groovy2shoes has joined #ocaml
snowcrsh_ has quit [Remote host closed the connection]
bombastus has joined #ocaml
spew has joined #ocaml
cranmax has quit [Quit: Connection closed for inactivity]
nomicflux has joined #ocaml
pierpa has joined #ocaml
rdutra has quit [Ping timeout: 255 seconds]
sgronblo has joined #ocaml
flashmozg is now known as flashmozzg
Fare has joined #ocaml
<Fare> Hi. Where is a tutorial for setting up emacs for ocaml development?
<Fare> should I be using tuareg? merlin?
enterprisey has joined #ocaml
programo has joined #ocaml
ygrek has quit [Ping timeout: 240 seconds]
agravier has joined #ocaml
agravier has quit [Client Quit]
spew has quit [Quit: foobar]
lostman has joined #ocaml
nomicflux has quit [Quit: nomicflux]
nomicflux has joined #ocaml
spip has joined #ocaml
<spip> Yep, Merlin is obligatoire, obligatory, obligatorische, obbligatorio, 必须做的 :=)
tizoc has quit [Quit: Coyote finally caught me]
tizoc has joined #ocaml
spip has quit [Ping timeout: 276 seconds]
pierpa has quit [Quit: Page closed]
spip has joined #ocaml
nybnik10_ has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
nomicflux has quit [Quit: nomicflux]
imizu has joined #ocaml
FreeBird_ has joined #ocaml
imizu has quit [Client Quit]
sh0t has quit [Remote host closed the connection]
bombastus has quit [Read error: Connection reset by peer]
imizu has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 260 seconds]
programo has quit [Remote host closed the connection]
imizu has left #ocaml ["WeeChat 1.9"]
gonz_ has quit [Ping timeout: 240 seconds]
snowcrshd has joined #ocaml
kalio has quit [Quit: WeeChat 1.8]
snowcrshd has quit [Ping timeout: 255 seconds]
kalio has joined #ocaml
_whitelogger has joined #ocaml
ryanartecona has joined #ocaml
ygrek has joined #ocaml
snowcrshd has joined #ocaml
snowcrshd has quit [Ping timeout: 255 seconds]
TheLemonMan has joined #ocaml
shinnya has quit [Ping timeout: 240 seconds]
samrat_ has joined #ocaml
enterprisey has quit [Ping timeout: 268 seconds]
Fare has quit [Ping timeout: 276 seconds]
slash^ has joined #ocaml
samrat_ has quit [Ping timeout: 240 seconds]
iitalics has joined #ocaml
enterprisey has joined #ocaml
enterprisey has quit [Client Quit]
ryanartecona has quit [Quit: ryanartecona]
al-damiri has quit [Quit: Connection closed for inactivity]
Simn has joined #ocaml
jnavila has joined #ocaml
iitalics has quit [Quit: /thread]
argent_smith has joined #ocaml
argent_smith has quit [Quit: Leaving.]
olibjerd has joined #ocaml
snowcrshd has joined #ocaml
Athas has joined #ocaml
<Athas> Hi, where are the rules for such syntax as List.(length) documented? I.e. that one can quality an entire expression with a module name.
<Athas> https://caml.inria.fr/pub/docs/manual-ocaml/expr.html seems to suggest that the only thing that can be left of a '.' is an 'expr', but 'List' is a module expression, right?
snowcrshd has quit [Ping timeout: 255 seconds]
jnavila has quit [Ping timeout: 240 seconds]
<Athas> I see, thanks.
<octachron> Athas, you were unlucky, the soon-to-be released version of the manual lists all extensions of a given language construct, which should make this kind of details easier to find
<Athas> I'm curious though; extension compared to what? Are there other OCaml implemenations?
<Leonidas> extension towards older ocaml I suppose
<octachron> Leonidas, mostly yes; generally extensions range from feature whose specification is/feels incomplete (recursive module and value)
<octachron> to stable but quite recent features
<octachron> (for a sufficiently old value of recent)
<Athas> Are local opens in that category?
<octachron> yes, in fact they have been integrated to the core part of the manual in the next(4.06) Ocaml version
shinnya has joined #ocaml
<Athas> Good; they seem quite simple and well-behaved.
Onemorenickname has joined #ocaml
<Onemorenickname> Hello people
<Onemorenickname> It's been a while.
<Onemorenickname> If I have several modules defining ">>=", can I get OCaml to infer which one I mean based on my type annotation ?
<Onemorenickname> Or maybe with some restricted form of polymorphism ? Like, I say that one of the argument is of the type of a certain module, this module satisfying a signature containing ">>=" ?
<octachron> Onemorenickname, no type disambiguation is only possible for primitives (e.g. record access, constructors), there is no ad-hoc polymorhism in OCaml
<Onemorenickname> hm
<Onemorenickname> I see.
<Onemorenickname> I'm trying to find some kind of construct I forgot the name
<Onemorenickname> Something like explicit polymorphism
<Onemorenickname> Like, I could write something like "let f (type 'a) (y:'a) = y" or something
<octachron> locally abstract type: "let f (type a) (y:a) = y"
<Onemorenickname> yay
<Onemorenickname> Is it possible to constrain that abstract type over a module signature ?
<octachron> not really? Even if "let f (type a) (module M: Signature with type t = a) x y = let open M in x >>= y" may be a work around for what you are trying to do
<octachron> the difference being that (module M: … ) carries an implementation of the signature
<Onemorenickname> Yep, I'd have to pass the module
<Onemorenickname> Which I don't want
<octachron> then you would have to wait for modular implicits
<Onemorenickname> Oh, it is expected ?
<Onemorenickname> Where can I find more about it ?
mfp__ has joined #ocaml
<octachron> expected may be a tad strong and there is no hard roadmap to integration yet
cranmax has joined #ocaml
nahra has joined #ocaml
<Onemorenickname> octachron, yep, but it didn't look like it'd be integrated
<Onemorenickname> also, second-to-last commit 2 y ago
<octachron> This is clearly still a work in progress ; I estimate the probability of integration before 4.07 as very low
snowcrshd has joined #ocaml
snowcrshd has quit [Ping timeout: 255 seconds]
<Onemorenickname> octachron, I see
<Onemorenickname> How would one go about forking and extending OCaml ? Is there any related documentation ?
<Onemorenickname> (I don't want to recreate a whole language when I want to add some features / see the problem encountered when adding these.)
<Onemorenickname> (Also, I'd like to benefit from other people's inputs)
freusque has joined #ocaml
<octachron> Onemorenickname, like any other open source project? Fork it, extend it and send back patch/PR to upstream (aka https://github.com/ocaml/ocaml)
<octachron> note that extending OCaml type-checker is not neccessarily easy, and adding ad-hoc polymorphism to OCaml is most probably a bad idea
freusque has quit [Ping timeout: 248 seconds]
olibjerd has quit [Ping timeout: 240 seconds]
<Onemorenickname> octachron, that's why i'm asking for any related documentation
<Onemorenickname> (rather than just diving into the source code)
<Onemorenickname> also, I wouldn't go with ad-hoc polymorphism :D
<Onemorenickname> (at least not as a first project)
<Onemorenickname> but i'd like to be able to understand the code enough to be able to fork and take up a more basic version of OCaml for instance
<Onemorenickname> and fiddle with it
<Onemorenickname> (rather than try to extend the full-blown current OCaml)
<octachron> there is https://github.com/ocaml/ocaml/blob/trunk/HACKING.adoc that explains a bit of the code structure
<Onemorenickname> nice, thank you :)
<octachron> unfortunately, the code base is not exactly heavily documented (the flambda/middle end part might be an exception)
<Onemorenickname> " the code base is not exactly heavily documented", are there historical reasons to that ?
<Drup> Onemorenickname: "it's written by academics"
<Onemorenickname> Drup, I'd think academics'd use a lot of documentations
<Onemorenickname> (with the spec/verif background and such)
<Drup> ahah
freusque has joined #ocaml
<Onemorenickname> I guess http://okmij.org/ set some pretty high expectations, and I should just revise my priors
<octachron> Drup, may I remind you that written by academics encompasses written by physicists or even worst chemists?
<Drup> You don't need comments when everything is already described in papers.
<Drup> (/s)
<Onemorenickname> Drup, oh, I see. Are there links to the relevant papers in the source files ?
<Drup> Of course not
<Onemorenickname> octachron, aren't these engineers ?
<Drup> Onemorenickname: but I added some in the various HACKING files
<Onemorenickname> Drup, "Of course" denotes humor ?
<Onemorenickname> Or some obvious reason I'm oblivious to ?
<Drup> Yes, I'm being a bit cheeky :)
<octachron> Onemorenickname, I am never tried to tell to a string theorist that he is an engineer. I am sure the result will be … interesting.
<Onemorenickname> octachron, :>
<Onemorenickname> Drup, I see. As a newcomer, it's hard to distinguish those two :)
<Onemorenickname> (Especially without tone nor emoticons)
<octachron> Onemorenickname, the true behind the veil of acamdemia is that often is something cannot be published, it can be optimised out
<Onemorenickname> "optimised out" ?
<octachron> be it documentation, readable code, important experimental details that obvious to all (the 5 corresponding world expert)
<Onemorenickname> I can not infer the semantic set description from those instances
<Onemorenickname> What does "optimised out" mean ?
<Onemorenickname> "optimised out" to which end ?
<octachron> done as fast as possibly with no regards to the quality
<Onemorenickname> If it can not be published, what should it be done ?
<Drup> (this is a slight exaggeration, of course, but not *that* much)
<octachron> Onemorenickname, if it cannot be published, asumme that no one will look at the details and consequently do the stict minimum (quality-wise) needed to support the publishable part and nothing more
<Onemorenickname> octachron, oh, I understand better now
<Onemorenickname> Thanks for the explanation
ygrek has quit [Ping timeout: 260 seconds]
<Drup> Onemorenickname: I read the backlog. If you want to experiment with an extension of the ML type system 1) Figure out the type rules/semantics 2) Extend https://github.com/tomprimozic/type-systems
<Onemorenickname> Drup, thanks :)
<Onemorenickname> I was looking for stuff that explain formally the "type rules/semantics" part
<Drup> ah, right
<Drup> so for core ML, you can use didier remy's book, but personally I like http://www.ccs.neu.edu/racket/pubs/ic94-wf.ps.gz
<Drup> it's well written and explains all the details
<Drup> Note that this does not explain algorithm W. Oleg's blog post is better for that
<Drup> For polymorphic variants and subtyping, I think jacque garrigue has a paper on that. You can find all of them here: http://www.math.nagoya-u.ac.jp/~garrigue/papers/index.html
jnavila has joined #ocaml
<Drup> For the module system, Xavier Leroy POPL paper from 94 and 95 (http://gallium.inria.fr/~xleroy/publi-by-year.html#1995)
<Drup> And that should cover the basics
samrat_ has joined #ocaml
<Onemorenickname> Drup, I love you
<Drup> (there is also chapter 2 of my thesis, but it's not finished :D)
<Onemorenickname> :)
snowcrshd has joined #ocaml
samrat_ has quit [Ping timeout: 240 seconds]
snowcrshd has quit [Ping timeout: 255 seconds]
freusque has quit [Ping timeout: 240 seconds]
fraggle_ has quit [Remote host closed the connection]
lostman has quit [Quit: Connection closed for inactivity]
fraggle_ has joined #ocaml
cranmax has quit [Quit: Connection closed for inactivity]
average has quit [Ping timeout: 258 seconds]
average has joined #ocaml
jnavila has quit [Remote host closed the connection]
fraggle-boate has quit [Remote host closed the connection]
fraggle-boate has joined #ocaml
olibjerd has joined #ocaml
ohama has quit [Ping timeout: 255 seconds]
ohama has joined #ocaml
freusque has joined #ocaml
spew has joined #ocaml
cr41gnus has joined #ocaml
snowcrshd has joined #ocaml
govg has quit [Quit: Lost terminal]
govg has joined #ocaml
Muzer has quit [Ping timeout: 240 seconds]
samrat has joined #ocaml
spew has quit [Quit: foobar]
freusque has quit [Ping timeout: 246 seconds]
jlam_ has joined #ocaml
jlam__ has quit [Ping timeout: 260 seconds]
Muzer has joined #ocaml
dhil has joined #ocaml
nomicflux has joined #ocaml
sh0t has joined #ocaml
nomicflux has quit [Quit: nomicflux]
slash^ has quit [Read error: Connection reset by peer]
Fare has joined #ocaml
rdutra has joined #ocaml
jlam__ has joined #ocaml
jlam1 has joined #ocaml
jlam_ has quit [Ping timeout: 260 seconds]
jlam__ has quit [Ping timeout: 255 seconds]
cranmax has joined #ocaml
jlam_ has joined #ocaml
jlam1 has quit [Ping timeout: 255 seconds]
jsoo_ has joined #ocaml
jsoo_ has quit [Client Quit]
agravier has joined #ocaml
ollehar1 has joined #ocaml
<Fare> what is the ocaml equivalent of F#'s deedle? The time series package
sh0t has quit [Ping timeout: 240 seconds]
kapil___ has joined #ocaml
kapil___ has quit [Client Quit]
<ollehar1> congrats for finding the intel CPU bug, interesting reading.
Athas has left #ocaml ["ERC (IRC client for Emacs 25.1.1)"]
Merv__ has quit [Ping timeout: 255 seconds]
Merv_ has joined #ocaml
jlam__ has joined #ocaml
jlam_ has quit [Ping timeout: 255 seconds]
samrat has quit [Ping timeout: 260 seconds]
rdutra has quit [Ping timeout: 260 seconds]
jlam_ has joined #ocaml
jlam__ has quit [Ping timeout: 260 seconds]
freusque has joined #ocaml
samrat has joined #ocaml
TheLemonMan has quit [Quit: "It's now safe to turn off your computer."]
<ollehar1> what happened to that guy who started to write a web framework for ocaml?
<ollehar1> he was on reddit.
<Drup> he went to SML and then disapered. Not enough wheels to NIH in the ocaml community, surprisingly
enterprisey has joined #ocaml
<ollehar1> Drup: NIH?
<ollehar1> why would anyone go to SML...
<Fare> Not Invented Here == reimplementing all by yourself...
<Fare> is SML still a thing?
<ollehar1> that's what I wonder.
<ollehar1> I thought OCaml was established as the main ML by now
<ollehar1> together with F#
<ollehar1> pity he disappeared.
<Drup> Fare: not really, except in some universities for education purposes and as a research object
<ollehar1> I actually had SML as first language at Uppsala University.
<ollehar1> They said they were planning to go to Haskel.
<Armael> its the same in most of the US I believe
<Armael> when they study a ML it's SML
<Drup> There is also a "religious war" aspect to that. :p
<ollehar1> also a pity
jlam__ has joined #ocaml
jlam_ has quit [Ping timeout: 248 seconds]
Muzer has quit [Ping timeout: 276 seconds]
Muzer has joined #ocaml
sh0t has joined #ocaml
dhil has quit [Ping timeout: 255 seconds]
cthuluh has quit [Ping timeout: 248 seconds]
cthuluh has joined #ocaml
malina has joined #ocaml
rk[ghost] has quit [Ping timeout: 260 seconds]
rk[ghost] has joined #ocaml
cthuluh has quit [Ping timeout: 276 seconds]
cthuluh has joined #ocaml
Onemorenickname has quit [Read error: Connection reset by peer]
samrat has quit [Ping timeout: 240 seconds]
shinnya has quit [Ping timeout: 276 seconds]
copy_ has joined #ocaml
FreeBird_ has quit [Remote host closed the connection]
enterprisey has quit [Remote host closed the connection]
enterprisey has joined #ocaml
freusque has quit [Ping timeout: 240 seconds]
kakadu has joined #ocaml
nahra has quit [Remote host closed the connection]
nahra has joined #ocaml
slash^ has joined #ocaml
nahra has quit [Remote host closed the connection]
jlam_ has joined #ocaml
jlam__ has quit [Ping timeout: 260 seconds]
jlam__ has joined #ocaml
malc_ has joined #ocaml
jlam_ has quit [Ping timeout: 255 seconds]
spip has left #ocaml ["Konversation terminated!"]
FreeBirdLjj has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 268 seconds]
dhil has joined #ocaml
barcabuona has quit [Ping timeout: 240 seconds]
KeyJoo has joined #ocaml
ygrek has joined #ocaml
argent_smith has joined #ocaml
cranmax has quit [Quit: Connection closed for inactivity]
madgoat has joined #ocaml
madgoat has left #ocaml [#ocaml]
barcabuona has joined #ocaml
dhil has quit [Ping timeout: 240 seconds]
shinnya has joined #ocaml
<apache2> some unis go to F# now
<apache2> getting rid of moscow ml/ sml
agravier has quit [Quit: agravier]
agravier has joined #ocaml
sh0t has quit [Ping timeout: 260 seconds]
jlam__ has quit [Ping timeout: 246 seconds]
jlam_ has joined #ocaml
jlam__ has joined #ocaml
jlam_ has quit [Ping timeout: 255 seconds]
slash^ has quit [Read error: Connection reset by peer]
agravier has quit [Quit: agravier]
malc_ has quit [Remote host closed the connection]
malina has quit [Ping timeout: 240 seconds]
agravier has joined #ocaml
agravier has quit [Quit: agravier]
FreeBirdLjj has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 276 seconds]
malina has joined #ocaml
pierpa has joined #ocaml
average has quit [Quit: leaving]
sh0t has joined #ocaml
enterprisey has quit [Read error: Connection reset by peer]
FreeBirdLjj has joined #ocaml
KeyJoo has quit [Ping timeout: 240 seconds]
FreeBirdLjj has quit [Ping timeout: 248 seconds]
olibjerd has quit [Quit: olibjerd]
ollehar1 has quit [Quit: ollehar1]
sh0t has quit [Read error: No route to host]
sh0t has joined #ocaml
nomicflux has joined #ocaml
<Fare> hi
argent_smith has quit [Quit: Leaving.]
aantron_ has joined #ocaml
<aantron_> hello
<hannes> oh Fare, you're here now? I didn't notice until now... do you still do cl?
igitoor has quit [Ping timeout: 258 seconds]
igitoor has joined #ocaml
<hannes> how can I with opam pass configure flags to the OCaml compiler in a switch? can I?
igitoor has quit [Changing host]
igitoor has joined #ocaml
cranmax has joined #ocaml
<Drup> hannes: which version of opam ?
<aantron_> hannes, for cases like that with opam 1.2, i would create a custom compiler in ~/.opam/compilers
<hannes> 1.2.2
<aantron_> e.g. in 4.04.1+flambda, in the .comp file, i see ["./configure" "-prefix" prefix "-with-debug-runtime" "-flambda"]
<aantron_> custom compiler here meaning custom .comp file
<aantron_> then switch to it, obviously :)
<Drup> yeah, that's the only solution
<Drup> (in opam 2.0, it's easier)
<aantron_> how is it in 2.0?
<Drup> `opam pin edit` :p
<aantron_> ah right. compilers as packages :)
<Drup> Yep
<hannes> hmm, ic.. or a custom repo with the compilers i intend to have.. glad it's better with 2.0... thx!
nomicflux has quit [Quit: nomicflux]
nomicflux has joined #ocaml
average has joined #ocaml
<Fare> hannes, I maintain my CL code.
<Fare> hannes, I'm actually adopting #gerbil
<Fare> but I'm trying to help my brother who has F# code, and I am considering ocaml as an alternative
<Fare> I'm trying to understand whether there's an equivalent for deedle in ocaml --- some library to deal with time series.
<Fare> it's OK to invent wheels that don't exist yet or port them, but I'd rather not start a new library in vain.
<hannes> Fare: sounds good! :) I got stuck here ~4 years ago, by developing a TLS implementation with a friend from scratch.. gearing towards MirageOS
<Drup> Fare: afaik, there is not
<Fare> Drup: thanks. True answers are good answers.
<Fare> If I stick with OCaml, I might port relevant parts of Deedle (if applicable)
<Fare> I'm also considering using Gerbil for everything. Maybe porting Typed Racket to Gerbil.
<Fare> but that would take more time.
<Drup> There are not many scientific libraries in the style of numpy in OCaml, unfortunately, although people are starting to get interested
<Drup> Fare: I suppose Gerbil does not designate the adorable desert mouse ?
<Fare> It's basically a PLT Racket like module system on top of Gambit Scheme.
<Fare> in relatively early phase -- the module system is bootstrapped, but more modules need to be written, and it's not compatible with Racket enough to just reuse Racket code.
<Fare> in particular, there is no equivalent of Typed Racket yet :-(
<hannes> Fare: sounds like a huge effort to undertake. I hope you're not alone in this mission
ygrek has quit [Ping timeout: 240 seconds]
<Fare> two so far.
<Fare> First, building some real-world software with it.
<Fare> (I'm #2, #1 is vyzo, who built the system to begin with)
<Drup> By curiosity, link to gerbil ?
<Drup> I actually don't really know what scheme module systems look like
aantron_ has quit [Quit: Page closed]
<cranmax> I'm also interested in working with data frames and time series, so which are the alternatives in OCaml?
<cranmax> My hunch is that Arrays can work well
<Drup> Colaborating with Fare to make an awesome library ? ^^'
<octachron> It reminds that I should have a look at my (Ocaml) PhD stat/time series library to see if there is anything useful (aka not atrociously specialized) there at some point
aanton_ has joined #ocaml
<aanton_> Drup, do you have the link to jerome's paper about lwt handy? i can't seem to find it again
<cranmax> Yes! that sounds great but I don't know OCaml yet... So in the future I'm willing to do it
nomicflux has quit [Quit: nomicflux]
<cranmax> octachron: I encourage you in finding it :)
<octachron> cranmax, finding it is the easy part, extracting parts that are not specialized to compute high order moments of quasi-log normal distributions and shows that the naive estimator is outputing garbabe values is another story
<Drup> (in general: https://www.irif.fr/~vouillon// )
cr41gnus has quit [Ping timeout: 276 seconds]
cr41gnus has joined #ocaml
<aanton_> thanks Drup
<cranmax> octachron: it sounds physics to me or mathematics
<cranmax> And difficult to understand
<Drup> aanton_: did you manage to find it inside unison's repo ?
kakadu has quit [Remote host closed the connection]
<Drup> (the postdoc mentioned at the end of the lwt paper fits with when unison is born, afaik)
averell has joined #ocaml
<octachron> cranmax, a little bit of both with a pinch of signal processing? The point is that it was written with a very specific aim and not really to be useful in a more generic setting
<Fare> cranmax: looks like porting Deedle to OCaml would be a good option.
<Fare> F# is very close to OCaml.
<Fare> and Deedle seems like it has good basic design.
<cranmax> octachron: okay, sounds interesting to me your PhD and do what you consider fine with your OCaml library
<cranmax> Fare: yes, the Deedle option or use what OCaml already has
<Fare> looks like OCaml doesn't have anything public in that precise space.
aanton_ has quit [Ping timeout: 260 seconds]
<Fare> If you start a library, I propose OCuddle
<Fare> as a name
<Fare> or just Cuddle if you don't use objects.
<cranmax> Fare: hahah or just numerics
Orion3k has quit [Quit: Leaving]