adrien changed the topic of #ocaml to: Discussions about the OCaml programming language | http://www.ocaml.org | Current MOOC: https://huit.re/ocamlmooc | 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
mal`` has quit [Quit: Leaving]
infinity0_ has joined #ocaml
infinity0_ has quit [Changing host]
infinity0 has joined #ocaml
infinity0 has quit [Remote host closed the connection]
infinity0 has joined #ocaml
infinity0 has quit [Remote host closed the connection]
mal`` has joined #ocaml
infinity0 has joined #ocaml
infinity0 has quit [Remote host closed the connection]
infinity0 has joined #ocaml
infinity0 has quit [Remote host closed the connection]
infinity0 has joined #ocaml
infinity0 has quit [Remote host closed the connection]
mengu has quit [Quit: Leaving...]
kalio has quit [Quit: WeeChat 1.7.1]
spew has joined #ocaml
<smondet[m]> aantron_: yes, I'm talking at 1pm
kalio has joined #ocaml
spew has quit [Ping timeout: 260 seconds]
al-damiri has quit [Quit: Connection closed for inactivity]
jabroney has quit [Quit: Leaving.]
spew has joined #ocaml
spew has quit [Ping timeout: 246 seconds]
<aantron_> smondet[m]: cool, i see it
copy` has quit [Quit: Connection closed for inactivity]
Drup has quit [Ping timeout: 240 seconds]
gargawel has quit [Ping timeout: 240 seconds]
seangrove has quit [Ping timeout: 258 seconds]
mfp has quit [Ping timeout: 240 seconds]
keep_learning has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]
keep_learning has joined #ocaml
aantron_ has quit [Ping timeout: 260 seconds]
cbot has joined #ocaml
pierpa has quit [Quit: Page closed]
diphuser has joined #ocaml
vgrocha has quit [Ping timeout: 260 seconds]
ygrek_ has quit [Ping timeout: 260 seconds]
FreeBirdLjj has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 246 seconds]
MercurialAlchemi has joined #ocaml
<Khady> Leonidas: IIRC you were interested by the support of cluster mode in ocaml-redis. It should be released soom
diphuser has quit [Remote host closed the connection]
dtornabene has quit [Quit: Leaving]
infinity0 has joined #ocaml
cbot has quit [Quit: Leaving]
MercurialAlchemi has quit [Ping timeout: 268 seconds]
rpg has quit [Ping timeout: 240 seconds]
jlam_ has joined #ocaml
jlam has quit [Ping timeout: 246 seconds]
_whitelogger has joined #ocaml
Simn has joined #ocaml
larhat has joined #ocaml
larhat has quit [Quit: Leaving.]
MercurialAlchemi has joined #ocaml
alfredo has joined #ocaml
ygrek_ has joined #ocaml
raphinou has quit [Quit: WeeChat 1.6]
<toolslive> @Khady great! we've been waiting for this as well.
AltGr has joined #ocaml
ygrek_ has quit [Ping timeout: 240 seconds]
<Leonidas> Khady: great. I really wanted to implement that myself, but my branch got nowhere :|
<Khady> my code is far from amazing, but it shouldn't be hard to improve it
<Leonidas> Khady: awesome!
<Leonidas> I should also get to review some more PRs on slacko and finally release a new version
<Leonidas> now that I actually have an apartment and stuff
toolslive has quit [Ping timeout: 246 seconds]
Orion3k has joined #ocaml
alqatari has joined #ocaml
alqatari has quit [Client Quit]
freusque has joined #ocaml
artart78 has quit [Read error: Connection reset by peer]
vbmithr has quit [Read error: Connection reset by peer]
<orbifx[m]> Hello all
|Lupin| has joined #ocaml
<|Lupin|> hi there
<Leonidas> orbifx[m]: hi
<orbifx[m]> aantron_: compose?
<|Lupin|> orbifx[m]: hi
<orbifx[m]> hello |Lupin|
<|Lupin|> orbifx[m]: sorry, I thought you were a bot. Apparently not... ;-)
<orbifx[m]> How so? Could still be one. :P
gargawel has joined #ocaml
<|Lupin|> orbifx[m]: don't know, Leonidas said hi to you and then you said "compose" to aantron_, so I thought maybe the "hi" was a trigger and then some functional joke of some kind
* |Lupin| adds a note never to leave home without a good Turing test
<orbifx[m]> lol
mfp has joined #ocaml
aantron_ has joined #ocaml
<aantron_> :D
<aantron_> orbifx[m]: yeah, it's that FP conference in new york
Drup has joined #ocaml
<aantron_> mostly consisting of haskell, i guess, with a touch of ocaml on the side
kakadu has joined #ocaml
lambda_foo has quit [Quit: Connection closed for inactivity]
<orbifx[m]> Like, dropping the word OCaml randomly in the presentation, or flashing the logo randomly for 200ms?
<orbifx[m]> Is it webcast?
vbmithr has joined #ocaml
Orion3k has quit [Ping timeout: 268 seconds]
<aantron_> lol
<aantron_> no idea
<aantron_> i've seen recordings of some of the talks from previous conferences, somewhere
Orion3k has joined #ocaml
freusque has quit [Ping timeout: 260 seconds]
<orbifx[m]> My jet is getting fixed, so I won't be able to attend in person.
freusque has joined #ocaml
<aantron_> sounds like you need a sponsor http://www.composeconference.org/2017/sponsors/
freusque has quit [Ping timeout: 260 seconds]
artart78 has joined #ocaml
artart78 has joined #ocaml
artart78 has quit [Changing host]
zv has quit [Ping timeout: 246 seconds]
<orbifx[m]> Hehe
zpe has joined #ocaml
zv has joined #ocaml
aantron_ has quit [Ping timeout: 260 seconds]
sepp2k has joined #ocaml
sz0 has joined #ocaml
johnelse is now known as johnel_away
johnel_away is now known as johnelse
freusque has joined #ocaml
yomimono has joined #ocaml
_andre has joined #ocaml
raphinou has joined #ocaml
yomimono has quit [Ping timeout: 245 seconds]
rpg has joined #ocaml
sgronblo has joined #ocaml
<sgronblo> What's the best way to create a new OCaml project?
<thizanne> emacs myproject.ml
<sgronblo> sounds rather primitive, there is nothing like npm init or stack new or something similar?
yomimono has joined #ocaml
<flux> I don't think template-based project setup never properly caught on in OCaml. I don't mind :P.
<flux> except I think ocsigen has something like that?
<Drup> yeah, eliom-distilery
sgronblo has quit [Read error: Connection reset by peer]
freusque has quit [Ping timeout: 240 seconds]
<octachron> there is also Bünzli's carcass
<Drup> (whic is not really released :/)
<reynir> heh funny name
<apache2_> how does this syntax work: type +'a foo =
apache2_ is now known as apache2
<octachron> apache2, + denotes a covariant (or positive) type parameter
<reynir> apache2: this looks good https://blogs.janestreet.com/a-and-a/
<apache2> thank you both!
ziyourenxiang has joined #ocaml
<apache2> hmm I wonder why jane street's blog thing cannot have ` in the markup. seems like you would want ticks in fixed-width blocks quite often
toolslive has joined #ocaml
<apache2> let f x = (x : [ A | B ] -> [ C ] :> [ A ] -> [ C | D ])
<apache2> should that be read as "x is a function that takes [`A | `B] -> [`C] and I want you to give it the type signature [`A] -> [`C | `D]) ?
<Drup> yes
oliverfriedmann has joined #ocaml
<apache2> in this case could I actually call the function with a `B argument?
<Drup> Not after the typecast
<apache2> why would I not just write let f x = (x: [`A] -> [`C|`D]) ?
<apache2> oh because it transform the function!
<Drup> try and look at the infered type for f :)
<oliverfriedmann> Hi there - I'm working on a OCaml package using OASIS and OPAM. I'm having a library section in my _oasis configuration. OASIS automatically takes care of copying the compiled OCaml files to the respective OPAM library directory when installing the package. I now need to copy additional files to the OPAM library directory that are not "handled" automatically by OASIS. According to the document
<oliverfriedmann> and second the one I'm looking for, the library directory that the rest of my library is installed to, does not seem to be any of the provided values. Sorry for this very specific question, would be great if anybody has some insight, thank you!
<oliverfriedmann> ation, the DataFiles section within my library section should do the trick. I'm, however, having issues with specifying the target location for these "data files". According to the docs, there is a number of environment variables that I can use to address the target system, but first of all, almost all of these environment variables do not exist (OASIS complains about not knowing their value)
<Drup> Data files unfortunatly don't go under /lib, which makes them a bit annoying to use
<Drup> what are those additional files ?
<oliverfriedmann> well, my library needs to compile some additional C++ files that any project using my library needs to link to
<oliverfriedmann> so when the package is being built, these C++ are being compiled as well, and as a first step, I need to copy them somewhere in the target system
<Drup> hum, oasis should take care of that, through the C-sources
<oliverfriedmann> oh, how would I use that?
<Drup> ah, you don't want to compile them in advance ?
<oliverfriedmann> I'm running my crappy own script right now, would be great if I could that in a more proper way
<oliverfriedmann> to provide a little more background:
<oliverfriedmann> the library is a library bridging several external SAT solvers (all written in C++, I think) to OCaml. The user might have 0, 1, 2, 3, etc. of those installed. The library then only wants to add headers and link the SAT solvers that are currently installed by the user.
<oliverfriedmann> So all this compilation and linking etc. has to happen on the target system.
andreas__ has joined #ocaml
<oliverfriedmann> (I know, it's kinda tricky ;) )
<Drup> I would just use Ctypes dynamic linking facilities for that, instead of making a complicated scheme like that
<Drup> but, well, you can try either C-sources (see oasis doc) or just use opam's .install file and specify what you need directly
<Drup> by pure curiosity, zozozo, companion_cube, are C++ SAT solvers really much faster than OCaml ones ?
<Drup> (SAT, not SMT)
<oliverfriedmann> I wasn't aware of ctypes dynamic linking - are you referring to this? https://github.com/ocamllabs/ocaml-ctypes
<Drup> yes
<oliverfriedmann> Interesting, will take a look at it
<oliverfriedmann> The reason I kinda have to compile C++ code is that part of the "bridging" code for the external SAT solvers is also part of my library
<companion_cube> Drup: yes.
<oliverfriedmann> i.e. I am also providing some additional C++ source to make the bridging easier
<flux> doing dynamic linking would be highly preferable to requiring user to have a compiler environment, right?
<companion_cube> I don't really see how we could catch up with even minisat
<oliverfriedmann> it sounds better, I wasn't aware of that option
<Drup> companion_cube: how much ?
<companion_cube> C solvers are heavily optimized
<companion_cube> at least 10×, I think
<Drup> (in any case, I would tend to say "just bundle minisat" and don't bother with dynamic switching)
<companion_cube> probably much more in general: cache effects everywhere
<Drup> that is indeed quite significant
<oliverfriedmann> (just for reference, I don't wanna spam the channel, this is the current bridge, for example, for MiniSAT - https://github.com/tcsprojects/satsolversforocaml/blob/master/src/minisat/minisat.ml and https://github.com/tcsprojects/satsolversforocaml/blob/master/src/minisat/backend/MiniSATWrap.cc - so there is both OCaml and C++ involved)
<Drup> I'm surprised minisat doesn't already has a C API
<apache2> is it correctly understood that -'a is the default?
<Drup> apache2: neither + nor - are the default
<apache2> so the default is a third "kind"?
<Drup> there are 4 states of variances: invariant, covariant (+), contravariant (-) and bivariant
<Drup> bivariant is "both + and -", it only happens for unused variables and is not really representable in OCaml
<Drup> invariant is "neither co nor contra", and it's the default state
<companion_cube> there are some bindings to minisat
<companion_cube> (a bit too many, even)
<octachron> Drup, I would also include injectivity as a type parameter property
<zozozo> Drup: I'm actually going to do some benchmarks soon, on order to compare msat and the minisat bindings, so we'll see
<Drup> octachron: sure, but that's more or less orthogonal
<Drup> (and if you look inside the typechecker, there are actually more like 8 state of variance because of variance inference, and you really don't want to know about it)
<octachron> apache2, as a complement, when a non-GADT type constructor definition is visible, the variance of its parameter is inferred automatically by the compiler
<apache2> type -'a t = 'a yields an error complaining about 'a not being contravariant, and rather being injective covariant
<Drup> companion_cube: oh, right, yours is even published in opam :p
<oliverfriedmann> oh cool, will check out the existing package
|Lupin| has quit [Quit: leaving]
freusque has joined #ocaml
sgronblo has joined #ocaml
vgrocha has joined #ocaml
alfredo has quit [Ping timeout: 245 seconds]
alfredo has joined #ocaml
<companion_cube> oliverfriedmann: `opam search sat` should give most existing bindings
mengu has joined #ocaml
<oliverfriedmann> thx!
<companion_cube> Drup: oh, interesting
<zozozo> companion_cube: from my earlier search there are about three ocaml lib which provide sat solvers
<zozozo> minisat, sattools, and msat
<companion_cube> right
<Drup> altergo doesn't count ? :p
<oliverfriedmann> yeah, looks great. seems much easier to either wrap the existing libraries or use them directly
<companion_cube> Drup: not as a SAT solver, no
<oliverfriedmann> thx
<companion_cube> minisat embeds the C version of minisat, btw (does not depend on any system lib)
<zozozo> Drup: does it expose a simple enough API to access the sat solving facilities ?
<Drup> given the size and distribution of minisat, I think it's indeed better to embed it
<Drup> (Z3, on the other hand ...)
cbot has joined #ocaml
<companion_cube> :D
<companion_cube> indeed, Z3 is totally different
<companion_cube> SMT solvers are much more complicated beasts
<zozozo> Given the problems I've had installing sattools, I agree that embedding is easier for the end user
<Drup> well, there is SMT solvers, and then there is Z3.
<sgronblo> it seems like something that will keep people outside of the language because you have to figure out what files you need to create and how to structure your project etc
sgronblo has quit [Quit: Lost terminal]
<Drup> (I like the use of first class modules in sattools)
<companion_cube> Drup: these days I think CVC4 is as sophisticated as Z3 :)
MercurialAlchemi has quit [Ping timeout: 260 seconds]
alfredo_ has joined #ocaml
shinnya has joined #ocaml
alfredo has quit [Ping timeout: 268 seconds]
spew has joined #ocaml
freusque has quit [Ping timeout: 260 seconds]
al-damiri has joined #ocaml
yomimono has quit [Ping timeout: 240 seconds]
ciniglio has quit [Remote host closed the connection]
yomimono has joined #ocaml
hashpuppy has joined #ocaml
freusque has joined #ocaml
spew has quit [Quit: foobar]
copy` has joined #ocaml
raphinou has quit [Ping timeout: 240 seconds]
dxtr has joined #ocaml
dxtr has quit [Client Quit]
dxtr has joined #ocaml
MercurialAlchemi has joined #ocaml
freusque has quit [Quit: WeeChat 1.7]
ciniglio has joined #ocaml
mfp has quit [Ping timeout: 240 seconds]
rpg has quit [Ping timeout: 268 seconds]
robertc has joined #ocaml
yomimono has quit [Ping timeout: 240 seconds]
yomimono has joined #ocaml
jabroney has joined #ocaml
mengu has quit [Remote host closed the connection]
mengu has joined #ocaml
mengu has quit [Ping timeout: 240 seconds]
rpg has joined #ocaml
FreeBirdLjj has joined #ocaml
Simn has quit [Ping timeout: 246 seconds]
<zozozo> is there a rationale for Int64 *not* defining (+), (-) and the other usual arithmetic infix operators ?
shinnya has quit [Ping timeout: 260 seconds]
rpg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<companion_cube> old age
rpg has joined #ocaml
<zozozo> ^^
<zozozo> what woudl be the probability of a PR adding these operators being merged ? hypothetically of course, :p
<flux> the problem could be that there is code there that has open Int64 in it, and if you introduce them directly to the Int64, you might break such code
<toolslive> I usually define something like ( *: )
<flux> on the other hand if you add them to a submodule ie. Ops, it wouldn't be as convenient :)
<toolslive> my infix brain reads them more easily
<zozozo> personally, I would find code that does: Int64.(a + b) rather horrifying with '+' being the usual operators on ints
oliverfriedmann has quit []
<flux> a new warning comes to mind: warn if using Foo.(expr), but expr doesn't use anything defined from the scope of the module Foo
<flux> ..though I suppose types would already tell you that in the general case..
<zozozo> flux: isn't that the already existing unused open warning ?
<flux> there's an unused open warning warning?
<zozozo> warning 33 according to ocamlc doc
<flux> cool :)
ollehar has joined #ocaml
<thizanne> utop # List.(Array.make);;
<thizanne> Characters 0-17:
<thizanne> Warning 33: unused open Batteries.List.
<thizanne> that does it
<Drup> flux: unused open handles that, I think
<Drup> ah, late to the party :p
Simn has joined #ocaml
yomimono has quit [Ping timeout: 240 seconds]
freusque has joined #ocaml
alfredo_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
ollehar has quit [Quit: ollehar]
fraya has joined #ocaml
yomimono has joined #ocaml
zv has quit [Ping timeout: 240 seconds]
rpg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
zpe has quit [Remote host closed the connection]
zpe has joined #ocaml
rpg has joined #ocaml
ygrek_ has joined #ocaml
zpe has quit [Ping timeout: 240 seconds]
AltGr has left #ocaml [#ocaml]
fraya has left #ocaml ["Leaving"]
mfp has joined #ocaml
cbot has quit [Ping timeout: 246 seconds]
andreas__ has quit [Quit: Connection closed for inactivity]
cbot has joined #ocaml
diphuser has joined #ocaml
kakadu has left #ocaml ["Konversation terminated!"]
kakadu has joined #ocaml
ziyourenxiang has quit [Quit: Leaving]
Anarchos has joined #ocaml
rpg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
rpg has joined #ocaml
<zozozo> hm... do any of you have a solution for when two libs you want to use both define a top-level module with the same name ?
<Anarchos> renaming module ? let module G = A in ... G.commonvalue ?
<Anarchos> zozozo fully qualified access to inner module ? let v = A.COMMONMODULE.v and w = B.COMMONMODULE.v
hashpuppy has quit [Quit: Connection closed for inactivity]
<flux> I think the problem here is that A and B are in fcat A.A, and there is no COMMONMODULE?-)
<flux> there is no solution to this problem as far as I know
<zozozo> yup, there is no path before the common module, both are top-level unfortunately...
<lyxia> a way to rename modules from dependencies would be nice to have
<octachron> zozozo, I fear that there is no solution other than either patching the concerned libraries or finally implenting namespaces in the compiler
<copy`> Report the issue to the library authors (all top-level modules should start with the library name, shouldn't they?)
<flux> well, they can't just change it without breaking existing programs :). but that would be nice, yes
<zozozo> even more so that the two libs actually expose bindings for the same C library (minisat), so both have a more or less good reason to have a Minisat top-level module...
yomimono has quit [Ping timeout: 240 seconds]
<Drup> zozozo: well, sattools should pack everything.
<Drup> (i guess it's sattools and companion_cube's minisat)
<zozozo> Drup: indeed
<zozozo> i just opened an issue in the sattools repo
Sim_n has joined #ocaml
Simn has quit [Ping timeout: 246 seconds]
Anarchos has quit [Remote host closed the connection]
Anarchos has joined #ocaml
rpg has quit [Quit: Textual IRC Client: www.textualapp.com]
freusque has quit [Quit: WeeChat 1.7]
ygrek_ has quit [Ping timeout: 260 seconds]
yomimono has joined #ocaml
yomimono has quit [Ping timeout: 255 seconds]
kakadu has quit [Quit: Konversation terminated!]
FreeBirdLjj has quit [Remote host closed the connection]
yomimono has joined #ocaml
toolslive has quit [Ping timeout: 246 seconds]
tane has joined #ocaml
yomimono has quit [Ping timeout: 268 seconds]
toolslive has joined #ocaml
cbot_ has joined #ocaml
cbot has quit [Ping timeout: 268 seconds]
TheLemonMan has joined #ocaml
ygrek_ has joined #ocaml
Anarchos has quit [Remote host closed the connection]
Anarchos has joined #ocaml
kakadu has joined #ocaml
jack5638 has quit [Ping timeout: 246 seconds]
rpg has joined #ocaml
jack5638 has joined #ocaml
freusque has joined #ocaml
zv has joined #ocaml
pierpa has joined #ocaml
zv has quit [Ping timeout: 260 seconds]
diphuser has quit [Ping timeout: 260 seconds]
MercurialAlchemi has quit [Ping timeout: 246 seconds]
diphuser has joined #ocaml
yomimono has joined #ocaml
kareeeeem has joined #ocaml
yomimono has quit [Ping timeout: 268 seconds]
jnavila has joined #ocaml
spew has joined #ocaml
cbot has joined #ocaml
cbot_ has quit [Ping timeout: 260 seconds]
freusque has quit [Quit: WeeChat 1.7]
yomimono has joined #ocaml
yomimono has quit [Ping timeout: 260 seconds]
jnavila has quit [Remote host closed the connection]
TheLemonMan has quit [Quit: "It's now safe to turn off your computer."]
aspiwack[m] has quit [*.net *.split]
ktosiek[m] has quit [*.net *.split]
tane has quit [Quit: Leaving]
_andre has quit [Quit: leaving]
aspiwack[m] has joined #ocaml
ktosiek[m] has joined #ocaml
cbot has quit [Ping timeout: 240 seconds]
spew has quit [Ping timeout: 246 seconds]
cbot has joined #ocaml
sepp2k has quit [Quit: Leaving.]
diphuser has quit [Ping timeout: 240 seconds]
sepp2k has joined #ocaml
cbot_ has joined #ocaml
cbot has quit [Ping timeout: 240 seconds]
sepp2k has quit [Ping timeout: 240 seconds]
mbrock has quit []
kakadu has quit [Remote host closed the connection]
mengu has joined #ocaml
jabroney has quit [Quit: Leaving.]
Sim_n has quit [Ping timeout: 246 seconds]
richi238 has joined #ocaml
Anarchos has quit [Quit: Vision[0.10.1]: i've been blurred!]
cbot_ has quit [Ping timeout: 268 seconds]
yomimono has joined #ocaml
yomimono has quit [Ping timeout: 268 seconds]
jlam_ is now known as jlam
spew has joined #ocaml
shinnya has joined #ocaml
zv has joined #ocaml
lambda_foo has joined #ocaml
kareeeeem has quit [Quit: Connection closed for inactivity]
snowcrshd has joined #ocaml
snowcrshd has quit [Client Quit]
jao has joined #ocaml
spew has quit [Quit: foobar]
infinity0_ has joined #ocaml
infinity0_ has quit [Changing host]
infinity0 has quit [Killed (adams.freenode.net (Nickname regained by services))]
infinity0 has joined #ocaml
infinity0 has quit [Remote host closed the connection]