Scribble skeleton following outline

This commit is contained in:
Tony Garnock-Jones 2013-04-25 17:12:17 -04:00
parent d8150df066
commit c355eaa4a5
10 changed files with 122 additions and 5 deletions

View File

@ -2,7 +2,7 @@
@require[racket/include]
@include{prelude.inc}
@title{Overview}
@title{Concepts}
In this paper, we present a novel "marketplace" approach to
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
noisy, crowded, even chaotic context, rather than in a quiet place
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}

View File

@ -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)}

View File

@ -2,7 +2,9 @@
@require[racket/include]
@include{prelude.inc}
@title{Example: Echo Server}
@title{Examples}
@section{TCP echo Server}
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
implementation instantiates this interface as a collection of Typed
Racket programs.
@section{TCP chat server}
@section{Authoritative DNS server}
@section{DNS resolver server}
@section{SSH server}

View File

@ -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:

View File

@ -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

View File

@ -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)}

View File

@ -12,6 +12,11 @@ This manual TODO
@local-table-of-contents[]
@include-section["overview.scrbl"]
@include-section["echo-server-example.scrbl"]
@include-section["MISC.scrbl"]
@include-section["concepts.scrbl"]
@include-section["highlevel.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"]

View File

@ -1,3 +1,5 @@
#+STARTUP: nofold
** Overview
** Concepts
@ -72,3 +74,10 @@
*** generic-spy
*** logging (MATRIX_LOG)
*** debugger (experimental)
** Example Applications
*** TCP echo server
*** TCP chat server
*** Authoritative DNS server
*** DNS resolver server
*** SSH server

View File

@ -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}

View File

@ -0,0 +1,7 @@
#lang scribble/manual
@require[racket/include]
@include{prelude.inc}
@title{Writing New Drivers}
*** pseudo-substruct