ChangeLog
0.13.1 (2024-04-29)
Removed unnecessary text "Here is a list of all supported commands" from the help message of a command having subcommands.
0.13.0 (2021-09-04)
Moved to a new documentation rendering engine.
0.12.1 (2021-08-24)
Added
(declare (ignorable %pop-argument))to suppress a compilerNOTEunderSBCL.
Thanks to Alessio Stalla!
0.12.0 (2021-06-05)
Added LispWorks support.
Program name now evaluated at runtime instead of a compile-time.
0.11.0 (2021-05-08)
Backward incompatible change!
Now the name of a function given to the
defmain:defmain macro, should be a list, because it
can carry optional keyword arguments, such as
PROGRAM-NAME argument.
Other changes
Fixed subcommands for the case when a program was compiled using
ASDF:MAKE.Added more examples and improved documentation!
0.10.0 (2021-04-25)
Moved documentation from reStructured readme to
40ANTS-DOCdocumentation builder.Added github actions for building docs, linting and testing. Using 40ANTS-CI generator.
0.9.1 (2021-01-27)
Fixed work under
ABCLand probablyCMUCL.Help commands now exit with 0 status code.
Fixed annoying banner about missing
CCenv variable.
0.9.0 (2018-12-07)
Added support for programs, built with
ASDF:MAKE.
Previously, only roswell was supported, but now you can define your system as:
(defsystem work-hours
:class :package-inferred-system
:build-operation "program-op"
:build-pathname "work-hours"
:entry-point "work-hours/main:main"
:depends-on ("work-hours/main"))And then call in the command line something like:
qlot exec ros run -L sbcl -e '(asdf:make :work-hours)'0.8.0 (2018-10-15)
Added support for positional arguments.
Fixed issue of catching signals not inherited
errorand handling them as errors by printing traceback and quitting.
0.7.2 (2018-07-14)
Added
Ctrl-Chandling. However seems it does not work forCCL:(
0.7.1 (2018-06-15)
Error Undeclared free variable DEFMAIN/DEFMAIN:HELP-COMMANDS was
fixed for cases where there is no defmain:defcommand calls beside defmain:defmain.
0.7.0 (2018-06-13)
Defmain macro now restores temporary pathnames inside of cl-fad and
uiop packages by setting logical-pathname-translations for
"TEMPORARY-FILES" and by calling
(uiop:setup-temporary-directory).
This solves issues in programs which use (uiop:run-program ...) or
(cl-fad:with-output-to-temporary-file ...) for example.
0.6.1 (2018-06-08)
Now function
defmain:get-subcommand-nameis available in the main function if your specified&SUBCOMMANDas it's argument.
0.6.0 (2018-06-07)
Added support for nested commands defined with
defmain:defcommandmacro.
0.5.0 (2018-06-02)
System was made a
package-inferredand now uses Rove for tests.
0.4.0 (2018-05-18)
Now
defmain:defmainhandles all unhandled conditions, prints a backtrace and program exists with error code1.
Previously, programs just started debugger and if built with CCL it
was impossible to interrupt it.
* Now it is possible to overwrite a short name of a parameter.
For example:
lisp
(defmain main ((verbose "Show more informaition"
:flag t) ;; by default -v will be used
(version "Show version"
:flag t
:short "V"))
...)
Also, you can pass NIL as a value to disable short name:
lisp
(defmain main ((verbose "Show more informaition"
:flag t) ;; by default -v will be used
(version "Show version"
:flag t
:short "V"))
...)
0.3.0 (2018-05-12)
Fixed a way how
--helpoption is processed. Now, this argument can be redefined by user, for example, to give this option another description.Now, if
:default "some string"is given for option, then it will be parsed as string. Previously,lispobjtype was used to parse value, and there were problems when you tried to pass as a value string with a colon, like someURL.
0.2.0 (2018-02-09)
Added function
defmain:print-help.Fixed handling of existing
helpoption. Now you can redefine it to give another description.
0.1.0
Number features here.
Like that.
Add new versions to the top.
Specify dates as
2017-04-19.Read KeepAChangelog.com for futher explanations.