-
a8f6e53785
fix(pp): // line comment containing /* no longer eats subsequent lines
main
CharlesKWON
2026-05-29 08:47:55 +09:00
-
675eaa4def
feat(hbrtl): FV_HTTPGET / FV_HTTPPOST / FV_ZIP* / FV_XML_ROWS
CharlesKWON
2026-05-29 08:47:34 +09:00
-
48bebda687
fix(gengo): hoist every BEGINDUMP-supplied import, not just fmt/strings
Charles KWON OhJun
2026-05-28 14:33:20 +09:00
-
f3e0ffe10c
feat(static): file-local scoping for STATIC FUNCTION / PROCEDURE
Charles KWON OhJun
2026-05-27 17:27:06 +09:00
-
7629f95235
fix(hbrt): variadic PValue support — snapshot pushed args per frame
Charles KWON OhJun
2026-05-27 17:17:48 +09:00
-
3fbb1a48b6
fix(parser): report missing ENDIF/ENDDO/NEXT/ENDCASE/ENDSWITCH
Charles KWON OhJun
2026-05-27 15:57:56 +09:00
-
c7ac4044f7
feat(json): hb_jsonDecode 2-arg byref form (Harbour-spec compatible)
Charles KWON OhJun
2026-05-27 10:44:12 +09:00
-
ad6cc0bcee
feat(rtl): add hb_HGetDef and PValue / hb_PValue
Charles KWON OhJun
2026-05-27 09:55:19 +09:00
-
5daba8beec
docs(gengo): explain why _v needs block scope in array compound-assign
Charles KWON OhJun
2026-05-27 09:16:28 +09:00
-
d9123acdce
fix(gengo): scope _v in array compound-assign to avoid Go redeclaration
Charles KWON OhJun
2026-05-27 09:14:49 +09:00
-
063ac6f953
chore(cli): rebrand to "AI Fusion language"
Charles KWON OhJun
2026-05-27 08:30:16 +09:00
-
6962e30151
docs(pgserver): v1.0 reference + known-limitations writeup
CharlesKWON
2026-05-22 12:31:19 +09:00
-
d7a81af7db
feat(pgserver): binary-format param decoding (Phase 4.1)
CharlesKWON
2026-05-22 10:02:15 +09:00
-
e83787750a
feat(pgserver): SCRAM-SHA-256 authentication (Phase 5.1)
CharlesKWON
2026-05-22 09:24:34 +09:00
-
ed1aeeb212
feat(pgserver): pg_catalog stub for BI-tool connection compatibility
CharlesKWON
2026-05-21 22:31:52 +09:00
-
12fcb8d249
fix(dbf): Layer 6 — EOF marker max-merge + disable append batching in shared
CharlesKWON
2026-05-21 22:03:56 +09:00
-
151b628f6c
fix(pgserver): Layer 5 — per-path mmap-gen registry + getWA torn-read
CharlesKWON
2026-05-21 21:43:04 +09:00
-
5e4a1c5d72
refactor(FiveSql2): cross-session globals → Go atomic + RWMutex
CharlesKWON
2026-05-21 19:58:52 +09:00
-
5bba0c2dae
refactor(FiveSql2): per-session aOuterStack/hDmlPcodeCache/lCteDiskSeen
CharlesKWON
2026-05-20 11:43:53 +09:00
-
4fd14f63ef
fix(dbf): max-merge header on shared-mode Close to preserve peer Append
CharlesKWON
2026-05-20 08:30:01 +09:00
-
67cd8f2306
fix(pgserver,dbf): partial fix for multi-session concurrency race
CharlesKWON
2026-05-18 16:20:25 +09:00
-
0e80b93d0a
docs(pgserver): Phase 7 — bootstrap example + CI gate documentation
CharlesKWON
2026-05-18 15:20:44 +09:00
-
3b2dd365ad
feat(pgserver): Phase 6 — TLS + source-IP allowlist
CharlesKWON
2026-05-18 14:07:19 +09:00
-
90eafcfc06
feat(pgserver): Phase 5 — password + MD5 authentication
CharlesKWON
2026-05-18 14:01:30 +09:00
-
8472928102
feat(pgserver): Phase 4 — Extended Protocol (Parse/Bind/Execute)
CharlesKWON
2026-05-17 12:55:41 +09:00
-
a5567648e9
test(pgserver): Phase 3 — DML + transaction integration harness
CharlesKWON
2026-05-17 07:25:13 +09:00
-
708329785a
test(pgserver): wire-protocol roundtrip via net.Pipe
CharlesKWON
2026-05-16 22:13:40 +09:00
-
d98f5e1767
feat(pgserver): PostgreSQL-wire MVP — psql can SELECT from FiveSql2
CharlesKWON
2026-05-16 18:40:32 +09:00
-
93cf5c8bfa
refactor(FiveSql2): per-session state — TSqlSession isolates txn + plan cache
CharlesKWON
2026-05-14 17:47:00 +09:00
-
cde86730b8
fix(compiler,hbrt,hbrdd,cli): pre-1.0 audit — 13 critical fixes
CharlesKWON
2026-05-13 05:29:56 +09:00
-
c5dd74c044
fix(pp): codeblock-in-macro + multi-line ;-continuation for #command
CharlesKWON
2026-05-13 05:28:54 +09:00
-
ce7b067785
fix(cli): multi-PRG build adds every input dir to the include path
CharlesKWON
2026-05-05 19:21:45 +09:00
-
af0d54d352
fix(lexer): {array}[index] no longer mis-tokenises [ as bracket-string
CharlesKWON
2026-05-04 21:06:13 +09:00
-
2008266da7
feat(pp,rtl): Tier 2 audit followups — JOIN hash + PP validation + C heuristic
CharlesKWON
2026-05-04 19:21:19 +09:00
-
29ca02e1bc
fix(genpc,parser,pcinterp): pcode wider regression sweep (Tier 1 #3)
CharlesKWON
2026-05-04 11:32:38 +09:00
-
dca7bb22e5
fix(gengo): count nested LOCALs into the function frame
CharlesKWON
2026-05-04 07:05:22 +09:00
-
6a30c4e50e
fix(gengo): compound assign for non-LOCAL LHS
CharlesKWON
2026-05-03 05:14:28 +09:00
-
efb615bed9
fix(frb,genpc): in-process compile + 4 pcode bugs
CharlesKWON
2026-05-02 10:25:35 +09:00
-
3ce0eceed5
fix(pp): apply rules to every ;-separated statement on a line
CharlesKWON
2026-05-01 08:27:47 +09:00
-
412351b67d
feat(rtl): LIST/DISPLAY TO FILE — text output redirection
CharlesKWON
2026-05-01 08:15:32 +09:00
-
3a7f1dea72
feat(rtl,tests): pre-release UX round (Wave 5)
CharlesKWON
2026-05-01 08:07:50 +09:00
-
1a9e509ee2
perf(rtl): SORT TO swaps insertion sort for sort.SliceStable (Wave 4)
CharlesKWON
2026-05-01 08:03:13 +09:00
-
5b1d3fb32f
feat(pp,rtl): pre-release accuracy round (Wave 3)
CharlesKWON
2026-05-01 08:01:42 +09:00
-
f30704a854
fix(rtl,pp): pre-release safety round (Wave 2)
CharlesKWON
2026-05-01 07:54:41 +09:00
-
000500e034
fix(pp,parser,gengo): pre-release blocker round (Wave 1)
CharlesKWON
2026-05-01 07:45:20 +09:00
-
e79ced2e0c
docs: log PP/std.ch round + LABEL/REPORT deferred
CharlesKWON
2026-04-30 17:52:30 +09:00
-
80a18daf8d
feat(pp): UPDATE FROM via std.ch + nested-bracket fix in matchSegment
CharlesKWON
2026-04-30 17:49:33 +09:00
-
ebe12e1108
feat(pp): JOIN WITH ... TO via std.ch + __dbJoin RTL
CharlesKWON
2026-04-30 16:42:06 +09:00
-
699ea90156
feat(pp): TOTAL TO via std.ch + __dbTotal RTL
CharlesKWON
2026-04-30 15:24:41 +09:00
-
1cc2d94927
feat(pp): LIST / DISPLAY via std.ch + four PP completeness fixes
CharlesKWON
2026-04-30 15:19:36 +09:00
-
6dbc34b34b
fix(pp): per-element blockify for list captures
CharlesKWON
2026-04-30 15:05:50 +09:00
-
989138d12e
feat(pp): SORT TO via std.ch + __dbSort RTL
CharlesKWON
2026-04-30 15:04:18 +09:00
-
e961660f61
feat(pp): COPY TO via std.ch + four PP completeness fixes
CharlesKWON
2026-04-30 15:00:18 +09:00
-
c2e7f7ea27
feat(pp): Phase B — COUNT / SUM / AVERAGE via std.ch
CharlesKWON
2026-04-30 14:11:20 +09:00
-
c4f85f494c
feat(pp): Phase A — preprocessor std.ch as single source of truth
CharlesKWON
2026-04-30 12:03:30 +09:00
-
f4ed42556b
checkpoint: season-wide bug fix campaign + infra
CharlesKWON
2026-04-30 09:26:25 +09:00
-
8a3f296e9a
perf(dbf): byte-level numeric parse + RecCount cache
CharlesKWON
2026-04-18 23:38:54 +09:00
-
325fe51656
fix(fivesql2): DML transaction + constraint ordering
CharlesKWON
2026-04-18 23:24:14 +09:00
-
e368402682
chore: audit cleanup — remove orphan parser + dead TSqlIndex methods
CharlesKWON
2026-04-18 22:46:17 +09:00
-
e5843bdde4
docs: refresh Phase-C TODO — audit results + remaining edge cases
CharlesKWON
2026-04-18 18:32:45 +09:00
-
4a1bbdb1fe
feat(pp): optional-repeat [...] blocks — DEFAULT / UPDATE from common.ch
CharlesKWON
2026-04-18 18:20:11 +09:00
-
b1024c5244
fix(gengo): hoist #pragma BEGINDUMP imports + wire HB_FUNC registration
CharlesKWON
2026-04-18 17:58:49 +09:00
-
5514780b11
feat(pp): detect Harbour inline C in #pragma BEGINDUMP and fail fast
CharlesKWON
2026-04-18 17:53:44 +09:00
-
85002df6b9
feat(parser+pp): USE with macros and paren-balanced PP capture
CharlesKWON
2026-04-18 17:38:15 +09:00
-
e9522772a7
fix(pp): stringify markers + paren-attached calls — pp.prg 26→2 errors
CharlesKWON
2026-04-18 17:26:16 +09:00
-
385a4ec6a2
fix(gengo): M-> and MEMVAR-> route to memvar table, not workarea
CharlesKWON
2026-04-18 17:14:18 +09:00
-
65b2edc906
fix(gengo): SWITCH edge cases — empty body, OTHERWISE-only, EXIT semantics
CharlesKWON
2026-04-18 17:11:47 +09:00
-
4b629f7e7a
fix(pp): #xcommand/#xtranslate patterns with paren-attached keyword
CharlesKWON
2026-04-18 17:07:06 +09:00
-
d6c26104c9
feat(rtl): common.ch aliases — ISNIL/ISARRAY/ISNUMBER and friends
CharlesKWON
2026-04-18 17:01:50 +09:00
-
d3c4447198
feat(parser): keyword-as-identifier at stmt-block boundaries
CharlesKWON
2026-04-18 16:56:44 +09:00
-
0a5482b6aa
feat(parser): implicit class binding for standalone METHOD bodies
CharlesKWON
2026-04-18 16:52:23 +09:00
-
2d82541d3d
docs: Phase C contrib TODO + Phase A/B completion marker
CharlesKWON
2026-04-18 16:38:08 +09:00
-
2a662525b3
feat(rtl): DO(xTarget, [args...]) — dynamic dispatch
CharlesKWON
2026-04-18 16:33:09 +09:00
-
327f75bb45
fix(parser): DATA x, y, z registers every name — not just the first
CharlesKWON
2026-04-18 16:17:32 +09:00
-
e089c81bcd
feat(macro): &var / &(expr) runtime compilation
CharlesKWON
2026-04-18 16:02:16 +09:00
-
66f045b97e
feat(oop): OPERATOR overloading — + - * / == != < > <= >=
CharlesKWON
2026-04-18 15:54:44 +09:00
-
34485cd6c8
feat(oop): METHOD ... INLINE <expr> and MESSAGE handlers
CharlesKWON
2026-04-18 15:41:36 +09:00
-
3a56bd321a
feat(oop): ::super:Method() dispatch for inheritance chains
CharlesKWON
2026-04-18 15:33:46 +09:00
-
3d292dd9d8
docs: document 2026-04-18 perf session — entries #27-32
CharlesKWON
2026-04-18 14:02:48 +09:00
-
c4ae88e76e
perf(fivesql2): gate CTE __cte_*.dbf cleanup on legacy disk fallback
CharlesKWON
2026-04-18 13:59:04 +09:00
-
935883bb88
perf(fivesql2): Go-native FetchRow fast path — 1.3-1.7x on agg/window
CharlesKWON
2026-04-18 13:50:02 +09:00
-
c84cde6175
perf(fivesql2): Go-native SqlIsAggName — drop per-row substring scan
CharlesKWON
2026-04-18 13:40:19 +09:00
-
6746ae4cee
perf(fivesql2): stable temp alias — 1.67x on JOIN bench
CharlesKWON
2026-04-18 13:31:01 +09:00
-
9bb361b2e0
perf(fivesql2): gate VIEW temp cleanup on actual view usage
CharlesKWON
2026-04-18 13:27:49 +09:00
-
f27c96c7f0
perf(fivesql2): extend WA cache to SELECT path — 2x faster single-table
CharlesKWON
2026-04-18 13:20:46 +09:00
-
6974ff9473
perf(gengo): elide dead-store inits for const-propagated LOCALs
CharlesKWON
2026-04-18 13:06:43 +09:00
-
b829ed4996
perf(gengo): constant-propagate literal-init LOCALs
CharlesKWON
2026-04-18 12:44:27 +09:00
-
7e4079f845
perf(gengo): reassociate left-leaning string-concat literal runs
CharlesKWON
2026-04-18 08:52:08 +09:00
-
67a9855319
perf(gengo): fold DO WHILE .T. / .F. at compile time
CharlesKWON
2026-04-18 08:45:58 +09:00
-
c3a9eb33a4
perf(gengo): fold .NOT. <literal> at compile time
CharlesKWON
2026-04-18 08:42:08 +09:00
-
1b6d913905
perf(gengo): short-circuit AND/OR with literal LHS
CharlesKWON
2026-04-18 08:35:22 +09:00
-
3f8ef7daef
perf(gengo): eliminate dead IF/ELSEIF branches with literal conds
CharlesKWON
2026-04-18 08:32:24 +09:00
-
111ab8a6f0
perf(gengo): unary-minus literal fold + x:=x+y → LocalAdd peephole
CharlesKWON
2026-04-18 08:26:59 +09:00
-
a0acdf0289
perf(gengo): compile-time constant folding for literal arithmetic
CharlesKWON
2026-04-18 08:24:27 +09:00
-
523d3fcf2e
perf(vm): in-place Plus/Minus/Mult with tInt fast path
CharlesKWON
2026-04-18 08:16:32 +09:00
-
54b35f9325
perf(vm): in-place And/Or with logical-only fast path
CharlesKWON
2026-04-18 03:16:01 +09:00
-
0fd3698ee5
perf(vm): in-place compare ops + Int-Int fast path
CharlesKWON
2026-04-17 21:00:45 +09:00
-
15aa6dd4b3
perf(vm): in-place stack ops + ArrayGen/EvalBlock shift — global 2-6%
CharlesKWON
2026-04-17 20:48:15 +09:00
-
1f63c7fe63
perf(vm): symbol hoist + Function() stack shift — global 3-15%
CharlesKWON
2026-04-17 20:41:48 +09:00
-
dd270d5d9d
perf: RTL Go-native migration — 27 optimizations, DML up to 70-90x
CharlesKWON
2026-04-17 20:20:14 +09:00