gildor changed the topic of #ocaml to: Discussions about the OCaml programming language | http://caml.inria.fr/ | OCaml 3.12.0 http://bit.ly/aNZBUp
<thelema> hcarty: ping
<gildor> thelema: it is quite late in my TZ
<gildor> thelema: I will be off to bed soon
boscop_ has quit [Ping timeout: 246 seconds]
cthuluh has quit [Quit: ~]
<thelema> gildor: sleep, then. I'll play with this for a bit and then continue what I need to do
<thelema> Thanks for working on this
ymasory_ has joined #ocaml
mrvn has quit [Ping timeout: 252 seconds]
mrvn has joined #ocaml
ymasory_ has quit [Quit: Leaving]
arubin has joined #ocaml
Yoric has quit [Quit: Yoric]
joewilliams is now known as joewilliams_away
cthuluh has joined #ocaml
eelte has joined #ocaml
coucou747 has quit [Read error: Operation timed out]
joewilliams_away is now known as joewilliams
qqmrw has joined #ocaml
haelix_ has joined #ocaml
hyperbor1ean has joined #ocaml
schme has quit [*.net *.split]
pantsd has quit [*.net *.split]
flux has quit [*.net *.split]
orbitz has quit [*.net *.split]
cods has quit [*.net *.split]
rossberg has quit [*.net *.split]
Tobu has quit [*.net *.split]
bitbckt has quit [*.net *.split]
svenl_ has quit [*.net *.split]
jld has quit [*.net *.split]
ftrvxmtrx has quit [*.net *.split]
jonafan has quit [*.net *.split]
hto has quit [*.net *.split]
rixed has quit [*.net *.split]
dgfitch has quit [*.net *.split]
philtor has quit [*.net *.split]
fabjan has quit [*.net *.split]
mcclurmc has quit [*.net *.split]
f[x] has quit [*.net *.split]
thelema has quit [*.net *.split]
Obfuscate has quit [*.net *.split]
noj has quit [*.net *.split]
cthuluh has quit [*.net *.split]
brendan has quit [*.net *.split]
emmanuelux has quit [*.net *.split]
hcarty has quit [*.net *.split]
Tianon has quit [*.net *.split]
wagle has quit [*.net *.split]
strlen has quit [*.net *.split]
fremo__ has quit [*.net *.split]
bohanlon has quit [*.net *.split]
eye-scuzzy has quit [*.net *.split]
npouillard has quit [*.net *.split]
gildor has quit [*.net *.split]
sgnb has quit [*.net *.split]
Pepe_ has quit [*.net *.split]
diml has quit [*.net *.split]
_2x2l has quit [*.net *.split]
Amorphous has quit [*.net *.split]
lopex has quit [*.net *.split]
mattam has quit [*.net *.split]
eelte has quit [*.net *.split]
fraggle_ has quit [*.net *.split]
myu2 has quit [*.net *.split]
explodus has quit [*.net *.split]
srcerer has quit [*.net *.split]
hyperboreean has quit [*.net *.split]
bacam has quit [*.net *.split]
jlouis has quit [*.net *.split]
haelix has quit [*.net *.split]
nimred has quit [*.net *.split]
Lor has quit [*.net *.split]
emias has quit [*.net *.split]
Asmadeus has quit [*.net *.split]
caligula_ has quit [*.net *.split]
joewilliams has quit [*.net *.split]
ptrf has quit [*.net *.split]
nejimban has quit [*.net *.split]
bzzbzz has quit [*.net *.split]
Derander has quit [*.net *.split]
rwmjones has quit [*.net *.split]
rproust has quit [*.net *.split]
patronus has quit [*.net *.split]
kerneis has quit [*.net *.split]
arubin has quit [*.net *.split]
mrvn has quit [*.net *.split]
pheredhel` has quit [*.net *.split]
willb has quit [*.net *.split]
kaustuv has quit [*.net *.split]
zzz_` has quit [*.net *.split]
deavid has quit [*.net *.split]
adrien has quit [*.net *.split]
coucou747 has joined #ocaml
fraggle_ has joined #ocaml
bacam_ has joined #ocaml
avsm has joined #ocaml
cthuluh has joined #ocaml
brendan has joined #ocaml
emmanuelux has joined #ocaml
hcarty has joined #ocaml
Tianon has joined #ocaml
wagle has joined #ocaml
strlen has joined #ocaml
fremo__ has joined #ocaml
dnolen has joined #ocaml
dnolen has quit [Excess Flood]
dnolen has joined #ocaml
bzzbzz has joined #ocaml
bohanlon has joined #ocaml
eye-scuzzy has joined #ocaml
npouillard has joined #ocaml
gildor has joined #ocaml
sgnb has joined #ocaml
Pepe_ has joined #ocaml
diml has joined #ocaml
_2x2l has joined #ocaml
emias has joined #ocaml
Derander has joined #ocaml
rwmjones has joined #ocaml
rproust has joined #ocaml
patronus has joined #ocaml
kerneis has joined #ocaml
nimred_ has joined #ocaml
jlouis_ has joined #ocaml
ptrf has joined #ocaml
Asmadeus has joined #ocaml
caligula_ has joined #ocaml
joewilliams has joined #ocaml
nejimban has joined #ocaml
ftrvxmtrx has joined #ocaml
jonafan has joined #ocaml
hto has joined #ocaml
rixed has joined #ocaml
dgfitch has joined #ocaml
schme has joined #ocaml
pantsd has joined #ocaml
flux has joined #ocaml
jld has joined #ocaml
orbitz has joined #ocaml
cods has joined #ocaml
rossberg has joined #ocaml
Tobu has joined #ocaml
bitbckt has joined #ocaml
svenl_ has joined #ocaml
Amorphous has joined #ocaml
lopex has joined #ocaml
mattam has joined #ocaml
philtor has joined #ocaml
fabjan has joined #ocaml
mcclurmc has joined #ocaml
f[x] has joined #ocaml
thelema has joined #ocaml
Obfuscate has joined #ocaml
noj has joined #ocaml
myu2 has joined #ocaml
mrvn has joined #ocaml
pheredhel` has joined #ocaml
willb has joined #ocaml
kaustuv has joined #ocaml
zzz_` has joined #ocaml
deavid has joined #ocaml
adrien has joined #ocaml
lopex has quit []
thelema_ has joined #ocaml
thelema has quit [Ping timeout: 240 seconds]
myu2 has quit [Remote host closed the connection]
explodus has joined #ocaml
scooty-puff has joined #ocaml
<scooty-puff> i was wondering if using functors with known size "arrays" that expand to some type t, which would be a tuple
<scooty-puff> would actually be worth it
<scooty-puff> this is for use with multidimensional points
<scooty-puff> i guess another question is if its possible - were it haskell, i'd use peano numbers and type classes, or maybe type families
<thelema_> why not use a tuple (or record)?
thelema_ is now known as thelema
<scooty-puff> well, that is the idea
<scooty-puff> for a "body" type containing an int giving the dimensions, then an array of floats containing the actual
<scooty-puff> point
<scooty-puff> the idea would be to instead have a 'a body, where for <some type meaning one> body, you just have the value
<scooty-puff> etc.
<thelema> not a big deal in ocaml to have things this generic
<scooty-puff> basically, i don't need to know the number of dimensions at runtime, just some aggregations on them
<scooty-puff> are there any open libraries that do this?
<thelema> then you don't need functors, just use arrays
<scooty-puff> ok
<thelema> there's plenty of libraries that work with arrays. Are you looking for high-performance numerical stuff?
<scooty-puff> i'm assuming then the compiler would be smart enough to eliminate a lot of the bounds checking that it wouldn't be doing with tuples
<scooty-puff> yes, but it would have to be very platform independent - no asm, etc.
<scooty-puff> and the arrays aren't the big part
<scooty-puff> just had been thinking of interesting ways to improve the algorithm
<thelema> Well, depending on the functions you're using, they'd do the bounds check once (to find out how much to iterate) and then use unchecked access (like tuples) along the way.
<scooty-puff> though if there are multiple and you prefer one, that would be useful
<scooty-puff> ok
<thelema> lacaml is what i'm using now, although it helps to know blas/lapack
<scooty-puff> ok, thanks for all the help
<scooty-puff> does ocaml automatically perform unpacking of values as appropriate, if thats makes sense?
<scooty-puff> i.e. int * int * (int * int)
<scooty-puff> as int * int * int * int
<scooty-puff> or would it have to be with separate record types?
<scooty-puff> (at compile time)
<thelema> The ocaml compiler is pretty literal about doing what you ask it to
<thelema> ocaml's great performance is mostly due to very efficient high-level primitives
<thelema> it won't rewrite your data structures or deforest or any of these brittle optimizations
npouillard has quit [Read error: Operation timed out]
npouillard has joined #ocaml
<scooty-puff> ok
sepp2k has joined #ocaml
scooty-puff has quit [Quit: Leaving]
emmanuelux has quit [Ping timeout: 248 seconds]
eye-scuzzy has quit [Read error: Operation timed out]
eye-scuzzy has joined #ocaml
ulfdoz has joined #ocaml
myu2 has joined #ocaml
dnolen has quit [Quit: dnolen]
jonafan_ has joined #ocaml
jonafan has quit [Ping timeout: 246 seconds]
joewilliams is now known as joewilliams_away
philtor has quit [Ping timeout: 240 seconds]
ulfdoz has quit [Ping timeout: 250 seconds]
joelr has joined #ocaml
ygrek has joined #ocaml
larhat has joined #ocaml
ttamttam has joined #ocaml
sepp2k has quit [Ping timeout: 246 seconds]
sepp2k has joined #ocaml
ikaros has joined #ocaml
Cyanure has joined #ocaml
mcclurmc_home has joined #ocaml
adlsaks has joined #ocaml
Associat0r has joined #ocaml
ikaros has quit [Quit: Leave the magic to Houdini]
nimred_ has quit [Quit: leaving]
nimred has joined #ocaml
joelr has quit [Quit: joelr]
ankit9 has joined #ocaml
<flux> I wonder..
<flux> if, one day, it would be possible to take a bulk of ocaml code
<flux> and automatically replace type string with the read/write-capable version of batteries
<flux> and have it all just work (TM). of course, to actually be helpful, some inference step for having a less strict requirements, would be nice. or possibly hand-work.
mcclurmc_home has quit [Ping timeout: 276 seconds]
hcarty has quit [Ping timeout: 248 seconds]
ygrek has quit [Ping timeout: 246 seconds]
bacam_ is now known as bacam
Yoric has joined #ocaml
Yoric has quit [Client Quit]
Wojtas has joined #ocaml
<Wojtas> Hello, how can I write a function that checks if a list has a specific type, so that it returns a bool?
<f[x]> 0 = Sys.command "python isinstance(x,t)"
hyperbor1ean has quit [Quit: leaving]
<flux> hah, hah.
<flux> wojtas, you cannot
<flux> wojtas, maybe you can pass a boolean (or a function) with the list, that gives answer to that
Associat0r has quit [Quit: Associat0r]
<Wojtas> ok
f[x] has quit [Ping timeout: 240 seconds]
lopex has joined #ocaml
noj has quit [Ping timeout: 240 seconds]
<mrvn> Wojtas: no
<mrvn> Wojtas: at runtime only memory representation of a type is accessible, not the type itself. And the representation is far from unique.
f[x] has joined #ocaml
Wojtas has quit [Quit: Nettalk6 - www.ntalk.de]
Yoric has joined #ocaml
hyperboreean has joined #ocaml
f[x] has quit [Ping timeout: 260 seconds]
MUILTFN has joined #ocaml
<rproust> what I am doing wrong?
<rproust> ocamldsort *.ml -mli -opt <depend
<rproust> Error: error while parsing ocamldep output
<rproust> the depend file was generated using ocamldep in a very standard way
edwin has joined #ocaml
edwin has left #ocaml []
<kaustuv> rproust: what is ocamldsort?
<kaustuv> why on earth would you need something like that when you can just -include depend in the Makefile?
<rproust> when you link files, you need to give them in the correct order
<rproust> what I need is to have "ocamlfind ocamlopt $(.cmx's sorted by dependency) -o toto.native"
f[x] has joined #ocaml
<rproust> I already have the depend file included
Associat0r has joined #ocaml
<rproust> it's a version pb apparently
<kaustuv> This worked for me:
<kaustuv> /tmp/ocamldsort-0.15.0 % ocamldep -pp camlp4o *.ml > depend
<kaustuv> /tmp/ocamldsort-0.15.0 % ./ocamldsort.opt *.ml -mli -opt < depend
<kaustuv> files.cmx dep_debug.cmx dep_error.cmx dep_parse.cmx params.cmx dependencies.cmx dep_sort.cmx main.cmx
<rproust> I have an older version installed (godi's)
<kaustuv> I think you should avoid such nonstandard hacks and use ocamlbuild
f[x] has quit [Ping timeout: 240 seconds]
<rproust> from ocamlbuild's page: "The only precise documentation is the Ocamlbuild source code."
<rproust> I prefer documented hacks to undocumented standards
f[x] has joined #ocaml
<kaustuv> The key word is "precise". There is slightly less precise documentation on the wiki.
<rproust> Yeah, the quote's from the wiki ( http://brion.inria.fr/gallium/index.php/Tags )
<rproust> and ocamldsort is available in godi (not up to date though), which makes it standard enough for what I need
Associat0r has quit [Quit: Associat0r]
joelr has joined #ocaml
adlsaks has quit [Ping timeout: 276 seconds]
boscop_ has joined #ocaml
cods has quit [Quit: plouf]
adlsaks has joined #ocaml
ftrvxmtrx has quit [Ping timeout: 246 seconds]
jlouis_ is now known as jlouis
JohnnyL has joined #ocaml
dnolen has joined #ocaml
myu2 has quit [Remote host closed the connection]
ftrvxmtrx has joined #ocaml
wagle has quit [Ping timeout: 248 seconds]
emmanuelux has joined #ocaml
adlsaks has quit [Ping timeout: 246 seconds]
oriba has joined #ocaml
adlsaks has joined #ocaml
Associat0r has joined #ocaml
<joelr> what would you call a request/reply pair?
Amorphous has quit [Read error: Operation timed out]
<flux> Exchange?
<rproust> exchange? reqrep? communication? queryAnswer?
Amorphous has joined #ocaml
<joelr> query, that's it!
<joelr> thanks
<rproust> protocol_bit?
myu2 has joined #ocaml
ikaros has joined #ocaml
<joelr> how do you do this, again?
<joelr> module Query (E: Endpoint.Type) (P: Page) = struct let module M = P with P.t = E.req in ...
Associat0r has left #ocaml []
<joelr> sorry, that would be ' let module M = P with type t = E.req in ...'
<joelr> the error is Error: This expression has type P.t but an expression was expected of type E.req
rwallace has left #ocaml []
<joelr> and P.t does indeed have the same type as E.req
wagle has joined #ocaml
<joelr> thelema: ^
* joelr knows thelema knows
<rproust> try module Query (E: Endpoint.Type) (P: Page with type t = E.req)
<joelr> yay, rproust too
<joelr> rproust: thanks
<rproust> not sure but it might be that
<joelr> rproust: that passed the compiler muster
<joelr> thanks!
<joelr> <- is learning a ton
dnolen has quit [Quit: dnolen]
adlsaks has quit [Ping timeout: 264 seconds]
lopex has quit []
rwmjones has quit [Read error: Operation timed out]
hcarty has joined #ocaml
<hcarty> thelema: pong
rwmjones has joined #ocaml
<joelr> rwmjones: hi richard
<rwmjones> joelr: hello
larhat has quit [Quit: Leaving.]
<JohnnyL> what do you guys think about F#?
<JohnnyL> Looks like it
<JohnnyL> 's trying to steal OCaml's thunder.
<joelr> ugh
<mrvn> pretty much
<joelr> i think it's been trying to for the past 2-3 years, no?
<joelr> at least
<JohnnyL> I had found it suprising that Ocaml only had multicore support starting in late 09
joewilliams_away is now known as joewilliams
<thelema> JohnnyL: ocaml doesn't have multicore support
<thelema> hcarty: I made you an admin on http://oasis.ocamlcore.org/dev/admin/odb if you want to play with odb
<thelema> uh oh - has the ancient module gone to the bit-bucket in the sky? http://merjis.com/developers/ancient
lopex has joined #ocaml
<joelr> rwmjones: ^
joelr has quit [Quit: joelr]
lamawithonel has quit [Ping timeout: 246 seconds]
lamawithonel has joined #ocaml
sudo has joined #ocaml
sudo has quit [Read error: Connection reset by peer]
lamawithonel_ has joined #ocaml
jonafan_ is now known as jonafan
lamawithonel has quit [Ping timeout: 246 seconds]
lamawithonel_ has quit [Ping timeout: 246 seconds]
lamawithonel_ has joined #ocaml
JohnnyL has left #ocaml []
avsm has quit [Quit: Leaving.]
yezariaely has joined #ocaml
MUILTFN has quit [Ping timeout: 250 seconds]
ttamttam has quit [Remote host closed the connection]
ulfdoz has joined #ocaml
<hcarty> thelema: Cool, thanks
boscop__ has joined #ocaml
alexyk has joined #ocaml
<alexyk> so I want to learn oasis and ocamlbuild. Do I have to learn ocamlbuild first? Does oasis subsume ocamlbuild?
boscop_ has quit [Ping timeout: 246 seconds]
<gildor> alexyk: you can ignore part of ocamlbuild if you use oasis
<hcarty> alexyk: My understanding is that you can use oasis for a lot without dealing with ocamlbuild directly, but for some uses you still need to do some work with ocamlbuild.
<gildor> hcarty: indeed, if you need some "advanced" stuff like syntax extension, you'll need to add a couple of line in _tags
<alexyk> ok
<hcarty> gildor: That's what I had gathered from discussions in here
<gildor> hcarty: if you need extra rules (e.g. to use alphaCaml or ocamlify) you'll have to hack myocamlbuild.ml, but this is REALLY advanced stuff
<gildor> alexyk: the syntax extension stuff is very simple in fact, see my today answer to Joel Reymont on caml-list
<gildor> alexyk: read also my two other reply to hcarty ^^^
<alexyk> gildor: when, if ever, do you plan to support omake?
<gildor> oasis don't claim to be a 100% frontend for ocamlbuild, just provide the basic stuff you need (C library building and ocamlfind handling)
<gildor> alexyk: I plan, one day, to support
<gildor> alexyk: patches are welcome ;-)
<alexyk> gildor: I don't even know omake yet :)
<gildor> alexyk: for now, ocamlbuild is the main plugin I have worked on, but this is only a plugin
<alexyk> but it looked right... if only it were supported better
<gildor> alexyk: I even stated that one of my goal was to support omake
<gildor> but EENOUGHTIME got me
* gildor time for dinner
<alexyk> bon appetit
* bitbckt just heard Julia Child in his head
<alexyk> let's say I want to explore zeromq form ocaml. How would I manage and fork processes?
<alexyk> or do folks mostly do manual programs for client and server?
<hcarty> alexyk: Most MPI distributions have their own tools for starting a set of processes. zeromq may have something similar.
ttamttam has joined #ocaml
philtor has joined #ocaml
jonafan has quit [Read error: Connection reset by peer]
alexyk has quit [Quit: alexyk]
<rwmjones> thelema: sorry missed that
<rwmjones> thelema: that website has problems (same server as ocaml-tutorial), however
alexyk has joined #ocaml
<rwmjones> thelema: the ancient code is hosted here
<rwmjones> although it does need some love .. someone really needs to rewrite the mmalloc stuff
ttamttam has quit [Quit: ttamttam]
joelr has joined #ocaml
ymasory has quit [Remote host closed the connection]
ymasory has joined #ocaml
ymasory has quit [Remote host closed the connection]
jonafan has joined #ocaml
Modius has quit [Ping timeout: 250 seconds]
alexyk has quit [Quit: alexyk]
alexyk has joined #ocaml
boscop__ has quit [Ping timeout: 246 seconds]
myu2 has quit [Remote host closed the connection]
<thelema> rwmjones: great - thanks for the pointer to the code
<hyperboreean> are there any ocaml bindings for protocol buffers out there ?
<joelr> hyperboreean: piqi
<joelr> we switched to piqi from thrift
<hyperboreean> joelr: heh, just looking at it right now
<hyperboreean> though it says largely compatible
<hyperboreean> joelr: how was your experience with it until now ?
DimitryKakadu has joined #ocaml
ymasory has joined #ocaml
<joelr> hyperboreean: positive so far
<alexyk> joelr: how are you launching zeromq processes?
<joelr> alexyk: from the command line
<alexyk> joelr: so you have a few distinct roles for processes?
DimitryKakadu has quit [Remote host closed the connection]
<joelr> of course
<alexyk> I'm wondering about parallel workers
<joelr> you should start with the zmq users guide
<alexyk> say you want to launch 20 identical workers
<alexyk> joelr: yeah, reading it... but curious to peek ahead :)
<rwmjones> hyperboreean: what are "protocol buffer"? maybe ocaml-bitstring?
<alexyk> rwmjones: Google Protocol Buffers
rwmjones has quit [Ping timeout: 240 seconds]
fraggle_ has quit [Quit: -ENOBRAIN]
fraggle_ has joined #ocaml
alexyk has quit [Quit: alexyk]
rwmjones has joined #ocaml
Modius has joined #ocaml
edwin has joined #ocaml
wagle has quit [Read error: Connection reset by peer]
ulfdoz has quit [Read error: Operation timed out]
alexyk has joined #ocaml
edwin has quit [Remote host closed the connection]
ymasory has quit [Remote host closed the connection]
<gildor> thelema, hcarty: concerning odb
ymasory has joined #ocaml
<gildor> thelema, hcarty: I am now listing findlib name rather than package name
<gildor> should I also list program provided by the package ?
<gildor> i.e. ocamlify provide ocamlify
<hcarty> gildor: List where?
ymasory has quit [Client Quit]
<hcarty> gildor: On the page, or elsewhere? I see a file listing.
<hcarty> gildor: But I'm not sure if I thinking of this in the correct context.
<gildor> hcarty: this is an odb compatible repository, extracted from oasis-db
<gildor> hcarty: I try to mimic what thelema has done by hand
<hcarty> gildor: Ah. In that case, it's probably a good idea to include that. I believe the original odb info files have that information.
ymasory has joined #ocaml
<hcarty> gildor: I need to go - I can hopefully provide some feedback tomorrow if needed
<gildor> see you
wagle has joined #ocaml
wagle has quit [Quit: No Ping reply in 180 seconds.]
wagle has joined #ocaml
rwmjones has quit [Read error: Operation timed out]
wagle has quit [Ping timeout: 240 seconds]
emias has quit [Quit: Changing server]
emias has joined #ocaml
sepp2k has quit [Quit: Leaving.]
ikaros has quit [Quit: Leave the magic to Houdini]
rwmjones has joined #ocaml
wagle has joined #ocaml
yezariaely has quit [Quit: Leaving.]
adlsaks has joined #ocaml
wagle has quit [Remote host closed the connection]
wagle has joined #ocaml
Yoric has quit [Quit: Yoric]
MUILTFN has joined #ocaml
adlsaks has quit [Ping timeout: 240 seconds]
enthymeme has joined #ocaml
alexyk has quit [Quit: alexyk]
Amorphous has quit [Ping timeout: 250 seconds]
joelr has quit [Quit: joelr]
Amorphous has joined #ocaml
<ptrf> is there any way of specifying a signature with a functor definition? like with modules, you can do module M = (struct ... end : sig ... end) - I get an error when I try module M = functor ( Q : S ) -> (struct ... end : sig ... end) for appropriate Q and S
<ptrf> wait... i dont
<ptrf> disregard that :P
<ptrf> when you start making nested functors, is it then time to get some rest?
alexyk has joined #ocaml
Cyanure has quit [Remote host closed the connection]
alexyk has quit [Read error: Connection reset by peer]