Skip to content

Releases: johnbuckman/androwish-tcl91

v0.1-alpha — AndroWish on Tcl/Tk 9.1b0

Choose a tag to compare

@johnbuckman johnbuckman released this 20 Jul 07:40

First working alpha of AndroWish rebuilt on Tcl/Tk 9.1b0 (upstream AndroWish still ships 8.6.10, and
there is no Tk-9-on-SDL anywhere upstream — so this is a from-scratch port).

What works

  • Boots on Android to an interactive Tcl console (File / Edit menus, live % prompt)
  • File ▸ Demos submenu with launchable demos (Tk widget demo, Goldberg, ixset, TkSQLite, Tkzinc,
    tkpath, zint, vu widgets, Tktable, plus borg and BLE demos)
  • All 84 native libraries build, including the full batteries-included extension set
  • Correct font rendering and DPI scaling on high-DPI screens

The build

Tcl/Tk 9.1b0 (assets/tcl9.1, assets/sdl2tk9.1)
ABI arm64-v8a only
minSdkVersion 21
applicationId tk.tcl.wish.tcl91 — installs alongside stock AndroWish
Native libs 84
NDK r27d
sha256  86516131694ddd32ed9f2d43d0158d35b317a427916c65c5644e24e1eb19f959

Four bugs worth knowing about

  1. Stack corruption in wm title — the 8.6-era X11-emulation layer passed int* where Tcl 9 wants
    Tcl_Size* out-params.
  2. Tcl_GetIntFromObj rejected every non-negative integer on arm64 (surfaced as bad level "#0"):
    TCL_WIDE_INT_IS_LONG was undefined on LP64, so (Tcl_WideInt)(ULONG_MAX) overflowed to -1.
  3. No usable font — stock Tk 9.1 doesn't ship AndroWish's bundled DejaVu/Symbola faces.
  4. Everything tiny on high-DPI — the emulated XListFonts answered generic family requests with a
    hardcoded XLFD carrying pixel size 12; a non-zero pixel size means a fixed bitmap font in X11, so Tk
    discarded the size it had correctly computed. Synthesized entries must use pixel size 0 (= scalable).

Full write-ups in docs/PORT.md.

Limitations

Alpha quality. Tracks 9.1b0 (not 9.1 final); arm64 only; verified on emulators (320 dpi tablet,
420 dpi phone) rather than broadly on physical devices; default icon and a placeholder main window.