4

In http://mirrors.ibiblio.org/CTAN/systems/doc/luatex/luatex.pdf it has table that I'd like to print as I am trying to find the value of the counter dest_names_size used by lulatex as I am getting an error related to small value of this counter.

It says in the above pdf file the following

Almost all of the values in status are fetched through a metatable at run-time whenever they are accessed"

enter image description here

How does one actually print all values shown above? It is on page 194 of the document. I am actually just interested in seeing the value of dest_names_size by lualatex. As I increased it in texmf.cnf but it had no effect, as I am still getting the error that the limit 131072 is reached each time I compile my large document.

\documentclass[12pt]{book}
\usepackage{luacode}

\begin{luacode*}
    function printStatusTable()
     -- what to write here?
  end
\end{luacode*}

\begin{document}  
\directlua{printStatusTable()}
\end{document}

I am asking because I am getting an error compiling using lualatex

TeX capacity exce eded, sorry [number of destination names (dest_names_size)=131072].

Which I have asked about here before, but so far no solution I could find.

2
  • I was having the same problem, but found your guide here and now everything works again. Thank you so much for writing it!
    – Emily
    Commented Feb 15, 2023 at 17:51
  • 1
    @Emily you'r welcome. I wrote these notes since I need to patch lualatex each year when a new version is out, in order to increase the counters and I follow them myself also. Without this, some of my files will not compile as they are very large.
    – Nasser
    Commented Feb 15, 2023 at 19:22

2 Answers 2

4
\documentclass{article}

\begin{document}

\directlua{
for i,k in pairs(status.list())
do
texio.write("\string\n" .. i .. " = " .. tostring(k))
end
texio.write("\string\n")
}
\end{document}

produces a log

pdf_os_objidx = 0
indirect_callbacks = 0
output_active = false
filename = ./cc072.tex
pool_size = 391652
callbacks = 9
max_nest_stack = 0
dyn_used = 312278
pdf_mem_size = 10000
luatex_hashtype = lua
luatex_version = 115
stack_size = 10000
nest_size = 1000
late_callbacks = 0
var_mem_max = 100000
luatex_engine = luahbtex
luatex_hashchars = 6
shell_escape = 2
str_ptr = 2119812
hash_extra = 600000
input_ptr = 1
pool_ptr = 391652
dvi_gone = 686588744
total_pages = 0
max_buf_stack = 121
linenumber = 11
var_used = 309
buf_size = 200000
luastate_bytes = 48646616
direct_callbacks = 10
pdf_dest_names_ptr = 0
pdf_mem_ptr = 1
inputid = 2119368
dest_names_size = 1000
ini_version = false
fix_mem_end = 343245
pdf_gone = 0
max_param_stack = 37
max_strings = 500000
cs_count = 21234
save_size = 200000
lc_ctype = en_US.UTF-8
font_ptr = 15
init_str_ptr = 2119367
lc_numeric = C.UTF-8
function_callbacks = 200
lc_collate = C.UTF-8
param_size = 20000
dvi_ptr = 686588744
luabytecode_bytes = 32
obj_tab_size = 1000
fix_mem_max = 383344
max_save_stack = 50
banner = This is LuaHBTeX, Version 1.15.0 (TeX Live 2022)
luabytecodes = 1
largest_used_mark = 0
init_pool_ptr = 0
safer_option = 0
pdf_os_cntr = 0
kpse_used = 1
fix_mem_min = 0
obj_ptr = 0
log_name = cc072.log
luatex_revision = 0
hash_size = 65536
saved_callbacks = 0
max_in_stack = 33
pdf_ptr = 0
node_mem_usage = 2 hlist, 1 rule, 1 dir, 3 kern, 1 glyph, 3 attribute, 48 glue_s
pec, 3 attribute_list, 1 write
development_id = 7503
8
  • Thanks, This helps. I run the above on my TL 2021 on Linux and it also says dest_names_size = 1000 This is where my confusion comes. Then why does the error message says TeX capacity exceeded, sorry [number of destination names (dest_names_size)=131072] . This means dest_names_size printed by lualatex is not the same as what actually used? Iam still trying to figure how to increase this value as now my PDF got too large and no longer compiles. I asked about this before but the fix given is not working anymore.
    – Nasser
    Commented Mar 10, 2022 at 15:18
  • @Nasser I have no idea if and how one can enlarge this, but imho it would be much better if you would try to reduce the numbers of destinations instead of trying to increase the limits. Commented Mar 10, 2022 at 15:30
  • Ok, but the file is big and number of problems is large,. I put href to each problem. I have no idea how to change the code to reduce the number of destinations other than splitting the pdf file into number of smaller files which for me defeats the whole purpose of making one file that has everything in it in first place to make it easy to use. I have not been able to compile the file for 2 days now because of this problem. There should be a way to increase this limit but no one seems to know how. But thanks for the above.
    – Nasser
    Commented Mar 10, 2022 at 15:38
  • @Nasser don't ask unrelated questions in comments that just messes up the q&a format of the site, if you want to ask a new question, post a new question. Commented Mar 10, 2022 at 15:58
  • 1
    oh if you already asked and link to that question we could suggest things there. but 131072 is 2^{17} do you really have that many problems that you link to? Commented Mar 10, 2022 at 16:05
4

About

I am actually just interested in seeing the value of dest_names_size by lualatex. As I increased it in texmf.cnf but it had no effect, as I am still getting the error that the limit 131072 is reached each time I compile my large document.

This is really unrelated to the question how to print the values.

LuaTeX manages memory dynamically and dest_names_size only describes for how many destinations you currently have memory reserved. If you fill this up, LuaTeX will automatically grow this buffer and therefore dest_names_size. Therefore it doesn't make sense to read the initial value from a configuration file, after all it shouldn't have any effect. This continues until it reaches the internal sup_dest_names_size value 131072. To protect against infinite memory usage this stops LuaTeX from ever increasing dest_names_size over this value.

You can't change sup_dest_names_size without recompiling LuaTeX.

0

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .