adrien changed the topic of #ocaml to: Discussions about the OCaml programming language | http://www.ocaml.org | OCaml 4.02.2 announced http://ocaml.org/releases/4.02.html | Try OCaml in your browser: http://try.ocamlpro.com | Public channel logs at http://irclog.whitequark.org/ocaml
thomasga has quit [Quit: Leaving.]
larhat1 has joined #ocaml
rgrinberg1 has quit [Ping timeout: 260 seconds]
mcclurmc has quit [Remote host closed the connection]
Denommus has quit [Quit: going home]
rgrinberg1 has joined #ocaml
arjunguha has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
ollehar has quit [Quit: ollehar]
jeffmo has quit [Quit: jeffmo]
johnf_ has joined #ocaml
igoroliveira has quit [Quit: Connection closed for inactivity]
turnstile has quit [Quit: Autotools exists so that you can port your programs from Unix to Unix.]
browncodes has joined #ocaml
arjunguha has joined #ocaml
keen__________16 has quit [Read error: Connection reset by peer]
abbe has quit [Read error: Connection reset by peer]
abbe has joined #ocaml
mawuli has quit [Ping timeout: 246 seconds]
alpen has quit [Ping timeout: 246 seconds]
keen__________16 has joined #ocaml
sigjuice has quit [Ping timeout: 246 seconds]
n3f has quit [Quit: No Ping reply in 180 seconds.]
mehdi has quit [Quit: No Ping reply in 180 seconds.]
mehdi has joined #ocaml
segmond has quit [Ping timeout: 246 seconds]
rossberg has quit [Ping timeout: 246 seconds]
lupine has quit [Ping timeout: 246 seconds]
cschneid- has quit [Ping timeout: 246 seconds]
bitbckt_ has quit [Ping timeout: 246 seconds]
icicled has quit [Ping timeout: 246 seconds]
srcerer_ is now known as srcerer
larhat1 has quit [Quit: Leaving.]
arjunguha has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
neferty has joined #ocaml
thomasga has joined #ocaml
ncthom91 has joined #ocaml
pyon has joined #ocaml
alpen has joined #ocaml
lupine has joined #ocaml
sigjuice has joined #ocaml
rossberg has joined #ocaml
thomasga has quit [Client Quit]
cschneid has joined #ocaml
bitbckt has joined #ocaml
icicled has joined #ocaml
segmond has joined #ocaml
mawuli has joined #ocaml
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
Guest38 has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
mcclurmc has joined #ocaml
jeffmo has joined #ocaml
mcclurmc has quit [Ping timeout: 244 seconds]
tennix has joined #ocaml
johnf_ has quit [Read error: Connection reset by peer]
pyon has quit [Quit: F...ix you, Emacs!]
pyon has joined #ocaml
mcclurmc has joined #ocaml
<bernardofpc> companion> and product for the balancing criterion -> you only need it to be a Z-module
<bernardofpc> (of course, if perf is important, but making 5*stuff can be done in 2 log_2(5) additions
grouzen has quit [Ping timeout: 265 seconds]
johnf_ has joined #ocaml
mcclurmc has quit [Remote host closed the connection]
bendiken has joined #ocaml
mcclurmc has joined #ocaml
MrScout has joined #ocaml
Lis has quit [Read error: Connection reset by peer]
johnf_ has quit [Read error: Connection reset by peer]
MrScout has quit [Remote host closed the connection]
MrScout has joined #ocaml
bendiken_ has joined #ocaml
bendiken has quit [Ping timeout: 264 seconds]
MrScout has quit [Ping timeout: 246 seconds]
rgrinberg1 has quit [Ping timeout: 244 seconds]
jao has quit [Ping timeout: 268 seconds]
psy_ has quit [Ping timeout: 256 seconds]
rgrinberg1 has joined #ocaml
bendiken_ is now known as bendiken
arjunguha has joined #ocaml
rgrinberg2 has joined #ocaml
rgrinberg1 has quit [Ping timeout: 256 seconds]
arjunguha has quit [Client Quit]
rgrinberg2 has quit [Ping timeout: 244 seconds]
arjunguha has joined #ocaml
darkf has joined #ocaml
arjunguha has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
arjunguha has joined #ocaml
ncthom91 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
samrat has joined #ocaml
arjunguha has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
mac10688 has quit [Ping timeout: 250 seconds]
jeffmo has quit [Quit: jeffmo]
BitPuffin|osx has quit [Ping timeout: 272 seconds]
segmond has quit [Ping timeout: 246 seconds]
segmond has joined #ocaml
johnf_ has joined #ocaml
rgrinberg2 has joined #ocaml
NingaLeaf has quit [Quit: Leaving.]
MercurialAlchemi has joined #ocaml
kolko has quit [Ping timeout: 256 seconds]
rgrinberg2 has quit [Ping timeout: 244 seconds]
kolko has joined #ocaml
ncthom91 has joined #ocaml
samrat has quit [Ping timeout: 246 seconds]
ncthom91 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
MrScout has joined #ocaml
MercurialAlchemi has quit [Ping timeout: 240 seconds]
psy_ has joined #ocaml
pyon has quit [Quit: F...ix you, Emacs!]
pyon has joined #ocaml
BhavyaM has joined #ocaml
bendiken has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
bendiken has joined #ocaml
swgillespie has joined #ocaml
swgillespie has quit [Client Quit]
ncthom91 has joined #ocaml
swgillespie has joined #ocaml
bendiken has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<destrius> what
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
shinnya has joined #ocaml
bendiken has joined #ocaml
swgillespie has joined #ocaml
swgillespie has quit [Client Quit]
ncthom91 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
bendiken has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
bendiken has joined #ocaml
kushal has joined #ocaml
bendiken has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
bendiken has joined #ocaml
bendiken has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
bendiken has joined #ocaml
MrScout has quit [Ping timeout: 246 seconds]
ygrek has joined #ocaml
bendiken has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
bendiken has joined #ocaml
psy_ has quit [Ping timeout: 240 seconds]
bendiken has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
bendiken has joined #ocaml
kolko has quit [Remote host closed the connection]
kolko has joined #ocaml
bendiken has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
bendiken has joined #ocaml
zpe has joined #ocaml
Haudegen has quit [Ping timeout: 250 seconds]
ygrek has quit [Remote host closed the connection]
ygrek has joined #ocaml
bendiken has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
xet7_ has joined #ocaml
bendiken has joined #ocaml
Haudegen has joined #ocaml
bendiken has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
hbar has quit [Quit: WeeChat 0.4.2]
bendiken has joined #ocaml
sh0t has joined #ocaml
bendiken has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
bendiken has joined #ocaml
johnf_ has quit [Read error: Connection reset by peer]
bendiken has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
bendiken has joined #ocaml
bendiken has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
bendiken has joined #ocaml
dgryski has joined #ocaml
sh0t has quit [Ping timeout: 268 seconds]
ygrek_ has joined #ocaml
bendiken has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
bendiken has joined #ocaml
ygrek has quit [Ping timeout: 240 seconds]
bendiken has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
bendiken has joined #ocaml
Simn has joined #ocaml
mort___ has joined #ocaml
ollehar has joined #ocaml
bendiken has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
bendiken has joined #ocaml
grouzen has joined #ocaml
bendiken has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
bendiken has joined #ocaml
zpe has quit [Remote host closed the connection]
bendiken has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
moei has quit [Quit: Leaving...]
bendiken has joined #ocaml
alex-hu has quit [Ping timeout: 246 seconds]
mort___ has left #ocaml [#ocaml]
bendiken has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
bendiken has joined #ocaml
bendiken has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
bendiken has joined #ocaml
kushal has quit [Ping timeout: 244 seconds]
bendiken has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
bendiken has joined #ocaml
thomasga has joined #ocaml
kushal has joined #ocaml
rand__ has joined #ocaml
rand__ has quit [Remote host closed the connection]
rand__ has joined #ocaml
Kakadu has joined #ocaml
AlexRussia has quit [Ping timeout: 264 seconds]
grouzen has quit [Ping timeout: 256 seconds]
grouzen has joined #ocaml
Fleurety has quit [Ping timeout: 260 seconds]
AlexRussia has joined #ocaml
thomasga has quit [Quit: Leaving.]
kushal has quit [Ping timeout: 272 seconds]
nullcatxxx_ has joined #ocaml
rwmjones has quit [Quit: ZNC - 1.6.0 - http://znc.in]
obadz has quit [Ping timeout: 265 seconds]
obadz has joined #ocaml
arjunguha has joined #ocaml
Haudegen has quit [Ping timeout: 264 seconds]
Haudegen has joined #ocaml
tnguyen has joined #ocaml
zpe has joined #ocaml
BhavyaM has quit [Quit: Quit the channel]
rwmjones has joined #ocaml
zpe has quit [Ping timeout: 244 seconds]
f[x] has joined #ocaml
ygrek_ has quit [Ping timeout: 256 seconds]
nullcatxxx_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
arjunguha has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
shinnya has quit [Ping timeout: 272 seconds]
arjunguha has joined #ocaml
dbrumley_ has quit [Remote host closed the connection]
freehck has joined #ocaml
<freehck> good UGT day everyone! :)
_andre has joined #ocaml
nullcatxxx_ has joined #ocaml
nullcatx_ has joined #ocaml
nullcatxxx_ has quit [Ping timeout: 265 seconds]
<companion_cube> nullcatx_: red/black trees? why not
<companion_cube> in containers.data, indeed
tane has joined #ocaml
BitPuffin has joined #ocaml
tennix has quit [Ping timeout: 260 seconds]
ggole has joined #ocaml
dgryski has left #ocaml [#ocaml]
zpe has joined #ocaml
kushal has joined #ocaml
thomasga has joined #ocaml
rgrinberg2 has joined #ocaml
f[x] has quit [Ping timeout: 246 seconds]
thomasga has quit [Quit: Leaving.]
rgrinberg2 has quit [Ping timeout: 256 seconds]
arjunguha has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
arjunguha has joined #ocaml
<freehck> people, i've just revealed that if I open String module and then open List module then the function concat will be bound to List.concat instead of String.concat. I'd like to see warnings while compilation about such redefinitions. How can I get them?
<companion_cube> -w +44
<companion_cube> man ocamlc lists the warnings
<flux> freehck, this is one reason why people prefer to either not open modules, or open them only in small scopes
<companion_cube> cf the recent blog post
<flux> freehck, an alternatives to giving full module paths is module aliases
<companion_cube> I hate it when old code starts with 5 or 10 open statements
arjunguha has quit [Ping timeout: 246 seconds]
<zozozo> companion_cube: which blog post ?
obadz has quit [Ping timeout: 264 seconds]
<freehck> companion_cube: thx, i see it's an option for ocamlc. But it seems ocamlbuild does not understand this option.
igoroliveira has joined #ocaml
ollehar has quit [Ping timeout: 250 seconds]
<freehck> maybe there's some file where I can put this option as a default one for ocamlc?
obadz has joined #ocaml
<MasseR> freehck: '-cflags -w +44' or something like that
<flux> wasn't there a _tags way to dothis
<flux> warn(+44) maybe
<flux> or just plain warn(44)
<ggole> There's always about three ways to do anything with ocamlbuild
<flux> ok, so the third way is myocamlbuild.ml ;)
<flux> I recently learned that one can add the -use-ocamlfind that way, it's nice.
<flux> btw, is it possible to add a default target for ocamlbuild when no other targets are given?
<freehck> -cflags '-w +44'
<freehck> does work
<freehck> MasseR: thank you
<ggole> flux: I usually wrap it in a makefile, which makes that pretty easy
<flux> but makefile wrapper doesn't work nicely if you on the other hand give make multiple targets
<flux> worse maybe if you do make -j a b :-o
<ggole> Hmm, I suppose: I don't typically do that
<flux> it's not really better than ./build.sh except for the familiarity of make
<zozozo> companion_cube: thx
nullcatxxx_ has joined #ocaml
arjunguha has joined #ocaml
zpe has quit [Remote host closed the connection]
nullcat__ has joined #ocaml
nullcatx_ has quit [Ping timeout: 250 seconds]
nullcatxxx_ has quit [Ping timeout: 246 seconds]
arjunguha has quit [Client Quit]
nullcatxxx_ has joined #ocaml
kushal has quit [Quit: Leaving]
zpe has joined #ocaml
nullcat__ has quit [Ping timeout: 244 seconds]
zpe has quit [Remote host closed the connection]
zpe has joined #ocaml
nullcatxxx_ has quit [Client Quit]
grouzen has quit [Ping timeout: 252 seconds]
ollehar has joined #ocaml
rgrinberg2 has joined #ocaml
<companion_cube> hey rgrinberg2 o/
<rgrinberg2> companion_cube: hello :)
rgrinberg2 is now known as rgrinberg
<companion_cube> have you been writing OCaml recently? :)
<adrien> if you say no, he'll kidnap you and force you to
<companion_cube> nah
<companion_cube> I wish I was writing OCaml, actually
<adrien> don't be sad, at least you're going to do Windows stuff
<companion_cube> maybe
<ia0> you're going to do Windows stuff ? :-( sad sad
<companion_cube> no, I'm going to write software that might have to work on windows
<companion_cube> (well, anywhere where coq works)
<ia0> that's better :-)
<companion_cube> I wouldn't be happy to write code on Windows
<companion_cube> ;-)
<adrien> /for/
<companion_cube> well, does cross compilation work?
<adrien> Jein
<adrien> but now I have time
<ia0> I wasn't happy at MSR until I could use my linux laptop
<companion_cube> then to develop for windows, you need to run windows, don't you?
<ia0> git clone under windows is 1000x slower than on linux
<adrien> I want to commit/vomit the python stuff for win-builds and then basically do the release
<adrien> and then free time
<adrien> companion_cube: it'll work better soon
<companion_cube> free time = testing of CCSexp? :p
<adrien> that goes in not-free-time afterwards
<adrien> actually I hope I'll avoid the need for the upcoming release because otherwise I'll have way too many related tasks which I only want in the release after the current one
<companion_cube> unrelated: I'm still wondering how costly is input_char, since channels have buffers
<adrien> profile it :)
tennix has joined #ocaml
<ggole> Look at the source
<Enjolras> try and see if it is too slo
asmanur has quit [Ping timeout: 256 seconds]
<companion_cube> I'm benchmarking it
asmanur has joined #ocaml
<companion_cube> reading a 5.2 MiB files: a buffer of 4096 chars is 3700% faster than input_char
tennix has quit [Ping timeout: 246 seconds]
<companion_cube> http://vrac.cedeela.fr/truc.ml <-- my test
zaquest has quit [Read error: Connection reset by peer]
<Enjolras> 3700% ? looks too much
zaquest has joined #ocaml
<ggole> Takes a lock and performs getch
<freehck> oh... people, how can I do a composition function for function with multiple numbers of arguments?
<freehck> i just wanted to define something like
<freehck> let log func format = compose func (sprintf format)
<companion_cube> format strings mean you need magic
<companion_cube> namely, Printf.kfprintf or similar
<freehck> yeah, I already feel it. )
<flux> so: let log func format = Printf.ksprintf func format :)
<companion_cube> Enjolras: please run it!
<companion_cube> (compile then feed it a file)
tennix has joined #ocaml
<freehck> oooh, ksprintf seems to be a good thing! :)
<companion_cube> I should try reading with a bigarray, but well, lazy
<Enjolras> companion_cube: i trust you. I just mean that an implementation of input_char shouldn't be that slow
<flux> companion_cube, did you try Unix.read as well?
<companion_cube> 4600% faster for a 530kiB file...
<flux> (I know you didn't.. ;-))
<companion_cube> oh
<companion_cube> no I didn't
<Enjolras> and Lwt_bytes read_char ? :)
<companion_cube> gaah
<companion_cube> c'mon
<flux> well, one shouldn't use input_char for reading lots of data and then expect it to be fast :)
<Enjolras> Lwt_io i mean. Might just be input_char which is slow
<Enjolras> flux: why not ?
<companion_cube> input_char is a call to a C primitive apparently, so it can't be inlined...
<companion_cube> might be why it is so slow
<flux> because working with small units is always slower than working with bigger units
<Enjolras> wow
<companion_cube> I'm glad CCSexp uses buffering \o/
<companion_cube> flux: all buffering could be done by OCaml, in_channel is buffered indeed
<Enjolras> flux: of course, but not 4000% times slower
<zozozo> on a file with exactly one character, input_chat is actually faster, :p
<zozozo> *input_char
<companion_cube> /slap zozozo
<zozozo> ^^
<freehck> ksprintf works! :)
tennix has quit [Ping timeout: 252 seconds]
<companion_cube> I'm writing the benchmark
<adrien> type faster
<ggole> Should we time him? A metabenchmark?
<adrien> definitely
moei has joined #ocaml
<companion_cube> gah
<mrvn> flux: that is only partially true. Working with big units kills cache locality. Something between 16k and 64k seems best.
<mrvn> and Ocaml Unix uses 16k chunks for IO
<companion_cube> I compare input_char, input, Unix.read and Lwt_io.input_into
<mrvn> Enjolras: just raw performance reading chars gets ~10MB/s. reading blocks 600MB/s.
<companion_cube> interesting, Unix.read seems slower than input
<mrvn> The later being the disk limit here.
<companion_cube> http://paste.isomorphis.me/Qsz&raw
arjunguha has joined #ocaml
thomasga has joined #ocaml
<companion_cube> the take-away is: avoid input_char if you want perf!
<freehck> btw, can I get some way the name of function from which code was called?
<companion_cube> you can play with Printexc.get_backtrace and the likes
<freehck> Doesn't it work with exceptions only?
<companion_cube> Printexc.get_callstack, sorry
troydm has quit [Quit: What is hope? That all of your wishes and all of your dreams come true? (C) Rau Le Creuset]
<freehck> Haven't noticed this one. I tried to use it.
tennix has joined #ocaml
<companion_cube> flux, Enjolras: have you seen the benchmark result? http://paste.isomorphis.me/Qsz&raw
<flux> yes
<Enjolras> that's what i expected. Lwt is faster
<flux> I wonder if the monadic io frameworks will fall out of grace if/when ocaml multicore arrives with its effect system..
<companion_cube> I think monadic IO will use effects, but keep the same interface
<companion_cube> except Lwt_main.run might disappear
<flux> I sort of hope the Event module and its kin would then get more love.. ;)
<flux> but I guess we're not going to get gc'd threads
kushal has joined #ocaml
<Enjolras> I don't think you can migrate Lwt to multicore easily with keeping the same interface
<Enjolras> It's common to assume Lwt is concurrent but not parallel when you write lwt code and hence, if you switch to multicore : here come the races
<flux> that's unavoidable, but I don't know if the Lwt interface itself in any way requires or encourages that
<flux> I know I've written code that does assume it, though ;)
<flux> sooo nice, just assign stuff here and there and it's always atomic as long as you don't use the monad!
<Drup> Another very common assumption is to assume everything between to bind is atomic
<Drup> two*
<Enjolras> Drup: eexactly.
<flux> now that's just lazy.. ;)
<Drup> well, not really
<Drup> Lwt does guarantee that, so it makes sense.
kushal has quit [Ping timeout: 252 seconds]
amirmc has joined #ocaml
<orbitz> companion_cube: do you have any intentions for a Label's layer for ocaml-containers? THe labels are probably one of my more liked features in Core
rgrinberg has quit [Ping timeout: 244 seconds]
troydm has joined #ocaml
<mrvn> I wonder if lables in function calls could be implicit like with labels in records.
MercurialAlchemi has joined #ocaml
<Enjolras> somebody mentionned that recently, not sure if it was on the list or on the reddit
<Enjolras> like automatically add a label using the argument name
<mrvn> too bad it isn't clear cut like with records.
<mrvn> would break existing code :(
<Enjolras> could add an "optional labels" extensions.
<Enjolras> if not labeled : use in order, else select the argument from labels
<orbitz> Yeah I'm not sure if taht would make life easier if it was possible.
<mrvn> but currently if not labeled it uses the first unlabeled slot.
<Enjolras> yes, it's quite some work to implement
<orbitz> I'd have to naem all my variables something meaningful too, woudl be tragic
<Enjolras> mrvn: i guess it needs another syntax to be backward compatible
<Enjolras> which is... ugly
<orbitz> I"m also not sure how itw ould play with optional arguments
<mrvn> I was thinking that "f x y z" would be equivalent to "f ~x=x ~y=y ~z=z"
<Drup> why ?
<Drup> just do f ~x ~y ~z ...
<Drup> no need to hack anything
<mrvn> 3 ~ more than I want to type
<flux> :-D
<Drup> poor boy
<Enjolras> it's more than 3 #
<Enjolras> ~
<Enjolras> to call it, you need to use the same variable names than the guy who wrote the function
<Enjolras> or do ~foo:bar
<Drup> There is no way around that
<mrvn> if you don't use the same name then you have to use the long form
<orbitz> I'm not sure we, as an industry have reached the point here parameter names could be considered part of an API :)
<Drup> The first one that talks about permuting arguments based on types untill it fits gain a stupidity point
<Enjolras> ew
* Drup looks at mrvn.
<mrvn> Drup: WTF? that's insane
<freehck> people, i cannot understand this thing with utop:
<Enjolras> that's a terrible idea
<freehck> # let s = regexp "1";;
<Drup> mrvn: you have proposed worse :D
<freehck> Error: Reference to undefined global `Str'
<Enjolras> you pretty much lose all type checking
<mrvn> Drup: hardly
<freehck> What does it mean? I've already opened Str module.
<Enjolras> are you linking to it ?
<freehck> ah, i got.
<freehck> #load "str.cma";;
<freehck> Enjolras: thanks.
thomasga1 has joined #ocaml
tennix has quit [Ping timeout: 255 seconds]
thomasga has quit [Ping timeout: 255 seconds]
tennix has joined #ocaml
rgrinberg has joined #ocaml
zpe has quit [Remote host closed the connection]
tennix has quit [Ping timeout: 255 seconds]
kushal has joined #ocaml
obadz has quit [Ping timeout: 252 seconds]
arjunguha has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
obadz has joined #ocaml
tennix has joined #ocaml
Denommus has joined #ocaml
tennix has quit [Ping timeout: 244 seconds]
<companion_cube> orbitz: I don't plan to duplicate the interfaces (like ListLabels, etc.)
<companion_cube> I use a small number of labels, but I admit I never really took the habit to put labels everywhere
shinnya has joined #ocaml
cdidd has quit [Ping timeout: 264 seconds]
amirmc has quit [Quit: Leaving.]
thomasga1 has quit [Quit: Leaving.]
cdidd has joined #ocaml
<Denommus> can I emulate multimethods in OCaml?
<ggole> I tend to reserve labels for many-argument functions, and particularly multiple arguments of the same type
johnf_ has joined #ocaml
<ggole> Maybe I should use them more.
thomasga has joined #ocaml
<companion_cube> Denommus: I'm not sure
rgrinberg has quit [Ping timeout: 255 seconds]
thomasga has quit [Quit: Leaving.]
shinnya has quit [Ping timeout: 240 seconds]
grouzen has joined #ocaml
arjunguha has joined #ocaml
ygrek has joined #ocaml
tane has quit [Quit: Verlassend]
tennix has joined #ocaml
zpe has joined #ocaml
ncthom91 has joined #ocaml
tennix has quit [Ping timeout: 246 seconds]
thomasga has joined #ocaml
tennix has joined #ocaml
tennix has quit [Ping timeout: 246 seconds]
ncthom91 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
MrScout has joined #ocaml
jeffmo has joined #ocaml
jwatzman|work has joined #ocaml
arjunguha has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<orbitz> Is a label wrapper for ar library free other than the amn power?
<orbitz> manpower*?
tennix has joined #ocaml
arjunguha has joined #ocaml
Guest38 has joined #ocaml
zpe has quit [Remote host closed the connection]
tennix has quit [Ping timeout: 250 seconds]
rgrinberg has joined #ocaml
Guest38 has quit [Quit: Textual IRC Client: www.textualapp.com]
Guest38 has joined #ocaml
darkf has quit [Quit: Leaving]
rgrinberg has quit [Ping timeout: 240 seconds]
thomasga has quit [Quit: Leaving.]
ncthom91 has joined #ocaml
mea-culp` has joined #ocaml
tennix has joined #ocaml
mea-culpa has quit [Ping timeout: 246 seconds]
shinnya has joined #ocaml
tennix has quit [Ping timeout: 244 seconds]
thomasga has joined #ocaml
tennix has joined #ocaml
arjunguha has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
tennix has quit [Ping timeout: 244 seconds]
ericsmithvt has joined #ocaml
jao has joined #ocaml
psy has joined #ocaml
psy has quit [Max SendQ exceeded]
psy has joined #ocaml
tennix has joined #ocaml
tennix has quit [Changing host]
tennix has joined #ocaml
tennix has quit [Ping timeout: 268 seconds]
ggole has quit [Ping timeout: 255 seconds]
arjunguha has joined #ocaml
tennix has joined #ocaml
tennix has quit [Ping timeout: 240 seconds]
Kakadu has quit [Quit: Page closed]
swgillespie has joined #ocaml
tennix has joined #ocaml
zpe has joined #ocaml
tennix has quit [Ping timeout: 246 seconds]
ollehar has quit [Ping timeout: 244 seconds]
mort___ has joined #ocaml
shinnya has quit [Ping timeout: 272 seconds]
zpe has quit [Ping timeout: 256 seconds]
thomasga has quit [Quit: Leaving.]
BitPuffin has quit [Ping timeout: 246 seconds]
arjunguha has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
mea-culp` is now known as mea-culpa
mort___ has quit [Quit: Leaving.]
tennix has joined #ocaml
tennix has quit [Ping timeout: 256 seconds]
arjunguha has joined #ocaml
tane has joined #ocaml
tennix has joined #ocaml
nullcatxxx_ has joined #ocaml
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
psy has quit [Quit: Leaving]
JuggleTux has joined #ocaml
tennix has quit [Ping timeout: 268 seconds]
flx has joined #ocaml
Simn has quit [Read error: No route to host]
hannes has quit [Read error: Connection reset by peer]
hannes has joined #ocaml
Simn has joined #ocaml
noplamodo has quit [Ping timeout: 246 seconds]
flx is now known as flux
averell has quit [Ping timeout: 246 seconds]
regnat has quit [Ping timeout: 246 seconds]
maufred_ has quit [Ping timeout: 246 seconds]
maufred has joined #ocaml
noplamodo has joined #ocaml
ericsmithvt has quit [Ping timeout: 244 seconds]
tennix has joined #ocaml
regnat has joined #ocaml
arjunguha has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Kakadu has joined #ocaml
lobo has joined #ocaml
tennix has quit [Ping timeout: 240 seconds]
mort___ has joined #ocaml
ollehar has joined #ocaml
tennix has joined #ocaml
ncthom91 has quit [Quit: Textual IRC Client: www.textualapp.com]
tennix has quit [Ping timeout: 255 seconds]
mea-culpa has quit [Remote host closed the connection]
tennix has joined #ocaml
tennix has quit [Changing host]
tennix has joined #ocaml
swgillespie has joined #ocaml
tennix has quit [Ping timeout: 250 seconds]
arjunguha has joined #ocaml
hbar has joined #ocaml
tennix has joined #ocaml
<Kakadu> http://www.ics.com/blog/using-qt-alternative-programming-languages-part-2 Seems it is largest amount of fame I have ever got
MrScout has quit [Remote host closed the connection]
kushal has quit [Ping timeout: 250 seconds]
tennix has quit [Ping timeout: 268 seconds]
Kakadu has quit []
<mrvn> Does one have to use QML with QT5?
Kakadu has joined #ocaml
mort___ has quit [Quit: Leaving.]
<mrvn> Does one have to use QML with QT5?
bendiken has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<mrvn> I want to write my GUI in ocaml, not ECMAscript and c++.
bendiken has joined #ocaml
tennix has joined #ocaml
tennix has quit [Ping timeout: 246 seconds]
<Kakadu> And what will happen if you will need designer for your program?
<adrien> mrvn: Qt itself is not nice to bind at all; QML is probably the sanest way
<adrien> and Qt depends on you being able to do inheritance stuff
<flux> I think if you're not using QML with Qt5, you're missing the point.. :)
<flux> but maybe one can use jsocaml!
<Kakadu> flux: with QML?
<flux> sure, why not!
<flux> jsocaml creates javascript
<flux> with a little bit nudging I bet it could make QML as well!
<mrvn> adrien: ocaml has inheritance so that is not a problem
<Kakadu> I tried to write something simple, it worked OK
<adrien> mrvn: but you need to forward that to the C++ side
<adrien> i.e. you need to manipulate vtables from the ocaml side at runtime
<mrvn> adrien: means that for every class you have to build a ocaml and c++ glu class.
<adrien> I'd much rather atempt to use jsoo with QML like flux says
<adrien> mrvn: not sane :)
<mrvn> saner than using 3 languages.
kushal has joined #ocaml
<adrien> hundreds of megabytes of object code
bendiken has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
tennix has joined #ocaml
bendiken has joined #ocaml
<Kakadu> btw, it will be not good to use js_of_ocaml with QML. It was OK when they were using V8 (which is good for large parts of Javascript but too heavy for small javascript) but now they have changed Javascript engine which is working better with small parts of code than V8
JuggleTu1 has joined #ocaml
<adrien> well, it might work but there might be things to fix too
<adrien> it's a good thing that Drup has already volunteered to help on that
<adrien> (he hasn't but I'm sure he will :D )
<flux> it's a good thing you're volunteering him ;)
<Drup> Lol.
tennix has quit [Ping timeout: 268 seconds]
<adrien> :)
JuggleTu1 has quit [Client Quit]
tennix has joined #ocaml
bendiken has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
bendiken has joined #ocaml
nullcatxxx_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
BitPuffin|osx has joined #ocaml
tennix has quit [Ping timeout: 244 seconds]
<Drup> (I advise 10 3 2 6)
bendiken has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<rks`> (I also recommend 3, haven't seen the other talks yet)
tennix has joined #ocaml
<Drup> (and 9 for the Coq people)
bendiken has joined #ocaml
<cmtptr> (parentheses)
tennix has quit [Ping timeout: 256 seconds]
<Drup> While we are at it, this one (from ICFP itself) is very very good: https://www.youtube.com/watch?v=42Wn-mXWcms&index=4&list=PLnqUlCo055hWNtUo1Haoq347VhCqIjs7u
nullcatxxx_ has joined #ocaml
freehck has quit [Ping timeout: 246 seconds]
bendiken has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
bendiken has joined #ocaml
tane has quit [Quit: Verlassend]
<smondet> Drup: the CUFP youtube playlist appeared but not the OCaml one?
<smondet> (Ocaml was a day earlier and did not suck like CUFP)
tennix has joined #ocaml
tennix has joined #ocaml
<Drup> smondet: be patient.
<smondet> :)
bendiken has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<ollehar> would I have to manually call ocaml gc when using it from C?
<ollehar> I mean, manually collecting at certain points
bendiken has joined #ocaml
<smondet> ollehar: no, you can register stuff for the GC to its job, and can create custom "free" functions for the GC to call when it wants
<ollehar> smondet: ok, got it
<smondet> but you don't "drive" it
<ollehar> so how does it know when to activate?
MrScout has joined #ocaml
tennix has quit [Ping timeout: 244 seconds]
<smondet> usually you keep an ocaml value that points to your C blobs
<ollehar> smondet: sure
tumdum has joined #ocaml
<ollehar> but e.g. in a tight loop, the gc must still run to collect sometimes?
<ollehar> for(i = 1, ...) { caml_alloc() }
<smondet> the GC can run only if you allocate with it
<ollehar> ah!
<ollehar> ok
<smondet> then yes, it can run
kushal has quit [Ping timeout: 244 seconds]
<ollehar> so the allocation functions trigger it. of course.
<ollehar> because only at allocation would you need to collect. ><
<ollehar> smondet: yeah, I'm on it, thanks!
tennix has joined #ocaml
bendiken has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
bendiken has joined #ocaml
tennix has quit [Ping timeout: 240 seconds]
<mrvn> ollehar: When you call the GC from C it can also run. And best practice is to wrap C pointers in a ocaml custom block with finalizer. Prevents dangling pointers that can become ocaml values and cause all sorts of problems.
ygrek has quit [Ping timeout: 244 seconds]
<ollehar> mrvn: eh? all c pointers? why?
<mrvn> say you have a C pointer and you free it while keeping the value around in ocaml. Then the GC needs some memory and increases the heap. Not the dangling C pointer can point inside the heap if you are unlucky.
<mrvn> suddenly the GC thinks it's something it has allocated and needs to handle.
tennix has joined #ocaml
tennix has quit [Changing host]
tennix has joined #ocaml
ollehar1 has joined #ocaml
_andre has quit [Quit: leaving]
<ollehar1> I'm not even gonna use OCaml, only the GC ^^
ollehar has quit [Ping timeout: 260 seconds]
ollehar1 is now known as ollehar
bendiken has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
tennix has quit [Ping timeout: 244 seconds]
bendiken has joined #ocaml
<ollehar> wow, it's fast
<ollehar> one million allocs of 1024 bytes, done in 1 sec
arjunguha has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<mrvn> alloc is basically add %r6, %r0
<ollehar> yes, but it has to collect to
<ollehar> *too
<mrvn> only when you free
<ollehar> no?
<ollehar> you mean, when it has no references?
<mrvn> well, when the minor heap runs full
tennix has joined #ocaml
larhat1 has joined #ocaml
<ollehar> a gc is quite small, when it comes to it, it seems
<ollehar> mrvn: in this small C-program, would you wrap `value val` in an ocaml value?
MrScout has quit [Ping timeout: 244 seconds]
tennix has quit [Ping timeout: 240 seconds]
arjunguha has joined #ocaml
<mrvn> it's a value, not a C pointer.
<mrvn> should be CAMLlocal1(val); though if you want to use it later
bendiken has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
troydm has quit [Quit: What is hope? That all of your wishes and all of your dreams come true? (C) Rau Le Creuset]
arjunguha has quit [Client Quit]
bendiken has joined #ocaml
<ollehar> ok
rand__ has quit [Quit: leaving]
<ollehar> can I even call those macros from LLVM IR?
bendiken has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<ollehar> maybe wrap them in functions. but speed.
bendiken has joined #ocaml
m4b has joined #ocaml
<m4b> i can't seem to figure out how to print a set with ppx_deriving.show. `module S = Set.Make(type t = <sometype with show> let compare = <some compare function>)`
bendiken has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
bendiken has joined #ocaml
thomasga has joined #ocaml
Muzer has quit [Quit: ZNC - http://znc.sourceforge.net]
martintrojer has quit [Read error: Connection reset by peer]
MrScout has joined #ocaml
lobo has quit [Quit: leaving]
martintrojer has joined #ocaml
Kakadu has quit [Remote host closed the connection]
LnL has quit [Quit: ZNC - http://znc.in]
tennix has joined #ocaml
ericsmithvt has joined #ocaml
tennix has quit [Ping timeout: 246 seconds]
MrScout has quit [Ping timeout: 246 seconds]
Muzer_ has joined #ocaml
tennix has joined #ocaml
ollehar has quit [Read error: Connection reset by peer]
ollehar has joined #ocaml
tennix has quit [Ping timeout: 264 seconds]
mac10688 has joined #ocaml
tennix has joined #ocaml
ericsmithvt has quit [Quit: Textual IRC Client: www.textualapp.com]
Haudegen has quit [Ping timeout: 272 seconds]
tennix has quit [Ping timeout: 244 seconds]
Muzer_ is now known as Muzer
sh0t has joined #ocaml
Haudegen has joined #ocaml
larhat1 has quit [Quit: Leaving.]
ollehar1 has joined #ocaml
ollehar has quit [Ping timeout: 246 seconds]
ollehar1 is now known as ollehar
tennix has joined #ocaml
tennix has quit [Changing host]
tennix has joined #ocaml
sh0t has quit [Ping timeout: 264 seconds]
jwatzman2 has joined #ocaml
jwatzman|work has quit [Disconnected by services]
jwatzman2 is now known as jwatzman|work
jwatzman|work has quit [Changing host]
jwatzman|work has joined #ocaml
tennix has quit [Ping timeout: 265 seconds]
sh0t has joined #ocaml
jave has quit [Ping timeout: 252 seconds]
jave has joined #ocaml
tennix has joined #ocaml
sh0t has quit [Ping timeout: 246 seconds]
tennix has quit [Ping timeout: 246 seconds]
pyon has quit [Quit: F...ix you, Emacs.]
troydm has joined #ocaml
pyon has joined #ocaml
tennix has joined #ocaml
tennix has quit [Ping timeout: 244 seconds]
Guest38 has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
Simn has quit [Quit: Leaving]
m4b has quit [Ping timeout: 250 seconds]
tennix has joined #ocaml
tennix has quit [Ping timeout: 240 seconds]
johnf_ has quit [Read error: Connection reset by peer]
jeffmo has quit [Quit: jeffmo]
tennix has joined #ocaml
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<Denommus> what can I use for immutable vectors?
tennix has quit [Ping timeout: 244 seconds]
tennix has joined #ocaml
ollehar has quit [Quit: ollehar]
tennix has quit [Ping timeout: 246 seconds]
jao has quit [Ping timeout: 244 seconds]
jeffmo has joined #ocaml
tennix has joined #ocaml
jao` has joined #ocaml
tennix has quit [Ping timeout: 265 seconds]
madroach has quit [Ping timeout: 264 seconds]
JuggleTux has quit [Quit: leaving]
madroach has joined #ocaml
BitPuffin|osx has quit [Ping timeout: 268 seconds]
tennix has joined #ocaml
pyon is now known as tem-pyon-ral
tennix has quit [Ping timeout: 252 seconds]
pyon has joined #ocaml
tokik_ has quit [Quit: leaving]
tem-pyon-ral has quit [Quit: ERC (IRC client for Emacs 24.5.1)]
tokik has joined #ocaml
NingaLeaf has joined #ocaml