Repository navigation
Loka 0.0.6
Loka v0.0.6
A text release: a real TextEditor on every rail, styled and attributed text,
Scene-owned menus and commands, one window per document, and a first
text color palette. SimpleText, a one-document-per-window plain-text editor,
joins the examples on Classic, macOS and Windows. Classic applications now ship as
.dsk images beside the MacBinaries, Windows archives ship for the first time
(x64, and an x86 build that runs on Windows XP), and SmirkyCard (experimental)
is in every archive. Each archive carries the same eight applications.
Highlights
- TextEditor on all rails: plain multi-line editing through TextEdit (Classic),
EDIT (Win32) and NSTextView (macOS); the owner commits every edit as one range
replacement (applyReplace), the caret is a rail-reported fact plus an app-posted
request, and page up/down go through one editor command seat. Keyboard focus is
app-owned (Focus<K>): every rail reports it and an app can request it. - Styled text:
TextStyle/BlockStylewith+merging replaceTextAttr;
every rail draws the declared size and weight, centered and right-aligned
paragraphs, andAttributedString/AttributedText/ Markup runs. Classic text
goes through a MacRoman/ASCII projection so non-ASCII renders on Roman System 7. - Menus and commands: a Scene owns its menu bar and the App default is merged
with it; item titles can follow aState<String>; Command-key handling on Classic
and accelerator tables on Win32;CommandSet<E,N>binds a node's command emitters;
RibbonControl/RibbonItemgive a button band. - Documents and windows:
DocumentRoster<T,N>drives one window per document
with a close door; the window factory receives the document'sItemId; a Window
carries an edited fact beside its title that the rails project (macOS
document-edited dot, Windows*prefix); no shipped example sets it yet, the
SimpleText wiring is a 0.0.7 item; a launch that opens no window is reported once and quits
by default (Classic shows the out-of-memory Stop alert). - Text color:
TextStylecarries Primary, Secondary and eight named inks; all
three native rails draw them (Classic through a planarForeColorscope, macOS
as dynamic system colors that follow light and dark, Win32 at the Windows 11
light values). Surface grounds are chosen by node kind in one place and text
pairs with its ground. macOS bundles opt into dark appearance. - SimpleText (new example): one ASCII document per window, New / Open / Save /
Save As through the native file dialogs on every rail, a command band, its own
menu, a measured Classic partition. - Layout and lists: buttons answer their natural width;
LazyView(one window
selection, no per-item seats) replaces LazyFlex; the ScrollView band pass lays
out only visible leaves on Classic; one logical-unit scale per rail. - Files and native resources: Save dialogs on all rails; chosen files carry a
sealed native locator; out-of-memory pictures and blobs are refused instead of
quitting the application; native image disposal waits for the platform clock. - SmirkyCard: JS cards gain text style and Markup, block alignment, file and
image seats, dialogs and pictures, constructor Flows and scene-to-scene values;
MINES.JS (Minesweeper) and SimpleViewer.JS ship beside MAIN.JS; a JS scenario
runner drives cards headlessly. - Classic platform: out of memory shows a Stop alert instead of exiting to the
Finder; SIZE minimums are measured need × 1.1; partial repaint merging and
scroll-bar paint answers; busy and I-beam cursors have one owner; backgrounded
applications present their windows. - Kernel: rails open one Operation per turn and every guard, write seat and Flow
bracket joins it; request delivery settles once per entry operation with
RequestQueue<T,N>for accumulating commands; Keyed / LazyScope replacements are
failure-atomic.
Breaking changes for application authors
TextAttris gone; useTextStyle/BlockStyle(FontSize<N>for sizes).
TextEditorDocument's per-kind commit doors are gone;applyReplaceis the one door.MenuBoundary,MenuControllerandMENU_ACTION_REBUILD_MENUare gone;
WindowProps::menuBaris gone;composeMenuis nowcomposeDefaultMenuand a
Scene declares its own bar.- LazyFlex is replaced by
LazyView.RectSurfaceProps::clearBackgroundis gone;
a RectSurface always paints its ground. Classic Row spacing, Box bottom padding
and Row/Grid short-coordinate refusal change some layouts. - The document window factory takes
(ItemId, const T&, void*).onIdlewithout
anidlePolicyasserts. A windowless launch quits by default. macOS
nativeFrame()reports the outer frame, so writing it back no longer moves the
window. - Classic: the Command key goes only to MenuKey; Command-Q quits by default
(Win32: none); EditText deletes forward on Del, refuses lossy edits with a beep;
backgrounded applications present; 68K minimum SIZE values are higher.
RetroCarbon is refused at configure time. Win32/macOS logical-unit scale changed. - Standalone Flow loops refuse a missing
LOG.TXTwith a visible alert (#1238). - Blob readers take the refusing-storage signature; scenario clicks on a disabled
Button fail by default; SmirkyCard cards are constructed asnew F(c).
Archives
Every archive carries the same eight applications: the five standalone
presentation loops, SimpleViewer, SimpleText, and SmirkyCard (experimental, with
MAIN.JS, MINES.JS and VIEWER.JS beside it).
Loka-v0.0.6-classic.zip(24.3 MB) — 68K and PPC MacBinary applications, each
also as a.dskimage; ScrapbookUI withASSETS.LRP; SmirkyCard's disks carry
its scripts.Loka-v0.0.6-win32-x64.zip(7.0 MB) — Windows 10/11 x64; SmirkyCard under
smirkycard\. First Windows archive.Loka-v0.0.6-win32-x86-xp.zip(5.6 MB) — the same as 32-bit builds with the
v141_xp toolset; runtime-verified on a VAIO P running Windows XP.Loka-v0.0.6-macos-ub2.zip(6.2 MB) — arm64 + x86_64 bundles; SmirkyCard's
scripts in the bundle Resources.Loka-v0.0.6-macos-ub1-tiger.zip(7.6 MB) — ppc + i386 universal binaries
(Xcode 3.2.6 / GCC 4.0, 10.4u SDK); runtime-verified on a Pismo running
Tiger 10.4.
Each archive has a.manifest.txtbeside it (tag, commit, allowlist hash,
per-file SHA-256, build commands).
Verified at the release candidate
Tag v0.0.6 (annotated, 137cc66) is main bfeecb4 (39de508 plus the docs PR
#1269) with the release allowlists on top; the archive contents are those of
rehearsal 3. Final smoke on the tagged archives: Windows x64 and x86 XP green;
macOS UB2 on Catalina 10.15.7, UB1 on Mavericks 10.9.5 (i386) and emulated Leopard 10.5.8 (ppc): all eight applications, loops 14/9/9/13/11 with 0 failed steps; Classic MacBinaries identical to rehearsal 3 apart from MacBinary dates and CRC (final smoke). RC = main 39de508 (release branch tip
9699c15, allowlists only). Full matrix at
a536c4e: Classic MAME maciix 29/29 cells, macOS Tahoe 18/18 (renewed at 39de508 for #1263: 0 differing pixels, no reruns),
Win32 VM 18/18, Linux/macOS/Windows/Toolbox CI green; the PRs between a536c4e and
39de508 are argued static no-ops per rail in the release PR. Archive smoke
(rehearsal 3): Windows 8.1 (XP zip), Windows 11 (x64), Catalina 10.15.7 (UB2),
Mavericks 10.9.5 i386 and emulated Leopard 10.5.8 PPC (UB1): all eight apps on
each, loops 14/9/9/13/11, 0 failed. Owner hardware, all passed: PowerBook 550c
(full 68040 with FPU, Mac OS 7.6.1 Japanese; Classic 68K), PowerBook 1400c (Mac OS 8.6;
Classic PPC), PowerBook G3 PDQ (Mac OS 8.6; Classic PPC), Pismo (G3 500 MHz) on
Mac OS X 10.4.11 (UB1 ppc), VAIO P on Windows XP (x86), MacBook Neo on
macOS 27.0.1 (UB2 arm64). The iBook G4 was not run. On the 550c the owner's
impression was that the applications feel fast and comfortable (an impression,
not a measurement). Backgrounded presentation
(#1239) confirmed on the 1400c, and background loops kept running on XP and the
Pismo. App Translocation (#1238) was not observed: the archives reached the Neo by
copy, without the quarantine attribute.
Known issues
- #496 Win32 MineSweeper settles with the bottom rows unpainted on real GPUs
(bare metal only; the VM rig never shows it). - #580 ScrollView is vertical-only; SimpleViewer's actual-size mode clips wide images.
- #1265 Win32: clicking a scroll bar arrow or the track does nothing (the release
republishes the old position); the wheel and thumb drag work. - #800 Classic: HelloWorld's scroll bar visibly redraws after each scroll (OS 9.2.2,
Pismo). #802 macOS UB1 on 10.4: SimpleViewer's buttons below a grown status Text
are not redrawn until clicked. - #501 the standalone audit flushes every record to disk on a 68030.
- Text color: Win32 draws the light appearance only (dark is color rally page 3,
#1196); on Classic, Secondary is black until the color port. - KanjiTalk / Japanese System 7 shows non-ASCII as
?until MacJapanese lands
(#1076); SimpleText is ASCII-only (Japanese editing is a 0.0.7 item). - macOS: typing through an input method (for example Japanese) into SimpleText's
editor can crash the application (#1264, seen on 10.13 during the rehearsal;
the marked-text commit recurses); the editor accepts ASCII only (#862). - Ribbon v1 has push buttons only, with no enabled state. There is no app-facing
alert door yet; each rail hand-builds its refusal alert (#1237). - macOS dark appearance is not runtime-verified on 10.15.
- Editor focus is not restored across a lazy-list window-key change; the editor is
plain text (styled editing is a later track). - Standalone loops on macOS: move the applications out of the download folder or
strip quarantine before running; since this release the refusal is visible (#1238;
the visible refusal itself was not exercised on hardware at the RC, the archive
arrived without quarantine).
Hardware photos
Environment notes
Windows reference rig is a Hyper-V VM (Windows 11 x64, VS 2026); the XP x86 leg is
built on a Windows 8.1 VM with VS2017 Build Tools 15.9 (v141_xp, MSVC 14.16.27023),
CMake 4.2.8 and PowerShell 4.0: static CRT, subsystem 5.01. macOS reference rig is an Intel MacBook Pro (2019) on macOS Tahoe 26.7.1; Apple
silicon evidence is the MacBook Neo on macOS 27.0.1 only;
Classic verdicts come from the MAME maciix golden bundle (29 cells).


