diff --git a/src/mem/basic.rs b/src/mem/basic.rs index 54b2150..5df793e 100644 --- a/src/mem/basic.rs +++ b/src/mem/basic.rs @@ -1,12 +1,11 @@ use crate::{ mem::{ gc::Gc, - intern::Intern, ptr::ObjCell, }, obj::prelude::*, }; -use std::{collections::HashMap, ptr::NonNull}; +use std::{ptr::NonNull}; #[derive(Default)] pub struct BasicGc { @@ -45,30 +44,6 @@ impl Gc for BasicGc { } } -#[derive(Default)] -pub struct BasicIntern { - strs: HashMap>, - syms: HashMap, -} - -impl Intern for BasicIntern { - fn intern_str(&mut self, gc: &mut G, s: &str) -> StrRef { - if let Some(obj_ref) = self.strs.get(s) { - *obj_ref - } else { - todo!("TODO(obj) intern strings - need attrs for Str type somehow") - //let s = Str::new(&mut ctx, s.to_string()); - //ctx.gc_mut().alloc(s) - } - } - - fn intern_sym(&mut self, s: &str) -> Sym { - let len = self.syms.len(); - *self.syms.entry(s.to_string()) - .or_insert_with(|| Sym::new(len)) - } -} - // TODO object cloning // implementing `clone` is difficult without an ObjCtx, since Attrs has a pointer to itself. This // pointer would need to be updated. diff --git a/src/mem/mod.rs b/src/mem/mod.rs index f6e6378..1306ea7 100644 --- a/src/mem/mod.rs +++ b/src/mem/mod.rs @@ -3,14 +3,12 @@ pub mod gc; pub mod intern; pub mod ptr; -pub use basic::{BasicGc, BasicIntern}; +pub use basic::BasicGc; pub mod prelude { pub use crate::mem::{ BasicGc, - BasicIntern, gc::Gc, - intern::Intern, ptr::{DynRef, ObjRef}, }; } diff --git a/src/obj/ty.rs b/src/obj/ty.rs deleted file mode 100644 index c04b4c9..0000000 --- a/src/obj/ty.rs +++ /dev/null @@ -1,35 +0,0 @@ -use crate::obj::{attrs::AttrsBuilder, prelude::*}; -use std::cell::Cell; - -pub struct Ty { - marked: Cell, - attrs: ObjRef, -} - -impl Ty { - pub fn new(ctx: &mut ObjCtx) -> Self { - todo!() - } -} - -impl Obj for Ty { - fn attrs(&self) -> ObjRef { - todo!() - } - - fn is_marked(&self) -> bool { - self.marked.get() - } - - fn mark(&self) { - self.marked.set(true); - } - - fn unmark(&self) { - self.marked.set(false); - } - - fn as_any(&self) -> &dyn std::any::Any { - self - } -}