From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleg Sivokon 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 02:01:15 +0300 Message-ID: <87k2wi3c90.fsf@gmail.com> 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> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:56974) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YqrIA-0008EK-K7 for emacs-orgmode@gnu.org; Fri, 08 May 2015 19:02:51 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YqrI6-0007so-J4 for emacs-orgmode@gnu.org; Fri, 08 May 2015 19:02:50 -0400 Received: from mail-wi0-x235.google.com ([2a00:1450:400c:c05::235]:36420) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YqrI6-0007nR-C9 for emacs-orgmode@gnu.org; Fri, 08 May 2015 19:02:46 -0400 Received: by wizk4 with SMTP id k4so45916243wiz.1 for ; Fri, 08 May 2015 16:02:45 -0700 (PDT) In-Reply-To: <87r3qqyb5x.fsf@nicolasgoaziou.fr> (Nicolas Goaziou's message of "Sat, 09 May 2015 00:08:58 +0200") 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: Nicolas Goaziou Cc: emacs-orgmode@gnu.org Nicolas Goaziou writes: Hello, Nicolas. > Do you mean `defstruct'? If so, it has been in cl.el for ages. I doubt > this is related to the incompatibility you are experiencing. 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))) 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. 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. Best, Oleg