arjunguha has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Simn has quit [Quit: Leaving]
AdmiralBumbleBee has quit [Quit: AdmiralBumbleBee]
q66 has quit [Quit: Leaving]
thomasga has quit [Quit: Leaving.]
ygrek has joined #ocaml
jao has joined #ocaml
jao has quit [Changing host]
jao has joined #ocaml
arjunguha has joined #ocaml
arjunguha has quit [Client Quit]
array has joined #ocaml
tristero has quit [Quit: tristero]
aurynj has joined #ocaml
comacat has quit [Quit: Lost terminal]
talzeus has joined #ocaml
shinnya has quit [Ping timeout: 245 seconds]
ollehar has quit [Ping timeout: 260 seconds]
wolfnn has quit [Read error: Operation timed out]
ygrek has quit [Ping timeout: 260 seconds]
nataren has joined #ocaml
philtor has joined #ocaml
ygrek has joined #ocaml
tristero has joined #ocaml
claudiuc has quit [Remote host closed the connection]
claudiuc has joined #ocaml
array has quit [Ping timeout: 245 seconds]
claudiuc has quit [Ping timeout: 272 seconds]
csakatok_ has joined #ocaml
csakatoku has quit [Ping timeout: 240 seconds]
watermind has quit [Quit: Konversation terminated!]
watermind has joined #ocaml
watermind has quit [Read error: Connection reset by peer]
watermind has joined #ocaml
zRecursive has quit [Remote host closed the connection]
Eyyub has quit [Ping timeout: 265 seconds]
yacks has joined #ocaml
ygrek has quit [Ping timeout: 245 seconds]
ggole has joined #ocaml
csakatok_ has quit [Remote host closed the connection]
Eyyub has joined #ocaml
Eyyub has quit [Client Quit]
mmachenry has joined #ocaml
mmachenry has quit [Client Quit]
mmachenry has joined #ocaml
philtor has quit [Ping timeout: 252 seconds]
Guest____ has joined #ocaml
lostcuaz has joined #ocaml
palomer has quit [Ping timeout: 252 seconds]
mmachenry1 has joined #ocaml
mmachenry has quit [Read error: Connection reset by peer]
watermind has quit [Quit: Konversation terminated!]
Don_Pellegrino has joined #ocaml
yacks has quit [Ping timeout: 246 seconds]
mmachenry1 is now known as mmachenry
jao has quit [Ping timeout: 265 seconds]
michael_lee has joined #ocaml
aurynj has quit [Quit: Leaving]
yacks has joined #ocaml
csakatoku has joined #ocaml
lostcuaz has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
csakatoku has quit [Ping timeout: 252 seconds]
csakatoku has joined #ocaml
Guest17503 has joined #ocaml
Don_Pellegrino has quit [Quit: Konversation terminated!]
Guest____ has quit [Quit: Computer has gone to sleep.]
Guest_ has joined #ocaml
nataren has quit [Remote host closed the connection]
zpe has quit [Remote host closed the connection]
zpe has joined #ocaml
zpe has quit [Ping timeout: 252 seconds]
axiles has joined #ocaml
Guest17503 has quit [Ping timeout: 272 seconds]
mmachenry has quit [Quit: Leaving.]
ggole has quit [Ping timeout: 246 seconds]
angerman has joined #ocaml
zpe has joined #ocaml
ggole has joined #ocaml
ulfdoz has joined #ocaml
ollehar has joined #ocaml
Guest17503 has joined #ocaml
dant3 has joined #ocaml
klrr has joined #ocaml
Guest17503 has quit [Ping timeout: 265 seconds]
dant3 has quit [Remote host closed the connection]
dant3 has joined #ocaml
ulfdoz has quit [Ping timeout: 272 seconds]
Kakadu has joined #ocaml
nikki93 has quit [Remote host closed the connection]
ollehar has quit [Ping timeout: 260 seconds]
csakatoku has quit [Remote host closed the connection]
csakatoku has joined #ocaml
arj has joined #ocaml
nikki93 has joined #ocaml
ygrek has joined #ocaml
nikki93 has quit [Ping timeout: 260 seconds]
klrr has quit [Quit: leaving]
Simn has joined #ocaml
yellowfish has quit [Ping timeout: 248 seconds]
yellowfish has joined #ocaml
yellowfish has quit [Changing host]
yellowfish has joined #ocaml
AltGr has joined #ocaml
angerman has quit [Read error: Connection reset by peer]
<arj>
is there a simpler variant to install the same packages in a new opam configuration (using switch) than opam install `opam list -i | cut -d' ' -f1` ?
<arj>
with opam list on the old configuration
The-Mad-Pirate has joined #ocaml
The-Mad-Pirate has quit [Excess Flood]
The-Mad-Pirate has joined #ocaml
angerman has joined #ocaml
ygrek has quit [Ping timeout: 260 seconds]
The-Mad-Pirate has quit [Read error: Connection reset by peer]
<Kakadu>
I think that this solution is good enough
<arj>
How can I specify in oasis that I require some ocaml version?
rand000 has joined #ocaml
zpe has quit [Remote host closed the connection]
zpe has joined #ocaml
mika1 has joined #ocaml
zpe has quit [Ping timeout: 265 seconds]
dant3 has quit [Remote host closed the connection]
thomasga has joined #ocaml
sagotch has joined #ocaml
<sagotch>
ola!
sgnb has quit [Ping timeout: 248 seconds]
sgnb has joined #ocaml
Guest17503 has joined #ocaml
angerman has quit [Read error: Connection reset by peer]
rwmjones is now known as rwmjones_hols
thomasga has quit [Quit: Leaving.]
angerman has joined #ocaml
thomasga has joined #ocaml
mort___ has joined #ocaml
Guest17503 has quit [Remote host closed the connection]
dant3 has joined #ocaml
dlat has joined #ocaml
thomasga has quit [Quit: Leaving.]
ikaros has joined #ocaml
rwmjones_hols has quit [Quit: Terminated with extreme prejudice - dircproxy 1.2.0]
nikki93 has joined #ocaml
yellowfish has quit [Ping timeout: 240 seconds]
nikki93 has quit [Ping timeout: 260 seconds]
zpe has joined #ocaml
zpe has quit [Remote host closed the connection]
zpe has joined #ocaml
sgnb has quit [Remote host closed the connection]
sgnb has joined #ocaml
zpe has quit [Ping timeout: 248 seconds]
ygrek has joined #ocaml
angerman has quit [Read error: Connection reset by peer]
dant3 has quit [Remote host closed the connection]
dant3 has joined #ocaml
angerman has joined #ocaml
angerman has quit [Read error: Connection reset by peer]
zpe has joined #ocaml
csakatoku has quit [Remote host closed the connection]
Thooms has joined #ocaml
angerman has joined #ocaml
zpe has quit [Ping timeout: 240 seconds]
yellowfish has joined #ocaml
angerman has quit [Read error: Connection reset by peer]
lostcuaz has joined #ocaml
csakatoku has joined #ocaml
angerman has joined #ocaml
aurynj has joined #ocaml
csakatoku has quit [Remote host closed the connection]
angerman has quit [Read error: Connection reset by peer]
angerman has joined #ocaml
avsm has joined #ocaml
avsm has quit [Client Quit]
thomasga has joined #ocaml
njcomsec has joined #ocaml
yellowfish has quit [Ping timeout: 246 seconds]
avsm has joined #ocaml
arj has quit [Ping timeout: 252 seconds]
Guest_ has quit [Quit: Computer has gone to sleep.]
_andre has joined #ocaml
skchrko has joined #ocaml
dsheets_ has quit [Ping timeout: 245 seconds]
zpe has joined #ocaml
zpe has quit [Ping timeout: 260 seconds]
talzeus has quit [Remote host closed the connection]
sagotch has quit [Quit: Page closed]
dsheets_ has joined #ocaml
Guest_ has joined #ocaml
mort___ has quit [Quit: Leaving.]
lostcuaz has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
nikki93 has joined #ocaml
nikki93 has quit [Ping timeout: 272 seconds]
ygrek has quit [Ping timeout: 265 seconds]
thomasga has quit [Quit: Leaving.]
thomasga has joined #ocaml
thomasga has quit [Client Quit]
<adrien_oww>
anyone know where the doc for GC debug messages are?
<adrien_oww>
I'm getting lots of "!<>" printed when I run with OCAMLRUNPARAM="v=63
<adrien_oww>
"
<adrien_oww>
and have no idea how to interpret them
arj has joined #ocaml
gambogi has quit [Ping timeout: 245 seconds]
csakatoku has joined #ocaml
csakatok_ has joined #ocaml
yacks has quit [Read error: Operation timed out]
ygrek has joined #ocaml
csakatoku has quit [Ping timeout: 240 seconds]
kaustuv has joined #ocaml
ggole has quit [Ping timeout: 240 seconds]
avsm has quit [Quit: Leaving.]
<hcarty>
adrien_oww: It's a cylon duck?
<adrien_oww>
:D
<adrien_oww>
I think I need to clean up my screen, get the ocaml sources and grep
talzeus has joined #ocaml
csakatok_ has quit [Read error: Connection reset by peer]
ggole has joined #ocaml
csakatoku has joined #ocaml
talzeus has quit [Read error: Connection reset by peer]
talzeus has joined #ocaml
<adrien_oww>
actually some more stuff looks like: !<>!<>!<>!<>!<>!<>!<>!<>!<>!<>!<>!<>!<>!<>!<>!<>!<>!<>!<>$<>$<>$<>$<>$<>$<>$<>$<>$<>$<>$<>$<>$<>$<>Starting new major GC cycle
<ggole>
Did my message go through?
<ggole>
<ggole> ! looks like the mark phase of a major slice collection, and <> are the begin/end of emptying the minor heap. Are you getting $s too?
<ggole>
$ is the sweep phase.
<adrien_oww>
it hadn't
<adrien_oww>
I actually get !<> and $<> at once
<ggole>
Internets is a bit flaky today :/
<adrien_oww>
hmmm =/
<adrien_oww>
ok, thanks for
<adrien_oww>
$
<adrien_oww>
ggole: your description makes sense
<ggole>
I peeked at the source.
<adrien_oww>
in any case, I think I make much more garbage than I had though
<adrien_oww>
t
<adrien_oww>
heh :)
<ggole>
OCaml is pretty garbage happy
<ggole>
What with closures and tuples and floats and int32s and all
<adrien_oww>
if I write : let f () = Lwt.return () >>= fun () -> .... >>= fun () -> ...
<adrien_oww>
are there allocations for each of these "fun" each time I call "f" or is only once upon definition of f?
<kaustuv>
each time
csakatoku has quit [Ping timeout: 260 seconds]
<adrien_oww>
thanks, was afraid of that
<adrien_oww>
and if I have
<kaustuv>
there's no way around it. Closures have to be dynamically allocated
<kaustuv>
in a strict language at least...
<adrien_oww>
let f () = Lwt.return () >>= g >>= h
<ggole>
Escaping ones do
<adrien_oww>
will that avoid allocs?
csakatoku has joined #ocaml
<adrien_oww>
however, I'm using a local variable from these "g" and "h"
<adrien_oww>
well, for stats but
<ggole>
If g and h are local to f and use its variables, they're basically just names for fun () -> ...
<adrien_oww>
yeah, I put them out
darkf has quit [Quit: Leaving]
<kaustuv>
You can usually guess the allocation behaviour from -dlambda. Closures are allocated with "function". If you don't see these, then there are no allocated closures.
<kaustuv>
For example, let f g h = return () >>= g >>= h shows:
<kaustuv>
which means that only one closure is allocated for f
<adrien_oww>
ok
<adrien_oww>
I've moved some of the functions and it looks like I'm allocating less but I can't tell for sure yet
<adrien_oww>
unfortunately, for some, I will have to do '>>= h some_arg'
<adrien_oww>
maybe I'll try to avoid the >>= operator
<ggole>
Partial application also allocates
<adrien_oww>
yep, which is why I might have to avoid >>=
<ggole>
Even with constant arguments :/
<ggole>
OCaml doesn't compile functions very aggressively, I guess.
<kaustuv>
but here there are no partial applications. >>= is always fully applied
<adrien_oww>
hmm
<ggole>
I was assuming that "h some_arg" referred to a partial application
csakatoku has quit [Remote host closed the connection]
<kaustuv>
ah, sure, that can be partial
zxqdms has quit [Quit: leaving]
csakatoku has joined #ocaml
<adrien_oww>
yeah, it would
<adrien_oww>
thing is that fairly often I have:
<adrien_oww>
>>= fun some_data -> f ()
<adrien_oww>
>>= fun () -> g some_data
<adrien_oww>
i.e. at one step I don't use what the previous function returned but I use it at a later step
<adrien_oww>
not sure my current try reduced allocs a lot
<kaustuv>
If you use the e1 >>= (fun x1 -> e2 >>= (fun x2 >>= ...)) pattern, then the closures are all allocated "one at a time". Each unpeeling of >>= will only create a single (short lived) closure.
<adrien_oww>
so, when does companion_cube get all the memory profiling patches merged upstream?
Guest_ has quit [Quit: Computer has gone to sleep.]
<adrien_oww>
kaustuv: that's precisely what I think I might have to avoid
<companion_cube>
adrien_oww: uhhhh ???
csakatoku has quit [Ping timeout: 260 seconds]
<adrien_oww>
companion_cube: :)
<companion_cube>
I already have too many patches to make :p
<adrien_oww>
companion_cube: ='(
<companion_cube>
also, I don't know how to do memory profiling...
<kaustuv>
what exact problem are you facing? Too many minor collections? If so, you can just set the minor_heap_size to something reasonably riduclous like 1M
<kaustuv>
ridiculous*
<adrien_oww>
kaustuv: latency
julm has quit [Ping timeout: 246 seconds]
<adrien_oww>
but I'm still studying the issue
julm has joined #ocaml
<adrien_oww>
hmmm, calls to printf
yacks has joined #ocaml
<njcomsec>
alrite
<kaustuv>
I was actually shocked to learn recently that Java sets the "nursery size" to 100M by default. Clearly they have a different GC algorithm, but it is a big difference to OCaml's 32K minor heap size.
<adrien_oww>
kaustuv: doesn't it have profiles too? like a server profile and a desktop one?
<kaustuv>
anyway, if latency is your issue, then increasing the minor heap size is probably a bad idea anyway
ontologiae has joined #ocaml
<adrien_oww>
gah
csakatoku has joined #ocaml
<adrien_oww>
I was sending my executable to the wrong machine
<mrvn>
The minor heap needs to be big enough to contain local temporary data and small enough not to have overly complex structures.
csakatoku has quit [Remote host closed the connection]
<mrvn>
or just make it so big the GC never needs to run :)
csakatoku has joined #ocaml
ygrek has quit [Ping timeout: 260 seconds]
<adrien_oww>
according to profiling, first cost is a C stub, second cost is minor collections
AdmiralBumbleBee has joined #ocaml
nikki93 has joined #ocaml
csakatoku has quit [Remote host closed the connection]
<kaustuv>
profiling only gives aggregate data over an entire execution, no? You want much more finely sliced profile information to debug latency issues
ygrek has joined #ocaml
nikki93 has quit [Ping timeout: 260 seconds]
skchrko has quit [Ping timeout: 246 seconds]
<adrien_oww>
definitely; I've written the data collection but not the printing yet :P
<kaustuv>
Personally, I always solve it by writing a custom time : ('a -> 'b) -> 'a -> 'b function (and time2, time3, etc. for more arguments) and sprinkle them all over my code. They all check a global variable to see if they should do accounting or not on every call.
skchrko has joined #ocaml
<kaustuv>
But this is laborious, error prone, dirty, many more negative adjectives
lostcuaz has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<mrvn>
since 4.0
ygrek has quit [Ping timeout: 272 seconds]
avsm has joined #ocaml
<klrr>
oh, then i need to grab latest version (the distribution im on right now only provide 3.*)
<companion_cube>
you indeed do. GADTs are cool :)
<klrr>
im reading TAPL atm, and it use ocaml so i thought i might dig into it a bit, it also seems like a pretty cool language generally
S11001001 has joined #ocaml
S11001001 has quit [Changing host]
S11001001 has joined #ocaml
<companion_cube>
it is!
rwmjones has joined #ocaml
avsm has quit [Quit: Leaving.]
S11001001 has quit [Client Quit]
mmachenry has joined #ocaml
nikki93 has joined #ocaml
dant3 has quit [Remote host closed the connection]
nikki93 has quit [Ping timeout: 248 seconds]
S11001001 has joined #ocaml
strobegen has joined #ocaml
S11001001 has quit [Changing host]
S11001001 has joined #ocaml
ygrek has joined #ocaml
ikaros has joined #ocaml
mcclurmc has joined #ocaml
Kakadu has quit [Ping timeout: 245 seconds]
ikaros has quit [Quit: Ex-Chat]
ikaros has joined #ocaml
thomasga has quit [Quit: Leaving.]
zxqdms has joined #ocaml
thomasga has joined #ocaml
strobegen has quit [Quit: Leaving.]
avsm has joined #ocaml
lostcuaz has joined #ocaml
whitequark has joined #ocaml
<whitequark>
AltGr: can you release new ocp-index to opam, perhaps?
<AltGr>
so that you get the new --opam-lib option ?
<whitequark>
yep
<AltGr>
k, I'll try to do that tomorrow
<whitequark>
thanks!
shinnya has quit [Ping timeout: 252 seconds]
mmachenry has quit [Quit: Leaving.]
dant3 has joined #ocaml
The-Mad-Pirate has joined #ocaml
dant3 has quit [Ping timeout: 252 seconds]
yacks has quit [Quit: Leaving]
The-Mad-Pirate has quit [Ping timeout: 248 seconds]
tane has joined #ocaml
tulloch has quit [Ping timeout: 246 seconds]
mort___ has joined #ocaml
mmachenry has joined #ocaml
tulloch has joined #ocaml
Anarchos has joined #ocaml
pminten has joined #ocaml
skchrko has quit [Ping timeout: 240 seconds]
<mmachenry>
A lot of ocaml code I see on github have _oasis files that make a library with a made up findlib name that has no file associated. This is for naming the project and giving something to list as dependency for tests.
<mmachenry>
This seems to compile just fine for me but I get a warning from _oasis when I go this "W: Cannot find source file matching module 'pcf' in library pcf"
<mmachenry>
I am learning about OCaml build processes and the norms the community has for doing this kind of thing and I also dislike having warnings in my code, so I'd like to clear this up. Do projects usually do this? Is there a way I could just tell oasis to squash this warning explicitely?
<Drup>
mmachenry: you use the "pack" option
tulloch has quit [Ping timeout: 245 seconds]
<mrvn>
mmachenry: I think the warning goes away if you have a mli file.
<mmachenry>
Drup: Yep. Tried it both ways.
<Drup>
mmachenry: you shouldn't have the warning then, it comes from elsewhere
<mmachenry>
Elsewhere meaning other than oasis?
<mmachenry>
It comes from when I make.
ggole has joined #ocaml
tulloch has joined #ocaml
<Drup>
give me a link, I must try directly to answer =)
pminten has quit [Quit: Leaving]
<companion_cube>
mmachenry: you may need to capitalize the module name in _oasis
<companion_cube>
like, Pcf
Kakadu has joined #ocaml
q66 has joined #ocaml
q66 has quit [Changing host]
q66 has joined #ocaml
<mmachenry>
companion_cube: Hm… lots more weird errors for that.
<companion_cube>
hmm hmm
<companion_cube>
can you paste your _oasis file on pastebin or equivalent?