Shinmera / plump

Practically Lenient and Unimpressive Markup Parser for Common Lisp
https://shinmera.github.io/plump
zlib License
120 stars 21 forks source link

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

Closed fukamachi closed 10 years ago

fukamachi commented 10 years ago

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]>
fukamachi commented 10 years ago

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

fukamachi commented 10 years ago

Cool. Thanks.

Shinmera commented 10 years ago

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