Merge commit '5d971db802eaa8038db17e1aa5b4c69452739744'
[bpt/guile.git] / doc / guile.1
... / ...
CommitLineData
1.\" Written by Robert Merkel (rgmerk@mira.net)
2.\" augmented by Rob Browning <rlb@cs.utexas.edu>
3.\" Process this file with
4.\" groff -man -Tascii foo.1
5.\"
6.\" title section date source manual
7.TH GUILE 1 "2011-03-04" GNU "GNU Guile 2.2"
8.
9.SH NAME
10guile \- The GNU Project Extension Language
11.
12.SH SYNOPSIS
13.B guile
14.RB [\| \-L
15.IR DIRECTORY \|]
16.RB [\| \-l
17.IR FILE \|]
18.RB [\| \-e
19.IR FUNCTION \|]
20.\".RI [\| \\\\ \|]
21.RB [\| \e \|]
22.RB [\| \-c
23.IR EXPR \|]
24.RB [\| \-s
25.IR SCRIPT \|]
26.RB [\| \-\- \|]
27.RI [\| SCRIPT
28.RI [\| ARGs\ for\ SCRIPT \|]\c
29.RI ]
30
31Only the most useful options are listed here;
32see below for the remainder.
33.
34.SH DESCRIPTION
35GNU Guile is an implementation of the Scheme programming language.
36It extends the R5RS and R6RS language standards,
37providing additional features necessary for real-world use.
38
39Guile works well for interactive use,
40basic scripting,
41and extension of larger applications,
42as well as for stand-alone Scheme application development.
43
44The
45.B guile
46executable itself provides a stand-alone interactive compiler and
47run-time for Scheme programs,
48both for interactive use and for executing Scheme scripts or programs.
49
50This manual page provides only brief instruction in invoking
51.B guile
52from the command line.
53Please consult the Guile info documentation for more information,
54(type \fB info "(guile)Invoking Guile"\fR at a command prompt).
55.
56.SH OPTIONS
57.TP
58.BI -L \ DIRECTORY
59Add \fIDIRECTORY\fR to the front of Guile's module load path.
60.
61.TP
62.BI -l \ FILE
63Load Scheme source code from \fIFILE\fR.
64.
65.TP
66.BI -e \ FUNCTION
67After reading \fISCRIPT\fR, apply \fIFUNCTION\fR to command-line arguments.
68Note that \fIFUNCTION\fR is evaluated,
69so, for example,
70.B (@ (my-module) my-proc)
71is valid here.
72.
73.TP
74.B \e
75The "meta switch", used to work around limitations in #! scripts.
76See "The Meta Switch" in the texinfo documentation for more details.
77.
78.TP
79.B --
80Stop argument processing, and start
81.B guile
82in interactive mode.
83.
84.TP
85.BI -c \ EXPR
86Stop argument processing,
87and evaluate \fIEXPR\fR as a Scheme expression.
88.
89.TP
90.BI -s \ SCRIPT-FILE
91Load Scheme source from \fISCRIPT-FILE\fR and execute as a script.
92Note that in many cases it is not necessary to use \fB-s\fR;
93one may invoke
94.B guile
95simply as
96.B guile
97.I SCRIPT-FILE ARG...
98.
99.TP
100.B -ds
101Carry out \fB\-s \fISCRIPT\fR at this point in the option sequence.
102Note that this argument must be used in conjunction with \fB\-s\fR.
103.
104.TP
105.B --debug
106Start
107.B guile
108with the debugging VM.
109By default, debugging is on when
110.B guile
111is invoked interactively;
112it is off otherwise.
113.
114.TP
115.B --no-debug
116Start
117.B guile
118without the debugging VM,
119even if
120.B guile
121is being run interactively.
122.
123.TP
124.B --auto-compile
125Compile source files automatically (default behavior).
126.
127.TP
128.B --no-autocompile
129Disable automatic source file compilation.
130.
131.TP
132\fB\-\-listen\fR[=\fIP\fR]
133Listen on a port or socket for remote REPL connections.
134See the manual for more details.
135.
136.TP
137\fB\-\-use\-srfi\fR=\fIN,M\fR...
138Load SRFI extensions \fIN\fR, \fIM\fR, etc.
139For example,
140\fB \-\-use\-srfi\fR=\fI8,13\fR.
141.
142.TP
143.BI -x \ EXTENSION
144Add \fIEXTENSION\fR to the
145.B guile
146load extension list.
147.
148.TP
149\fB\-h\fR, \fB\-\-help\fR
150Describe command-line options and exit.
151.
152.TP
153\fB\-v\fR, \fB\-\-version\fR
154Display guile version and exit.
155.
156.TP
157.B -q
158In interactive mode,
159suppress loading the user's initialization file,
160.I ~/.guile.
161.
162.SH ENVIRONMENT
163.\".TP \w'MANROFFSEQ\ \ 'u
164.TP
165.B GUILE_LOAD_PATH
166If
167.RB $ GUILE_LOAD_PATH
168is set before
169.B guile
170is started,
171its value is used to augment the path to search for Scheme files when
172loading.
173It should be a colon-separated list of directories,
174which will be prefixed to the default
175.B %load-path.
176.TP
177.B GUILE_LOAD_COMPILED_PATH
178If
179.RB $ GUILE_LOAD_COMPILED_PATH
180is set before
181.B guile
182is started,
183its value is used to augment the path to search for compiled
184Scheme files (.go files) when loading.
185It should be a colon-separated list of directories,
186which will be prefixed to the default
187.B %load-compiled-path.
188.
189.SH FILES
190.TP
191.I ~/.guile
192A Guile script that is executed before any other processing occurs.
193For example, the following
194.I .guile
195activates guile's readline interface:
196
197.RS 9
198.B (use-modules (ice-9 readline))
199.RS 0
200.B (activate-readline)
201.
202.SH "SEE ALSO"
203The full documentation for Guile is maintained as a Texinfo manual.
204If the
205.B info
206and
207.B guile
208programs are properly installed at your site,
209the command
210.IP
211.B info guile
212.PP
213should give you access to the complete manual.
214
215http://www.schemers.org provides a general introduction to the
216Scheme language.
217.
218.SH "REPORTING BUGS"
219There is a mailing list,
220bug-guile@gnu.org,
221for reporting Guile bugs and fixes.
222But before reporting something as a bug,
223please try to be sure that it really is a bug,
224not a misunderstanding or a deliberate feature.
225We ask you to read the section ``Reporting Bugs'' in the Guile reference
226manual (or Info system) for hints on how and when to report bugs.
227Also, include the version number of the Guile you are running in every bug
228report that you send in.
229Bugs tend actually to get fixed if they can be isolated,
230so it is in your interest to report them in such a way that they can be
231easily reproduced.
232.
233.SH COPYING
234Copyright (C) 2010, 2011 Free Software Foundation, Inc.
235
236Permission is granted to make and distribute verbatim copies of this
237document provided the copyright notice and this permission notice are
238preserved on all copies.
239
240Permission is granted to copy and distribute modified versions of this
241document under the conditions for verbatim copying,
242provided that the entire resulting derived work is distributed under the
243terms of a permission notice identical to this one.
244
245Permission is granted to copy and distribute translations of this
246document into another language,
247under the above conditions for modified versions,
248except that this permission notice may be stated in a
249translation approved by the Free Software Foundation.
250.
251.SH AUTHORS
252Robert Merkel <rgmerk@mira.net> wrote this manpage.
253Rob Browning <rlb@cs.utexas.edu> has added to it.
254
255.B guile
256is GNU software.
257Guile is originally based on Aubrey Jaffer's SCM interpreter,
258and is the work of many individuals.