Version History
Release history and version milestones for the PBXB64 compiler. The Z-series are internal Z-milestones (development drops). The V-series are user-facing release drops. Each row in the table below corresponds to a tag in the repository's version history.
Current Version: 0.50.0-V14 (Release V14) Current Version: 0.50.0-V14 (Release V14) — 2026-07-07
mdash; 2026-07-07
Implementation: Pure C11 (no C++ dependencies)
Target: Windows x64 PE32+ / COFF object files
Languages: PowerBASIC-compatible BASIC, B64, C17, inline ASM
Test matrix: 1838/1846 (8 expected fails, 0 unexpected failures, result PASS) — 974 assembly, 193 PB link+run, 22 B64 link+run, 106 C compile, 6 C link+run, 526 generated, 19 pilot link+run
mdash; 2026-07-07
Implementation: Pure C11 (no C++ dependencies)
Target: Windows x64 PE32+ / COFF object files
Languages: PowerBASIC-compatible BASIC, B64, C17, inline ASM
Test matrix: 1838/1846 (8 expected fails, 0 unexpected failures, result PASS) — 974 assembly, 193 PB link+run, 22 B64 link+run, 106 C compile, 6 C link+run, 526 generated, 19 pilot link+run
Version Milestones
| Milestone | Date | Lane | Key Features |
|---|---|---|---|
| Z58 | 2026 | B64 | B64 frontend routes through b64_frontend_build_ir() before optimization. --emit-ir / --dump-ir are split. Integer global initializers emit bytes into .data / .rdata. |
| Z58–Z60 | 2026 | PB | All PB statement handlers rewritten to use pb_try_eval_expr() instead of pb_eval_expr(). Real handlers for DIALOG, CONTROL, TCP/UDP, HOST, THREAD, REGISTER, COMM, MOUSEPTR, PROCESS, LPRINT, XPRINT, GUI, DISPLAY, FONT, MENU, GRAPHIC. |
| Z60 | 2026 | all | 4-track known-limitation sweep. B64 examples 11/11, PB Link+Run 6/6, C compile 63/63, C link+run 1/1. Runtime stubs replaced with real Win32 calls. |
| Z61 | 2026 | PB / link | Win64 multi-arg ABI fix (5+ args), IR_OP_REM correctness (CQO/IDIV implicit readers), FOR loop body const-fold fix, link-symbol sweep (25 missing runtime symbols added). Float FOR loop, negative STEP, CURRENCY type coverage. |
| Z64 | 2026 | all | 25-bug sweep. PB frontend codegen (12), crash fixes (3), type system fixes (3), B64 frontend fixes (4), diagnostic fixes (3). 318/318 tests green. V3 release. |
| Z65 | 2026 | H-Lib | 10 native H-Lib container families: Arr, Stk, Que, Lst, Str, 2D, Hsh, Tre, DTre, Tri. Method-dispatch syntax, auto-init on entry, auto-finalize on scope exit. 12 container test files pass. |
| Z66 | 2026 | runtime | MinGW snprintf crash fix, build script robustness, user-runtime helper object (c_runtime_user.c). P0 runtime: ERROR$, UCODE$ / UCODEPAGE, PRINT USING. |
| Z67 | 2026 | H-Lib | H-Lib Phase 7 — UDT payload containers. AS LNARR OF MyType, AS LNLST OF MyType, etc. Container + UDT integration. |
| Z68 | 2026 | C | H-Lib Phase 8 — C-frontend parity. core/include/c17/pbxb64/hlib.h exposes c_hlib_lnarr_* symbols. C Link+Run lane 1/1 → 2/2. |
| Z69 | 2026 | PB / H-Lib | SortUsing callbacks + CODEPTR. Comparator-driven sort with CODEPTR(CompareFn). Real function-address extraction in IR. |
| Z70 | 2026 | PB / V | VARIANT completeness sweep. Variant scalars/arrays, deep-copy lifecycle, FOR-loop memory-corruption fix. Variant stress test. |
| Z71 | 2026 | H-Lib | H-Lib Phase 10 — [] subscript access. a[1] = 100, n = h["k"]. sys_date_time_environ_command runtime completion. |
| Z72 | 2026 | H-Lib | H-Lib Phase 11 — Heap, Deque, Set, Graph container families. |
| Z73 | 2026 | H-Lib | H-Lib Phase 12 — Multiset, UnionFind, LRU, Ring, SkipList, B+Tree, Quadtree, Bloom, Safe container families. 23 families total. |
| Z74 | 2026 | PB | Generated PB system regression sweep. Hardened DATE$/TIME$, COMMAND$/ENVIRON$, MOUSEPTR, PROCESS PRIORITY, UCODE$/UCODEPAGE. Float-register-lifetime bug fixed. |
| Z75 | 2026 | PB | Real RND, RANDOMIZE, INKEY$, WAITKEY$ user runtime. LCG-based RNG with deterministic seed; Win32 console-input reads (PeekConsoleInputA / ReadConsoleInputA). |
| Z76 | 2026 | all | V5 ship-readiness sweep. INTEGER byte-size consistency, removed stale core/source/include/compiler/frontend/pb_ast.h. RESET, LIKE, FRAC, TIX, RND/RANDOMIZE replaced with real implementations. 1591/1591 tests, 0 expected fails. |
| V6 | 2026-06-14 | dist | First public release of the V-series distribution. Compressed single-binary PBXB64.exe (~919 KB), includes PBXB64_Help.chm. |
| V7 | 2026-06-15 | dist | Updated H-Lib coverage and command-line option documentation. -E preprocessor mode, -I / -isystem search paths. |
| V8 | 2026-06-17 | core | Wide-integer 128/256/512-bit native types (INT128 / UINT128 / INT256 / UINT256 / INT512 / UINT512) with inline arithmetic. Print support for all wide-integer types. Assembler global directive fix. |
| V8.1 | 2026-06-18 | core | MSGBOX ? shorthand alias (PB/CC compatible). TBOX timed message box with [d] timeout marker and auto-dismiss thread. |
| V12 | 2026-06-25 | core / dist | WSTRING binary I/O (PUT$$ / GET$$ / PUT$$# / GET$$# builtins, PUT # / GET # statement WSTRING support). Linker import table fixes: WSAGetLastError → ws2_32.dll, __acrt_iob_func → CRT DLL. GEP byte-offset scaling fix for dynamic file-handle slot lookup. FILEATTR(#n, 1) now returns actual OS handle. New science types: DEC128 (16-byte decimal fixed-point, 18-digit precision) and RATIONAL (exact rational arithmetic, automatic GCD normalization). Digitally signed with Certum Code Signing CA. 1838/1846 tests passing, 8 expected fails, 0 unexpected failures. |
| V13 | 2026-06-29 | core / dist | Fixed-point optimizer pipeline (all passes iterate to convergence, capped at 10 iterations). Loop preheader insertion (enables LICM on real loops). Unsigned division-by-constant strength reduction (UMULH + shift sequence, ~14x faster than IDIV). Improved inlining (corrected ARG-ID mappings, CONST operand protection). UPX-packed binary (27.5% compression). No regressions from V12 baseline: 1182/1185 Assembly, 98/98 PB, 22/22 B64, 2/2 C Link+Run. |
| V10 | 2026-06-21 | help / core | Unified help file quality sweep plus PB correctness and feature-completion sweep. Added 47 detailed command-line option pages, fixed 3 broken ASM instruction links (CLD, MOVS, STOS), added POPA/PUSHA/STD pages, updated PILOT command stubs. Boolean semantics aligned to PB (-1/0), numeric MIN/MAX n-arg lowering, colon-boundary error recovery, TXT handle parser fix, hybrid directive skipping. Validation lane: 1838/1846 tests, 8 expected fails, 0 unexpected failures. Rebuilt PBXB64_Help.chm with zero compiler warnings and full search/index coverage. |
Compiler Characteristics (V14)
- Pure-C toolchain: No C++ dependencies, single C17 codebase (~245 C source files)
- Multi-frontend: PowerBASIC (.pb), B64 (.b64), C17 (.c), inline ASM (.asm), PILOT (.pil)
- Self-contained: Parser, IR, optimizer, x64 backend, linker, runtime all in one ~1 MB binary (UPX-packed)
- Test-driven: 1182/1185 Assembly, 98/98 PB link+run, 22/22 B64 link+run, 2/2 C link+run — no regressions from V12 baseline
- Optimizer pipeline: Fixed-point iteration (all 19 passes converge, capped at 10), loop preheader insertion, unsigned division-by-constant (UMULH + shift), improved inlining
- Container library: 23 native H-Lib families with method-dispatch syntax, UDT payload support,
[]subscript access, C-frontend API - Science types:
DEC128(18-digit decimal fixed-point),RATIONAL(exact rational arithmetic),UNL/UNF(unlimited-precision numeric family),MATmatrix operations, LINALG helpers - Win64 ABI: Correct multi-argument calling (5+ args), SSE2 float operations, fixed-register spill for IDIV/CQO
- Wide integers: 128 / 256 / 512-bit signed and unsigned, inline arithmetic, no library calls
- UPX-packed: 27.5% compression ratio, ~1.1 MB distributed binary
What Was Deferred (V6 and Beyond)
- Inline
#ASMPB variable binding ({ var }→[rbp-N]) .rc→.respipeline for#RESOURCE- Full COM/OOP
CLASS/INTERFACEimplementation - Full
PRINT USINGstring/date picture-mask language (numeric masks implemented; string/date masks are minimal placeholders)
See Also
- Overview — top-level architecture and language summary
- Command-Line Options — all compiler flags
- Command Index — alphabetical A–Z list of every command