1Pure(1)                           Pure Manual                          Pure(1)
2
3
4

NAME

6       pure - the Pure interpreter
7

SYNOPSIS

9       pure [options ...] [script ...] [-- args ...]
10       pure [options ...] -x script [args ...]
11

OPTIONS

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

DESCRIPTION

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

FILES

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

ENVIRONMENT

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

LICENSE

152       LGPL V3 or later. See the accompanying COPYING file for details.
153

AUTHOR

155       Albert  Graef <Dr.Graef@t-online.de>, Dept. of Computer Music, Johannes
156       Gutenberg University of Mainz, Germany.
157

SEE ALSO

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)
Impressum