X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=doc%2Fsbcl.1;h=5776d61d75994cbdb9db93751f468c457312709a;hb=ee222567ee95eaac8f6f4c877242dd116bfb8337;hp=c368b58f8f0fbd6ecd320a7279f7c3c929cd7877;hpb=bfeaca32bfdb45eaaf1b34907b1a39e81567d7de;p=sbcl.git diff --git a/doc/sbcl.1 b/doc/sbcl.1 index c368b58..5776d61 100644 --- a/doc/sbcl.1 +++ b/doc/sbcl.1 @@ -62,9 +62,9 @@ Many people like to run SBCL, like other Lisp systems, as a subprocess under Emacs. The Emacs "Slime" and "ilisp" modes provide many convenient features, like command line editing, tab completion, and various kinds of coupling between Common Lisp source files and the -interactive SBCL subprocess, but they can be somewhat fragile wrt. -packages and readtables, in which case SBCL in the Emacs "shell" mode -can a useful substitute. +interactive SBCL subprocess, but they can be somewhat fragile with +respect to packages and readtables, in which case SBCL in the Emacs +"shell" mode can be a useful substitute. .SH OVERVIEW @@ -79,7 +79,7 @@ the BUGS section below. SBCL also includes various non-ANSI extensions, described more fully in the User Manual. Some of these are in the base system and others are "contrib" modules loaded on request using \f(CRREQUIRE\fR. For -example, to load the \f(CRSB\-BSD\-SOCKETS\fR module that providces +example, to load the \f(CRSB\-BSD\-SOCKETS\fR module that provides TCP/IP connectivity, \f(CR * (require \(aqasdf) @@ -107,9 +107,7 @@ Gray streams (a de-facto standard system of overloadable CLOS classes whose instances can be used wherever ordinary ANSI streams can be used) .TP 3 \-- -weak pointers and finalization (which have unfortunately -suffered from at least some code rot, so that \fIe.g.\fR weak hash -tables don't work) +weak pointers and finalization .PP Fundamental system interface extensions are also provided: @@ -144,9 +142,10 @@ low-level Unix interface, the WIRE protocol, various user-level macros and functions (\fIe.g.\fR \f(CRLETF\fR, \f(CRITERATE\fR, \f(CRMEMQ\fR, \f(CRREQUIRED\-ARGUMENT\fR), and many others. -SBCL inplements multithreading, but in a completely different fashion -from CMU CL: see the User Manual for details. As of 0.8.5 this is -considered beta-quality and must be explicitly enabled at build time. +SBCL implements multithreading, but in a completely different fashion +from CMU CL: see the User Manual for details. As of 1.0.13 this is +still considered beta-quality and must be explicitly enabled at build +time. SBCL has retained some extensions from its parent CMU CL. Many of the retained extensions are in these categories: @@ -208,15 +207,6 @@ but very useful principle that "declarations are assertions", \fIi.e.\fR type declarations should be checked at runtime unless the user explicitly tells the system that speed is more important than safety. -The compiler reportedly produces pretty good code for modern CPU -architectures which have lots of registers, but its code for the X86 -is marred by many extra loads and stores to stack-based temporary -variables. Because of this, and because of the extra levels of -indirection in Common Lisp relative to C, the performance of SBCL -isn't going to impress people who are impressed by small constant -factors. However, even on the X86 it tends to be faster than byte -interpreted languages (and can be a lot faster). - The compiled code uses garbage collection to automatically manage memory. The garbage collector implementation varies considerably from CPU to CPU. In particular, on some CPUs the GC is nearly exact, @@ -269,12 +259,21 @@ standard toplevel options. Size of the dynamic space reserved on startup in megabytes. Default value is platform dependent. .TP 3 +.B \-\-control-stack-size +Size of control stack reserved for each thread in megabytes. Default value +is 2. +.TP 3 .B \-\-noinform Suppress the printing of any banner or other informational message at startup. (This makes it easier to write Lisp programs which work cleanly in Unix pipelines. See also the "\-\-noprint" and "\-\-disable\-debugger" options.) .TP 3 +.B \-\-script +As a runtime option equivalent to \-\-noinform +\-\-end\-toplevel\-options \-\-script . See the description +of \-\-script as a toplevel option below. +.TP 3 .B \-\-help Print some basic information about SBCL, then exit. .TP 3 @@ -326,30 +325,40 @@ makes it easier to write Lisp "scripts" which work cleanly in Unix pipelines. .TP 3 .B \-\-disable\-debugger -This is equivalent to \-\-eval \(aq(sb\-ext:disable\-debugger)\(aq. By -default, a Common Lisp system tries to ask the programmer for help -when it gets in trouble (by printing a debug prompt, then listening, -on \f(CR*DEBUG\-IO*\fR). However, this is not useful behavior for a system -running with no programmer available, and this option tries to set up -more appropriate behavior for that situation. This is implemented by -redefining \f(CRINVOKE\-DEBUGGER\fR so that any call exits the process with a -failure code after printing a backtrace. (Note that because it is -implemented by modifying special variables and \f(CRFDEFINITION\fRs, its -effects persist in .core files created by -\f(CRSB\-EXT:SAVE\-LISP\-AND\-DIE\fR. If you want to undo its -effects, \fIe.g.\fR if you build a system unattended and then want to -operate a derived system interactively, see the -\f(CRSB\-EXT:ENABLE\-DEBUGGER\fR command.) +By default when SBCL encounters an error, it enters the builtin +debugger, allowing interactive diagnosis and possible intercession. +This option disables the debugger, causing errors to print a backtrace +and exit with status 1 instead -- which is a mode of operation better suited +for batch processing. See the user manual on \f(CRSB\-EXT:DISABLE\-DEBUGGER\fR for details. +.B \-\-script +Implies \-\-no-sysinit \-\-no-userinit \-\-disable-debugger +\-\-end\-toplevel\-options. + +Causes the system to load the specified file and exit immediately +afterwards, instead of entering the readl-eval-print loop. If the file +begins with a shebang line, it is ignored. .PP -Regardless of the order in which \-\-sysinit, \-\-userinit, and -\-\-eval options appear on the command line, the sysinit file, if it -exists, is loaded first; then the userinit file, if it exists, is -loaded; then any \-\-eval commands are read and executed in sequence; -then the read-eval-print loop is started on standard input. At any -step, error conditions or commands such as \f(CRSB\-EXT:QUIT\fR can -cause execution to be terminated before proceeding to subsequent -steps. +Regardless of the order in which toplevel options appear on the command +line, the order of actions is: + +.nr step 1 1 +.IP \n[step]. 3 +Debugger is disabled, if requested. +.IP \n+[step]. +Any system initialization file is loaded, unless prohibited. +.IP \n+[step]. +Any user initialization file is loaded, unless prohibited. +.IP \n+[step]. +\-\-eval and \-\-load options are processed in the order given. +.PP + +Finally, either the read-eval-print loop is entered or the file +specified with \-\-script option is loaded. + +When running in the read-eval-print loop the system exits on end of +file. Similarly, the system exits immediately after processing the +file specified with \-\-script. Note that when running SBCL with the \-\-core option, using a core file created by a user call to the @@ -431,11 +440,12 @@ point result as a function value) is a fundamentally slow operation. To report a bug, please send mail to the mailing lists sbcl-help or sbcl-devel. You can find the complete mailing list addresses on the -web pages at <\f(CRhttp://sbcl.sourceforge.net/\fR>. (You may also -find fancy SourceForge bug-tracking machinery there, but don't be -fooled. As of 2002-07-25 anyway, we don't actively monitor that -machinery, and it exists only because we haven't been able to figure -out how to turn it off.) +web pages at <\f(CRhttp://sbcl.sourceforge.net/\fR>; note that as a +spam reduction measure you must subscribe to the lists before you can +post. (You may also find fancy SourceForge bug-tracking machinery +there, but don't be fooled. As of 2002-07-25 anyway, we don't actively +monitor that machinery, and it exists only because we haven't been +able to figure out how to turn it off.) As with any software bug report, it's most helpful if you can provide enough information to reproduce the symptoms reliably, and if you say