-
9c87347a9e
test(inherit): add dual-backend e2e tests for class inheritance
Graeme Geldenhuys
2026-06-16 12:06:46 +0100
-
031ea9a8c0
fix(codegen): chained element write on dynamic-array-of-dynamic-array
Graeme Geldenhuys
2026-06-16 12:03:11 +0100
-
267c825237
fix(codegen): accept dynamic array as open-array argument
Graeme Geldenhuys
2026-06-16 11:56:36 +0100
-
51efaefa9d
fix(dynarray): allow SetLength on an array element (ragged 2-D arrays)
Graeme Geldenhuys
2026-06-16 11:43:25 +0100
-
2ec86bf7f6
test(records): expand record e2e coverage (both backends)
Graeme Geldenhuys
2026-06-16 11:36:59 +0100
-
09c20cd379
test(pointers): expand pointer e2e coverage (both backends)
Graeme Geldenhuys
2026-06-16 11:33:15 +0100
-
64160a0745
fix(varparam): accept an array element as a var/out argument
Graeme Geldenhuys
2026-06-16 11:26:24 +0100
-
0a9577e6d9
fix(qbe): return address (not loaded value) for an implicit-Self aggregate field
Graeme Geldenhuys
2026-06-16 11:12:45 +0100
-
8c8913a27b
fix(qbe): pass a class instance directly to an interface parameter
Graeme Geldenhuys
2026-06-16 10:56:04 +0100
-
875d511b51
fix(generics): allow a local var named after a type parameter
Graeme Geldenhuys
2026-06-16 10:39:04 +0100
-
fcf4d36fad
fix(generics): substitute type param in generic-function body locals
Graeme Geldenhuys
2026-06-16 10:32:47 +0100
-
e2b715b53b
fix(parser): support nested generic type arguments
Graeme Geldenhuys
2026-06-16 10:13:45 +0100
-
236736a3be
fix(parser): accept parenthesised lvalue as assignment target
Graeme Geldenhuys
2026-06-16 10:06:40 +0100
-
74f71023da
feat(oop): support 'inherited Method()' in expression position
Graeme Geldenhuys
2026-06-16 10:01:26 +0100
-
5f340f0956
perf(asm): amortized byte buffers in the internal assembler's ELF writer
Graeme Geldenhuys
2026-06-16 02:06:45 +0100
-
32756f6f25
fix(qbe): load instance pointer for @(class-field array)[idx] address
Graeme Geldenhuys
2026-06-16 02:06:09 +0100
-
0b9b66f848
feat(cli): per-backend option contract (Chain of Responsibility)
Graeme Geldenhuys
2026-06-16 00:57:24 +0100
-
0631bb0cdf
test(native): add internal-assembler conformance guard
Graeme Geldenhuys
2026-06-16 00:50:18 +0100
-
eee7f54284
fix(native): load sret Result pointer with movq, not leaq, when reading its fields
Graeme Geldenhuys
2026-06-16 00:14:26 +0100
-
88ebf75476
refactor(cli): collapse ParseArgs out-params into opts objects
Graeme Geldenhuys
2026-06-15 20:46:56 +0100
-
e642c7c8d7
refactor(cli): remove FPC-style CLI emulation
Graeme Geldenhuys
2026-06-15 20:25:05 +0100
-
9362114ee1
feat(sets): range syntax in set literals — [lo..hi] (#105)
Graeme Geldenhuys
2026-06-15 17:14:05 +0100
-
4e90165b73
feat(semantic): reject variables that shadow a type name (#102)
Graeme Geldenhuys
2026-06-15 16:38:19 +0100
-
bf63d7419f
fix(codegen): three bugs compiling units with generics + float code (#107)
Graeme Geldenhuys
2026-06-15 16:22:29 +0100
-
267e8db702
fix(rtl): WriteDecimal mishandles Low(Int64), printing only '-'
Graeme Geldenhuys
2026-06-15 16:05:37 +0100
-
fbb5a675aa
feat(format): float Format() support on the native x86-64 backend
Graeme Geldenhuys
2026-06-15 00:58:43 +0100
-
7c26598bb8
feat(format): float support in Format() — %f/%e/%g with width/precision (QBE)
Graeme Geldenhuys
2026-06-15 00:58:37 +0100
-
d3dbebbe85
test(sets): extract set-of e2e tests to cp.test.e2e.sets, run on both backends
Graeme Geldenhuys
2026-06-15 00:34:39 +0100
-
fa853e0eb2
feat(sets): jumbo sets — set of enum up to 256 members
Graeme Geldenhuys
2026-06-14 23:23:19 +0100
-
2708a6209e
feat(const): compile-time integer constant expressions (#96)
Graeme Geldenhuys
2026-06-13 19:14:14 +0100
-
9a511a22e2
feat(const): multi-dimensional array constants
Graeme Geldenhuys
2026-06-13 18:48:28 +0100
-
5fa44b33a5
fix(codegen): float-typed array elements on both backends
Graeme Geldenhuys
2026-06-13 18:07:42 +0100
-
12ebcbe09f
feat(parser): clear diagnostics for packed/bitpacked array
Graeme Geldenhuys
2026-06-13 17:56:22 +0100
-
f830a9f1ac
feat(params): array of const (heterogeneous variadic parameters)
Graeme Geldenhuys
2026-06-13 17:37:59 +0100
-
28bd5cdb38
docs(rationale): position on loosely-typed parameter passing
Graeme Geldenhuys
2026-06-13 15:29:20 +0100
-
54d7d2a573
feat(types): inline set types in any type position
Graeme Geldenhuys
2026-06-13 13:45:13 +0100
-
ba51a53365
feat(vars): initialised global variables (var G: T = value)
Graeme Geldenhuys
2026-06-13 13:29:43 +0100
-
42f48c9ece
fix(codegen): Inc/Dec on a captured outer-scope variable
Graeme Geldenhuys
2026-06-13 12:29:05 +0100
-
7567356e84
fix(opdf): emit Boolean and real constants correctly
Graeme Geldenhuys
2026-06-13 12:11:14 +0100
-
ccd109ce77
feat(arrays): support multi-dimensional static arrays
Graeme Geldenhuys
2026-06-13 11:56:38 +0100
-
7b8116310f
feat(opdf): emit open-array debug info (ArrayKind=2 + companion slot)
Graeme Geldenhuys
2026-06-13 01:06:16 +0100
-
6ba1bc9b78
fix(semantic): reject void/procedure-call results as WriteLn/Write arguments
Graeme Geldenhuys
2026-06-12 18:12:48 +0100
-
b3024facc0
fix(semantic): reject procedural/record/class types as WriteLn/Write arguments
Graeme Geldenhuys
2026-06-12 17:46:56 +0100
-
1b0afaf3d3
fix(test): derive blaise binary path from TestRunner location, not cwd
Graeme Geldenhuys
2026-06-12 16:59:15 +0100
-
75834d393d
fix(semantic): out-of-line methods now link for generic records
Graeme Geldenhuys
2026-06-12 16:45:33 +0100
-
512cbfef98
test(zero-init): use S=[] directly in SetLocal now that semantic crash is fixed
Graeme Geldenhuys
2026-06-12 16:29:57 +0100
-
75db9584dc
fix(semantic): set equality S=[] and S=[lit] no longer crash
Graeme Geldenhuys
2026-06-12 16:21:25 +0100
-
a2d263e0e8
feat(lang): guarantee zero-initialisation of all variables
Graeme Geldenhuys
2026-06-12 16:09:02 +0100
-
d182b4ab7e
fix(debug): attribute generic-instance allocation sites to the defining unit
Graeme Geldenhuys
2026-06-12 15:16:45 +0100
-
1dfc693fe5
fix(codegen): for-in over enumerators — promoted loop var and leaked enumerator
Graeme Geldenhuys
2026-06-12 15:05:43 +0100
-
eabf20ae7f
refactor(driver): driver-aware worker; registry-driven flags and pre-flight
Graeme Geldenhuys
2026-06-12 14:05:38 +0100
-
543f495f48
refactor(driver): lowering and linking through the backend drivers
Graeme Geldenhuys
2026-06-12 14:01:48 +0100
-
5603767298
refactor(driver): introduce TBackendDriver; route codegen construction
Graeme Geldenhuys
2026-06-12 13:55:01 +0100
-
06517bf1d3
fix(qbe): dispatch record/interface-returning virtual methods via vtable
Graeme Geldenhuys
2026-06-12 13:53:25 +0100
-
1ba78cf90b
fix(native): support class-receiver method calls returning interfaces
Graeme Geldenhuys
2026-06-12 13:44:19 +0100
-
f0f888f2c5
fix(codegen): interface-dispatch ABI — record args, var/out params, call receivers, discarded returns
Graeme Geldenhuys
2026-06-12 13:27:00 +0100
-
c20ddd549d
fix(codegen): interface nil-compare and interface-method sret returns
Graeme Geldenhuys
2026-06-12 12:50:19 +0100
-
81c5804ae4
fix(codegen): static-array element read/write of interface uses fat pointer
Andrew Haines
2026-06-12 12:13:54 +0100
-
1babf0c9a5
feat(linker): section merger (completes Phase A)
Graeme Geldenhuys
2026-06-12 10:13:16 +0100
-
5415815f8d
feat(linker): ELF object and ar-archive reader (Phase A)
Graeme Geldenhuys
2026-06-12 10:10:21 +0100
-
62a9b02870
fix(codegen): string-field subscripts are 0-based on both backends
Graeme Geldenhuys
2026-06-12 10:10:09 +0100
-
ff5c481ec0
test: add assembler/ELF writer tests and internal linker design doc
Graeme Geldenhuys
2026-06-12 09:55:44 +0100
-
83d40490fc
feat: add self-assembler for native x86-64 backend (--assembler internal)
Graeme Geldenhuys
2026-06-12 09:55:34 +0100
-
da2bb5a9a9
fix(native): var/out argument addresses and record-typed field assignment
Graeme Geldenhuys
2026-06-12 09:55:20 +0100
-
eeadc177a1
fix: default all option variables in the FPC-style invocation branch
Graeme Geldenhuys
2026-06-12 00:55:16 +0100
-
1a5a881d6c
feat(semantic): reserve module names as identifiers
Graeme Geldenhuys
2026-06-11 23:51:11 +0100
-
b9aae4abf5
dateutils: fixes documentation reference in header comment.
Graeme Geldenhuys
2026-06-11 23:12:30 +0100
-
b776ceb5dd
fix(codegen): fail loudly on IsArrayAccess fall-through in both backends
Graeme Geldenhuys
2026-06-11 23:06:54 +0100
-
35f8ff5970
Revert defaulting the compiler to Native backend.
Graeme Geldenhuys
2026-06-11 22:53:26 +0100
-
840b053812
fix: var parameters of dynamic-array, static-array, PChar and interface types
Graeme Geldenhuys
2026-06-11 18:50:50 +0100
-
4f2246cc57
fix(debug): per-unit source files in OPDF line records
Graeme Geldenhuys
2026-06-11 17:56:23 +0100
-
ac0acc7bdd
feat(native): build blaise-compiler with the native backend by default
Graeme Geldenhuys
2026-06-11 17:32:25 +0100
-
ca21b884bc
feat(debug): link --debug-opdf binaries as PIE
Graeme Geldenhuys
2026-06-11 15:43:02 +0100
-
248dccf6ca
feat(debug): indirect variable locations + codegen fixes they uncovered
Graeme Geldenhuys
2026-06-11 15:07:06 +0100
-
525037a4db
feat(opdf): field drilldown — unit-class symbols, Self typing, record-param shadows
Graeme Geldenhuys
2026-06-11 14:12:55 +0100
-
d2d5a8de3d
feat(opdf): native-first debugging — exact frame offsets, statement-level lines
Graeme Geldenhuys
2026-06-11 13:38:20 +0100
-
bc2bbdef03
fix(opdf): method/destructor scope records; export symbols the companion references
Graeme Geldenhuys
2026-06-11 12:35:45 +0100
-
9d35fbef1c
fix(arc): class fields consume +1 call results — ends the per-store leak
Graeme Geldenhuys
2026-06-11 12:23:50 +0100
-
d9da320d6d
fix(arc): mark TSymbolTable builtin-type caches [Unretained]
Graeme Geldenhuys
2026-06-11 12:04:33 +0100
-
b9e0ea7a9e
docs+test: collection ownership conventions — generic retention pinned
Graeme Geldenhuys
2026-06-11 11:55:34 +0100
-
d6b706ffd3
fix(native): nil l-value Free slots; sret record calls into array elements
Graeme Geldenhuys
2026-06-11 11:50:24 +0100
-
c62ce5b8b1
fix: statement-position method call through a non-Self interface field
Graeme Geldenhuys
2026-06-11 11:35:18 +0100
-
dbf2e3c879
fix(qbe): open-array args on method and constructor calls dropped the high
Graeme Geldenhuys
2026-06-11 11:30:42 +0100
-
409e1cada7
fix(native): function-of-object indirect call must load Self from TMethod
Graeme Geldenhuys
2026-06-11 11:24:32 +0100
-
f8d75e586d
feat: interface properties
Graeme Geldenhuys
2026-06-11 11:04:47 +0100
-
1b366f4c97
feat: implicit integer→float widening for math builtins and float typecasts
Graeme Geldenhuys
2026-06-11 10:17:00 +0100
-
5f0fbb7643
fix: element access through array-typed fields — r.A[i], c.N.A[i], SetLength(r.A)
Graeme Geldenhuys
2026-06-11 09:19:35 +0100
-
7b4db4d11d
fix: record elements in arrays — subscript-LHS chains, deep copy, element reads
Graeme Geldenhuys
2026-06-11 08:38:08 +0100
-
939f03eb0e
docs: native const-arg ARC port design — mark implemented
Graeme Geldenhuys
2026-06-11 07:36:13 +0100
-
434058ceda
feat(native): caller-side const-string ARC + unified call-arg hoist region
Graeme Geldenhuys
2026-06-11 04:04:39 +0100
-
17c14b37aa
perf(qbe): borrowed-local const-string args + lookup/format tail wins
Graeme Geldenhuys
2026-06-10 23:53:01 +0100
-
cfbf2b305b
fix(semantic): materialise default args in method-call statements
Graeme Geldenhuys
2026-06-10 23:52:45 +0100
-
91f44ec823
perf(qbe): shape-aware const-string argument ARC
Graeme Geldenhuys
2026-06-10 23:18:24 +0100
-
8ce374c0ba
perf(runtime): stack buffers for WriteDecimal and Format
Graeme Geldenhuys
2026-06-10 19:47:19 +0100
-
3799f1516a
perf(stdlib): hash lookup for TDictionary, TOrderedDictionary and TSet
Graeme Geldenhuys
2026-06-10 19:41:38 +0100
-
9d08c7913a
perf(runtime): inline header checks into _StringRelease
Graeme Geldenhuys
2026-06-10 19:30:43 +0100
-
475d579968
perf(semantic): overload groups replace per-call index scans
Graeme Geldenhuys
2026-06-10 19:26:45 +0100
-
4c74506e0f
perf(stdlib): hash index for unsorted TStringList.Find/IndexOf
Graeme Geldenhuys
2026-06-10 18:54:37 +0100
-
4da1233f12
fix(native): metaclass refs, ClassCreate, const-string ARC, locals init, OA literals
Graeme Geldenhuys
2026-06-10 17:39:55 +0100
-
4e220def35
fix(native): support MethodAddress with variable string argument
Graeme Geldenhuys
2026-06-10 15:43:41 +0100