moor
moor copied to clipboard
A rewrite of the classic LambdaMOO server; but in Rust and on a modern tech stack
https://github.com/rdaum/moor/blob/47435a1442a1f5532c23944029e90982baa99bff/crates/kernel/src/vm/vm_execute.rs#L347 ```rust return self.push_error(state, E_TYPE); }; // TODO: quota check SVO_MAX_LIST_CONCAT -> E_QUOTA in list add and append let result = list.push(tail); f.poke(0, result); } ```
Given we're 64\-bit this is highly unlikely to ever be a concern for us, but we also don't want to \*crash\* on obscene values, so impl that here\. https://github.com/rdaum/moor/blob/47435a1442a1f5532c23944029e90982baa99bff/crates/kernel/src/vm/vm_execute.rs#L261 ```rust...
Should be possible now that we have decompilation https://github.com/rdaum/moor/blob/47435a1442a1f5532c23944029e90982baa99bff/crates/kernel/src/vm/exec_state.rs#L70 ```rust let verb_name = activation.verb_name.clone(); let definer = activation.verb_definer(); let player = activation.player; // TODO: Line numbers in 'callers' stack is...
actually write clocks/tasks/suspended tasks, but for now we just write 0 for each https://github.com/rdaum/moor/blob/47435a1442a1f5532c23944029e90982baa99bff/crates/kernel/src/textdump/write.rs#L151 ```rust } self.write_verbs(&textdump.verbs)?; // TODO: Suspended tasks, clocks, queued tasks in textdump write // actually write...
https://github.com/rdaum/moor/blob/47435a1442a1f5532c23944029e90982baa99bff/crates/kernel/src/textdump/read.rs#L185 ```rust ))) } } // TODO: handle "recycled" flag in textdump loading. let oid_str = &ospec[1..]; let Ok(oid) = oid_str.trim().parse() else { return Err(TextdumpReaderError::ParseError(format!( ```
/ Causes deadlock if the task \_requesting\_ the description is the task being / described, so I need to rethink this\. Right now this is prevented by the / runtime,...
https://github.com/rdaum/moor/blob/47435a1442a1f5532c23944029e90982baa99bff/crates/kernel/src/tasks/task.rs#L721 ```rust Ok(None) } // TODO: Unit tests for scheduler and tasks. ```
Right now to preserve MOO semantics, we do\. We may revisit this later and add a user\-selectable mode for this, and evaluate this behaviour generally\. https://github.com/rdaum/moor/blob/47435a1442a1f5532c23944029e90982baa99bff/crates/kernel/src/tasks/task.rs#L450 ```rust // conform with...
Instead of performing it in the task startup\. https://github.com/rdaum/moor/blob/47435a1442a1f5532c23944029e90982baa99bff/crates/kernel/src/tasks/task.rs#L152 ```rust task_control_receiver: Receiver, control_sender: Sender, ) { // TODO: Defer task delay to the scheduler, and let it handle the delay?...
Will probably deprecate MOO's concept of 'disconnected' and 'connected' players in the long run and emulate slack, discord, skype, etc which have a concept of 'presence' \(online, offline, away, etc\)...