From a627c56fb5bc64a3e7f454bd1e4347a590dcb123 Mon Sep 17 00:00:00 2001 From: Jay McCarthy Date: Wed, 17 Feb 2010 15:53:11 +0000 Subject: [PATCH] Removing DrScheme tool and rearranging docs svn: r18115 --- collects/plai/info.ss | 16 +--- collects/plai/plai-tool.ss | 129 -------------------------- collects/plai/private/tool-private.ss | 34 ------- collects/plai/scribblings/plai.scrbl | 74 +++++++-------- 4 files changed, 35 insertions(+), 218 deletions(-) delete mode 100644 collects/plai/plai-tool.ss delete mode 100644 collects/plai/private/tool-private.ss diff --git a/collects/plai/info.ss b/collects/plai/info.ss index d3040dd7a2..388ff29990 100644 --- a/collects/plai/info.ss +++ b/collects/plai/info.ss @@ -1,21 +1,7 @@ #lang setup/infotab -(require string-constants) (define blurb '("Language levels for the Programming Languages: Application and Interpretation textbook")) (define homepage "http://www.cs.brown.edu/~sk/Publications/Books/ProgLangs/") (define primary-file "main.ss") -(define scribblings '(("scribblings/plai.scrbl" () (language -11)))) - -(define textbook-pls - (list (list '("plai-small.gif" "plai") - "Programming Languages: Application and Interpretation" - (string-constant teaching-languages) - "Programming Languages: Application and Interpretation"))) - -(define tools (list "plai-tool.ss")) -(define tool-icons (list "plai-small.gif")) -(define tool-names - (list "Programming Languages: Application and Interpretation")) -(define tool-urls - (list "http://www.cs.brown.edu/~sk/Publications/Books/ProgLangs/")) +(define scribblings '(("scribblings/plai.scrbl" (multi-page) (language -11)))) diff --git a/collects/plai/plai-tool.ss b/collects/plai/plai-tool.ss deleted file mode 100644 index f273d0e641..0000000000 --- a/collects/plai/plai-tool.ss +++ /dev/null @@ -1,129 +0,0 @@ -; Plenty of code borrowed from the HtDP languages. -#lang scheme -(require drscheme/tool - framework/preferences - plai/private/tool-private - string-constants) - -(provide tool@) - -(define tool@ - (unit - (import drscheme:tool^) - (export drscheme:tool-exports^) - - (define (language-extension %) - (class % - (inherit get-reader get-module) - (inherit-field reader-module module) - - (define/override (get-reader-module) reader-module) - - (define/override (front-end/complete-program port settings) - (plai-complete-program port settings (get-reader) (get-module))) - - ; drscheme/private/auto-language.ss insists on #reader - ; "#lang plai\n" - (define/override (get-metadata modname settings) - (string-append - ";; The first three lines of this file were inserted by DrScheme. They record metadata\n" - ";; about the language level of this file in a form that our tools can easily process.\n" - (format "#reader~s~n" reader-module))) - - ;; Change print style in default settings from 'write to 'constructor: - (define/override (default-settings) - (let ([s (super default-settings)]) - (drscheme:language:make-simple-settings - (drscheme:language:simple-settings-case-sensitive s) - 'constructor - (drscheme:language:simple-settings-fraction-style s) - (drscheme:language:simple-settings-show-sharing s) - (drscheme:language:simple-settings-insert-newlines s) - 'test-coverage))) - - (define/override (metadata->settings metadata) - (default-settings)) - - (define/override (get-metadata-lines) 3) - - (super-new))) - - - ;; module-based-language-extension : (implements drscheme:language:module-based-language<%>) - ;; -> (implements drscheme:language:module-based-language<%>) - ;; changes the default settings and sets a few more paramters during `on-execute' - (define (module-based-language-extension super%) - (class* super% () - - (init-field reader-module) - (define/override (default-settings) - (super default-settings)) - - (define/override (marshall-settings x) - (super marshall-settings x)) - - (define/override (unmarshall-settings x) - (super unmarshall-settings x)) - - (super-new))) - - ; Returns #t if PLAI is being run for the first time and #f otherwise. - ; This is determined by the value of the plai:first-run field. If the - ; field is not present, assume #t. - (define (is-first-run?) - (preferences:set-default 'plai:first-run #t boolean?) - (preferences:get 'plai:first-run)) - - ; Add type-case to lambda-like keywords, only if (is-first-run?) => #t. PLT Scheme 4.0 adds ^def as a - ; regexp for define-like keywords. Hence, we no longer have a clause here for define-type. - (define (setup-indentation!) - (when (is-first-run?) - (preferences:set 'plai:first-run #f) - (let ([indentation-ht (first (preferences:get 'framework:tabify))]) - (hash-set! indentation-ht 'type-case 'lambda) - #;(hash-set! indentation-ht 'define-type 'define)))) - - (define (phase1) (void)) - - ;; phase2 : -> void - (define (phase2) - (local ([define plai-language% - ((drscheme:language:get-default-mixin) - (language-extension - (drscheme:language:module-based-language->language-mixin - (module-based-language-extension - (drscheme:language:simple-module-based-language->module-based-language-mixin - drscheme:language:simple-module-based-language%)))))] - - [define next-language-number (box 1)] - - [define (add-plai-language #:summary summary #:module module #:title title #:reader reader-module) - (drscheme:language-configuration:add-language - (instantiate plai-language% () - (one-line-summary summary) - (module module) - (reader-module reader-module) - (language-position (list (string-constant teaching-languages) - "Programming Languages: Application and Interpretation" - title)) - (language-numbers `(-500 -400 ,(unbox next-language-number))))) - (set-box! next-language-number (add1 (unbox next-language-number)))]) - - (add-plai-language #:summary "Scheme with datatypes" - #:module `plai - #:reader `plai/lang/reader - #:title "PLAI Scheme") - (add-plai-language #:summary "language for writing garbage collectors" - #:module `plai/collector - #:reader `plai/collector/lang/reader - #:title "GC Collector Scheme") - (add-plai-language #:summary "language for testing garbage collectors" - #:module `plai/mutator - #:reader `plai/mutator/lang/reader - #:title "GC Mutator Scheme") - (add-plai-language #:summary "language for writing web applications" - #:module `plai/web - #:reader `plai/web/lang/reader - #:title "Web Application") - (setup-indentation!))) - )) diff --git a/collects/plai/private/tool-private.ss b/collects/plai/private/tool-private.ss deleted file mode 100644 index 84b530ff94..0000000000 --- a/collects/plai/private/tool-private.ss +++ /dev/null @@ -1,34 +0,0 @@ -#lang scheme - -(provide plai-complete-program) -(define (plai-complete-program port settings reader language-module) - (let ([state 'init]) - ;; state : 'init => 'require => 'done - (lambda () - (case state - [(init) - (set! state 'require) - (let ([body-exps - (let loop () - (let ([result (reader (object-name port) port)]) - (if (eof-object? result) - null - (cons result (loop)))))]) - (expand - (datum->syntax - #f - `(,#'module #%plai ,language-module - ,@body-exps))))] - [(require) - (set! state 'done) - (syntax - (let ([done-already? #f]) - (dynamic-wind - void - (lambda () - (dynamic-require ''#%plai #f)) - (lambda () - (unless done-already? - (set! done-already? #t) - (current-namespace (module->namespace ''#%plai)))))))] - [(done) eof])))) diff --git a/collects/plai/scribblings/plai.scrbl b/collects/plai/scribblings/plai.scrbl index aa00ad5d89..fdc428a49a 100644 --- a/collects/plai/scribblings/plai.scrbl +++ b/collects/plai/scribblings/plai.scrbl @@ -50,15 +50,9 @@ Interpretation} (PLAI). The full book can be found on the Web at: @(link "http://www.cs.brown.edu/~sk/Publications/Books/ProgLangs/" "http://www.cs.brown.edu/~sk/Publications/Books/ProgLangs/") -In DrScheme, under the @onscreen{Language} menu, select @onscreen{Choose Language...}. Under the section @onscreen{Programming -Languages: Application and Interpretation}, you will find the following languages: +This package contains the following languages: -@itemize{ - @item{@secref["plai-scheme"] - @schememodlang[plai]} - @item{@secref["collector"] - @schememodlang[plai/collector]} - @item{@secref["mutator"] - @schememodlang[plai/mutator]} - @item{@secref["web"] - @schememodlang[plai/web]} -} +@local-table-of-contents[#:style 'immediate-only] @section[#:tag "plai-scheme"]{@PLAI-LANG} @@ -486,38 +480,8 @@ In @|MUTATE-LANG|, @scheme[printf] is a syntactic form and not a procedure. The @scheme[_format] is not allocated on the mutator's heap. } - -@section[#:tag "web"]{@WEB-LANG} - -@defmodulelang[plai/web] - -The @WEB-LANG language allows you to write server-side Web applications for the PLT Web Server. - -For more information about writing Web applications, see: -@other-manual['(lib "web-server/scribblings/web-server.scrbl")]. - -When you click on the @onscreen{Run} button in DrScheme, your Web application is launched in the Web server. - -The application is available at @italic{http://localhost:8000/servlets/standalone.ss}. - -The @WEB-LANG language will automatically load this URL in your Web browser. - -You may use @scheme[no-web-browser] to prevent the browser from being launched and @scheme[static-files-path] -to serve additional static files. - -@subsection{Web Application Exports} - -@declare-exporting[#:use-sources (plai/scribblings/fake-web)] - -A Web application must define a procedure @scheme[start]: - -@defproc[(start (initial-request request?)) response?]{ - -The initial request to a Web application is serviced by this procedure. - -} - -@section{Generating Random Mutators} + +@subsection{Generating Random Mutators} @defmodule[plai/random-mutator] @@ -582,3 +546,33 @@ of random mutators: PLAI program. If @scheme[input] is a file, the contents of the file are used. } + +@section[#:tag "web"]{@WEB-LANG} + +@defmodulelang[plai/web] + +The @WEB-LANG language allows you to write server-side Web applications for the PLT Web Server. + +For more information about writing Web applications, see: +@other-manual['(lib "web-server/scribblings/web-server.scrbl")]. + +When you click on the @onscreen{Run} button in DrScheme, your Web application is launched in the Web server. + +The application is available at @italic{http://localhost:8000/servlets/standalone.ss}. + +The @WEB-LANG language will automatically load this URL in your Web browser. + +You may use @scheme[no-web-browser] to prevent the browser from being launched and @scheme[static-files-path] +to serve additional static files. + +@subsection{Web Application Exports} + +@declare-exporting[#:use-sources (plai/scribblings/fake-web)] + +A Web application must define a procedure @scheme[start]: + +@defproc[(start (initial-request request?)) response?]{ + +The initial request to a Web application is serviced by this procedure. + +} \ No newline at end of file