Discussions of the Parallel Programming book
 help / color / mirror / Atom feed
* [PATCH -perfbook 1/3] adjustindexformat.pl: Cope with recent hyperref change
@ 2026-03-31  7:52 Akira Yokosawa
  2026-03-31  7:57 ` [PATCH -perfbook 2/3] cpu/overview: Tweak index markings Akira Yokosawa
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Akira Yokosawa @ 2026-03-31  7:52 UTC (permalink / raw)
  To: Paul E. McKenney; +Cc: perfbook, Akira Yokosawa

hyperref 7.01n (released in July 2025) made a change in the name of
its macro for formatting page counts in index [1].  It ended up in
a regression in our Index pages, namely, missing most page counts
with bold shape or underlined.
This issue is observed in recent CI-builds at
https://gitlab.com/linux-kernel/perfbook/.

Add regex'es to cover the patterns of "hyperxindexformat{...}".
   (in addition to those for existing "hyperindexformat{...}")

Link: https://ctan.org/ctan-ann/id/aFgfN-aRU1t7L2XT@prptp [1]
Signed-off-by: Akira Yokosawa <akiyks@gmail.com>
---
 utilities/adjustindexformat.pl | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/utilities/adjustindexformat.pl b/utilities/adjustindexformat.pl
index 584b3232..52cfaae6 100755
--- a/utilities/adjustindexformat.pl
+++ b/utilities/adjustindexformat.pl
@@ -38,5 +38,11 @@ while($line = <$fh>) {
     $line =~ s/\{([^\|]+)(\|hyperindexformat)\{\\gl(@\\makefirstuc )\{.+\}\}\}/\{$1$3\{$1\}$2\{\\GL\}\}/ ;
     $line =~ s/\{([^\|]+)(\|hyperindexformat)\{\\gl(@\\makefirstuc )\{.+\}!([^\}]+)\}\}/\{$1$3\{$1}!$4$2\{\\GL\}\}/ ;
     $line =~ s/(\\makefirstuc )\{([^\)]+)\} \<([^\]]+)\>\|hyperpage\}/$1\{$2\} \($3\)|hyperindexformat\{\\GL\}\}/ ;
+    $line =~ s/\{([^\|]+)(\|hyperxindexformat)\{\\bf(@\\makefirstuc )\{.+\}\}\}/\{$1$3\{$1\}$2\{\\BF\}\}/ ;
+    $line =~ s/\{([^\|]+)(\|hyperxindexformat)\{\\bf(@\\makefirstuc )\{.+\}!([^\}]+)\}\}/\{$1$3\{$1}!$4$2\{\\BF\}\}/ ;
+    $line =~ s/(\\makefirstuc )\{([^\)]+)\} \[([^\]]+)\]\|hyperpage\}/$1\{$2\} \($3\)|hyperxindexformat\{\\BF\}\}/ ;
+    $line =~ s/\{([^\|]+)(\|hyperxindexformat)\{\\gl(@\\makefirstuc )\{.+\}\}\}/\{$1$3\{$1\}$2\{\\GL\}\}/ ;
+    $line =~ s/\{([^\|]+)(\|hyperxindexformat)\{\\gl(@\\makefirstuc )\{.+\}!([^\}]+)\}\}/\{$1$3\{$1}!$4$2\{\\GL\}\}/ ;
+    $line =~ s/(\\makefirstuc )\{([^\)]+)\} \<([^\]]+)\>\|hyperpage\}/$1\{$2\} \($3\)|hyperxindexformat\{\\GL\}\}/ ;
     print $line ;
 }

base-commit: bfce6d84f45d7aa5ffb4ea2202ca6a248adf5dff
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH -perfbook 2/3] cpu/overview: Tweak index markings
  2026-03-31  7:52 [PATCH -perfbook 1/3] adjustindexformat.pl: Cope with recent hyperref change Akira Yokosawa
@ 2026-03-31  7:57 ` Akira Yokosawa
  2026-03-31  7:59 ` [PATCH -perfbook 3/3] runlatex.sh: Detect errors in makeindex log files Akira Yokosawa
  2026-03-31 12:13 ` [PATCH -perfbook 1/3] adjustindexformat.pl: Cope with recent hyperref change Paul E. McKenney
  2 siblings, 0 replies; 4+ messages in thread
From: Akira Yokosawa @ 2026-03-31  7:57 UTC (permalink / raw)
  To: Paul E. McKenney; +Cc: perfbook, Akira Yokosawa

Let's make them more consistent with other index markings.

Signed-off-by: Akira Yokosawa <akiyks@gmail.com>
---
 cpu/overview.tex |  4 ++--
 glossary.tex     | 14 ++++++--------
 indexsee.tex     |  1 +
 3 files changed, 9 insertions(+), 10 deletions(-)

diff --git a/cpu/overview.tex b/cpu/overview.tex
index 56c843ef..4a3ac25a 100644
--- a/cpu/overview.tex
+++ b/cpu/overview.tex
@@ -456,14 +456,14 @@ But here in 2026, such computers are the exception rather than the rule.
 In fact, most computers exist only to respond to requests transmitted
 to them from all over the world.
 These requests are received by devices within the computers system,
-and then these devices \emph{\IX{interrupt}} a CPU to inform it that
+and then these devices \emph{\IXB{interrupt}} a CPU to inform it that
 a new request has arrived.
 A CPU must also transmit responses via these same devices, which in turn
 might interrupt the CPU when a given transmission has completed.
 CPUs can also interrupt each other using \IXacrfpl{ipi}.
 
 Either way, the CPU disables further interrupts, commences executing an
-\emph{\IXG{interrupt handler}}, and once this handler has completed,
+\emph{\IXB{interrupt handler}}, and once this handler has completed,
 the CPU re-enables interrupts and resumes executing whatever sequence
 of instructions was interrupted.
 These interrupts take time away from whatever task the CPU was executing,
diff --git a/glossary.tex b/glossary.tex
index f65f4dff..628e5724 100644
--- a/glossary.tex
+++ b/glossary.tex
@@ -368,9 +368,11 @@
 	CPUs are available).
 \item[\IXG{Immutable}:]
 	In this book, a synonym for read-mostly.
-\item[\IXG{Inter-Processor Interrupt}:]\glsuseriii{ipi}
+\item[Inter-Processor Interrupt (IPI):]\glsuseriii{ipi}
 	An interrupt sent by a CPU instead of by an I/O device.
-	See IPI.
+	IPIs are used heavily in the Linux kernel, for example, within
+	the scheduler to alert CPUs that a high-priority process is now
+	runnable.
 \item[\IXG{Interrupt}:]
 	A signal to a CPU that causes it to stop whatever it is doing,
 	disable interrupts, and execute an interrupt handler.
@@ -387,12 +389,8 @@
 	If necessary, the item is removed from the other CPUs' caches
 	via ``invalidation'' messages from the writing CPUs to any
 	CPUs having a copy in their caches.
-\item[IPI:]\glsuseriii{ipi}
-	Inter-processor interrupt, which is an
-	interrupt sent from one CPU to another.
-	IPIs are used heavily in the Linux kernel, for example, within
-	the scheduler to alert CPUs that a high-priority process is now
-	runnable.
+\item[IPI:]
+	See ``Inter-Processor Interrupt (IPI)''.
 \item[IRQ:]\glsuseriii{irq}
 	Interrupt request, often used as an abbreviation for ``interrupt''
 	within the Linux kernel community, as in ``irq handler''.
diff --git a/indexsee.tex b/indexsee.tex
index fe57094b..cad3532f 100644
--- a/indexsee.tex
+++ b/indexsee.tex
@@ -1,6 +1,7 @@
 % effective in both single- and two- level index
 \index{Coherence|see{Cache coherence}}
 \index{Full(y) multi-copy atomic|see{Multi-copy atomic}}
+\index{IPI|see{Inter-processor interrupt}}
 \index{Memory consistency model|see{Memory model}}
 \index{Single-copy atomic|see{Cache coherence}}
 \index{Single-variable SC|see{Cache coherence}}
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH -perfbook 3/3] runlatex.sh: Detect errors in makeindex log files
  2026-03-31  7:52 [PATCH -perfbook 1/3] adjustindexformat.pl: Cope with recent hyperref change Akira Yokosawa
  2026-03-31  7:57 ` [PATCH -perfbook 2/3] cpu/overview: Tweak index markings Akira Yokosawa
@ 2026-03-31  7:59 ` Akira Yokosawa
  2026-03-31 12:13 ` [PATCH -perfbook 1/3] adjustindexformat.pl: Cope with recent hyperref change Paul E. McKenney
  2 siblings, 0 replies; 4+ messages in thread
From: Akira Yokosawa @ 2026-03-31  7:59 UTC (permalink / raw)
  To: Paul E. McKenney; +Cc: perfbook, Akira Yokosawa

Messages of "!! Input index error" would have helped in catching
the regression caused by the hyperref change.

Signed-off-by: Akira Yokosawa <akiyks@gmail.com>
---
 utilities/runlatex.sh | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/utilities/runlatex.sh b/utilities/runlatex.sh
index 17d833ad..5346bb3b 100644
--- a/utilities/runlatex.sh
+++ b/utilities/runlatex.sh
@@ -76,6 +76,11 @@ iterate_latex () {
 		echo "----- Warning in makeindex, see .ilg log files. -----"
 		exit 1
 	fi
+	if grep -q '!! Input index error' $basename.ilg $basename-ppl.ilg $basename-api.ilg
+	then
+		echo "----- Error in makeindex, see .ilg log files. -----"
+		exit 1
+	fi
 	makeglossaries $basename > /dev/null 2>&1
 	$LATEX $LATEX_OPT $basename > /dev/null 2>&1 < /dev/null
 	exitcode=$?
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH -perfbook 1/3] adjustindexformat.pl: Cope with recent hyperref change
  2026-03-31  7:52 [PATCH -perfbook 1/3] adjustindexformat.pl: Cope with recent hyperref change Akira Yokosawa
  2026-03-31  7:57 ` [PATCH -perfbook 2/3] cpu/overview: Tweak index markings Akira Yokosawa
  2026-03-31  7:59 ` [PATCH -perfbook 3/3] runlatex.sh: Detect errors in makeindex log files Akira Yokosawa
@ 2026-03-31 12:13 ` Paul E. McKenney
  2 siblings, 0 replies; 4+ messages in thread
From: Paul E. McKenney @ 2026-03-31 12:13 UTC (permalink / raw)
  To: Akira Yokosawa; +Cc: perfbook

On Tue, Mar 31, 2026 at 04:52:39PM +0900, Akira Yokosawa wrote:
> hyperref 7.01n (released in July 2025) made a change in the name of
> its macro for formatting page counts in index [1].  It ended up in
> a regression in our Index pages, namely, missing most page counts
> with bold shape or underlined.
> This issue is observed in recent CI-builds at
> https://gitlab.com/linux-kernel/perfbook/.
> 
> Add regex'es to cover the patterns of "hyperxindexformat{...}".
>    (in addition to those for existing "hyperindexformat{...}")
> 
> Link: https://ctan.org/ctan-ann/id/aFgfN-aRU1t7L2XT@prptp [1]
> Signed-off-by: Akira Yokosawa <akiyks@gmail.com>

Queued and pushed, thank you very much!

Note to self: When doing anything that affects the index, build
perfbook.pdf in addition to the usual perfbook-df.pdf.

							Thanx, Paul

> ---
>  utilities/adjustindexformat.pl | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/utilities/adjustindexformat.pl b/utilities/adjustindexformat.pl
> index 584b3232..52cfaae6 100755
> --- a/utilities/adjustindexformat.pl
> +++ b/utilities/adjustindexformat.pl
> @@ -38,5 +38,11 @@ while($line = <$fh>) {
>      $line =~ s/\{([^\|]+)(\|hyperindexformat)\{\\gl(@\\makefirstuc )\{.+\}\}\}/\{$1$3\{$1\}$2\{\\GL\}\}/ ;
>      $line =~ s/\{([^\|]+)(\|hyperindexformat)\{\\gl(@\\makefirstuc )\{.+\}!([^\}]+)\}\}/\{$1$3\{$1}!$4$2\{\\GL\}\}/ ;
>      $line =~ s/(\\makefirstuc )\{([^\)]+)\} \<([^\]]+)\>\|hyperpage\}/$1\{$2\} \($3\)|hyperindexformat\{\\GL\}\}/ ;
> +    $line =~ s/\{([^\|]+)(\|hyperxindexformat)\{\\bf(@\\makefirstuc )\{.+\}\}\}/\{$1$3\{$1\}$2\{\\BF\}\}/ ;
> +    $line =~ s/\{([^\|]+)(\|hyperxindexformat)\{\\bf(@\\makefirstuc )\{.+\}!([^\}]+)\}\}/\{$1$3\{$1}!$4$2\{\\BF\}\}/ ;
> +    $line =~ s/(\\makefirstuc )\{([^\)]+)\} \[([^\]]+)\]\|hyperpage\}/$1\{$2\} \($3\)|hyperxindexformat\{\\BF\}\}/ ;
> +    $line =~ s/\{([^\|]+)(\|hyperxindexformat)\{\\gl(@\\makefirstuc )\{.+\}\}\}/\{$1$3\{$1\}$2\{\\GL\}\}/ ;
> +    $line =~ s/\{([^\|]+)(\|hyperxindexformat)\{\\gl(@\\makefirstuc )\{.+\}!([^\}]+)\}\}/\{$1$3\{$1}!$4$2\{\\GL\}\}/ ;
> +    $line =~ s/(\\makefirstuc )\{([^\)]+)\} \<([^\]]+)\>\|hyperpage\}/$1\{$2\} \($3\)|hyperxindexformat\{\\GL\}\}/ ;
>      print $line ;
>  }
> 
> base-commit: bfce6d84f45d7aa5ffb4ea2202ca6a248adf5dff
> -- 
> 2.43.0
> 

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-03-31 12:13 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-31  7:52 [PATCH -perfbook 1/3] adjustindexformat.pl: Cope with recent hyperref change Akira Yokosawa
2026-03-31  7:57 ` [PATCH -perfbook 2/3] cpu/overview: Tweak index markings Akira Yokosawa
2026-03-31  7:59 ` [PATCH -perfbook 3/3] runlatex.sh: Detect errors in makeindex log files Akira Yokosawa
2026-03-31 12:13 ` [PATCH -perfbook 1/3] adjustindexformat.pl: Cope with recent hyperref change Paul E. McKenney

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox