Repository navigation
Releases: aliharundaldalli/AhdCode
Release list
AhdCode v2.7.0 — System Inspection & Distribution Polish
AhdCode v2.7.0 completes the read-only inspection primitives a server worker needs and brings back installable packages for every platform.
System inspection
- Disk (new module):
Disk.inspect(path)returns aDiskInfowithtotalBytes(),usedBytes(),freeBytes(),availableBytes(), andusedPercent()for the filesystem that contains an existing path. It reads the operating system's own API (statfs,GetDiskFreeSpaceExW) and never runsdfor a shell. Failures areDiskError. - Service (new module):
Service.status(name)returns aServiceInfowithname(),activeState(),subState(),running(), andenabled()for a Linux systemd unit.- It reads the machine-readable
systemctl showproperties without a shell and validates unit names before anything runs. - It is read-only by design: there is no start, stop, or restart.
- It raises
ServiceErroron platforms other than Linux with systemd.
- It reads the machine-readable
Distribution
- macOS (Apple Silicon): a signed installer package and disk image, both notarized by Apple with the ticket stapled.
- Windows x64: the per-user installer, which adds only
%LOCALAPPDATA%\AhdCode\binto the user PATH. It is not Authenticode-signed, so SmartScreen may warn; verify the SHA-256 first. - Linux: packages for amd64 and, new in this release, arm64.
- Every package carries its own helpers, private Go toolchain, and offline LaTeX engine, and finds them from its own installation.
Disk and Service are now standard module names. Verify downloads with SHA256SUMS.txt. Installation: https://github.com/aliharundaldalli/AhdCode/blob/main/docs/INSTALLATION.md
AhdCode v2.6.0 — DNS & TLS Inspection
AhdCode v2.6.0 adds bounded, typed network inspection. With it, a worker program can check where a domain points and what certificate it serves, without a shell or external tools.
DNS (new module)
DNS.lookup(host, timeoutSeconds)resolves a host name's addresses with the operating system's resolver- deterministic results: deduplicated, all IPv4 addresses first, then IPv6, each in ascending order
- bounded timeouts (default 5 s, 1–60)
- malformed input (URLs,
host:port, control or shell-like characters) is refused before any network work - typed
DNSResult(host(),addresses(),ipv4(),ipv6()) andDNSError
TLS (new module)
TLS.inspect(host, port, timeoutSeconds)inspects a TLS endpoint within a bounded timeout- the presented certificate chain is verified explicitly against the system trust roots and the requested hostname
- expired, not-yet-valid, hostname-mismatched, and untrusted certificates are reported with their full metadata and
valid() == false; they are never accepted - certificate subject, issuer, DNS names (SANs), and validity dates (
notBefore()/notAfter()asDateTime) - negotiated TLS protocol and cipher suite
- typed
TLSInfo(valid(),verificationStatus(), …) andTLSError
Both modules behave identically in the REPL evaluator and in native builds, with editor completion, hover, and signature help. DNS and TLS are now standard module names.
Distribution
v2.6.0 is a source-only release: use the source code archives below. Complete platform packaging and installers return in v2.7, Distribution & Installer Polish.
AhdCode v2.5.0 — Deployment & Systems Primitives
AhdCode v2.5.0 adds deployment and systems primitives: the building blocks of a deployment worker, such as the AhdCode Panel's, without a shell and without Python.
Archive
Archive.listand safe-by-defaultArchive.extractfor ZIP, TAR, and TAR.GZ- path traversal, absolute, drive, and UNC paths rejected; symbolic-link and hard-link entries rejected, never followed
- bounded extraction (
maxFiles,maxBytes, checked before writing and again while streaming), all-or-nothing into a new directory ArchiveEntrywithpath(),kind(),size()
File
File.copy: binary-safe and streaming; it never overwritesFile.atomicWrite: same-directory temporary file, fsync, renameFile.atomicMove: a rename only; a cross-filesystem move is refused, never copiedFile.symlink(target, link),File.readLink,File.isSymlinkFile.walk: bounded, never follows symbolic links;FileEntry- Unix permissions as octal Strings:
File.setPermissions(path, "0755"),File.permissions(path)
Process (new module)
Process.run(command, args)starts an executable directly with aList<String>of arguments, never through a shell- finite
timeoutSecondsandmaxOutputBytes; on Unix the whole process group is killed on timeout or overflow ProcessResult(exitCode(),stdout(),stderr()); launch failures, timeouts, and overflow raiseProcessError
SQLite
db.backupTo(path): a consistent, integrity-checked snapshot of a live database using SQLite's online backup API
All new APIs behave the same in the REPL evaluator and in native builds, and they have editor completion, hover, and signature help. Process is now a standard module name.
Distribution
v2.5.0 is distributed as portable command-line packages (bin/ahdcode plus libexec/ahdcode/ helpers). Installer packages return in v2.7. The portable packages do not bundle the Go toolchain: ahdcode build and ahdcode run use Go 1.26.4 or later from PATH. LaTeX, PDF, and Plot math rendering need the offline Tectonic renderer (AHDCODE_LATEX_RUNTIME). Verify the downloads with SHA256SUMS.txt.
AhdCode v2.4.0
AhdCode v2.4.0 adds:
- offline Tectonic Plot/Surface math rendering
- exact embedded TeX/CFF glyph rendering
- typed LineStyle and Marker, plus lineWidth and markerSize
- LegendPosition with topRight as the default
- improved math-text and legend layout
- Surface current-view Save
- Windows installer automatic per-user PATH support
Known boundary: math rendering applies to complete $...$ strings; mixed rich text is not supported.
AhdCode v2.3.0 — Language Ergonomics & Plot Polish
AhdCode v2.3.0 — Language Ergonomics & Plot Polish
AhdCode v2.3.0 is the final release of the Language Ergonomics & Plot Polish
milestone.
Highlights:
- Named
Functiondeclarations support the same explicituses [#lexical, @module]capture model as lambdas. - LSP capture-aware completion, hover, definitions, references, rename, semantic tokens, and quick fixes cover named-function captures and workspace references.
- Plot and Surface whole-string
$...$labels use the existing offline math-text path with controlled Unicode/plain fallback. - Surface viewer Save reflects the current camera view while programmatic
Surface.saveremains deterministic and canonical. - v2.3 examples and English/Turkish documentation are synchronized with the shipped implementation.
Independent acceptance QA found and verified two minimal fixes:
- Named-function LSP quick fixes now recognize the
Global declarationdiagnostic and add/extend@namecaptures correctly. - The named-function semantic diagnostic now recommends the v2.3
uses [@name]syntax while retaining the explicit Global declaration alternative.
The release is built from main commit e3d930ecdf06b2b3773257eff643608c6594e20a and published as the latest GitHub release.
AhdCode v2.2.0 — Plot Completeness
AhdCode v2.2.0
Plot Completeness
Highlights
- Added Pie charts for categorical breakdowns.
- Added Heatmap charts backed by Numeric matrices.
- Added categorical labels for Surface x/y axes.
- Added the Student Performance Explorer example in English and Turkish.
- Kept the v2.2 release dependency-free and compatible with the existing Plot, Numeric, LSP, and editor-extension surfaces.
- Reproducible signed macOS, Linux, and Windows distribution artifacts.
Verification
- Hosted candidate and merged
mainGitHub Actions CI passed. - Core tests, static checks, targeted race coverage, PostgreSQL 17/18, and all nested helper-module jobs passed.
- macOS DMG and PKG were accepted by Apple notarization; both were stapled and validated.
- Non-interactive packaged smoke tests passed for Pie, Heatmap, categorical Surface, LSP stdio, and hostile-environment CLI startup.
See SHA256SUMS.txt for artifact hashes and the documentation shipped with each package for installation details.
AhdCode v2.1.0 — Application I/O & Network Completion
AhdCode v2.1.0
Application I/O & Network Completion
Highlights
- Application-facing file, directory, process, environment, and network I/O APIs.
- HTTP, WebSocket, SMTP, PostgreSQL, and SQLite integration surfaces.
- Completed v2.1 runtime, compiler, evaluator, documentation, examples, and release tooling.
- Reproducible signed macOS, Linux, and Windows distribution artifacts.
Verification
- Hosted GitHub Actions CI passed on the merged
maincommit. - PostgreSQL 17 and 18 integration jobs passed.
- Targeted race coverage and nested helper-module checks passed.
- macOS DMG and PKG notarized by Apple.
See SHA256SUMS.txt for artifact hashes and the documentation shipped with each package for installation details.
AhdCode v2.0.0 — Desktop Application Completion
AhdCode v2.0.0 — Desktop Application Completion — completes AhdCode's
first-party desktop application foundation: the GUI gains the ordinary
controls of a small data application, the Plot viewer gains a toolbar and 3D
surfaces, and ahdcode package turns a program into a desktop application
that runs without AhdCode installed. The core grammar, the static type
system, and every previously released function keep their v1.9.0 behaviour.
GUI
- New widgets: ListBox, Select (drop-down), TextArea (multi-line,
scrolling), PasswordInput (masked), and TableView — a read-oriented
table with a header, row selection, horizontal and vertical scrolling, and
fast drawing of tens of thousands of rows. onChangefor TextInput, PasswordInput, TextArea, and Checkbox;
onChange(index: Int?, text: String?)for Select and ListBox and
onSelect(row: Int?)for TableView. Only the user's actions call them;
select,setItems,setRows, andsetTextnever do.window.setResizable(true): tables, lists, and text areas take a larger
window's extra space; nothing else stretches.- Dialogs:
GUI.openFile,openFiles,selectFolder,saveFile,
message, andconfirm— the system's own dialogs on macOS and Windows.
A cancelled dialog returnsnull(an empty List foropenFiles), never an
error, and a dialog never reads or creates a file. - Tab and Shift+Tab visit every enabled control; every new widget has colors
and an enabled state.
With v2.0, AhdCode's first-party GUI covers the ordinary controls needed for
small forms, data-entry tools, database front ends, and file-oriented desktop
utilities. There is still no tree view, menu, rich text, web view, theme
engine, custom-widget system, or async/thread API: these are intentional
boundaries, and callbacks still run one at a time.
Plot
- The viewer shows a toolbar: Save (PNG, SVG, PDF), Zoom Out,
Zoom In, Rotate Left, Rotate Right, and Fit. Save runs the
renderer on the chart's own definition, so the file is byte for byte what
save()writes, whatever the view. - Plot.surface(x, y, z: Matrix) draws a 3D surface: an immutable
Surfacewithtitle,xLabel,yLabel,zLabel,size,wireframe,
save(PNG only, deterministic), andshow, which opens the viewer in 3D
with orbit, pan, zoom, and reset. It is small scientific plotting, not a 3D
engine.
Application packaging
ahdcode package app.ahd --name Ledger --icon ledger.png makes a macOS
.app, or a Windows or Linux folder and archive, holding the compiled
program and only the helpers it uses. The application finds its helpers only
inside itself — never an AhdCode installation, PATH, or environment
overrides — and shows its own name and icon. Nothing from the project folder
is copied, and a leak check guards every package. macOS applications are
signed ad hoc, not with a Developer ID; see the packaging guide for
Gatekeeper.
Language and tooling
- No grammar, type-system, or coercion change; no
Any, dynamic typing, or
reflection. Compiled programs,ahdcode run, and the REPL share one
implementation. - Editors now complete, hover, and show signatures for every Chart, Figure,
and Surface member and every new GUI member, from the compiler's own
metadata (the Chart and Figure gap of v1.8 and v1.9 is fixed). - No new third-party dependency.
- The macOS Dock icon of AhdCode's windows has the rounded macOS shape.
Examples and documentation
examples/v2.0 holds ledger_app (a SQLite ledger with a TableView,
dialogs, and CSV export), surface_plot, and package_hello. New: the
Packaging guide. Updated: the GUI, Plot, and CLI references, language
specification sections 87–90, and student guide section 67, in English and
Turkish.
Compatibility
A v1.9.0 program compiles and behaves the same. The GUI helper protocol is
version 3, so a v2.0 program needs the v2.0 helpers, which the packages
include.
Known issue found after release
In a program that uses Plot but not GUI, the viewer's Save reports
"Save needs AhdCode's GUI helper (ahdgui), which is not installed": the
compiler recorded the helper's location only for programs that open a window
of their own, so the viewer had no path to the save dialog. It affects 2D
charts and 3D surfaces, under ahdcode run and for a built program outside
the installation. chart.save(path), surface.save(path) and packaged
applications are not affected, and the artifacts below are unchanged.
Until the next release, name the helper when you run the program:
AHDCODE_GUI_RUNTIME=~/Library/AhdCode/current/libexec/ahdcode/ahdgui ahdcode run chart.ahdThe fix is on main (Fix Plot viewer Save runtime discovery) and ships in
the next release.
Known limitations
Window.onKeyalso receives keys typed into a focused text field.- A long callback blocks its window.
- On Linux the dialogs are drawn by AhdCode itself, and the file dialog
chooses one file at a time, also foropenFiles. - A packaged macOS application is not notarized; another Mac asks the user
to allow it once.
Downloads
| File | Platform |
|---|---|
AhdCode-2.0.0-macos-arm64.pkg |
macOS Apple Silicon — recommended installer |
AhdCode-2.0.0-macos-arm64.dmg |
macOS Apple Silicon — drag-install image |
AhdCode-2.0.0-macos-arm64.zip |
macOS Apple Silicon — archive with install.sh |
AhdCode-2.0.0-windows-x64.exe |
Windows x64 — graphical per-user setup |
AhdCode-2.0.0-linux-x64.tar.gz |
Linux x64 |
ahdcode-0.2.3.vsix |
VS Code extension (own version line, unchanged) |
The macOS .pkg and .dmg are signed with Developer ID certificates,
notarized by Apple, and stapled. The Windows installer is not Authenticode
code-signed; SmartScreen may show an unknown-publisher warning.
Platform QA
- macOS (Apple Silicon): live-tested — GUI windows with every new widget,
a 10,000-row TableView, resizing, dialogs, the Plot toolbar and Save, 3D
Surface orbit/pan/zoom/reset, and packaged applications launched from the
Finder and the Terminal outside the repository; the same checks run
headless underahdcode runand as native programs with identical output. - Linux x64 and Windows x64: compiled and package-tested only
(structure, executable format, and, for Windows, the application icon
resource); not run on a Linux or Windows machine for this release.
SHA256SUMS.txt lists the checksum of every artifact.
AhdCode v1.9.0
AhdCode v1.9.0 — Desktop Polish + Interactive Plot — makes Plot.show
an interactive first-party preview, adds basic colors and an enabled state to
the GUI, and gives AhdCode's own windows the AhdCode name and icon. The core
grammar, the static type system, and every previously released function keep
their v1.8.0 behaviour.
Interactive Plot viewer
chart.show() and figure.show() now open AhdCode's own viewer, AhdCode
Plot, instead of the operating system's image viewer:
| Control | Action |
|---|---|
| Mouse wheel or trackpad scroll | Zoom around the pointer |
| Drag with the left button | Pan |
Q / E |
Turn the view a quarter turn left / right |
R |
Reset: no turn, whole chart fitted, centered |
Escape |
Close |
- These interactions change only the viewer; they do not change the Chart or
Figure, their data, or exported PNG, SVG, or PDF files.chart.save(...)
aftershow()writes exactly the same bytes as without it. - Zoom ranges from a quarter of the fitted size to 1600%; a zoomed chart
always covers the window, so it cannot be lost, andRbrings it back.
Turns are quarter turns only. show()returns as soon as the viewer is open; each call opens its own
viewer, which stays open until closed, even after the program ends.- The preview PNG is read and deleted at once: no temporary files pile up.
- A missing viewer, no display, or a chart larger than 6144 units on a side
raisesPlotError. AhdCode never falls back to another application. - The viewer is the new bundled
ahdplotviewhelper; charts are still
rendered byahdplot, andsave()is unchanged.
GUI colors and enabled state
window.setBackground(color)andcontainer.setBackground(color);
setForeground(color)andsetBackground(color)on a Label, Button,
TextInput, and Checkbox.- Colors use the Graphics spellings: nine lower-case names,
#RRGGBB, or
#RRGGBBAA(blended over what is beneath; windows are never transparent).
Anything else raisesGUIError. Without colors a window looks as in v1.8. setEnabled(enabled)andisEnabled()on a Button, TextInput, and
Checkbox. A disabled widget ignores clicks, Enter/Space, and typing, is
skipped by Tab, and is drawn faded; the program can still change it.- Text is now measured for every display scale, so a Label's or Button's
last letter is no longer clipped on high-density displays (some widgets are
a few points wider than in v1.8).
AhdCode GUI remains a deliberately small toolkit for forms, utilities, and
educational desktop applications: there are still no tables, list boxes,
drop-downs, menus, dialogs, file pickers, themes, or fonts.
AhdCode window identity
GUI, Graphics, and Plot viewer windows show the AhdCode name and the official
AhdCode icon: on macOS AhdCode in the menu bar (instead of ahdgui or
ahdgraphics) and the AhdCode icon in the Dock; on Windows and Linux the
window icon where the system shows one. This names AhdCode's own windows
only; it does not package user programs as applications.
Language and tooling
- No grammar, type-system, or coercion change, and no
Any, dynamic typing,
or reflection. New members follow the all-positional-or-all-named rule. - Compiled programs,
ahdcode run, and the REPL share one implementation;
show()opens the same viewer everywhere. - Editors complete, hover, and show signatures for every new member.
- No new third-party dependency: the viewer uses exactly the GUI helper's
pinned Ebitengine v2.10.2 and Go libraries.
Examples and documentation
examples/v1.9 holds gui_colors (an order form with colors and a Save
button that is enabled only when the form is complete) and
interactive_plot (a line and scatter chart shown in the viewer and then
saved). The GUI and Plot references, language specification sections 85 and
86, and student guide section 66 are updated in English and Turkish.
Compatibility
A v1.8.0 program compiles and behaves the same, except that show() opens
AhdCode's viewer instead of the system image viewer and some GUI widgets are
a few points wider because their text is no longer clipped.
Known limitations
- The macOS menu-bar name is set at run time through a LaunchServices
function that Apple does not document; if a future macOS removes it, the
helper's file name is shown instead. Window.onKeyalso receives keys typed into a focused TextInput.- GUI windows cannot be resized, and a long callback blocks its window.
Downloads
| File | Platform |
|---|---|
AhdCode-1.9.0-macos-arm64.pkg |
macOS Apple Silicon — recommended installer |
AhdCode-1.9.0-macos-arm64.dmg |
macOS Apple Silicon — drag-install image |
AhdCode-1.9.0-macos-arm64.zip |
macOS Apple Silicon — archive with install.sh |
AhdCode-1.9.0-windows-x64.exe |
Windows x64 — graphical per-user setup |
AhdCode-1.9.0-linux-x64.tar.gz |
Linux x64 |
ahdcode-0.2.3.vsix |
VS Code extension (own version line, unchanged) |
The macOS .pkg and .dmg are signed with Developer ID certificates,
notarized by Apple, and stapled. The Windows installer is not Authenticode
code-signed; SmartScreen may show an unknown-publisher warning.
Platform QA
- macOS (Apple Silicon): live-tested from the release package in an
isolated prefix: real GUI windows with colors, a disabled and re-enabled
Save button, and Tab skipping disabled widgets; the interactive viewer with
real scrolling, dragging, Q/E turns, R reset, and Escape, for a Chart and a
3x2 Figure, including several viewers at once; the Turtle example with real
arrow keys and clicks; and the AhdCode name in the menu bar and the AhdCode
icon in the Dock for all three. The same checks ran offline and headless
underahdcode runand as relocated native programs with identical output,
andsave()aftershow()was byte-identical tosave()before it. - Linux x64: structural and package checks only; the artifact, its GUI,
and its viewer were not run on a Linux machine for this release. - Windows x64: structural and package checks only, including the setup's
embedded payload test; the artifact, its GUI, and its viewer were not run
on a Windows machine for this release.
SHA256SUMS.txt lists the checksum of every artifact.
AhdCode v1.8.0
AhdCode v1.8.0 — GUI Foundations + Minimal Events — adds a small GUI
module for desktop windows, click and key callbacks for GUI windows and
Graphics Canvases, and readable output for five value Classes. The core
grammar, the static type system, and every previously released function keep
their v1.7.0 behaviour.
GUI
bring GUI opens real desktop windows with a deliberately small set of
widgets:
GUI.window(title, width, height)returns aWindow;window.column()or
window.row()creates its single rootContainer.- A Container adds a
Label, aButton, a single-lineTextInput, a
Checkbox, and nested Columns and Rows, withspacingandpadding. text()/setText,checked()/setChecked,setTitle,close,
isOpen, andwait— the whole surface.- Invalid sizes, spacing, a second root Container, or changes to a closed
Window raiseGUIError; nothing is silently clamped. - Text is drawn with the bundled Go Regular font, so Turkish and other
Unicode text looks the same everywhere; no font is downloaded.
GUI is meant for learning and small desktop applications — forms, data-entry
tools, simple database front ends, and utilities. It is not Tkinter or Qt,
not a game engine, not a full desktop widget framework, and not an
application packager. There are no tables or grids, list boxes, drop-downs,
menus, dialogs, file pickers, scrolling, themes, or resizable windows; file
pickers, table-style widgets, and application packaging remain future work.
Events
Button.onClick(handler)takes a() -> NothingFunction and
Window.onKey(handler)a(key: String) -> NothingFunction.- Graphics gains
Canvas.onClick(handler)with(x: Real, y: Real)in the
Canvas's Cartesian coordinates (origin at the center,+yup) and
Canvas.onKey(handler), so a Turtle can be steered with the arrow keys
without reading the terminal. - Handler shapes are checked at compile time. Registering again replaces the
previous callback. - Callbacks run during
wait(), one at a time, on the program's own path of
execution; a long callback blocks its window. - A callback's error closes the window and leaves
wait()unchanged — a
ValueErrorstays aValueError.GUIErrorandGraphicsErrorare only
for GUI and Graphics failures. - Key names:
ArrowUp,ArrowDown,ArrowLeft,ArrowRight,Enter,
Escape,Space,Tab,Backspace,Delete,Home,End,PageUp,
PageDown,A–Z, and0–9, key-down only. There is no polling,
key-up event, or frame loop. Canvas.wait()without callbacks behaves exactly as before.
Runtime
- Each Window is drawn by one process of the new bundled
ahdguihelper,
built with the same pinned window library asahdgraphics(Ebitengine
v2.10.2). The helpers exchange bounded JSON lines with the program, with
separate routing for responses and events and a bounded event queue. - Helpers close with the program that opened them, and they are started by
their absolute path;PATHis never searched. wait()writes out everything the program printed before it, so text
appears in the terminal while a window is open.- The
ahdguihelper runs no shell command, uses no network, reads no files
or environment files, and does not log what a user types.
Readable values
str, write, and Terminal.pretty now show the contents of first-party
values instead of only their Class name, for example Vector([3.0, 4.0]),
Matrix([[1.0, 2.0], [3.0, 4.0]]), DateTime(2026-09-19T10:00:00.000+03:00),
Duration(1500 ms), and Table(["id", "name"], [["1", "Ada"]]).
Terminal.emit still accepts only a List<String>, and there is no
reflection or general object dump.
Language and tooling
- No grammar, type-system, or coercion change, and no
Any, dynamic typing,
or reflection. - Compiled programs,
ahdcode run, and the REPL share one implementation. - Editors get completion, hover, and signature help for every new function
and member, including the callback types.
Examples and documentation
examples/v1.8 holds simple_ledger (a GUI form that validates an entry and
stores it with SQLite) and turtle_events (a Turtle driven by arrow keys and
clicks). The new GUI reference, the Graphics "Clicks and key presses" section,
language specification sections 83 and 84, and student guide section 65 are
available in English and Turkish, and ahdcode init web projects receive the
v1.8.0 documentation.
Compatibility
A v1.7.0 program compiles and behaves the same, except that str and write
of a Vector, Matrix, DateTime, Duration, or Table now print its contents
instead of <Vector>-style Class names.
Known limitations
- On macOS the menu bar shows the helper's name,
ahdgui, while a Window is
focused. Window.onKeyalso receives keys typed into a focused TextInput.- Windows cannot be resized, and a long callback blocks its window.
Downloads
| File | Platform |
|---|---|
AhdCode-1.8.0-macos-arm64.pkg |
macOS Apple Silicon — recommended installer |
AhdCode-1.8.0-macos-arm64.dmg |
macOS Apple Silicon — drag-install image |
AhdCode-1.8.0-macos-arm64.zip |
macOS Apple Silicon — archive with install.sh |
AhdCode-1.8.0-windows-x64.exe |
Windows x64 — graphical per-user setup |
AhdCode-1.8.0-linux-x64.tar.gz |
Linux x64 |
ahdcode-0.2.3.vsix |
VS Code extension (own version line, unchanged) |
The macOS .pkg and .dmg are signed with Developer ID certificates,
notarized by Apple, and stapled. The Windows installer is not Authenticode
code-signed; SmartScreen may show an unknown-publisher warning.
Platform QA
- macOS (Apple Silicon): live-tested from the release ZIP in an isolated
prefix: real GUI windows with Unicode typing, Checkbox, Button callbacks,
and arrow/Enter/Escape keys; the Turtle example with real arrow keys, clicks,
and PNG/SVG saving; and a compiled GUI program that found its helper on its
own. The same checks ran offline and headless underahdcode runand as
relocated native programs with identical output. - Linux x64: structural and package checks only; the artifact and its GUI
were not run on a Linux machine for this release. - Windows x64: structural and package checks only, including the setup's
embedded payload test; the artifact and its GUI were not run on a Windows
machine for this release.
SHA256SUMS.txt lists the checksum of every artifact.