<Leonidas>
seangrov`: you can use 'ocamlfind list' to get the list of packages you have installed in that switch
silver has quit [Read error: Connection reset by peer]
mmin has joined #ocaml
struk|desk2 has joined #ocaml
struk|desk has quit [Ping timeout: 248 seconds]
zv has joined #ocaml
yomimono_ has quit [Ping timeout: 246 seconds]
thomasga has quit [Quit: Leaving.]
struk|desk2 is now known as struk|desk|away
mmin has quit [Ping timeout: 268 seconds]
Vintila has joined #ocaml
Reshi has joined #ocaml
hxegon has joined #ocaml
<dwwoelfel>
Playing with js_of_ocaml: if I do `(new%js Js.date_now)##toString`, ocamlbuild is happy but Merlin complains that "Error: This expression has type Js.js_string Js.t Js.meth but an expression was expected of type 'a Js.gen_prop"
<dwwoelfel>
If I do `(new%js Js.date_now)##toString()` then Merlin is happy but ocaml build complains "Error: This expression has type Js.js_string Js.t Js.meth but an expression was expected of type 'jsoo_593685be -> 'jsoo_521a4c10 Js.meth"
<seangrov`>
Anyone used Irmin to the point where they can list subkeys at a given path?
<Drup>
sounds like you have one configure with the ppx and the other with the camlp4
Emmanuel` has joined #ocaml
<dwwoelfel>
Is there a way to tell what might be adding camlp4?
<Drup>
ggole_: pretty sure I saw a paper for that, for simply typed lambda calculus. It was already quite complicated
<ggole_>
I found Hughes' paper
yomimono has joined #ocaml
Emmanuel`_ has quit [Ping timeout: 248 seconds]
yomimono has quit [Ping timeout: 240 seconds]
thomasga has joined #ocaml
bacam_ is now known as bacam
thegameg has quit [Quit: Bye bye.]
Vintila has quit [Ping timeout: 268 seconds]
octachron has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
thomasga has quit [Quit: Leaving.]
thomasga has joined #ocaml
yomimono has joined #ocaml
seangrov` has joined #ocaml
seangrov` has quit [Ping timeout: 264 seconds]
_andre has joined #ocaml
thomasga has quit [Quit: Leaving.]
Reshi has joined #ocaml
dsheets has joined #ocaml
Vintila has joined #ocaml
yomimono_ has joined #ocaml
yomimono has quit [Ping timeout: 244 seconds]
yomimono_ has quit [Ping timeout: 260 seconds]
Guest65352 has quit [Read error: Connection reset by peer]
thomasga has joined #ocaml
tnguyen has joined #ocaml
tnguyen is now known as Guest60150
antkong has quit [Ping timeout: 260 seconds]
antkong has joined #ocaml
thomasga1 has joined #ocaml
thomasga has quit [Read error: Connection reset by peer]
yomimono_ has joined #ocaml
jgjl has joined #ocaml
Reshi has quit [Ping timeout: 260 seconds]
malc_ has joined #ocaml
jgjl has quit [Max SendQ exceeded]
thomasga1 has quit [Read error: Connection reset by peer]
jgjl has joined #ocaml
tennix has quit [Ping timeout: 248 seconds]
oxcsh has joined #ocaml
lokien_ has joined #ocaml
Haudegen has quit [Ping timeout: 248 seconds]
jgjl has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
jgjl has joined #ocaml
malc_ has left #ocaml ["ERC (IRC client for Emacs 25.0.50.2)"]
thegameg has joined #ocaml
Algebr` has joined #ocaml
jgjl has quit [Client Quit]
<Leonidas>
destrius_: yes, they do.
dsheets has quit [Remote host closed the connection]
jgjl has joined #ocaml
thomasga has joined #ocaml
Algebr`` has joined #ocaml
Algebr` has quit [Ping timeout: 264 seconds]
thomasga1 has joined #ocaml
NingaLeaf has quit [Quit: Leaving.]
thomasga has quit [Ping timeout: 276 seconds]
Haudegen has joined #ocaml
thomasga1 has quit [Ping timeout: 240 seconds]
Algebr`` has quit [Remote host closed the connection]
jgjl has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<flux>
nice that flambda has so many tunables. sounds like a task for a genetic algorithm to find the most optimal values for a given program on a given platform :)
<flux>
for that extra 0.1% of performance
pierpa has joined #ocaml
struk|desk|away is now known as struk|desk2
seangrov` has joined #ocaml
seangrov` has quit [Ping timeout: 248 seconds]
Reshi has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
rbocquet1 is now known as rbocquet
FreeBirdLjj has joined #ocaml
tennix has joined #ocaml
dsheets has joined #ocaml
jgjl has joined #ocaml
oxcsh has quit []
jgjl has quit [Max SendQ exceeded]
jgjl has joined #ocaml
jgjl has quit [Max SendQ exceeded]
dsheets has quit [Remote host closed the connection]
govg has joined #ocaml
dsheets has joined #ocaml
dsheets has quit [Remote host closed the connection]
<companion_cube>
to map a new location to an old location
d0nn1e has joined #ocaml
<tianon>
seangrov`: haha no, but I've had that question before (and confused some of Adam's employees); "AdmWiggin" is an old screen name I used to use a lot (originally Adm.Wiggin, making the "Admiral" a little more clear)
struk|desk|away is now known as struk|desk2
<seangrov`>
Hehe, just checking :)
<tianon>
:)
sz0 has quit [Read error: Connection reset by peer]
MiiMo has joined #ocaml
<MiiMo>
bonjour y a t il des français ici?
<companion_cube>
#ocaml-fr
foocraft has quit [Ping timeout: 260 seconds]
jgjl has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<flux>
I was like "cool, oml package has updated and it has new dependencies, now I can install it!"
<flux>
then its dependency slap failed to compile :/
sh0t has quit [Ping timeout: 240 seconds]
<flux>
slap.2.0.0 seems to compile fine
<smondet>
flux: what's your setup? slap installs fine for me
johnf has quit [Read error: Connection reset by peer]
<smondet>
he, for me it's slap 2.0.2
<companion_cube>
does oml feature a multi-dimensional array, like in numpy?
<flux>
smondet, I think the problem was with 3.0.0
<flux>
smondet, does that compile for you?
<flux>
my issue seemed like a pretty important type error :)
sz0 has joined #ocaml
<flux>
but the feature set of oml seems pretty nice
warp has quit [Ping timeout: 240 seconds]
<flux>
so basically if you need machine learning with ocaml, no reason to try anything else before (unless you want to use GPU acceleration)
<companion_cube>
it would be nice if theano, torch, etc. would provide a C API to their GPU/CPU stuff, so we could use it from OCaml
<flux>
I think the code doesn't need to even be particularly optimized or elegant to beat the crap out of a CPU
<flux>
so I guess maybe a pure ocaml solution (barring opencl bindings) would be feasible.. :)
<smondet>
a
larhat has quit [Quit: Leaving.]
<flux>
do any of those web-toplevels have graphics output features?
govg has joined #ocaml
<companion_cube>
ipython has lots of stuff for displaying data, at least in python
<companion_cube>
the tutoriels on numpy/scipy/pandas/... in ipython look very very nice
sh0t has joined #ocaml
seangrov` has quit [Remote host closed the connection]
<Algebr```>
because ipython has a huge userbase..
seangrove has joined #ocaml
<companion_cube>
sure, so it's better to build upon it than reinvent the wheel, I think
<companion_cube>
especially since ipython-ocaml exists
GeorgeHahn has joined #ocaml
struk|desk2 is now known as struk|desk|away
<companion_cube>
the issue, I suppose, is how to make OCaml types display properly
NingaLeaf has joined #ocaml
<smondet>
IOCaml notbooks are able to display some graphics, I remember there was that demo of a video decoder
<companion_cube>
oh I thought the question was about plotting graphs, histograms and the likes
<companion_cube>
btw, can't oml have optional dependencies?
mmin has quit [Quit: Leaving]
<flux>
maybe it can, but the version 0.0.5 suggests it may not be completely well-thought on all areas :)
<smondet>
you should add issues/PRs Leo is very responsive
<Drup>
flux: there is a demo of iocaml that shows svg directly
<Drup>
well, iocamljs
<flux>
I guess that would be a good first step
<Drup>
(as far as opencl goes, there is spoc, and it even runs in the browser with WebCL)
<flux>
well, webcl runs with a nokia plugin on some browsers?-)
<Drup>
well, yes
<flux>
and spoc is quite interesting, but it doesn't seem to be maintained
<flux>
[ERROR] spoc is not available because your system doesn't comply with ocaml-version = "4.01.0".
<flux>
:(
<Drup>
Ah, I don't know how hard it would be to upgrade that
<flux>
also no packages found matching opencl :(
* seangrove
sighs
<seangrove>
I've done `opam install lwt ssl cohttp`, but getting an error: `ocamlfind: Package `cohttp.lwt' not found`
<seangrove>
Bah, now `./configure --enable-lwt --enable-gen` -> ocamlfind: Package `cohttp.lwt' not found W: Field 'pkg_cohttp_lwt' is not set: Command ''/Users/s/.opam/4.02.3/bin/ocamlfind' query -format %d cohttp.lwt > '/var/folders/dl/3vkt0hs5045_cvfcyzmjyr480000gn/T/oasis-bc28b2.txt'' terminated with error code 2
johnf has joined #ocaml
<flux>
works for me(TM)
<flux>
cohttp.lwt (version: 0.19.3)
<seangrove>
Well, yes, hence the sigh. Often difficult to get deterministic envs.
<seangrove>
`$ opam list | grep cohttp` -> `cohttp 0.19.3 HTTP(S) library for Lwt, Async and Mirage`
<Drup>
The cohttp waters are particularly tumultuous these days. The big camlp4/ppx exodus is apparently troublesome
<companion_cube>
and SSL, too
<flux>
cool, 150 packages to reinstall and 10 to upgrade, here we go :)
<Drup>
> A new version for ocamlfind
<Drup>
Noooooo
<companion_cube>
again? -_-
<flux>
first I pinned down the slap, though :)
<Drup>
companion_cube: it was a joke
<companion_cube>
I'm relieved :p
<flux>
I reaaally doubt all those packages would really have needed a recompliation because of the ocamlfind upgrade :)
<flux>
but I love to see some concurrent compilation love opam gives to my CPU, so it's ok..
<seangrove>
Notice how opam pin is using a different ocamlfind. I'll try the make clean stuff
<seangrove>
Yup, that make distclean stuff must have been it. What does it do?
<Drup>
it cleans oasis configure files
<Drup>
which includes the path to the various libraries
<seangrove>
>.<
<seangrove>
Why would I want the oasis config files to be static - aren't they just another file that can go out of sync?
<Drup>
Yes.
<Drup>
oasis is a bit old in this respect.
* Drup
is taken by a coughing fit.
<seangrove>
Sorry, feeling very perturbed right now. I keep hitting these kinds of issues whenever I feel like I'm building up some momentum. It's the biggest blocker from introducing this at a larger scale inside the company :P
govg has quit [Quit: leaving]
govg has joined #ocaml
<Drup>
this one is annoying, yes
NingaLeaf has joined #ocaml
dsheets has quit [Remote host closed the connection]
dsheets has joined #ocaml
antkong has quit [Read error: Connection reset by peer]
dsheets has quit [Ping timeout: 248 seconds]
butts_butts has joined #ocaml
seangrove has quit [Remote host closed the connection]
sz0 has joined #ocaml
sz0 has quit [Client Quit]
seangrove has joined #ocaml
<seangrove>
How do people keep merlin + opam switches in sync in emacs?
dsheets has joined #ocaml
yunxing has joined #ocaml
foocraft has joined #ocaml
dsheets has quit [Ping timeout: 268 seconds]
govg has quit [Quit: leaving]
foocraft has quit [Remote host closed the connection]
<mort___>
(i will try that anyway and see how confused i get...)
Anarchos has joined #ocaml
sh0t has quit [Ping timeout: 248 seconds]
jeffmo has quit [Quit: jeffmo]
<companion_cube>
you don't need to include Map.Make
<companion_cube>
unless you want to replace the standard map
<mort___>
(i think) i was trying to create a functor that will take a type and create a Map that's augmented with the ability to support [@@deriving sexp_of] on record types that have elements of the type of that Map
<mort___>
if that makes sense
hxegon has quit [Ping timeout: 244 seconds]
seangrove has quit [Remote host closed the connection]
therac25 has joined #ocaml
seangrove has joined #ocaml
<mort___>
there may be better ways to do this — it also seems that i "ought" to be able to create a module M1 that is the same as Map.Make(M0) where type M1.t = M0.t [@@deriving sexp_of]
<mort___>
but i don't know how or if that even makes sense
d0nn1e has quit [Ping timeout: 244 seconds]
d0nn1e has joined #ocaml
sh0t has joined #ocaml
dhil has quit [Ping timeout: 248 seconds]
jgjl has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
govg has quit [Quit: leaving]
govg has joined #ocaml
_andre has quit [Quit: home time]
<companion_cube>
I'm not sure it will work, M0.t is opaque
slash^ has quit [Read error: Connection reset by peer]
mort___ has quit [Quit: Leaving.]
hxegon has joined #ocaml
<mrvn>
flux: el_of_ocaml? Just implement the ocaml bytecode interpreter in el.
<Drup>
erlang_of_ocaml ? :3
<mrvn>
Drup: elisp (emacs script engine)
<Drup>
I know
<Drup>
that was another suggestion
ggole_ has quit []
dsheets has joined #ocaml
dsheets has quit [Ping timeout: 248 seconds]
yunxing has joined #ocaml
dhil has joined #ocaml
hxegon has quit [Ping timeout: 246 seconds]
jeffmo has joined #ocaml
<companion_cube>
I'd rather have erlang_of_ocaml, elisp_of_ocaml is boring :p
<seangrove>
I have a value of type EC2.Types.Tag.t - how do I get the key and value out of it?
<seangrove>
I see it right there in the definition, but can't figure out how to translate that into accessor code
<seangrove>
Ah, it's not tag.key, it's tag.EC2.Types.Tag.key
<seangrove>
Why is that?
yunxing has joined #ocaml
<mrvn>
seangrove: namespace
<mrvn>
key can be a lable in many different modules. For ocaml to infere which one you mean you have to give the module path
<mrvn>
tag.EC2.Types.Tag.key, EC2.Types.Tag.(tag.key), open EC2.Types tag.Tag.key, ...
<mrvn>
module Tag = EC2.Types.Tag tag.Tag.key
<seangrove>
mrvn: I like the module trick there. But what I find strange is that OCaml knows the type of tag, and it knows that that type has .key and .value
<seangrove>
What confusion could there be?
<mrvn>
how would it know the type of tag? It knows it after you used tag.EC2.Types.Tag.key.
<mrvn>
also you could have mistyped
<seangrove>
mrvn: Because I'm mapping over a list of EC2.Types.Tag
yunxing has quit [Read error: Connection reset by peer]
<mrvn>
with records if you specified the first label the rest autocompletes iirc. Otherwise you have to specify it all the time. ocaml is a bit stupid/strict there
yunxing has joined #ocaml
butts_butts has quit [Ping timeout: 244 seconds]
<seangrove>
Hrm, I don't really understand, but I'll move on for now. The `let module Tags = EC2.Types.Tag in` trick is nice
<mrvn>
seangrove: think of it going bottom up in the syntax tree. First it has to figure out all the leaves. If one leave doesn't have the module path it doesn't know what to make of it -> error. Only as it goes further up it could deduce what you ment from the type.
Anarchos has quit [Quit: Vision[0.9.7-H-20140108]: i've been blurred!]
<seangrove>
Oh, that's the opposite of how I thought it worked
<mrvn>
seangrove: When I have long module paths that I use often I always make a short alias at the top. If I use a module multiple times locally I open it with Tags.(tag.key, tag.foo, tag.bla)
<seangrove>
Heh, I'll just make the change and make a mental note to look into it more later
<seangrove>
mrvn: I want to alias it jsut within a local definition
<seangrove>
ocaml-aws has *so many* types, I'm not sure which I want to alias at the top yet
<mrvn>
hmm, you could do a first class module but that gets complex.
<mrvn>
seangrove: just open it: EC2.Types.Tag.( ..... code ....)
<mrvn>
let tags_str = Tag.(List.map /fun tag -> Printf.sprintf "%s=%s" tag.key tag.value) tags)
<seangrove>
mrvn: I'm ok with that level in this case now that I have a tiny idea about what's going on
<mrvn>
I would open EC2 for that function
<mrvn>
or module T = EC2.Types, you use that a lot.
<mrvn>
but well, main point is that it compiles
yunxing_ has joined #ocaml
GeorgeHahn has quit [Read error: Connection reset by peer]
yunxing has quit [Ping timeout: 248 seconds]
<Leonidas>
companion_cube: is there a way to generate all kinds of integers uniformly? I tried QCheck.Arbitrary.int max_int, but this fails with an Invalid_argument exception.
<companion_cube>
according to the doc of Random.int, the range must be lower than 2^30
sz0 has quit [Quit: My computer has gone to sleep. ZZZzzz…]
<companion_cube>
so, not that I know of
<companion_cube>
I suppose you could generate a boolean to know if you generate n or n+2^30, this kind of stuff
<mrvn>
you want an array with 4 billion ints?
<companion_cube>
Leonidas: otoh I use qcheck nowadays
hxegon has joined #ocaml
<mrvn>
oh, never mind, I misread Arbitrary
<companion_cube>
I have somewhere near the bottom of my todolist "merge qcheck and qtest"
<companion_cube>
but well
<companion_cube>
(qtest has shrinking, etc.)
sz0 has joined #ocaml
<Leonidas>
companion_cube: QCheck or QTest?
<companion_cube>
qtest
<companion_cube>
what I should do, indeed, is merge the Quickcheck module of qtest with qcheck, and use the result as a backend for qtest
<Leonidas>
meh, not a fan of stuff in comments.
<companion_cube>
well in my use-case it's awesome
seangrove has quit [Remote host closed the connection]
<companion_cube>
but I undertand your concern
<Leonidas>
but alright, having only up to 2^30 is alright with me.
<companion_cube>
Leonidas: do you write custom generators?
<Leonidas>
companion_cube: yes.
<mort___>
hm. how do i use ppx_sexp_conv inside utop?
<mort___>
hm
<Leonidas>
of course I guess I could somehow also write my custom generator for this, but I wanted to avoid reinventing the wheel.
<companion_cube>
Leonidas: and printers? because in qtest the api is a bit different
<Leonidas>
companion_cube: no, at least not yet.
<companion_cube>
(well it's better, imho, but still)
mort___1 has joined #ocaml
<mort___1>
hm
<Leonidas>
mort___1: require ppx_deriving and then ppx_sexp_conv
<companion_cube>
so I'm thinking of merging this with qcheck
<mort___1>
Leonidas: thanks but...
<mort___1>
utop # #require "ppx_sexp_conv";;
<mort___1>
File "", line 1, characters 0-4: Error: Parse error: illegal begin of top_phrase Fatal error: exception Pervasives.Exit
<mort___1>
(following #require "ppx_deriving";;)
Haudegen has quit [Ping timeout: 250 seconds]
mort___ has quit [Ping timeout: 260 seconds]
<Leonidas>
mort___1: let me build ppx_sexp_conv, a moment.
<mort___1>
ta
<Leonidas>
companion_cube: looks alright to me.
<companion_cube>
cool!
<companion_cube>
(the biggest advantage, to me, is that combining 'a arbitrary also combines printers, shrinkers, etc.)
<companion_cube>
(if they are present)
dothraki__ has quit [Ping timeout: 240 seconds]
<Leonidas>
mort___1: it works for me just fine.
<Leonidas>
mort___1: I also need to require sexplib and open Sexplib.Std, but that's another story.
<mort___1>
hm. moving my .ocamlinit out of the way stops it giving that error anyway
<mrvn>
val startCallback = (fun _ -> board#start)
<mrvn>
Error: The instance variable board cannot be accessed from the definition of another instance variable
<mrvn>
Can I get around that? It's not getting accessed there until later
<mort___1>
Leonidas: though it seems to spin when I try to actually use it
<companion_cube>
mrvn: use a method
<companion_cube>
I'd say
<mort___1>
(as in, i need to interrupt to get back console)
<mrvn>
companion_cube: That produces a closure that gets garbage collected
<mrvn>
hmm, I've lifted the board out of the class body but my "pauseButton#clicked#connect pauseCallback" still segfaults when triggered. With a global function as callback it works.
thomasga has quit [Ping timeout: 276 seconds]
larhat has quit [Quit: Leaving.]
Haudegen has joined #ocaml
antkong has joined #ocaml
silver has quit [Quit: rakede]
thomasga has joined #ocaml
<mort___1>
dumb question — is "opam install utop" supposed to install man pages? and if not, is there a way to get it to do so?
<mrvn>
companion_cube: Found the problem. The closure moves from the minor heap to the major heap and C didn't get the update.
TheLemonMan has quit [Quit: "It's now safe to turn off your computer."]
<mort___1>
ah got it. #camlp4o is a bad thing to have in .ocamlinit when trying to use ppx_deriving,ppx_sexp_conv (perhaps unsurprisingly...)
Reshi has joined #ocaml
destrius_ has quit [Remote host closed the connection]
Kakadu has quit [Remote host closed the connection]
amirmc has quit [Ping timeout: 240 seconds]
amirmc has joined #ocaml
<Leonidas>
mort___1: oh, indeed.
<Leonidas>
should've thought of that
jeffmo has quit [Read error: Connection reset by peer]
amirmc has quit [Ping timeout: 260 seconds]
NingaLeaf1 has joined #ocaml
mort___1 has quit [Quit: Leaving.]
GeorgeHahn has joined #ocaml
sillyotter has joined #ocaml
sillyotter has quit [Client Quit]
keep_learning has quit [Quit: This computer has gone to sleep]