From: "Kevin S. Millikin" <kmillikin@atcorp.com>
To: "caml-list@inria.fr" <caml-list@inria.fr>
Subject: RE: [Caml-list] Python's yield, Lisp's call-cc or C's setjmp/longjmp in OCaml
Date: Tue, 16 Dec 2003 12:06:09 -0600 [thread overview]
Message-ID: <01C3C3CC.FE467180.kmillikin@atcorp.com> (raw)
On Tuesday, December 16, 2003 9:42 AM, Kenneth Knowles
[SMTP:kknowles@uclink.berkeley.edu] wrote:
> SML/NJ is a continuation-passing style compiler, so they are trivial.
> It is "possible, even in the presence of native compilation
> exceptions," but in a traditiional call stack compilation it requires
> some sort of stack copying, making them extremely inefficient. (in
> SML/NJ every program is slower, while continuations have almost no
> penalty)
> There may be new tricks for avoiding copying of the whole stack, but
I
> wouldn't hold your breath for continuations in ocaml.
You don't *have* to copy the stack on continuation capture, just mark
the point where the continuation was captured and seal it off. You do
have to copy stack frames (but not the whole stack)---on continuation
restore or upon stack segment underflow.
Programs that use continuations are (for the most part) the ones that
pay the price, and they pay that (bounded) price upon continuation
invocation or returning past a captured continuation.
For details on these new tricks, you can read Hieb, Dybvig, and
Bruggeman's 1990 PLDI paper.
----
Kevin S. Millikin Architecture Technology Corporation
Research Scientist Specialists in Computer Architecture
(952)829-5864 x162 http://www.atcorp.com
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
next reply other threads:[~2003-12-16 18:06 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-12-16 18:06 Kevin S. Millikin [this message]
-- strict thread matches above, loose matches on Subject: below --
2003-12-18 22:08 Ker Lutyn
2003-12-16 13:13 Nuutti Kotivuori
2003-12-16 13:28 ` Oleg Trott
2003-12-18 0:15 ` Nuutti Kotivuori
2003-12-16 13:48 ` Ville-Pertti Keinonen
2003-12-16 15:41 ` Kenneth Knowles
2003-12-16 16:45 ` Richard Jones
2003-12-16 18:36 ` Ville-Pertti Keinonen
2003-12-16 18:42 ` Brian Hurt
2003-12-16 18:10 ` Dustin Sallings
2003-12-17 6:30 ` ijtrotts
2003-12-17 8:13 ` Dustin Sallings
2003-12-17 10:35 ` Falk Hueffner
2003-12-17 19:14 ` Pierre Weis
2003-12-17 19:32 ` Falk Hueffner
2003-12-17 20:04 ` David Brown
2003-12-18 1:14 ` Nicolas Cannasse
2003-12-18 5:31 ` David Brown
2003-12-18 7:05 ` Brian Hurt
2003-12-18 6:45 ` David Brown
2003-12-18 18:44 ` brogoff
2003-12-17 19:42 ` brogoff
2003-12-19 13:39 ` skaller
2003-12-18 0:51 ` Nuutti Kotivuori
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=01C3C3CC.FE467180.kmillikin@atcorp.com \
--to=kmillikin@atcorp.com \
--cc=caml-list@inria.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox