Nicolas Goaziou writes: > Not exactly. With this version, symbols generated with gensym are never > used, and the macro isn't hygienic anymore.
Yeah, I missed out on some commas along the way and it probably needs double quoting (which I was trying to avoid). The first version interns the gensymed symbols at compile time, the later one should have done it each time the code was called. > I still think your first take about this macro was the good one. I've > pushed something very similar. Could you verify if it is correct on the > compiling side? Yes, the compile error is easy to fix. Both versions could do the correct thing, the later one was just trying to be more conservative. Looking superficially at the generated bytecode I think the current version should be correct. >> The org-export-define-derived-backend macro seems similarly starstruck, >> but I really don't know what you think the expansion should be. > > Something along the lines of: > > #+begin_src emacs-lisp > (progn > (defconst org-e-beamer-options-alist '(...) > "Alist between filters keywords and back-end specific filters. > See `org-export-filters-alist' for more information.") > (defvar org-e-beamer-translate-alist '(...) > "Alist between element or object types and translators.")) > #+end_src > >> One of your recent changes introduced four test fail when org-element is >> compiled. I haven't yet looked why that would be, the four tests are: >> >> FAILED test-org-export/table-cell-alignment >> FAILED test-org-export/table-cell-borders >> FAILED test-org-export/table-row-ends-header-p >> FAILED test-org-export/table-row-starts-header-p > > Could you paste the error reported by ERT? I can't think of any recent > change in this area. There's only a backtrace that doesn't make much sense to me: --8<---------------cut here---------------start------------->8--- Test test-org-export/table-row-starts-header-p backtrace: signal(ert-test-failed (((should (equal (quote (yes no no no)) (org- ert-fail(((should (equal (quote (yes no no no)) (org-element-map tre (if (unwind-protect (setq value-3951 (apply fn-3949 args-3950)) (set (unless (unwind-protect (setq value-3951 (apply fn-3949 args-3950)) (let (form-description-3953) (unless (unwind-protect (setq value-395 (let ((value-3951 (quote ert-form-evaluation-aborted-3952))) (let (f (let ((fn-3949 (function equal)) (args-3950 (list (quote (yes no no (should (equal (quote (yes no no no)) (org-element-map tree (quote t (let* ((tree (org-element-parse-buffer)) (info (org-export-collect-t (prog1 (let* ((tree (org-element-parse-buffer)) (info (org-export-co (progn (org-mode) (progn (insert "\n| a |\n| b |\n|---|\n| c |") (go (unwind-protect (progn (org-mode) (progn (insert "\n| a |\n| b |\n|- (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (with-current-buffer temp-buffer (unwind-protect (progn (org-mode) ( (let ((temp-buffer (generate-new-buffer " *temp*"))) (with-current-b (with-temp-buffer (org-mode) (progn (insert "\n| a |\n| b |\n|---|\n (org-test-with-temp-text "\n| a |\n| b |\n|---|\n| c |" (let* ((tree (org-test-with-parsed-data "\n| a |\n| b |\n|---|\n| c |" (should (e (lambda nil (org-test-with-parsed-data "\n| a |\n| b |\n|---|\n| c | byte-code("\306\307!▒q\210\310\216\311 \312\216\313\314\315\316\3 ert--run-test-internal([cl-struct-ert--test-execution-info [cl-struc byte-code("\306\307!\211▒r\310\311!q\210\312 d\313\223)L\210\314\216 ert-run-test([cl-struct-ert-test test-org-export/table-row-starts-he ert-run-or-rerun-test([cl-struct-ert--stats "\\(org\\|ob\\)" [[cl-st ert-run-tests("\\(org\\|ob\\)" #[(event-type &rest event-args) \30 ert-run-tests-batch("\\(org\\|ob\\)") ert-run-tests-batch-and-exit("\\(org\\|ob\\)") (let ((org-id-track-globally t) (org-id-locations-file (convert-stan org-test-run-batch-tests() call-interactively(org-test-run-batch-tests nil nil) command-execute(org-test-run-batch-tests) command-line-1(("--eval" "(add-to-list 'load-path \"./lisp\")" "--ev command-line() normal-top-level() Test test-org-export/table-row-starts-header-p condition: (ert-test-failed ((should (equal '... (org-element-map tree ... ... info))) :form (equal (yes no no no) (yes yes no no)) :value nil :explanation (list-elt 1 (different-atoms no yes)))) --8<---------------cut here---------------end--------------->8--- >> The new org-e-beamer.el doesn't compile at all: >> org-e-beamer.el:258:1:Error: Wrong type argument: listp, >> org-e-beamer-export-block > > It should be fixed. Thanks, that works correctly now. Regards, Achim. -- +<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+ Factory and User Sound Singles for Waldorf Q+, Q and microQ: http://Synth.Stromeko.net/Downloads.html#WaldorfSounds