Hi Jim!
On Sun, 22 Aug 2004 10:18:39 -0600 (MDT), Jim Prewett download@hpc.unm.edu wrote:
I was poking around the CMUCL optimizations page and came across the freeze-type declaration.
I tried adding it to LoGS and it made a notable improvement. I also tried adding it to CL-PPCRE and found that that seemed to help as well.
Is this going to bite me? Do the cl-ppcre types change ever?
I'm not familiar with FREEZE-TYPE. How did you use it and how did it improve CL-PPCRE? Is this new in 19a?
Would you mind taking the rest of this exchange to the mailing list (see Cc)? Thanks.
Cheers, Edi.
Hi Edi,
I'm not familiar with FREEZE-TYPE. How did you use it and how did it improve CL-PPCRE? Is this new in 19a?
Apparently, yes it is new in 19a.
I simply added the declaration:
(declaim (extensions:freeze-type regex seq alternation lookahead lookbehind repetition register standalone back-reference char-class str anchor everything word-boundary branch void))
* I just grepped for defclass to build this list of classes *
The CMUCL manual says this:
"The extensions:freeze-type declaration is a CMUCL extension that enables more efficient compilation of user-defined types by asserting that the definition is not going to change. This declaration may only be used globally (with declaim or proclaim). Currently freeze-type only affects structure type testing done by typep, typecase, etc."
My "benchmark" was really quick and dirty, so i'm not sure I trust the results. :)
Thanks Edi!, Jim
On Mon, 23 Aug 2004 07:36:46 -0600 (MDT), Jim Prewett download@hpc.unm.edu wrote:
Apparently, yes it is new in 19a.
I simply added the declaration:
(declaim (extensions:freeze-type regex seq alternation lookahead lookbehind repetition register standalone back-reference char-class str anchor everything word-boundary branch void))
- I just grepped for defclass to build this list of classes *
The CMUCL manual says this:
"The extensions:freeze-type declaration is a CMUCL extension that enables more efficient compilation of user-defined types by asserting that the definition is not going to change. This declaration may only be used globally (with declaim or proclaim). Currently freeze-type only affects structure type testing done by typep, typecase, etc."
My "benchmark" was really quick and dirty, so i'm not sure I trust the results. :)
OK, from this description I suppose it's safe to add this to CL-PPCRE because the class definitions don't change. You /might/ see a little performance increase but only during scanner creation I guess.
Cheers, Edi.
That would explain my benchmark! I was creating new scanners left and right! (I dynamically generate regexps at run-time; the stuff i've been doing lately makes *a lot* of them :)
But, the speed-up is relatively minor. :)
Jim
On Mon, 23 Aug 2004, Edi Weitz wrote:
On Mon, 23 Aug 2004 07:36:46 -0600 (MDT), Jim Prewett download@hpc.unm.edu wrote:
Apparently, yes it is new in 19a.
I simply added the declaration:
(declaim (extensions:freeze-type regex seq alternation lookahead lookbehind repetition register standalone back-reference char-class str anchor everything word-boundary branch void))
- I just grepped for defclass to build this list of classes *
The CMUCL manual says this:
"The extensions:freeze-type declaration is a CMUCL extension that enables more efficient compilation of user-defined types by asserting that the definition is not going to change. This declaration may only be used globally (with declaim or proclaim). Currently freeze-type only affects structure type testing done by typep, typecase, etc."
My "benchmark" was really quick and dirty, so i'm not sure I trust the results. :)
OK, from this description I suppose it's safe to add this to CL-PPCRE because the class definitions don't change. You /might/ see a little performance increase but only during scanner creation I guess.
Cheers, Edi.
cl-ppcre-devel@common-lisp.net