21 lines
775 B
Rust
21 lines
775 B
Rust
use std::{sync::{atomic::{AtomicU8, Ordering}, Arc}, fs::canonicalize};
|
|
use guile_goblins_rs::start_scm;
|
|
use rust_guile::api::GuileApi;
|
|
use rust_guile::api::subroutines::register_subroutine;
|
|
use std::fs;
|
|
fn main() {
|
|
let counter = Box::leak(Box::new(AtomicU8::new(1)));
|
|
|
|
let to_run = |api: GuileApi| {
|
|
register_subroutine("idk", |a| {
|
|
println!("i'm a closure subroutine that's been called {} times.", counter.fetch_add(1, Ordering::Relaxed));
|
|
a
|
|
});
|
|
api.load_script("./goblins.scm");
|
|
api.load_script("./repl-init.scm");
|
|
};
|
|
start_scm(vec![], to_run);
|
|
// code after here is never reached because guile exits
|
|
println!("after run counter is {}", counter.load(std::sync::atomic::Ordering::Relaxed));
|
|
}
|