<ahf>
it's been great fun so far. i'm mostly used to erlang, so there is still a lot of things i need to watch out for
^elyse^ has quit [Quit: Leaving...]
<zozozo>
hm.. mirage website seems to be offline
<ahf>
yes
<ahf>
same for me
<nchambers>
ahf: have you seen elixir?
pierpa has quit [Ping timeout: 240 seconds]
<ahf>
nchambers: yes, it's very much up in the erlang community these days
madroach has quit [Ping timeout: 246 seconds]
<ahf>
we still mostly only use erlang itself out where i work, but i think it is going to be easier to find elixir people soon. it seems like a lot of people find it interesting these days
<ahf>
also people who are normally not interested in FP
<ahf>
here in copenhagen we have a very active elixir (and erlang) user group, where people meet up often and toy around with the language
lobo has quit [Quit: leaving]
madroach has joined #ocaml
seangrove has quit [Remote host closed the connection]
seangrove has joined #ocaml
<ahf>
can i refer to another parameterized signature in a parameterized signature without making my first signature parameterized over the signature i want to refer to?
<ahf>
in a module struct, i'd do module Foo = Foo.Make (C)
badon has joined #ocaml
<Drup>
ahf: I need an example of what you want to do
<ahf>
the problem is the module Log = Log.Make (C) line
<ahf>
the error is 'Module Log.Make(C) cannot be aliased'
<Drup>
what is the definition of Log ?
<Drup>
oh, it's in a sig
<ahf>
updated the gist
<ahf>
yeah, called it .ml incorrectly
<Drup>
the good method is to create a Log.S signature that is the output signature of the Log.Make functor
<Drup>
the quick method is "module Log : module type of Log.Make(C)"
<ahf>
not sure i get how the good method looks?
<ahf>
how do i define the output signature of the Make functor?
<Drup>
look at the module Map in the standard library
<ahf>
will do, thanks
manizzle has quit [Ping timeout: 240 seconds]
bobry has quit [Quit: Connection closed for inactivity]
morolin has joined #ocaml
mcmillhj has joined #ocaml
seangrove has quit [Ping timeout: 260 seconds]
ygrek has quit [Ping timeout: 246 seconds]
nullcatxxx_ has joined #ocaml
rand has quit [Quit: leaving]
eikke has quit [Ping timeout: 244 seconds]
IbnFirnas has quit [Ping timeout: 244 seconds]
Intensity has quit [Ping timeout: 244 seconds]
nullcatx_ has quit [Ping timeout: 240 seconds]
mrvn_ is now known as mrvn
ncthom91 has joined #ocaml
ncthom91 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Bahman has joined #ocaml
Algebr has joined #ocaml
ygrek has joined #ocaml
jcao219 has joined #ocaml
ncthom91 has joined #ocaml
sivoais has quit [Ping timeout: 260 seconds]
ncthom91 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Algebr has quit [Remote host closed the connection]
sivoais has joined #ocaml
sivoais has quit [Read error: Connection reset by peer]
sivoais has joined #ocaml
Bahman has quit [Quit: Ave atque vale]
ianhedoesit has joined #ocaml
switchy has quit [*.net *.split]
mac10688 has quit [Ping timeout: 260 seconds]
ril has joined #ocaml
raphaelss has joined #ocaml
GooseYAr1 is now known as GooseYArd
enamex has joined #ocaml
nullcatxxx_ has quit [Ping timeout: 240 seconds]
psy_ has joined #ocaml
nullcatxxx_ has joined #ocaml
darkf has joined #ocaml
nullcatxxx_ has quit [Ping timeout: 246 seconds]
nullcatxxx_ has joined #ocaml
tmtwd has joined #ocaml
nullcatxxx_ has quit [Read error: Connection reset by peer]
slash^ has joined #ocaml
nullcatxxx_ has joined #ocaml
tmtwd_ has joined #ocaml
badon has quit [Disconnected by services]
badon_ has joined #ocaml
badon_ is now known as badon
nullcatxxx_ has quit [Read error: Connection reset by peer]
ianhedoesit has quit [Quit: leaving]
python476 has joined #ocaml
fluter has quit [Ping timeout: 272 seconds]
nullcatxxx_ has joined #ocaml
enamex has quit [Ping timeout: 260 seconds]
nullcatx_ has joined #ocaml
nullcatxxx_ has quit [Ping timeout: 260 seconds]
fluter has joined #ocaml
ousado_ has quit [Ping timeout: 240 seconds]
raphaelss has quit [Ping timeout: 246 seconds]
enamex has joined #ocaml
nullcatx_ has quit [Ping timeout: 240 seconds]
nullcatxxx_ has joined #ocaml
Guest94160 has quit [Ping timeout: 240 seconds]
ousado_ has joined #ocaml
trix has joined #ocaml
trix is now known as Guest86048
MercurialAlchemi has joined #ocaml
nullcatxxx_ has quit [Read error: Connection reset by peer]
nullcatxxx_ has joined #ocaml
tmtwd_ has quit [Ping timeout: 240 seconds]
nullcatxxx_ has quit [Read error: Connection reset by peer]
tmtwd has quit [Ping timeout: 246 seconds]
nullcatxxx_ has joined #ocaml
ousado_ has quit [Ping timeout: 260 seconds]
nullcatx_ has joined #ocaml
nullcatxxx_ has quit [Read error: Connection reset by peer]
enamex has quit [Ping timeout: 246 seconds]
python476 has quit [Ping timeout: 246 seconds]
nullcatx_ has quit [Ping timeout: 246 seconds]
nullcatxxx_ has joined #ocaml
sgnb` has joined #ocaml
sgnb has quit [Ping timeout: 264 seconds]
damason has quit [Ping timeout: 264 seconds]
damason_afk has joined #ocaml
nullcatxxx_ has quit [Read error: Connection reset by peer]
native_killer has joined #ocaml
nullcatxxx_ has joined #ocaml
jludlam_ has joined #ocaml
mort___ has joined #ocaml
Sorella has quit [Quit: Connection closed for inactivity]
native_killer has quit [Ping timeout: 246 seconds]
nullcatxxx_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
Guest63185 has quit [Ping timeout: 240 seconds]
jludlam_ has quit [Ping timeout: 260 seconds]
johnelse has joined #ocaml
johnelse is now known as Guest64300
nullcatxxx_ has joined #ocaml
ousado_ has joined #ocaml
damason_afk has quit [Remote host closed the connection]
tane has joined #ocaml
JacobEdelman has quit [Quit: Connection closed for inactivity]
averell has joined #ocaml
octachron has joined #ocaml
switchy has joined #ocaml
nullcatxxx_ has quit [Ping timeout: 246 seconds]
Simn has joined #ocaml
ygrek has quit [Ping timeout: 240 seconds]
fluter has quit [Ping timeout: 260 seconds]
ril has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
Bahman has joined #ocaml
rand has joined #ocaml
badon has quit [Ping timeout: 260 seconds]
fluter has joined #ocaml
badon has joined #ocaml
^elyse^ has joined #ocaml
Haudegen has quit [Ping timeout: 246 seconds]
python476 has joined #ocaml
<reynir>
I'm trying to move some js_of_ocaml code from camlp4 to ppx. I'm not sure what to do about Deriving(Json), is there a ppx equivalent for that?
<companion_cube>
ppx_deriving_yojson
<reynir>
hm
Haudegen has joined #ocaml
yegods has joined #ocaml
<reynir>
Ok, i needed to sprinkle some extra conversion
yegods has quit [Remote host closed the connection]
Bahman has quit [Remote host closed the connection]
Bahman has joined #ocaml
pveber has joined #ocaml
<pveber>
I'd like to write an ocamlbuild plugin that generates mllib or mlpack files from directory contents. Anybody already seen/done that?
FreeBirdLjj has joined #ocaml
<mrvn>
use oasis
^elyse^ has quit [Quit: Leaving]
<pveber>
I do use oasis for most of my projects, but I have a particular case where the compilation scheme used in oasis does not work (same module names in packed libraries)
<mrvn>
use subdirs
<mrvn>
namespaces
dsheets has joined #ocaml
<pveber>
even with subdirs it does not work cleanly: I have foo/A, bar/A, with bar/A depending on foo/A, and I get warnings that A appears in several directories.
demonimin_ has quit [Remote host closed the connection]
<mrvn>
pveber: put the equaliy named modules into different submodules, e.g. the library name.
<mrvn>
s/submodules/modules as submodules/
<mrvn>
So you get Foo.A and BAR.A
raphaelss has joined #ocaml
<mrvn>
In ocaml you can't have 2 modules withe same (fully qualified) name.
zpe has quit [Read error: Connection reset by peer]
<pveber>
mrvn: I'm well aware of that. The issue is that oasis generates the packed libraries in the same directory that the module of the pack. While there is nothing wrong with "namespaces", using a pack requires to use a "-I" option that makes the cmi of the packed modules visible. Hence the warnings
<pveber>
*modules* of the pack
pierpa has joined #ocaml
dsheets has quit [Ping timeout: 246 seconds]
Bahman has quit [Quit: Ave atque vale]
jcao219 has quit [Ping timeout: 260 seconds]
Sorella has joined #ocaml
agumonkey has quit [Ping timeout: 260 seconds]
agumonkey has joined #ocaml
yegods has joined #ocaml
BitPuffin|osx has quit [Ping timeout: 240 seconds]
cyraxjoe has quit [Quit: No Ping reply in 180 seconds.]
cyraxjoe has joined #ocaml
struk|desk has joined #ocaml
<gasche_>
pveber: that sounds like an amusing thing to try
<gasche_>
for example, you could
theblatt1 has quit [Ping timeout: 240 seconds]
<gasche_>
name your subdirectories foo.mldir
struk|desk2 has quit [Remote host closed the connection]
<gasche_>
and have two rules foo.mldir -> foo.mllib, foo.mldir -> foo.ml
theblatte has joined #ocaml
<gasche_>
hm
<gasche_>
it would arguably be more robust to have foo.mldir *and* foo.mllib together, to list the modules you want to build inside foo.mldir
<gasche_>
and you could try to use module-aliases instead of pack
yegods has quit [Remote host closed the connection]
dsheets has joined #ocaml
lobo has joined #ocaml
ncthom91 has joined #ocaml
raphaelss has quit [Ping timeout: 246 seconds]
ncthom91 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
^elyse^ has joined #ocaml
^elyse^ has quit [Quit: Leaving]
ncthom91 has joined #ocaml
yegods has joined #ocaml
cody` has joined #ocaml
yulin has joined #ocaml
pveber_ has joined #ocaml
pveber has quit [Ping timeout: 246 seconds]
<pveber_>
gasche: actually I'd like the plugin to build a pack with all ml files it finds in a specified subdirectory
<pveber_>
(not sure it's so important, but it's also an occasion to learn ocamlbuild)
<pveber_>
I thought I could use dynamic dependencies for that
<pveber_>
the rule would produce "%.mlpack" but I'm unsure what to put as a dependency
yulin has left #ocaml [#ocaml]
yegods has quit [Read error: Connection reset by peer]
yegods has joined #ocaml
^elyse^ has joined #ocaml
mort___ has quit [Quit: Leaving.]
nuuit has quit [Ping timeout: 246 seconds]
<gasche_>
pveber_: have you tried just depending on % ?
<gasche_>
(you would need a stamp argument for proper need-rebuild decisions)
<pveber_>
yes but in the present case '%' would be a dir, which makes ocamlbuild complain: Exception Sys_error("Is a directory")
<pveber_>
for now, I just don't have a dep for the rule, and fail if the directory doesn't exist
nuuit has joined #ocaml
nuuit has quit [Client Quit]
nuuit has joined #ocaml
mac10688 has joined #ocaml
yegods has quit [Read error: Connection reset by peer]
dsheets has quit [Ping timeout: 246 seconds]
yegods has joined #ocaml
JacobEdelman has joined #ocaml
mort___ has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
<gasche_>
pveber_: your model is fairly fragile in any case if you do not list the packed modules somewhere
<gasche_>
because "what .ml files are in this subdirectory" is not robust wrt. the building model
<gasche_>
(what if one of these files is actually a .mlp that gets preprocessed by another rule?)
<companion_cube>
hi gasche_, nice merging spree :p
agumonkey has quit [Ping timeout: 246 seconds]
<pveber_>
Fair enough (I was bitten by this very issue two minutes ago)
Haudegen has quit [Ping timeout: 246 seconds]
python476 has quit [Ping timeout: 246 seconds]
enamex has joined #ocaml
<Drup>
companion_cube: just so you know, jsoo's deriving (Json) is not yojson at all
mort___ has left #ocaml [#ocaml]
^elyse^ has quit [Quit: Leaving]
<Drup>
and can't be replaced by it
<Drup>
(at least, not in the usual case, which is eliom related)
agumonkey has joined #ocaml
python476 has joined #ocaml
native_killer has joined #ocaml
<Drup>
(there is a ppx version in preparation for jsoo's next version)
<Drup>
reynir: ^
<reynir>
! awesome
<companion_cube>
oh.
<companion_cube>
how is it different?
<Drup>
companion_cube: jsoo's deriving is basically marshall in Json
<companion_cube>
hu
<Drup>
it maps to jsoo's memory model almost directly
<reynir>
jsoo = js_of_ocaml?
<Drup>
it's mostly used for eliom's RPC stuff
<companion_cube>
oh I think I see
<companion_cube>
weird.
<Drup>
reynir: yes
<Drup>
companion_cube: it was never intended for general use, it's mostly for eliom really :)