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: Sun, 15 Feb 2015 09:04:01 -0800 Message-ID: <54E0D181.2080802@dancol.org> References: <85k31coixa.fsf@stephe-leake.org> <85oapy5kt6.fsf@stephe-leake.org> <83y4oiiw81.fsf@gnu.org> <838ugdf251.fsf@gnu.org> <87bnl1vmqf.fsf@lifelogs.com> <87vbj8tow4.fsf@lifelogs.com> <87r3twtagf.fsf@lifelogs.com> <85siebl7ws.fsf@stephe-leake.org> <85a90ilwmm.fsf@stephe-leake.org> <83386a6f7z.fsf@gnu.org> <85h9upjz7v.fsf@stephe-leake.org> <83wq3k3kl4.fsf@gnu.org> <85bnkwil1c.fsf@stephe-leake.org> <83pp9cwky8.fsf@gnu.org> <85a90ggf2d.fsf@stephe-leake.org> <54E0A40F.5080603@dancol.org> <83sie7un20.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="g7VsQrr73otvMbKqxEScObDOpCUmP2VEi" X-Trace: ger.gmane.org 1424019869 16435 80.91.229.3 (15 Feb 2015 17:04:29 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 15 Feb 2015 17:04:29 +0000 (UTC) Cc: stephen_leake@stephe-leake.org, emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Feb 15 18:04:21 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 1YN2cF-00070j-SJ for ged-emacs-devel@m.gmane.org; Sun, 15 Feb 2015 18:04:20 +0100 Original-Received: from localhost ([::1]:35992 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YN2cF-0005w0-7c for ged-emacs-devel@m.gmane.org; Sun, 15 Feb 2015 12:04:19 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:52623) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YN2c8-0005tJ-4v for emacs-devel@gnu.org; Sun, 15 Feb 2015 12:04:16 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YN2c3-0006Ml-Fz for emacs-devel@gnu.org; Sun, 15 Feb 2015 12:04:12 -0500 Original-Received: from dancol.org ([2600:3c01::f03c:91ff:fedf:adf3]:35968) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YN2c2-0006MZ-Re; Sun, 15 Feb 2015 12:04:07 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=dancol.org; s=x; h=Content-Type:In-Reply-To:References:Subject:CC:To:MIME-Version:From:Date:Message-ID; bh=ME8DJejJC5EiKRL+OYd5SdSSEQfnzp8w7iLSWdNLEX4=; b=Lc6PEtp+KWwrtph9S+SJoqhADUTtVY2JfplmVC4CvJ9+03rhjmA27yQjNx38I8HUbs6A9L9mqkuxQNZriuG4i345UfgL0Z9ih23y77ra9phftCJvN6mwt7ZVm5xXHB1d9P1N+WK1gqUvrjiA+1hH88CGuPOdUKL5wFUVxPCsgnQuvzJ4M+6cEgVn7j3sGPeH8JD14kSDPEuU2V9Rhgpmh/ptcGPPSxxtaYXBH6Moh3mxgYIdUPfdN3D+YMDE+SmWncEKCWWDOIB0d388k4DqXOsM0McY8YnuAd+JGyW8h+qddAyzr1Ljh6FXURMBpkWl3id1RH2/y1fo0/Lh/dx0lA==; Original-Received: from c-73-221-38-18.hsd1.wa.comcast.net ([73.221.38.18] helo=[192.168.1.210]) by dancol.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84) (envelope-from ) id 1YN2c1-0001Js-Vf; Sun, 15 Feb 2015 09:04:06 -0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.4.0 In-Reply-To: <83sie7un20.fsf@gnu.org> 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:183092 Archived-At: This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --g7VsQrr73otvMbKqxEScObDOpCUmP2VEi Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable On 02/15/2015 09:00 AM, Eli Zaretskii wrote: >> Date: Sun, 15 Feb 2015 05:50:07 -0800 >> From: Daniel Colascione >> >>>> #ifdef WINDOWS >>>> # ifdef emacs >>>> # define EMACS_EXPORT __declspec(dllexport) >>>> # else >>>> # define EMACS_EXPORT __declspec(dllimport) >>>> # endif >>>> # else >>>> # define EMACS_EXPORT >>>> #endif >>>> >>>> That's because they should be exported by Emacs, but imported by >>>> modules. >>> >>> Right, that makes sense. >> >> No it doesn't. Modules shouldn't be importing anything from Emacs: Ema= cs >> should _give_ modules a table of all function pointers they need. It's= a >> lot less error-prone that way. >=20 > I don't follow: how will the linker succeed in linking the module's > shared library, if you don't submit to it an import library with the > symbols in that table you mention? And how do you suggest to produce > an import library, except by the above decorations? >=20 > What am I missing? Emacs doesn't provide symbols to modules. Modules provide an initialization function to Emacs: Emacs then calls this initialization function with a pointer to a C structure containing a table of function pointers. Modules call these function pointers to do their work. There's no need for Emacs itself to export any symbols. --g7VsQrr73otvMbKqxEScObDOpCUmP2VEi 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 iQIcBAEBCAAGBQJU4NGBAAoJEN4WImmbpWBlbnMP/ROo4OMK0FaPnaXdHl16Y4cE lySLQRoY8LHgHzX9WPIpGBJxUj3dq+h8KkWnY93ZiPGmki8YhzDg4jw8yeibm1+L eSekb70CSxGC1bnRv6x/c77doBi4CPVg+KNn4kxNaVUrox6G8eRPPAThwOhNJ7kx 5DhkLWnPKVN/yLSDxSTzWoLut2hFNrnuroT4sxWBVJ6WME4FIdXBsRa4ctpROrmy kGdt4zxH8Gx+5wkPo1H8sYllWZJOsqn4ytXpJQx8yaatQo7BBwfpMkmaZT1yA9VA qhg09Mh54ikocYRCnRZ+ufvjwvqQbIS40ytmKwl7ZnKKJyveUhNNKXRV3ke12yBP 2nKv2zDkI87xVaLZHaoW0j/Z/rbibofkXLSAcfX6OBbi9FewIH/8heuuG7d6VKYz jPHXXdqA8SZQsTLupv9qGzWj6wbRrhTAWrfc0bUUPDPQ71GQpLSPTYiex4wphnSw K292VR0V3KyRs0nBfq5N5KUfqeNCsjfYootuTC1AsmaRp+JTMjw/Kn71OeuyrFno f51/nmIKKu6u4wHI3V/Kw4f8jSO2KfSTbc0kFX5IGJEP3PZgIf8FpVaZ6Jts3NRu Zn0woUvsDwIU2kROPD71kkTNx0jar4Si7bWiVKwKD8aCfm6FCdsTycMR4MFBjqdY Ef3bD5t0a91uKwvnscfJ =VnO+ -----END PGP SIGNATURE----- --g7VsQrr73otvMbKqxEScObDOpCUmP2VEi--