frostney / frostney/GocciaScript
Extract interpreter call-paths from FunctionValue / GeneratorValue
Nobody has claimed this yet.
- Dominant language
- Pascal
- Stars
- 20
- Forks
- 3
- Avg merge
- 3d 4h
- Merged PRs (30d)
- 45
Description
Summary
Extract the interpreter call-path methods from FunctionValue / GeneratorValue so those shared units stop depending on the evaluator.
Why
Goccia.Values.FunctionValue.pas and Goccia.Values.GeneratorValue.pas uses Goccia.Evaluator and call EvaluateExpression on their interpreter call paths, while the VM uses its own TGocciaBytecodeFunctionValue.Call. Those references keep the evaluator linked into every binary.
Current behavior
The shared value units embed interpreter-only Call / ExecuteFunctionBody paths that call into the evaluator.
Expected behavior
- The interpreter call paths are removed or relocated so
FunctionValue/GeneratorValueno longerusethe evaluator.
Scope notes
- A coupling to sever before deletion (#875). Parent #825.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with Goccia.Values.FunctionValue.pas and Goccia.Values.GeneratorValue.pas, then trace their interpreter call paths and the EvaluateExpression references into Goccia.Evaluator. Confirm the coupling described by #875 before changing the shared units; done means those units no longer use the evaluator and the interpreter call paths have been removed or relocated.
Written by the indexing model from the issue text.
Assessment
- Domain
- compilers
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100