1Pure(1) Pure Manual Pure(1)
2
3
4
6 pure - the Pure interpreter
7
9 pure [options ...] [script ...] [-- args ...]
10 pure [options ...] -x script [args ...]
11
13 -c Batch compilation.
14
15 --ctags, --etags
16 Create a tags file in ctags (vi) or etags (emacs) format.
17
18 --eager-jit
19 Enable eager JIT compilation. This requires LLVM 2.7 or later,
20 otherwise this flag will be ignored.
21
22 -fPIC, -fpic
23 Create position-independent code (batch compilation).
24
25 -g Enable symbolic debugging.
26
27 --help, -h
28 Print help message and exit.
29
30 -i Force interactive mode (read commands from stdin).
31
32 -Idirectory
33 Add a directory to be searched for included source scripts.
34
35 -Ldirectory
36 Add a directory to be searched for dynamic libraries.
37
38 -llibname
39 Library to be linked in batch compilation.
40
41 --noediting
42 Disable command-line editing.
43
44 --noprelude, -n
45 Do not load the prelude.
46
47 --norc Do not run the interactive startup files.
48
49 -ofilename
50 Output filename for batch compilation.
51
52 -q Quiet startup (suppresses sign-on message in interactive mode).
53
54 -Tfilename
55 Tags file to be written by --ctags or --etags.
56
57 -u Do not strip unused functions in batch compilation.
58
59 -v[level]
60 Set verbosity level.
61
62 --version
63 Print version information and exit.
64
65 -w Enable compiler warnings about various dubious constructs and
66 backward compatibility issues.
67
68 -x Execute script with given command line arguments.
69
70 -- Stop option processing and pass the remaining command line argu‐
71 ments in the argv variable.
72
74 Pure is a modern-style functional programming language based on term
75 rewriting. Pure programs are basically collections of equational rules
76 used to evaluate expressions in a symbolic fashion by reducing them to
77 normal form.
78
79 pure is the Pure interpreter. The interpreter has an LLVM backend which
80 JIT-compiles Pure programs to machine code, hence programs run blaz‐
81 ingly fast and interfacing to C modules is easy, while the interpreter
82 still provides a convenient, fully interactive environment for running
83 Pure scripts and evaluating expressions.
84
85 Basically, to run a Pure script with the interpreter, just specifiy the
86 filename of the script on the command line. You can also invoke the
87 interpreter without arguments, in which case it starts up in interac‐
88 tive mode. Or you can compile a script to a native executable (as well
89 as a number of other recognized LLVM and native code formats) with the
90 -c option (use -o to specify the output filename); this requires that
91 you have some parts of the LLVM toolchain (llc, opt) as well as gcc
92 installed. Last but not least, you can create a tags file for use with
93 emacs(1) or vi(1) with the --etags and --ctags options.
94
95 The full version of this manual can be read inside the interpreter, by
96 typing help on the interpreter's command line. This requires w3m(1) to
97 work. (You can also set the name of another html browser to use with
98 the PURE_HELP or the BROWSER environment variable.)
99
101 a.out Default output filename for batch compilation (-c).
102
103 ~/.pure_history
104 Interactive command history.
105
106 ~/.purerc, .purerc, .pure
107 Interactive startup files. The latter is usually a dump from a
108 previous interactive session.
109
110 prelude.pure
111 Standard prelude. If available, this script is loaded before any
112 other definitions, unless -n was specified.
113
115 BROWSER
116 If the PURE_HELP variable is not set (see below), this specifies
117 a colon-separated list of browsers to try for reading the online
118 documentation. See http://www.catb.org/~esr/BROWSER/.
119
120 PURELIB
121 Directory to search for library scripts, including the prelude.
122 If PURELIB is not set, it defaults to some location specified at
123 installation time.
124
125 PURE_EAGER_JIT
126 Enable eager JIT compilation (same as --eager-jit).
127
128 PURE_HELP
129 Browser to use to read online documentation in the interpreter.
130 By default, w3m(1) is used.
131
132 PURE_INCLUDE
133 Additional directories (in colon-separated format) to be
134 searched for included scripts.
135
136 PURE_LIBRARY
137 Additional directories (in colon-separated format) to be
138 searched for dynamic libraries.
139
140 PURE_MORE
141 Shell command to be used for paging through output of the show
142 command, when the interpreter runs in interactive mode.
143
144 PURE_PS
145 Command prompt used in the interactive command loop ("> " by
146 default).
147
148 PURE_STACK
149 Maximum stack size in kilobytes (default: 0 = unlimited).
150
152 LGPL V3 or later. See the accompanying COPYING file for details.
153
155 Albert Graef <Dr.Graef@t-online.de>, Dept. of Computer Music, Johannes
156 Gutenberg University of Mainz, Germany.
157
159 You can find the latest releases and the mailing list at the Pure web‐
160 site, http://pure-lang.googlecode.com.
161
162
163
164Pure February 2010 Pure(1)