From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rainer M Krug Subject: Re: [BABEL] BUG - error on tangling - disappears when changing the filename Date: Fri, 27 Sep 2013 15:44:01 +0200 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:50983) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VPYL6-0005yv-Rn for emacs-orgmode@gnu.org; Fri, 27 Sep 2013 09:44:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VPYL0-0002rk-Up for emacs-orgmode@gnu.org; Fri, 27 Sep 2013 09:44:12 -0400 Received: from mail-wi0-f170.google.com ([209.85.212.170]:59215) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VPYL0-0002rJ-MB for emacs-orgmode@gnu.org; Fri, 27 Sep 2013 09:44:06 -0400 Received: by mail-wi0-f170.google.com with SMTP id cb5so870520wib.3 for ; Fri, 27 Sep 2013 06:44:05 -0700 (PDT) In-Reply-To: (Rainer M. Krug's message of "Fri, 27 Sep 2013 15:30:21 +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: emacs-orgmode@gnu.org OK - narrowed it down to a post tangle hook which I need for proper debugging of R (jumping to source line in org file and not tangled R file): ,---- | #+begin_src emacs-lisp | (defvar org-babel-tangled-file nil | "If non-nill, current file was tangled with org-babel-tangle") | (put 'org-babel-tangled-file 'safe-local-variable 'booleanp) | | (defun org-babel-mark-file-as-tangled () | (when (string-match "[.]R" (buffer-file-name)) | (add-file-local-variable 'org-babel-tangled-file t) | (add-file-local-variable 'buffer-read-only t) | (add-file-local-variable 'eval: '(auto-revert-mode)) | (basic-save-buffer))) | | (add-hook 'org-babel-post-tangle-hook 'org-babel-mark-file-as-tangled) | #+end_src `---- The question is now why is this function org-babel-mark-file-as-tangled receives NULL as a buffer-file-name? I can't remove the "when" as I am also tangling some files which do not have any comment characters (DESCRIPTION file in R packages). Any suggestions welcome, Rainer Rainer M Krug writes: > Forgot: tried with 8.2 stable release and with version from git - both > the same. > > Rainer M Krug writes: > >> Hi >> >> I have a strange error when tangling. >> >> I have a large org file with several code blocks tangling in about >> 20 R files and one bash file. Usually tangling works perfectly, but >> sometimes one code block does not tangle a code block to a file. These >> are different blocks. When I change the name of the fiole to be tangled >> to, it works again. After d=some time, I can rename it again and it >> works again. >> >> The last time it happened, I was debugging the function. But even when >> deleting all the content of the code block, the problem persists. >> >> This persists over restarts of org. >> >> The code block looks as follow: >> >> ,---- >> | *** dispProb2D (./R/dispProd2D.R) >> | :PROPERTIES: >> | :tangle: ./R/dispProd2D.R >> | :comments: yes >> | :no-expand: TRUE >> | :END: >> | #+begin_src R >> | cat(5) >> | #+end_src >> `---- >> >> In the original version, there is obviously code in it, but the error >> occurs even in the empty block. I just renamed the block, and it is >> working again. >> >> Any idea what is causing this? >> >> Please find the backtrace below. >> >> Cheers, >> >> Rainer >> >> ,---- >> | ebugger entered--Lisp error: (wrong-type-argument stringp nil) >> | set-buffer(nil) >> | (save-current-buffer (set-buffer (get-file-buffer file)) (revert-buffer t t t)) >> | org-babel-find-file-noselect-refresh("./R/dispProd2D.R") >> | (let* ((temp-path file) (visited-p (get-file-buffer temp-path)) >> | temp-result temp-file) (org-babel-find-file-noselect-refresh >> | temp-path) (setq temp-file (get-file-buffer temp-path)) >> | (save-current-buffer (set-buffer temp-file) (setq temp-result (progn >> | (run-hooks (quote org-babel-post-tangle-hook))))) (if visited-p nil >> | (kill-buffer temp-file)) temp-result) >> | (lambda (file) (let* ((temp-path file) (visited-p (get-file-buffer >> | temp-path)) temp-result temp-file) >> | (org-babel-find-file-noselect-refresh temp-path) (setq temp-file >> | (get-file-buffer temp-path)) (save-current-buffer (set-buffer >> | temp-file) (setq temp-result (progn (run-hooks (quote >> | org-babel-post-tangle-hook))))) (if visited-p nil (kill-buffer >> | temp-file)) temp-result))("./R/dispProd2D.R") >> | mapc((lambda (file) (let* ((temp-path file) (visited-p >> | (get-file-buffer temp-path)) temp-result temp-file) >> | (org-babel-find-file-noselect-refresh temp-path) (setq temp-file >> | (get-file-buffer temp-path)) (save-current-buffer (set-buffer >> | temp-file) (setq temp-result (progn (run-hooks (quote >> | org-babel-post-tangle-hook))))) (if visited-p nil (kill-buffer >> | temp-file)) temp-result)) ("postTangleScript.sh" "./.gitignore" >> | "./DESCRIPTION" "./.Rbuildignore" "./R/parmsFire.R" >> | "./R/parmsPinus.R" "./R/parmsAcacia.R" "./R/parmsRubus.R" >> | "./R/parmsBudget.R" "./R/parameter.R" "./R/endYear.R" >> | "./R/germEst.R" "./R/seedDispersal.R" "./R/seedProduction.R" >> | "./R/fireAliens.R" "./R/clearAliens.R" "./R/prioritisation.R" >> | "./R/beginYear.R" "./R/main.R" "./R/cumulativeDc.R" >> | "./R/dcToIndLayer.R" "./R/competition.R" "./R/dispProd2D.R" >> | "./R/initfun.R" "./R/newInDrak.R" "./R/resetOptions.R" "./R/stats.R" >> | "./R/layerIO.R" "./R/layerNames.R" "./R/onLoad.R" "./NAMESPACE" >> | "./R/package.R")) >> | (progn (mapc (function (lambda (file) (let* ((temp-path file) >> | (visited-p (get-file-buffer temp-path)) temp-result temp-file) >> | (org-babel-find-file-noselect-refresh temp-path) (setq temp-file >> | (get-file-buffer temp-path)) (save-current-buffer (set-buffer >> | temp-file) (setq temp-result (progn ...))) (if visited-p nil >> | (kill-buffer temp-file)) temp-result))) (mapcar (function car) >> | path-collector))) >> | (if org-babel-post-tangle-hook (progn (mapc (function (lambda >> | (file) (let* ((temp-path file) (visited-p ...) temp-result >> | temp-file) (org-babel-find-file-noselect-refresh temp-path) (setq >> | temp-file (get-file-buffer temp-path)) (save-current-buffer >> | (set-buffer temp-file) (setq temp-result ...)) (if visited-p nil >> | (kill-buffer temp-file)) temp-result))) (mapcar (function car) >> | path-collector)))) >> | (let ((block-counter 0) (org-babel-default-header-args (if >> | target-file (org-babel-merge-params org-babel-default-header-args >> | (list (cons :tangle target-file))) org-babel-default-header-args)) >> | (tangle-file (if (equal arg (quote (16))) (progn (or (cdr (assoc >> | :tangle ...)) (user-error "Point is not in a source code block"))))) >> | path-collector) (mapc (function (lambda (by-lang) (let* ((lang (car >> | by-lang)) (specs (cdr by-lang)) (ext (or ... lang)) (lang-f (intern >> | ...)) she-banged) (mapc (function (lambda ... ...)) specs)))) (if >> | (equal arg (quote (4))) (org-babel-tangle-single-block 1 t) >> | (org-babel-tangle-collect-blocks lang tangle-file))) (message >> | "Tangled %d code block%s from %s" block-counter (if (= block-counter >> | 1) "" "s") (file-name-nondirectory (buffer-file-name (or >> | (buffer-base-buffer) (current-buffer))))) (if >> | org-babel-post-tangle-hook (progn (mapc (function (lambda (file) >> | (let* (... ... temp-result temp-file) >> | (org-babel-find-file-noselect-refresh temp-path) (setq temp-file >> | ...) (save-current-buffer ... ...) (if visited-p nil ...) >> | temp-result))) (mapcar (function car) path-collector)))) (mapc >> | (function (lambda (pair) (if (cdr pair) (progn (set-file-modes (car >> | pair) (cdr pair)))))) path-collector) (mapcar (function car) >> | path-collector)) >> | (save-excursion (let ((block-counter 0) >> | (org-babel-default-header-args (if target-file >> | (org-babel-merge-params org-babel-default-header-args (list (cons >> | :tangle target-file))) org-babel-default-header-args)) (tangle-file >> | (if (equal arg (quote (16))) (progn (or (cdr ...) (user-error "Point >> | is not in a source code block"))))) path-collector) (mapc (function >> | (lambda (by-lang) (let* ((lang ...) (specs ...) (ext ...) (lang-f >> | ...) she-banged) (mapc (function ...) specs)))) (if (equal arg >> | (quote (4))) (org-babel-tangle-single-block 1 t) >> | (org-babel-tangle-collect-blocks lang tangle-file))) (message >> | "Tangled %d code block%s from %s" block-counter (if (= block-counter >> | 1) "" "s") (file-name-nondirectory (buffer-file-name (or >> | (buffer-base-buffer) (current-buffer))))) (if >> | org-babel-post-tangle-hook (progn (mapc (function (lambda (file) >> | (let* ... ... ... ... ... temp-result))) (mapcar (function car) >> | path-collector)))) (mapc (function (lambda (pair) (if (cdr pair) >> | (progn (set-file-modes ... ...))))) path-collector) (mapcar >> | (function car) path-collector))) >> | (save-restriction (if (equal arg (quote (4))) (progn (let ((head >> | (org-babel-where-is-src-block-head))) (if head (goto-char head) >> | (user-error "Point is not in a source code block"))))) >> | (save-excursion (let ((block-counter 0) >> | (org-babel-default-header-args (if target-file >> | (org-babel-merge-params org-babel-default-header-args (list ...)) >> | org-babel-default-header-args)) (tangle-file (if (equal arg (quote >> | ...)) (progn (or ... ...)))) path-collector) (mapc (function (lambda >> | (by-lang) (let* (... ... ... ... she-banged) (mapc ... specs)))) (if >> | (equal arg (quote (4))) (org-babel-tangle-single-block 1 t) >> | (org-babel-tangle-collect-blocks lang tangle-file))) (message >> | "Tangled %d code block%s from %s" block-counter (if (= block-counter >> | 1) "" "s") (file-name-nondirectory (buffer-file-name (or >> | (buffer-base-buffer) (current-buffer))))) (if >> | org-babel-post-tangle-hook (progn (mapc (function (lambda ... ...)) >> | (mapcar (function car) path-collector)))) (mapc (function (lambda >> | (pair) (if (cdr pair) (progn ...)))) path-collector) (mapcar >> | (function car) path-collector)))) >> | org-babel-tangle(nil) >> | call-interactively(org-babel-tangle nil nil) >> `---- > <#secure method=pgpmime mode=sign> > <#secure method=pgpmime mode=sign> -- Rainer M. Krug email: RMKruggmailcom