[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] Bug: org-babel-ref-parse needs to set current buffer to the buff
From: |
Oleg Sivokon |
Subject: |
Re: [O] 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 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) |
Nicolas Goaziou <address@hidden> 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