A small proof of concept actor system, with a nanopass compiler targeting C with a runtime utilizing a Boehm-Demers-Weiser garbage collector.
(system
((init Main ()))
(define (Main) (Init (output (state)))))(())(system
((init Main ()))
(define (Main) (_ (seq (output 1) (output 2)))))((number . 1) (number . 2))(system
((init Main 7))
(define (Main) (_ (output (state)))))((number . 7))(system
((init Main ()))
(define (Main) (8 (output success)) (_ (send (self) 8))))((atom . success))(system
((init Main ()))
(define (Main)
(_ (seq (send (self) 8)
(become (actor (8 (output success))) (state))))))((atom . success))(system
((init Main ()))
(define (Aux) (7 (output (state))) (_ ()))
(define (Main)
(_ (let ([Id (spawn Aux success)]) (send Id 7)))))((atom . success))(system
((init Main ()))
(define (Aux) (7 (output (state))) (_ ()))
(define (Main) (_ (send (spawn Aux success) 7))))((atom . success))(system
((init Main ()))
(define (Main)
(_ (let ([X 7]) (match 7 ['X (output success)])))))((atom . success))(system
((init Main ()))
(define (Main) (_ (match '(1 2) [(X _) (output X)]))))((number . 1))(system
((init Main ()))
(define (Aux) (7 (reply 8)) (_ ()))
(define (Main)
(_ (seq (send (spawn Aux ()) 7)
(output (recv (8 success)))))))((atom . success))(system
((init Main ()))
(define (Aux)
(7 (seq (reply 8) (reply 13)))
(9 (reply 10))
(_ ()))
(define (Main)
(_ (let ([Id (spawn Aux ())])
(seq (output (call Id 7 (8 a)))
(output (call Id 9 (10 b))))))))((atom . a) (atom . b))(system
((init Main ()))
(define (Aux) (Init (send (parent) foo)))
(define (Main) (Init (spawn Aux ())) (foo (output bar))))((atom . bar))(system
((init Main ()))
(define (Aux) (na (output failure)))
(define (Main)
(Init (stay (spawn Aux ())))
((Died Match_error Msg)
(let ([true (= (state) (from))]) (output Msg)))))((sys . Init))(system
((init Main ()))
(define (Counter)
(poke (stay (+ (state) 1)))
(tell (output (state)))
(_ ()))
(define (Main)
(Init
(let ([Id (spawn Counter 0)])
(match (send Id poke)
[1 (output whoops)]
[2 (output whoops)]
[(A B) (output whoops)]
[() (send Id tell)])))))((number . 1))(system
((init Main ()))
(define (Main)
(Init (send (self) 0))
(X (match (= X 100000)
[false (send (self) (+ X 1))]
[true (output success)]))))((atom . success))(system
((init Main ()))
(define (Main) (_ (seq (output (+ 1 2)) (output (+ 0 7))))))((number . 3) (number . 7))(system
((init Main ()))
(define (Main)
(_ (seq (output (= 1 1)) (output (= 1 2)) (output (= 1 foo))
(output (= foo foo)) (output (= foo bar)) (output (= () ()))
(output (= 1 ()))))))((atom . true) (atom . false) (atom . false) (atom . true)
(atom . false) (atom . true) (atom . false))