flux changed the topic of #ocaml to: Discussions about the OCaml programming language | http://www.ocaml.org | OCaml MOOC http://1149.fr/ocaml-mooc | OCaml 4.03.0 announced http://ocaml.org/releases/4.03.html | Try OCaml in your browser: http://try.ocamlpro.com | Public channel logs at http://irclog.whitequark.org/ocaml
rand__ has joined #ocaml
rand__ has quit [Quit: leaving]
darkf has joined #ocaml
dsheets has joined #ocaml
lokien_ has quit [Quit: Connection closed for inactivity]
dsheets has quit [Ping timeout: 246 seconds]
walter|r has quit [Remote host closed the connection]
sh0t has quit [Ping timeout: 276 seconds]
walter|r has joined #ocaml
walter|r has quit [Remote host closed the connection]
dsheets has joined #ocaml
dsheets has quit [Ping timeout: 276 seconds]
silver has quit [Quit: rakede]
dsheets has joined #ocaml
dsheets has quit [Ping timeout: 250 seconds]
butts_butts has joined #ocaml
yunxing has quit [Remote host closed the connection]
al-damiri has joined #ocaml
dsheets has joined #ocaml
butts_butts has quit [Ping timeout: 276 seconds]
ansiwen has quit [Ping timeout: 244 seconds]
dsheets has quit [Ping timeout: 276 seconds]
Algebr has joined #ocaml
aphprentice has quit [Quit: Connection closed for inactivity]
ansiwen has joined #ocaml
sh0t has joined #ocaml
govg has joined #ocaml
dsheets has joined #ocaml
Reshi has joined #ocaml
dsheets has quit [Ping timeout: 260 seconds]
doecnt has quit [Ping timeout: 250 seconds]
ansiwen_ has joined #ocaml
ansiwen has quit [Ping timeout: 246 seconds]
scarygelatin has quit [Quit: Leaving]
sh0t has quit [Remote host closed the connection]
johnelse has quit [Ping timeout: 250 seconds]
johnelse has joined #ocaml
dsheets has joined #ocaml
yunxing has joined #ocaml
yunxing_ has joined #ocaml
dsheets has quit [Ping timeout: 276 seconds]
yunxing has quit [Ping timeout: 276 seconds]
yunxing_ has quit [Read error: Connection reset by peer]
yunxing has joined #ocaml
johnelse has quit [Ping timeout: 250 seconds]
johnelse has joined #ocaml
toomuchtvrotsurb has joined #ocaml
toomuchtvrotsurb has quit [Remote host closed the connection]
shinnya has joined #ocaml
dsheets has joined #ocaml
al-damiri has quit [Quit: Connection closed for inactivity]
dsheets has quit [Ping timeout: 250 seconds]
slash^ has joined #ocaml
pierpa has quit [Ping timeout: 246 seconds]
shinnya has quit [Ping timeout: 246 seconds]
yunxing has quit [Remote host closed the connection]
g4143 has joined #ocaml
d0nn1e has quit [Ping timeout: 244 seconds]
d0nn1e has joined #ocaml
g4143 has quit [Quit: Ex-Chat]
butts_butts has joined #ocaml
FreeBirdLjj has joined #ocaml
fantasticsid has joined #ocaml
butts_butts has quit [Ping timeout: 244 seconds]
dsheets has joined #ocaml
dsheets has quit [Remote host closed the connection]
natimic has quit [Ping timeout: 276 seconds]
mistermetaphor has joined #ocaml
fantasticsid has quit [Remote host closed the connection]
fantasticsid has joined #ocaml
fantasticsid has quit [Remote host closed the connection]
tane has joined #ocaml
mistermetaphor has quit [Remote host closed the connection]
MercurialAlchemi has joined #ocaml
lindig has joined #ocaml
<lindig> I'm looking for some help with Oasis in the context of optionally compiling with or without a bisect_ppx, a coverage profiler.
<lindig> I'm looking for some help with Oasis in the context of optionally compiling with or without bisect_ppx, a coverage profiler.
kolko has joined #ocaml
A1977494 has quit [Remote host closed the connection]
al-damiri has joined #ocaml
ril has joined #ocaml
shinnya has joined #ocaml
lindig has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
bitbckt has quit [K-Lined]
bitbckt has joined #ocaml
Simn has joined #ocaml
ril has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
MercurialAlchemi has quit [Ping timeout: 276 seconds]
lindig has joined #ocaml
butts_butts has joined #ocaml
A1977494 has joined #ocaml
<adrien> die google groups, die
<adrien> s/ groups// actually
<adrien> crappy walled gardens
butts_butts has quit [Ping timeout: 252 seconds]
Reshi has quit [Ping timeout: 252 seconds]
silver has joined #ocaml
al-damiri has quit [Quit: Connection closed for inactivity]
lindig has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
lindig has joined #ocaml
lindig has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
FreeBird_ has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 260 seconds]
MercurialAlchemi has joined #ocaml
lindig has joined #ocaml
<lindig> Any Oasis experts around?
<companion_cube> what's the issue?
<lindig> I'm looking for some help with Oasis in the context of optionally compiling with or without bisect_ppx, a coverage profiler.
<companion_cube> ouch
<lindig> So: I say BuildDepends: bisect_ppx and get profiling.
<companion_cube> I'm not sure, but: if flag(bisect) BuildDepends+: bisect_ppx
<lindig> I want this to become optional. In the best case I'd get an --enable-coverage switch
<lindig> I tried something similar and got the message that you can't if/then/else BuildDeps
<lindig> The Bisect GitHub page suggests something in myocamlbuild and using an env variable to enable it. I think this is too indirect and obscure. I'd prefer a switch - after all, this is the problem Oasis wants to solve.
<lindig> But can try again the switch
<companion_cube> erf
<companion_cube> I had the same problem with the list of modules, once
leyyin has joined #ocaml
ygrek has joined #ocaml
<lindig> not even sure what the syntax would look like; have this (bit is wrong)
<lindig> if flag(coverage)
<lindig> BuildDepends + bisect_ppx
<lindig> else
<lindig> BuildDepends +
<lindig> end
<companion_cube> it would look like
<companion_cube> if flag(coverage)
<companion_cube> BuildDepends+: bisect_ppx
<companion_cube> no need for an empty else branch
Reshi has joined #ocaml
<lindig> oais compiles it but I get error during configure
<companion_cube> :/
Reshi has quit [Ping timeout: 252 seconds]
bba has joined #ocaml
<lindig> I don't understand why BuildDepends cannot be optional
<companion_cube> I think it's because some `oasis setup`-time things are generated based on it
<companion_cube> for instance, the META file probably depends on it
<companion_cube> at `configure --enable-foo` time, the META file is already generated
<lindig> I forgot that oasis generates code and osais is not expected to be around when I say configure
<companion_cube> exactly
<companion_cube> that might not be the best design decision though :/
<companion_cube> I mean, it limits the flexibility
<lindig> Yes. I'd think that moving these kind of things in an out is exactly what a configure script is supposed to do.
ygrek has quit [Ping timeout: 244 seconds]
<companion_cube> but then people don't want to depend on oasis
<companion_cube> +some
<lindig> I can see that. I didn't see the point of Oasis for a while and was happy with Make + OCamlBuild. But it is convenient to use.
bba has quit [Read error: Connection reset by peer]
bba has joined #ocaml
lindig has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
bba has quit [Client Quit]
bba has joined #ocaml
kakadu has joined #ocaml
bba has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
mfp has quit [Ping timeout: 244 seconds]
mfp has joined #ocaml
bba has joined #ocaml
Reshi has joined #ocaml
Reshi has quit [Ping timeout: 244 seconds]
govg has quit [Quit: leaving]
A19774941 has joined #ocaml
A1977494 has quit [Ping timeout: 252 seconds]
hay207 has joined #ocaml
scarygelatin has joined #ocaml
Reshi has joined #ocaml
pierpa has joined #ocaml
dhil has joined #ocaml
butts_butts has joined #ocaml
g4143 has joined #ocaml
manizzle has quit [Ping timeout: 244 seconds]
bba_ has joined #ocaml
bba has quit [Ping timeout: 252 seconds]
cantstanya has quit [Remote host closed the connection]
cantstanya has joined #ocaml
Mercuria1Alchemi has joined #ocaml
MercurialAlchemi has quit [Ping timeout: 276 seconds]
butts_butts_ has joined #ocaml
butts_butts has quit [Read error: Connection reset by peer]
butts_butts_ has quit [Ping timeout: 246 seconds]
kolko has quit [Ping timeout: 252 seconds]
ggole has joined #ocaml
octachron has joined #ocaml
kushal has joined #ocaml
g4143 has quit [Quit: Ex-Chat]
g4143 has joined #ocaml
sh0t has joined #ocaml
kolko has joined #ocaml
bba_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
mistermetaphor has joined #ocaml
dhil has quit [Ping timeout: 265 seconds]
hay207_ has joined #ocaml
hay207 has quit [Ping timeout: 260 seconds]
Reshi has quit [Ping timeout: 276 seconds]
g4143 has quit [Quit: Ex-Chat]
ygrek has joined #ocaml
rfv_ has joined #ocaml
<Algebr> I don't see a way to get a Lwt file_descriptor from a Lwt channel
oldmanistan_ has quit [Read error: Connection reset by peer]
<adrien> (I take it you're aware of the risks involved in mixing both channel and direct use of a file descriptor)
oldmanistan_ has joined #ocaml
rfv has quit [Ping timeout: 244 seconds]
rfv_ is now known as rfv
<Algebr> No, go on
<Enjolras> channels are buffered. But if you flush before writing it is ok. For input channels that is not that easy. Also i wonder what happens if a channel is GC but not the fdf. I'm not sure the close flag is shared
<Enjolras> you coud always wrap it in a struct and create the channel with of_fd and access the d when you want to
<Algebr> I see, I am starting with a channel, not from fd
dsheets has joined #ocaml
mistermetaphor has quit [Remote host closed the connection]
dsheets has quit [Remote host closed the connection]
<adrien> well, you really must not mix operations without synchronizing in between
<Algebr> What if separate parts of the program use fd and others use channels, that should be fine right
<adrien> well
<adrien> a channel is really not much more than Buffer.t + file_descr
<adrien> and when you write to a channel, it first goes in the buffer and after some time, it goes through the file_descr
<mrvn> adrien: if it's a different fd
<mrvn> Algebr: ^^^
<adrien> so an issue could be that you have data in the buffer and then use the file descriptor directly and you end up with the data in the buffer being written after what you've sent through the fd directly
<Algebr> damnit, I want more performance but I don't want to refactor a lot of this code, damnit Lwt_io should provide a unsafe_to_fd function
hay207__ has joined #ocaml
<adrien> mrvn: what do you mean?
<adrien> Algebr: also, it is quite likely that the file descriptor uses some specific flags which might be surprising to you (since it's for lwt)
<mrvn> if one part of the program uses the fd and the other the channel without sync then you loose
hay207_ has quit [Ping timeout: 244 seconds]
<mrvn> but if the channels are all using different FDs then nobody cares
<adrien> ah, ok, you were answering to the "what if" question
<mrvn> yep
<Algebr> adrien: looking through lwt_io source and not seeing a fast path to the actual file descriptor itself
<Enjolras> I hardly belive Lwt_channel make things less performant
<Algebr> its a lot of bit shuffling
<Enjolras> memcpy is crazy fast
<Enjolras> you can pass a buffer, does it work with 0 size buffer ?
<adrien> I would be more worried about reallocations than memory copies
<adrien> so a 0-length buffer sounds like a good first thing to try
<Enjolras> adrien: which reallocation ? If you mean cost of channel creation, you can pass a buffer
<adrien> (but also: profiling!)
<Enjolras> and keep a buffer pool
<adrien> Enjolras: if buffer is dynamically-sized
<adrien> (afk)
<Enjolras> but yeah : profiling. I would be really amazed if you manage to come with a workload whenre lwt io is in the top functions of a profiling trace
<Enjolras> adrien: are you sure ? i've never seen a trace where a gc is triggered from lwt_io either
<Algebr> yea, I wanted to add that profile graph thing that talex had
<Algebr> what else can I use to profile this code
<Enjolras> If it is running on linux, you can use perf
<Enjolras> perf record --call-graph dwarf gives very good insight of performance bottlenecks
<Algebr> this is for a daemon
<Enjolras> how is it an problem ?
<Enjolras> You can pass -p <pid> and ctrl-c when you want to stop recording
<Algebr> oh its not, great!
<Enjolras> Algebr: i personnaly find perf report -G --no-children is the best presentation for the results
<Enjolras> (by default it won't show the call-graph, -G is inverted call-graph, and --no-children sorts the functionsby the time spent in the function itself, not the function and the callees)
Reshi has joined #ocaml
<Algebr> awesome thanks!
mistermetaphor has joined #ocaml
<Algebr> The following should work right: __attribute(constructor)__foo(){ caml_start(); some_caml_func();}
lindig has joined #ocaml
<seliopou> Drup i prefer this :D
malc_ has joined #ocaml
<Algebr> making a larger default buffer size for lwt_io should be of some benefit too right
<mrvn> under linux doing IO in 16-64k chunks seems best
mistermetaphor has quit [Remote host closed the connection]
<mfp> is there any set implementation around with a sub-linear cardinal op?
<adrien> Enjolras: "if" ;-)
<adrien> Enjolras: I don't know but sometimes the buffers are dynamically-sized; only a possibility
<adrien> Algebr: "it depends"
<mfp> adrien: IIRC the buffer (a Lwt_bytes.t) is allocated at channel creation time and its size does not change (you can also pass the buffer directly)
natimic has joined #ocaml
<adrien> ok :)
mistermetaphor has joined #ocaml
mistermetaphor has quit [Remote host closed the connection]
natimic has quit [Ping timeout: 265 seconds]
mistermetaphor has joined #ocaml
<mfp> uh ENOTFOUND :-( the closest I got is BatISet (integer sets will do), but cardinal is only efficient if you have ranges
ril has joined #ocaml
<Drup> mfp: aren't regular Set with fast count ?
<Drup> hum, no, that's not the one
<mfp> Drup: (missing a word or two?) regular Set's cardinal is O(n)
<Enjolras> Only mutables datastructures have size fields in stdlib
<Enjolras> (except Stack)
<mfp> thought batteries or containers would have it, but...
<companion_cube> hmm, in containers there is a "weight balanced tree" module, with O(1) access to the weight
<companion_cube> if the weight of every node is 1, it coincides with the cardinal
<mfp> sounds good :)
<mfp> CCWBTree, right?
<companion_cube> yes
<companion_cube> the alternative is to use a thin wrapper around Set
<mfp> how would that work? (I want to split the set and get the cardinal of one of the subsets...)
<companion_cube> oh
<companion_cube> indeed, in that case you can't escape annotating each subnode
<companion_cube> CCWBTree might be the answer
<mfp> yes, it seems to have everything I need: logarithmic add, split, and better than O(n) cardinal (= weight) :)
<Algebr> companion_cube: I love containers because /data is so digestable
<companion_cube> mfp: you can use a custom weight if you prefer
<companion_cube> Algebr: yay! :D
kushal has quit [Ping timeout: 246 seconds]
ril is now known as ril[away]
ril[away] has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
ril has joined #ocaml
lindig has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
walter|r has joined #ocaml
dexterph has joined #ocaml
doecnt has joined #ocaml
FreeBird_ has quit [Read error: Connection reset by peer]
Sim_n has joined #ocaml
FreeBirdLjj has joined #ocaml
octachron_ has joined #ocaml
kushal has joined #ocaml
Simn has quit [Ping timeout: 260 seconds]
octachron has quit [Ping timeout: 246 seconds]
pyon is now known as fix-pyon-t
kushal has quit [Ping timeout: 250 seconds]
butts_butts has joined #ocaml
dsheets has joined #ocaml
g4143 has joined #ocaml
dsheets has quit [Ping timeout: 246 seconds]
Reshi has quit [Ping timeout: 265 seconds]
toomuchtvrotsurb has joined #ocaml
g4143 has quit [Quit: Ex-Chat]
bba has joined #ocaml
toomuchtvrotsurb has quit [Ping timeout: 250 seconds]
rgrinberg has joined #ocaml
butts_butts has quit [Ping timeout: 250 seconds]
mistermetaphor has quit [Remote host closed the connection]
A1977494 has joined #ocaml
A19774941 has quit [Ping timeout: 244 seconds]
tennix has quit [Ping timeout: 260 seconds]
lindig has joined #ocaml
toomuchtvrotsurb has joined #ocaml
rgrinberg has quit [Ping timeout: 240 seconds]
dsheets has joined #ocaml
ril has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
BitPuffin|osx has joined #ocaml
dsheets has quit [Ping timeout: 250 seconds]
dsheets has joined #ocaml
toomuchtvrotsurb has quit [Remote host closed the connection]
malc_ has quit [Quit: ERC (IRC client for Emacs 25.0.50.2)]
bba has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
bba has joined #ocaml
toomuchtvrotsurb has joined #ocaml
bba has quit [Client Quit]
toomuchtvrotsurb has quit [Remote host closed the connection]
bba has joined #ocaml
toomuchtvrotsurb has joined #ocaml
unbalancedparen has joined #ocaml
d0nn1e has quit [Ping timeout: 246 seconds]
d0nn1e has joined #ocaml
dsheets has quit [Remote host closed the connection]
orbifx has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
BitPuffin|osx has quit [Ping timeout: 260 seconds]
kolko has quit [Ping timeout: 244 seconds]
shinnya has quit [Ping timeout: 244 seconds]
kakadu has quit [Quit: Page closed]
dsheets has joined #ocaml
dsheets has quit [Ping timeout: 240 seconds]
aphprentice has joined #ocaml
struktured has joined #ocaml
dsheets has joined #ocaml
ygrek has quit [Ping timeout: 252 seconds]
dsheets has quit [Ping timeout: 276 seconds]
rgrinberg has joined #ocaml
orbifx has quit [Ping timeout: 260 seconds]
toomuchtvrotsurb has quit [Remote host closed the connection]
octachron_ has quit [Read error: Connection reset by peer]
dsheets has joined #ocaml
kolko has joined #ocaml
dsheets has quit [Ping timeout: 260 seconds]
slash^ has quit [Quit: Leaving]
lindig has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
struktured has quit [Ping timeout: 250 seconds]
doecnt has quit [Ping timeout: 276 seconds]
octachron_ has joined #ocaml
lindig has joined #ocaml
butts_butts has joined #ocaml
darkf has quit [Quit: Leaving]
lindig has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
ggole has quit []
lindig has joined #ocaml
butts_butts has quit [Ping timeout: 276 seconds]
rgrinberg has quit [Ping timeout: 252 seconds]
orbifx has joined #ocaml
<orbitz> Anyone seen merlin compalin with "Error: Unbound value .()" for "Sys.argv.(1)"?
dsheets has joined #ocaml
Maxdaman1us has joined #ocaml
Maxdamantus has quit [Ping timeout: 240 seconds]
dsheets has quit [Ping timeout: 240 seconds]
orbifx has quit [Ping timeout: 246 seconds]
silver has quit [Read error: Connection reset by peer]
<def`> orbitz: 4.03.0? Merlin doesn't support 4.03, early support in current git
silver has joined #ocaml
<orbitz> yeah just foudn it out
<orbitz> tahnks
dexterph has quit [Ping timeout: 250 seconds]
Maxdamantus has joined #ocaml
octachron_ has quit [Quit: Leaving]
Maxdaman1us has quit [Ping timeout: 260 seconds]
bba has quit [Ping timeout: 252 seconds]
bba has joined #ocaml
Maxdamantus has quit [Ping timeout: 276 seconds]
Maxdamantus has joined #ocaml
lindig has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
Maxdaman1us has joined #ocaml
Maxdamantus has quit [Ping timeout: 250 seconds]
leyyin has quit [Quit: So Long, and Thanks for All the Fish]
lindig has joined #ocaml
dsheets has joined #ocaml
dsheets has quit [Ping timeout: 250 seconds]
lindig has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
lindig has joined #ocaml
lindig has quit [Client Quit]
doecnt has joined #ocaml
hay207 has joined #ocaml
hay207__ has quit [Ping timeout: 276 seconds]
A1977494 has quit [Quit: Leaving.]
bba has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
doecnt has quit [Ping timeout: 246 seconds]
tennix has joined #ocaml
hay207_ has joined #ocaml
hay207 has quit [Ping timeout: 265 seconds]
Mercuria1Alchemi has quit [Ping timeout: 246 seconds]
Sim_n has quit [Quit: Leaving]
mistermetaphor has joined #ocaml
fix-pyon-t has quit [Quit: Ihnen, Herr Lasker, habe ich nur drei Worte zu sagen: Nyan und Pasu~.]
misterme_ has joined #ocaml
mistermetaphor has quit [Ping timeout: 244 seconds]
pyon has joined #ocaml
butts_butts has joined #ocaml
hay207_ has quit [Ping timeout: 244 seconds]
hay207_ has joined #ocaml
tane has quit [Quit: Verlassend]
dexterph has joined #ocaml
Reshi has joined #ocaml
madroach has quit [Ping timeout: 244 seconds]
bba has joined #ocaml
bba has quit [Client Quit]
madroach has joined #ocaml
dsheets has joined #ocaml
dsheets has quit [Ping timeout: 260 seconds]
zaquest has quit [Read error: Connection reset by peer]
Reshi has quit [Ping timeout: 260 seconds]
butts_butts has quit [Ping timeout: 276 seconds]