If I understood correct this was changed in 1.09.2 version
-const char *luatex_version_string = “1.09.2”;
+const char *luatex_version_string = “1.09.0";
In file lnodelib.c function get_write_direct_value started to expand
tokens:
-#define get_write_direct_value(L,n) do { \
+#define xget_write_direct_value(L,n) do { \
tokenlist_to_lua(L, write_tokens(n)); \
} while (0)
+#define get_write_direct_value(L,n) do { \
+ int l; \
+ char *s; \
+ expand_macros_in_tokenlist(n); \
+ s = tokenlist_to_cstring(def_ref, 1, &l); \
+ lua_pushlstring(L, s, (size_t) l); \
+ free(s); \
+ flush_list(def_ref); \
+} while (0)
+
Source https://github.com/TeX-Live/texlive-source.git
What was the reason for this change I have no idea. We have reverted
back this change in our compiled luatex
because constantly playing with nodes reading we get issues with
the "write" node.
On 5/27/2025 1:02 PM, Hans Hagen wrote:
On
5/27/2025 7:23 AM, Linas Stonys wrote:
I think it is a bug. Luatex tries to
expand data field content like with \edef thats why you get
\iffalse.
With older texlive (v0.76) the same example prints:
we now have luatex 1.12 so that is indeed old ... way too old to
bother about here