Shinmera/plump

Doesn't work on CLISP; SIMPLE-STRING is not a class

Closed this issue · 3 comments

Plump doesn't work on GNU CLISP and it seems a simple problem.

A generic method parse has a method for simple-string, but simple-string is not a class in CLISP (and also in the CL spec, strictly).

(defgeneric parse (input &key root)
  ;; ...
  (:method ((input simple-string) &key root)
    (with-lexer-environment (input)
      (if root
          (read-root root)
          (read-root))))

https://github.com/Shinmera/plump/blob/master/parser.lisp#L146-L157

Here is the actual error message. I was loading lquery from a file named "/Users/nitro_idiot/twitpic-dl.lisp".

*** - FIND-CLASS: SIMPLE-STRING does not name a class
The following restarts are available:
SKIP           :R1      skip 146 162 (DEFGENERIC PARSE (INPUT &KEY ROOT) ...)-21
RETRY          :R2      retry 146 162 (DEFGENERIC PARSE (INPUT &KEY ROOT) ...)-21
STOP           :R3      stop loading file /Users/nitro_idiot/.cache/common-lisp/clisp-2.49-unix-x86_64/Users/nitro_idiot/quicklisp/dists/quicklisp/software/plump-20140822-git/parser.fas
TRY-RECOMPILING :R4     Recompile parser and try loading it again
RETRY          :R5      Retry loading FASL for #<CL-SOURCE-FILE "plump" "parser">.
ACCEPT         :R6      Continue, treating loading FASL for #<CL-SOURCE-FILE "plump" "parser"> as having been successful.
ABORT          :R7      Give up on "lquery"
SKIP           :R8      skip (LET # # ...)
RETRY          :R9      retry (LET # # ...)
STOP           :R10     stop loading file /Users/nitro_idiot/twitpic-dl.lisp
Break 1 PLUMP[3]>

FYI, this issue happens also on Allegro CL and ECL.
SBCL, Clozure CL, CMUCL and ABCL are fine.

Cool. Thanks.

Thanks for the report, I saw the failure a long while ago on cl-test-grid, but never got around to fixing it before!