gildor changed the topic of #ocaml to: Discussions about the OCaml programming language | http://caml.inria.fr/ | OCaml 3.12.1 http://bit.ly/nNVIVH
emmanuelux has quit [Ping timeout: 264 seconds]
emmanuelux has joined #ocaml
alxbl has joined #ocaml
mal`` has joined #ocaml
alxbl has quit [Read error: Operation timed out]
dnm has joined #ocaml
dnm is now known as Guest14256
alxbl has joined #ocaml
pango has quit [Remote host closed the connection]
Sablier has quit [Read error: Connection reset by peer]
noamsml[kersh] has joined #ocaml
noamsml[kersh] has quit [Remote host closed the connection]
noamsml[kersh] has joined #ocaml
pango has joined #ocaml
noamsml[kersh] has quit [Ping timeout: 245 seconds]
emmanuelux has quit [Remote host closed the connection]
isson has joined #ocaml
noamsml[kersh] has joined #ocaml
jamii has quit [Ping timeout: 244 seconds]
jamii has joined #ocaml
jamii has quit [Ping timeout: 245 seconds]
<bjorkintosh> does ocaml have a decent sound library?
<bjorkintosh> correction.
<bjorkintosh> usable sound library?
<bjorkintosh> somewhere in the batteries perhaps?
<thelema_> not in batteries
<thelema_> The SDL bindings support sound, afaik
<thelema_> what are you trying to do, specifically?
<bjorkintosh> make ocaml sing!
<thelema_> float array -> unit?
<bjorkintosh> hehehe.
<bjorkintosh> something like overtone.
<thelema_> nothing I'm aware of
<thelema_> The best I know of is liquidsoap / savonet
isson has left #ocaml []
<thelema_> bjorkintosh: looks lispy
<bjorkintosh> is lispy.
<bjorkintosh> and isn't that ever the problem!
<bjorkintosh> but it's a repl which 'makes sound' you see? trying to find something similar to play with in the ml's.
<thelema_> afaik, you'll have to build it.
<bjorkintosh> pity.
kmicinski has joined #ocaml
<bjorkintosh> i'm in luck! this http://www.slavepianos.org/rd/sw/smlsc3/README exists.
ivan\ has quit [Ping timeout: 252 seconds]
lamawithonel has joined #ocaml
ivan\ has joined #ocaml
noamsml[kersh] has quit [Ping timeout: 256 seconds]
noamsml[kersh] has joined #ocaml
wtetzner_ has quit [Ping timeout: 246 seconds]
struktured has quit [Ping timeout: 245 seconds]
kmicinski has quit [Ping timeout: 265 seconds]
cdidd has joined #ocaml
kmicinski has joined #ocaml
lamawithonel has quit []
Submarine_ has joined #ocaml
Submarine_ is now known as Submarine
lamawithonel has joined #ocaml
lamawithonel has quit [Client Quit]
yroeht has quit [Ping timeout: 265 seconds]
yroeht has joined #ocaml
djcoin has joined #ocaml
lamawithonel has joined #ocaml
lamawithonel has quit [Remote host closed the connection]
zuymanto has joined #ocaml
zuymanto has quit [Client Quit]
lamawithonel has joined #ocaml
kmicinski has quit [Ping timeout: 244 seconds]
ftrvxmtrx has quit [Quit: Leaving]
Submarine has quit [Ping timeout: 240 seconds]
pango is now known as pangoafk
Fnar has quit [Remote host closed the connection]
ftrvxmtrx has joined #ocaml
ocp has joined #ocaml
Sablier has joined #ocaml
thomasga has joined #ocaml
cyphase has quit [Read error: Connection reset by peer]
cyphase has joined #ocaml
mika1 has joined #ocaml
alxbl has quit [Ping timeout: 240 seconds]
djcoin has quit [Quit: WeeChat 0.3.2]
alxbl has joined #ocaml
eikke has joined #ocaml
Yoric has joined #ocaml
cago has joined #ocaml
mcclurmc has quit [Read error: Connection reset by peer]
jonathandav has quit [Read error: Connection reset by peer]
goncalo_ has joined #ocaml
goncalo has quit [Read error: Connection reset by peer]
jonathandav has joined #ocaml
mcclurmc has joined #ocaml
goncalo_ has quit [Ping timeout: 265 seconds]
goncalo has joined #ocaml
fpz has quit [Ping timeout: 244 seconds]
fpz has joined #ocaml
djcoin has joined #ocaml
Hussaind has joined #ocaml
Hussaind has left #ocaml []
<thomasga> is that expected that ocamlfind doesn't look first at the path specified during the configure step ?
<thomasga> (I've installed a second version of ocamlfind on my machine, and it picks up the site-lib path of the first installed version)
<adrien> "configure step" of what?
<thomasga> of ocamlfind
<adrien> and "which ocamlfind" is the new one?
<thomasga> (with -bindir /foo -libdir /bar -mandir /gna -no-topfind)
<thomasga> sure
nosuni has quit [Ping timeout: 245 seconds]
<thomasga> (the first thing I've checked before asking the question here :-) )
<thomasga> ocamlfind printconf shows me the conf of the first ocamlfind
djcoin has quit [Read error: Connection reset by peer]
<thomasga> /path/to/the/new/ocamlfind as well
djcoin has joined #ocaml
<thomasga> right, I found my error, forgot to add "-config <path/to/the/new/findlib.conf>" option
eikke has quit [Ping timeout: 252 seconds]
tmaedaZ has quit [Ping timeout: 244 seconds]
tmaedaZ has joined #ocaml
djcoin has quit [Read error: Connection reset by peer]
djcoin has joined #ocaml
djcoin has quit [Read error: Connection reset by peer]
djcoin has joined #ocaml
avsm has joined #ocaml
djcoin has quit [Read error: Connection reset by peer]
djcoin has joined #ocaml
avsm has quit [Quit: Leaving.]
djcoin has quit [Read error: Connection reset by peer]
djcoin has joined #ocaml
djcoin has quit [Read error: Connection reset by peer]
djcoin has joined #ocaml
bobry is now known as yoggi-
struktured has joined #ocaml
eikke has joined #ocaml
djcoin has quit [Read error: Connection reset by peer]
djcoin has joined #ocaml
wtetzner_ has joined #ocaml
djcoin has quit [Read error: Connection reset by peer]
avsm has joined #ocaml
djcoin has joined #ocaml
jamii has joined #ocaml
djcoin has quit [Read error: Connection reset by peer]
djcoin has joined #ocaml
djcoin has quit [Read error: Connection reset by peer]
djcoin has joined #ocaml
eni has joined #ocaml
eni has quit [Ping timeout: 248 seconds]
djcoin has quit [Read error: Connection reset by peer]
djcoin has joined #ocaml
djcoin has quit [Read error: Connection reset by peer]
struktured has quit [Ping timeout: 244 seconds]
smondet has joined #ocaml
djcoin has joined #ocaml
djcoin has quit [Read error: Connection reset by peer]
djcoin has joined #ocaml
avsm has quit [Quit: Leaving.]
thomasga has quit [Ping timeout: 244 seconds]
thomasga has joined #ocaml
gnuvince has quit [Ping timeout: 260 seconds]
yoggi- is now known as bobry
<thelema_> odb --package http://paste.debian.net/plain/170977 <- easy install of core
<thelema_> hmm, not quite working - dependency 'res' is broken somehow
djcoin has quit [Read error: Connection reset by peer]
djcoin has joined #ocaml
gnuvince has joined #ocaml
djcoin has quit [Read error: Connection reset by peer]
djcoin has joined #ocaml
bjorkintosh has quit [Quit: Leaving]
mcstar has joined #ocaml
avsm has joined #ocaml
kmicinski has joined #ocaml
eni has joined #ocaml
antegallya has quit [Ping timeout: 276 seconds]
kmicinski has quit [Ping timeout: 248 seconds]
djcoin has quit [Read error: Connection reset by peer]
djcoin has joined #ocaml
djcoin has quit [Client Quit]
djcoin has joined #ocaml
djcoin has quit [Read error: Connection reset by peer]
<thomasga> is there any way to make oasis pass the -ldconf <some/path> option to ocamlfind when installing a package ?
djcoin has joined #ocaml
Sablier has quit [Read error: Connection reset by peer]
<thomasga> (or to change the default ld.conf path for ocamlfind once for all)
<adrien> findlib.conf?
<adrien> "man findlib.conf" has the corersponding doc
<thomasga> cool, thx
<thomasga> seems that "ldconf = /foo/bar" in findlib.conf solves my problem, thx!
eni has quit [Ping timeout: 248 seconds]
smerz has joined #ocaml
mika1 has quit [Quit: Leaving.]
cago has quit [Quit: Leaving.]
eni has joined #ocaml
ftrvxmtrx has quit [Quit: Leaving]
zuymanto has joined #ocaml
djcoin has quit [Read error: Connection reset by peer]
ocp has quit [Ping timeout: 265 seconds]
kmicinski has joined #ocaml
<jonafan> does anyone use ocsigen?
<mcstar> how can one define mutually recursive types? in haskell, order of these definitions doesnt matter, but it seems in ocaml it does
<thelema_> mcstar: type a = b list and b = a option
<mcstar> :( should have thought of that
<mcstar> thanks
<jonafan> Or I guess Lwt
<mcstar> thelema_: it does the exact opposite as used with let
<thelema_> mcstar: ? let rec foo = ... bar ... and bar = ... foo ...
<mcstar> well, wo rec
<thelema_> yes, type doesn't need/use rec because types are by default recursive, as opposed to values
thelema has joined #ocaml
<diml> jonafan: i do
<jonafan> i need to do a http request in ocsigen
<jonafan> This is easy enough with ocamlnet
<jonafan> but i'd think there would be an awesome lwt way to do it
<mcstar> thelema_: are standard ocaml arrays considered slow to index, or slow to allocate?
<thelema> jonafan: to do a http request = to make one?
<thelema> mcstar: not particularly either.
<jonafan> yes
thelema_ has quit [Ping timeout: 245 seconds]
djcoin has joined #ocaml
<jonafan> ah of course
<thelema> mcstar: they're represented as a block composed of a tag word that has the length of the array in it plus the words of the data in the array. fast to index, fast to allocate
<mcstar> thelema: i wrote a prefix trie implementation in ocaml(my first program) and it turned out to be incredibly slow compared to haskell/cpp
<thelema> mcstar: pastebin the code?
<mcstar> i cant even load the full problem, i get segfault
<mcstar> sure thanks
<mcstar> it is a very simple mutable implementation, theres a 256 long array in every node
Submarine has joined #ocaml
Yoric has quit [Ping timeout: 245 seconds]
<thelema> type pftrie = {mutable isEnd : bool; mutable payLoad : (pftrie array) option}
<thelema> there's a few extra indirections here
kmicinski has quit [Ping timeout: 260 seconds]
<thelema> In ocaml, mutation does have a GC cost, as it has to keep track of pointers from the old heap to the young heap
djcoin has quit [Read error: Connection reset by peer]
<thelema> but I don't see anything obviously wrong/inefficient with the code
<mcstar> thelema: for example, for 50K words, haskell is done in 2 secs, ocaml in 10
<mcstar> i expected better mutable performance from a non-pure language(in contrast to haskell)
kmicinski has joined #ocaml
<mcstar> thelema: the part which is slow(the creation of the trie) must be saturated by allocation speed, thats why i asked the question about arrays
<mcstar> can the runtime show me some GC summary?
<thelema> I see. OCaml's allocation speed is pretty good in general, you may be hitting a mutation limit...
<thelema> Gc.stat();;
<adrien> and the GC has parameters to set
<mcstar> what does ^^ do?
<mcstar> is that a full summary?
<mcstar> i.e. should i execute it at the end?
Sablier has joined #ocaml
<thelema> ocaml does allocate a pretty large amount of memory - 700MB for 50K words out of my dict.
<mcstar> thats alright
<mcstar> my haskell one has 2GB> heap allocation
<mcstar> >2GB
<mcstar> but thats for 200K
<mcstar> thelema: so is there some switch/option to display the summary? that gc.stat only returns a struct with values
<adrien> quite often, if you know you're going to have a burst of allocations (and no freeing for some time), it can help to tweak the GC and make it less active for a few CPU minutes
<mcstar> or is that only possible while profiling?
<adrien> nah, you can print it, and I think the Gc module has a predefined function to print it
<adrien> (print_stats?)
<mcstar> i missed it
<thelema> Gc.print_stat stdout;;
<mcstar> Error: This expression has type Unix.file_descr
<mcstar> but an expression was expected of type out_channel
<mcstar> is this because i opened Unix?
<thelema> mcstar: yes
<thelema> mcstar: Gc.print_stat Pervasives.stdout;;
<mcstar> yes
<mcstar> heap_words: 158339072 for 50K
<mcstar> thelema: around 170K i get a segfault
<mcstar> but its weird, cause i get it pretty early on
<mcstar> just after i started the program
avsm has quit [Quit: Leaving.]
<thelema> mcstar: probably lack of tail recursion somewhere
<zorun> is that really a segfault?
<mcstar> it says so
<mcstar> ./pftrie 175000
<mcstar> Segmentation fault
<zorun> because iirc, an heap overflow because of recursion doesn't usually show up as a segfault
<mcstar> stack you mean?
<zorun> *usually doesn't
<tchell> I wrote a program the other day that segfaulted due to lack of tail recursion.
<zorun> yeah, sorry
<thelema> although I don't see a cause
<thelema> with this code, I can't see how it could segfault other than by a stack overflow
<thelema> zorun: it's not supposed to, but on some platforms, it still does
<mcstar> linux 64bit
<thelema> iirc, yes
<mcstar> but isnt this the best supported platform?
<mcstar> thelema: so if i give it more stack space, that error shouldnt happen?
<thelema> mcstar: yes
<thelema> ulimit -s 128000
<mcstar> there is this long env var, OCAMLRUNSOMETHING shoudl that work?
<thelema> OCAMLRUNPARAM
<mcstar> great works
<mcstar> now it will run out of memory simply
thomasga has quit [Ping timeout: 245 seconds]
thomasga has joined #ocaml
<mcstar> i should rewrite this to use long arrays, so the nodes would contain indices into this big ass array, instead of allocating many little ones
<thelema> OCAMLRUNPARAM=s=1m
<mcstar> thats what i did for the haskell one, it made it faster, but it worked and wasnt very slow, when it used the exact same scheme as this one
<thelema> mcstar: maybe; you's have to know the size of that array ahead of time
<mcstar> no
<mcstar> i mean why should i know?
<thelema> ocaml arrays aren't resizable
<mcstar> noway
<mcstar> XD
<thelema> yesway
<mcstar> but are they appendable?
<thelema> There's a number of libraries that implement resizable arrays
<mcstar> haskell arrays are copied when resized
<mcstar> naturally
<thelema> There's an Array.concat function that concatenates two arrays
<thelema> with full copying of both
<mcstar> thats perfect
<mcstar> anyway, the scheme is to have one array, that holds other constant sized arrays
<thelema> if you did that, you could get rid of the option in payLoad
eikke has quit [Ping timeout: 245 seconds]
<mcstar> and payload itself
<mcstar> the node just consists of a bool * int
<mcstar> (0 means empyt node)
companion_cube has quit [Read error: Operation timed out]
<mcstar> thelema: i hope in ocaml it would look less ugly http://pastebin.com/pLL2GC5y
<thelema> mcstar: if you're allowing weird optimizations, you may try `type pftrie = pftrie array`
<zorun> :o
<mcstar> how would that help?
<thelema> use arrays of 257 elements, with the last element being a pointer to one of two constant trie nodes, one being true and the other being false
<thelema> mcstar: it would get rid of all the extra baggage for the record and the option
<mcstar> hm
<mcstar> no i dont get it
<mcstar> wait
<mcstar> yes, i dont get it, you removed my bool variable, so how can a node be true/false anymore?
<mcstar> this doesnt typecheck in my head
<thelema> let yes_node = <some dummy trie node>
<thelema> let no_node = <some dummy trie node>
<mcstar> ah, you mean compare by memory address?
<thelema> if n.(256) == yes_node then (* is true *)
<mcstar> ok
<mcstar> that could work
<thelema> let empty = let rec seed = [| seed; seed; seed; seed; seed; seed; seed; seed |] in let e = Array.concat [seed; seed; seed; seed; seed; seed; seed; seed; [|seed|]] in for i = 0 to 255 do e.(i) <- e; done; e
<thelema> blah. that's unnecessarily complex without Obj.magic
<mcstar> :)
<thelema> let empty = let e = Array.make 257 (Obj.magic 0) in for i = 0 to 255 do e.(i) <- e; done; e
<thelema> anyway, something like that for yes_node and no_node, and then empty has .(256) <- no_node
<mcstar> but yes/no nodes dont need initialization
<thelema> they need to have some value, unless you're planning on just Obj.magic-ing them into existence
<mcstar> Array.create?
<mcstar> ah k that needs a seed
<thelema> yup, strings can be created uninitialized, but arrays have to have a value
<mcstar> how about just using a sum type?
<mcstar> option?
<thelema> has more overhead
<thelema> Just do either the seed construction or use Obj.magic
<mcstar> so what is this Obj.magic exactly?
<mcstar> can allocate any object?
<thelema> mcstar: tells the type system that you know what you're doing, even if it's totally wrong.
<mcstar> wo calling a constructor?
<mcstar> ok
kmicinski has quit [Ping timeout: 252 seconds]
<thelema> it's basically an unchecked coercion
pangoafk is now known as pango
<thelema> ok, finally fixed core package file: odb --package http://paste.debian.net/plain/170991
<hcarty> thelema: Do you think you'll provide that package file in the odb repository or send it to Jane St. to include in their repository/repositories?
<thelema> I'll see if someone else can verify that it works to install core, and then suggest it to Jane St.
<thelema> if they don't want it, then I'll put it in the odb repo
<hcarty> thelema: Trying now on a relatively fresh (yesterday) ocamlbrew install
<thelema> hcarty: thanks
lamawithonel has quit []
lamawithonel has joined #ocaml
<hcarty> thelema: Works here - 64 bit Linux, OCaml 3.12.1 (ocamlbrew), odb.ml snapshot downloaded yesterday
<thelema> hcarty: great.
<wmeyer``> thelema: Hi
<thelema> wmeyer``: hi
<wmeyer``> thelema: I rebased the patch
<hcarty> I have a sudden urge to serialize all of my data types as s-expressions...
<wmeyer``> hcarty: Later you will find your data turns to code :-)
<thelema> wmeyer``: one sec
<wmeyer``> hcarty: It's very dangeorus
<wmeyer``> hcarty: Lately I have done some Scheme - not being particulary excited - after 2hours the walls started to melt :-)
<thelema> wmeyer``: sorry for making you do that work; I was in the middle of my own merge, and I added some things, so it was easier for me to just finish my merge
<thelema> wmeyer``: have a look at the new code.
<wmeyer``> thelema: Not at all. It's my responsibilty to merge it with upstream. There was just a bogus git conflict which I fixed quickly.
BiDOrD_ has quit [Remote host closed the connection]
thomasga has quit [Ping timeout: 244 seconds]
thomasga has joined #ocaml
BiDOrD has joined #ocaml
thomasga has quit [Client Quit]
Yoric has joined #ocaml
Yoric has quit [Remote host closed the connection]
Yoric has joined #ocaml
<wmeyer``> thelema: I got an e-mail, cheers!
djcoin has joined #ocaml
<jonafan> what's the awesomest way to parse xml
<adrien> jedi tricks
<djcoin> regexp
<djcoin> :)
<jonafan> those are the same answer
<gnuvince> jonafan: couple of undergrads
<jonafan> i like that answer but none of the students here are capable
<gnuvince> jonafan: then I'd go with an XML parser
<jonafan> okay, but does an awesome xml parser exist for ocaml
<djcoin> How original ! :)
emmanuelux has joined #ocaml
<jonafan> there's a bunch on caml hump, but i don't know which one is the coolest
<hcarty> jonafan: Word on the street is that the cool kids are using Xmlm
<hcarty> jonafan: The hip crowd is using PXP
<jonafan> oh boy, now i have to decide which group is more legit
bjorkintosh has joined #ocaml
<wmeyer``> thelema: I would be able to implement the _oasis dependency parser - if you don't have much time
Anarchos has joined #ocaml
<thelema> wmeyer``: I don't have much time, please go ahead.
<wmeyer``> thelema: Thanks
lamawithonel has quit []
Snark has joined #ocaml
ivan\ has quit [Ping timeout: 240 seconds]
tomprince has quit [Ping timeout: 240 seconds]
ski has quit [Ping timeout: 240 seconds]
pippijn has quit [Ping timeout: 240 seconds]
ivan\ has joined #ocaml
mehitabel has quit [Ping timeout: 252 seconds]
ski has joined #ocaml
pippijn has joined #ocaml
pippijn has quit [Changing host]
pippijn has joined #ocaml
tchell has quit [Ping timeout: 252 seconds]
emmanuelux has quit [Remote host closed the connection]
emmanuelux has joined #ocaml
lamawithonel has joined #ocaml
tomprince has joined #ocaml
mehitabel has joined #ocaml
tchell has joined #ocaml
<jonafan> cool
kmicinski has joined #ocaml
<wmeyer``> lol it uses ARM on the server side?
<wmeyer``> Linaro is clearly an ARM distribution :-)
<adrien> jonafan: I've had PXP use quite a lot of memory here; I guess it loads everything at once (well, I'm almost sure)
<adrien> dunno if xmlm is different in this regard
<jonafan> i picked xmlm
Yoric has quit [Quit: Instantbird 1.2a1pre -- http://www.instantbird.com]
<wmeyer``> jonafan: good choice, I think one of the key features is online parsing of XML, there is coresponding Json library too
Yoric has joined #ocaml
<adrien> I guess "online" is sax-like, right? or "stream"?
<jonafan> unless it meshes well with Lwt, it's moot
<wmeyer``> adrien: "stream" is perhaps the right term here - the idea is to parse only when it's needed and reclaim immediately everything what is not needed no longer
mcstar has left #ocaml []
<wmeyer``> jonafan: I think Daniel would be able to answer, he was mentioning some while ago Lwt integration? AFAIR Of course to use non blocking stream you need to have a special support in xmlm
<jonafan> well, i think it'll be okay
<wmeyer``> jonafan: As long as you can "poll" the stream, you would be fine.
<mfp> didn't he post to the ML about his new design allowing to integrate with Lwt and such
<mfp> ?
Snark has quit [Quit: Quitte]
<wmeyer``> mfp: Yes, I also remeber something in that lines a couple of weeks ago
<wmeyer``> or month ago
<mfp> Non-blocking IO interface design Sun, 8 Apr 2012 22:37:02 +0200
<wmeyer``> thanks
<jonafan> getting the entire xml doc in memory shouldn't be too bad
<jonafan> either way, it'll be way faster than doing it in javascript and probably a lot easier for me
<wmeyer``> jonafan: do you use js_of_ocaml?
<jonafan> not really
<jonafan> i find it's too much to get it to talk to the js library i use
<jonafan> i've thought about porting the entire openlayers library to ocaml if i get bored though
<jonafan> it'd be quite a project
<jonafan> js_of_ocaml is really cool, just not for what i need to do
everyonemines has joined #ocaml
<adrien> wmeyer``: ok, thanks!
<adrien> pxp had annoyed me when I tried to load openstreetmap data
<adrien> 180MB of xml
<adrien> or so
<jonafan> yeah, this isn't going to be like that
<adrien> heh :-)
smerz has quit [Ping timeout: 245 seconds]
Yoric has quit [Ping timeout: 264 seconds]
BiDOrD_ has joined #ocaml
BiDOrD has quit [Ping timeout: 265 seconds]
everyonemines has quit [Quit: Leaving.]
Kakadu has joined #ocaml
Submarine has quit [Quit: Leaving]
<Kakadu> Do u know, does janestreet's core have some problems with configureing on 32bit machines? http://paste.in.ua/4280/
<orbitz> thelema: you rock!
<adrien> paper ='(
<adrien> actually =)
Yoric has joined #ocaml
<orbitz> How did you mispell 'make' and sitll get it to compile? haha
Sablier has quit [Read error: Connection reset by peer]
Sablier has joined #ocaml
<hcarty> jonafan: If you do anything with OCaml + openlayers I'm quite interested in hearing how it goes
<orbitz> hcarty: I got Core installed! (Well, I ran thelema's odb script"
<jonafan> well, i already tried using a ton of Js.Unsafe stuff, it's not worth the effort in my opinion
<jonafan> makes very gross code and it's very tedious
<thelema> orbitz: thanks
<orbitz> thelema: I had no idea you were such a Demolition Man conesiour
<thelema> orbitz: Nice that you get the reference.
<hcarty> orbitz: Very cool - Iwas able to get it installed that way too. I'm not sure I'll do anything with it... but I have it installed.
sivoais has quit [Quit: Lost terminal]
<thelema> orbitz: I assume you figured out the other half of being able to use core out of ~/.odb/lib
Hodapp has joined #ocaml
<thelema> although I guess it wouldn't even get to the point you were at in compiling if you hadn't.
sivoais has joined #ocaml
<orbitz> Yep
<orbitz> Oh, actually I haven't reid it yet
<orbitz> I assume the OCAMLPATh I setup took care of that
<thelema> yes, just the OCAMLPATH
<orbitz> But it works in toplevel
<orbitz> yep
<thelema> great
<orbitz> awesome, thank you
<orbitz> 1: Get Core instlaled 2: Take over the world 3: Profit
<orbitz> No ???'s in that equation
_andre has quit [Quit: leaving]
<thelema> the best way to thank me is to help the community by making something else easy to install by odb.
* Anarchos wonders what is odb...
<thelema> Anarchos: http://paste.in.ua/4280/
<thelema> err...
<hcarty> Is it possible to create a functor function, along the lines of: val make_map : ordered_type_module -> map_module_with_ordered_type_key
<thelema> Kakadu: that's a good question for their mailing list.
<hcarty> I'm expect that "functor function" is the wrong terminology here. I'm not sure what the correct term is.
gnuvince has quit [Ping timeout: 265 seconds]
Anarchos has quit [Quit: Vision[0.9.7-H-090423]: i've been blurred!]
dsheets has quit [Ping timeout: 250 seconds]
<gildor_> wmeyer``: why implement a dependency parser ?
<gildor_> for _oasis ?
dsheets has joined #ocaml
zuymanto has quit [Quit: zuymanto]
zuymanto has joined #ocaml
Kakadu has quit [Quit: Konversation terminated!]
zuymanto has quit [Client Quit]
zuymanto has joined #ocaml
zuymanto has quit [Client Quit]
zuymanto has joined #ocaml
Yoric has quit [Ping timeout: 252 seconds]
gnuvince has joined #ocaml
eni has quit [Ping timeout: 245 seconds]
eikke has joined #ocaml
zuymanto has quit [Quit: zuymanto]
zuymanto has joined #ocaml
zuymanto has quit [Client Quit]
zuymanto has joined #ocaml
zuymanto has quit [Client Quit]
kolera has joined #ocaml
<wmeyer``> gildor_: for odb
<wmeyer``> gildor_: parse _oasis file and get the dependencies from there
<gildor_> wmeyer``: why not
<gildor_> wmeyer``: however, you won't handle all options (flags, conditional and so on)
Anarchos has joined #ocaml
kolera is now known as randori
kmicinski has quit [Ping timeout: 250 seconds]
randori is now known as kolera
kmicinsk1 has joined #ocaml
kmicinsk1 has quit [Ping timeout: 265 seconds]
thomasga has joined #ocaml
jamii has quit [Read error: Operation timed out]
thomasga has quit [Quit: Leaving.]
cyphase has quit [Ping timeout: 245 seconds]
<wmeyer``> gildor_: Initial my idea was to reuse parts of Oasis
<wmeyer``> gildor_: And bolt it, if you can expose it would be great - the problem is of course to take a tarball and get the depdency we should not be concerned with installing oasis
<gildor_> wmeyer``: not an easy task in fact ;-)
<wmeyer``> gildor_: I think I agree with that - but not entirelly - oasis can help a lot with extracting partial information from _oasis files, but we really we need dependency list
<gildor_> wmeyer``: best you can do is to copy and paste the RecDescParser
<wmeyer``> gildor_: Ouch :-)
<wmeyer``> gildor_: I agree, or get it from the known location!
<wmeyer``> gildor_: As a script?
ulfdoz has joined #ocaml
<gildor_> gildor_: I will probably get rid of the this parser in fact, it is ugly and slow
<gildor_> wmeyer``: my best proposal is that you write a good replacement (fast and clear) and that I replace RecDescParser using that
<gildor_> i.e. something that generate the right AST and I use this AST in oasis and you use it in odb
Anarchos has quit [Quit: Vision[0.9.7-H-090423]: i've been blurred!]
<dsheets> anybody use lwt under js_of_ocaml here? how do you force evaluation of Lwt.t? how do you integrate mainloop?
* gildor_ gtg
<wmeyer``> gildor_: OK. I will look into that over the weekend.
cyphase has joined #ocaml
<wmeyer``> gildor_: I think with slowness I can't help. But with ugliness - we could have a micro parsing combinator library which I can ship with RecDescParser
<gildor_> wmeyer``: I am almost not online during the WE, send me a mail to tell me what you want to do so that we can gave something great for everyone ;-)
<wmeyer``> s/I/we :-)
<wmeyer``> gildor_: OK, try to look at it ASAP - checking out the tree now :-)
cdidd has quit [Remote host closed the connection]
<gildor_> wmeyer``: there are plenty of tests that parses _oasis in the oasis project, you can probably start by trying to replace the parser until you get something that passes the test
<wmeyer``> gildor_: OK. Thanks. BTW: How do you expand one AST to another?
<gildor_> which AST ?
<wmeyer``> gildor_: The AST you get from the parser to the simple & expanded AST which is the databse of information
<gildor_> so AST -> OASISTypes.package ?
<wmeyer``> gildor_: Probably yes -- don't know much about the codebase
<gildor_> I use a schema base approach, you register field and value parser in a schema and the schema is used to extract data and create section/package
<wmeyer``> gildor_: So you evaluate on demand what you need - interesting approach
<gildor_> have a look at OASISLibrary* and OASISAst
<gildor_> really gtg
eikke has quit [Ping timeout: 256 seconds]
eikke has joined #ocaml
smondet has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]
<wmeyer``> gildor_: thelema Might take some time to get all this done so stay tune!
<wmeyer``> is it only here that the weather outside is ridiculolsy hot
<thelema> wmeyer``: no rush - it might be easier to build a standalone exe inside the oasis tree that returns a csv (or otherwise) list of deps for a given _oasis file
<thelema> wmeyer``: if that's the case, we can just install oasis for that exe before installing anything with an _oasis file that doesn't have deps listed
<wmeyer``> thelema: Sounds like a good starting point idea
<wmeyer``> thelema: Maybe the oasis driver should be able to give that information in general
<wmeyer``> thelema: even going a bit further - the oasis-db protocol perhaps should give the dependencies of course
<wmeyer``> thelema: But I would really start with something standalone
<thelema> I wouldn't be surprised if there were some way to do this already, through some weird API that noone has ever heard of
<thelema> One important point is that it's not sufficient to look at all targets (executables + libraries) and union their dependencies, as some targets are test-only
<dsheets> what versioning system does odb use? semver?
<thelema> dsheets: none at all.
<thelema> dsheets: odb has no version.
<dsheets> i mean for packages
<thelema> well...
<dsheets> or are package compat not checked?
<thelema> dependencies give a findlib name (or executable name) and a version
kmicinsk1 has joined #ocaml
<thelema> versions are parsed as a [Number | not-number] list
<thelema> getting the version of an executable is currently a broken hack, but the version of a findlib package is easy to get
<thelema> err, the dependency has an operator as well - >, >=, or =
<thelema> comparison is done component by component in the list.
<thelema> That's the details
Sablier has quit [Read error: Connection reset by peer]
<dsheets> hmm ok. what is your opinion of semver?
<thelema> dsheets: I use it for batteries
<thelema> It's surprisingly conservative
djcoin has quit [Quit: WeeChat 0.3.2]
<dsheets> do you support the "-" and "+" subrevisions?
<thelema> It also makes us pay a lot of attention to compatibility
<thelema> in odb or batteries?
<thelema> we don't use + or - in batteries
<thelema> major.minor.rev is sufficient
<dsheets> excellent, ok
<dsheets> is batteries' versioning in a module somewhere? /me is looking through repo
<thelema> we don't implement any semver data type or comparison scheme in batteries
<thelema> we just use it to label releases
<dsheets> aha, ok. i think we will make a semver module at ashima/ocaml-semver on github
<dsheets> unless you know of an already existing module?
<dsheets> odb's seems close
<thelema> dsheets: oasis has a version module that compares versions
<thelema> and mine is quite close, it seems
<thelema> "Numeric identifiers always have lower precedence than non-numeric identifiers." hmm, this means that number is before ident or after?
<dsheets> i don't know… the example does not seem to exercise that case?
<thelema> yes, I couldn't find that either in the example
kmicinsk1 has quit [Ping timeout: 244 seconds]
nosuni has joined #ocaml
kmicinsk1 has joined #ocaml