[parenscript-devel] long compile time

Vladimir Sedach vsedach at gmail.com
Mon Jul 6 20:16:56 UTC 2009


Hi Kelly,

First of all, apologies for taking so long to respond.

The blame for this goes to my ignorance of how to do fast string
concatenation in Common Lisp. The 'ps' macro expanded into a
'concatenate' form, which was slow. Right now I changed it (just
pushed the patch) to expand into a 'with-output-to-string' and a bunch
of 'write-string' forms, which is about twice as fast on SBCL 1.0.22
and conses a little less.

If anyone knows of an even faster way, please let me know.

Thanks,
Vladimir

On Wed, Jun 24, 2009 at 2:23 PM, Kelly McDonald<kelly at fammcdonald.net> wrote:
> Hello, I'm sure I'm doing something dumb, I just need someone to set
> me straight.
>
> I recently updated to the latest parenscript (as well as sbcl) and got
> all of the errors for where I had  this.dropdownlist.length type
> notation
> and changed it to (@ this dropdownlist length) notation.
>
> I had something that used to compile rather quickly it was as simple as this:
>
> (defun somefunction ()
>  (ps
>        (very long parenscript code)))
>
> if I evaluate just the (ps (very long parenscript code))  everything
> is really snappy & I get what I expect.
>
> if I evaluate the whole function, it takes forever (ok, like 10
> minutes) again, once things evaluate, I get what I expect
>
> Furthermore, if I start small and add stuff in, it seems to take
> exponential time to the amount of code (or more likely my patience
> gets exponentially shorter)
>
> the same thing happens if I merely do a (setf somevar (ps (very long
> parenscript code)))
>
> I'm suspecting that I'm hitting some kind of compiler optimization and
> I need some kind of pragma.
>
> Thanks for your thoughts/suggestions,
> Kelly McDonald
>
> _______________________________________________
> parenscript-devel mailing list
> parenscript-devel at common-lisp.net
> http://common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel
>




More information about the parenscript-devel mailing list