Scribble skeleton following outline
This commit is contained in:
parent
d8150df066
commit
c355eaa4a5
|
@ -2,7 +2,7 @@
|
||||||
@require[racket/include]
|
@require[racket/include]
|
||||||
@include{prelude.inc}
|
@include{prelude.inc}
|
||||||
|
|
||||||
@title{Overview}
|
@title{Concepts}
|
||||||
|
|
||||||
In this paper, we present a novel "marketplace" approach to
|
In this paper, we present a novel "marketplace" approach to
|
||||||
functional systems programming, generalizing
|
functional systems programming, generalizing
|
||||||
|
@ -26,3 +26,13 @@ nestable virtual machines (VMs). The result suggests a @emph{
|
||||||
marketplace} metaphor, where communicating programs exist in a
|
marketplace} metaphor, where communicating programs exist in a
|
||||||
noisy, crowded, even chaotic context, rather than in a quiet place
|
noisy, crowded, even chaotic context, rather than in a quiet place
|
||||||
systematically going through their inboxes.
|
systematically going through their inboxes.
|
||||||
|
|
||||||
|
@section{What is a process, what are event handlers?}
|
||||||
|
@section{What is a VM?}
|
||||||
|
@section{Subscription and Advertisement}
|
||||||
|
**** orientation
|
||||||
|
**** topics and patterns
|
||||||
|
**** interest-type
|
||||||
|
**** roles
|
||||||
|
@section{Presence}
|
||||||
|
@section{Nesting, relaying, and levels of discourse}
|
|
@ -0,0 +1,11 @@
|
||||||
|
#lang scribble/manual
|
||||||
|
@require[racket/include]
|
||||||
|
@include{prelude.inc}
|
||||||
|
|
||||||
|
@title{Drivers}
|
||||||
|
|
||||||
|
@section{event-relay}
|
||||||
|
@section{tcp-bare}
|
||||||
|
@section{tcp}
|
||||||
|
@section{timer (typed and untyped)}
|
||||||
|
@section{udp (typed and untyped)}
|
|
@ -2,7 +2,9 @@
|
||||||
@require[racket/include]
|
@require[racket/include]
|
||||||
@include{prelude.inc}
|
@include{prelude.inc}
|
||||||
|
|
||||||
@title{Example: Echo Server}
|
@title{Examples}
|
||||||
|
|
||||||
|
@section{TCP echo Server}
|
||||||
|
|
||||||
Here is a complete Marketplace program, @tt{examples/echo-paper.rkt}:
|
Here is a complete Marketplace program, @tt{examples/echo-paper.rkt}:
|
||||||
|
|
||||||
|
@ -40,3 +42,8 @@ action, terminating the connection's process. The heart of our system
|
||||||
is the interface between a process and its containing VM. Our
|
is the interface between a process and its containing VM. Our
|
||||||
implementation instantiates this interface as a collection of Typed
|
implementation instantiates this interface as a collection of Typed
|
||||||
Racket programs.
|
Racket programs.
|
||||||
|
|
||||||
|
@section{TCP chat server}
|
||||||
|
@section{Authoritative DNS server}
|
||||||
|
@section{DNS resolver server}
|
||||||
|
@section{SSH server}
|
|
@ -0,0 +1,30 @@
|
||||||
|
#lang scribble/manual
|
||||||
|
@require[racket/include]
|
||||||
|
@include{prelude.inc}
|
||||||
|
|
||||||
|
@title{High-level interface}
|
||||||
|
|
||||||
|
@section{#lang marketplace}
|
||||||
|
**** ground-vm, ground-vm:
|
||||||
|
@section{Constructing topics and roles}
|
||||||
|
**** ?
|
||||||
|
**** Role
|
||||||
|
**** Orientation
|
||||||
|
**** InterestType
|
||||||
|
@section{Constructing transitions}
|
||||||
|
**** transition, transition:, transition/no-state
|
||||||
|
**** cons-trees of actions; null, false, void; use of (when)
|
||||||
|
**** sequence-actions
|
||||||
|
@section{Actions}
|
||||||
|
**** Communication-related
|
||||||
|
***** endpoint, endpoint:
|
||||||
|
***** delete-endpoint
|
||||||
|
***** send-message
|
||||||
|
***** send-feedback
|
||||||
|
**** Process- and scheduling-related
|
||||||
|
***** spawn, spawn:
|
||||||
|
***** quit
|
||||||
|
***** yield, yield:
|
||||||
|
***** nested-vm, nested-vm:
|
||||||
|
**** Cross-layer
|
||||||
|
***** at-meta-level, at-meta-level:
|
|
@ -0,0 +1,19 @@
|
||||||
|
#lang scribble/manual
|
||||||
|
@require[racket/include]
|
||||||
|
@include{prelude.inc}
|
||||||
|
|
||||||
|
@title{Low-level interface}
|
||||||
|
|
||||||
|
@section{Handler functions}
|
||||||
|
@section{Events}
|
||||||
|
@section{Actions}
|
||||||
|
**** Communication-related
|
||||||
|
***** add-endpoint
|
||||||
|
***** delete-endpoint
|
||||||
|
***** send-message
|
||||||
|
**** Process- and scheduling-related
|
||||||
|
***** spawn
|
||||||
|
***** quit
|
||||||
|
***** yield
|
||||||
|
**** Cross-layer
|
||||||
|
***** at-meta-level
|
|
@ -0,0 +1,9 @@
|
||||||
|
#lang scribble/manual
|
||||||
|
@require[racket/include]
|
||||||
|
@include{prelude.inc}
|
||||||
|
|
||||||
|
@title{Management and Monitoring}
|
||||||
|
|
||||||
|
@section{generic-spy}
|
||||||
|
@section{logging (MATRIX_LOG)}
|
||||||
|
@section{debugger (experimental)}
|
|
@ -12,6 +12,11 @@ This manual TODO
|
||||||
|
|
||||||
@local-table-of-contents[]
|
@local-table-of-contents[]
|
||||||
|
|
||||||
@include-section["overview.scrbl"]
|
@include-section["concepts.scrbl"]
|
||||||
@include-section["echo-server-example.scrbl"]
|
@include-section["highlevel.scrbl"]
|
||||||
@include-section["MISC.scrbl"]
|
@include-section["lowlevel.scrbl"]
|
||||||
|
@include-section["vm.scrbl"]
|
||||||
|
@include-section["drivers.scrbl"]
|
||||||
|
@include-section["writing-drivers.scrbl"]
|
||||||
|
@include-section["management-and-monitoring.scrbl"]
|
||||||
|
@include-section["examples.scrbl"]
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
#+STARTUP: nofold
|
||||||
|
|
||||||
** Overview
|
** Overview
|
||||||
|
|
||||||
** Concepts
|
** Concepts
|
||||||
|
@ -72,3 +74,10 @@
|
||||||
*** generic-spy
|
*** generic-spy
|
||||||
*** logging (MATRIX_LOG)
|
*** logging (MATRIX_LOG)
|
||||||
*** debugger (experimental)
|
*** debugger (experimental)
|
||||||
|
|
||||||
|
** Example Applications
|
||||||
|
*** TCP echo server
|
||||||
|
*** TCP chat server
|
||||||
|
*** Authoritative DNS server
|
||||||
|
*** DNS resolver server
|
||||||
|
*** SSH server
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
#lang scribble/manual
|
||||||
|
@require[racket/include]
|
||||||
|
@include{prelude.inc}
|
||||||
|
|
||||||
|
@title{How Marketplace VMs work}
|
||||||
|
|
||||||
|
@section{run-vm}
|
||||||
|
@section{unification and Racket data (struct-map)}
|
||||||
|
@section{nested VMs}
|
||||||
|
@section{ground VMs and interfacing to Racket's event system}
|
|
@ -0,0 +1,7 @@
|
||||||
|
#lang scribble/manual
|
||||||
|
@require[racket/include]
|
||||||
|
@include{prelude.inc}
|
||||||
|
|
||||||
|
@title{Writing New Drivers}
|
||||||
|
|
||||||
|
*** pseudo-substruct
|
Loading…
Reference in New Issue