* [PATCH -perfbook 1/6] memorder: Fix typo ("`" --> " ")
2026-06-04 10:10 [PATCH -perfbook 0/6] Updates for LaTeX2e <2026-06-01> release Akira Yokosawa
@ 2026-06-04 10:11 ` Akira Yokosawa
2026-06-04 10:14 ` [PATCH -perfbook 2/6] runlatex.sh: "iconv -l" rather than "iconv --list" Akira Yokosawa
` (5 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Akira Yokosawa @ 2026-06-04 10:11 UTC (permalink / raw)
To: Paul E. McKenney; +Cc: perfbook, Akira Yokosawa
Signed-off-by: Akira Yokosawa <akiyks@gmail.com>
---
memorder/memorder.tex | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/memorder/memorder.tex b/memorder/memorder.tex
index 309d3be1..d0775c36 100644
--- a/memorder/memorder.tex
+++ b/memorder/memorder.tex
@@ -5571,7 +5571,7 @@ API to the C++ standard~\cite{DavidGoldblatt2022asymmetricFences}.
It is quite beneficial to verify code in terms of a higher-level primitive
instead of in terms of the low-level memory accesses used in a particular
implementation of that primitive.
-First, this allows code using`those primitives to be
+First, this allows code using those primitives to be
verified against an abstract representation of those primitives,
thus making that code less vulnerable to implementation changes.
Second, partitioning the verification at API boundaries results in
--
2.43.0
^ permalink raw reply related [flat|nested] 8+ messages in thread* [PATCH -perfbook 2/6] runlatex.sh: "iconv -l" rather than "iconv --list"
2026-06-04 10:10 [PATCH -perfbook 0/6] Updates for LaTeX2e <2026-06-01> release Akira Yokosawa
2026-06-04 10:11 ` [PATCH -perfbook 1/6] memorder: Fix typo ("`" --> " ") Akira Yokosawa
@ 2026-06-04 10:14 ` Akira Yokosawa
2026-06-04 10:15 ` [PATCH -perfbook 3/6] precheck-tentative.sh: Allow "v4.4a" style revision of lineno.sty Akira Yokosawa
` (4 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Akira Yokosawa @ 2026-06-04 10:14 UTC (permalink / raw)
To: Paul E. McKenney; +Cc: perfbook, Akira Yokosawa
"--list" option may not be recognized by non-GNU "iconv".
Use "-l", which should be portable (POSIX).
Signed-off-by: Akira Yokosawa <akiyks@gmail.com>
Fixes: 6e2558c71bb6 ("Cope with iconv without ISO~8859-1 support")
---
utilities/runfirstlatex.sh | 2 +-
utilities/runlatex.sh | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/utilities/runfirstlatex.sh b/utilities/runfirstlatex.sh
index 269a3b62..6e477184 100644
--- a/utilities/runfirstlatex.sh
+++ b/utilities/runfirstlatex.sh
@@ -70,7 +70,7 @@ basename=`echo $1 | sed -e 's/\.tex$//'`
: ${LATEX:=pdflatex}
: ${WARNEXIT:=1}
-if iconv --list | grep -q -i iso-8859-1
+if iconv -l | grep -q -i iso-8859-1
then
ICONV="iconv -f ISO-8859-1 -t UTF-8"
else
diff --git a/utilities/runlatex.sh b/utilities/runlatex.sh
index 50aec2f9..9a060897 100644
--- a/utilities/runlatex.sh
+++ b/utilities/runlatex.sh
@@ -34,7 +34,7 @@
WARN_REMAIN=0
-if iconv --list | grep -q -i iso-8859-1
+if iconv -l | grep -q -i iso-8859-1
then
ICONV="iconv -f ISO-8859-1 -t UTF-8"
else
--
2.43.0
^ permalink raw reply related [flat|nested] 8+ messages in thread* [PATCH -perfbook 3/6] precheck-tentative.sh: Allow "v4.4a" style revision of lineno.sty
2026-06-04 10:10 [PATCH -perfbook 0/6] Updates for LaTeX2e <2026-06-01> release Akira Yokosawa
2026-06-04 10:11 ` [PATCH -perfbook 1/6] memorder: Fix typo ("`" --> " ") Akira Yokosawa
2026-06-04 10:14 ` [PATCH -perfbook 2/6] runlatex.sh: "iconv -l" rather than "iconv --list" Akira Yokosawa
@ 2026-06-04 10:15 ` Akira Yokosawa
2026-06-04 10:17 ` [PATCH -perfbook 4/6] Get rid of "arydshln" Akira Yokosawa
` (3 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Akira Yokosawa @ 2026-06-04 10:15 UTC (permalink / raw)
To: Paul E. McKenney; +Cc: perfbook, Akira Yokosawa
Early pre-releases of lineno.sty used "v4.33b" and v4.4b", and
hotfix releases used "v4.4a", "v4.31a", and so on.
Cope with such form of revisions.
"sort -V" has no idea of exact ordering of those minor releases,
but it should be good enough for testing ">= v5.7".
Signed-off-by: Akira Yokosawa <akiyks@gmail.com>
Fixes: c9ef5ee4f94a ("precheck-tentative.sh: Detect premature versions of "lineno" and "microtype"")
---
utilities/precheck-tentative.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/utilities/precheck-tentative.sh b/utilities/precheck-tentative.sh
index 1e106877..9c35c0aa 100755
--- a/utilities/precheck-tentative.sh
+++ b/utilities/precheck-tentative.sh
@@ -19,7 +19,7 @@ if [ "$KPSEWHICH" != "" ] ; then
lineno_sty=`kpsewhich lineno.sty`
lineno_ver=`grep -F '\def\fileversion' $lineno_sty | \
- sed -E -e 's/.*\{(v[0-9\.]+)\}.*$/\1/'`
+ sed -E -e 's/.*\{(v[0-9a-z\.]+)\}.*$/\1/'`
LINENO_AT_LEAST=v5.7
linenosince=`env printf "$LINENO_AT_LEAST\n$lineno_ver" | sort -V | head -n 1`
--
2.43.0
^ permalink raw reply related [flat|nested] 8+ messages in thread* [PATCH -perfbook 4/6] Get rid of "arydshln"
2026-06-04 10:10 [PATCH -perfbook 0/6] Updates for LaTeX2e <2026-06-01> release Akira Yokosawa
` (2 preceding siblings ...)
2026-06-04 10:15 ` [PATCH -perfbook 3/6] precheck-tentative.sh: Allow "v4.4a" style revision of lineno.sty Akira Yokosawa
@ 2026-06-04 10:17 ` Akira Yokosawa
2026-06-04 10:24 ` [PATCH -perfbook 5/6] Stop using "cleveref" with LaTeX2e <2024-11-01> and later Akira Yokosawa
` (2 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Akira Yokosawa @ 2026-06-04 10:17 UTC (permalink / raw)
To: Paul E. McKenney; +Cc: perfbook, Akira Yokosawa
Loading both "arydshln" and "tabularx" has started causing fatal
errors since the release of LaTeX2e <2026-06-01>.
arydshln wants to modify some of essential commands defined in
tabular related packages in a dangerous way, which conflicts with
recent changes in LaTeX2e and those packages.
As arydshln hasn't seen any updates since February 2019, and
perfbook has *only* one table with dashed rules under datastruct/
(with a couple of examples in style guide ignored), getting rid
of arydshln should be the way forward.
While at it, remove most of example tables in style guide.
They are not relevant anymore as their counterparts in the main
matter have had retouches themselves.
Signed-off-by: Akira Yokosawa <akiyks@gmail.com>
---
appendix/styleguide/styleguide.tex | 355 +----------------------------
datastruct/datastruct.tex | 19 +-
perfbook-lt.tex | 1 -
3 files changed, 10 insertions(+), 365 deletions(-)
diff --git a/appendix/styleguide/styleguide.tex b/appendix/styleguide/styleguide.tex
index 2f2c9057..38a63937 100644
--- a/appendix/styleguide/styleguide.tex
+++ b/appendix/styleguide/styleguide.tex
@@ -1180,12 +1180,7 @@ used sparingly, especially in tables of simple structure.
(corresponding to a table from a now-deleted section)
is drawn by using the features of ``booktabs'' and ``xcolor'' packages.
Note that ruled lines of booktabs can not be mixed with
-vertical lines in a table.\footnote{
- There is another package named ``arydshln'' which provides dashed lines
- to be used in tables.
- A couple of experimental examples are presented in
- \cref{sec:app:styleguide:Table Layout Experiment}.
-}
+vertical lines in a table.
\begin{table}
\rowcolors{1}{}{lightgray}
@@ -1397,7 +1392,7 @@ from the actual number.
\label{sec:app:styleguide:Table Layout Experiment}
This section presents some experimental tables
-using booktabs, xcolors, and arydshln packages.
+using ``booktabs'' and ``xcolors'' packages.
The corresponding tables in the text have been converted using one of
the format shown here.
The source of this section can be regarded as a reference to be
@@ -1495,352 +1490,6 @@ since they are redundant there.
\label{tab:app:styleguide:Synchronization and Reference Counting}
\end{table}
-\Cref{tab:app:styleguide:Cache Coherence Example}
-(corresponding to
-\cref{tab:app:whymb:Cache Coherence Example})
-is a sequence diagram drawn as a table.
-
-\begin{table*}
-\small
-\centering
-\renewcommand*{\arraystretch}{1.2}
-\rowcolors{6}{}{lightgray}
-% "6" is chosen due to disturbance of row count by cmidrule.
-% The command definition is:
-% \rowcolors{<row>}{<odd-row color>}{<even-row color>}
-% Here, <row> specifies the row count where the coloring start.
-% In this table, the "Seq = 0" row is the 3rd row, so a "3" would
-% be a right choice.
-% However, because of the \cmidrule{} commands used in the heading,
-% internal row count of the "Seq = 0" row becomes "6".
-% This is why the 3rd row has the background color of <even-row color>.
-%
-% \cline of plain LaTeX also interfares the row count.
-\ebresizewidth{
-\begin{tabular}{rclcccccc}
- \toprule
- & & & \multicolumn{4}{c}{CPU Cache} & \multicolumn{2}{c}{Memory} \\
- \cmidrule(lr){4-7} \cmidrule(l){8-9}
- Sequence \# & CPU \# & Operation & 0 & 1 & 2 & 3 & 0 & 8 \\
- \cmidrule(r){1-3} \cmidrule(lr){4-7} \cmidrule(l){8-9}
-% Seq CPU Operation ------------- CPU ------------- - Memory -
-% 0 1 2 3 0 8
- 0 & & Initial State & $-$/I & $-$/I & $-$/I & $-$/I & V & V \\
- 1 & 0 & Load 0 (cache value miss)
- & 0/S & $-$/I & $-$/I & $-$/I & V & V \\
- 2 & 2 & Load 0 (cache value miss)
- & 0/S & $-$/I & 0/S & $-$/I & V & V \\
- 3.1 & 0 & Load 8 (collision, invalidation)
- & $-$/I & $-$/I & 0/S & $-$/I & V & V \\
- 3.2 & 0 & Load 8 (cache value miss)
- & 8/S & $-$/I & 0/S & $-$/I & V & V \\
- 4 & 3 & Load 0 (cache value miss)
- & 8/S & $-$/I & 0/S & 0/S & V & V \\
- 5.1 & 3 & CAS 0 (cache value hit)
- & 8/S & $-$/I & 0/S & 0/S & V & V \\
- 5.2 & 3 & CAS 0 (cache permission miss)
- & 8/S & $-$/I & $-$/I & 0/E & V & V \\
- 5.3 & 3 & CAS 0 & 8/S & $-$/I & $-$/I & 0/M & I & V \\
- 6.1 & 1 & Store 8 (cache value miss)
- & $-$/I & 8/E & $-$/I & 0/M & I & V \\
- 6.2 & 1 & Store 8 & $-$/I & 8/M & $-$/I & 0/M & I & I \\
- 7 & 3 & CAS 0 & $-$/I & 8/M & $-$/I & 0/M & I & I \\
- 8.1 & 1 & Load 0 (collision, flush)
- & $-$/I & $-$/I & $-$/I & 0/M & I & V \\
- 8.2 & 1 & Load 0 (cache value miss)
- & $-$/I & 0/S & $-$/I & 0/S & I & V \\
- 9 & 3 & Load 0 (cache value hit)
- & $-$/I & 0/S & $-$/I & 0/S & I & V \\
- \bottomrule
-\end{tabular}
-}
-\caption{Cache Coherence Example}
-\label{tab:app:styleguide:Cache Coherence Example}
-\end{table*}
-
-\Cref{tab:app:styleguide:RCU Publish-Subscribe and Version Maintenance APIs}
-is a tweaked version of
-\cref{tab:defer:RCU Publish-Subscribe and Version Maintenance APIs}.
-Here, the ``Category'' column in the original is removed
-and the categories are indicated in rows of bold-face font
-just below the mid-rules.
-This change makes it easier for \verb|\rowcolors{}| command of
-``xcolor'' package to work properly.
-
-\Cref{tab:app:styleguide:RCU Publish-Subscribe and Version Maintenance APIs (colortbl)}
-is another version which keeps original columns and colors rows only where
-a category has multiple rows.
-This is done by combining \verb|\rowcolors{}| of ``xcolor'' and
-\verb|\cellcolor{}| commands of the ``colortbl'' package
-(\verb|\cellcolor{}| overrides \verb|\rowcolors{}|).
-
-In
-\cref{tab:defer:RCU Publish-Subscribe and Version Maintenance APIs},
-the latter layout without partial row coloring has been
-chosen for simplicity.
-
-\begin{table*}
-\rowcolors{2}{}{blue!15}
-\renewcommand*{\arraystretch}{1.1}
-\footnotesize
-\centering
-\ebresizewidth{
-\begin{tabular}{lll}
-\toprule
- Primitives &
- Availability &
- Overhead \\
-\midrule
- \multicolumn{3}{l}{\bfseries List traversal} \\
- \tco{list_for_each_entry_rcu()} &
- 2.5.59 &
- Simple instructions (memory barrier on Alpha) \\
-\midrule
- \multicolumn{3}{l}{\bfseries List update} \\
- \tco{list_add_rcu()} &
- 2.5.44 &
- Memory barrier \\
- \rowcolor{lightgray}\tco{list_add_tail_rcu()} &
- 2.5.44 &
- Memory barrier \\
- \tco{list_del_rcu()} &
- 2.5.44 &
- Simple instructions \\
- \rowcolor{lightgray}\tco{list_replace_rcu()} &
- 2.6.9 &
- Memory barrier \\
- \tco{list_splice_init_rcu()} &
- 2.6.21 &
- Grace-period latency \\
-\midrule
- \multicolumn{3}{l}{\bfseries Hlist traversal} \\
- \tco{hlist_for_each_entry_rcu()} &
- 2.6.8 &
- Simple instructions (memory barrier on Alpha) \\
-\midrule
- \multicolumn{3}{l}{\bfseries Hlist update} \\
- \tco{hlist_add_after_rcu()} &
- 2.6.14 &
- Memory barrier \\
- \rowcolor{lightgray}\tco{hlist_add_before_rcu()} &
- 2.6.14 &
- Memory barrier \\
- \tco{hlist_add_head_rcu()} &
- 2.5.64 &
- Memory barrier \\
- \rowcolor{lightgray}\tco{hlist_del_rcu()} &
- 2.5.64 &
- Simple instructions \\
- \tco{hlist_replace_rcu()} &
- 2.6.15 &
- Memory barrier \\
-\midrule
- \multicolumn{3}{l}{\bfseries Pointer traversal} \\
- \tco{rcu_dereference()} &
- 2.6.9 &
- Simple instructions (memory barrier on Alpha) \\
-\midrule
- \multicolumn{3}{l}{\bfseries Pointer update} \\
- \tco{rcu_assign_pointer()} &
- 2.6.10 &
- Memory barrier \\
-\bottomrule
-\end{tabular}
-}
-\caption{RCU Publish-Subscribe and Version Maintenance APIs}
-\label{tab:app:styleguide:RCU Publish-Subscribe and Version Maintenance APIs}
-\end{table*}
-
-\begin{table*}
-\renewcommand*{\arraystretch}{1.2}
-\rowcolors{3}{lightgray}{}
-\footnotesize
-\centering
-\ebresizewidth{
-\begin{tabular}{lllp{1.2in}}\toprule
-Category &
- Primitives &
- Availability &
- Overhead \\
-\midrule
-List traversal &
- \tco{list_for_each_entry_rcu()} &
- 2.5.59 &
- Simple instructions (memory barrier on Alpha) \\
-\midrule
-\cellcolor{white}List update &
- \tco{list_add_rcu()} &
- 2.5.44 &
- Memory barrier \\
-&
- \tco{list_add_tail_rcu()} &
- 2.5.44 &
- Memory barrier \\
-\cellcolor{white} &
- \tco{list_del_rcu()} &
- 2.5.44 &
- Simple instructions \\
-&
- \tco{list_replace_rcu()} &
- 2.6.9 &
- Memory barrier \\
-\cellcolor{white} &
- \tco{list_splice_init_rcu()} &
- 2.6.21 &
- Grace-period latency \\
-\midrule
-Hlist traversal &
- \tco{hlist_for_each_entry_rcu()} &
- 2.6.8 &
- Simple instructions (memory barrier on Alpha) \\
-\midrule
-\cellcolor{white}Hlist update &
- \tco{hlist_add_after_rcu()} &
- 2.6.14 &
- Memory barrier \\
-&
- \tco{hlist_add_before_rcu()} &
- 2.6.14 &
- Memory barrier \\
-\cellcolor{white} &
- \tco{hlist_add_head_rcu()} &
- 2.5.64 &
- Memory barrier \\
-&
- \tco{hlist_del_rcu()} &
- 2.5.64 &
- Simple instructions \\
-\cellcolor{white} &
- \tco{hlist_replace_rcu()} &
- 2.6.15 &
- Memory barrier \\
-\midrule\hiderowcolors
-Pointer traversal &
- \tco{rcu_dereference()} &
- 2.6.9 &
- Simple instructions (memory barrier on Alpha) \\
-\midrule
-Pointer update &
- \tco{rcu_assign_pointer()} &
- 2.6.10 &
- Memory barrier \\
-\bottomrule
-\end{tabular}
-}
-\caption{RCU Publish-Subscribe and Version Maintenance APIs}
-\label{tab:app:styleguide:RCU Publish-Subscribe and Version Maintenance APIs (colortbl)}
-\end{table*}
-
-\Cref{tab:app:styleguide:Memory Misordering: Store-Buffering Sequence of Events}
-(corresponding to
-\cref{tab:memorder:Memory Misordering: Store-Buffering Sequence of Events})
-is also a sequence diagram drawn as a tabular object.
-
-\begin{table*}
-\rowcolors{6}{}{lightgray}
-\renewcommand*{\arraystretch}{1.1}
-\small
-\centering\OneColumnHSpace{-0.1in}
-\ebresizewidth{
-\begin{tabular}{rllllll}
- \toprule
- & \multicolumn{3}{c}{CPU 0} & \multicolumn{3}{c}{CPU 1} \\
- \cmidrule(l){2-4} \cmidrule(l){5-7}
- & Instruction & Store Buffer & Cache &
- Instruction & Store Buffer & Cache \\
- \cmidrule{1-1} \cmidrule(l){2-4} \cmidrule(l){5-7}
- 1 & (Initial state) & & \tco{x1==0} &
- (Initial state) & & \tco{x0==0} \\
- 2 & \tco{x0 = 2;} & \tco{x0==2} & \tco{x1==0} &
- \tco{x1 = 2;} & \tco{x1==2} & \tco{x0==0} \\
- 3 & \tco{r2 = x1;} (0) & \tco{x0==2} & \tco{x1==0} &
- \tco{r2 = x0;} (0) & \tco{x1==2} & \tco{x0==0} \\
- 4 & (Read-invalidate) & \tco{x0==2} & \tco{x0==0} &
- (Read-invalidate) & \tco{x1==2} & \tco{x1==0} \\
- 5 & (Finish store) & & \tco{x0==2} &
- (Finish store) & & \tco{x1==2} \\
- \bottomrule
-\end{tabular}
-}
-\caption{Memory Misordering: Store-Buffering Sequence of Events}
-\label{tab:app:styleguide:Memory Misordering: Store-Buffering Sequence of Events}
-\end{table*}
-
-\Cref{tab:app:styleguide:Refrigeration Power Consumption (arydshln)}
-shows another version of
-\cref{tab:app:styleguide:Refrigeration Power Consumption}
-with dashed horizontal and vertical rules of the arydshln package.
-
-\setlength\dashlinedash{.5pt}
-\setlength\dashlinegap{1pt}
-
-\begin{table}
-\renewcommand*{\arraystretch}{1.2}\centering\small
-\begin{tabular}{l:r:r:r}\toprule
-Situation
- & $T$ (K)
- & $\CPf$ & \parbox[b]{.75in}{\raggedleft Power per watt\par waste heat (W)} \\
-\hline
-Dry Ice
- & $195$
- & $1.990$
- & 0.5 \\ \hdashline
-Liquid N$_2$
- & $77$
- & $0.356$
- & 2.8 \\ \hdashline
-Liquid H$_2$
- & $20$
- & $0.073$
- & 13.7 \\ \hdashline
-Liquid He
- & $4$
- & $0.0138$
- & 72.3 \\ \hdashline
-IBM~Q & $0.015$
- & $0.000051$
- & 19,500.0 \\
-\bottomrule
-\end{tabular}
-\caption{Refrigeration Power Consumption}
-\label{tab:app:styleguide:Refrigeration Power Consumption (arydshln)}
-\end{table}
-
-In this case, the vertical dashed rules seems unnecessary.
-The one without the vertical rules is shown in
-\cref{tab:app:styleguide:Refrigeration Power Consumption (arydshln-2)}.
-
-\begin{table}
-\renewcommand*{\arraystretch}{1.2}\centering\small
-\begin{tabular}{lrrr}\toprule
-Situation
- & $T$ (K)
- & $\CPf$ & \parbox[b]{.75in}{\raggedleft Power per watt\par waste heat (W)} \\
-\midrule
-Dry Ice
- & $195$
- & $1.990$
- & 0.5 \\ \hdashline
-Liquid N$_2$
- & $77$
- & $0.356$
- & 2.8 \\ \hdashline
-Liquid H$_2$
- & $20$
- & $0.073$
- & 13.7 \\ \hdashline
-Liquid He
- & $4$
- & $0.0138$
- & 72.3 \\ \hdashline
-IBM~Q & $0.015$
- & $0.000051$
- & 19,500.0 \\
-\bottomrule
-\end{tabular}
-\caption{Refrigeration Power Consumption}
-\label{tab:app:styleguide:Refrigeration Power Consumption (arydshln-2)}
-\end{table}
\IfTblCpTop{}{
\floatstyle{plain}
diff --git a/datastruct/datastruct.tex b/datastruct/datastruct.tex
index 527a269d..fa483d39 100644
--- a/datastruct/datastruct.tex
+++ b/datastruct/datastruct.tex
@@ -450,32 +450,29 @@ the caches, which in turn promotes locality of reference.
The next section therefore examines optimizations that can be carried out in
read-mostly cases where updates are rare, but could happen at any time.
-\setlength\dashlinedash{1pt}
-\setlength\dashlinegap{2pt}
-
\begin{table}
\renewcommand*{\arraystretch}{1.2}
\centering
-\begin{tabular}{r||c:c}
+\begin{tabular}{r||c|c}
& \multicolumn{2}{c}{Hyperthread} \\
\cline{2-3}
Socket & 0 & 1 \\
\hline
\hline
0 & 0--27 & 224--251 \\
- \cdashline{2-3}
+ \cline{2-3}
1 & 28--55 & 252--279 \\
- \cdashline{2-3}
+ \cline{2-3}
2 & 56--83 & 280--307 \\
- \cdashline{2-3}
+ \cline{2-3}
3 & 84--111 & 308--335 \\
- \cdashline{2-3}
+ \cline{2-3}
4 & 112--139 & 336--363 \\
- \cdashline{2-3}
+ \cline{2-3}
5 & 140--167 & 364--391 \\
- \cdashline{2-3}
+ \cline{2-3}
6 & 168--195 & 392--419 \\
- \cdashline{2-3}
+ \cline{2-3}
7 & 196--223 & 420--447 \\
\end{tabular}
\caption{NUMA Topology of System Under Test}
diff --git a/perfbook-lt.tex b/perfbook-lt.tex
index 4eec9b67..9957abef 100644
--- a/perfbook-lt.tex
+++ b/perfbook-lt.tex
@@ -369,7 +369,6 @@
\usepackage{bm} % for bold math mode fonts --- should be after math mode font choice
\usepackage{booktabs}
-\usepackage{arydshln}
\definecolor{lightgray}{gray}{0.9} % for coloring alternate rows in table
\fvset{fontsize=\scriptsize,obeytabs=true}
--
2.43.0
^ permalink raw reply related [flat|nested] 8+ messages in thread* [PATCH -perfbook 5/6] Stop using "cleveref" with LaTeX2e <2024-11-01> and later
2026-06-04 10:10 [PATCH -perfbook 0/6] Updates for LaTeX2e <2026-06-01> release Akira Yokosawa
` (3 preceding siblings ...)
2026-06-04 10:17 ` [PATCH -perfbook 4/6] Get rid of "arydshln" Akira Yokosawa
@ 2026-06-04 10:24 ` Akira Yokosawa
2026-06-04 10:26 ` [PATCH -perfbook 6/6] memorder: Fix use of \cpagerefrange{}{} Akira Yokosawa
2026-06-04 17:28 ` [PATCH -perfbook 0/6] Updates for LaTeX2e <2026-06-01> release Paul E. McKenney
6 siblings, 0 replies; 8+ messages in thread
From: Akira Yokosawa @ 2026-06-04 10:24 UTC (permalink / raw)
To: Paul E. McKenney; +Cc: perfbook, Akira Yokosawa
Since LaTeX2e <2024-11-01> release, "cleveref" has experienced
quite a few behavior changes.
It turns out that it is possible to emulate cleveref's and its
derivative commands we have in the preamble by using "zref-clever".
Quote from zref-clever's documentation [1]:
... And the package’s name makes it clear that the core of the
envisaged feature set is that of cleveref, even though the attempt
was less one of replicating functionality per se than that of
having it as a successful point of reference, from where we could
then try to tap into zref’s potential. Indeed, although there is a
significant intersection, the features of zref-clever are neither
a superset nor a subset of those of cleveref.
So, here is my first attempt of the transition. There can still be
some missing pieces, but the resulting cross-refs look mostly the
same.
As there is no use of fixcleveref.ltx any more, remove it.
Links: https://mirrors.ctan.org/macros/latex/contrib/zref-clever/zref-clever-doc.pdf [1]
Signed-off-by: Akira Yokosawa <akiyks@gmail.com>
---
fixcleveref.ltx | 12 -------
perfbook-lt.tex | 90 ++++++++++++++++++++++++++++++++++++-------------
2 files changed, 66 insertions(+), 36 deletions(-)
delete mode 100644 fixcleveref.ltx
diff --git a/fixcleveref.ltx b/fixcleveref.ltx
deleted file mode 100644
index 76a2b591..00000000
--- a/fixcleveref.ltx
+++ /dev/null
@@ -1,12 +0,0 @@
-\makeatletter%
- \providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion}%
-\makeatother
-\IfFormatAtLeastTF{2024-11-01}{%
- \AddToHook{cmd/appendix/before}{%
- \crefalias{chapter}{appendix}%
- \crefalias{section}{appendix}%
- \crefalias{subsection}{appendix}%
- \crefalias{subsubsection}{appendix}%
- \crefalias{subsubsubsection}{appendix}%
- }%
-}{}
diff --git a/perfbook-lt.tex b/perfbook-lt.tex
index 9957abef..ba40146e 100644
--- a/perfbook-lt.tex
+++ b/perfbook-lt.tex
@@ -164,6 +164,16 @@
\newboolean{indexhier}
\setboolean{indexhier}{true}
\newcommand{\IfIndexHier}[2]{\ifthenelse{\boolean{indexhier}}{#1}{#2}}
+\newboolean{usecleveref}
+\makeatletter%
+ \providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion}%
+\makeatother
+\IfFormatAtLeastTF{2024-11-01}{ %
+ \setboolean{usecleveref}{false}
+}{ %
+ \setboolean{usecleveref}{true}
+}
+\newcommand{\IfCleverefTF}[2]{\ifthenelse{\boolean{usecleveref}}{#1}{#2}}
% Tweak width params of TOC
\makeatletter
@@ -409,26 +419,60 @@
\captionsetup{hangindent=20pt}
\captionsetup[listing]{hangindent=20pt}
-\usepackage[capitalise,noabbrev,nosort]{cleveref}
-\crefname{subsubsubappendix}{Appendix}{Appendices}
-\crefname{sublisting}{Listing}{Listings}
-\crefname{sequencei}{step}{steps}
-\Crefname{sequencei}{Step}{Steps}
-\crefname{enumi}{item}{items}
-\Crefname{enumi}{Item}{Items}
-\crefname{page}{page}{pages}
-\Crefname{page}{Page}{Pages}
-\Crefformat{equation}{Equation~#2#1#3}
-\crefformat{equation}{Eq.~#2#1#3}
-\newcommand{\crefrangeconjunction}{--}
-\newcommand{\creflastconjunction}{, and~}
-
-% Define \crefthro{} for "Sections~m.n through~m.p"
-\newcommand{\crefthro}[2]{%
- \namecrefs{#1}~\ref{#1} through~\ref{#2}%
-}
-\newcommand{\Crefthro}[2]{%
- \nameCrefs{#1}~\ref{#1} through~\ref{#2}%
+\IfCleverefTF{
+ \usepackage[capitalise,noabbrev,nosort]{cleveref}
+ \crefname{subsubsubappendix}{Appendix}{Appendices}
+ \crefname{sublisting}{Listing}{Listings}
+ \crefname{sequencei}{step}{steps}
+ \Crefname{sequencei}{Step}{Steps}
+ \crefname{enumi}{item}{items}
+ \Crefname{enumi}{Item}{Items}
+ \crefname{page}{page}{pages}
+ \Crefname{page}{Page}{Pages}
+ \Crefformat{equation}{Equation~#2#1#3}
+ \crefformat{equation}{Eq.~#2#1#3}
+ \newcommand{\crefrangeconjunction}{--}
+ \newcommand{\creflastconjunction}{, and~}
+ % Define \crefthro{} for "Sections~m.n through~m.p"
+ \newcommand{\crefthro}[2]{%
+ \namecrefs{#1}~\ref{#1} through~\ref{#2}%
+ }
+ \newcommand{\Crefthro}[2]{%
+ \nameCrefs{#1}~\ref{#1} through~\ref{#2}%
+ }
+
+}{ % emulate cleveref via zref-clever (not portable before 2024?)
+ \usepackage{zref-clever}[2023-11-14]
+ \zcsetup{cap=true, nameinlink=false, lastsep={, and~}}
+ \zcRefTypeSetup{sequencei}{
+ Name-sg=step,
+ name-sg=step,
+ Name-pl=steps,
+ name-pl=steps,
+ }
+ \zcRefTypeSetup{sublisting}{
+ Name-sg=Listing,
+ name-sg=listing,
+ Name-pl=Listings,
+ name-pl=listings,
+ }
+ \zcRefTypeSetup{page}{
+ Name-sg=page,
+ name-sg=page,
+ Name-pl=pages,
+ name-pl=pages,
+ }
+ \newcommand\cref[1]{\zcref[nocomp]{#1}}
+ \newcommand\Cref[1]{\zcref[S,nocomp]{#1}}
+ \newcommand\cpageref[1]{\zcpageref{#1}}
+ \newcommand\Cpageref[1]{\zcpageref[S]{#1}}
+ \newcommand\crefrange[2]{\zcref[range,rangesep={--}]{#1,#2}}
+ \newcommand\Crefrange[2]{\zcref[S,range,rangesep={--}]{#1,#2}}
+ \newcommand\lcnamecref[1]{\zcref[noref]{#1}}
+ \newcommand\cpagerefrange[2]{\zcpageref[range,rangesep={--}]{#1,#2}}
+ \newcommand\crefthro[2]{\zcref[range,rangesep={ through~}]{#1,#2}}
+ \newcommand\Crefthro[2]{\zcref[S,range,rangesep={ through~}]{#1,#2}}
+ \newcommand\namecrefs[1]{\zcref[noref]{#1}s}
}
% Define \clnref{} and \Clnref{} for reference to line labels
@@ -477,8 +521,8 @@
\newcommand{\Clnrefrange}[2]{Lines~\lnref{#1}\==\lnref{#2}}
\newcommand{\clnrefthro}[2]{lines~\lnref{#1} through~\lnref{#2}}
\newcommand{\Clnrefthro}[2]{Lines~\lnref{#1} through~\lnref{#2}}
-\newcommand{\pararef}[1]{Paragraph ``\nameref{#1}'' on Page~\pageref{#1}}
-\newcommand{\Pararef}[1]{Paragraph ``\nameref{#1}'' on Page~\pageref{#1}}
+\newcommand{\pararef}[1]{paragraph ``\nameref{#1}'' on page~\pageref{#1}}
+\newcommand{\Pararef}[1]{Paragraph ``\nameref{#1}'' on page~\pageref{#1}}
% geometry setting
\newlength{\twocolumnwidth}
@@ -593,8 +637,6 @@
\input{fixfvextra.ltx}
}{}
-\input{fixcleveref.ltx}
-
\begin{document}
%%HTMLSKIP
--
2.43.0
^ permalink raw reply related [flat|nested] 8+ messages in thread* [PATCH -perfbook 6/6] memorder: Fix use of \cpagerefrange{}{}
2026-06-04 10:10 [PATCH -perfbook 0/6] Updates for LaTeX2e <2026-06-01> release Akira Yokosawa
` (4 preceding siblings ...)
2026-06-04 10:24 ` [PATCH -perfbook 5/6] Stop using "cleveref" with LaTeX2e <2024-11-01> and later Akira Yokosawa
@ 2026-06-04 10:26 ` Akira Yokosawa
2026-06-04 17:28 ` [PATCH -perfbook 0/6] Updates for LaTeX2e <2026-06-01> release Paul E. McKenney
6 siblings, 0 replies; 8+ messages in thread
From: Akira Yokosawa @ 2026-06-04 10:26 UTC (permalink / raw)
To: Paul E. McKenney; +Cc: perfbook, Akira Yokosawa
In this case, \cpageref{label1,,label2,,label3} is the right construct
to suit the wording of ", respectively". The use of ",," as separators
is to prevent range of pages rendered as "pages M--N".
Signed-off-by: Akira Yokosawa <akiyks@gmail.com>
---
memorder/memorder.tex | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/memorder/memorder.tex b/memorder/memorder.tex
index d0775c36..f3ce94d7 100644
--- a/memorder/memorder.tex
+++ b/memorder/memorder.tex
@@ -335,7 +335,9 @@ Some long-chain examples will be illustrated by
lst:memorder:Long ISA2 Release-Acquire Chain,%
lst:memorder:Long Z6.2 Release-Acquire Chain}
on
-\cpagerefrange{lst:memorder:Long LB Release-Acquire Chain}{lst:memorder:Long Z6.2 Release-Acquire Chain},
+\cpageref{lst:memorder:Long LB Release-Acquire Chain,,%
+lst:memorder:Long ISA2 Release-Acquire Chain,,%
+lst:memorder:Long Z6.2 Release-Acquire Chain},
respectively.
The seeing and not seeing of accesses works the same way as described in
--
2.43.0
^ permalink raw reply related [flat|nested] 8+ messages in thread* Re: [PATCH -perfbook 0/6] Updates for LaTeX2e <2026-06-01> release
2026-06-04 10:10 [PATCH -perfbook 0/6] Updates for LaTeX2e <2026-06-01> release Akira Yokosawa
` (5 preceding siblings ...)
2026-06-04 10:26 ` [PATCH -perfbook 6/6] memorder: Fix use of \cpagerefrange{}{} Akira Yokosawa
@ 2026-06-04 17:28 ` Paul E. McKenney
6 siblings, 0 replies; 8+ messages in thread
From: Paul E. McKenney @ 2026-06-04 17:28 UTC (permalink / raw)
To: Akira Yokosawa; +Cc: perfbook
On Thu, Jun 04, 2026 at 07:10:00PM +0900, Akira Yokosawa wrote:
> Hi Paul,
>
> Newly released LaTeX2e <2026-06-01> is not compatible with perfbook.
> The new LaTeX kernel doesn't allow both of arydshln and tabularx
> to be loaded in a docment. As arydshln doesn't play any important
> role in perfbook, I have decided to get rid of it. See Patch 4/6.
>
> Another recent headache for perfbook is cleveref. Patch 5/6 resolves
> it by employing "zref-clever" and defining wrapper commands in the
> preamble.
>
> The other patches are minor fixes.
Good catches, and I have no idea how my fingers hit "`" instead of the
spacebar! Thank you very much, queued and pushed.
Thanx, Paul
> Updates in FAQ-BUILD.txt and under docker/ should follow shortly.
>
> Thanks, Akira
>
> --
> Akira Yokosawa (6):
> memorder: Fix typo ("`" --> " ")
> runlatex.sh: "iconv -l" rather than "iconv --list"
> precheck-tentative.sh: Allow "v4.4a" style revision of lineno.sty
> Get rid of "arydshln"
> Stop using "cleveref" with LaTeX2e <2024-11-01> and later
> memorder: Fix use of \cpagerefrange{}{}
>
> appendix/styleguide/styleguide.tex | 355 +----------------------------
> datastruct/datastruct.tex | 19 +-
> fixcleveref.ltx | 12 -
> memorder/memorder.tex | 6 +-
> perfbook-lt.tex | 91 ++++++--
> utilities/precheck-tentative.sh | 2 +-
> utilities/runfirstlatex.sh | 2 +-
> utilities/runlatex.sh | 2 +-
> 8 files changed, 83 insertions(+), 406 deletions(-)
> delete mode 100644 fixcleveref.ltx
>
>
> base-commit: 15b4ca760b07bac138b9e0f6467e6733ecc656dc
> --
> 2.43.0
>
^ permalink raw reply [flat|nested] 8+ messages in thread