Defined ^ and ^^ as special binary macros.
[cslatevm.git] / etc / slate.1
blobb5dd167daed6bf085c161ae486c51a958314c534
1 .Dd March 21, 2009
2 .Dt SLATE 1
3 .Sh NAME
4 .Nm slate
5 .Nd the Slate programming language, an interactive object-oriented programming
6 language and environment
7 .Sh SYNOPSIS
8 .Sy slate
9 .Op Fl i Ar image
10 .Op Fl mo Ar OldGenerationBytes 
11 .Op Fl mn Ar NewGenerationBytes
12 .Oo
13 .Bk
14 .Ar image-argument ...
15 .Ek
16 .Oc
17 .Sh COPYRIGHT
18 Slate is Copyright (C) 2002-2009 by Timmy Douglas, Lee Salzman, and Brian T. Rice
19 .Sh DESCRIPTION
20 .Pp
21 Slate is a dynamic, object-oriented programming language and live-object
22 programming environment that is flexible enough to fit many different styles of
23 usage.
24 .Pp
25 Slate's implementation is clean, modular, and highly portable, relying only on
26 .St -ansiC language features.
27 .Pp
28 The Slate Programmer's Reference Manual describes the syntax and semantics of
29 the language and the standard core libraries in detail, and provides an index
30 of major common features. Slate documentation may be found via the
31 .Sx "INTERNET RESOURCES"
32 section below, or installed locally with a standard binary package.
33 .Pp
34 Slate's core features (there are many more):
35 .Bl -tag -width 4n
36 .It Sy Interactive
37 Slate is implemented with an interactive listener that takes expressions
38 dynamically. Compilation does not interrupt interactions and is quick.
39 .It Sy Live
40 Slate works with worlds of living objects called
41 .Em images
42 which can be snapshot, saved, and restarted transparently for the programs
43 within them.
44 .It Sy "Declarations Optional"
45 Slate programs do not need to be explicitly typed, even though objects know
46 their types.
47 .It Sy Uniformity
48 Everything in Slate is an object, and the system is designed to be more generic
49 than its predecessors about objects.
50 .It Sy "Object creation from prototypes"
51 Each object is a dynamic template for creating more objects, not just static
52 classes. Objects are also self-describing.
53 .It Sy "Multiple Dispatch"
54 Methods and operators can be specialized on any argument.
55 .El
56 .Sh OPTIONS
57 .Bl -tag -width 8n -compact
58 .It Fl mo Oo GB|MB|KB Oc
59 Sets the amount old memory for tenured/old objects (Default 400MB)
60 .It Fl mn Oo GB|MB|KB Oc
61 Sets the amount of new memory for young/new objects (Default 10MB)
62 .It Fl -image-help
63 Requests to the image heap to print out the command options that it
64 handles. This is done after the slate image is loaded.
65 .It Fl -load Ar file
66 Starts Slate and immediately executes the source in the given file before
67 doing anything else.
68 .It Fl -eval Ar expression
69 Executes the given expression when starting, once any load has completed.
70 .El
71 Other helpful information and examples can be found in
72 .Pa ${prefix}/doc/slate .
73 .Sh FILES
74 .Bl -tag -width "1234567890123" -compact
75 .It Pa ${prefix}/bin/slate
76 Recommended location of the Slate virtual machine.
77 .It Pa ${prefix}/share/slate/
78 Recommended location of the default Slate object images, namely
79 .Sy kernel.image
80 and
81 .Sy slate.image .
82 .It Pa ${prefix}/share/slate/src/
83 The standard library sources.
84 .El
85 .Sh BUGS
86 Slate is stable and regularly tested, but changing rapidly. The
87 .Dq BUGS
88 file in the Slate source distribution lists open issues.
89 Reporting bugs is usually done via mailing list or IRC. Response is usually
90 quick. You can meet many of the contributors in
91 .Sy #slate
92 on the Freenode network.
93 .Sh AUTHORS
94 .An "Timmy Douglas" Aq slate@timmy.tmbx.com
95 .An "Lee Salzman"
96 .An "Brian T. Rice" Aq briantrice@gmail.com
97 .An and many contributors.
98 .Sh INTERNET RESOURCES
99 Main website:
100 .Sy http://www.slatelanguage.org/
101 .Sh LICENSING
102 Slate is distributed freely under the Open Source MIT Public License. See
103 .Dq LICENSE
104 in the Slate source distribution.