ChangeLog

0.13.0

0.12.1

Thanks to Alessio Stalla!

0.12.0

0.11.0

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

0.10.0

0.9.1

0.9.0

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

0.7.2

0.7.1

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

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

0.6.0

0.5.0

0.4.0

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

0.2.0

0.1.0