summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/context/documents/general/manuals/luametatex.pdfbin1470739 -> 1505488 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-de.pdfbin845187 -> 845252 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-en.pdfbin848873 -> 848819 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-fr.pdfbin843810 -> 843645 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-it.pdfbin844906 -> 844777 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-mapping-de.pdfbin319172 -> 319137 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-mapping-en.pdfbin316827 -> 316907 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-mapping-fr.pdfbin320303 -> 320375 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-mapping-it.pdfbin318817 -> 318773 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-mapping-nl.pdfbin318196 -> 318217 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-nl.pdfbin840853 -> 840533 bytes
-rw-r--r--doc/context/sources/general/manuals/lowlevel/lowlevel-macros.tex51
-rw-r--r--doc/context/sources/general/manuals/luametatex/luametatex-enhancements.tex32
-rw-r--r--doc/context/sources/general/manuals/luametatex/luametatex.tex8
-rw-r--r--doc/context/sources/general/manuals/ontarget/ontarget.tex1
15 files changed, 91 insertions, 1 deletions
diff --git a/doc/context/documents/general/manuals/luametatex.pdf b/doc/context/documents/general/manuals/luametatex.pdf
index a6c0d6c42..9115f400d 100644
--- a/doc/context/documents/general/manuals/luametatex.pdf
+++ b/doc/context/documents/general/manuals/luametatex.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-de.pdf b/doc/context/documents/general/qrcs/setup-de.pdf
index 376c18b26..8a03859f6 100644
--- a/doc/context/documents/general/qrcs/setup-de.pdf
+++ b/doc/context/documents/general/qrcs/setup-de.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-en.pdf b/doc/context/documents/general/qrcs/setup-en.pdf
index 0a88e801a..989f3e3b8 100644
--- a/doc/context/documents/general/qrcs/setup-en.pdf
+++ b/doc/context/documents/general/qrcs/setup-en.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-fr.pdf b/doc/context/documents/general/qrcs/setup-fr.pdf
index 2789cbecb..19a367c9c 100644
--- a/doc/context/documents/general/qrcs/setup-fr.pdf
+++ b/doc/context/documents/general/qrcs/setup-fr.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-it.pdf b/doc/context/documents/general/qrcs/setup-it.pdf
index 3d249de41..4620bb0ad 100644
--- a/doc/context/documents/general/qrcs/setup-it.pdf
+++ b/doc/context/documents/general/qrcs/setup-it.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-mapping-de.pdf b/doc/context/documents/general/qrcs/setup-mapping-de.pdf
index 8f41b3565..8db14d6cd 100644
--- a/doc/context/documents/general/qrcs/setup-mapping-de.pdf
+++ b/doc/context/documents/general/qrcs/setup-mapping-de.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-mapping-en.pdf b/doc/context/documents/general/qrcs/setup-mapping-en.pdf
index ad70efa10..a200514a5 100644
--- a/doc/context/documents/general/qrcs/setup-mapping-en.pdf
+++ b/doc/context/documents/general/qrcs/setup-mapping-en.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-mapping-fr.pdf b/doc/context/documents/general/qrcs/setup-mapping-fr.pdf
index bc5c4b275..106c0220a 100644
--- a/doc/context/documents/general/qrcs/setup-mapping-fr.pdf
+++ b/doc/context/documents/general/qrcs/setup-mapping-fr.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-mapping-it.pdf b/doc/context/documents/general/qrcs/setup-mapping-it.pdf
index 9807d106c..9279ec27f 100644
--- a/doc/context/documents/general/qrcs/setup-mapping-it.pdf
+++ b/doc/context/documents/general/qrcs/setup-mapping-it.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-mapping-nl.pdf b/doc/context/documents/general/qrcs/setup-mapping-nl.pdf
index 5bb2d68af..ec6e61d10 100644
--- a/doc/context/documents/general/qrcs/setup-mapping-nl.pdf
+++ b/doc/context/documents/general/qrcs/setup-mapping-nl.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-nl.pdf b/doc/context/documents/general/qrcs/setup-nl.pdf
index 2962780a1..618bd1915 100644
--- a/doc/context/documents/general/qrcs/setup-nl.pdf
+++ b/doc/context/documents/general/qrcs/setup-nl.pdf
Binary files differ
diff --git a/doc/context/sources/general/manuals/lowlevel/lowlevel-macros.tex b/doc/context/sources/general/manuals/lowlevel/lowlevel-macros.tex
index 83e43818f..cbb52f25c 100644
--- a/doc/context/sources/general/manuals/lowlevel/lowlevel-macros.tex
+++ b/doc/context/sources/general/manuals/lowlevel/lowlevel-macros.tex
@@ -991,6 +991,57 @@ in turn only needs incrementing a reference counter.
\stopsectionlevel
+\startsectionlevel[title=Passing parameters]
+
+When you define a macro, the \type {#1} and more parameters are embedded as a
+reference to a parameter that is passed. When we have four parameters, the
+parameter stack has four entries and when an entry is eventually accessed a new
+input level is pushed and tokens are fetched from that list. This has some side
+effects when we check a parameter. This can happen multiple times, depending on
+how often we access a parameter. Take the following:
+
+\startbuffer
+\def\oof#1{#1}
+
+\tolerant\def\foo[#1]#*[#2]%
+ {1:\ifparameter#1\or Y\else N\fi\quad
+ 2:\ifparameter#2\or Y\else N\fi\quad
+ \oof{3:\ifparameter #1\or Y\else N\fi\quad
+ 4:\ifparameter #2\or Y\else N\fi\quad}%
+ \par}
+
+\foo \foo[] \foo[][] \foo[A] \foo[A][B]
+\stopbuffer
+
+\typebuffer
+
+This gives:
+
+\startpacked \tttf
+\inlinebuffer
+\stoppacked
+
+as you probably expect. However the first two checks
+are different from the embedded checks because they can check against the
+parameter reference. When we expand \type {\oof} its argument gets passed to the
+macro as a list and when the scanner collects the next token it will then push
+the parameter content on the input stack. So, then, instead of a reference we get
+the referenced parameter list. Internally that means that in 3 and 4 we check for
+a token and not for the length of the list (as in case 1 & 2). This means that
+
+\starttyping
+\iftok{#1}\emptytoks Y\else N\fi
+\ifparameter#1\or Y\else N\fi
+\stoptyping
+
+are different. In the first case we have a proper token list and nested
+conditionals in that list are okay. In the second case we just look ahead to see
+if there is an \type {\or}, \type {\else} or other condition related command and
+if so we decide that there is no parameter. So, if \type {\ifparameter} is a
+suitable check for empty depends on the need for expansion.
+
+\stopsectionlevel
+
\stopdocument
% freezing pitfalls:
diff --git a/doc/context/sources/general/manuals/luametatex/luametatex-enhancements.tex b/doc/context/sources/general/manuals/luametatex/luametatex-enhancements.tex
index ba320440b..0cafa118f 100644
--- a/doc/context/sources/general/manuals/luametatex/luametatex-enhancements.tex
+++ b/doc/context/sources/general/manuals/luametatex/luametatex-enhancements.tex
@@ -2512,6 +2512,38 @@ Unit equivalent to ten Toves or one Edith.
\stopsection
+\startsection[title=Registers]
+
+
+\startsubsection[title={32 bit floats}]
+
+The engine has native float registers which means that we have a similar set of
+primitives as for dimensions and integers: \prm {float}, \prm {floatdef}, \prm
+{floatexpr} and \prm {iffloat}. In the context if an integer a rounded value is
+used, in the context of a dimensions the floating point number is interpreted as
+points. Internally floats are stored as so called posits, which gives more accuracy
+for smaller values.
+
+\stopsubsection
+
+\startsubsection[title={32 bit posits}]
+
+{\em This is a playground. It will stay but might evolve.}
+
+\stopsubsection
+
+\startsubsection[title={Extra features}]
+
+There are \prm {ifabsnum}, \prm {ifabsdim} and \prm {ifabsfloat} that compare
+absolute values of quantities. The primitives \prm{ifzeronum}, \prm{ifzerodim},
+\prm{ifzerofloat} do a fast test for zero. The \prm {ifintervalnum}, \prm
+{ifintervaldim} and \prm {ifintervalfloat} primitives take a delta and two values
+and check if these values overlap within the ranges dedicated by the delta.
+
+\stopsubsection
+
+\stopsection
+
\startsection[title=Expressions]
\startsubsection[title={Rounding and scaling}]
diff --git a/doc/context/sources/general/manuals/luametatex/luametatex.tex b/doc/context/sources/general/manuals/luametatex/luametatex.tex
index a86846628..834b73133 100644
--- a/doc/context/sources/general/manuals/luametatex/luametatex.tex
+++ b/doc/context/sources/general/manuals/luametatex/luametatex.tex
@@ -1,5 +1,7 @@
% language=us runpath=texruns:manuals/luametatex
+% \pushoverloadmode \let\cdef\edef \let\cdefcsname\edefcsname \popoverloadmode
+
% \enabledirectives[backend.pdf.inmemory]
% \setupalign[profile]
@@ -110,7 +112,11 @@
% because the amount of output which is sensitive for refresh delays set. The new
% target is now 50 pages per second for this manual but on this laptop that is
% unlikely to happen any time soon. With tabulateusesize and tabulatesparseskips
-% experiments enabled we needed 8.1 second and 44.3 pps.
+% experiments enabled we needed 8.1 second and 44.3 pps.% 368 pages may/june 2023:
+%
+% no constant definitions : 8.55
+% constant \*!whatever : 8.47
+% also constant \current* : 8.36
% \enableexperiments [tabulateusesize]
% \enableexperiments [tabulatesparseskips]
diff --git a/doc/context/sources/general/manuals/ontarget/ontarget.tex b/doc/context/sources/general/manuals/ontarget/ontarget.tex
index 888a73f41..20512f934 100644
--- a/doc/context/sources/general/manuals/ontarget/ontarget.tex
+++ b/doc/context/sources/general/manuals/ontarget/ontarget.tex
@@ -28,6 +28,7 @@
\component ontarget-registers
\component ontarget-fairphone
% \component ontarget-mathsizes
+ \component ontarget-constants
\stopbodymatter
\stopdocument