From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: =?UTF-8?Q?Aur=C3=A9lien_Aptel?= Newsgroups: gmane.emacs.devel Subject: Re: Dynamic loading progress Date: Thu, 15 Oct 2015 01:32:21 +0200 Message-ID: References: <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> <54E0D181.2080802@dancol.org> <83r3trulse.fsf@gnu.org> <54E0D7E0.305@87.69.4.28> <83h9unukbg.fsf@gnu.org> <54E0DEF8.7020901@dancol> <83egpruiyp.fsf@gnu.org> <54E0FF93.2000104@dancol.org> <5610ED13.1010406@dancol.org> <56117F37.9060808@dancol.org> <561ED963.4050207@dancol.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-Trace: ger.gmane.org 1444865637 30937 80.91.229.3 (14 Oct 2015 23:33:57 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 14 Oct 2015 23:33:57 +0000 (UTC) Cc: Philipp Stephani , Stephen Leake , Eli Zaretskii , Emacs development discussions To: Daniel Colascione Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Oct 15 01:33:56 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 1ZmVYQ-0002UU-SB for ged-emacs-devel@m.gmane.org; Thu, 15 Oct 2015 01:33:55 +0200 Original-Received: from localhost ([::1]:45026 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZmVYP-0006iY-E3 for ged-emacs-devel@m.gmane.org; Wed, 14 Oct 2015 19:33:53 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:35171) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZmVX2-0006fj-Ii for emacs-devel@gnu.org; Wed, 14 Oct 2015 19:32:29 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZmVX1-0001gu-5P for emacs-devel@gnu.org; Wed, 14 Oct 2015 19:32:27 -0400 Original-Received: from mail-lb0-x232.google.com ([2a00:1450:4010:c04::232]:34678) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZmVWw-0001gW-EQ; Wed, 14 Oct 2015 19:32:22 -0400 Original-Received: by lbbck17 with SMTP id ck17so57558188lbb.1; Wed, 14 Oct 2015 16:32:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=8cRii7Wo+TG7mspA89HWIDH6eNRQZu0MagSaHJSErAU=; b=V5i6+doVEdZPPGSJ8w92N7wDOIkNjJLpenVGsUuecrBf4zFvQQSWllKa3JICLjI6Bi EeZTPqP5nOwTrerEcIKX96fpetB1/Rar6SWzDw/rf5dNWwPbdTirkzekroYJL70IINJA QdX5+5XPsSwU5RGZa3dxHcEaEZrQ03ypi8K7dTJdy+U0kpKZXDjbVGJn69u4OrCFpgV6 mEHOGxyEdmKy+oHo97Z7jvUr6WPBq/MA5IIZXSu5nvIi+TSreV9urOM+SCuBWbo+qO1X JIuivIV6O6zl+ZhnUSBQda2DSMMssKkeFhTzsqZOcSPAk7aj/lZze25c6fFapekU69Ut a1kg== X-Received: by 10.112.161.138 with SMTP id xs10mr2872525lbb.47.1444865541682; Wed, 14 Oct 2015 16:32:21 -0700 (PDT) Original-Received: by 10.112.167.73 with HTTP; Wed, 14 Oct 2015 16:32:21 -0700 (PDT) In-Reply-To: <561ED963.4050207@dancol.org> X-Google-Sender-Auth: nXPDbzjyExq8u7ARqFuC4SBOB5U X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2a00:1450:4010:c04::232 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:191597 Archived-At: Your approach is interesting but it currently works as-is for 64bits platforms and 32bits platform without wide-int and can be fixed later without breaking the API, if I understand correctly. I would rather focus on the remaining blocking things for the merge in master (and availability in Emacs 25!): * New opaque Lisp type to embbed C pointers with a vtable (for at least a finalizer) Can we re-use the finalizer feature you implemented? I haven't looked into it. * Loading I'm currently in the process of having `load' look for modules. For this I've added the system shared lib extension (.dll, .so, ...) to Vload_prefixes choosen at configure time (modules are not handled in Fload at the moment). I know that on OSX there's both ".dyn" and ".so" but I don't know much about it. Is supporting both worth it? Couldn't we simply pick an extension like ".edm" (emacs dynamic module) and rename the generated lib on each system when a module is built? * Doc strings If we use the doxygen syntax, it won't follow the various elisp conventions (args in caps, first line must be descriptive, etc). Jumping to definition is also pretty convenient, should we keep that feature for modules? Also how should we load the docstrings themselves? * Packaging We need to extend the spec of ELisp packages to take into account modules. The way I see it a module will have a "core" source file in C (or something else) and a bunch of helpers implemented in elisp on top that expose the package features in a more user-friendly way. As for distribution, only packaging sources is easier. This is a pretty big undertaking but we could bundle a compiler on platforms that don't have one easily accessible (like Strawberry Perl on Windows that bundles mingw-w64).