From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nicolas Goaziou Subject: Re: Bug: org-babel-ref-parse needs to set current buffer to the buffer of the marker [8.2.2 (release_8.2.2-188-gc57372 @ /home/wvxvw/Projects/org-mode/lisp/)] Date: Sat, 09 May 2015 11:04:19 +0200 Message-ID: <877fsixgto.fsf@nicolasgoaziou.fr> References: <8761873tx7.fsf@gmail.com> <87a8xgi27p.fsf@nicolasgoaziou.fr> <87zj5g2idd.fsf@gmail.com> <87oalvh3y4.fsf@nicolasgoaziou.fr> <87pp6b2on1.fsf@gmail.com> <87r3qqyb5x.fsf@nicolasgoaziou.fr> <87k2wi3c90.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:46671) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Yr0eu-0005z6-Ko for emacs-orgmode@gnu.org; Sat, 09 May 2015 05:02:57 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Yr0et-0006ri-LP for emacs-orgmode@gnu.org; Sat, 09 May 2015 05:02:56 -0400 Received: from relay4-d.mail.gandi.net ([2001:4b98:c:538::196]:58379) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Yr0et-0006q6-F7 for emacs-orgmode@gnu.org; Sat, 09 May 2015 05:02:55 -0400 In-Reply-To: <87k2wi3c90.fsf@gmail.com> (Oleg Sivokon's message of "Sat, 09 May 2015 02:01:15 +0300") List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Oleg Sivokon Cc: emacs-orgmode@gnu.org Oleg Sivokon writes: > Yes, that's `defstruct'. Its ABI changed between 24.5 and 25.0, The > older one had this in the end: > > (push `(setq ,tag-symbol (list ',tag)) forms) > (push `(cl-eval-when (compile load eval) > (put ',name 'cl-struct-slots ',descs) > (put ',name 'cl-struct-type ',(list type (eq named t))) > (put ',name 'cl-struct-include ',include) > (put ',name 'cl-struct-print ,print-auto) > ,@(mapcar (lambda (x) > `(put ',(car x) 'side-effect-free ',(cdr x))) > side-eff)) > forms) > `(progn ,@(nreverse (cons `',name forms))))) > > And the younger one looks like this: > > `(progn > (defvar ,tag-symbol) > ,@(nreverse forms) > ;; Call cl-struct-define during compilation as well, so that > ;; a subsequent cl-defstruct in the same file can correctly include this > ;; struct as a parent. > (eval-and-compile > (cl-struct-define ',name ,docstring ',include-name > ',type ,(eq named t) ',descs ',tag-symbol ',tag > ',print-auto)) > ',name))) Thanks for the info. > So, if I compile Org against the CL library from Emacs 25.0, it's not > backwards compatible with Emacs 24.5. I could put a different compiled > version elsewhere for the older Emacs and will experiment with it. I doubt this is a problem in practice. If you get Org from ELPA, it compiles files with your current Emacs. If you get it from an archive or directly from git repository, you have to compile files yourself anyway. > The reason I thought that compatibility is no longer needed is because > Linux distributions usually package the bytecompiled Emacs Lisp > code. So, if someone was to get a newer version of Org, compiled with > the younger CL, that wouldn't work for them either. Using Linux distribution packaging system is not among suggested installation methods in the manual. Regards,