Compare commits

..

2 Commits

Author SHA1 Message Date
Scott Richmond
5478e5e40e use a hashset instead of vec for dead ids 2025-06-29 18:14:06 -04:00
Scott Richmond
f6cbe3f800 start working on packaging better 2025-06-29 18:13:49 -04:00
6 changed files with 4 additions and 27 deletions

0
pkg/.gitignore vendored Normal file
View File

View File

@ -1,3 +0,0 @@
# rudus
A Rust implementation of Ludus.

View File

@ -1,15 +0,0 @@
{
"name": "rudus",
"type": "module",
"version": "0.0.1",
"files": [
"rudus_bg.wasm",
"rudus.js",
"rudus.d.ts"
],
"main": "rudus.js",
"types": "rudus.d.ts",
"sideEffects": [
"./snippets/*"
]
}

View File

@ -1,5 +0,0 @@
import * as mod from "./ludus.js";
console.log(mod.run(`
:foobar
`));

0
pkg/worker.js Normal file
View File

View File

@ -3,7 +3,7 @@ use crate::value::Value;
use crate::vm::{Creature, Panic}; use crate::vm::{Creature, Panic};
use ran::ran_u8; use ran::ran_u8;
use std::cell::RefCell; use std::cell::RefCell;
use std::collections::HashMap; use std::collections::{HashMap, HashSet};
use std::mem::swap; use std::mem::swap;
use std::rc::Rc; use std::rc::Rc;
use std::time::{Duration, Instant}; use std::time::{Duration, Instant};
@ -67,7 +67,7 @@ pub struct Zoo {
procs: Vec<Status>, procs: Vec<Status>,
empty: Vec<usize>, empty: Vec<usize>,
ids: HashMap<&'static str, usize>, ids: HashMap<&'static str, usize>,
dead: Vec<&'static str>, dead: HashSet<&'static str>,
kill_list: Vec<&'static str>, kill_list: Vec<&'static str>,
sleeping: HashMap<&'static str, (Instant, Duration)>, sleeping: HashMap<&'static str, (Instant, Duration)>,
active_idx: usize, active_idx: usize,
@ -81,7 +81,7 @@ impl Zoo {
empty: vec![], empty: vec![],
ids: HashMap::new(), ids: HashMap::new(),
kill_list: vec![], kill_list: vec![],
dead: vec![], dead: HashSet::new(),
sleeping: HashMap::new(), sleeping: HashMap::new(),
active_idx: 0, active_idx: 0,
active_id: "", active_id: "",
@ -155,7 +155,7 @@ impl Zoo {
self.procs[*idx] = Status::Empty; self.procs[*idx] = Status::Empty;
self.empty.push(*idx); self.empty.push(*idx);
self.ids.remove(id); self.ids.remove(id);
self.dead.push(id); self.dead.insert(id);
} }
} }