fix some doc links
svn: r10154
This commit is contained in:
parent
71ba775019
commit
b062c52067
|
@ -485,7 +485,7 @@ evaluates to itself. DrScheme's @tech{interactions window} knows how
|
||||||
to draw image-value results or images displayed via @scheme[print].
|
to draw image-value results or images displayed via @scheme[print].
|
||||||
|
|
||||||
A program can manipulate image values in various ways, such as using
|
A program can manipulate image values in various ways, such as using
|
||||||
the @schememodname[htdp/image] library or as an
|
the @scheme[htdp/image] library or as an
|
||||||
@scheme[image-snip%] value.
|
@scheme[image-snip%] value.
|
||||||
|
|
||||||
@subsection[#:tag "xml-boxes"]{XML Boxes and Scheme Boxes}
|
@subsection[#:tag "xml-boxes"]{XML Boxes and Scheme Boxes}
|
||||||
|
|
|
@ -370,8 +370,8 @@ A parameter that determines a list of collection directories to prefix
|
||||||
@scheme[current-library-collection-paths] in an evaluator. This
|
@scheme[current-library-collection-paths] in an evaluator. This
|
||||||
parameter is useful for cases when you want to test code using an
|
parameter is useful for cases when you want to test code using an
|
||||||
alternate, test-friendly version of a collection, for example, testing
|
alternate, test-friendly version of a collection, for example, testing
|
||||||
code that uses GUI (like the @schememodname[htdp/world] teachpack) can
|
code that uses a GUI (like the @scheme[htdp/world] teachpack) can be
|
||||||
be done using a fake library that provides the same interface but no
|
done using a fake library that provides the same interface but no
|
||||||
actual interaction. The default is @scheme[null].}
|
actual interaction. The default is @scheme[null].}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -92,7 +92,7 @@
|
||||||
s)
|
s)
|
||||||
(begin (setup-printf
|
(begin (setup-printf
|
||||||
"WARNING"
|
"WARNING"
|
||||||
"bad 'scribblings info: ~e from: ~e" s dir)
|
"bad 'scribblings info: ~e from: ~e" (i 'scribblings) dir)
|
||||||
null))))
|
null))))
|
||||||
(define docs
|
(define docs
|
||||||
(let* ([dirs (find-relevant-directories '(scribblings))]
|
(let* ([dirs (find-relevant-directories '(scribblings))]
|
||||||
|
|
|
@ -4,6 +4,8 @@
|
||||||
(define mzscheme-launcher-names '("swindle"))
|
(define mzscheme-launcher-names '("swindle"))
|
||||||
(define mzscheme-launcher-flags '(("-li" "swindle")))
|
(define mzscheme-launcher-flags '(("-li" "swindle")))
|
||||||
|
|
||||||
|
(define scribblings '(("swindle.scrbl" ())))
|
||||||
|
|
||||||
;; This simple interface is not enough, use tool.ss instead
|
;; This simple interface is not enough, use tool.ss instead
|
||||||
;; (define drscheme-language-modules
|
;; (define drscheme-language-modules
|
||||||
;; '(("swindle.ss" "swindle")
|
;; '(("swindle.ss" "swindle")
|
||||||
|
|
146
collects/swindle/swindle.scrbl
Normal file
146
collects/swindle/swindle.scrbl
Normal file
|
@ -0,0 +1,146 @@
|
||||||
|
#lang scribble/doc
|
||||||
|
@(require scribble/manual)
|
||||||
|
|
||||||
|
@title{@bold{Swindle}}
|
||||||
|
|
||||||
|
@defmodulelang[swindle]
|
||||||
|
|
||||||
|
Swindle extends PLT Scheme with many additional features. The main
|
||||||
|
feature that started this project is a CLOS-like object system based
|
||||||
|
on Tiny-CLOS from Xerox, but there is a lot more.
|
||||||
|
|
||||||
|
Some documentation is available at
|
||||||
|
@link["http://barzilay.org/Swindle/"]{http://barzilay.org/Swindle/}.
|
||||||
|
|
||||||
|
@; @table-of-contents[]
|
||||||
|
|
||||||
|
@; ------------------------------
|
||||||
|
@section{Features}
|
||||||
|
|
||||||
|
The following is a high-level description of major features provided by
|
||||||
|
Swindle. For every feature, the file that provides it is specified, if
|
||||||
|
only a subset of the system is needed.
|
||||||
|
|
||||||
|
@itemize[
|
||||||
|
|
||||||
|
@item{Some basic syntax extensions, including lambda &-keywords, and
|
||||||
|
improved @scheme[define] and @scheme[let] forms. (Available
|
||||||
|
separately using @scheme[swindle/base])}
|
||||||
|
|
||||||
|
@item{Generic setters with @scheme[set!], additional useful mutation
|
||||||
|
forms: @scheme[pset!], @scheme[shift!], @scheme[rotate!], and some
|
||||||
|
simple ones like @scheme[inc!], and @scheme[push!]. (Available
|
||||||
|
separately using @scheme[swindle/setf], where the names
|
||||||
|
@scheme[setf!] and @scheme[psetf!] are used to avoid changing the
|
||||||
|
Scheme form)}
|
||||||
|
|
||||||
|
@item{Easy macro-defining macros --- simple @scheme[syntax-rules] macros with
|
||||||
|
@scheme[defsubst], and a generic @scheme[defmacro] utility, all with a local
|
||||||
|
@scheme[let...] form, and extended to easily create symbol macros.
|
||||||
|
(@scheme[swindle/misc])}
|
||||||
|
|
||||||
|
@item{A @scheme[collect] macro that provides very sophisticated list
|
||||||
|
comprehensions and much more. (@scheme[swindle/misc])}
|
||||||
|
|
||||||
|
@item{An @scheme[echo] mechanism which is an alternative to using
|
||||||
|
format strings, and contains many useful features including a list
|
||||||
|
iteration construct, and is easy to extend.
|
||||||
|
(@scheme[swindle/misc.ss])}
|
||||||
|
|
||||||
|
@item{A @scheme[regexp-case] syntax which is similar to a
|
||||||
|
@scheme[case] on strings with easy access to submatches.
|
||||||
|
(@scheme[swindle/misc])}
|
||||||
|
|
||||||
|
@item{A CLOS-like object system -- based on Tiny CLOS, but with many
|
||||||
|
extensions that bring it much closer to CLOS, and heavily optimized.
|
||||||
|
Some added features include singleton and struct classes, applicable
|
||||||
|
stand-alone methods, method-combination, and some MOP extensions.
|
||||||
|
(Available without syntax bindings in @scheme[swindle/tiny-clos])}
|
||||||
|
|
||||||
|
@item{Good integration with the Scheme implementation: primitive
|
||||||
|
values have corresponding Swindle classes, and struct types can also
|
||||||
|
be used as type specializers. A Swindle class will be made when
|
||||||
|
needed, and it will reflect the struct hierarchy. In addition,
|
||||||
|
structs can be defined with a Swindle-line @scheme[defstruct] syntax which
|
||||||
|
will also make it possible to create these structs with
|
||||||
|
@scheme[make] using keyword arguments. (@scheme[swindle/tiny-clos]
|
||||||
|
and @scheme[swindle/extra])}
|
||||||
|
|
||||||
|
@item{Many hairy macros that make the object system much more convenient
|
||||||
|
(CLOS has also a lot of macro code). Some of the macros (especially
|
||||||
|
@scheme[defclass]) can be customized. (@scheme[swindle/clos])}
|
||||||
|
|
||||||
|
@item{Useful generic functions, including @scheme[print-object] which
|
||||||
|
is used to display all objects. (@scheme[swindle/extra])}
|
||||||
|
|
||||||
|
@item{A @scheme[match] mechanism with a generic-like interface.
|
||||||
|
(@scheme[swindle/extra])}
|
||||||
|
|
||||||
|
@item{The fun @scheme[amb] toy. (@scheme[swindle/extra])}
|
||||||
|
|
||||||
|
@item{A language that can easily create HTML, where the result is
|
||||||
|
human-editable. (@scheme[swindle/html])}
|
||||||
|
|
||||||
|
@item{Customizable syntax: easy to add customized languages to DrScheme.
|
||||||
|
(@scheme[custom])}
|
||||||
|
|
||||||
|
]
|
||||||
|
|
||||||
|
@; ------------------------------
|
||||||
|
@section{Libraries}
|
||||||
|
|
||||||
|
Files marked with ``module'' provide a module by the same name, files
|
||||||
|
marked with "language module" modify the language and should be used
|
||||||
|
as an initial import for other modules. Most files (and especially
|
||||||
|
all language modules) are useful by themselves, even without using the
|
||||||
|
whole Swindle environment.
|
||||||
|
|
||||||
|
@itemize[
|
||||||
|
|
||||||
|
@item{@scheme[swindle/base] (language module) ---
|
||||||
|
Basic syntax extensions, mainly Lisp-like lambda argument &-keywords.}
|
||||||
|
|
||||||
|
@item{@scheme[swindle/setf] (module) ---
|
||||||
|
Generic setters similar to @scheme[setf] in Lisp, and a few more useful
|
||||||
|
macros.}
|
||||||
|
|
||||||
|
@item{@scheme[swindle/misc] (module) --- Lots of useful functionality
|
||||||
|
bits, including everything from frequently useful MzScheme legacy
|
||||||
|
libraries (@schememodname[mzlib/list], @schememodname[mzlib/etc],
|
||||||
|
and @schememodname[mzlib/string]).}
|
||||||
|
|
||||||
|
@item{@scheme[swindle/turbo] (language module) --- A module that
|
||||||
|
packages functionality from @scheme[swindle/base],
|
||||||
|
@scheme[swindle/setf] (overriding @scheme[set!] with
|
||||||
|
@scheme[setf!]), and @scheme[swindle/misc].}
|
||||||
|
|
||||||
|
@item{@scheme[swindle/tiny-clos] (module) ---
|
||||||
|
The core object system, based on Tiny CLOS from Xerox, but heavily
|
||||||
|
modified, optimized and extended.}
|
||||||
|
|
||||||
|
@item{@scheme[swindle/clos] (module) --- Convenient macro wrappers for
|
||||||
|
@scheme[swindle/tiny-clos].}
|
||||||
|
|
||||||
|
@item{@scheme[swindle/extra] (module) --- Extra functionality on top
|
||||||
|
of @scheme[swindle/clos].}
|
||||||
|
|
||||||
|
@item{@scheme[swindle/swindle] (language module) --- The main Swindle
|
||||||
|
environment module: packages @scheme[swindle/tiny-clos],
|
||||||
|
@scheme[swindle/clos], and @scheme[swindle/extra] on top of
|
||||||
|
@scheme[swindle/turbo], and some more general definitions.}
|
||||||
|
|
||||||
|
@item{@scheme[swindle/info] (module) ---
|
||||||
|
Compilation definitions.}
|
||||||
|
|
||||||
|
@item{@scheme[swindle/tool] (module) ---
|
||||||
|
Setup for Swindle in DrScheme: makes some languages available in
|
||||||
|
DrScheme, including custom Swindle-based languages.}
|
||||||
|
|
||||||
|
@item{@scheme[swindle/custom] (module) ---
|
||||||
|
A sample file that demonstrates how to create a Swindle-based
|
||||||
|
customized language; see the source for instructions.}
|
||||||
|
|
||||||
|
@item{@scheme[swindle/html] (module) ---
|
||||||
|
A language for creating HTML.}
|
||||||
|
|
||||||
|
]
|
Loading…
Reference in New Issue
Block a user