__DL__ has quit [Read error: 54 (Connection reset by peer)]
_fab has quit [Read error: 145 (Connection timed out)]
_fab has joined #ocaml
Rearden has quit ["Client Exiting"]
joeytwiddle_onth is now known as joeytwiddle
pattern_ is now known as pattern
batdog|gone is now known as batdog
ulfdoz has joined #ocaml
vezenchio has joined #ocaml
ulfdoz_ has quit [Read error: 60 (Operation timed out)]
Herrchen_ has joined #ocaml
Herrchen has quit [Read error: 145 (Connection timed out)]
Nutssh has joined #ocaml
Smerdyakov has joined #ocaml
batdog is now known as batdog|gone
bk_ has quit ["Leaving IRC - dircproxy 1.1.0"]
Lycan359 has joined #ocaml
Lycan359 has quit []
avida has joined #ocaml
Smerdyakov has quit [Read error: 54 (Connection reset by peer)]
_shawn has joined #ocaml
shawn has quit [Connection timed out]
Sonarman has joined #ocaml
Nutssh has quit [Read error: 60 (Operation timed out)]
araujo has quit ["Programs must be written for people to read, and only incidentally for machines to execute"]
_fab has quit [Remote closed the connection]
__DL__ has joined #ocaml
Tachyon76 has joined #ocaml
vodka-goo has joined #ocaml
Herrchen_ is now known as Herrchen
Tachyon76 has quit [Read error: 54 (Connection reset by peer)]
vodka-goo has quit []
Submarine_ has joined #ocaml
__DL__ has quit [Remote closed the connection]
__DL__ has joined #ocaml
Submarine_ has quit ["Leaving"]
__DL__ has quit [Remote closed the connection]
__DL__ has joined #ocaml
araujo has joined #ocaml
araujo has quit [Client Quit]
araujo has joined #ocaml
Tachyon76 has joined #ocaml
Skal has joined #ocaml
cjohnson has joined #ocaml
Tachyon76 has quit ["Leaving"]
cjohnson has quit [Connection timed out]
cjohnson has joined #ocaml
Snark has joined #ocaml
<Snark>
slt
<pflanze>
Has anyone tried CPS style programming with ocaml?
<Snark>
CPS?
<Herrchen>
what's the problem with using CPS and ocaml? functions are first class citizens
<pflanze>
Snark: continuation passing style
<pflanze>
Herrchen: just asking. Is ocaml optimizing away closure creation as much as possible or does it cost a new closure on each continuation?
<pflanze>
One could use ocamlp4 for extending ocaml with first class continuations, if it doesn't slow down everything too much.
Hadaka has quit ["leaving"]
<Herrchen>
pflanze: uhh - don't know
<Herrchen>
pflanze: something special you want to do?
<pflanze>
I just want first-class continuation
<pflanze>
(as in scheme or SML)
<Herrchen>
SML just with smlnj
<Herrchen>
well
<pflanze>
yes
<Herrchen>
don't think that they are optimized away
<Herrchen>
the compilation scheme is completely different in smlnj or scheme to implement continutations
<Herrchen>
my guess is, to benchmark and then check if the performance is good enough
<Herrchen>
maybe using it only for special stuff
<Herrchen>
or implement the stuff you want to do with CPS in another way
<pflanze>
Yes, I have to think more about it
<Herrchen>
or use smlnj :p
<pflanze>
If not optimized, it would at least not use stack space, so it could also help prevent stack overflows ;^)
Naked has joined #ocaml
ExElNeT has joined #ocaml
<ExElNeT>
i cant make cameleon ;/ and my lablgtk is 2.4.0 here is the error http://phpfi.com/65439
<ExElNeT>
1.2.6 works ...
<Herrchen>
pflanze: yes of course - but then your heap maybe overflows :p - well I know what you mean - but stack overflows aren't that problem with proper tail recursive functions, so ...
<pflanze>
Sure. But the basic problem is somewhat related: if ocaml would maintain it's stackframes on the heap (or a separate segmented stack), it would have solved both the stack overflow problem and could offer fast continuations.
<Herrchen>
but continuations are more than just stack frames on heap
<mrvn_>
Herrchen: why?
<mrvn_>
apart from continuations not being stack frames as you can't pop/push them.
<pflanze>
Continuations are basically "saved" stack frames.
<Herrchen>
mrvn_: you have to save parts of the sack
<Herrchen>
pflanze: that I ment
<mrvn_>
Herrchen: you have to save the current bindings.
<mrvn_>
So bindings can't be in stack frames but must be heap allocated.
<Herrchen>
well you have to save anything from the stack that you may need later
<Herrchen>
so you basically allocate anything on the heap of course
<Herrchen>
as e.g. smlnj does
<mrvn_>
Get rid of the stack completly.
<Herrchen>
well I would use the stack for local computations anyway
<mrvn_>
Herrchen: those you do in registers. :)
<Herrchen>
mrvn_: there are architectures with too few registers :)
<mrvn_>
Herrchen: screw i386.
<Herrchen>
:)
<Herrchen>
if one needs to implement a compiler, i386 is really a piece of shit
<mrvn_>
It is quite easy to transform ocaml code into CPS and then generate asm.
<mrvn_>
you can use the stack for temporary variables but everything bound would be on the heap.
<Herrchen>
I think he wanted to do this without creating a new compiler
<mrvn_>
I doubt that would be possible.
<Herrchen>
I too.
pattern has quit ["..."]
_JusSx_ has joined #ocaml
<pflanze>
mrvn_: see above, using a transformation to CPS style in ocamlp4 it should be possible. The only real question should be how fast that is.
bk_ has joined #ocaml
cjohnson has quit [Remote closed the connection]
pattern_ has joined #ocaml
vodka-goo has joined #ocaml
joeytwiddle has quit ["Leaving"]
<dan2>
mrvn_: cps?
batdog|gone is now known as batdog
dan2 has quit [Read error: 131 (Connection reset by peer)]
bk_ has quit [brown.freenode.net irc.freenode.net]
ExElNeT has quit [brown.freenode.net irc.freenode.net]
ulfdoz has quit [brown.freenode.net irc.freenode.net]
pflanze has quit [brown.freenode.net irc.freenode.net]
calvin_ has quit [brown.freenode.net irc.freenode.net]
shrimpx has quit [brown.freenode.net irc.freenode.net]
mattam has quit [brown.freenode.net irc.freenode.net]
dan2 has joined #ocaml
bk_ has joined #ocaml
ExElNeT has joined #ocaml
ulfdoz has joined #ocaml
pflanze has joined #ocaml
calvin_ has joined #ocaml
mattam has joined #ocaml
shrimpx has joined #ocaml
Smerdyakov has joined #ocaml
pflanze has quit [brown.freenode.net irc.freenode.net]
ulfdoz has quit [brown.freenode.net irc.freenode.net]
shrimpx has quit [brown.freenode.net irc.freenode.net]
mattam has quit [brown.freenode.net irc.freenode.net]
calvin_ has quit [brown.freenode.net irc.freenode.net]
bk_ has quit [brown.freenode.net irc.freenode.net]
ExElNeT has quit [brown.freenode.net irc.freenode.net]
bk_ has joined #ocaml
ExElNeT has joined #ocaml
ulfdoz has joined #ocaml
pflanze has joined #ocaml
calvin_ has joined #ocaml
mattam has joined #ocaml
shrimpx has joined #ocaml
karryall has quit [brown.freenode.net irc.freenode.net]
Snark has quit [brown.freenode.net irc.freenode.net]
Herrchen has quit [brown.freenode.net irc.freenode.net]
karryall has joined #ocaml
Smerdyakov has quit []
ExElNeT has left #ocaml []
Snark has joined #ocaml
batdog is now known as batdog|gone
bk_ has quit ["Leaving IRC - dircproxy 1.1.0"]
batdog|gone is now known as batdog
pango_ has joined #ocaml
_JusSx__ has joined #ocaml
pango has quit [Read error: 110 (Connection timed out)]
_JusSx_ has quit [Read error: 110 (Connection timed out)]
mrvn_ has quit ["reboot"]
Sonarman has quit [Read error: 104 (Connection reset by peer)]
pattern_ has quit ["..."]
pattern_ has joined #ocaml
mrvn has joined #ocaml
Sonarman has joined #ocaml
vezenchio has quit ["Ayn Rand encapsulates the rage that every teenager feels on finding that his first paycheque has had taxes taken out of it"]
Lycan359 has joined #ocaml
Lycan359 has left #ocaml []
<Snark>
good night
Snark has left #ocaml []
Sonarman has quit [Read error: 145 (Connection timed out)]
Sonarman has joined #ocaml
vodka-goo has quit []
<mrvn>
n8
bk_ has joined #ocaml
monochrom has joined #ocaml
Skal has quit ["Client exiting"]
pflanze has quit [Read error: 60 (Operation timed out)]