From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Philipp Stephani Newsgroups: gmane.emacs.devel Subject: Re: Dynamic loading progress Date: Mon, 28 Sep 2015 17:04:32 +0000 Message-ID: References: <55DB7C3D.4090106@cs.ucla.edu> <55DE75FD.8020308@cs.ucla.edu> <55F5DD8C.70506@dancol.org> <55F62C16.4000105@dancol.org> <55F64F04.9030002@dancol.org> <55F6E43E.9030502@dancol.org> <55F70C4E.8030805@dancol.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=f46d04447df98230f10520d1b14c X-Trace: ger.gmane.org 1443488309 25084 80.91.229.3 (29 Sep 2015 00:58:29 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 29 Sep 2015 00:58:29 +0000 (UTC) Cc: Tom Tromey , Stephen Leake , Daniel Colascione , Emacs development discussions , Paul Eggert To: =?UTF-8?Q?Aur=C3=A9lien_Aptel?= , Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Sep 29 02:58:28 2015 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1ZgjFT-0001JA-Nd for ged-emacs-devel@m.gmane.org; Tue, 29 Sep 2015 02:58:27 +0200 Original-Received: from localhost ([::1]:43332 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZgjFS-0006Pb-RI for ged-emacs-devel@m.gmane.org; Mon, 28 Sep 2015 20:58:26 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:33140) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zgbr1-0000FB-Uv for emacs-devel@gnu.org; Mon, 28 Sep 2015 13:04:49 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Zgbr0-0001cl-Rb for emacs-devel@gnu.org; Mon, 28 Sep 2015 13:04:43 -0400 Original-Received: from mail-wi0-x235.google.com ([2a00:1450:400c:c05::235]:38767) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zgbr0-0001cb-Je for emacs-devel@gnu.org; Mon, 28 Sep 2015 13:04:42 -0400 Original-Received: by wiclk2 with SMTP id lk2so111038725wic.1 for ; Mon, 28 Sep 2015 10:04:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-type; bh=KYePH3EEi8mwkVIs/ecWcoZVeQ6CfY00lSN0mH/0ZLM=; b=chPtyXD3ZhlLLhxBsB3Gl7MfjV8fMNemJbRwIwsiTyxF3oTMt5TVkzCF20aOvyDbHU DqBubiBXXQlx9ip5XmCCL/6iLR7KeiOkaSaRaB1ONO7r+CSXaiXN3rrLoPv3pS0JCahO 3DkBanLg9IFmhl9x6oWnRArFRQMq1LomWF/B0SUHwmKzT+WkkxF2X5q/BX6CDkOQ6i51 dubjfawVyxhcPEwQMx4ohwj7DSOfOwdHiKC4v1t3sE7ZY21hbkgONxemuGk5+Cn5iPG9 tyo6Mefa7mPQ0gGNhlCADSB64rbSOEMf265rlcsekNkPDahgQ6oifd1ibOUz7x21DUCt iS9A== X-Received: by 10.180.102.195 with SMTP id fq3mr20113125wib.7.1443459881904; Mon, 28 Sep 2015 10:04:41 -0700 (PDT) In-Reply-To: X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2a00:1450:400c:c05::235 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 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-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:190454 Archived-At: --f46d04447df98230f10520d1b14c Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Philipp Stephani schrieb am Mo., 28. Sep. 2015 um 17:35 Uhr: > Aur=C3=A9lien Aptel schrieb am Do., 24. = Sep. > 2015 um 14:45 Uhr: > >> Some updates. >> >> I haven't made any progress on errors. I was reading on >> condition-case, setjmp/longjmp and how it's used for >> signaling/throwing. I actually knew very little about it. I shouldnt >> be the one writing this stuff I think... Anyway I was looking into how >> I would set up a "catch-all" wrapping code so that we can implement a >> funcall that always returns and I still haven't figured it out. > > > I have implemented this in a private fork: > https://github.com/phst/emacs-dynamic-module/commit/b14073ef8a522bdb90a8d= 7f0edc575edfd75da26 > Note that code is only a suggestion how it could be implemented. It > deviates from Daniel's design by using return parameters instead of TLS, > but that's only a minor difference. The important part is the addition of > protected_call_n to eval.c. > Here's a more minimal implementation using TLS (but we only have one thread, the thread checking needs to be implemented as well, but that's unrelated): https://github.com/phst/emacs-dynamic-module/commit/41a8cb8a1d29346331fcaf1= f28b6c5bee8c8f6ad This is less than minimal because throw isn't dealt with. --f46d04447df98230f10520d1b14c Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable


Philip= p Stephani <p.stephani2@gmail.c= om> schrieb am Mo., 28. Sep. 2015 um 17:35=C2=A0Uhr:
Aur=C3=A9lien Aptel <aurelien.aptel+emacs@gmail.com> schrie= b am Do., 24. Sep. 2015 um 14:45=C2=A0Uhr:
Some updates.

I haven't made any progress on errors. I was reading on
condition-case, setjmp/longjmp and how it's used for
signaling/throwing. I actually knew very little about it. I shouldnt
be the one writing this stuff I think... Anyway I was looking into how
I would set up a "catch-all" wrapping code so that we can impleme= nt a
funcall that always returns and I still haven't figured it out.

Note that code i= s only a suggestion how it could be implemented. It deviates from Daniel= 9;s design by using return parameters instead of TLS, but that's only a= minor difference. The important part is the addition of protected_call_n t= o eval.c.

Here's a mo= re minimal implementation using TLS (but we only have one thread, the threa= d checking needs to be implemented as well, but that's unrelated):
This is= less than minimal because throw isn't dealt with.=C2=A0
--f46d04447df98230f10520d1b14c--