Browse Source
resolve's first-sighting path for a rawdef whose @id is already registered with different content now purges the id's existing cache entries (quiet undefine) before registering, mirroring define's re-creation behaviour. Previously it repointed id_cache_rawdef while stale rawdef_cache_about / rawdef_cache_argdata entries lingered - two rawdefs claimed the same id and a subsequent define with the original text was a silent no-op (stale cache-about hit), leaving withid lookups stuck on the inline definition. The disabled blanket "called with undefined id" stderr warning is removed - it flagged supported inline usage (parse ... withdef, direct resolve calls). Guard checks id_cache_rawdef directly (id_exists also matches aliases, where the rawdef lookup would error). Known residual: the miss path still records no -defspace for @dynamic definitions first seen via resolve. New define.test pin define_resolve_id_shadow (characterized pre-fix: the re-define no-op reproduced with the purge disabled). punk::args suite green under Tcl 9.0.3 (228 passed, 0 failed). punkshell 0.12.41. Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.commaster
5 changed files with 54 additions and 4 deletions
@ -1,4 +1,4 @@
|
||||
[project] |
||||
name = "punkshell" |
||||
version = "0.12.40" |
||||
version = "0.12.41" |
||||
license = "BSD-2-Clause" |
||||
|
||||
Loading…
Reference in new issue