|
4 | 4 |
|
5 | 5 | # RPN for NumWorks |
6 | 6 |
|
7 | | -[](https://github.com/1e1/numworks-RPN/releases) |
| 7 | +[](https://github.com/1e1/numworks-RPN/releases) |
8 | 8 | [](https://github.com/1e1/numworks-RPN/commits/main) |
9 | 9 | [](https://github.com/1e1/numworks-RPN/blob/main/LICENSE) |
10 | 10 |
|
@@ -105,15 +105,23 @@ Lower-frequency operations, navigated with `↑`/`↓` and `OK`, closed with |
105 | 105 | Requires `arm-none-eabi-gcc` and Node.js (for [`nwlink`](https://www.npmjs.com/package/nwlink)). |
106 | 106 |
|
107 | 107 | ```shell |
108 | | -make # build output/rpn.nwa |
109 | | -make install # build and upload to a plugged-in calculator |
110 | | -make test # build and run the host-side engine unit tests |
| 108 | +make # build output/rpn.nwa |
| 109 | +make install # build and upload to a plugged-in calculator |
| 110 | +make test # host-side engine unit tests |
| 111 | +make verify-install # perform the install-time link, no calculator needed |
| 112 | +make check-budgets # assert the RAM and 32 KiB-stack budgets |
| 113 | +make sim-test # replay tests/sim in the Epsilon simulator (Docker) |
111 | 114 | ``` |
112 | 115 |
|
113 | 116 | The numeric core (`src/value`, `src/stack`, `src/rpn`, `src/input_field`) is pure |
114 | 117 | C++ with no calculator dependency, so `make test` compiles and runs it on your |
115 | 118 | host machine. |
116 | 119 |
|
| 120 | +`make` only produces a *relocatable* object, so it cannot fail on undefined |
| 121 | +symbols — the link that decides whether a calculator can install the app happens |
| 122 | +later, and `verify-install` is what rehearses it. See |
| 123 | +[CONTRIBUTING.md](CONTRIBUTING.md#verifying-a-change) for which check catches what. |
| 124 | + |
117 | 125 | ## Try it in a web simulator (Docker) |
118 | 126 |
|
119 | 127 | Run the app in a browser via the Epsilon web simulator — only Docker is needed |
|
0 commit comments