Add block pushing and wireworld simulation.

This commit is contained in:
David Thompson 2024-05-18 14:04:35 -04:00
parent b9f9e81381
commit a34a7e9b7a
12 changed files with 379 additions and 39 deletions

View file

@ -23,6 +23,7 @@
(define-module (goblins core-types)
#:use-module (hoot hashtables)
#:use-module (ice-9 match)
#:use-module (srfi srfi-9)
#:export (<actormap>
_make-actormap
actormap?
@ -89,10 +90,6 @@
live-refr?
promise-refr?))
;; hoot hacks
(define *unspecified* (if #f #f))
;; Actormaps, etc
;; ==============
(define-record-type <actormap>

View file

@ -102,24 +102,22 @@
near-resolved-promise-value
;; test-core.scm needs these; they are not otherwise exported
*unspecified*
transactormap-set!
transactormap-ref
mactor:local-link?)
#:pure
#:use-module ((hoot errors) #:select (raise-exception))
#:use-module (hoot bytevectors)
#:use-module ((hoot error-handling) #:select (format-exception))
#:use-module (hoot exceptions)
#:use-module ((hoot exceptions) #:select (make-exception-with-irritants))
#:use-module (hoot hashtables)
#:use-module (hoot match)
#:use-module ((hoot syntax) #:select (define*))
#:use-module (ice-9 control)
#:use-module (ice-9 vlist)
#:use-module ((hoot ports) #:select (flush-output-port))
#:use-module ((ice-9 control) #:select (call/ec))
#:use-module (ice-9 match)
#:use-module (ice-9 q)
#:use-module (ice-9 vlist)
#:use-module (goblins core-types)
#:use-module (goblins ghash)
#:use-module (scheme base)
#:use-module (scheme write))
#:use-module (srfi srfi-9)
#:use-module (srfi srfi-11))
;;; Utilities (which should be moved to their own modules)
@ -128,8 +126,6 @@
;;; hoot hacks
(define *unspecified* (if #f #f))
;;; Here's basically your pre-goblins area.
;; mimic Racket's seteq
@ -2110,7 +2106,8 @@ Type: Actormap (-> Any) (Optioan (#:reckless? Boolean)) -> Any"
(display msg (current-error-port)) (newline (current-error-port))
(display ";; exception: " (current-error-port))
(format-exception err (current-error-port))
(newline (current-error-port)) (flush-output-port (current-error-port)))
(newline (current-error-port))
(flush-output-port (current-error-port)))
(define (make-no-op msg)
(lambda _ *unspecified*))

View file

@ -28,7 +28,7 @@
#:use-module (hoot hashtables)
#:use-module ((hoot lists) #:select (fold))
#:use-module (ice-9 match)
#:use-module (scheme write)
#:use-module (srfi srfi-9)
#:export (make-ghash
ghash?