Skip to content

Loka 0.0.6

Choose a tag to compare

@Lihi-AI Lihi-AI released this 12 Oct 11:02
· 374 commits to main since this release

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 / BlockStyle with + merging replace TextAttr;
    every rail draws the declared size and weight, centered and right-aligned
    paragraphs, and AttributedString / 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 a State<String>; Command-key handling on Classic
    and accelerator tables on Win32; CommandSet<E,N> binds a node's command emitters;
    RibbonControl / RibbonItem give a button band.
  • Documents and windows: DocumentRoster<T,N> drives one window per document
    with a close door; the window factory receives the document's ItemId; 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: TextStyle carries Primary, Secondary and eight named inks; all
    three native rails draw them (Classic through a planar ForeColor scope, 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

  • TextAttr is gone; use TextStyle / BlockStyle (FontSize<N> for sizes).
    TextEditorDocument's per-kind commit doors are gone; applyReplace is the one door.
  • MenuBoundary, MenuController and MENU_ACTION_REBUILD_MENU are gone;
    WindowProps::menuBar is gone; composeMenu is now composeDefaultMenu and a
    Scene declares its own bar.
  • LazyFlex is replaced by LazyView. RectSurfaceProps::clearBackground is 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*). onIdle without
    an idlePolicy asserts. 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.TXT with a visible alert (#1238).
  • Blob readers take the refusing-storage signature; scenario clicks on a disabled
    Button fail by default; SmirkyCard cards are constructed as new 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 .dsk image; ScrapbookUI with ASSETS.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.txt beside 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

PowerBook 550c, 1400c and G3 PDQ running the v0.0.6 release candidate

PowerBook 550c, MacBook Neo and VAIO P running the v0.0.6 release candidate

PowerBook 550c and a Pismo on Tiger running the v0.0.6 release candidate

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).