<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
<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 ?
<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>
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
<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]