Update to use the official selfish spawn.
- Requires latest and greatest goblins, though.
This commit is contained in:
parent
8fd7edd0f9
commit
0efdd1f65a
4 changed files with 15 additions and 36 deletions
|
@ -1,11 +1,10 @@
|
|||
(define-module (gib-gab-gob actors)
|
||||
#:use-module (gib-gab-gob rps)
|
||||
#:use-module (gib-gab-gob lib) ;; to go into goblins eventually!
|
||||
#:use-module (goblins)
|
||||
#:use-module (goblins vat)
|
||||
#:use-module (goblins actor-lib methods)
|
||||
#:use-module (goblins actor-lib sealers)
|
||||
#:use-module (oop goops)
|
||||
#:use-module (goblins actor-lib selfish-spawn)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (ice-9 rdelim)
|
||||
#:export (^game-lobby ^client-picker))
|
||||
|
|
|
@ -1,18 +0,0 @@
|
|||
(define-module (gib-gab-gob lib)
|
||||
#:use-module (goblins)
|
||||
#:export (selfish-spawn))
|
||||
|
||||
(define (selfish-spawn constructor . args)
|
||||
|
||||
(define (^selfish bcom)
|
||||
(lambda (self)
|
||||
(bcom (apply constructor bcom self args))))
|
||||
|
||||
(let ((name (procedure-property constructor 'name)))
|
||||
(set-procedure-property! ^selfish 'name name))
|
||||
|
||||
(let ((self (spawn ^selfish)))
|
||||
(pk self)
|
||||
;; now transition to the version with self
|
||||
($ self self)
|
||||
self))
|
1
guix.scm
1
guix.scm
|
@ -85,4 +85,3 @@
|
|||
"This project demonstrates both Rock Paper Scissors and Tic Tac Toe in Goblins!")
|
||||
(home-page "https://solarpunk.moe")
|
||||
(license license:gpl3+))
|
||||
|
||||
|
|
29
hall.scm
29
hall.scm
|
@ -17,20 +17,19 @@
|
|||
((directory
|
||||
"gib-gab-gob"
|
||||
((compiled-scheme-file "actors")
|
||||
(compiled-scheme-file "lib")
|
||||
(scheme-file "rps")
|
||||
(scheme-file "actors")
|
||||
(compiled-scheme-file "rps")
|
||||
(scheme-file "lib")))))
|
||||
(compiled-scheme-file "rps")))))
|
||||
(tests ((directory "tests" ())))
|
||||
(programs
|
||||
((directory
|
||||
"scripts"
|
||||
((in-file "make-client") (in-file "make-host")))))
|
||||
((in-file "make-client")
|
||||
(in-file "make-host")))))
|
||||
(documentation
|
||||
((text-file "ChangeLog")
|
||||
(text-file "AUTHORS")
|
||||
(text-file "NEWS")
|
||||
((text-file "README")
|
||||
(text-file "HACKING")
|
||||
(text-file "COPYING")
|
||||
(directory
|
||||
"doc"
|
||||
((texi-file "version")
|
||||
|
@ -39,11 +38,14 @@
|
|||
(info-file "gib-gab-gob")
|
||||
(info-file "version")
|
||||
(texi-file "gib-gab-gob")))
|
||||
(text-file "COPYING")
|
||||
(text-file "HACKING")
|
||||
(text-file "README")))
|
||||
(text-file "NEWS")
|
||||
(text-file "AUTHORS")
|
||||
(text-file "ChangeLog")))
|
||||
(infrastructure
|
||||
((in-file "pre-inst-env")
|
||||
((automake-file "Makefile")
|
||||
(autoconf-file "configure")
|
||||
(text-file ".gitignore")
|
||||
(scheme-file "hall")
|
||||
(directory
|
||||
"build-aux"
|
||||
((tex-file "texinfo")
|
||||
|
@ -51,7 +53,4 @@
|
|||
(text-file "missing")
|
||||
(text-file "install-sh")
|
||||
(text-file "mdate-sh")))
|
||||
(scheme-file "hall")
|
||||
(text-file ".gitignore")
|
||||
(autoconf-file "configure")
|
||||
(automake-file "Makefile")))))
|
||||
(in-file "pre-inst-env")))))
|
||||
|
|
Loading…
Reference in a new issue