I don't have AllegroCL at hand and I don't have the time to check, but
here are three things you should probably try:
1. Can you try to install "from scratch" with ALL existing FASL files,
no matter where they are, deleted?
2. Can you try with a different Lisp compiler and see if that works for you?
3. Did you try to install with Quicklisp to make sure that it's not a
problem of libraries not working together?
Please let us know if that helps.
> cl-ppcre-devel site list
cl-ppcre-devel site list
Regarding the AllegroCL problems - are you maybe working in "modern"
mode? That could definitely be a problem.
On Fri, Nov 25, 2011 at 12:51 PM, Noldus Reijnders
> And yes, I'm working in modern mode (as in; the mode I use is
> case-sensitive, right?).
Well, the usual answer to this question is that Common Lisp is always
case-sensitive and that AllegroCL's "modern" mode is a strange
abomination most CL hackers frown upon... :)
> Does that mean that mean I cannot use cl-unicode?
I am unfortunately too busy with other things for the time being to
check compatibility with AllegroCL, but I think it's very likely that
CL-UNICODE won't work with modern mode out of the box. How much
you'll have to change I cannot say. Maybe you'll just have to change
a few lines, maybe it's something more complicated. Sorry, but I
can't be more helpful with this.
Should this be the problem and should you be able to come up with
patches, I'd be happy to incorporate them into a new release, though.
The following patch gets you most of the way there:
Common subdirectories: cl-unicode-0.1.2/build and cl-unicode-0.1.2a/build
Common subdirectories: cl-unicode-0.1.2/doc and cl-unicode-0.1.2a/doc
Only in cl-unicode-0.1.2a: hash-tables.lisp
Only in cl-unicode-0.1.2a: lists.lisp
Only in cl-unicode-0.1.2a: methods.lisp
Common subdirectories: cl-unicode-0.1.2/test and cl-unicode-0.1.2a/test
diff cl-unicode-0.1.2/util.lisp cl-unicode-0.1.2a/util.lisp
< (define-hangul-constant "NCount" (* +v-count+ +t-count+))
> (define-hangul-constant "NCount" (* +V-COUNT+ +T-COUNT+))
< (let* ((s-index (- code-point +s-base+))
< (l-value (+ +l-base+ (floor s-index +n-count+)))
< (v-value (+ +v-base+ (floor (mod s-index +n-count+) +t-count+)))
< (t-value (+ +t-base+ (mod s-index +t-count+))))
> (let* ((s-index (- code-point +S-BASE+))
> (l-value (+ +L-BASE+ (floor s-index +N-COUNT+)))
> (v-value (+ +V-BASE+ (floor (mod s-index +N-COUNT+) +T-COUNT+)))
> (t-value (+ +T-BASE+ (mod s-index +T-COUNT+))))
< (and (/= t-value +t-base+)
> (and (/= t-value +T-BASE+)
All tests pass except for
(string= (unicode-name 13327) "CJK UNIFIED IDEOGRAPH-340F") returned NIL
but this would work if the test used string-equal rather than string=
Thanks for the patch. I'm a bit busy with my new job these days, but
I'll eventually roll this into a new release.
> Thanks for the patch. I'm a bit busy with my new job these days, but
> I'll eventually roll this into a new release.
> Thanks again,
Cool. FWIW, I'm going to submit something to the "edi-ware" code on github too.
(scan "[a-z]*" "<test>")
(scan "[\xD8-\xF6]*" "<test>")
while I expect to get nil.
It seems as if the scanner doesn't do anything if the first character is part of the regex in the first example (because if I add a angular bracket to the front it does find it) and in the second it matches everything while the hexcode range is far outside the strings range so it shouldn't find anything. Am I doing something wrong?
"*" matches zero or more occurences of the expression. Try "+" if you
want to match one or more occurences.
What Hans says. The regex engine usually stops at the first match, so
you have to be careful, because you'll get what you asked for.
General questions about regular expressions are best answered by one
of the numerous online articles or for example by the good O'Reilly
book. I might also shamelessly recommend my "Regex Coach"
As for the other question: You should enter the regex string into your
Lisp listener and see what you'll get back. This has something to do
with how CL treats backslashes in strings - there's also a section
about this in the CL-PPCRE documentation.