Hi!
A new release is available from
<http://weitz.de/files/cl-ppcre.tgz>.
Here's the relevant part from the changelog:
Version 0.7.4
2004-02-16
Fixed wrong call to SIGNAL-PPCRE-SIGNAL-ERROR in lexer.lisp (caught by Peter Graves)
Added :CL-PPCRE to *FEATURES* (for CL-INTERPOL)
Compiler macro for SPLIT
Have fun,
Edi.
On Fri, 6 Feb 2004 06:32:57 -0500 (EST), Roman Yangarber <roman(a)cs.nyu.edu> wrote:
> i could not install the version i downoladed from your page
> yesterday. it crashes, the message given below.
>
> in the next section i give the trace of the crash. in the following
> section i show how i hacked around it.
Hi Roman!
Could you please use the mailing list at
<http://common-lisp.net/mailman/listinfo/cl-ppcre-devel>
for bug reports. That way other people can read them, too, and maybe
help out.
To me this looks like a bug in AllegroCL 4.3. I'd suggest that you ask
Franz support if they have a patch for it.
Could you run all tests successfully after changing the threshold?
Cheers,
Edi.
> ______________________________________________________________________________
> USER(3): (mk:compile-system "cl-ppcre")
> ; Loading /home/Data/Software/cl-ppcre/cl-ppcre.system
> ;;; Compiling file /home/Data/Software/cl-ppcre/packages.lisp
> ;;; Writing fasl file /home/Data/Software/cl-ppcre/packages.fasl
> ;;; Fasl write complete
>
> < compiles and loads everything up to...>
>
> ;;; Writing fasl file /home/Data/Software/cl-ppcre/api.fasl
> ;;; Fasl write complete
> ; Fast loading /home/Data/Software/cl-ppcre/api.fasl
> Error: %puthash internal error: full hash table:
> #(#\p #\a #\b #\c #\d #\e #\f #\g #\h #\i #\j #\k #\l #\m #\n #\o) 1 1
>
> Restart actions (select using :continue):
> 0: retry the load of /home/Data/Software/cl-ppcre/api.fasl
> 1: skip loading /home/Data/Software/cl-ppcre/api.fasl
>
> [changing package from "COMMON-LISP-USER" to "CL-PPCRE"]
> [1] PPCRE(4): :zo
> Evaluation stack:
>
> (ERROR "%puthash internal error: full hash table: ~s ~s ~s" #(# # # ...)
> ...)
> ->(ADD-RANGE-TO-HASH #<EQL hash-table with 16 entries @ #x8ade972> #\a ...)
> (CONVERT-CHAR-CLASS-TO-HASH (# # # ...))
> (CONVERT-AUX (NIL NIL NIL))
> (CONVERT-AUX (:GROUP #))
> (CONVERT (:GROUP #))
> ((METHOD CREATE-SCANNER (T)) (:GROUP #) :CASE-INSENSITIVE-MODE ...)
> (CREATE-SCANNER (:GROUP #) :CASE-INSENSITIVE-MODE ...)
> ((METHOD CREATE-SCANNER (STRING)) :UNKNOWN)
> ______________________________________________________________________________
> my patch/fix/hack around:
>
> i had to modify the settings for the make-hash-table call in convert.lisp:
>
> (defun convert-char-class-to-hash (list) ...
>
> (loop with hash = (make-hash-table :size (ceiling (expt *regex-char-code-limit* (/ 1 4)))
> :rehash-size (float (expt *regex-char-code-limit* (/ 1 4)))
> :rehash-threshold 0.5)
>
> ... )
>
> changing the :size and :rehash-size didn't work. lowering :rehash-threshold
> from 1.0 to .5 seemed to help (for now?!)
>
> it seemed like the hash table is full and is not getting resized properly.
> (i don't really understand how hash-tables work in lisp, so i'm not confident
> at all that this is the right thing to do.)