haku: more cleanups: remove old unused VM

also remove some leftover TODOs
This commit is contained in:
りき萌 2025-06-16 18:52:52 +02:00
parent c80cd1c7fe
commit 8b464d50f4
17 changed files with 114 additions and 1167 deletions

View file

@ -12,13 +12,12 @@ use crate::{
},
diagnostic::Diagnostic,
source::SourceCode,
system::{System, SystemFnArity},
system::{self, SystemFnArity},
};
pub struct Source<'a> {
pub code: &'a SourceCode,
pub ast: &'a Ast,
pub system: &'a System,
}
#[derive(Debug, Clone, Copy)]
@ -313,7 +312,7 @@ fn compile_unary<'a>(c: &mut Compiler<'a>, src: &Source<'a>, node_id: NodeId) ->
let name = src.ast.span(op).slice(src.code);
compile_expr(c, src, expr)?;
if let Some(index) = (src.system.resolve_fn)(SystemFnArity::Unary, name) {
if let Some(index) = system::resolve(SystemFnArity::Unary, name) {
let argument_count = 1;
c.chunk.emit_opcode(Opcode::System)?;
c.chunk.emit_u8(index)?;
@ -353,7 +352,7 @@ fn compile_binary<'a>(c: &mut Compiler<'a>, src: &Source<'a>, node_id: NodeId) -
compile_expr(c, src, left)?;
compile_expr(c, src, right)?;
if let Some(index) = (src.system.resolve_fn)(SystemFnArity::Binary, name) {
if let Some(index) = system::resolve(SystemFnArity::Binary, name) {
let argument_count = 2;
c.chunk.emit_opcode(Opcode::System)?;
c.chunk.emit_u8(index)?;
@ -391,7 +390,7 @@ fn compile_call<'a>(c: &mut Compiler<'a>, src: &Source<'a>, node_id: NodeId) ->
if let (NodeKind::Ident, Some(index)) = (
src.ast.kind(func),
(src.system.resolve_fn)(SystemFnArity::Nary, name),
system::resolve(SystemFnArity::Nary, name),
) {
c.chunk.emit_opcode(Opcode::System)?;
c.chunk.emit_u8(index)?;

View file

@ -8,10 +8,10 @@ pub mod compiler;
pub mod diagnostic;
pub mod lexer;
pub mod parser;
pub mod render;
// pub mod render;
pub mod source;
pub mod system;
pub mod token;
pub mod trampoline;
pub mod value;
pub mod vm;
// pub mod trampoline;
// pub mod value;
// pub mod vm;

File diff suppressed because it is too large Load diff