From 97a366e8b7c540b246c7bf9d04625526cbdc88ba Mon Sep 17 00:00:00 2001 From: cirakg Date: Mon, 19 Oct 2026 15:27:37 +0200 Subject: docs: document the storage format and record M3 results; bump to 0.3.0 Co-Authored-By: Claude Opus 5.5 --- docs/DEVELOPER_GUIDE.md | 3 +++ 1 file changed, 3 insertions(+) (limited to 'docs/DEVELOPER_GUIDE.md') 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`; `Dictionary` doesn't type-check. +- `Array.slice` returns `Array`; cast it back (`as Array`). ### Screenshots -- cgit v1.2.3