Improve man and help.

This commit is contained in:
MatthewRock 2016-05-10 11:37:04 +02:00
parent e4cdda1182
commit cc084acda2
3 changed files with 203 additions and 83 deletions

View file

@ -1,20 +1,20 @@
* Announcement of ECL
ECL stands for Embeddable Common-Lisp. The ECL project aims to
produce an implementation of the Common-Lisp language which complies
to the ANSI X3J13 definition of the language.
The term embeddable refers to the fact that ECL includes a lisp to C
compiler, which produces libraries (static or dynamic) that can be
called from C programs. Furthermore, ECL can produce standalone
executables from your lisp code and can itself be linked to your
programs as a shared library.
ECL supports the operating systems Linux, FreeBSD, NetBSD, OpenBSD,
Solaris (at least v. 9), Microsoft Windows and OSX, running on top of
the Intel, Sparc, Alpha, ARM and PowerPC processors. Porting to other
architectures should be rather easy.
* Known issues
- In Windows ECL comes with bytecodes compiler by default, because C
@ -35,6 +35,11 @@ Files not included in the buildsystem but lingering in the codebase or
options failing to build. All info is added in the new documentation in
section "Removed interfaces".
- Improved man page and help output.
Man page now contains up-to-date list of flags, as well
as explanation of flag's behavior.
** Issues fixed
- MOP: fix problemes when redefining non-standard and anonymous classes
Bugs identified and fixed by Pascal Costanza.
@ -67,7 +72,7 @@ exceeded 128 characters limit.
- Deprecated variables has been removed
=c::*suppress-compiler-warnings*=, =c::*suppress-compiler-notes*=
- Random state might be initialized by a random seed (truncated to
32bit value) or by a precomputed array.
@ -211,7 +216,7 @@ exceeded 128 characters limit.
- Dead code removal, tabulators were replaced by spaces
- Better quality of generated code (explicit casting when necessary)
** Issues fixed:
- Various fixes of bogus declarations
@ -257,30 +262,30 @@ exceeded 128 characters limit.
- Other minor tweaks
* 15.3.7 changes since 15.2.21
* 15.3.7 changes since 15.2.21
** Issues fixed:
- DEFUN functions not defined as toplevel forms were also directly
referenced by other code in the same file.
- STABLE-SORT works as desired (bogus optimization for strings
fixed).
- broken --with-sse=yes configure flag works once again.
** Enhancements:
- autoconf scripts are rewritten to support version 2.69 stack.
- stack direction is now correctly determined, fixing gcc 5.x builds.
- compilation of ECL under MSVC (2008/2010/2012) even with custom
code pages.
- In compiled code it is possible to declare variables to have a C
type such as in (declare (:double a)) and then the variable is
enforced to be unboxed to such type.
- New form FFI:C-PROGN used to interleave C statements with lisp
code, where the lisp code may refer to any number of
variables. Example:
@ -294,18 +299,18 @@ exceeded 128 characters limit.
(print iterator)
"}")))
#+END_SRC
* 15.2.21 changes since 13.5.1
- Features coverity scan model, ffi-unload-module implementation,
probably more.
- Build system enhancements, parallel builds, fixes,
simplifications, cleanups, maintenance. minor cleanup,
maintenance.
- Numerous fixes.
* 13.5.1 changes since 12.7.1
** Visible changes:
@ -402,19 +407,19 @@ exceeded 128 characters limit.
structures as well.
* 12.7.1 changes
Some highlights of this release are:
- ECL now ships with the whole of the Unicode names database,
optimally compressed using constant C tables. This means ECL now
recognizes all valid Unicode (and ASCII) names for the whole range
of characters, and can print them as well.
- ECL has changed the way it stores compiled data in the C files, so
that it works around the limit of 65k characters per string.
- ECL now builds with Microsoft Visual Studio C++ 2012.
- We bend the knee and accepted WHILE/IF statements intertwined with
FOR/AS, though this is still not valid ANSI Common Lisp.

View file

@ -1,20 +1,29 @@
.TH ECL 1 2013-06-09
.TH ECL 1 2016-05-10
.UC 4
.SH NAME
ecl \- Embeddable Common Lisp
.SH SYNOPSIS
\fBecl\fP
[\fB\-dir\fP \fIdir\fP]
[\fB\-load\fP \fIfile\fP]
[\fB\-eval\fP \fIexpr\fP]
[\fB-?\fP | \fB--help\fP]
.br
[\fB\-compile\fP \fIfile\fP
[\fB-dir\fP \fIdir\fP] [\fB-load\fP \fIfile\fP] [\fB-shell\fP \fIfile\fP] [\fB-eval\fP \fIexpr\fP]
.br
[\fB\-o\fP \fIofile\fP]
[\fB\-c\fP [\fIcfile\fP]]
[\fB\-h\fP [\fIhfile\fP]]
[\fB\-data\fP [\fIdatafile\fP]]
[\fB\-s\fP] [\fB\-q\fP]]
[\fB-norc\fP] [\fB-hp\fP | \fB-nohp\fP]
.br
[\fB--c-stack\fP \fIsize\fP] [\fB--lisp-stack\fP \fIsize\fP]
.br
[\fB--heap-size\fP \fIsize\fP] [\fB--frame-stack\fP \fIsize\fP]
.br
[[\fB-o\fP \fIofile\fP] [\fB-c\fP [\fIcfile\fP]] [\fB-h\fP [\fIhfile\fP]] [\fB-data\fP [\fIdatafile\fP]]
.br
[\fB-s\fP] [\fB-q\fP] \fB-compile\fP \fIfile\fP]
.br
[[\fB-o\fP \fIofile\fP] \fB-link\fP \fIfile\fP+]
.br
[\fB--input-encoding\fP \fIexternal-format\fP] [\fB--output-encoding\fP \fIexternal-format\fP]
.br
[\fB--error-encoding\fP \fIexternal-format\fP] [\fB--encoding\fP \fIexternal-format\fP]
.SH DESCRIPTION
.sp
@ -27,7 +36,7 @@ definition of the language.
.PP
The current ECL implementation features:
.IP \(bu
A bytecodes compiler and interpreter.
A bytecode compiler and interpreter.
.IP \(bu
A translator to C.
.IP \(bu
@ -52,55 +61,110 @@ The Boehm-Weiser garbage collector.
.PP
\fBecl\fP without any argument gives you the
interactive lisp.
.SH OPTIONS
.TP 1i
.B \-?, \-\-help
Shows the help prompt without running the ECL.
.TP
.BI \-norc
Do not load configuration files at startup.
.TP
.BI \-\-version
Prints the current version of ECL, without running the ECL.
.TP
.BI \-debug
Turned on by default, this enables the debugging in the setup phase, so that you can debug your
\.rc files.
.TP
.BI \-nodebug
Run without debugging setup phase, meaning that errors prevent ECL from starting up.
.TP
.BI \-eval " file"
Evaluate the
.I file
before starting the ECL, or loading the \.rc files.
.TP
.BI \-shell " file"
Executes the given file and exits, without providing a read-eval-print loop.
Executes the given
.I file
and exits, without providing a read-eval-print loop.
If you want to use lisp as a scripting language, you can write
.BR "#!@bindir@/ecl -shell"
.BR "#!usr/bin/env ecl -shell"
on the first line of the file to be executed, and then ECL will be
automatically invoked.
.TP
.B \-norc
Do not try to load the file
.I ~/.eclrc
at startup.
.TP
.B \-dir
Use
.I dir
as system directory.
.TP
.BI \-load " file"
Loads
Load source
.I file
before entering the read-eval-print loop.
before starting ECL.
.TP
.BI \-eval " expr"
Evaluates
.I expr
before entering the read-eval-print loop.
.BI \-dir " directory"
Use
.I directory
as a system directory.
.TP
.BI \-compile " file"
Translates
.BI \-\-heap-size " size"
Specify heap
.I size
in kilobytes.
.TP
.BI \-\-lisp-stack " size"
Specify stack
.I size
in kilobytes for lisp system.
.TP
.BI \-\-frame-stack " size"
Specify frame stack
.I size
in kilobytes.
.TP
.BI \-\-c-stack " size"
Specify stack
.I size
in kilobytes for C compiler.
.TP
.BI \-\-trap-fpe
Make ECL debugger catch floating point exception.
.TP
.BI \-\-no-trap-fpe
Make ECL debugger not catch floating point exception.
.TP
.BI \-\-encoding " encoding"
Specify the external
.I encoding
for standard input, output, trace and error.
.TP
.BI \-\-input-encoding " encoding"
Specify the external
.I encoding
for standard input.
.TP
.BI \-\-output-encoding " encoding"
Specify the external
.I encoding
for standard output.
.TP
.BI \-\-error-encoding " encoding"
Specify the external
.I encoding
for standard error.
.TP
.BI \-o " file"
Provide the output target
.I file
to C and invokes the local C compiler to produce a
shared library with .fas as extension per default.
.TP
.BI \-o " ofile"
When compiling
.I file
name the resulting shared library
\fIofile\fP.
for compilation.
.TP
.BI \-c " cfile"
When compiling name the intermediary C file
.I cfile
and do not delete it afterwards.
.TP
.BI \-h " hfile"
When compiling name the intermediary C header
.I hfile
.BI \-h " cfile"
When compiling name the intermediary C file
.I cfile
and do not delete it afterwards.
.TP
.BI \-data " [datafile]"
@ -108,27 +172,34 @@ Dumps compiler data into \fIdatafile\fP or, if not
supplied, into a file named after the source file, but
with .data as extension.
.TP
.B \-s
.BI \-compile " file"
Translates
.I file
to C and invokes the local C compiler to produce a
native code program.
.TP
.BI \-q
Short for quiet - produce less notes.
.TP
.BI \-hp
This option is deprecated and doesn't do anything.
.TP
.BI \-nodp
This option is deprecated and doesn't do anything.
.TP
.BI \-s
Produce a linkable object file. It cannot be loaded
with load, but it can be used to build libraries
or standalone executable programs.
.TP
.B \-q
Produce less notes when compiling.
.PP
The options
.B \-load,
.B \-shell,
and
.B \-eval
may appear any number of times, and they are combined and processed from left
to right.
.SH AUTHORS
The original version was developed by Giuseppe Attardi starting from the Kyoto
Common Lisp implementation by Taiichi Yuasa and Masami Hagiya. The current
maintainer of ECL is Juan Jose Garcia Ripoll, who can be reached at the ECL
mailing list.
Common Lisp implementation by Taiichi Yuasa, Masami Hagiya and Juan Jose Garcia
Ripoll.The current maintainer of ECL is Dawid Kochmański,
who can be reached at the ECL mailing list.
.SH FILES
.TP
.BR "~/.ecl, ~/.eclrc"
@ -142,5 +213,48 @@ ANSI Common Lisp standard X3.226-1994
.IP ""
The Common Lisp HyperSpec
.SH "BUGS"
Probably some. Report them!
Unfortunately it is possible that there are some bugs in the program.In case you find any bug,
please report it as an issue(after making sure that it hasn't been reported or fixed)
to official gitlab repository: https://gitlab.com/embeddable-common-lisp/ecl/issues
.SH "LICENSE"
ECL is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published
by the Free Software Foundation; either version 2 of the License, or
(at your option) any later version; see file 'Copying'.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
PLEASE NOTE THAT:
This license covers all of the ECL program except for the files
.br
src/lsp/loop.lsp ; Symbolic's LOOP macro
.br
src/lsp/pprint.lsp ; CMUCL's pretty printer
.br
src/lsp/format.lsp ; CMUCL's format
.br
and the directories
contrib/ ; User contributed extensions
.br
examples/ ; Examples for the ECL usage
.br
src/clx/ ; portable CLX library from Telent
.br
Look the precise copyright of these extensions in the corresponding
files.
Examples are licensed under: (SPDX-License-Identifier) BSD-2-Clause
Report bugs, comments, suggestions to the ecl mailing list:
ecl-devel@common-lisp.net (or use gitlab).

View file

@ -30,6 +30,7 @@ Usage: ecl [-? | --help]
[[-o ofile] -link file+]
[--input-encoding external-format] [--output-encoding external-format]
[--error-encoding external-format] [--encoding external-format]
[--trap-fpe | --no-trap-fpe]
"
"Prints a help message about command line arguments of ECL")