WalkLang Release Notes
Unreleased
No unreleased changes.
v6.4.0 - PicoNet Runtime Issue Fixes
Date: 2026-06-09
v6.4.0 resolves the open PicoNet-driven GitHub issues around struct arrays, module-local tests, scalable text output, and actionable native runtime failures.
Added
- Experimental
array.pushsupport for arrays of user-defined structs, including indexed field access and exported module functions returning struct arrays. - Module-local
test:blocks are now allowed in imported modules; importers type-check them but do not run them, whilewalk test module.walkruns them directly. - Stable
string.join(array[string], string) -> stringfor one-pass assembly of text fragments. - Draft
file.write_chunks,file.try_write_chunks,file.append_chunks, andfile.try_append_chunksfor chunked UTF-8 text output without building one aggregate string. examples/large_text_stream.walk, a 20 MiB chunked-output proof example.
Fixed
walk runandwalk testnow report native child exit statuses and POSIX signal names inW5004/W5005instead of onlyprogram failedortests failed.
v6.3.3 - TinyChain Terminal Showcase
Date: 2026-05-31
v6.3.3 makes TinyChain a better public example by turning its plain output into a terminal-friendly mining transcript with color, proof reports, and a tamper audit.
Added
- TinyChain now prints a structured ASCII transcript with block cards, proof details, chain validation, and a tamper check.
- TinyChain uses draft
term.colorandterm.stylehelpers for terminal color while preserving clean redirected output. - A tested
chain.proof_report(block)helper shows the stablemath.remainderproof rule in the demo output. - TinyChain README instructions now show normal run/test/build commands and
env -u NO_COLOR CLICOLOR_FORCE=1for forced-color previews.
Breaking Changes
None.
Upgrade
Regenerate docs, install locally, and produce release artifacts with:
scripts/build-docs-site.sh
scripts/check-docs-site.sh
scripts/install-local.sh v6.3.3
scripts/release.sh v6.3.3 dist
v6.3.2 - Stable Remainder Helper
Date: 2026-05-31
v6.3.2 promotes the TinyChain proof-loop gap into a stable standard-library helper: math.remainder(int, int) -> int.
Added
- Stable
math.remainder(value, divisor) -> intfor integer remainder checks. - Compile-time diagnostics for non-
intarguments. - Runtime failure coverage for divisor zero.
- TinyChain now uses
math.remainderinstead of a hand-written loop.
Notes
math.remainderis an explicit namespaced helper rather than a%operator,- The result follows C integer remainder semantics: division truncates toward
matching WalkLang's preference for small, readable library APIs before adding new punctuation.
zero, and the remainder has the same sign as value.
Breaking Changes
None.
Upgrade
Regenerate docs, install locally, and produce release artifacts with:
scripts/build-docs-site.sh
scripts/check-docs-site.sh
scripts/install-local.sh v6.3.2
scripts/release.sh v6.3.2 dist
v6.3.1 - TinyChain Example Project
Date: 2026-05-31
v6.3.1 adds TinyChain, a small blockchain-style WalkLang project that shows the language building a real multi-file example with tests while documenting the next useful language tools it exposes.
Added
examples/tinychain/, a project-mode demo withwalk.toml, achainmodule,- A toy blockchain ledger with
TransactionandBlockstructs, arrays of - Documentation for gaps surfaced by the demo: real hashing, remainder,
a runnable main.walk, project tests, and a local README.
structs, deterministic mining, chain validation, and tamper-detection tests.
struct-array append, multiline arrays, stable persistence, byte arrays, and command arguments.
Notes
- TinyChain is intentionally not a secure blockchain. It uses a deterministic
- No compiler or stable language behavior changed in this release.
toy hash so the example remains small and readable as WalkLang source.
Breaking Changes
None.
Upgrade
Regenerate docs, install locally, and produce release artifacts with:
scripts/build-docs-site.sh
scripts/check-docs-site.sh
scripts/install-local.sh v6.3.1
scripts/release.sh v6.3.1 dist
v6.3.0 - Bounded String Slicing
Date: 2026-05-27
v6.3.0 adds Python-inspired bounded string extraction while keeping WalkLang's surface explicit and namespaced. The new helpers are aimed at WalkLang-native text workloads such as tokenizers, corpus preprocessing, logs, and generated text assembly.
Added
- Stable
string.slice(text, start, count) -> stringfor byte-indexed bounded copies. - Stable
string.prefix(text, count) -> stringfor capped leading text samples. - Conformance coverage for normal, empty, overlong, start-past-end, type-error, and negative-bound cases.
Notes
- The helpers use zero-based byte positions to match
string.len,string.at, and string indexing. - Negative indexes are intentionally not supported; this keeps slicing explicit instead of adding Python-style negative-index magic.
- Counts past the end return the available text, so callers do not need to pre-check length for bounded snippets.
Breaking Changes
None.
Upgrade
Regenerate docs, install locally, and produce release artifacts with:
scripts/build-docs-site.sh
scripts/check-docs-site.sh
scripts/install-local.sh v6.3.0
scripts/release.sh v6.3.0 dist
v6.2.0 - Native Numeric Runtime Helpers
Date: 2026-05-26
v6.2.0 adds the small numeric and CLI runtime pieces needed by WalkLang-native ML-style programs without adding an external ML library or broad serialization surface.
Added
- Stable
math.exp(number) -> float. - Stable
math.log(number) -> float. - Stable
random.float(number, number) -> float, returning uniform floats in[min, max)and returningminwhenmax < min. - A documented Marsaglia polar recipe for normal sampling instead of a frozen first-party
random.normalAPI. walk run <source.walk> -- <program args>passthrough to the compiled temporary executable.
Notes
random.floatuses the same runtime-owned process PRNG asrandom.intandrandom.choice; WalkLang still does not expose manual seeding.- Binary numeric serialization and dense-array persistence remain future standard-platform design work.
Breaking Changes
None.
Upgrade
Regenerate docs, install locally, and produce release artifacts with:
scripts/build-docs-site.sh
scripts/check-docs-site.sh
scripts/install-local.sh v6.2.0
scripts/release.sh v6.2.0 dist
v6.1.0 - PicoNet String And Map Tooling
Date: 2026-05-26
v6.1.0 adds the small language and standard-library surface PicoNet needed without changing WalkLang's explicit design: stable string cleanup helpers and a draft string-array map for visible, namespaced table operations.
Added
- Stable
string.lower(text),string.split(text, sep), andstring.replace(text, from, to)helpers. - Draft
map[string]array[string]type syntax. - Draft
mapmodule withmap.empty,map.has,map.get,map.set,map.keys, andmap.push. - Draft map index lookup, so
table['of the']returns the key'sarray[string]. - Native runtime/conformance fixture coverage for draft map behavior.
Changed
scripts/install-local.shnow replaces installedwalkandwalktopbinaries atomically from its temp directory before verifying them.
Notes
string.loweris ASCII-only by design for this MVP.- Draft maps currently support only
stringkeys andarray[string]values. - Missing
map.getkeys return an emptyarray[string]. map.setandmap.pushreturn a new map value; assign the result back to keep the change.
Breaking Changes
None.
Upgrade
Regenerate docs, install locally, and produce release artifacts with:
scripts/build-docs-site.sh
scripts/check-docs-site.sh
scripts/install-local.sh v6.1.0
scripts/release.sh v6.1.0 dist
v6.0.0 - Systems Compiler Port
Date: 2026-05-26
v6.0.0 ships the completed systems compiler port. walk is now built from C++ sources, Walk programs still compile through generated C and the Walk C runtime, and the former Go reference implementation plus JavaScript docs assets are removed from the active repository.
Added
- Phase 1 systems compiler port conformance oracle under
tests/conformance/, with a manifest, recorded reference outputs, generated-C snapshot oracle artifacts, and a shell runner that supportsWALK_REFplus futureWALK_CANDIDATEcomparison. - Phase 2 runtime extraction with
runtime/walk_runtime.h,runtime/walk_runtime.c, host platform C files, and direct C runtime tests for allocation, strings, arrays, process, files, terminal helpers, and runtime errors. - Phase 3 C++ compiler skeleton under
compiler/, withmake walk,make test, C++ command dispatch, version/help behavior, deterministic diagnostics, source loading support, and a C++ unit-test harness. - Phase 4 C++ frontend pieces under
compiler/lex/,compiler/parse/, andcompiler/ast/, with tokenization, indentation handling, AST arena ownership, parser diagnostics, andwalk-cpp check --parse-only. - Phase 5 C++ semantic checker under
compiler/sema/, with type checking, scope/name resolution, module/export resolution, built-in signatures, warning handling, and normalwalk-cpp check. - Phase 6 C++ backend pieces under
compiler/ir/andcompiler/codegen/c/, with typed IR lowering, deterministic C emission, runtime-backed native builds, and C++ candidateemit-c,build,run, andtest. - Phase 7 C++ project and package workflow pieces under
compiler/project/andcompiler/package/, withwalk.tomlparsing, projectinit/fmt/clean/check/build/test, local packageinit/resolve/publish,walk.lock, package cache verification, and preserved package checksums. - Phase 8 runtime-module conformance fixtures under
tests/runtime_modules/, covering draftio,parse,process,file,dir,path,json,term,http, andhtmlthrough native C runtime execution. - Phase 9 C++ tooling pieces under
compiler/format/,compiler/docs/,compiler/debug_map/,compiler/lsp/, andcompiler/repl/, with C++ tests for formatter, docs/site generation, LSP, and REPL behavior. - Phase 10 standard-platform parity proof for
walktop, covering C++ check/test/build, deterministic fixture mode, live OS-command mode, local install, and release artifact generation. - Phase 11 C++/C compiler promotion, with
make walkproducing the repo-localbuild/walkbinary from C++ sources.
Changed
scripts/stress-compatibility.shnow verifies the recorded conformance oracle before running the older compatibility stress checks.- Generated C now includes
walk_runtime.hand calls the stablewalk_rt_*runtime ABI instead of embedding helper bodies in every output file. - Native builds now link emitted C with the Walk runtime and platform source files, and release artifacts include a runtime source archive for installed compilers.
- During staged porting,
scripts/install-local.shandscripts/release.shbuilt a current-hostwalk-cppcandidate artifact beside the Go referencewalk. tests/conformance/run.shnow supports--parseto compare reference compiler syntax accept/reject behavior with the C++ parse-only candidate.tests/conformance/run.shnow supports--checkand--fail-diagnosticsto compare C++ semantic check behavior and exact fail diagnostics against the reference oracle.tests/conformance/run.shnow supports--emit-cand--nativeto compare generated C snapshots and native behavior between the reference compiler andwalk-cpp.tests/conformance/run.shnow supports--projectand--packageto prove project lifecycle and package lock/cache behavior against the reference compiler andwalk-cpp.tests/conformance/run.shnow supports--runtime-modulesto prove draft runtime module parity against the reference compiler andwalk-cpp.tests/conformance/run.shnow supports--toolingto prove formatter, docs, debug-map, LSP, and REPL behavior against the reference compiler andwalk-cpp.scripts/stress-compatibility.shnow keeps backend compatibility checks active for stagedwalk-cppcandidates while skipping later-phase formatter/project lifecycle checks only when the candidate advertises those commands as not ported.scripts/install-local.shandscripts/release.shnow buildwalktopthrough the C++/Cwalkcompiler by default while preservingWALK_BUILD_BINandWALK_RELEASE_BUILD_BINoverrides for diagnostics.scripts/build-docs-site.shnow builds and usesbuild/walkby default, and the old Go site generator underscripts/sitegen.gohas been removed.scripts/install-local.sh,scripts/release.sh, CI, docs generation, and compatibility stress now run through the C++/Cwalktoolchain without Go.- The docs site is now static HTML/CSS only; interactive JavaScript search has been replaced with static shortcut navigation.
- The VS Code package is syntax-only so the repository no longer carries a JavaScript extension runtime.
Removed
- The Go reference implementation under
cmd/andinternal/, Go module metadata, and remaining Go test source. - JavaScript source files from the docs/site surface and editor package.
v5.14.1 - Systems Compiler Port Contract
Date: 2026-05-26
v5.14.1 publishes the accepted systems compiler port contract for moving WalkLang to a permanent C++ compiler core, C runtime, C backend, and optional assembly architecture.
Added
docs/SYSTEMS_COMPILER_PORT_PLAN.md, the execution contract for the port.- Generated docs-site navigation for the systems compiler port plan.
- Phase-by-phase prompts, status gates, verification commands, feature
preservation requirements, and final no-Go/no-JavaScript language-accounting gates.
Changed
- Current-facing docs now identify
v5.14.1as the current project version. - CI release artifact naming now targets
v5.14.1.
Notes
- This release does not replace the current reference compiler. It publishes the
- The next implementation step is Phase 1 in
port contract and keeps the current WalkLang feature surface intact.
docs/SYSTEMS_COMPILER_PORT_PLAN.md: the conformance oracle.
Breaking Changes
None.
Upgrade
Regenerate docs, install locally, and produce release artifacts with:
scripts/build-docs-site.sh
scripts/check-docs-site.sh
scripts/install-local.sh v5.14.1
scripts/release.sh v5.14.1 dist
v5.14.0 - CLI Standard Platform And walktop
Date: 2026-05-26
v5.14.0 ships the first CLI standard-platform slice with walktop, an official standalone WalkLang-built system monitor.
Added
tools/walktop/, a real WalkLang project withsrc/main.walk,src/walktop.walk, tests, fixture data, and local README.walktop --once,walktop --frames 5, andwalktop --fixture tools/walktop/testdata/basic.- Deterministic fixture-mode parsing and rendering tests for dashboard output, argument validation, stable bars, and warning rows.
- End-to-end native build/run coverage proving
walktop --once --fixture ...through the public compiler path.
Changed
scripts/install-local.shnow builds and installswalktopbesidewalkfrom WalkLang source.scripts/release.shnow emits the existing cross-platformwalkartifacts plus one current-hostwalktopartifact and checksums it.- Install and standard-platform docs now describe the shipped
walktopslice.
Notes
walktopstays CLI-only. It uses terminal color/style/clear APIs but does not add a keyboard/event-loop TUI framework.- Live mode gathers local machine data through OS commands first; fixture mode keeps tests deterministic.
- No new terminal primitive was needed for this slice.
Breaking Changes
None.
Upgrade
Regenerate docs, install locally, and produce release artifacts with:
scripts/build-docs-site.sh
scripts/check-docs-site.sh
scripts/install-local.sh v5.14.0
scripts/release.sh v5.14.0 dist
v5.13.1 - Single Version And Developer Path Cleanup
Date: 2026-05-26
v5.13.1 aligns the current-facing project version around one number and removes old milestone labels from developer-facing paths that appear during normal CI, docs, examples, script, fixture, and test work.
Changed
- Current-facing README, docs index, status, compatibility, spec, roadmap, and
- Active docs source pages and generated docs routes use purpose-based names
- Active example and compatibility fixture paths use purpose-based names:
- The compatibility stress script is now
scripts/stress-compatibility.sh, and - Generated API reference examples now use non-versioned
Since: current
generated docs wording now describe one Project Version instead of separate language/compiler/stable-version lines.
such as STABLE_FEATURES, TOOLING, and RUNTIME_BACKEND instead of milestone page names.
examples/stable.walk, examples/compiler_tests.walk, examples/compiler_tracer.walk, and tests/compat/stable/.
CI uses the renamed script plus v5.13.1 release artifacts.
metadata, keeping old version numbers out of current-facing generated docs.
Notes
- Historical release notes and migration history intentionally keep their old
- This release changes docs, generated docs, examples, CI, scripts, and fixture
version references.
paths. It does not change the language grammar or runtime behavior.
Breaking Changes
- Developer workflows that call
scripts/stress-v1.sh, readexamples/v1.walk,
or reference tests/compat/v1/ need to update to the purpose-based path names listed above.
Upgrade
Regenerate docs and release artifacts with:
scripts/build-docs-site.sh
scripts/check-docs-site.sh
scripts/release.sh v5.13.1 dist
v5.13.0 - Explicit Systems Track
Date: 2026-05-25
v5.13.0 implements the explicit-systems release slice while keeping the stable language contract at v1.9. The new language behavior is draft unless promoted by a later compatibility decision.
Added
- Draft
defer:scope cleanup for explicit effect cleanup at lexical block - Recoverable-result documentation policy that keeps ordinary failures as
- Package collection-root docs and enforcement.
stdis reserved for a future - First-class build modes for
walk buildandwalk run:--mode debug, - Project config support for
[build].mode = "debug"or"release", with
exit. Deferred cleanups run in last-in, first-out order, run before early return:, and loop-body defers run once per iteration.
explicit data through concrete result structs with ok, value, and error fields.
first-party root, and package publishing rejects names reserved for current or future built-in roots.
--mode release, --debug, and --release.
[build].release retained as a compatibility field.
Notes
--releaseremains a supported alias for--mode release.- Debug mode is the default and passes
-g -O0to the native compiler. - Release mode continues to pass
-O3 -DNDEBUG; user--cflagvalues still - When
[build].modeand[build].releaseboth appear,modewins and a - The stable language contract remains v1.9.
append after mode flags.
warning is emitted.
Breaking Changes
None.
Upgrade
Regenerate docs and release artifacts with:
scripts/build-docs-site.sh
scripts/check-docs-site.sh
scripts/release.sh v5.13.0 dist
v5.12.3 - Sidebar Navigation Cleanup
Date: 2026-05-24
v5.12.3 cleans up the generated docs sidebar so the public navigation is organized by reader task and document role instead of exposed release milestones. The stable language contract remains v1.9 and the draft runtime API surface is unchanged from v5.12.0.
Improved
- Sidebar links now use topic labels such as
Syntax,Specification, - The primary sidebar groups now follow the documentation roles: Start,
- Historical
V1,V2, andV3milestone pages remain generated and - Release notes now appear in the sidebar as
Version History.
Standard Library, API Reference, Architecture, and Purpose instead of version-heavy page titles.
Language, Reference, Tools, Project, and Releases.
linkable, but they no longer appear as top-level sidebar entries.
Notes
- Page titles, generated pages, search metadata, and release history remain
- The stable language contract remains v1.9.
intact. This release changes navigation presentation, not language behavior.
Breaking Changes
None.
Upgrade
Regenerate docs and release artifacts with:
scripts/build-docs-site.sh
scripts/check-docs-site.sh
scripts/release.sh v5.12.3 dist
v5.12.2 - Search Result Previews
Date: 2026-05-24
v5.12.2 improves the generated docs search result cards while keeping the stable language contract at v1.9 and the draft runtime API surface unchanged from v5.12.0.
Improved
- Generated search index entries are now section-level records with parent doc
- Search result cards now show a section title, parent doc/group context, and a
- Ranking now boosts section headings, section summaries, and API-shaped
- Markdown link targets are stripped from search previews so list summaries keep
context, group labels, section anchors, readable summaries, and full cleaned search text.
prose preview instead of a raw sliced Markdown snippet.
matches such as array.push, so targeted searches land on the most useful docs section first.
human labels without leaking file names.
Notes
- Search remains static and local to the generated docs site.
- The stable language contract remains v1.9.
Breaking Changes
None.
Upgrade
Regenerate docs and release artifacts with:
scripts/build-docs-site.sh
scripts/check-docs-site.sh
scripts/release.sh v5.12.2 dist
v5.12.1 - Docs Search
Date: 2026-05-24
v5.12.1 adds a small generated docs search experience while keeping the stable language contract at v1.9 and the draft runtime API surface unchanged from v5.12.0.
Added
- Sidebar docs search box on every generated static docs page.
- Generated
docs/search.jsonindex containing page titles, URLs, and compact - Small client-side search script that ranks title and body matches and links
- Site-generator tests covering the search script link and searchable index
source text from the docs Markdown files.
directly to matching docs pages.
contents.
Notes
- Search is intentionally static and local to the generated site. It does not
- The stable language contract remains v1.9.
use a hosted search service or require a backend.
Breaking Changes
None.
Upgrade
Regenerate docs and release artifacts with:
scripts/build-docs-site.sh
scripts/check-docs-site.sh
scripts/release.sh v5.12.1 dist
v5.12.0 - Draft Network And Rich Runtime IO
Date: 2026-05-23
v5.12.0 completes IO_PLAN.md Roadmap Phase 5 as draft compiler APIs and design docs while keeping the stable language contract at v1.9.
Added
- Draft
http.get,http.post, andhttp.requesthelpers. - Draft
HttpResultfor recoverable HTTP status, body, and error data. - Draft
html.escape,html.h1,html.p, andhtml.buttontext helpers. - Networking security, timeout, response-size, TLS/backend, and no-public-network
- Rich runtime design boundaries for HTML helpers, web servers, native graphics,
- Native local-loopback HTTP tests and HTML escaping tests for the draft Phase 5
test policy in docs/NETWORKING.md.
WASM/browser backend, and compiler explorer/playground integration in docs/RICH_RUNTIMES.md.
surface.
Notes
- The stable language contract remains v1.9.
- Draft HTTP delegates to the system
curlexecutable at runtime instead of - Draft HTTP does not invoke a shell, follows redirects, uses a 10 second
- HTTP status codes
200through399setok true; other status codes htmlhelpers generate escaped strings only; they do not start a web server,
linking a C TLS library into generated output.
timeout, caps response bodies at 1 MiB, and treats response bodies as UTF-8 text.
preserve the body and return ok false with error 'http status'.
run a browser, attach assets, or own a DOM.
Breaking Changes
None.
Upgrade
Regenerate docs and release artifacts with:
scripts/build-docs-site.sh
scripts/check-docs-site.sh
scripts/release.sh v5.12.0 dist
v5.11.0 - Draft Terminal UX IO
Date: 2026-05-23
v5.11.0 completes IO_PLAN.md Roadmap Phase 4 as draft compiler APIs while keeping the stable language contract at v1.9.
Added
- Draft
term.is_tty,term.color,term.background,term.style, - ANSI styling policy for TTY output,
NO_COLOR, and explicit - Deterministic terminal width and height fallbacks through
COLUMNS,LINES, - Recoverable non-interactive
term.read_keybehavior throughIOReadResult. - Native runtime tests for clean redirected output, forced ANSI output,
term.reset, term.clear, term.move, term.width, term.height, and term.read_key helpers.
CLICOLOR_FORCE testing.
80, and 24.
dimensions fallback, non-interactive key reads, invalid terminal names, and invalid-use diagnostics.
Notes
- The stable language contract remains v1.9.
- Terminal styling is opt-in and resettable through explicit
do:effect calls. - Redirected stdout remains clean by default because styling, movement, clear,
term.read_keyuses raw terminal mode only for a single key read and restores- HTTP, browser targets, graphics, and rich runtimes remain gated by later
and reset calls no-op when stdout is not a TTY.
the terminal before returning.
IO_PLAN.md roadmap phases.
Breaking Changes
None.
Upgrade
Regenerate docs and release artifacts with:
scripts/build-docs-site.sh
scripts/check-docs-site.sh
scripts/release.sh v5.11.0 dist
v5.10.0 - Draft Process And Data Interop IO
Date: 2026-05-23
v5.10.0 completes IO_PLAN.md Roadmap Phase 3 as draft compiler APIs while keeping the stable language contract at v1.9.
Added
- Draft
process.run,process.output, andprocess.run_shellhelpers. - Draft
ProcessResultandProcessOutputResultstructs for command status, stdout, stderr, and error data. - Draft
json.parse,json.stringify,json.read, andjson.writehelpers. - Draft
JsonResultfor recoverable JSON parse/read failures. - Native helper-command tests for argv-style process execution, stdout/stderr capture, non-zero status as data, and explicit shell execution.
- Native JSON tests for string escaping, compact validation, invalid JSON as data, and file-backed JSON read/write behavior.
Notes
- The stable language contract remains v1.9.
process.runis argv-style and does not invoke a shell.process.run_shellis intentionally explicit and shell-dependent; preferprocess.runwhen arguments are known.- Draft JSON APIs use compact validated JSON text as the interchange value until WalkLang has maps, dynamic values, or recursive generic JSON structs.
- Terminal raw mode, HTTP, and browser targets remain gated by later
IO_PLAN.mdroadmap phases.
Breaking Changes
None.
Upgrade
Regenerate docs and release artifacts with:
scripts/build-docs-site.sh
scripts/check-docs-site.sh
scripts/release.sh v5.10.0 dist
v5.9.0 - Draft Local Filesystem IO Completion
Date: 2026-05-23
v5.9.0 completes IO_PLAN.md Roadmap Phase 2 as draft compiler APIs while keeping the stable language contract at v1.9.
Added
- Draft
file.append,file.try_read,file.try_write, andfile.try_appendhelpers. - Draft
FileReadResultandFileActionResultstructs for recoverable file operations. - Draft
dir.list,dir.make, anddir.deletehelpers. - Draft
path.join,path.base, andpath.exthelpers. - Draft
process.chdireffect helper. - Native temp-directory tests covering append, directory creation/list/delete, path building, cwd mutation isolation, recoverable file results, and invalid-use diagnostics.
Notes
- The stable language contract remains v1.9.
- Fail-stop file, directory, and cwd helpers still use clear
walk runtime errormessages for unrecoverable draft behavior. - Recoverable
file.try_*helpers report ordinary file/path/write/read failures as result structs; allocation failure still runtime-stops. - JSON, process spawning, terminal raw mode, HTTP, and browser targets remain gated by later
IO_PLAN.mdroadmap phases.
Breaking Changes
None.
Upgrade
Regenerate docs and release artifacts with:
scripts/build-docs-site.sh
scripts/check-docs-site.sh
scripts/release.sh v5.9.0 dist
v5.8.0 - Draft Local File Text IO
Date: 2026-05-23
v5.8.0 starts the local filesystem roadmap phase with draft UTF-8 text file helpers.
Added
- Draft
file.read,file.write, andfile.existshelpers. - Native temp-directory tests for read/write/existence behavior.
- Native negative tests for missing files and invalid UTF-8 reads.
- Phase 2 IO plan decisions for path handling, UTF-8 text policy, fail-stop file errors, temp-directory tests, and deferred cwd mutation.
Notes
- The stable language contract remains v1.9.
- Draft file paths are passed to the host OS without normalization or
~expansion. Relative paths resolve against the native process current working directory. - Draft
file.readandfile.writeare fail-stop APIs for now. Recoverable file result structs remain future Phase 2 work. file.append, directory/path helpers,process.chdir, JSON, process spawning, terminal raw mode, HTTP, and browser targets remain gated byIO_PLAN.md.
Breaking Changes
None.
Upgrade
Regenerate docs and release artifacts with:
scripts/build-docs-site.sh
scripts/check-docs-site.sh
scripts/release.sh v5.8.0 dist
v5.7.0 - Draft Recoverable Text IO
Date: 2026-05-23
v5.7.0 adds the next draft IO slice: recoverable stdin reads and parse helpers that return explicit result structs instead of nullable-only values.
Added
- Draft
IOReadResult,ParseIntResult,ParseFloatResult, andParseBoolResultstructs withok,value, anderrorfields. - Draft
io.read_line()andio.read_all()for runtime-owned stdin text. - Draft
parse.int,parse.float, andparse.boolhelpers. - Native runtime tests for stdin, EOF-as-data, successful parse results, and invalid parse input.
- Checker diagnostics for invalid draft
io.read_lineandparse.intcalls.
Notes
- The stable language contract remains v1.9.
- Draft parse helpers parse the whole input string and return invalid input as data.
- File IO, JSON, process spawning, terminal raw mode, HTTP, and browser targets remain gated by
IO_PLAN.md.
Breaking Changes
None.
Upgrade
Regenerate docs and release artifacts with:
scripts/build-docs-site.sh
scripts/check-docs-site.sh
scripts/release.sh v5.7.0 dist
v5.6.0 - Draft IO Foundation
Date: 2026-05-22
v5.6.0 adds the first draft IO/process foundation without promoting it into the stable v1.9 language contract.
Added
- Draft
do:effect statements for explicit side-effect module calls. - Draft
io.write,io.write_line, andio.error_line. - Draft
process.args,process.arg_count,process.env,process.cwd, andprocess.exit. - A small built-in API registry for new IO/process functions, including effect and draft metadata.
- Conformance, fail-fixture, formatter, and native runtime tests for the draft IO/process surface.
Notes
ioandprocessare importable draft modules in the current compiler.- Runtime-created strings from the draft process helpers live for the native process lifetime.
- Broader IO remains gated on recoverable error and data-model decisions.
Breaking Changes
None.
Upgrade
Regenerate docs and release artifacts with:
scripts/build-docs-site.sh
scripts/check-docs-site.sh
scripts/release.sh v5.6.0 dist
v5.5.0 - String Interpolation
Date: 2026-05-22
v5.5.0 adds the v1.9 stable string interpolation syntax for simple display text.
Added
- Single-quoted strings may include
{expression}interpolation. - Interpolation formats
int,float,bool,string, and nullable string values. - Doubled braces such as
{{word}}output literal braces. - Compatibility and conformance fixtures now cover interpolation output and unsupported interpolation values.
Breaking Changes
None.
Upgrade
Regenerate docs and release artifacts with:
scripts/build-docs-site.sh
scripts/check-docs-site.sh
scripts/release.sh v5.5.0 dist
v5.4.1 - Random Seed Fix
Date: 2026-05-22
v5.4.1 fixes the v1.8 random runtime so fresh native process launches do not start from the same default C rand() state.
Fixed
random.choice(items)now uses the same runtime-owned seeded PRNG asrandom.int, preventing the first choice from repeating across fresh command invocations just because the process was restarted.- Added a regression test that compiles one
random.choiceprogram and executes the native binary repeatedly as fresh processes.
Breaking Changes
None.
Upgrade
Regenerate docs and release artifacts with:
scripts/build-docs-site.sh
scripts/check-docs-site.sh
scripts/release.sh v5.4.1 dist
v5.4.0 - Terminal Game Helpers
Date: 2026-05-22
v5.4.0 adds the v1.8 stable helpers needed for simple terminal games such as Hangman while keeping the existing expression, module, and C-backend model.
Added
string.at(text, index)and string indexing such asword[0], both returning one-character strings.string.contains(text, piece)for substring checks.string.concat(left, right)for explicit string building without changing numeric+.array.contains(items, item)for stable native arrays.array.push(items, item), which returns a new array with the item appended.- Empty array literals when an explicit array annotation provides the element type, such as
var: guessed array[string] = []. random.choice(items)for non-empty stable native arrays.- A compiling
playground/hangman.walkexample.
Changed
- README and docs front-door wording now separate the stable
v1.8language contract from the currentv5.4.0compiler/tooling/docs release. - The v1 stress path now covers the terminal-game helpers.
Breaking Changes
None.
Upgrade
Regenerate docs and release artifacts with:
scripts/build-docs-site.sh
scripts/check-docs-site.sh
scripts/release.sh v5.4.0 dist
v5.3.0 - Stable Required-Line Input
Date: 2026-05-22
v5.3.0 adds the v1.7 stable in: expression for required-line stdin input.
Added
in:as a core expression that reads one required line from stdin and returnsstring.- Optional
in:prompts, such asvar: name = in: 'Name? ', written to stdout without a newline and flushed before reading. - Runtime input handling for empty lines, CRLF line endings, final unterminated lines, immediate EOF, stdin read failure, and allocation failure.
- Compatibility coverage for the stable v1 input surface.
Changed
- README and docs front-door wording now separate the stable
v1.7language contract from the currentv5.3.0compiler/tooling/docs release. - The stable syntax/spec docs now describe
in:as a compatible v1.x improvement.
Breaking Changes
None.
Upgrade
Regenerate docs and release artifacts with:
scripts/build-docs-site.sh
scripts/check-docs-site.sh
scripts/release.sh v5.3.0 dist
v5.2.0 - Local Function Type Inference
Date: 2026-05-22
v5.2.0 adds the v1.6 local function type inference rule: obvious helper functions can omit parameter and return types, while ambiguous functions ask for annotations instead of guessing from call sites.
Added
- Local function parameter and return type inference for function bodies such as
func: power_four(n). - Clear diagnostics for ambiguous omitted parameter types, such as
cannot infer type for parameter value in function identity; add an annotation. walk run <source.walk>compiles a single file to a temporary native executable, runs it, streams program input and output, and cleans up the temporary build directory.walk <source.walk>is a direct shorthand forwalk run <source.walk>.
Changed
- README and docs front-door wording now separate the stable
v1.6language contract from the currentv5.2.0compiler/tooling/docs release. - README now includes a small WalkLang code example and a concise "What works today" section for public readers.
- The stable syntax/spec docs now describe local function inference as a compatible v1.x improvement.
Breaking Changes
None.
Upgrade
Regenerate docs and release artifacts with:
scripts/build-docs-site.sh
scripts/check-docs-site.sh
scripts/release.sh v5.2.0 dist
v5.1.0 - Public Docs And Reference Site
Date: 2026-05-22
v5.1.0 turns the docs and generated reference output into a repo-owned static site for walklang.wlkrlabs.com/docs.
Added
scripts/build-docs-site.shfor rebuilding generated reference docs and thescripts/check-docs-site.shfor stale generated-artifact and static-link- Generated
docs/reference/api.mdanddocs/reference/api.jsonfrom - Static site output in
public/, including the docs front door, rendered docs - GitHub Pages workflow that builds
public/and deploys it frommain. docs/V5_1.mddescribing the public docs and reference-site contract.
static site.
checks.
structured comments in real WalkLang source.
pages, API reference HTML, raw Markdown, JSON, assets, .nojekyll, and CNAME.
Changed
walk docsnow renders repository-relative source paths when sources are- CI now runs the docs-site check and labels release artifacts as
v5.1.0. - README and docs front doors now point at the hosted docs path as the public
under the current working directory, which keeps public reference output from exposing local absolute paths.
docs surface.
Breaking Changes
None.
Upgrade
Regenerate docs and release artifacts with:
scripts/build-docs-site.sh
scripts/check-docs-site.sh
scripts/release.sh v5.1.0 dist
v5.0.0 - Runtime and Backend Maturity
Date: 2026-05-22
v5.0.0 keeps C as the primary backend and makes generated output easier to inspect, optimize, and reason about at runtime.
Added
docs/V5.mdruntime/backend contract documentation.- A small generated C runtime section with WalkLang scalar aliases, array structs, print helpers, string length helper, random helper, and array allocation helper.
- Source-location comments in emitted C statements, such as
/* source: main.walk:6:1 */. - Focused v5 conformance coverage for generated-C runtime helpers, source comments, and array returns.
Changed
walk build --releasenow uses-O3 -DNDEBUGfor native C builds.- Array literals now allocate item storage through the generated runtime helper instead of pointing array structs at stack-local item buffers.
- Generated C snapshots now cover the v5 runtime section and source comments.
- Official install and CI release artifact labels now target
v5.0.0.
Runtime And Memory
WalkLang source still has no malloc, free, pointer syntax, or public garbage collector promise. Array literal item storage is owned by the generated program for the process lifetime, which makes returned arrays predictable without adding source-level ownership syntax.
Breaking Changes
None.
Upgrade
Regenerate emitted C and release binaries with the v5 compiler:
walk build main.walk -o build/main --release
scripts/release.sh v5.0.0 dist
v4.1.0 - Documentation Generator Hardening
Date: 2026-05-22
v4.1.0 keeps v5 focused on runtime/backend maturity while tightening the v4 docs generator into a small structured-doc slice.
Added
///structured comments above public WalkLang symbols.walk docs --format jsonfor machine-readable docs index output.walk docs --strictfor failing when generated public symbols are missing required docs fields.- Structured docs for the v1 example module.
- Roadmap clarification that broad docs overhaul work waits until v5 runtime behavior is stable.
Changed
walk docsnow renders Markdown from the same symbol index used for JSON output.- The default
walk docspath remains compatible with signature-only sources.
Breaking Changes
None.
Upgrade
Use the default Markdown path as before, or opt into strict generated reference docs:
walk docs -o docs/api.md src/main.walk
walk docs --strict --format json -o docs/api.json src/main.walk
v4.0.0 - Professional Tooling
Date: 2026-05-22
v4.0.0 adds first-party editor and project tooling on top of the stable project/package workflow.
Added
walk lspstdio language server.- LSP document diagnostics, formatter integration, hover, go-to-definition, find references, completion, and rename.
- VS Code extension scaffold in
editors/vscode/with syntax highlighting and LSP startup. - Neovim filetype, syntax, formatter, and LSP setup files in
editors/neovim/. walk docsMarkdown API documentation generator.walk debug-mapJSON source symbol map as debugger-adapter groundwork.- v4 tooling documentation in
docs/V4.md. - Focused v4 tests for diagnostics, formatting, completion, navigation, rename, docs, and debug maps.
Changed
- Module metadata now records resolved source paths so editor navigation can jump from imports and calls to module files.
- README current-surface docs now include the v4 professional tooling commands.
Breaking Changes
None.
Removed
None.
Experimental Or Draft
The v4 editor layer is intentionally local-first. The following remain future roadmap items:
JetBrains plugin implementation
step-through debugger adapter
generated C source maps
remote package registry integration
Upgrade
Install or build the v4 walk binary, then point editor integrations at it:
walk lsp
walk docs -o docs/api.md
walk debug-map -o build/debug-map.json
v3.0.0 - Package Ecosystem
Date: 2026-05-22
v3.0.0 adds a local, file-backed package ecosystem on top of project mode.
Added
walk package init <name>for package project scaffolding.[dependencies]inwalk.tomlwith exactMAJOR.MINOR.PATCHpins.walk package resolve <registry-dir>for copying pinned dependencies into.walk/packages/.walk.lockwith package names, versions, and checksums.- Package cache verification before project
walk check,walk test, andwalk build. - Dotted package imports such as
imp: geometry.core. walk package publish <registry-dir>for local registry publishing.- Publish-time
README.md, check, and test gates. - v3 package documentation in
docs/V3.mdanddocs/PROJECTS.md. - End-to-end v3 package lifecycle tests.
Changed
- Module loading can resolve dotted module paths such as
geometry/core.walk. - Qualified call checking now treats the final dotted segment as the exported function and the preceding path as the imported module.
Breaking Changes
None.
Removed
None.
Experimental Or Draft
The v3 package ecosystem is local-registry based. The following remain future roadmap items:
remote public package registry
registry authentication
version range solving
multiple package versions in one build
automatic package download during build
Upgrade
For project dependencies, pin exact versions and resolve before checking or building:
walk package resolve <registry-dir>
walk check --warnings=error
walk test --warnings=error
walk build
v2.2.0 - Simple Generic Composition
Date: 2026-05-22
v2.2.0 adds experimental simple generic functions as the next composition step after structs and methods.
Added
- Generic function declarations with type parameters, such as
func: first[T](items array[T]) T. - Call-site type inference for generic functions.
- Generic functions over scalar values, arrays, structs, and method-returning struct expressions.
- Exported user-module generic functions.
- Predictable C monomorphization for concrete generic calls.
- v2.2 generic pass/fail fixtures and formatter coverage.
docs/V2.mdgeneric function documentation.
Changed
exp:may now export generic functions from user modules.- Formatter output keeps generic and array type brackets tight, such as
array[T].
Breaking Changes
None.
Removed
None.
Experimental Or Draft
Structs, methods, and generic functions remain experimental in v2.2. The following remain future roadmap items:
traits
interfaces
generic structs
generic methods
explicit type-argument calls
named-field constructors
file/json/matrix APIs
Upgrade
Run:
walk check --warnings=error <your entry file>
walk test <your tests file>
walk build <your entry file> -o build/app
v2.1.0 - Methods
Date: 2026-05-22
v2.1.0 adds experimental methods on top of the v2 struct surface. Methods are receiver functions, not class-based OOP.
Added
- Method declarations with receiver syntax, such as
func: User.is_adult(self User) bool. - Method calls on struct values, such as
user.is_adult(). - Receiver-type namespacing so different structs may use the same method name.
- Type checking for method receivers and ordinary method arguments.
- Generated C lowering that keeps method calls explainable as receiver functions, such as
User__is_adult(user). - v2.1 method pass/fail fixtures and formatter coverage.
docs/V2.mdmethod documentation.
Changed
- Dotted calls now preserve receiver expressions so struct method calls can be distinguished from imported module calls.
Breaking Changes
None.
Removed
None.
Experimental Or Draft
Structs and methods remain experimental in v2.1. The following remain future roadmap items:
traits
interfaces
generic structs
named-field constructors
file/json/matrix APIs
Upgrade
Run:
walk check --warnings=error <your entry file>
walk test <your tests file>
walk build <your entry file> -o build/app
v2.0.0 - Data Modeling
Date: 2026-05-22
v2.0.0 adds experimental struct-based data modeling. The v1 compatibility contract remains documented separately in docs/SPEC.md and docs/COMPATIBILITY.md.
Added
struct:declarations with fixed typed fields.- Positional struct constructors.
- Dot field reads and mutable field assignment.
- Structs as function parameters and return values.
- Arrays of structs, indexed field access, and mutable array-element fields.
- Module-declared structs returned by exported module functions.
- v2 struct pass/fail fixtures and formatter coverage.
docs/V2.mdfor the experimental v2 data-modeling surface.
Changed
- User modules may now contain
struct:declarations at top level. structis now a reserved word.- Generated C includes typedefs for WalkLang structs and arrays of structs.
Breaking Changes
structcan no longer be used as a variable, function, field, or expression name.
Removed
None.
Experimental Or Draft
Structs are implemented but remain experimental in v2.0. The following remain future roadmap items:
methods
traits
interfaces
generic structs
named-field constructors
file/json/matrix APIs
Upgrade
Run:
walk check --warnings=error <your entry file>
walk test <your tests file>
walk build <your entry file> -o build/app
Rename any user-defined binding named struct.
v1.5.0 - Compatibility Release Preparation
Date: 2026-05-22
v1.5 prepares WalkLang for a stable v1.x line. It does not intentionally change the v1 language syntax or stable standard-library behavior.
Added
- Versioned v1 compatibility policy in
docs/COMPATIBILITY.md. - Official install instructions in
docs/INSTALL.md. - Migration guide in
docs/MIGRATING.md. - Deprecation policy in
docs/DEPRECATION.md. - v1 compatibility fixtures under
tests/compat/v1/. TestV15CompatibilitySuite...tests that compile/run stable v1 programs and check representative stable diagnostics.
Changed
README.mdanddocs/V1.mdnow describe the current surface as v1.5.- CI release artifact generation now uses
v1.5.0. scripts/stress-v1.shreports the v1.5 stress path.
Breaking Changes
None.
Removed
None.
Experimental Or Draft
The following remain outside the v1.5 compatibility promise:
file/json/matrix APIs
structs
methods
traits
interfaces
closures
package manager behavior
debugger and full LSP behavior
Upgrade
Install or build the v1.5 CLI, then run:
walk check --warnings=error <your entry file>
walk test <your tests file>
Project users should also run:
walk check --warnings=error
walk test
walk build