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
lopex has quit []
zorun has quit [Ping timeout: 260 seconds]
struktured has quit [Ping timeout: 248 seconds]
everyonemines has quit [Quit: Leaving.]
sebz has quit [Quit: Computer has gone to sleep.]
arubin has quit [Quit: arubin]
sebz has joined #ocaml
joewilliams is now known as joewilliams_away
joewilliams_away is now known as joewilliams
_habnabit has joined #ocaml
sebz has quit [Quit: Computer has gone to sleep.]
ulfdoz has joined #ocaml
avsm has quit [Quit: Leaving.]
dcolish has quit [Quit: Coyote finally caught me]
sebz has joined #ocaml
avsm has joined #ocaml
ulfdoz has quit [Ping timeout: 256 seconds]
dnolen has joined #ocaml
junsuijin has quit [Quit: Leaving.]
ttamttam has joined #ocaml
dnolen has quit [Quit: dnolen]
dnolen has joined #ocaml
zorun has joined #ocaml
ttamttam has quit [Remote host closed the connection]
Cyanure has joined #ocaml
avsm has quit [Read error: Connection reset by peer]
avsm has joined #ocaml
avsm has quit [Client Quit]
edwin has joined #ocaml
avsm has joined #ocaml
dnolen has quit [Quit: dnolen]
Cyanure has quit [Remote host closed the connection]
ttamttam has joined #ocaml
ikaros has joined #ocaml
sebz has quit []
Cyanure has joined #ocaml
seafood has joined #ocaml
Kakadu has joined #ocaml
avsm has quit [Quit: Leaving.]
sebz has joined #ocaml
seafood has quit [Quit: seafood]
everyonemines has joined #ocaml
avsm has joined #ocaml
avsm1 has joined #ocaml
avsm has quit [Read error: Connection reset by peer]
bitbckt has joined #ocaml
seafood has joined #ocaml
everyonemines has quit [Quit: Leaving.]
seafood has quit [Ping timeout: 260 seconds]
avsm1 has quit [Quit: Leaving.]
larhat has joined #ocaml
avsm has joined #ocaml
ttamttam has quit [Remote host closed the connection]
ttamttam has joined #ocaml
milosn has quit [Ping timeout: 240 seconds]
sebz has quit [Quit: Computer has gone to sleep.]
avsm has quit [Quit: Leaving.]
milosn has joined #ocaml
sebz has joined #ocaml
lopex has joined #ocaml
sebz has quit [Quit: Computer has gone to sleep.]
ttamttam has left #ocaml []
etosch has quit [Quit: This computer has gone to sleep]
_andre has joined #ocaml
ftrvxmtrx_ has joined #ocaml
ftrvxmtrx has quit [Read error: Connection reset by peer]
ftrvxmtrx_ has quit [Quit: Leaving]
ttamttam has joined #ocaml
`fogus has joined #ocaml
emmanuelux has joined #ocaml
dnolen has joined #ocaml
emmanuelux has quit [Quit: Ex-Chat]
rwmjones has quit [Read error: Operation timed out]
rwmjones has joined #ocaml
everyonemines has joined #ocaml
<everyonemines> What command do you give ocamlopt to have multiple .ml files treated as a single concatenated .ml file?
<flux> maybe you can do it with the preprocessor switches..
milosn has quit [Ping timeout: 260 seconds]
<everyonemines> That doesn't sound any better than using cat.
<everyonemines> Not that cat is a big deal.
<adrien> everyonemines: hmmm, why?
<everyonemines> Why what?
<everyonemines> I can copy-paste the cat command together with a compilation command.
<adrien> the only difference when you "ocamlopt a.ml b.ml c.ml" is that you'll have to refer to the modules A, B and C
milosn has joined #ocaml
<thelema> everyonemines: why have you broken your module into separate pieces if you don't want seperate pieces?
<everyonemines> Well, I'm using cat for now.
<everyonemines> thelema: To make it easier to find stuff.
<thelema> everyonemines: another solution is: master.ml "include A include B include C"
<everyonemines> You'd need to modify your path though, right?
<thelema> well, the three pieces would have to be able to compile separately for this to work
<thelema> I don't think there'd be any difference in path
joewilliams is now known as joewilliams_away
joewilliams_away is now known as joewilliams
Associat0r has joined #ocaml
Associat0r has quit [Changing host]
Associat0r has joined #ocaml
<everyonemines> thelema: I'm not sure what you mean by "include" then.
<adrien> it's not #include
<everyonemines> right
<everyonemines> But what exactly did you mean
<flux> I don't think that wuold be very helpful solution for him
<flux> well, unless the purpose was to have external modules view many modules as one?
lopex has quit []
<flux> if not, a simply variation of the theme would do: have b.ml include A and c.ml include B in their first line
<flux> then you compile only c.ml
<flux> actually, no, you need to compile everything, right?
<everyonemines> right
<everyonemines> I guess that would interfere with the compiler error reporting though, huh?
<everyonemines> It probably can't specify a file.
<adrien> sloooooooooooow wifi
<thelema> everyonemines: well, if there were an error in A, you'd get that when compiling A
<thelema> everyonemines: using flux's plan
<thelema> similarly, an error in B would show up when compiling b.ml
<thelema> the ... directive? ... [include A] at the top of b.ml would add everything in module A (from a.ml) into B
<adrien> everyonemines: "include" includes the content of the module in the current module
<adrien> the content as the values, not the characters
* adrien gives up on IRC on this link
<thelema> [include Foo] is like [open Foo], except it not only makes the types and values from Foo available in the current module but also adds them to the values exported from the current module
<everyonemines> That's for precompiled files, though.
<thelema> everyonemines: yes, you do have to compile the files in order
<thelema> as opposed to a single compile of the whole lot.
<everyonemines> in which case it's easier to use cat
<thelema> ocamlbuild makes this pretty trivial
<adrien> but something like ocamlbuild makes it mostly trivial/trnasparent
<thelema> ocamlbuild c.native
Kakadu has quit [Quit: Page closed]
Cyanure has quit [Remote host closed the connection]
pr has quit [Quit: Lost terminal]
avsm has joined #ocaml
ttamttam has quit [Remote host closed the connection]
ttamttam has joined #ocaml
Cyanure has joined #ocaml
Modius has quit [Ping timeout: 252 seconds]
dnolen has quit [Quit: dnolen]
lopex has joined #ocaml
ulfdoz has joined #ocaml
Kakadu has joined #ocaml
ttamttam has quit [Remote host closed the connection]
<mfp> anybody out there running 3.12.[01] can tell me the magic number at the beginning of a .cmo file? I'm getting Caml1999O007 (OCaml 3.12.0 from Debian), even though according to http://caml.inria.fr/cgi-bin/viewcvs.cgi/ocaml/trunk/byterun/exec.h?rev=11156&view=log it's been Caml1999X008 for over 7 years
<mfp> ... which makes js_of_ocaml choke
<zorun> Caml1999O007
<zorun> OCaml 3.12.1 from Archlinux
<mfp> thank you zorun
<mfp> this is weird
<mfp> I can't see where this Caml1999O007 is coming from, I can't find it in exec.h's history, and it's not a Debian patch either (just apt-get source'd it to make sure)
george_z0rwell has quit [Read error: Connection reset by peer]
<mfp> ah got it, Caml1999X008 is for bytecode executables, Caml1999O007 is .cmo only
joewilliams is now known as joewilliams_away
joewilliams_away is now known as joewilliams
ftrvxmtrx has joined #ocaml
joewilliams is now known as joewilliams_away
joewilliams_away is now known as joewilliams
mdelaney has joined #ocaml
mdelaney has quit [Client Quit]
<adrien> I was told that jenkins can do what I want: that, for each ocaml revision, all libs are recompiled and tested, and that for each revision of each library, each dependency is recompiled (recursively)
<thelema> adrien: f[x] would be able to help with that - he runs an ocaml jenkins
<adrien> f[x] = ygrek?
<thelema> yes
<adrien> ok, thanks
<adrien> f[x]: would you change your jenkins bot to do what I mentionned one or two minutes ago?
junsuijin has joined #ocaml
<adrien> I can throw in a quad-core at least
<thelema> adrien: he may not do so as many of the jobs take *forever* to run.
<adrien> probably twice or thrice that
<thelema> ah, that might help.
<adrien> ;-)
<thelema> just the latest batteries took 2h36m
<thelema> (on win2k)
mdelaney has joined #ocaml
<thelema> build #132 took a week, for some reason.
<adrien> what?
<adrien> that's _horribly_ long
<thelema> yes
<adrien> unless the machine was really slow, that shouldn't take that long
<thelema> agreed. I don't know the malfunction, and that was an exceptional event. the next nearest duration was 2 days 15 hr, then 1 day then 12 hours then 5 hours then less than 4 hours.
<thelema> the slave named "master" usually takes less than 3 minutes.
ttamttam has joined #ocaml
<thelema> so I hope you can put some win2k VMs onto those quad+ cores
ttamttam has left #ocaml []
<adrien> windows evaluation versions have a nice thing: their EULA state that they are for testing compatibility of your application with windows
<adrien> perfect ;-)
<thelema> :)
<thelema> x day trial?
<adrien> yup, exactly
<adrien> shouldn't be issues "cloning" the installation of the jenkins slave
flux has quit [Remote host closed the connection]
Cyanure has quit [Remote host closed the connection]
etosch has joined #ocaml
mdelaney has quit [Quit: mdelaney]
flux has joined #ocaml
Snark has joined #ocaml
Snark has quit [Client Quit]
eb4890 has joined #ocaml
cgroza has joined #ocaml
metasyntax|work has quit [Quit: WeeChat [quit]]
Snark has joined #ocaml
_andre has quit [Quit: leaving]
`fogus has quit [Quit: `fogus]
Kakadu has quit [Quit: Konversation terminated!]
sebz has joined #ocaml
junsuijin has quit [Quit: Leaving.]
sebz has quit [Ping timeout: 255 seconds]
eb4890 has quit [Remote host closed the connection]
Reaganomicon has joined #ocaml
sebz has joined #ocaml
edwin has quit [Remote host closed the connection]
ikaros has quit [Quit: Ex-Chat]
Snark has quit [*.net *.split]
bitbckt has quit [*.net *.split]
bitbckt has joined #ocaml
ikaros has joined #ocaml
cgroza has quit [Remote host closed the connection]
dnolen has joined #ocaml
Associat0r has quit [Quit: Associat0r]
bitbckt has quit [*.net *.split]
<_habnabit> thelema, so, I just made enum versions of n_cartesian_product, combinations, and powerset.
<thelema> _habnabit: taking enum as input?
<_habnabit> thelema, I'd make a ticket with a patch, but I'm not sure where these should go.
<thelema> even better is to make a pull request on github
<_habnabit> thelema, I mean, the functions themselves.
<_habnabit> thelema, not the issue.
<thelema> oh, I misunderstood... what's the type of the functions?
<thelema> 'a enum -> 'a enum?
<thelema> or 'a enum -> 'a set enum?
<_habnabit> (respectively, 'a list list -> 'a list Enum.t, 'a list -> int -> 'a list Enum.t, 'a list -> 'a list Enum.t)
<thelema> I wonder if powerset should be 'a set -> 'a set enum
<_habnabit> well,
<thelema> the other two can go in BatList for the moment. If we get too many of them, we may make a proper BatCombinatorics module
<_habnabit> let powerset l = 1 -- List.length l |> Enum.map (combinations l) |> Enum.flatten
<thelema> oh. That's cheating.
<_habnabit> it works!
<thelema> yup, it does.
<_habnabit> (I was wondering what the best way would be to prepend a [] on the start of the results.)
<_habnabit> maybe |> tap (Enum.push [])
<thelema> I was imagining something more along the lines of powerset h::t = map (x -> h::x) (powerset t) @ (powerset t)
<_habnabit> yeah, that's basically what I had originally. it just doesn't return an enum.
<thelema> the same is doable with enum
<_habnabit> how so?
Amorphous has quit [Ping timeout: 276 seconds]
<thelema> let powerset s = try let (e,t) = Set.choose s in let pt = powerset t in Enum.append (Enum.clone pt) (Enum.map (Set.add e) pt) with Not_found -> Enum.singleton Set.empty
<thelema> modulo argument order on Set.add
<_habnabit> ah, I see.
<_habnabit> it's not tail recursive, though.
<thelema> sure, if you have a set with more elements than your stack is high (about 10K, usually), this'll fail
<thelema> but 2^10K is a bad powerset
<_habnabit> (that would be a pretty big ... ^)
<_habnabit> and I guess Enum.clone was the magic sauce I couldn't think of.
etosch has quit [Quit: This computer has gone to sleep]
<thelema> for sets of size less than 31 (or 63), you could do (0--1 lsl n - 1) |> Enum.map (ith_subset s)
<thelema> with a cute definition of ith subset that uses bit shifting and Set.pop
<thelema> oops, I meant Set.pop instead of Set.choose
Amorphous has joined #ocaml
<thelema> in powerset
<_habnabit> hmm; seems like my coding style is a little different than batteries's.
<thelema> batteries sadly has a number of coding styles - the original code imported from extlib had rediculous indentation
<_habnabit> ah.
<_habnabit> oh, hm. no |> in BatList? I guess I can deal.
<thelema> other parts of batteries aren't automatically available - interdependencies... :(
<thelema> the modules have to be compiled in some order, and recursive deps ... :(
<_habnabit> haha, jeez.
<_habnabit> hmm, no 'identity' either.
<thelema> it's an annoyance I have when writing functions. It'd be nice if the ocaml compilation system could just work out an order to all the module declarations across multiple modules
<thelema> it'd mean that initialization wouldn't be one module and then the other, but mixed up in some compiler-chosen order
<_habnabit> and ocamlbuild is saying there's a circular dependency? does Array depend on List?
<thelema> yes
<thelema> Array.of_list
<_habnabit> hm, right.
<_habnabit> well, this is making things complicated.
<_habnabit> here's what I have right now, in batList.ml.
<thelema> well, since you go to arrays pretty quickly, why not have 'a array array -> 'a array enum?
<_habnabit> yeah, that would work.
<thelema> also, Enum.push is probably a better way to special case the first value instead of !is_first
avsm has quit [Ping timeout: 248 seconds]
<_habnabit> I was was trying to avoid duplicating lines 18 and 43
<thelema> in exchange for 5 other lines?
ftrvxmtrx has quit [Read error: Connection reset by peer]
<_habnabit> I guess!
ftrvxmtrx has joined #ocaml
<_habnabit> dang it. this ocamlpro syntax reference shows how to match polymorphic variants, but not how to create them.
ftrvxmtrx has quit [Read error: Connection reset by peer]
ftrvxmtrx has joined #ocaml
bitbckt has joined #ocaml
sebz has quit [Quit: Computer has gone to sleep.]
<everyonemines> add_num (Int 123) (Float 3.14159);;
ftrvxmtrx has quit [Read error: Connection reset by peer]
ftrvxmtrx has joined #ocaml
sebz has joined #ocaml
<adrien> _habnabit: creation of polymorphic variants is ... possibly non-existant ;-)
<adrien> that's one point, you don't _have_ to define them first
<_habnabit> adrien, no, I mean instantiating one
<adrien> simply: `Foo
<adrien> `Foo 24
<_habnabit> and I know the syntax. it's just odd that this reference seems to be lacking it.
<adrien> there shouldn't be anything to add; the issue is that you can't easily guess that
dnolen has quit [Quit: dnolen]
everyonemines has left #ocaml []
avsm has joined #ocaml
ftrvxmtrx_ has joined #ocaml
ftrvxmtrx has quit [Read error: Connection reset by peer]
ikaros has quit [Quit: Ex-Chat]
sebz has quit [Quit: Computer has gone to sleep.]
ftrvxmtrx__ has joined #ocaml
ftrvxmtrx_ has quit [Read error: Connection reset by peer]
ftrvxmtrx__ has quit [Read error: Connection reset by peer]
ftrvxmtrx has joined #ocaml
ftrvxmtrx has quit [Quit: Leaving]
avsm has quit [Quit: Leaving.]
lopexx has joined #ocaml
lopex has quit [Ping timeout: 276 seconds]
lopexx is now known as lopex
lopexx has joined #ocaml
surikator has joined #ocaml
lopex has quit [Ping timeout: 245 seconds]
lopexx is now known as lopex
sebz has joined #ocaml
ulfdoz_ has joined #ocaml
ulfdoz has quit [Read error: Operation timed out]
ulfdoz_ is now known as ulfdoz
sebz has quit [Quit: Computer has gone to sleep.]
lopex has quit []