Factor out assertion structure definitions
This commit is contained in:
parent
fecd2f9787
commit
00d50e6700
|
@ -0,0 +1,24 @@
|
||||||
|
#lang racket/base
|
||||||
|
|
||||||
|
(provide message-struct
|
||||||
|
assertion-struct
|
||||||
|
(struct-out observe)
|
||||||
|
(struct-out seal)
|
||||||
|
(struct-out inbound)
|
||||||
|
(struct-out outbound))
|
||||||
|
|
||||||
|
;; Thin veneers over `struct` for declaring intent.
|
||||||
|
(define-syntax-rule (assertion-struct item ...) (struct item ... #:prefab))
|
||||||
|
(define-syntax-rule (message-struct item ...) (struct item ... #:prefab))
|
||||||
|
|
||||||
|
(assertion-struct observe (specification))
|
||||||
|
|
||||||
|
;; Seals are used by protocols to prevent routing from examining
|
||||||
|
;; internal structure of values.
|
||||||
|
(struct seal (contents) ;; NB. Neither transparent nor prefab
|
||||||
|
#:methods gen:custom-write
|
||||||
|
[(define (write-proc s port mode)
|
||||||
|
(fprintf port "#{~v}" (seal-contents s)))])
|
||||||
|
|
||||||
|
(struct inbound (assertion) #:prefab)
|
||||||
|
(struct outbound (assertion) #:prefab)
|
|
@ -5,11 +5,6 @@
|
||||||
with-non-script-context ;; TODO: shouldn't be provided
|
with-non-script-context ;; TODO: shouldn't be provided
|
||||||
run-scripts! ;; TODO: how to cleanly provide this?
|
run-scripts! ;; TODO: how to cleanly provide this?
|
||||||
|
|
||||||
message-struct
|
|
||||||
assertion-struct
|
|
||||||
(struct-out observe)
|
|
||||||
(struct-out seal)
|
|
||||||
|
|
||||||
dataspace?
|
dataspace?
|
||||||
dataspace-assertions ;; TODO: shouldn't be provided - needed by test.rkt
|
dataspace-assertions ;; TODO: shouldn't be provided - needed by test.rkt
|
||||||
generate-id! ;; TODO: shouldn't be provided - inline syntax.rkt??
|
generate-id! ;; TODO: shouldn't be provided - inline syntax.rkt??
|
||||||
|
@ -66,20 +61,6 @@
|
||||||
(require "pattern.rkt")
|
(require "pattern.rkt")
|
||||||
(require "bag.rkt")
|
(require "bag.rkt")
|
||||||
|
|
||||||
;; TODO: move somewhere sensible
|
|
||||||
;; Thin veneers over `struct` for declaring intent.
|
|
||||||
(define-syntax-rule (assertion-struct item ...) (struct item ... #:prefab))
|
|
||||||
(define-syntax-rule (message-struct item ...) (struct item ... #:prefab))
|
|
||||||
|
|
||||||
(assertion-struct observe (specification))
|
|
||||||
|
|
||||||
;; Seals are used by protocols to prevent routing from examining
|
|
||||||
;; internal structure of values.
|
|
||||||
(struct seal (contents) ;; NB. Neither transparent nor prefab
|
|
||||||
#:methods gen:custom-write
|
|
||||||
[(define (write-proc s port mode)
|
|
||||||
(fprintf port "#{~v}" (seal-contents s)))])
|
|
||||||
|
|
||||||
;; An `ActorID` uniquely identifies an actor in a `Dataspace`.
|
;; An `ActorID` uniquely identifies an actor in a `Dataspace`.
|
||||||
;; A `FID` is a Facet ID, uniquely identifying a facet in a `Dataspace`.
|
;; A `FID` is a Facet ID, uniquely identifying a facet in a `Dataspace`.
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
#lang racket/base
|
#lang racket/base
|
||||||
|
|
||||||
(provide (all-from-out "dataspace.rkt")
|
(provide (all-from-out "dataspace.rkt")
|
||||||
|
(all-from-out "assertions.rkt")
|
||||||
(all-from-out "syntax.rkt")
|
(all-from-out "syntax.rkt")
|
||||||
(all-from-out "ground.rkt")
|
(all-from-out "ground.rkt")
|
||||||
(all-from-out "relay.rkt"))
|
(all-from-out "relay.rkt"))
|
||||||
|
@ -8,6 +9,7 @@
|
||||||
(module reader syntax/module-reader imperative-syndicate/lang)
|
(module reader syntax/module-reader imperative-syndicate/lang)
|
||||||
|
|
||||||
(require "dataspace.rkt")
|
(require "dataspace.rkt")
|
||||||
|
(require "assertions.rkt")
|
||||||
(require "syntax.rkt")
|
(require "syntax.rkt")
|
||||||
(require "ground.rkt")
|
(require "ground.rkt")
|
||||||
(require "relay.rkt")
|
(require "relay.rkt")
|
||||||
|
|
|
@ -11,13 +11,12 @@
|
||||||
;; tuples themselves - right?? Oh, maybe observing the observers would
|
;; tuples themselves - right?? Oh, maybe observing the observers would
|
||||||
;; be an, er, observable difference.)
|
;; be an, er, observable difference.)
|
||||||
|
|
||||||
(provide (struct-out inbound)
|
(provide quit-dataspace!
|
||||||
(struct-out outbound)
|
|
||||||
quit-dataspace!
|
|
||||||
dataspace)
|
dataspace)
|
||||||
|
|
||||||
(require racket/match)
|
(require racket/match)
|
||||||
(require racket/set)
|
(require racket/set)
|
||||||
|
(require "assertions.rkt")
|
||||||
(require "dataspace.rkt")
|
(require "dataspace.rkt")
|
||||||
(require "syntax.rkt")
|
(require "syntax.rkt")
|
||||||
(require "skeleton.rkt")
|
(require "skeleton.rkt")
|
||||||
|
@ -28,9 +27,6 @@
|
||||||
(require (for-syntax syntax/parse))
|
(require (for-syntax syntax/parse))
|
||||||
(require "syntax-classes.rkt")
|
(require "syntax-classes.rkt")
|
||||||
|
|
||||||
(struct inbound (assertion) #:prefab)
|
|
||||||
(struct outbound (assertion) #:prefab)
|
|
||||||
|
|
||||||
(struct *quit-dataspace* () #:transparent)
|
(struct *quit-dataspace* () #:transparent)
|
||||||
|
|
||||||
;; TODO: inbound^n, outbound^n -- protocol/standard-relay, iow
|
;; TODO: inbound^n, outbound^n -- protocol/standard-relay, iow
|
||||||
|
|
|
@ -18,6 +18,8 @@
|
||||||
(require racket/list)
|
(require racket/list)
|
||||||
|
|
||||||
(require "bag.rkt")
|
(require "bag.rkt")
|
||||||
|
(require "pattern.rkt")
|
||||||
|
(require "assertions.rkt")
|
||||||
|
|
||||||
(module+ test (require rackunit))
|
(module+ test (require rackunit))
|
||||||
|
|
||||||
|
|
|
@ -62,6 +62,7 @@
|
||||||
(require (for-syntax syntax/srcloc))
|
(require (for-syntax syntax/srcloc))
|
||||||
(require "syntax-classes.rkt")
|
(require "syntax-classes.rkt")
|
||||||
|
|
||||||
|
(require "assertions.rkt")
|
||||||
(require "dataspace.rkt")
|
(require "dataspace.rkt")
|
||||||
(require (submod "dataspace.rkt" priorities))
|
(require (submod "dataspace.rkt" priorities))
|
||||||
(require "event-expander.rkt")
|
(require "event-expander.rkt")
|
||||||
|
|
Loading…
Reference in New Issue