clon icon indicating copy to clipboard operation
clon copied to clipboard

xswitch options doesn't accept :argument-style and :fallback-value properties

Open admich opened this issue 3 years ago • 0 comments

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--

admich avatar Jun 12 '21 07:06 admich