<a id="ch-14"></a>

## Chapter 14 — The compiler version stays unprinted

<!-- open-cyber-academy:lesson-figures:start ch-14 -->
### Lesson map

Lesson 14. Map, example, EX060.

```mermaid
flowchart TD
  A["Outdated compilers are a known weakness class"] --> B["Elena asks for version and review history"]
  B --> C{"Does the file contain either answer?"}
  C -->|No| D["Leave both blank"]
  C -->|Yes| E["That answer is not written here"]
```

The question is evidence of care. An invented version would be evidence of nothing.

### Logical drawing

```text
asked
    compiler version
    review history
reason already in the book
    the SWC registry lists outdated compilers
not printed
    a version string
    a history date
```
<!-- open-cyber-academy:lesson-figures:end ch-14 -->

### Learning outcomes

After this chapter, you should be able to:

1. Say which two facts Elena asked the vendor to state.
2. Keep both unprinted.
3. Refuse to invent a version or a history.

### 14.1 A dependency question without an answer is still open.

The loyalty rules will be a program stored on the ledger. A compiler turns the source of that program into the form the ledger stores. Chapter 3 notes that the SWC registry lists weaknesses that come from outdated compilers, which is why Elena asks the vendor to state the compiler version and the contract's review history. The ask is one way of planning for a dependency Copperleaf does not control directly. Planning is not the same as holding the answer. This manuscript contains the question and does not contain a version string. It does not contain a date, a ticket number, or a sentence of review history. A note that fills in a version, even a plausible one, would be writing a fact the vendor has not supplied in these pages. The same bar applies to the history. "She asked" remains true. "The vendor stated version such-and-such" does not. Other dependencies stay on the list without being solved here: the wallet app, the cloud provider, and the vendor's service and nodes. None of those gains a version number in this lesson either.

### 14.2 Worked example

Repeat the question. Do not supply the missing reply.

| Line | Status | Decision |
|---|---|---|
| "She asked for the compiler version and the review history." | Chapter 3 | May stay |
| "The registry is why outdated compilers matter." | The same chapter | May stay |
| A version string | Not printed | Do not invent one |
| A review-history date | Not printed | Do not invent one |

> **Synthetic case.** No contract source is compiled in this lesson. The version is absent on purpose.

### Errors and limits

An unanswered dependency question is an open item. Silence is not a version, and it is not a clean history.

### Apply

- **EX060 — Which version?** The vendor was asked for the compiler version and the review history. The answer line in front of you is blank. What do you write in that blank? *Rubric:* 3 = nothing; no compiler version is in the file; no review history is in the file; the ask stays an ask;; 2 = both stay unprinted;; 1 = the ask only;; 0 = none.

<!-- open-cyber-academy:chapter-navigation:start ch-14 -->
### Continue studying — lesson 14 (chapter 14 of 20)

[← Chapter 13](#ch-13) · [Course chapter index](../SUBJECTS.md) · [Chapter 15 →](#ch-15)

Continue to the next authored lesson.
<!-- open-cyber-academy:chapter-navigation:end -->

## Worked answers

<a id="answer-ex060"></a>
**EX060.** No compiler version is printed. She asked for the version and the review history. Do not invent either.
