<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
<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)
<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>
(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>
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
<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.