From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Daniel Colascione Newsgroups: gmane.emacs.devel Subject: Re: Dynamic loading progress Date: Mon, 19 Oct 2015 20:38:53 -0700 Message-ID: <5625B74D.7020408@dancol.org> References: <83h9unukbg.fsf@gnu.org> <54E0DEF8.7020901@dancol> <83egpruiyp.fsf@gnu.org> <54E0FF93.2000104@dancol.org> <5610ED13.1010406@dancol.org> <56117F37.9060808@dancol.org> <56259FDD.8040401@dancol.org> <87zizeme8k.fsf@tromey.com> <5625B166.3080104@dancol.org> <87vba2mcyx.fsf@tromey.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="eNVlPkT8keMgCkJPHTePUfdERe5wmRnEd" X-Trace: ger.gmane.org 1445312364 4885 80.91.229.3 (20 Oct 2015 03:39:24 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 20 Oct 2015 03:39:24 +0000 (UTC) Cc: =?UTF-8?Q?Aur=c3=a9lien_Aptel?= , Philipp Stephani , Stephen Leake , Eli Zaretskii , Emacs development discussions To: Tom Tromey Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Oct 20 05:39:22 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 1ZoNlh-0004Zx-G4 for ged-emacs-devel@m.gmane.org; Tue, 20 Oct 2015 05:39:21 +0200 Original-Received: from localhost ([::1]:43376 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZoNlg-0001fB-FA for ged-emacs-devel@m.gmane.org; Mon, 19 Oct 2015 23:39:20 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:58477) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZoNlS-0001eS-KZ for emacs-devel@gnu.org; Mon, 19 Oct 2015 23:39:07 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZoNlR-0005uj-MZ for emacs-devel@gnu.org; Mon, 19 Oct 2015 23:39:06 -0400 Original-Received: from dancol.org ([2600:3c01::f03c:91ff:fedf:adf3]:35076) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZoNlR-0005ua-Ch; Mon, 19 Oct 2015 23:39:05 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=dancol.org; s=x; h=Content-Type:In-Reply-To:MIME-Version:Date:Message-ID:From:Cc:References:To:Subject; bh=uWcM3oQgzGLp5TGuiRqiFpf7ihZqv2ufMINiCks+eBE=; b=T4Eh4nR9OG1kMSwQ3azeUpvbCobQTL6Ag4hB0Y1NeEn1l1ORFqaJJZrWXlhzUt27mFKSM88RP8qWYHQ+URMSewZUT2SeFF3OhDTJsWs/abT7lLFd0EEZb6v6ki0qwnym5tVk+eBwUjXk+WvYSVWqjlhbqVoyf15EgxYUr7Nvm5WTURQjtawQd5cg85wGR5aZ/H76V4O7S9UoPKLJiroF3AeXu75dxQ0NAZslwC67ZcMRN969w1jQfs7G5CQTk3O/3xGQyZuKdvLXldtGpySu3r4mS+dxDrwiOOWtPGYt4eOtHzxG6R0oG40UJA+wwls8u5zijDvN8hqYx4xsODhh6Q==; Original-Received: from [2620:10d:c090:180::1:8cc3] (helo=[IPv6:2620:10d:c081:1101:2ab2:bdff:fe1c:db58]) by dancol.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84) (envelope-from ) id 1ZoNlP-00071V-4N; Mon, 19 Oct 2015 20:39:03 -0700 X-Enigmail-Draft-Status: N1110 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 In-Reply-To: <87vba2mcyx.fsf@tromey.com> X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2600:3c01::f03c:91ff:fedf:adf3 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:192147 Archived-At: This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --eNVlPkT8keMgCkJPHTePUfdERe5wmRnEd Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable On 10/19/2015 08:32 PM, Tom Tromey wrote: > Daniel> A runtime describes Emacs as a whole. It lives forever and has > Daniel> no thread affinity. >=20 > Thanks. >=20 > Daniel> We have a perfectly good sentinel: NULL. NULL will never be a v= alid > Daniel> local or global reference, so it's safe to use it to indicate t= hat > Daniel> something went wrong. >=20 > Ok, I see, it really is JNI. I was confused because the module API > doesn't implement this. Sure, although I'd like it to. If we use the currently-implemented approach, it's not a disaster. It'd just be a shame to have to cart around long long values on 32-bit platforms even when Emacs is compiled with plain 32-bit values. > This design seems a bit odd for Emacs in that "immediate" things like > ints will still have to be wrapped in references. Right, because we're not strongly typed like Java. The references are cheap enough though, and there's no awkardness around pointer width or type tagging. Once we get a numeric tower, it'll be possible to store a full 32 bits in an emacs_value without having to be aware that there's an indirection. This approach also completely insulates us from GC changes: we could even implement a compacting collector without modules being aware of it. FWIW, it's not just JNI. V8 works the same way. --eNVlPkT8keMgCkJPHTePUfdERe5wmRnEd Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAEBCAAGBQJWJbdNAAoJEN4WImmbpWBlKvEP/24ZvAx+OXpPpYpxyw5ywyLu FWEa0WfSlt5bPuNy2hki1vMmEJ2U8q08zMq5exhQgzFb8etWpNaZg73qFaHbGaJ3 ST9p5lcPPBnAYy0KCHtzx0mYiK5lPWik+2ViivBiYfQ7EoAnyh5PaKsl6hn8fXjI rYupBU0TdJDewdRTvrWAYZ57XAXzzfOgYlPs4OShRgOiamDfn9nRabVs1VoTiJiX vzyFDDfKWm3CX1AAihefBBjTWfWbfugnpaOPDOzK524DEDqKJJ1HKMpFAuJbKLrM n6YNir1wA2UWyqvGPZvqwNsA9Q2FclPC4fpQtju6k6cYiu5FjnxIbhXo2HWs5jDr 0XZLpgacbUHE2WU5Jnnbhihm/av8ba+ikWA3FdQF4nelWYxJoFit4l0G2h1282Wi fi0WG7uryufGHfRWhhtrw/W4g48aDBujnCQ3To4FXtGzV+7XmNDhVhE/U0cboqHc gigFxoV2P6LJkTybcTXqC1+3oMECNfcMOKBY85YBfQECdDAMSq84ZKx07313y5C2 HFCwqDTMJBHt/hlr7Dof2mv7n/qPK5lZHxxAsWAQl4WBUKvMFErJRhy8kBEglx9d E89uOB/5pITvb/d/PJyG4Yjd/3RkVoxozJwRS2WCnrzOuK0pDOaU0Et6WmCjXz3t wzNIsa/u454BeBDBRNom =MxCd -----END PGP SIGNATURE----- --eNVlPkT8keMgCkJPHTePUfdERe5wmRnEd--