Re: [PATCH] initialize org-babel-tangle-lang-exts to nil

2024-06-29 Thread Tom Gillespie
> More accurate approach would be using (eval-after-load 'ob-tangle
> ...). This is what is being done in WIP branch that addresses many
> similar problems across Org mode:
> https://git.sr.ht/~yantar92/org-mode/log/feature/refactor-deps-v2
> https://git.sr.ht/~yantar92/org-mode/commit/6bcb99413e18324367fa27f8572955d5a92092ce

Got it. Will keep an eye on this. Thanks!
Tom



Re: [PATCH] initialize org-babel-tangle-lang-exts to nil

2024-06-29 Thread Ihor Radchenko
Tom Gillespie  writes:

>Here is a fix for bad init values for org-babel-tangle-lang-exts.
> Details in the patch commit message.
> ...
> Subject: [PATCH] initialize org-babel-tangle-lang-exts to nil
> ...
> org-bable-tangle-lang-exts should be initialized to nil and not as a
> void variable, if it is not already initialized then this will cause a
> void-variable error immediately when it is used in add-to-list
>
> this corrects the original addition in
> 4a0e5cf88f684db775ccf43dc5edc2e8754a2d92 as well as other files that
> followed the pattern

Thanks for the patch, but it is not a correct way to fix the problem.
`org-babel-tangle-lang-exts' is a custom option defined in
ob-tangle.el. If you define it as a global variable separately, there
will be subtle bugs depending on the order of loading of ob-tangle and
the other files defining the same variable.

Currently, it is expected that babel backends *must* be loaded after
ob-tangle.

More accurate approach would be using (eval-after-load 'ob-tangle
...). This is what is being done in WIP branch that addresses many
similar problems across Org mode:
https://git.sr.ht/~yantar92/org-mode/log/feature/refactor-deps-v2
https://git.sr.ht/~yantar92/org-mode/commit/6bcb99413e18324367fa27f8572955d5a92092ce

Canceled.

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>



[PATCH] initialize org-babel-tangle-lang-exts to nil

2024-06-28 Thread Tom Gillespie
Hi,
   Here is a fix for bad init values for org-babel-tangle-lang-exts.
Details in the patch commit message.
Best,
Tom
From 71558cc80181b5d7a1d720785165b358984284e3 Mon Sep 17 00:00:00 2001
From: Tom Gillespie 
Date: Fri, 28 Jun 2024 14:08:08 -0700
Subject: [PATCH] initialize org-babel-tangle-lang-exts to nil

* lisp/ob-C.el (org-babel-tangle-lang-exts): init to nil
* lisp/ob-awk.el (org-babel-tangle-lang-exts): init to nil
* lisp/ob-clojure.el (org-babel-tangle-lang-exts): init to nil
* lisp/ob-fortran.el (org-babel-tangle-lang-exts): init to nil
* lisp/ob-groovy.el (org-babel-tangle-lang-exts): init to nil
* lisp/ob-haskell.el (org-babel-tangle-lang-exts): init to nil
* lisp/ob-java.el (org-babel-tangle-lang-exts): init to nil
* lisp/ob-latex.el (org-babel-tangle-lang-exts): init to nil
* lisp/ob-lisp.el (org-babel-tangle-lang-exts): init to nil
* lisp/ob-lua.el (org-babel-tangle-lang-exts): init to nil
* lisp/ob-maxima.el (org-babel-tangle-lang-exts): init to nil
* lisp/ob-ocaml.el (org-babel-tangle-lang-exts): init to nil
* lisp/ob-perl.el (org-babel-tangle-lang-exts): init to nil
* lisp/ob-processing.el (org-babel-tangle-lang-exts): init to nil
* lisp/ob-python.el (org-babel-tangle-lang-exts): init to nil
* lisp/ob-ruby.el (org-babel-tangle-lang-exts): init to nil
* lisp/ob-sed.el (org-babel-tangle-lang-exts): init to nil

org-bable-tangle-lang-exts should be initialized to nil and not as a
void variable, if it is not already initialized then this will cause a
void-variable error immediately when it is used in add-to-list

this corrects the original addition in
4a0e5cf88f684db775ccf43dc5edc2e8754a2d92 as well as other files that
followed the pattern
---
 lisp/ob-C.el  | 2 +-
 lisp/ob-awk.el| 2 +-
 lisp/ob-clojure.el| 2 +-
 lisp/ob-fortran.el| 2 +-
 lisp/ob-groovy.el | 2 +-
 lisp/ob-haskell.el| 2 +-
 lisp/ob-java.el   | 2 +-
 lisp/ob-latex.el  | 2 +-
 lisp/ob-lisp.el   | 2 +-
 lisp/ob-lua.el| 2 +-
 lisp/ob-maxima.el | 2 +-
 lisp/ob-ocaml.el  | 2 +-
 lisp/ob-perl.el   | 2 +-
 lisp/ob-processing.el | 2 +-
 lisp/ob-python.el | 2 +-
 lisp/ob-ruby.el   | 2 +-
 lisp/ob-sed.el| 2 +-
 17 files changed, 17 insertions(+), 17 deletions(-)

diff --git a/lisp/ob-C.el b/lisp/ob-C.el
index cecaa60e7..0e5235d62 100644
--- a/lisp/ob-C.el
+++ b/lisp/ob-C.el
@@ -42,7 +42,7 @@
 
 (declare-function org-entry-get "org" (pom property  inherit literal-nil))
 
-(defvar org-babel-tangle-lang-exts)
+(defvar org-babel-tangle-lang-exts nil)
 (add-to-list 'org-babel-tangle-lang-exts '("C++" . "cpp"))
 (add-to-list 'org-babel-tangle-lang-exts '("D" . "d"))
 
diff --git a/lisp/ob-awk.el b/lisp/ob-awk.el
index 0c07aec82..203fd0041 100644
--- a/lisp/ob-awk.el
+++ b/lisp/ob-awk.el
@@ -42,7 +42,7 @@
 (declare-function org-babel-ref-resolve "ob-ref" (ref))
 (declare-function orgtbl-to-generic "org-table" (table params))
 
-(defvar org-babel-tangle-lang-exts)
+(defvar org-babel-tangle-lang-exts nil)
 (add-to-list 'org-babel-tangle-lang-exts '("awk" . "awk"))
 
 (defvar org-babel-awk-command "awk"
diff --git a/lisp/ob-clojure.el b/lisp/ob-clojure.el
index c7e95..f760bf698 100644
--- a/lisp/ob-clojure.el
+++ b/lisp/ob-clojure.el
@@ -65,7 +65,7 @@
 
 (defvar cider-buffer-ns)
 
-(defvar org-babel-tangle-lang-exts)
+(defvar org-babel-tangle-lang-exts nil)
 (add-to-list 'org-babel-tangle-lang-exts '("clojure" . "clj"))
 (add-to-list 'org-babel-tangle-lang-exts '("clojurescript" . "cljs"))
 
diff --git a/lisp/ob-fortran.el b/lisp/ob-fortran.el
index f2047d767..de654866a 100644
--- a/lisp/ob-fortran.el
+++ b/lisp/ob-fortran.el
@@ -39,7 +39,7 @@
 (declare-function org-entry-get "org"
 		  (pom property  inherit literal-nil))
 
-(defvar org-babel-tangle-lang-exts)
+(defvar org-babel-tangle-lang-exts nil)
 (add-to-list 'org-babel-tangle-lang-exts '("fortran" . "F90"))
 
 (defvar org-babel-default-header-args:fortran '())
diff --git a/lisp/ob-groovy.el b/lisp/ob-groovy.el
index 73b0d33fc..5624fdf0b 100644
--- a/lisp/ob-groovy.el
+++ b/lisp/ob-groovy.el
@@ -37,7 +37,7 @@
 
 (require 'ob)
 
-(defvar org-babel-tangle-lang-exts) ;; Autoloaded
+(defvar org-babel-tangle-lang-exts nil) ;; Autoloaded
 (add-to-list 'org-babel-tangle-lang-exts '("groovy" . "groovy"))
 (defvar org-babel-default-header-args:groovy '())
 (defcustom org-babel-groovy-command "groovy"
diff --git a/lisp/ob-haskell.el b/lisp/ob-haskell.el
index 05f340fa0..74a595914 100644
--- a/lisp/ob-haskell.el
+++ b/lisp/ob-haskell.el
@@ -53,7 +53,7 @@
 		  "ext:inf-haskell" ( reload))
 (declare-function org-entry-get "org" (pom property  inherit literal-nil))
 
-(defvar org-babel-tangle-lang-exts)
+(defvar org-babel-tangle-lang-exts nil)
 (add-to-list 'org-babel-tangle-lang-exts '("