diff --git a/os.rkt b/os.rkt index 268ff83..67e5813 100644 --- a/os.rkt +++ b/os.rkt @@ -144,8 +144,8 @@ ;; TODO: enforce user-mode restrictions ;; TODO: timeouts -;; PatternPredicate BootK -> VM -(define (make-vm pattern-predicate boot) +;; BootK -> VM +(define (make-vm boot #:pattern-predicate [pattern-predicate default-pattern-predicate]) (vm (list) (make-queue) (make-queue) @@ -289,7 +289,7 @@ ;; MetaMessage, MetaMessagePattern = not defined because there's no outer level ;; Runs its argument VM until it becomes (provably) inert. (define (ground-vm boot #:pattern-predicate [pattern-predicate default-pattern-predicate]) - (let loop ((transition (run-vm (make-vm pattern-predicate boot)))) + (let loop ((transition (run-vm (make-vm boot #:pattern-predicate pattern-predicate)))) (for-each (lambda (thunk) (thunk)) (kernel-mode-transition-messages transition)) (when (not (nested-vm-inert? (kernel-mode-transition-subscription transition))) (match transition