feat: MEMVAR system — PUBLIC/PRIVATE dynamic variables

Complete Harbour-compatible MEMVAR implementation:
- PUBLIC: global scope, persist until program end
- PRIVATE: function scope + called functions, auto-release on return
- Shadowing: PRIVATE can shadow PUBLIC, restored on scope exit
- Nested: multi-level PRIVATE scoping with save/restore stack
- Thread.PushMemvar/PopMemvar: stack-based memvar access
- Thread.DeclarePublic/DeclarePrivate: declaration helpers
- MacroEval: &cVar now looks up memvars (was returning string)
- Shutdown: Phase 4 clears all memvars on all threads
- Case-insensitive: all lookups uppercased

Tests: 12 tests including:
  PUBLIC create/update, case-insensitive, PRIVATE basic,
  shadow/restore, nested 3-level shadow, new var cleanup,
  release, releaseAll, names, thread integration, macro access

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-02 15:03:34 +09:00
parent 99f0ef2152
commit 2c812885c3
6 changed files with 501 additions and 13 deletions

View File

@@ -1,6 +1,6 @@
{
"version": "2.0",
"lastUpdated": "2026-04-02T03:31:23.903Z",
"lastUpdated": "2026-04-02T06:00:35.695Z",
"activeFeatures": [
"hbrt",
"hbrtl",
@@ -33,9 +33,9 @@
"documents": {},
"timestamps": {
"started": "2026-03-27T09:33:04.512Z",
"lastUpdated": "2026-04-02T03:31:23.903Z"
"lastUpdated": "2026-04-02T06:00:35.695Z"
},
"lastFile": "/mnt/d/charles/five/hbrt/valuemethods_test.go"
"lastFile": "/mnt/d/charles/five/hbrt/memvar_test.go"
},
"hbrtl": {
"phase": "do",
@@ -280,7 +280,7 @@
"session": {
"startedAt": "2026-03-27T06:06:49.620Z",
"onboardingCompleted": false,
"lastActivity": "2026-04-02T03:31:23.903Z"
"lastActivity": "2026-04-02T06:00:35.695Z"
},
"history": [
{
@@ -5898,6 +5898,60 @@
"feature": "hbrt",
"phase": "do",
"action": "updated"
},
{
"timestamp": "2026-04-02T05:54:40.580Z",
"feature": "hbrt",
"phase": "do",
"action": "updated"
},
{
"timestamp": "2026-04-02T05:55:19.328Z",
"feature": "hbrt",
"phase": "do",
"action": "updated"
},
{
"timestamp": "2026-04-02T05:55:41.645Z",
"feature": "hbrt",
"phase": "do",
"action": "updated"
},
{
"timestamp": "2026-04-02T05:56:09.123Z",
"feature": "hbrt",
"phase": "do",
"action": "updated"
},
{
"timestamp": "2026-04-02T05:56:35.776Z",
"feature": "hbrt",
"phase": "do",
"action": "updated"
},
{
"timestamp": "2026-04-02T05:57:16.672Z",
"feature": "hbrt",
"phase": "do",
"action": "updated"
},
{
"timestamp": "2026-04-02T05:59:44.560Z",
"feature": "hbrt",
"phase": "do",
"action": "updated"
},
{
"timestamp": "2026-04-02T06:00:01.216Z",
"feature": "hbrt",
"phase": "do",
"action": "updated"
},
{
"timestamp": "2026-04-02T06:00:35.695Z",
"feature": "hbrt",
"phase": "do",
"action": "updated"
}
]
}