diff options
| author | Cliff Click <cliffc@acm.org> | 2026-10-24 15:41:48 -0700 |
|---|---|---|
| committer | Cliff Click <cliffc@acm.org> | 2026-10-24 15:41:48 -0700 |
| commit | 489672dfac7efc78fc239ba7c2dfc82f1c5fbeab (patch) | |
| tree | 9f4e04ed9d4f7443c03b02269cc77a96bb23dbd0 /chapter24a | |
| parent | feb98e1bb6c973428b94591ed5b0aed5e4137bd0 (diff) | |
| download | Simple-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.md | 12 | ||||
| -rw-r--r-- | chapter24a/README.md | 23 | ||||
| -rw-r--r-- | chapter24a/pom.xml | 2 |
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> |
