[cl-wiki-devel] Encoding question and a patch

Stefan Scholl sscholl at common-lisp.net
Fri Sep 9 07:10:24 UTC 2005


On 2005-09-08 11:06:08, Ian Clelland wrote:
> On 9/8/05, Stefan Scholl <sscholl at common-lisp.net> wrote:
> > ESCAPE-STRING gets called when the symbol ESC is found inside
> > CL-WHO's WITH-HTML-OUTPUT-TO-STRING
> 
> That's what I discovered while looking at the Unicode issue a couple
> of days ago. Does this mean that we don't need #'escape-for-html at
> all, and can just call #'escape-string in its place?

Yes, we can. :-)


> Assuming, of course, that you don't have bigger and better plans for
> #'escape-for-html in the future.

Not at the moment. ESCAPE-FOR-HTML came first -- before CL-WHO.

I've just tested ESCAPE-FOR-HTML and ESCAPE-STRING on my slow
(Dual Pentium III, 650 MHz, 512 MiB RAM) system:

WIKI> (let ((data (contents-of-file "Testpage")))
        (time (test-escape-string data 10000)))

Warning:  TIME form in a non-null environment, forced to interpret.
Compiling entire form will produce more accurate times.

; Evaluation took:
;   106.06 seconds of real time
;   102.52042 seconds of user run time
;   3.545461 seconds of system run time
;   68,755,459,972 CPU cycles
;   [Run times include 5.84 seconds GC run time]
;   0 page faults and
;   820,724,440 bytes consed.
;
NIL
WIKI> (let ((data (contents-of-file "Testpage")))
        (time (test-escape-for-html data 10000)))

Warning:  TIME form in a non-null environment, forced to interpret.
Compiling entire form will produce more accurate times.

; Evaluation took:
;   106.14 seconds of real time
;   100.6897 seconds of user run time
;   5.441173 seconds of system run time
;   68,810,304,097 CPU cycles
;   [Run times include 7.21 seconds GC run time]
;   0 page faults and
;   1,140,486,136 bytes consed.
;
NIL

(Test loop is inside the _compiled_ test functions.)

"Testpage" has 32 KiB and 4 #\& to escape. In lines 18, 42, 103,
and 368 of 433 lines. CMUCL 18e, Linux 2.6.


ESCAPE-STRING seems to be better with this kind of texts. It's a
bit early to optimize a program, but not too early to decide if a
function is obsolete when there's an alternative.


Regards,
Stefan

PS: Removed ESCAPE-FOR-HTML in development repository.




More information about the Cl-wiki-devel mailing list