flux changed the topic of #ocaml to: Discussions about the OCaml programming language | http://caml.inria.fr/ | OCaml 4.00.1 http://bit.ly/UHeZyT | http://www.ocaml.org | Public logs at http://tunes.org/~nef/logs/ocaml/
bkpt has quit [Remote host closed the connection]
ygrek has joined #ocaml
pkrnj has quit [Quit: Computer has gone to sleep.]
chrisdotcode_ has joined #ocaml
chrisdotcode has quit [Ping timeout: 246 seconds]
chrisdotcode_ has quit [Remote host closed the connection]
chrisdotcode has joined #ocaml
chrisdotcode has quit [Remote host closed the connection]
chrisdotcode has joined #ocaml
dsheets has quit [Ping timeout: 268 seconds]
asmanur has quit [Ping timeout: 248 seconds]
asmanur has joined #ocaml
ygrek has quit [Ping timeout: 252 seconds]
q66 has quit [Quit: Leaving]
emmanuelux has quit [Remote host closed the connection]
dezzy_ has joined #ocaml
csakatoku has joined #ocaml
dezzy has quit [Write error: Connection reset by peer]
weie has quit [Ping timeout: 246 seconds]
weie_ has joined #ocaml
hto_ has joined #ocaml
ygrek has joined #ocaml
chrisdotcode_ has joined #ocaml
xenocons_ has joined #ocaml
breakds has joined #ocaml
jdoles_ has joined #ocaml
<pippijn> can you make a pack from a cma?
chrisdotcode has quit [*.net *.split]
jdoles has quit [*.net *.split]
so has quit [*.net *.split]
noplamodo has quit [*.net *.split]
transfinite has quit [*.net *.split]
xenocons has quit [*.net *.split]
mal`` has quit [*.net *.split]
hto has quit [*.net *.split]
jdoles_ is now known as jdoles
<pippijn> I guess not
darkf has joined #ocaml
mal`` has joined #ocaml
hto_ has quit [Ping timeout: 256 seconds]
noplamodo has joined #ocaml
contempt has quit [Ping timeout: 256 seconds]
pango has quit [Ping timeout: 256 seconds]
hto has joined #ocaml
contempt has joined #ocaml
pkrnj has joined #ocaml
pango has joined #ocaml
chrisdotcode_ has quit [Ping timeout: 246 seconds]
Ptival has quit [Ping timeout: 256 seconds]
Ptival has joined #ocaml
transfinite has joined #ocaml
madroach has quit [Ping timeout: 248 seconds]
Nahra has quit [Ping timeout: 256 seconds]
Nahra has joined #ocaml
Nahra has quit [Changing host]
Nahra has joined #ocaml
madroach has joined #ocaml
def-lkb has quit [Ping timeout: 256 seconds]
def-lkb has joined #ocaml
pkrnj has quit [Quit: Computer has gone to sleep.]
Drup has quit [Quit: Leaving.]
Neros has quit [Ping timeout: 256 seconds]
ben_zen_ has joined #ocaml
ben_zen has quit [Ping timeout: 248 seconds]
breakds has quit [Quit: Konversation terminated!]
weie_ has quit [Quit: Leaving...]
ben_zen_ has quit [Ping timeout: 240 seconds]
ben_zen has joined #ocaml
ben_zen has quit [Ping timeout: 246 seconds]
pkrnj has joined #ocaml
osnr has joined #ocaml
osnr has quit [Changing host]
osnr has joined #ocaml
JcGood has quit [Quit: Quitte]
weie has joined #ocaml
csakatok_ has joined #ocaml
yacks has quit [Ping timeout: 256 seconds]
csakatoku has quit [Ping timeout: 256 seconds]
yacks has joined #ocaml
robbbbb has joined #ocaml
introom has joined #ocaml
robbbbb has quit [Quit: Page closed]
ggole has joined #ocaml
flx_ has joined #ocaml
flux has quit [Ping timeout: 264 seconds]
flx_ is now known as flux
gautamc has quit [Read error: Connection reset by peer]
gautamc has joined #ocaml
osnr has quit [Quit: Leaving.]
ttamttam has joined #ocaml
ygrek has quit [Remote host closed the connection]
ygrek has joined #ocaml
dezzy_ is now known as dezzy
ttamttam has left #ocaml []
skchrko has joined #ocaml
ygrek has quit [Ping timeout: 248 seconds]
gautamc has quit [Ping timeout: 256 seconds]
Snark has joined #ocaml
osa1 has joined #ocaml
zpe has joined #ocaml
osa1 has quit [Quit: Konversation terminated!]
zpe has quit [Remote host closed the connection]
zpe has joined #ocaml
thomasga has joined #ocaml
gautamc has joined #ocaml
ygrek has joined #ocaml
Watcher7 is now known as Watcher7|off
hkBst has joined #ocaml
hkBst has quit [Changing host]
hkBst has joined #ocaml
thomasga has quit [Quit: Leaving.]
thomasga has joined #ocaml
osa1 has joined #ocaml
Yoric has joined #ocaml
UncleVasya has joined #ocaml
pkrnj has quit [Quit: Textual IRC Client: www.textualapp.com]
thomasga has quit [Quit: Leaving.]
Simn has joined #ocaml
eikke has joined #ocaml
zpe has quit [Remote host closed the connection]
ttamttam has joined #ocaml
raichoo has joined #ocaml
beckerb has joined #ocaml
ulfdoz has joined #ocaml
Neros has joined #ocaml
yacks has quit [Ping timeout: 246 seconds]
yacks has joined #ocaml
mika1 has joined #ocaml
Yoric has quit [Ping timeout: 256 seconds]
thomasga has joined #ocaml
cago1 has joined #ocaml
ollehar has joined #ocaml
ontologiae_ has joined #ocaml
Yoric has joined #ocaml
Kakadu has joined #ocaml
Yoric has quit [Ping timeout: 256 seconds]
Simn is now known as Simn|gone
UncleVasya has quit [Quit: Leaving]
zpe has joined #ocaml
introom has quit [Remote host closed the connection]
zpe has quit [Ping timeout: 256 seconds]
olasd has quit [Quit: Lost terminal]
olasd has joined #ocaml
Fnar has quit [Quit: Client exiting]
ski has quit [Ping timeout: 252 seconds]
oberonc has joined #ocaml
<oberonc> hi
q66 has joined #ocaml
<oberonc> after compiling libfind and installign it in my home
<oberonc> and changing the path to include the path to the binary I get this:
<oberonc> ocamlfind ocamlopt -warn-error CDEFLMPSUVXYZ -package unix,str -c config.ml -o config.cmx ocamlfind: Is a directory
<oberonc> actually it's 2 lines:
<oberonc> ocamlfind ocamlopt -warn-error CDEFLMPSUVXYZ -package unix,str -c config.ml -o config.cmx
<oberonc> ocamlfind: Is a directory
osa1 has quit [Quit: Konversation terminated!]
<oberonc> what am I doign wrong ?
<Kakadu> unix?
<oberonc> yeah
<oberonc> SLES 11
<Kakadu> which ocamlfind?
<companion_cube> there is something weird with your installation of ocamlfind
<oberonc> findlib-1.4
<oberonc> I compiled it with:
<Kakadu> I mean: can you execute 'which ocamlfind' in bash
<Kakadu> ?
<Kakadu> also, do you know about opam?
<oberonc> ./configure -bindir /home/ogoshenx/local/bin -sitelib /home/ogoshenx/local/pkgs/ocaml/3.12.1/lib/ocaml/site-lib -config /home/ogoshenx/local/etc -mandir /home/ogoshenx/local/man -no-topfind
mort___ has joined #ocaml
<oberonc> I have near to no knowledge about ocaml language
<oberonc> I simply need it to compile a tool called supermin
<oberonc> I dont have root on this machine, so I have to install everything in my home dir
<oberonc> ocamlfind is in the path (tcsh, not bash)
<Kakadu> i.e. 'ocamlfind list' works OK?
<Kakadu> also, ocamlfind have -verbose parameter... maybe it can give more information
testcocoon has quit [Read error: Connection reset by peer]
pootler has joined #ocaml
testcocoon has joined #ocaml
<oberonc> hmm
<oberonc> ok
<oberonc> the problem was with the -config switch
<oberonc> it expects the pull path with the filename
<oberonc> not the folder where to place the configuration file
<oberonc> ie, -config /home/ogoshenx/local/etc/findlib.conf
mika1 has quit [Ping timeout: 252 seconds]
zpe has joined #ocaml
mika1 has joined #ocaml
wwilly has joined #ocaml
zpe has quit [Remote host closed the connection]
mcclurmc has joined #ocaml
mcclurmc has quit [Client Quit]
Kakadu has quit [Remote host closed the connection]
Kakadu has joined #ocaml
ulfdoz has quit [Ping timeout: 256 seconds]
Yoric has joined #ocaml
ulfdoz has joined #ocaml
dsheets has joined #ocaml
csakatoku has joined #ocaml
csakatok_ has quit [Ping timeout: 252 seconds]
zpe has joined #ocaml
<gasche> ollehar: no, applying a named module to a functor has an applicative, not generative, behavior
<gasche> as applying the same module to the same functor twice produces compatible (instead of incompatible) results
jonafan has quit [Ping timeout: 248 seconds]
zpe has quit [Remote host closed the connection]
<ollehar> gasche: thanks, I'll read it a couple of more times
<gasche> ollehar: "generative" comes from "generate fresh (~ incompatible with what was before) types each type"
testcocoon has quit [Read error: Connection reset by peer]
jonafan has joined #ocaml
testcocoon has joined #ocaml
<Kakadu> https://forge.ocamlcore.org/tracker/?func=detail&atid=294&aid=986&group_id=54 It seems that this feature is not implemented, is it?
Neros has quit [Ping timeout: 246 seconds]
Drup has joined #ocaml
<MarcWeber> There are two unix.ml in otherlibs/{unix,threads}
<MarcWeber> I'd like to install .cmt files, however I don't know how to prevent a name collision?
<MarcWeber> Are those two unix.ml modules exclusive?
Drup has quit [Client Quit]
Drup has joined #ocaml
Drup has quit [Client Quit]
Drup has joined #ocaml
zpe has joined #ocaml
Drup has quit [Client Quit]
Drup has joined #ocaml
_andre has joined #ocaml
<gasche> MarcWeber: I suppose the threads version is meant to be the one linked with programs that use threads
<gasche> MarcWeber: the installer puts threads/unix.cma in $LIBDIR/ocaml/vmthreads (eg. /usr/lib/ocaml/vmthreads on my machine)
<gasche> you could put the .cmt there as well
Neros has joined #ocaml
introom has joined #ocaml
csakatoku has quit [Remote host closed the connection]
<kaustuv> Does RWO explain how to use oasis?
<MarcWeber> Does ocaml-4.00.1 build with -jN ?
<gasche> MarcWeber: no it doesn't
<MarcWeber> me wonders why people don't care about such ..
<gasche> Given the choice between "deciding not to care" and "submitting a patch to make -jN work", everybody so far has taken option (1).
<gasche> feel free to make a different choice, MarcWeber
<adrien_oww> because it builds in 3 minutes
<adrien_oww> on my laptop
<gasche> I would personally appreciate cutting build times by 2 during patch/build/test cycles, but that never got close enough for a priority for me to learn the details of OCaml's makefiles
<gasche> I've been trying to bug Pierre Chambart to do this, though, as he previously worked a bit on the question
<adrien_oww> good luck parallelizing the rebuild of .ml files
<adrien_oww> as for the VM, I have ccache
<MarcWeber> adrien_oww: Which problems do you see?
<MarcWeber> I'm using nixos linux. Its great and pure. However if you change a small thing you trigger full rebuilds
<adrien_oww> it's also fairly difficult to do
<adrien_oww> but if you want to build ocaml in parallel, it's not very difficult
<adrien_oww> make -j4 || make -j4 || make
breakds has joined #ocaml
<gasche> wmeyer: I think I deleted one comment too much on gagallium, would you care to repost one?
<gasche> (I can probably mail you the comment text if you lost it)
<pippijn> wmeyer: *** omake: done (0.66 sec, 0/718 scans, 5/5031 rules, 6/13540 digests)
<pippijn> wmeyer: the initial up-to-date checking takes 30 seconds here
<pippijn> wmeyer: *** omake: done (31.47 sec, 0/718 scans, 1/5027 rules, 0/13524 digests)
<pippijn> 31
<pippijn> wmeyer: 0.66s is for rebuilding a small latex document
<pippijn> wmeyer: the 31 seconds are quite much, and probably due to the way I wrote my rules (they are probably not very efficient)
<pippijn> $ find src -type f | wc -l
<pippijn> 3869
ousado has quit [Read error: Operation timed out]
ousado has joined #ocaml
kaustuv has left #ocaml []
introom has quit [Remote host closed the connection]
raichoo has quit [Quit: leaving]
introom has joined #ocaml
zpe has quit [Read error: Connection reset by peer]
zpe has joined #ocaml
zpe has quit [Ping timeout: 245 seconds]
<pippijn> I would like this:
<pippijn> in an .ml file
<pippijn> val max : int -> int -> int
<pippijn> let max a b = if a > b then a else b
<gasche> went there, done that
<pippijn> then?
<gasche> there was a reddit discussion about trying to make this work
introom has quit [Remote host closed the connection]
<gasche> the summary is that there are lots of problems once you look at the details, that make it too hard to get right to be worth it
<gasche> (I'm trying to find that reddit discussion back, but no luck so far)
<pippijn> the alternative is
<pippijn> let max : int -> int -> int =
<pippijn> fun a b ->
<pippijn> if a > b then a else b
<gasche> or to have a .mli file
<pippijn> no
<pippijn> it's about the polymorphic > here
<gasche> ah
<pippijn> also about debugging type errors
<pippijn> but there, let max (a : int) ... is ok
<gasche> but there is also the "enforcing polymorphism" issue
smondet has joined #ocaml
<ggole> The syntax is a bit annoying
<ggole> When I was first learning ocaml it took me a few goes to figure out that the annotation foo a : int = ... described the return type and not the type of a
<gasche> I'm not sure which syntax you are talking about, but I do agree in a general sense that "Syntax is a bit annoying" :]
<gasche> ggole: funny, I've often wished I could use fun x y : ty -> e for fun x y -> (e : ty)
<gasche> (but this could be solved by adding an annotation function (: ty) )
<gasche> hm
<gasche> no it wouldn't, (: ty ) f x wouldn't parse right
<ggole> Half the problem is that the (very straightforward) annotations in .mli files is nothing like the annotations on functions
<ggole> Syntax is hard, let's go Lisp programming.
<gasche> I'm afraid the issues around the difference between 'a, ('a . ... 'a ...), (type a) and (type a . ...) will never go away
<gasche> hm I suspect lisp-style syntax wouldn't help for this particular problem
<ggole> That was just a snarky comment: lisp has very ugly type ascription
<ggole> Even though it is famous for "not having syntax"
zpe has joined #ocaml
<ggole> (let ((x 1)) (declare (type x (unsigned-byte 32))) ...) or something like that
zpe has quit [Ping timeout: 260 seconds]
zpe has joined #ocaml
<ggole> gasche: some interesting comments in that thread
<ggole> One of the more annoying limitations of the ocaml way of doing things is duplicating large ADTs between .ml and .mli
<ggole> Which is make-work, really
<gasche> there are workarounds to avoid that
<ggole> #include?
<gasche> ok, there are less horrible workarounds to avoid that
<ggole> Such as?
<gasche> such as having separate type-definitions modules that have only a .ml or only a .mli
<ggole> That works: but moving stuff out of files once it becomes a certain size is not a very nice way to work
<gasche> (it's valid for a module to have only a .mli if it contain only static type information, and therefore does not need to be linked or anything after the type-checking phase)
<gasche> ggole: there are various reasons for not liking this workaround, but I don't find this one particularly convincing; I regularly split modules if they grow too fat
<gasche> besides
zpe has quit [Ping timeout: 248 seconds]
<ggole> Yes, but the criterion for separating out a data type definition is how annoyed you get at typing/copying code, not cleanliness of design
<gasche> I have identified the same pain, but I do not know of any good solution for it
<gasche> hm
<gasche> ... maybe I do
<ggole> Allow some kind of binding statement in a .mli to allow whatever .ml definition there is to "shine through"?
<ggole> That would preserve the ability to, uh, "refine" types
<ggole> (I can't put my finger on the right terminology for that.)
<ggole> Hmm
<ggole> Seems pretty tough to design something with backwards compatibility
<gasche> I'm also virtually interested in what would be the best solution(s), clean-slate style, but of course only backward-compatible ones are worth discussing in an "the ocaml language" context
<MarcWeber> the .opt and the non .opt versions of the compiler should behave the same way?
<MarcWeber> Getting Fatal error: exception End_of_file in the .opt case ?
<gasche> MarcWeber: yes they should
<gasche> (we're talking about ocamlc.opt vs. ocamlc, or ocamlopt.opt vs. ocamlopt; not ocamlc vs. ocamlopt)
<gasche> MarcWeber: if you notice a difference between foo and foo.opt, it's likely to be a bug
<MarcWeber> I had some btrfs csum errors in the log
<ggole> Check hashes then, if you can
<MarcWeber> But I retried 2 times - without .opt it works with .opt I get this error.
<MarcWeber> I'll try on my server. not using btrfs there.
zpe has joined #ocaml
<pippijn> I think it's not that bad to split types into its own module
<pippijn> because types are often the reason for cyclic dependencies
<ggole> gasche: one thing I'm not clear on from your comment in http://caml.inria.fr/mantis/view.php?id=5878#c9176
<ggole> You mention the "dynamic semantics" of let. Are there type annotations that would change the behaviour of code?
<ggole> I've always thought that the answer to that was just "no". (Apart from, possibly, hacks like Obj.magic.)
<MarcWeber> its unlikely to be a btrfs issue. I've recompiled it 3 times successfully without .opt
<ggole> I was thinking that btrfs might have subtly corrupted your .opt binary.
<ggole> ...which is unlikely, now that I think about it.
<MarcWeber> I get the error for both: ocamlc.opt and ocamlopt.opt
<ggole> Hmm
<MarcWeber> I've also tried with -j1 - so its very unlikely to be a timing issue. but again - wait till I've reproduced it on my server..
<ggole> Perhaps they have a shared library in common?
<ggole> pippijn: it's not that it is bad, per se
<ggole> So much as it is unproductive work
<pippijn> I tend to have large types in their own module to begin with
<pippijn> no, wrong
<pippijn> replace "large" with "widely used"
<ggole> You don't place common operations on such types in the same module?
<gasche> ggole: no, annotations don't change the dynamic semantics
<gasche> but there is a question of how you interpret programs such as
<pippijn> ggole: I don't know yet
<pippijn> I don't have a good standard for that
<gasche> val loop1 : unit -> unit val loop2 : unit -> unit let loop1() = loop2() let loop2() = loop1()
<pippijn> but if I do, I still don't have an .mli
<ggole> gasche: ah, I see
<ggole> One "solution" is to require the val and the let to appear together
<gasche> yeah
<ggole> In fact you could just make the whole thing one bit of syntax
<ggole> It's a bit artificial but it rules out some corner cases like that
<pippijn> then you're at let foo : a -> b -> c = fun a b c ->
<ggole> (It also appears to be how Haskell code is annoted in practical use: there may be a small advantage of familiarity there)
<gasche> well forward-declaration is also desirable in some situations
<gasche> (eg. literate programming)
<gasche> but it seems preferrable to forbid introducing any form of dynamic recursion that way
<ggole> Hmm, don't literate programming tools usually have some rewriting to allow more flexible ordering?
<gasche> while programming in Haskell i've also come to wish being able to interleave the pattern-matching definition of two different functions
<gasche> ggole: the idea is to allow that inside the language directly
<ggole> Hmm
<gasche> (C lets you do that with prototypes)
<ggole> So that analogues cases go together?
<ggole> *analogous
<ggole> I can't say I've ever wanted that, although maybe it would be clearer for some code
<flux> but it is annoying that while adding some code you need to move other functions around.
<ggole> OO languages allow mutual recursion over an entire scope to get around that
ygrek has quit [Ping timeout: 256 seconds]
introom has joined #ocaml
<flux> but on the other hand it is nice that if you read the file from the top to bottom, you don't see anything references that hasn't been defined
<ggole> It's also nice that the rules for global scope mirror those for local scope
<flux> but, something like val x : y could work for me. like val foo : _ could work if you want to use type inference. or would that be overloading the meaning?
<ggole> You mean, val foo : _ in a .mli?
<flux> oh right, and there's another downside: you wouldn't get the same effect by copy pasting the file into ocaml toplevel piece by piece
<flux> no, I mean in .ml
osa1 has joined #ocaml
<ggole> Er
<flux> val forward_declaration : _
<ggole> Oh, I see
<flux> or val forward_declaration : int -> int
<ggole> Using it for declaration effect and not type refinement
cago1 has quit [Ping timeout: 248 seconds]
<ggole> Maybe just val name if you didn't want a type
<ggole> While we're bikeshedding, I'd like to be able to ascribe multiple fields with one declaration
<ggole> type foo = { x, y : huge_crazy_type_name }
travisbrady has joined #ocaml
<flux> you do that often?
<flux> consider saner type names as a workaround ;)
<flux> but I'm off, off to summer vacation \o/ ->
<ggole> o/
ousado has quit [Read error: Operation timed out]
<ggole> Gone long?
pootler_ has joined #ocaml
ousado has joined #ocaml
csakatoku has joined #ocaml
pootler has quit [Ping timeout: 264 seconds]
csakatoku has quit [Remote host closed the connection]
<MarcWeber> Detecting compiler arguments: FAILED (see the file ocargs.log for details)
<MarcWeber> Detecting compiler arguments: FAILED (see the file ocargs.log for details)
<MarcWeber> The external function `thread_wait_write' is not available
Drup has quit [Quit: Leaving.]
Drup has joined #ocaml
Kakadu has quit []
sgnb has quit [Ping timeout: 252 seconds]
<flux> ggole, gone long off irc? no :)
bkpt has joined #ocaml
bkpt has quit [Client Quit]
introom has quit [Remote host closed the connection]
bkpt has joined #ocaml
<MarcWeber> scheduler.o seems to contain it - why might this be happening when configuring findlib?
dezzy has quit [Remote host closed the connection]
Yoric has quit [Quit: Instantbird 1.5a1pre -- http://www.instantbird.com]
osnr has joined #ocaml
osnr has quit [Changing host]
osnr has joined #ocaml
osnr has quit [Client Quit]
osnr has joined #ocaml
osnr has quit [Changing host]
osnr has joined #ocaml
csakatoku has joined #ocaml
hkBst has quit [Quit: Konversation terminated!]
csakatoku has quit [Ping timeout: 256 seconds]
ttamttam has quit [Quit: ttamttam]
thomasga has quit [Quit: Leaving.]
ollehar has quit [Ping timeout: 246 seconds]
raichoo has joined #ocaml
mika1 has quit [Quit: Leaving.]
pootler_ has quit [Ping timeout: 260 seconds]
<MarcWeber> I can reproduce it on my server
<gasche> MarcWeber: what precisely are you reproducing and what's your development environment?
<gasche> (may it be related to conflicting opam switches, for example? or having several findlib toolchains?)
<gasche> (do you have several installs of OCaml on the same machine?)
Simn|gone is now known as Simn
<MarcWeber> gasche: My development environment is a "dev-env" I created for nixos.
<MarcWeber> Nixos is special: It allows installing many packages at the same time.
<MarcWeber> So yes, I can easily have many ocamls.
<MarcWeber> I tried ocaml-4.00.1
<MarcWeber> I don't understand yet why I cannot compile findlib on my server the same way as I do locally.
<MarcWeber> When doing the final link ocamlopt.opt fails with exception End_of_file
<MarcWeber> I'm trying to compile haxe sources
<MarcWeber> 0 Jul 3 18:09 xml-light.cmxa
<MarcWeber> Doesn't make sense to me. I must be retarded. That's one of the libs which is still build by make without .opt
darkf has quit [Quit: Leaving]
<MarcWeber> Its actually my fault.
<gasche> (I was writing a long-winded message to suggest that :-')
wwilly has quit [Remote host closed the connection]
csakatoku has joined #ocaml
thomasga has joined #ocaml
csakatoku has quit [Ping timeout: 260 seconds]
srcerer has joined #ocaml
<whitequark> hah, I just found a case where let rec for data structures is useful.
<whitequark> gasche: you were right, compilers do need such a facility :D
<gasche> tomorrow you'll find out why that was a bad idea :-'
<whitequark> gasche: it's just a class Class, which is the metaclass of itself
<gasche> similar things happen when you build recursive closures
skchrko has quit [Quit: Leaving]
<gasche> but whitequark you'll need to be careful with cyclic values around
* whitequark nods
<gasche> eg. using polymorphic comparison functions on class values may not be a good idea anymore
<whitequark> hm
<gasche> (truth is, it never was, but having your test looping is a good way to notice)
<whitequark> almost all of my objects (classes included) are compared by the compiler only by identity
<whitequark> well, all except primitives
<whitequark> uh. I got records with intersecting sets of names *again*.
<whitequark> gasche: truth is, there are more strange loops in this compiler
<whitequark> e.g. Object is an instance of Class, and a Class is a descendant of Object
<whitequark> but the cycles in type-of relation are broken by not storing the type of the value directly in the value (in some of the cases)
Drup has quit [Ping timeout: 246 seconds]
osnr has quit [Quit: Leaving.]
<ggole> let rec is occasionally useful
<ggole> For disjoint sets, for instance
q66 has quit [Read error: Operation timed out]
q66 has joined #ocaml
pootler has joined #ocaml
<ggole> Hmm, never mind: I find a few uses of let rec, but they are all short hand for the equivalent mutation
<ggole> (to avoid making up a stupid dummy value)
ontologiae_ has quit [Ping timeout: 256 seconds]
mort___ has quit [Ping timeout: 276 seconds]
Watcher7|off is now known as Watcher7
diml has quit [Ping timeout: 252 seconds]
gautamc has quit [Read error: Connection reset by peer]
gautamc has joined #ocaml
Drup has joined #ocaml
Kakadu has joined #ocaml
csakatoku has joined #ocaml
emmanuelux has joined #ocaml
csakatoku has quit [Ping timeout: 276 seconds]
<whitequark> type 'a table = string 'a Hashtbl.t
<whitequark> why is above an "invalid type"?
<whitequark> oh, ","
Arsenik has joined #ocaml
tani has joined #ocaml
<ggole> Why *did* SML use that syntax? Was it just to cut down on parens?
<whitequark> I think the true purpose is to cause confusion
<whitequark> when something doesn't work, I just randomly add (,*) and at some point it compiles
travisbrady has quit [Quit: travisbrady]
<whitequark> uhh, why Hashtbl.fold has the signature val fold : ('a -> 'b -> 'c -> 'c) -> ('a, 'b) t -> 'c -> 'c
<whitequark> instead of val fold : ('a -> 'b -> 'c -> 'c) -> 'c -> ('a, 'b) t -> 'c
<whitequark> and, no Hashtbl.map? why
<orbitz> inanity
<ggole> Mirrors List.fold_right (instead of fold_left)
<orbitz> i prefer Core's modules have because they make such heavy use of labels
pootler has quit [Ping timeout: 256 seconds]
<whitequark> orbitz: inanity?
<orbitz> insanity
<orbitz> possibly inanity too
* ggole nods
<ggole> The stdlib is... not my favourite part of OCaml
travisbrady has joined #ocaml
<ggole> Stuff is inconsistent or just missing
<orbitz> yeh
osnr has joined #ocaml
osnr has quit [Changing host]
osnr has joined #ocaml
Drup has quit [Read error: Connection reset by peer]
Drup has joined #ocaml
tani has quit [Quit: Verlassend]
<whitequark> hm, so does core have a hashtable?
<Kakadu> definetly has
<ggole> They have a whole bunch of stuff
yacks has quit [Quit: Leaving]
yacks has joined #ocaml
<ggole> (They way their docs delegate through four or five layers gets pretty old though.)
csakatoku has joined #ocaml
csakatoku has quit [Ping timeout: 256 seconds]
eikke has quit [Ping timeout: 248 seconds]
eikke has joined #ocaml
Su-Shee has joined #ocaml
eikke has quit [Ping timeout: 264 seconds]
ggole has quit []
breakds has quit [Quit: Konversation terminated!]
Anarchos has joined #ocaml
<Anarchos> how can i trigger a full major collection inside the Alloc_small macro ?
eikke has joined #ocaml
<gasche> Anarchos:
<gasche> Alloc_small can call a minor cycle that calls a slice of major cycle, that can trigger heap compaction that finishes the major cycle
Kakadu has quit [Remote host closed the connection]
ollehar has joined #ocaml
<Anarchos> gasche i want to force a full major (i need to track a dangling pointer)
ttamttam has joined #ocaml
<wmeyer> gasche: thank you. Reposted.
Snark has quit [Quit: leaving]
eikke has quit [Ping timeout: 260 seconds]
csakatoku has joined #ocaml
<wmeyer> pippijn: that's not terribly bad, but not brilliant either.
<wmeyer> pippijn: can you produce trace, maybe some of the results are not memoized.
csakatoku has quit [Ping timeout: 256 seconds]
ontologiae_ has joined #ocaml
<MarcWeber> http://dpaste.com/1285050/ which section of the manual to read to understand what to open so that line 23's type t's file_name is known at line 5?
mlh has quit [Ping timeout: 256 seconds]
mlh has joined #ocaml
mort___ has joined #ocaml
ttamttam has quit [Remote host closed the connection]
hto has quit [Ping timeout: 248 seconds]
osnr has quit [Read error: Connection reset by peer]
pootler has joined #ocaml
gautamc has quit [Ping timeout: 260 seconds]
sgnb has joined #ocaml
kanibe has joined #ocaml
kanibe has quit [Client Quit]
yezariaely has joined #ocaml
hto has joined #ocaml
osnr has joined #ocaml
osnr has quit [Changing host]
osnr has joined #ocaml
<yezariaely> when installing opam-full-1.0.0 from source it requires react?! is this normal?
csakatoku has joined #ocaml
<Anarchos> yezariaely no idea
<yezariaely> is there any way to install it on a 32 bit system but from source?
<travisbrady> Anyone worked much with Jenga yet?
csakatoku has quit [Ping timeout: 256 seconds]
<Anarchos> travisbrady no
raichoo has quit [Quit: leaving]
<nicoo> travisbrady: I played with it a lot when I was young :3
Neros_ has joined #ocaml
zpe_ has joined #ocaml
dsheets has quit [Ping timeout: 276 seconds]
Neros has quit [Ping timeout: 264 seconds]
zpe has quit [Ping timeout: 264 seconds]
yezariaely has quit [Quit: Leaving.]
hto has quit [Quit: Lost terminal]
thomasga has quit [Quit: Leaving.]
_andre has quit [Quit: leaving]
hto has joined #ocaml
dezzy has joined #ocaml
dsheets has joined #ocaml
Arsenik has quit [Remote host closed the connection]
willb1 has quit [Ping timeout: 252 seconds]
willb1 has joined #ocaml
<pippijn> should the stubs library be linked against some ocaml runtime library so that caml_modify etc. are resolved?
<gasche> pippijn: lasmrun?
<pippijn> asmrun is non-PIC
<pippijn> so the dll can't be linked against it
<pippijn> there is an asmrunp, which also seems to be non-PIC
<pippijn> /usr/bin/ld: /usr/lib/ocaml/libasmrunp.a(fail.p.o): relocation R_X86_64_32 against `caml_exn_Failure' can not be used when making a shared object; recompile with -fPIC
<gasche> pippijn: you may need to build OCaml to produce a position-independent runtime
<gasche> I'm not sure whether that's the default or not nowadays
<pippijn> ok
<pippijn> I won't, then
<pippijn> I'll just link with missing symbols
<pippijn> on linux, that works fine
<pippijn> on windows, everything is PIC
csakatoku has joined #ocaml
csakatoku has quit [Ping timeout: 246 seconds]
osa1 has quit [Quit: Konversation terminated!]
mort___ has quit [Quit: Leaving.]
eikke has joined #ocaml
Simn has quit [Quit: Leaving]
smondet has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]
zpe_ has quit [Remote host closed the connection]
osnr has quit [Quit: Leaving.]
beckerb has quit [Ping timeout: 245 seconds]
csakatoku has joined #ocaml
pootler has quit [Quit: leaving]
csakatoku has quit [Ping timeout: 256 seconds]
travisbrady has quit [Quit: travisbrady]
zpe has joined #ocaml
osnr has joined #ocaml
osnr has quit [Changing host]
osnr has joined #ocaml
pootler has joined #ocaml
pootler_ has joined #ocaml
zpe has quit [Ping timeout: 245 seconds]
eikke has quit [Ping timeout: 276 seconds]
<pippijn> wmeyer: with 1791 directories, omake needs about 1 second to read the makefiles if they don't actually do anything
breakds has joined #ocaml
ontologiae_ has quit [Ping timeout: 246 seconds]
pootler_ has quit [Ping timeout: 246 seconds]
pootler has quit [Ping timeout: 264 seconds]
pootler has joined #ocaml
pootler_ has joined #ocaml
<wmeyer> pippijn: have you generated the project to measure the performance? Or maybe it's all of your projects collated?
<pippijn> it's all my projects
<pippijn> not all, but the majority of them
zpe has joined #ocaml
<wmeyer> that's a great deal of code!
<pippijn> not really
<pippijn> I have hundreds of tests, each in a directory
<wmeyer> I remember cpapa frontend
<wmeyer> i cherish it :-)
<pippijn> heh
<pippijn> yeah, cpapa
<wmeyer> it was good.
* wmeyer have to go to bed
<pippijn> good night
<wmeyer> night
emmanuelux has quit [Remote host closed the connection]
travisbrady has joined #ocaml
zpe has quit [Ping timeout: 246 seconds]
mfp has quit [Ping timeout: 252 seconds]
ollehar has quit [Read error: Operation timed out]
ttamttam has joined #ocaml
ttamttam has left #ocaml []
mfp has joined #ocaml
cdidd has quit [Read error: Connection reset by peer]
cdidd has joined #ocaml
zpe has joined #ocaml
Anarchos has quit [Quit: Vision[0.9.7-H-130604]: i've been blurred!]
jonafan has quit [Read error: Operation timed out]
jonafan has joined #ocaml
dfarmer has joined #ocaml
Arthur_ has quit [Read error: Connection reset by peer]
Arthur_ has joined #ocaml
zpe has quit [Ping timeout: 260 seconds]
<pippijn> wmeyer: I can't have autodetection of language used in a target
<pippijn> wmeyer: because I need to know in advance which C libraries, which OCaml libraries, etc. are built in the project
<pippijn> wmeyer: I need to scan the makefiles before everything, so I know what is built, so that packages are looked up correctly (for dependencies within the project)
<pippijn> wmeyer: I need to do that before omake knows anything about targets, because then it's too late
<pippijn> in fact, omake is a little stupid
<pippijn> the problem is that after a makefile is completely parsed, all dependencies must have been resolved
<pippijn> because the pattern rules need to know about them
<pippijn> they need to depend on them
<pippijn> I really need to write an email to the authors of omake..
<pippijn> there is so much I need that omake can't do :(
<pippijn> or I don't know how to do it
travisbrady has quit [Quit: travisbrady]
Watcher7 has quit [Quit: ded]
Watcher7|off has joined #ocaml