summaryrefslogtreecommitdiff
path: root/chapter24a
diff options
context:
space:
mode:
authorCliff Click <cliffc@acm.org>2026-10-24 15:41:48 -0700
committerCliff Click <cliffc@acm.org>2026-10-24 15:41:48 -0700
commit489672dfac7efc78fc239ba7c2dfc82f1c5fbeab (patch)
tree9f4e04ed9d4f7443c03b02269cc77a96bb23dbd0 /chapter24a
parentfeb98e1bb6c973428b94591ed5b0aed5e4137bd0 (diff)
downloadSimple-489672dfac7efc78fc239ba7c2dfc82f1c5fbeab.tar.gz
Simple-489672dfac7efc78fc239ba7c2dfc82f1c5fbeab.zip
Finish chapter numbering, retire combined chapter 24, and update documentation
Diffstat (limited to 'chapter24a')
-rw-r--r--chapter24a/README.ja.md12
-rw-r--r--chapter24a/README.md23
-rw-r--r--chapter24a/pom.xml2
3 files changed, 20 insertions, 17 deletions
diff --git a/chapter24a/README.ja.md b/chapter24a/README.ja.md
index aac03cab..fd868f39 100644
--- a/chapter24a/README.ja.md
+++ b/chapter24a/README.ja.md
@@ -1,12 +1,12 @@
-# 関数内の SCCP
+# 第24a章: 関数内の SCCP
[English](README.md) | 日本語
-[前: メソッドと型](../chapter23/README.ja.md) |
-[次: 関数間の SCCP](../chapter-interprocedural-sccp/README.ja.md)
+[Previous: Chapter 23](../chapter23/README.ja.md) |
+[Next: Chapter 24b](../chapter24b/README.ja.md)
-章の分割中は番号の代わりに名前を使います。この章は第24章から分けた、
-単独で実行できるコンパイラです。番号付きの章は比較用に残しています。
+この章は旧第24章から分けた、単独で実行できるコンパイラです。
+関数内の SCCP を第24a章で、関数間への拡張を第24b章で説明します。
最新の説明と検証方法は [英語版](README.md) を参照してください。
## 疎な条件付き定数伝播
@@ -113,4 +113,4 @@ while( rand ) {
引数と戻り値の推論・拡大は次の章で導入します。
このディレクトリで最初に `make lib`、続いて `make tests` を実行してください。
-リポジトリのルートでは `make tests CHAPTERS=chapter-sccp` を使えます。
+リポジトリのルートでは `make tests CHAPTERS=chapter24a` を使えます。
diff --git a/chapter24a/README.md b/chapter24a/README.md
index eec9a361..338eebe8 100644
--- a/chapter24a/README.md
+++ b/chapter24a/README.md
@@ -1,17 +1,20 @@
-# SCCP Within a Function
+# Chapter 24a: SCCP Within a Function
English | [日本語](README.ja.md)
-[Previous: Methods and Types](../chapter23/README.md) |
-[Next: SCCP Across Functions](../chapter-interprocedural-sccp/README.md)
+[Previous: Chapter 23](../chapter23/README.md) |
+[Next: Chapter 24b](../chapter24b/README.md)
This chapter introduces [SCCP](https://en.wikipedia.org/wiki/Sparse_conditional_constant_propagation)
within each function. Next chapter, we'll go interprocedural with SCCP.
+Calls retain conservative interfaces here. In particular, mutually recursive
+functions whose return types need inference across calls can still fail with
+`No defined return type`; Chapter 24b solves those recursive return cycles.
-The [chapter split](../docs/chapter-split.md) uses names while the chapter
-boundaries settle. This is an independent compiler snapshot, extracted from
-Chapter 24. The numbered snapshot remains a comparison baseline.
+
+This is an independent compiler snapshot. The [split record](../docs/chapter-split.md)
+explains how the former combined SCCP chapter became Chapters 24a and 24b.
## Sparse Conditional Constant Propagation
@@ -170,9 +173,9 @@ that inference and the widening needed to make it converge; its
## Building and checking
Run `make lib` once for Java test dependencies, then `make tests` in this
-directory. From the repository root, use `make tests CHAPTERS=chapter-sccp`.
+directory. From the repository root, use `make tests CHAPTERS=chapter24a`.
The inherited tests retain their historical class names.
-The [grammar](docs/24-grammar.md) includes chained comparisons inherited from
-the extraction baseline. Their planned teaching home is with short-circuit
-expressions. Allocator tuning is covered separately by the planned appendix.
+The [grammar](docs/24-grammar.md) includes chained comparisons introduced in
+Chapter 23 beside short-circuit expressions. Allocator tuning is covered in
+the [appendix](../docs/appendices/optimizer-tuning.md).
diff --git a/chapter24a/pom.xml b/chapter24a/pom.xml
index f7140d98..0fc86118 100644
--- a/chapter24a/pom.xml
+++ b/chapter24a/pom.xml
@@ -8,7 +8,7 @@
<artifactId>simple</artifactId>
<version>1.0</version>
</parent>
- <artifactId>chapter-sccp</artifactId>
+ <artifactId>chapter24a</artifactId>
<packaging>jar</packaging>
<name>SCCP Within a Function</name>
<properties>