Compare commits

..

3 commits

Author SHA1 Message Date
c798cde966 normalize edition to 2024
All checks were successful
per-push tests / build (push) Successful in 38s
per-push tests / test-frontend (push) Successful in 40s
per-push tests / test-utility (push) Successful in 39s
per-push tests / test-backend (push) Successful in 34s
per-push tests / timed-decomposer-parse (push) Successful in 36s
Signed-off-by: Ava Affine <ava@sunnypup.io>
2025-07-17 15:55:28 -07:00
38efb58446 add forgejo CI
Signed-off-by: Ava Affine <ava@sunnypup.io>
2025-07-17 15:55:27 -07:00
0476160ae3 WIP HyphaeVM
This commit is a WORK IN PROGRESS for the base implementation of the
HyphaeVM. This will be squashed into a larger commit eventually when
the work of implementing the HyphaeVM is finished.

Do note the in progress number package implementation in snippets

Signed-off-by: Ava Affine <ava@sunnypup.io>
2025-07-10 16:56:41 -07:00
2 changed files with 15 additions and 23 deletions

View file

@ -235,18 +235,6 @@ args = ["src"]
output = "" output = ""
description = "mutates a number datum into a char datum" description = "mutates a number datum into a char datum"
[[instructions]]
name = "ntoi"
args = ["src"]
output = ""
description = "mutates a number datum into its exact form"
[[instructions]]
name = "ntoe"
args = ["src"]
output = ""
description = "mutates a number datum into its inexact form"
[[instructions]] [[instructions]]
name = "mkvec" name = "mkvec"
args = [] args = []
@ -301,3 +289,14 @@ args = ["list"]
output = "returns last element in cons cell" output = "returns last element in cons cell"
description = "takes an AST and returns last element in top level cons cell" description = "takes an AST and returns last element in top level cons cell"
[[instructions]]
name = "parse"
args = ["input"]
output = "parses an AST from input string"
description = "calls parse and lex routine on an input string"
[[instructions]]
name = "eval"
args = []
output = "result of compiled instructions"
description = "expects AST in expr. compiles it to instructions and runs them"

View file

@ -437,19 +437,12 @@ impl VM {
e!("illegal argument to CAR instruction"); e!("illegal argument to CAR instruction");
}; };
self.expr = (*arg.1).clone(); self.expr = (*arg.0).clone();
}, },
i::CONS => { i::CONS => todo!("implement AST API"),
/* CONS BEHAVIOR i::PARSE => todo!("implement AST API"),
* L Datum is not list means create a new standard form list i::EVAL => todo!("implement AST API"),
* L Datum is list then append the second element to the first
*/
},
// in order to maintain a language agnostic VM these must be traps
//i::PARSE => todo!("implement AST API"),
//i::EVAL => todo!("implement AST API"),
_ => { _ => {
e!("illegal instruction"); e!("illegal instruction");