aboutsummaryrefslogtreecommitdiff
path: root/docs/DEVELOPER_GUIDE.md
diff options
context:
space:
mode:
authorcirakg <cirakg@cirakg.xyz>2026-10-19 15:27:37 +0200
committercirakg <cirakg@cirakg.xyz>2026-10-19 15:27:37 +0200
commit97a366e8b7c540b246c7bf9d04625526cbdc88ba (patch)
tree131e2574a4ca927f99a6d82cc1117d45343e80b2 /docs/DEVELOPER_GUIDE.md
parent8ac04a0c2f5cd949a45866f938bd1aa72fbe56e2 (diff)
docs: document the storage format and record M3 results; bump to 0.3.0v0.3.0
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'docs/DEVELOPER_GUIDE.md')
-rw-r--r--docs/DEVELOPER_GUIDE.md3
1 files changed, 3 insertions, 0 deletions
diff --git a/docs/DEVELOPER_GUIDE.md b/docs/DEVELOPER_GUIDE.md
index eacea84..283e51a 100644
--- a/docs/DEVELOPER_GUIDE.md
+++ b/docs/DEVELOPER_GUIDE.md
@@ -75,6 +75,9 @@ The simulator is a GTK program. The scripts start it on a virtual display (Xvfb
- 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).
- The simulator doesn't enforce the watchdog in test runs. Anything long runs as a `Jobs.Job` with a bounded step.
+- `StringUtil.convertEncodedString` stops the app with an uncatchable "System Error" on invalid UTF-8; `try` doesn't help. Decode untrusted bytes with `Bytes.toUtf8`, which validates first.
+- `Application.Storage` stores ByteArrays (its `ValueType` includes them, unlike `Application.PropertyValueType`), so records are stored as single ByteArrays of known size. Dictionaries passed to it must be typed `Dictionary<Application.Storage.KeyType, Application.Storage.ValueType>`; `Dictionary<String, ...>` doesn't type-check.
+- `Array.slice` returns `Array<Object or Null>`; cast it back (`as Array<String>`).
### Screenshots