diff options
| author | cirakg <cirakg@cirakg.xyz> | 2026-10-20 11:24:58 +0200 |
|---|---|---|
| committer | cirakg <cirakg@cirakg.xyz> | 2026-10-20 11:24:58 +0200 |
| commit | d360f8ed78adf08e2a99df0be141b0a823cf8be9 (patch) | |
| tree | 79073507ca89b88479b961fa7f17ec25c83c6dd9 /docs/DEVELOPER_GUIDE.md | |
| parent | 1251aab9f8f9f38aa5bdefd4fed1f58236166cf8 (diff) | |
docs: record M6c (Data Matrix, PDF417) results
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'docs/DEVELOPER_GUIDE.md')
| -rw-r--r-- | docs/DEVELOPER_GUIDE.md | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/docs/DEVELOPER_GUIDE.md b/docs/DEVELOPER_GUIDE.md index 14c4e05..2646e1b 100644 --- a/docs/DEVELOPER_GUIDE.md +++ b/docs/DEVELOPER_GUIDE.md @@ -78,6 +78,8 @@ The simulator is a GTK program. The scripts start it on a virtual display (Xvfb - Assigning a value above 255 to a ByteArray element throws; mask with `& 0xFF`. - Native HMAC supports only SHA-256; HMAC-SHA1 and HMAC-SHA512 go through `Hmac.generic`. - Function calls are expensive in the VM; hot loops inline small helpers (SHA-512 went 37 % faster that way). +- **Long `&&` chains with `instanceof`** can make the compiler's type checker run out of memory: one test condition needed more than 6 GB until it was split into separate `if` statements. +- **JSON resources over 8 KB** produce a compiler warning, so large tables are split; the PDF417 patterns are three resources, one per cluster. - **The watchdog** ("Code Executed Too Long") is not enforced in unit-test runs, but it is in normal simulator runs, with the device's `watchdogCount` per event: 120,000 bytecodes on the Forerunner 255/255S, 240,000 on the others. M4 measured what it means. 200 byte-wise PBKDF2 iterations in one event tripped it on the 255S, and so did two SHA-512 codes in one draw. So: - Anything long runs as a `Jobs.Job` with a bounded step (`Kdf.ITERATIONS_PER_STEP` = 100). - Screens compute at most one SHA-512 code per event, in a timer event separate from drawing. |
