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>
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
<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.