clon
clon copied to clipboard
xswitch options doesn't accept :argument-style and :fallback-value properties
If I try to load:
(in-package :cl-user)
(defpackage :bug (:use :cl))
(in-package :bug)
(eval-when (:execute :load-toplevel :compile-toplevel)
(net.didierverna.clon:nickname-package))
(clon:defsynopsis ()
(text :contents
"Some texts")
(xswitch :short-name "s" :long-name "xswitch"
:description "A xswitch option."
:enum '(:a :b :c)
:argument-style :yes/no))
I obtain the following error:
Unknown &KEY argument: :ARGUMENT-STYLE
[Condition of type SB-EXT:UNKNOWN-KEYWORD-ARGUMENT]
Restarts:
0: [CONTINUE] Ignore all unknown keywords
1: [RETRY] Retry EVAL of current toplevel form.
2: [CONTINUE] Ignore error and continue loading file "/home/admich/tmp/prova.lisp".
3: [ABORT] Abort loading file "/home/admich/tmp/prova.lisp".
4: [*ABORT] Return to SLIME's top level.
5: [ABORT] abort thread (#<THREAD "worker" RUNNING {100CCC3893}>)
Backtrace:
0: (NET.DIDIERVERNA.CLON:MAKE-XSWITCH :SHORT-NAME "s" :LONG-NAME "xswitch" :DESCRIPTION "A xswitch option." :ENUM (:A :B :C) :ARGUMENT-STYLE :YES/NO) [more]
1: (SB-INT:SIMPLE-EVAL-IN-LEXENV (NET.DIDIERVERNA.CLON:MAKE-XSWITCH :SHORT-NAME "s" :LONG-NAME "xswitch" :DESCRIPTION ...) #<NULL-LEXENV>)
2: (SB-INT:SIMPLE-EVAL-IN-LEXENV (NET.DIDIERVERNA.CLON:DEFSYNOPSIS NIL (TEXT :CONTENTS "Some texts") (XSWITCH :SHORT-NAME "s" :LONG-NAME "xswitch" :DESCRIPTION ...)) #<NULL-LEXENV>)
3: (SB-EXT:EVAL-TLF (NET.DIDIERVERNA.CLON:DEFSYNOPSIS NIL (TEXT :CONTENTS "Some texts") (XSWITCH :SHORT-NAME "s" :LONG-NAME "xswitch" :DESCRIPTION ...)) 4 NIL)
4: ((LABELS SB-FASL::EVAL-FORM :IN SB-INT:LOAD-AS-SOURCE) (NET.DIDIERVERNA.CLON:DEFSYNOPSIS NIL (TEXT :CONTENTS "Some texts") (XSWITCH :SHORT-NAME "s" :LONG-NAME "xswitch" :DESCRIPTION ...)) 4)
5: ((LAMBDA (SB-KERNEL:FORM &KEY :CURRENT-INDEX &ALLOW-OTHER-KEYS) :IN SB-INT:LOAD-AS-SOURCE) (NET.DIDIERVERNA.CLON:DEFSYNOPSIS NIL (TEXT :CONTENTS "Some texts") (XSWITCH :SHORT-NAME "s" :LONG-NAME "xswi..
6: (SB-C::%DO-FORMS-FROM-INFO #<FUNCTION (LAMBDA (SB-KERNEL:FORM &KEY :CURRENT-INDEX &ALLOW-OTHER-KEYS) :IN SB-INT:LOAD-AS-SOURCE) {100CCD33BB}> #<SB-C::SOURCE-INFO {100CCD3383}> SB-C::INPUT-ERROR-IN-LOA..
7: (SB-INT:LOAD-AS-SOURCE #<SB-INT:FORM-TRACKING-STREAM for "file /home/admich/tmp/prova.lisp" {100CCD20E3}> :VERBOSE NIL :PRINT NIL :CONTEXT "loading")
8: ((FLET SB-FASL::THUNK :IN LOAD))
9: (SB-FASL::CALL-WITH-LOAD-BINDINGS #<FUNCTION (FLET SB-FASL::THUNK :IN LOAD) {7F9961ADE15B}> #<SB-INT:FORM-TRACKING-STREAM for "file /home/admich/tmp/prova.lisp" {100CCD20E3}>)
10: ((FLET SB-FASL::LOAD-STREAM :IN LOAD) #<SB-INT:FORM-TRACKING-STREAM for "file /home/admich/tmp/prova.lisp" {100CCD20E3}> NIL)
11: (LOAD #P"/home/admich/tmp/prova.lisp" :VERBOSE NIL :PRINT NIL :IF-DOES-NOT-EXIST T :EXTERNAL-FORMAT :DEFAULT)
--more--
and with:
(in-package :cl-user)
(defpackage :bug (:use :cl))
(in-package :bug)
(eval-when (:execute :load-toplevel :compile-toplevel)
(net.didierverna.clon:nickname-package))
(clon:defsynopsis ()
(text :contents
"Some texts")
(xswitch :short-name "s" :long-name "xswitch"
:description "A xswitch option."
:enum '(:a :b :c)
:fallback-value :a))
I obtain:
Unknown &KEY argument: :FALLBACK-VALUE
[Condition of type SB-EXT:UNKNOWN-KEYWORD-ARGUMENT]
Restarts:
0: [CONTINUE] Ignore all unknown keywords
1: [RETRY] Retry EVAL of current toplevel form.
2: [CONTINUE] Ignore error and continue loading file "/home/admich/tmp/prova.lisp".
3: [ABORT] Abort loading file "/home/admich/tmp/prova.lisp".
4: [*ABORT] Return to SLIME's top level.
5: [ABORT] abort thread (#<THREAD "worker" RUNNING {100D4892C3}>)
Backtrace:
0: (NET.DIDIERVERNA.CLON:MAKE-XSWITCH :SHORT-NAME "s" :LONG-NAME "xswitch" :DESCRIPTION "A xswitch option." :ENUM (:A :B :C) :FALLBACK-VALUE :A) [more]
1: (SB-INT:SIMPLE-EVAL-IN-LEXENV (NET.DIDIERVERNA.CLON:MAKE-XSWITCH :SHORT-NAME "s" :LONG-NAME "xswitch" :DESCRIPTION ...) #<NULL-LEXENV>)
2: (SB-INT:SIMPLE-EVAL-IN-LEXENV (NET.DIDIERVERNA.CLON:DEFSYNOPSIS NIL (TEXT :CONTENTS "Some texts") (XSWITCH :SHORT-NAME "s" :LONG-NAME "xswitch" :DESCRIPTION ...)) #<NULL-LEXENV>)
3: (SB-EXT:EVAL-TLF (NET.DIDIERVERNA.CLON:DEFSYNOPSIS NIL (TEXT :CONTENTS "Some texts") (XSWITCH :SHORT-NAME "s" :LONG-NAME "xswitch" :DESCRIPTION ...)) 4 NIL)
4: ((LABELS SB-FASL::EVAL-FORM :IN SB-INT:LOAD-AS-SOURCE) (NET.DIDIERVERNA.CLON:DEFSYNOPSIS NIL (TEXT :CONTENTS "Some texts") (XSWITCH :SHORT-NAME "s" :LONG-NAME "xswitch" :DESCRIPTION ...)) 4)
5: ((LAMBDA (SB-KERNEL:FORM &KEY :CURRENT-INDEX &ALLOW-OTHER-KEYS) :IN SB-INT:LOAD-AS-SOURCE) (NET.DIDIERVERNA.CLON:DEFSYNOPSIS NIL (TEXT :CONTENTS "Some texts") (XSWITCH :SHORT-NAME "s" :LONG-NAME "xswi..
6: (SB-C::%DO-FORMS-FROM-INFO #<FUNCTION (LAMBDA (SB-KERNEL:FORM &KEY :CURRENT-INDEX &ALLOW-OTHER-KEYS) :IN SB-INT:LOAD-AS-SOURCE) {100D4D89FB}> #<SB-C::SOURCE-INFO {100D4D89C3}> SB-C::INPUT-ERROR-IN-LOA..
7: (SB-INT:LOAD-AS-SOURCE #<SB-INT:FORM-TRACKING-STREAM for "file /home/admich/tmp/prova.lisp" {100D4A7483}> :VERBOSE NIL :PRINT NIL :CONTEXT "loading")
8: ((FLET SB-FASL::THUNK :IN LOAD))
9: (SB-FASL::CALL-WITH-LOAD-BINDINGS #<FUNCTION (FLET SB-FASL::THUNK :IN LOAD) {7F9961ADE15B}> #<SB-INT:FORM-TRACKING-STREAM for "file /home/admich/tmp/prova.lisp" {100D4A7483}>)
10: ((FLET SB-FASL::LOAD-STREAM :IN LOAD) #<SB-INT:FORM-TRACKING-STREAM for "file /home/admich/tmp/prova.lisp" {100D4A7483}> NIL)
11: (LOAD #P"/home/admich/tmp/prova.lisp" :VERBOSE NIL :PRINT NIL :IF-DOES-NOT-EXIST T :EXTERNAL-FORMAT :DEFAULT)
--more--