From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.devel Subject: Re: Real continuations Date: Mon, 11 Dec 2017 11:16:06 -0500 Message-ID: References: <877etucwjh.fsf@web.de> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1513009028 9547 195.159.176.226 (11 Dec 2017 16:17:08 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 11 Dec 2017 16:17:08 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Dec 11 17:17:05 2017 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eOQlL-0002JH-T7 for ged-emacs-devel@m.gmane.org; Mon, 11 Dec 2017 17:17:04 +0100 Original-Received: from localhost ([::1]:54262 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eOQlT-0006sp-0w for ged-emacs-devel@m.gmane.org; Mon, 11 Dec 2017 11:17:11 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:48738) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eOQkd-0006r2-1p for emacs-devel@gnu.org; Mon, 11 Dec 2017 11:16:24 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eOQkY-00068B-Vu for emacs-devel@gnu.org; Mon, 11 Dec 2017 11:16:19 -0500 Original-Received: from [195.159.176.226] (port=55324 helo=blaine.gmane.org) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eOQkY-00067E-OJ for emacs-devel@gnu.org; Mon, 11 Dec 2017 11:16:14 -0500 Original-Received: from list by blaine.gmane.org with local (Exim 4.84_2) (envelope-from ) id 1eOQkP-0000A3-Hi for emacs-devel@gnu.org; Mon, 11 Dec 2017 17:16:05 +0100 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 18 Original-X-Complaints-To: usenet@blaine.gmane.org Cancel-Lock: sha1:MNJshGQxbyPaBwsO49s5LyE3HB0= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 195.159.176.226 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:220885 Archived-At: > btw, would it be practical to support real first class continuations in > Elisp? Real first-class continuations require reifying the stack as an object reachable from the heap and that can be copied. There are many different ways to do that to try and keep the benefits of the normal representation of the stack, but I think it could prove difficult to implement something like call/cc given the current code base. > When you exit a recursive edit, isn't what you get (internally) more or > less already the execution of some kind of continuation? Indeed catch/throw do provide some of the functionality of call/cc, as do threads. Together they cover a large part of what call/cc is typically used for, but they still don't provide call/cc. Stefan