Skip to content

Define core and sytems builtin functions - #109

Merged
istathar merged 10 commits into
technique-lang:mainfrom
istathar:run-6
Jun 3, 2026
Merged

Define core and sytems builtin functions#109
istathar merged 10 commits into
technique-lang:mainfrom
istathar:run-6

Conversation

@istathar

@istathar istathar commented Jun 3, 2026

Copy link
Copy Markdown
Member

Establish that the Environment is a "fresh" slate of bindings inherited from the parent but otherwise empty, threaded through the evaluator but reset each time an invocation is made.

Plumb the machinery to supply Context to embedded functions so that domains can supply additional state and configuration to enable capabilities in their host environment to be accessed.

To this end a Domain trait is established, with definitions moved to the src/domain/ tree and then each domain able to supply a functions() method in their implementation of that Trait.

The linking phase now checks that all functions are resolved.

Finally this branch implements the exec() function for executing shell scripts. This and now() are available to all domains in a common "system" layer. This layer complements the pure builtins in "core", but in the future the common I/O functions could be ommitted by a domain if that were to be desirable.

@istathar istathar self-assigned this Jun 3, 2026
@istathar
istathar merged commit bd0a8e7 into technique-lang:main Jun 3, 2026
1 check passed
@istathar
istathar deleted the run-6 branch June 14, 2026 04:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant