gildor changed the topic of #ocaml to: Discussions about the OCaml programming language | http://caml.inria.fr/ | OCaml 3.12.0 http://bit.ly/aNZBUp
philtor has quit [Ping timeout: 240 seconds]
agarwal1975 has quit [Quit: agarwal1975]
boscop has quit [Ping timeout: 240 seconds]
tauntaun has joined #ocaml
rien has joined #ocaml
tauntaun has quit [Quit: Ex-Chat]
tauntaun has joined #ocaml
<confound> is there a debian or ubuntu repository that has ocaml 3.12.0 instead of 3.11.2?
<confound> (googling turns up nothing very useful)
myu2 has joined #ocaml
willb1 has quit [Ping timeout: 276 seconds]
<thelema> confound: ekstrand has one, iirc
* thelema looks for the link
<confound> thanks
willb1 has joined #ocaml
<confound> so, http://code.google.com/p/deriving/wiki/Introduction looks really neat, but I think it's assuming some knowledge that I don't have. how do I actually apply it to my code? right now I'm just doing `ocamlfind opt -linkpkg -package foo,bar,baz -o myprog myprog.ml`
willb1 has quit [Read error: Operation timed out]
myu2 has quit [Read error: No route to host]
myu2 has joined #ocaml
csong has joined #ocaml
csong is now known as lars9
<lars9> hi im a haskeller and learning ocaml now
<lars9> i have a question about type definition
<lars9> is the _elem_ in 'a elem a type constructor?
<thelema> lars9: yes
<thelema> confound: add "-syntax camlp4o" to that line to enable any camlp4
<lars9> thelema: can it have multiple type variables?
<lars9> like 'a 'b 'c tuple3
<thelema> lars9: yes, as a tuple
<thelema> type ('a, 'b, 'c) tuple3 = 'a * 'b * 'c
<lars9> so it's just like type Tuple3 a b c = (a, b, c) ?
<lars9> haskell put type constructor left most, and ocaml right most?
<confound> thelema: deriving doesn't have a META file, so ocamlfind gives me an error about setting 'preprocessor'
<confound> (which I have no clue about)
<thelema> confound: ah, well then...
<thelema> lars9: yes, opposite order
<lars9> thelema: thanks
<lars9> how to use open Core.Std in toplevel?
<thelema> lars9: probably something like: #use "topfind";; #require "core";; (or whatever the core ocamlfind module is named)
<thelema> confound: wow, you're right. Why wouldn't it have a META file...
willb1 has joined #ocaml
<lars9> when defining a record type. what is the _with_ in type t = {x:int; y:int;} with abc;; ?
<thelema> ? I didn't realize that was valid syntax
<thelema> there's with syntax for records: type r = {a:int; b:int} let r1 = {a=2;b=3} in {r1 with b=2}
<lars9> oh maybe i made a mistake
<thelema> yes, not valid syntax
lopex has quit []
enthymeme has quit [Quit: brb]
<thelema> maybe you should just make install that repo instead
<confound> huh
<confound> thanks
arubin has joined #ocaml
tauntaun has quit [Quit: Ex-Chat]
<lars9> what is ">|" ?
<lars9> oh no, "|!"
<lars9> how to split string by spaces in ocaml?
philtor has joined #ocaml
ftrvxmtrx has quit [Ping timeout: 264 seconds]
<orbitz> lars9: Core provies a fuciton, i imagine batteries does too
<orbitz> argh I have to fix tuareg mdoe, does not work properly on big functions
<lars9> orbitz is it Str.split?
<lars9> i can not use Str.xxx in toplevel, how to open it?
<orbitz> i tis String
<orbitz> Str is the crappy regex module IIRC
<orbitz> lars9: but as I said, Core or Batteries likely provide functiosn for this
<lars9> but String has no split...
<orbitz> I know
<orbitz> I never said it did.
ftrvxmtrx has joined #ocaml
<lars9> orbitz: thanks, i see it in core_string.ml
<lars9> but how to refer to it?
<lars9> in toplevel, i first open String;; then split is still unbounded
<orbitz> did you install core?
<lars9> yeah.
<orbitz> did you load it via topfind?
<lars9> how to, open Core?
<orbitz> Did you install findlib?
<lars9> i first run #use "topfind";;
<orbitz> then #require "core_extended";;
<orbitz> then the new String module is in Core_extended.Std.String
<lars9> then#require "core_extended";;
<lars9> No such package: core_extended
<orbitz> Then it doesn't look like you installed Core
philtor has quit [Ping timeout: 240 seconds]
jeddhaberstro has joined #ocaml
jeddhaberstro has quit [Read error: Connection reset by peer]
jeddhaberstro_ has joined #ocaml
enthymeme has joined #ocaml
arubin has quit [Quit: arubin]
jeddhaberstro_ has quit [Read error: Connection reset by peer]
jeddhaberstro has joined #ocaml
Snark has joined #ocaml
rossberg_ has quit [Ping timeout: 272 seconds]
rossberg_ has joined #ocaml
jeddhaberstro has quit [Read error: Connection reset by peer]
jeddhaberstro_ has joined #ocaml
<lars9> what's the meaning of "with" in: module MakeSet (EqArg : EqualSig) : SetSig with module Equal=EqArg = struct ..... end;; ?
ulfdoz has joined #ocaml
jeddhaberstro_ has quit [Read error: Connection reset by peer]
jeddhaberstro has joined #ocaml
Cyanure has joined #ocaml
philtor has joined #ocaml
jeddhaberstro_ has joined #ocaml
jeddhaberstro has quit [Read error: Connection reset by peer]
jeddhaberstro_ is now known as jeddhaberstro
jeddhaberstro has quit [Client Quit]
ulfdoz has quit [Ping timeout: 250 seconds]
Yoric has joined #ocaml
<lars9> how to comment a line?
<lars9> besides (* *)
<mrvn> no other way
<lars9> thanks
boscop has joined #ocaml
Cyanure has quit [Remote host closed the connection]
bzzbzz has quit [Ping timeout: 260 seconds]
philtor has quit [Ping timeout: 240 seconds]
ygrek has joined #ocaml
Yoric has quit [Quit: Yoric]
fabjan is now known as uefqej
bzzbzz has joined #ocaml
edwin has joined #ocaml
fabjan has joined #ocaml
fabjan is now known as fabjan_
fabjan_ has quit [Client Quit]
uefqej is now known as fabjan
fabjan is now known as fabian
ikaros has joined #ocaml
enthymeme has quit [Quit: rcirc on GNU Emacs 23.1.1]
<lars9> how to make a new type comparable?
<lars9> like in module A = struct type t = ... end;;
<lars9> if x and y are both of type A.t, I want to be able to compare x and y by x = y, x > y etc
<flux> well, you can do it already
<flux> but it might not do what you want :)
<flux> unfortunately you cannot really alter that behavior. a typical solution is to provide a function 'compare' that can be used for that purpose.
<lars9> flux: what's the default setting, and how to customize it?
<lars9> does ocaml have multimap?
Yoric has joined #ocaml
<flux> lars9, hmm, no, but I have an implementation of that
<flux> mapSet.mli
<flux> free for any use :)
<flux> oops, it references Batteries as well
<flux> it might be that it doesn't really require it, though
<flux> (iow it could be search/replaced to be non-batteries)
<flux> thelema, btw, would batteries have any use for such a module?
ftrvxmtrx has quit [Quit: Leaving]
myu2 has quit [Remote host closed the connection]
<lars9> at outside of the module: module A = struct type t = {x:int} end;; if some a : A.t, how to refer to a.x ?
<flux> a.A.x
<lars9> flux: yeah it works, thanks
tauntaun has joined #ocaml
Yoric has quit [Read error: Connection reset by peer]
Yoric has joined #ocaml
rossberg_ has quit [Remote host closed the connection]
Yoric has quit [Quit: Yoric]
ftrvxmtrx has joined #ocaml
rossberg has joined #ocaml
eye-scuzzy has quit [Quit: leaving]
eye-scuzzy has joined #ocaml
Morphous has quit [Ping timeout: 272 seconds]
lars9 has quit [Quit: leaving]
Amorphous has joined #ocaml
ikaros has quit [Quit: Leave the magic to Houdini]
avsm has joined #ocaml
sepp2k has joined #ocaml
avsm has quit [Quit: Leaving.]
lopex has joined #ocaml
Julien_Tz is now known as Julien_T
tauntaun has quit [Ping timeout: 240 seconds]
<thelema> flux: mapset? Is this different from BatMultiPMap?
<flux> thelema, it's not polymorphic
<flux> I assumy that is?
<thelema> Well, I guess we could have BatMultiMap with your module as a functor and BatMultiPMap just in the main body...
<thelema> also, I don't seem to be able to reach ... ah, ipv6
<thelema> Failed to connect to 2001:708:310:3430:f803:81ff:fe7e:8986: Network is unreachable while accessing http://www.modeemi.fi/~flux/software/git/tagger.git//info/refs
avsm has joined #ocaml
<thelema> n/m, the ipv4 address doesn't work either...
<flux> oops
<flux> ah, right, the web server is down
<flux> or rather I now understand what were the consequences of a virtual server being brough down :)
avsm has quit [Quit: Leaving.]
tauntaun has joined #ocaml
ankit9 has joined #ocaml
myu2 has joined #ocaml
rien is now known as rien|home
ankit9 has quit [Remote host closed the connection]
<flux> thelema, well, I put a copy at http://inside.org/~flux/git/tagger.git/ as well
<thelema> flux: looks good - are you able to make a patch for batteries as BatMultiMap, or do should I?
<thelema> s/do//
<flux> I can make a patch
<thelema> thanks. I don't expect to have any problem merging it. If you're interested in doing a super job, you can add some of the extra functions from here: http://docs.camlcity.org/docs/godisrc/menhir-20090505.tar.gz/menhir-20090505/src/gMap.ml#line149
avsm has joined #ocaml
<gildor> thelema: concerning GSoC
<gildor> thelema: documentation task cannot be part of it
<flux> GSoD :)
<thelema> gildor: ah, no problem
<gildor> thelema: sorry for that
<thelema> I wasn't thinking just to document ocaml, but to update the document generation routines
<gildor> I think you can defend your case for the document generation routines
<thelema> The default output of ocamldoc is not very nice. Yoric had an improved document generation which got dropped
<gildor> but the survey (with this title) cannot make it
<thelema> I'll see if can work on the specifics of what to do before putting that up.
<gildor> and "Improve documentation generation" -> Enhance ocamldoc plugin to render documentation is probably better (sound more like a programming project?)
<thelema> sure. I guess shortening it too much took away from the intent
<thelema> I wonder if coming up with good example code for every batteries function would be a programming project or a documentation project
<gildor> don't know
<thelema> just a thought.
<kaustuv> isn't "torture" usually something HR handles?
ygrek has quit [Ping timeout: 240 seconds]
avsm has quit [Quit: Leaving.]
<thelema> kaustuv: :) I think maybe the inline test cases could be used for documentation as well, as often they show example usage and the proper result
<thelema> scripting that into the batteries build system would be a proper programming task
tauntaun has quit [Ping timeout: 240 seconds]
<thelema> hmm, massif (from valgrind) insists I've got 1.5GB in my heap, while I'm fairly certain I'm reading a directory with < 1GB of data, parsing it and returning just a BatVect with the parsed sections that total 0.7GB
<thelema> I can't imagine that the overhead on the vect is 100%, considering it's only got 500K elements
<thelema> Valgrind reports 974MB of heap allocated by caml_alloc_string and 494GB by caml_oldify_one -- does anyone know what this second function is?
<thelema> it seems related to moving data from the minor heap to the major heap
<kaustuv> Exactly. It promotes one object and updates all pointers to it
sepp2k has quit [Read error: Operation timed out]
<mrvn> and while it promotes you have twice the memory usage.
<adrien> thelema: you can probably try lowering GC.space_overhead
sepp2k has joined #ocaml
<orbitz> ahhh
* orbitz is still battlign tuareg-mode
ikaros has joined #ocaml
lopex has quit []
ccasin has joined #ocaml
agarwal1975 has joined #ocaml
Yoric has joined #ocaml
ccasin has quit [Quit: leaving]
ccasin has joined #ocaml
enthymeme has joined #ocaml
lopex has joined #ocaml
ccasin has quit [Quit: leaving]
ccasin has joined #ocaml
ccasin has quit [Client Quit]
ccasin has joined #ocaml
<thelema> kaustuv: so memory allocated by oldify_one has been promoted from the minor heap... now I just have to figure out how I have so much data promoted
<thelema> adrien: I drop space_overhead to 0 when I read the files in, as I'm allocating a single string for the whole file.
<thelema> mrvn: sure, but I'm experiencing twice the expected memory usage for more than just a short time - the memory usage stays at 1.5GB for a file that's half that size
eye-scuzzy has quit [Quit: leaving]
eye-scuzzy has joined #ocaml
ygrek has joined #ocaml
<hcarty> thelema: Does a Gc.full_major affect memory use at all, once everything is loaded?
<thelema> no
<thelema> so clearly the answer is that I'm leaking something
<mrvn> The heap is allocated in bigger chunks. Some overhead is expected.
<thelema> even when I Gc.compact()?
<mrvn> Does valgrind complain about unfreed memory when you quit?
<mrvn> thelema: sure. The heap still remains allocated. It just has a solid free chunk at the end for future use.
<thelema> hmm... I'm pretty sure I've caught ocaml giving memory back to the OS when I compact
<thelema> massif complains about bad stack frames and valgrind complains about unfreed memory, but I expect the second
<mrvn> I think it will give memory back if a whole chunk is free. But I don't think it ever shrinks a chunk.
<thelema> if I compact, shouldn't there be a ton of free chunks?
<mrvn> thelema: There aren't many chunks to begin with.
<mrvn> I wouldn't expect it to shrink the heap unless it is <50% full or something.
ccasin has quit [Quit: leaving]
ccasin has joined #ocaml
<thelema> my heap increment is the default, shouldn't that keep the granularity small?
ccasin has quit [Client Quit]
ccasin has joined #ocaml
<mrvn> what is the default? factor 2? 1.5? golden ratio?
ccasin has quit [Client Quit]
ccasin has joined #ocaml
<thelema> isn't it a fixed amount - default 126k words?
<thelema> 124k
<thelema> well, I guess that's the "minimum", so maybe it does grow faster than I expect
ccasin has quit [Client Quit]
ccasin has joined #ocaml
ccasin has quit [Client Quit]
<thelema> and in another run, linux reports 2.9GB allocated, while the GC counts only 1.6GB in live words - I guess it's possible that the last chunk allocated is bigger than that difference
ccasin has joined #ocaml
ccasin has quit [Remote host closed the connection]
ccasin has joined #ocaml
<mrvn> turn up the verbosity of the gc and it will tell you
ccasin_ has joined #ocaml
DimitryKakadu has joined #ocaml
ccasin has quit [Client Quit]
ccasin_ has left #ocaml []
kaustuv_ has joined #ocaml
<kaustuv_> agarwal1975: why is it Tuple5.fvth and not Tuple5.ffth?
<agarwal1975> no good reason.
<agarwal1975> i can change it.
<agarwal1975> alternatively, I was wondering if we should just use full words: first, second, third, etc.
<agarwal1975> these names have a different meaning in the current Pair, to mean map the 1st, 2nd, etc item, but those are being deleted anyway.
<kaustuv_> I would vote for full words
<agarwal1975> me too actually.
<agarwal1975> of course fst and snd would still be available in Pervasives.
<agarwal1975> The current Pair.first and Pair.second have been renamed to map1 and map2, which I think is much more intuitive.
<agarwal1975> should I just do it? I guess I'm not sure of what kind of consensus is req'd. or should I email the dev list, asking people to vote?
<kaustuv_> You can e-mail the list, but I suspect the response will be "just do it". /cast summon thelema
ygrek has quit [Ping timeout: 240 seconds]
* thelema appears
<thelema> well, at least the signatures are different, so I'll get build errors when we migrate to the new names
Cyanure has joined #ocaml
<thelema> agarwal1975: I'm fine with either abbreviations or whole words. if others have a preference, now's the time to get it changed, before we release 1.4
<thelema> if you want to change them now, I'm fine with it.
<mrvn> fvth and ffth are incomprehensible. use words.
<agarwal1975> looks like we have consensus. :)
<adrien> (optic) fiber for the home?
<thelema> _5th?
<mrvn> first, second, third, nth
<agarwal1975> agarwal1975: interesting, had not thought of that. not sure i like it.
yezariaely has joined #ocaml
<adrien> =)
<agarwal1975> mrvn: by nth do you mean, etc. or does that do something itself.
<mrvn> agarwal1975: List.nth 5 list
<thelema> mrvn: can't type nth for tuples
<agarwal1975> but that would not be type safe, what if you pass 6 on a 5-tuple.
<thelema> mrvn: Tuple5.nth 3
<thelema> I guess it could raise an exception
<thelema> match n with 1 -> a | 2 -> b | 3 -> c | 4 -> d | 5 -> e | _ -> failwith ...
<thelema> it'd only work on ('a,'a,'a,'a,'a) tuples, though
<agarwal1975> yes, I suppose it could be useful for tuples where all items are of the same type. would be easier to iterate over all items.
<mrvn> thelema: Obj.field ...
<agarwal1975> but you already get that by converting to enum..
<thelema> mrvn: eep!
<mrvn> but yeah, only works on tuples of same type.
<mrvn> nth for tuples probably doesn't make sense. but other modules should have the same first/second/third and also nth.
ccasin has joined #ocaml
<agarwal1975> mrvn: what other modules would need first, second, etc.
<thelema> mrvn: Map.nth?
<thelema> mrvn: Heap.nth?
<mrvn> List, Array, Queue?
<thelema> I guess anything that can be enum'ed can be nth'ed
<mrvn> yes
<agarwal1975> mrvn: so you want List.second? I don't see the benefit.
<mrvn> agarwal1975: if more than just tuples have it then everything enumerable should have it
<mrvn> for consistencies sake.
<agarwal1975> but it is only tuples that have first, second, ...
<kaustuv_> consistency in ocaml?! over my dead body!
Yoric has quit [Quit: Yoric]
<mrvn> I've needed it for lists and queues in the past
<thelema> batteries has it for lists, and likely for queues
<agarwal1975> just first, but not second, third.
<thelema> I'm a fan of the pop function I've added to maps and sets
<thelema> but I was more referring to nth
<agarwal1975> anyone here familiar with PG'OCaml? I'm stuck installing it.
<kaustuv_> module AddOrdinals (M : sig type 'a t val nth : 'a t -> int -> 'a end) = struct let second m = M.nth m 2 (* etc *) end ?
<agarwal1975> docs for BatList.nth say "Obsolete. As at."
<thelema> apparently "at" is the new way to say "nth"
<hcarty> thelema: Bat(Map|Set).pop does not seem to be ordered. Is that correct?
<kaustuv_> I think "nth" was a much better name
<thelema> kaustuv_: if you assume enumerable, you get nth
<thelema> hcarty: yes, very
<thelema> hcarty: I expect it to do as little work as possible to get the one element
<thelema> which means taking the root of the tree
<agarwal1975> kaustuv_: yeah, kind of agree. I like nth.
<thelema> I'm neutral, put it to the batteries list.
<thelema> at is slightly shorter, and List.at 3 reads a little better than List.nth 3
<kaustuv_> except it's List.at l 3, which seems to mean (in English at least) that 3 is "at" l.
<thelema> hmm, that's not so nice.
<mrvn> for me at means direct access while nth means having to read past the leading ones.
<thelema> why is it backwards...
<kaustuv_> curryability
<thelema> arguable - I can imagine partial applying the position more than the list
<thelema> we should get more named parameters
yezariaely has left #ocaml []
<thelema> except I don't think ocaml is as friendly as I thought about named parameters
<thelema> maybe it's only optional parameters - I just had some problems with BatString.slice
<kaustuv_> Yes, I wish there was some way to tell OCaml to not automatically turn (f x y) to (f ~arg1:x ~arg2:y)
<thelema> # String.slice 1 3 "abcdefghi";;
<thelema> # Error: The function applied to this argument has type ?first:int -> ?last:int -> string
<thelema> maybe it's because the mixture of named and unnamed
<mrvn> There must be a reson stdlib has labeled and unlabeled flavours
<kaustuv_> the reasons might have to do with the merger of O'labl and O'Caml
<mrvn> thelema: they are optional. 1 can be first or last
<thelema> but it's a complete application, doesn't that match things positionally?
<thelema> I guess not.
<kaustuv_> only for non-optional labels, iirc
<mrvn> What should String.slice 1 "abcdefghi";; do?
philtor has joined #ocaml
<mrvn> or (String.slice 1)? With optional args the application is ambigious.
<thelema> sure, but if the application is complete...
<mrvn> I don't think the compiler looks that far ahead
<thelema> mrvn: it does for non-optional labels
<mrvn> I think optional args must simply always be specified by label.
<mrvn> thelema: non-optional labels aren't ambigious.
<thelema> I guess the arity of functions without optional arguments is known ahead of time
<thelema> so the compiler can detect complete application... although the max arity of functions with optional args should also be known
<kaustuv_> Well, "arity" is a mysterious concept in ML-like languages anyway. (Think printf)
<mrvn> thelema: the compiler doesn't need complete application. It just applied the next arg
<thelema> the compiler does optimize complete application, so it has code to detect it
<mrvn> kaustuv_: printf is a seriouis hack though.
<thelema> kaustuv_: true. an impressive hack.
<kaustuv_> Not really. I can write printf using non-hacky OCaml using combinators
<mrvn> or rather the format string.
<thelema> kaustuv_: not without objectionable syntax or syntax mangling
<thelema> s/syntax mangling/code filters/
<kaustuv_> The point is, you can never tell if (f x y) is a complete application knowing just the type of f.
<mrvn> kaustuv_: sure you can.
<thelema> for non-polymorphic f, yes
<kaustuv_> mrvn: is (id id) a complete application?
<mrvn> sure. id takes ONE argument and you have given it one.
<kaustuv_> But by that token every function takes one argument
<thelema> kaustuv_: arity = maximum tuple size when curried
<mrvn> kaustuv_: In ocaml that is actually true since everything is curried.
<thelema> err, uncurried
<kaustuv_> the point is functions that have a polymorphic return type don't have a "maximum tuple size"
<mrvn> But for the sake of making sense fun x y -> ... and function x -> function y -> have different arity imho.
<thelema> mrvn: only if there's code before the function y
<thelema> although going there is not pretty
<mrvn> thelema: really? Does ocaml combine the function's?
<thelema> no, it uncombines the fun x y into function x -> function y ->
<flux> whoa, lots of stuff has updated [in batteries] since I've last git pulled :)
<kaustuv_> I think it is better to think of "arity" in languages with parametric polymorphism as a "may" rather than a "must" specification. In that sense, (+) does not have arity 3, but id has any arity.
<thelema> flux: we've been hard at work
yuvi_ has joined #ocaml
yuvi_ has quit [Read error: Connection reset by peer]
ymasory_ has joined #ocaml
<thelema> kaustuv_: I'm not comfortable giving id any arity, it's clearly arity 1, despite that the result of applying it to a value can be a function
<thelema> it's got one arrow in its definition
<mrvn> kaustuv_: I think of arity as the number of arguments the function is ment to take before it gives a result. id takes one. + takes 2.
<thelema> (maybe that's a better definition of arity)
<mrvn> The result can be a function again but id clearly is ment to work on one argument.
<kaustuv_> How about (failwith "foo")? It has *no* arrows in its (most general) type. Does that mean it has arity 0?
<thelema> kaustuv_: yes, arity 0. no problem.
<kaustuv_> So an arity 0 entity can be a function too? You have no problem with this?
<mrvn> failwith "foo" doesn't have a result, it just throws an exception
<mrvn> kaustuv_: arity 0 describes a value.
<thelema> a polymorphic arity 0 entity can't be anything.
<kaustuv_> id *is* a value
<mrvn> kaustuv_: a non functional value
<mrvn> thelema: how do you get a polymorphic arity 0 entity?
<kaustuv_> "non functional" ain't a well formed concept when you have ML's full generality.
<thelema> mrvn: (failwith "foo") is type 'a, polymorphic arity 0
<kaustuv_> For example, is 'a Parser.t a non-functional value? How can you know without breaking the abstraction?
<mrvn> thelema: but you can't use it since it doesn't produce that value.
ftrvxmtrx has quit [Quit: Leaving]
<mrvn> kaustuv_: for all intents outside the module it is not a function.
<mrvn> Lets define arity as the minimum number of arguments you need to apply to a function so it returns :)
ulfdoz has joined #ocaml
<kaustuv_> let rec f x = f x. What is it's arity?
<kaustuv_> s/it's/its/
<mrvn> indetermined
<thelema> kaustuv_: I'd say one. despite being 'a -> 'b (because it doesn't return), it's still arity 1
<mrvn> I agree but the definition wouldn't give that
<thelema> its evaluation causes some work (other than producing a closure, waiting for more arguments) to be done when a single parameter is passed
<kaustuv_> I would say that you are both proposing a notion of "arity" that is not parametric in the same sense as polymorphism is parametric. And that is generally a sign that it's a broken concept.
<mrvn> kaustuv_: if you include polymorphism then any interesting function has variable arity.
<kaustuv_> Indeed. The whole reason we have the caml_curry/caml_uncurry mess is because of "variable arity"
<kaustuv_> By the way, I think Scala gets arity right with its (t1, t2, ..., tn) => t types
<kaustuv_> (it may be -> instead of =>, I forget)
<mrvn> One could also define the arity as the number of arguments ocaml combines into a closure call. I.e. how many args it takes before it computes something.
Cyanure has quit [Quit: Quitte]
<thelema> mrvn: computes something other than just the closure waiting for the next argument
<mrvn> thelema: yes.
<mrvn> computes some of the user specified source code.
<mrvn> let f = function x -> incr foo; function y -> x + y would have arity 1.
<mrvn> let f x = let t = x in function y -> t + y => 1
<mrvn> although that is an odd case
ymasory_ has quit [Quit: Leaving]
ymasory has quit [Remote host closed the connection]
ymasory has joined #ocaml
<flux> thelema, hm, unicode or latin1 in Batteries source files?
<mrvn> ascii
<mrvn> only way that works everywhere :)
<kaustuv_> OCaml's own source code doesn't live by your strict rules
<flux> well, my surname doesn't work in ascii :)
<mrvn> kaustuv_: because its french. :)
<thelema> flux: technically everything is latin1, but some of that latin1 happens to represent useful utf8
<kaustuv_> ps, ascii doesn't work everywhere, though I am not sure if OCaml has been ported to any ebcdic platforms
<mrvn> kaustuv_: die die die. :)
Snark has quit [Quit: Ex-Chat]
<_habnabit> flux, sadly, you can't put unicode in files.
<kaustuv_> mrvn: If I were to send you to http://en.wikipedia.org/wiki/UTF-EBCDIC would your brain explode?
<flux> hmh, I wonder how useful MapSet.map would be
<flux> as MapSet is fully non-polymorphic
coucou747 has quit [Ping timeout: 246 seconds]
ulfdoz has quit [Ping timeout: 240 seconds]
ulfdoz has joined #ocaml
edwin has quit [Ping timeout: 272 seconds]
ftrvxmtrx has joined #ocaml
coucou747 has joined #ocaml
schmrkc has quit [Ping timeout: 240 seconds]
enthymeme has quit [Quit: co'o. Off to a job interview!]
schmrkc has joined #ocaml
schmrkc has quit [Changing host]
schmrkc has joined #ocaml
ikaros has quit [Ping timeout: 240 seconds]
<flux> thelema, it seems that git format-patch isn't very popular patch submissions in the mailing list?
<flux> I guess I can still try, I mean, it is the de-facto system used for dealing with patches to git-based repositories :)
thelema has quit [Read error: Connection reset by peer]
thelema has joined #ocaml
kaustuv_ has quit [*.net *.split]
eye-scuzzy has quit [*.net *.split]
rossberg has quit [*.net *.split]
willb1 has quit [*.net *.split]
sgnb has quit [*.net *.split]
orbitz has quit [*.net *.split]
bacam has quit [*.net *.split]
confound has quit [*.net *.split]
jdavis has quit [*.net *.split]
fabian has quit [*.net *.split]
metasyntax has quit [*.net *.split]
Lor has quit [*.net *.split]
cods has quit [*.net *.split]
ccasin has quit [Quit: Lost terminal]
joewilliams_away is now known as joewilliams
sepp2k has quit [Ping timeout: 246 seconds]
sepp2k has joined #ocaml
<flux> hmm, I wonder if git send-email works from my laptop.. we shall see.
<flux> well, it ended up in my INBOX - but only one of the mails - but I don't appear to have received it via the mailing list yet..
<flux> should've sent from my subscriber address I notice
SoftTimur has joined #ocaml
kaustuv_ has joined #ocaml
eye-scuzzy has joined #ocaml
rossberg has joined #ocaml
willb1 has joined #ocaml
confound has joined #ocaml
sgnb has joined #ocaml
orbitz has joined #ocaml
bacam has joined #ocaml
Lor has joined #ocaml
jdavis has joined #ocaml
fabian has joined #ocaml
metasyntax has joined #ocaml
cods has joined #ocaml
agarwal1975 has quit [Read error: Connection reset by peer]
agarwal1975 has joined #ocaml
<SoftTimur> Hello all, I would like to backtrack an execution of some programs. How could I use "OCAMLRUNPARAM='b'" on the terminal?
<SoftTimur> if a program runs well, backtrack will not work, right?
lamawithonel has quit [*.net *.split]
srcerer has quit [*.net *.split]
trigen has quit [*.net *.split]
avsm2 has quit [*.net *.split]
mlh has quit [*.net *.split]
agarwal1975 has quit [*.net *.split]
svenl has quit [*.net *.split]
ski has quit [*.net *.split]
mal`` has quit [*.net *.split]
diml has quit [*.net *.split]
mrvn has quit [*.net *.split]
pheredhel has quit [*.net *.split]
f[x] has quit [*.net *.split]
kerneis has quit [*.net *.split]
xl0 has quit [*.net *.split]
sepp2k has quit [*.net *.split]
lopex has quit [*.net *.split]
kaustuv_ has quit [*.net *.split]
eye-scuzzy has quit [*.net *.split]
rossberg has quit [*.net *.split]
willb1 has quit [*.net *.split]
sgnb has quit [*.net *.split]
orbitz has quit [*.net *.split]
bacam has quit [*.net *.split]
confound has quit [*.net *.split]
jdavis has quit [*.net *.split]
fabian has quit [*.net *.split]
metasyntax has quit [*.net *.split]
Lor has quit [*.net *.split]
cods has quit [*.net *.split]
ulfdoz has quit [*.net *.split]
cthuluh has quit [*.net *.split]
krktz_ has quit [*.net *.split]
mikemc has quit [*.net *.split]
Tobu has quit [*.net *.split]
AdmWiggin has quit [*.net *.split]
shachaf has quit [*.net *.split]
patronus_ has quit [*.net *.split]
mehdid has quit [*.net *.split]
noj has quit [*.net *.split]
ymasory has quit [*.net *.split]
chicco has quit [*.net *.split]
deavid has quit [*.net *.split]
Derander has quit [*.net *.split]
rixed has quit [*.net *.split]
jlouis has quit [*.net *.split]
nejimban has quit [*.net *.split]
boscop has quit [*.net *.split]
kaustuv has quit [*.net *.split]
__marius__ has quit [*.net *.split]
npouillard has quit [*.net *.split]
vk0 has quit [*.net *.split]
rwmjones has quit [*.net *.split]
strlen has quit [*.net *.split]
caligula has quit [*.net *.split]
Julien_T has quit [*.net *.split]
hcarty has quit [*.net *.split]
BiDOrD has quit [*.net *.split]
hto_ has quit [*.net *.split]
_2x2l has quit [*.net *.split]
adrien has quit [*.net *.split]
thomasga has quit [*.net *.split]
fremo__ has quit [*.net *.split]
schmrkc has quit [*.net *.split]
philtor has quit [*.net *.split]
Obfuscate has quit [*.net *.split]
mfp has quit [*.net *.split]
mattam has quit [*.net *.split]
_habnabit has quit [*.net *.split]
companion_cube has quit [*.net *.split]
alpounet has quit [*.net *.split]
benthos has quit [*.net *.split]
nimred has quit [*.net *.split]
Amorphous has quit [*.net *.split]
hyperboreean has quit [*.net *.split]
flux has quit [*.net *.split]
rup has quit [*.net *.split]
mcclurmc has quit [*.net *.split]
haelix has quit [*.net *.split]
SoftTimur has quit [*.net *.split]
bzzbzz has quit [*.net *.split]
fraggle_ has quit [*.net *.split]
joewilliams has quit [*.net *.split]
pantsd has quit [*.net *.split]
zzz_` has quit [*.net *.split]
jonafan has quit [*.net *.split]
jonathandav has quit [*.net *.split]
CoryDambach has quit [*.net *.split]
dgfitch has quit [*.net *.split]
brendan has quit [*.net *.split]
explodus has quit [*.net *.split]
emias has quit [*.net *.split]
mlh has joined #ocaml
trigen has joined #ocaml
mrvn has joined #ocaml
pheredhel has joined #ocaml
f[x] has joined #ocaml
kerneis has joined #ocaml
xl0 has joined #ocaml
cods has joined #ocaml
metasyntax has joined #ocaml
fabian has joined #ocaml
jdavis has joined #ocaml
Lor has joined #ocaml
bacam has joined #ocaml
orbitz has joined #ocaml
sgnb has joined #ocaml
confound has joined #ocaml
willb1 has joined #ocaml
rossberg has joined #ocaml
eye-scuzzy has joined #ocaml
kaustuv_ has joined #ocaml
SoftTimur has joined #ocaml
sepp2k has joined #ocaml
schmrkc has joined #ocaml
ulfdoz has joined #ocaml
ymasory has joined #ocaml
philtor has joined #ocaml
lopex has joined #ocaml
Amorphous has joined #ocaml
bzzbzz has joined #ocaml
boscop has joined #ocaml
fraggle_ has joined #ocaml
hyperboreean has joined #ocaml
kaustuv has joined #ocaml
Julien_T has joined #ocaml
cthuluh has joined #ocaml
flux has joined #ocaml
__marius__ has joined #ocaml
joewilliams has joined #ocaml
npouillard has joined #ocaml
pantsd has joined #ocaml
Obfuscate has joined #ocaml
rup has joined #ocaml
vk0 has joined #ocaml
mfp has joined #ocaml
mattam has joined #ocaml
zzz_` has joined #ocaml
krktz_ has joined #ocaml
mcclurmc has joined #ocaml
mikemc has joined #ocaml
hcarty has joined #ocaml
BiDOrD has joined #ocaml
jonafan has joined #ocaml
jonathandav has joined #ocaml
CoryDambach has joined #ocaml
hto_ has joined #ocaml
Tobu has joined #ocaml
AdmWiggin has joined #ocaml
chicco has joined #ocaml
shachaf has joined #ocaml
_habnabit has joined #ocaml
companion_cube has joined #ocaml
_2x2l has joined #ocaml
noj has joined #ocaml
mehdid has joined #ocaml
patronus_ has joined #ocaml
alpounet has joined #ocaml
deavid has joined #ocaml
rwmjones has joined #ocaml
adrien has joined #ocaml
benthos has joined #ocaml
haelix has joined #ocaml
nimred has joined #ocaml
dgfitch has joined #ocaml
thomasga has joined #ocaml
strlen has joined #ocaml
brendan has joined #ocaml
Derander has joined #ocaml
rixed has joined #ocaml
caligula has joined #ocaml
explodus has joined #ocaml
fremo__ has joined #ocaml
emias has joined #ocaml
nejimban has joined #ocaml
jlouis has joined #ocaml
srcerer has joined #ocaml
lamawithonel has joined #ocaml
svenl has joined #ocaml
ski has joined #ocaml
mal`` has joined #ocaml
diml has joined #ocaml
<thelema> SoftTimur: if you're using bash, do "export OCAMLRUNPARAM=b" and then run your program
<thelema> if the program exits normally, you won't get a backtrace, only on uncaught exception
<SoftTimur> thelema: thank you
<thelema> flux: nope, I've not received your patch via email. I'm fine with a good format-patch
<thelema> flux: although I can't say how to create it properly - I've only been on the receiving end of them
<Tobu> git format-patch origin/master, fyi. Combined with git send-email if you don't want to start a mail client.
<thelema> Tobu: thanks. I'm glad no crazy arguments are needed.
<thelema> flux: instead of sending a patch, you are welcome to just put the code up on github and I'll merge it
sepp2k has quit [*.net *.split]
lopex has quit [*.net *.split]
kaustuv_ has quit [*.net *.split]
eye-scuzzy has quit [*.net *.split]
rossberg has quit [*.net *.split]
willb1 has quit [*.net *.split]
sgnb has quit [*.net *.split]
orbitz has quit [*.net *.split]
bacam has quit [*.net *.split]
confound has quit [*.net *.split]
jdavis has quit [*.net *.split]
fabian has quit [*.net *.split]
metasyntax has quit [*.net *.split]
Lor has quit [*.net *.split]
cods has quit [*.net *.split]
fraggle_ has quit [Ping timeout: 276 seconds]
fraggle_ has joined #ocaml
edwin has joined #ocaml
cods has joined #ocaml
metasyntax has joined #ocaml
fabian has joined #ocaml
jdavis has joined #ocaml
Lor has joined #ocaml
bacam has joined #ocaml
orbitz has joined #ocaml
sgnb has joined #ocaml
confound has joined #ocaml
willb1 has joined #ocaml
rossberg has joined #ocaml
eye-scuzzy has joined #ocaml
kaustuv_ has joined #ocaml
sepp2k has joined #ocaml
lopex has joined #ocaml
yezariaely has joined #ocaml
yezariaely has quit [Client Quit]
edwin is now known as Guest4280
SoftTimur has left #ocaml []
* thelema is going to put some of the helper functions he's writing for vector operations into batteries
<thelema> although I'm sure there's better out there already...
ulfdoz has quit [Ping timeout: 272 seconds]
DimitryKakadu has quit [Remote host closed the connection]
ikaros has joined #ocaml
smerz has joined #ocaml
Guest4280 has quit [Remote host closed the connection]
joewilliams is now known as joewilliams_away
Yoric has joined #ocaml
ymasory has quit [Quit: Leaving]
Amorphous has quit [Ping timeout: 240 seconds]
sepp2k has quit [Read error: Operation timed out]
sepp2k has joined #ocaml
ikaros has quit [Quit: Leave the magic to Houdini]
fraggle_ has quit [Quit: -ENOBRAIN]
vk0 has quit [Read error: Operation timed out]
fraggle_ has joined #ocaml
Amorphous has joined #ocaml
vk0 has joined #ocaml
sepp2k has quit [Quit: Leaving.]
ccasin has joined #ocaml