RE: ASERVE client and pages larger than ARRAY-TOTAL-SIZE-LIMIT

"MARTINS, Maria Cleci" <[email protected]> Wed, 16 Jul 2003 12:02:09 +0100
Newsgroups gmane.lisp.open-source.franz
Message-ID <[email protected]>
Hi everyone!

I am new to Lisp and I would like some help on how to produce webpages using
lisp server. I read the tutorial on dynamic HTML, but I am still confused. 
Please let me know of any references that gives one basic information on how
to build a web project using lisp and Allegro server.

Thanks,

Maria 


-----Original Message-----
From: Andrew Philpot
To: [email protected]
Cc: [email protected]
Sent: 7/15/2003 6:15 PM
Subject: ASERVE client and pages larger than ARRAY-TOTAL-SIZE-LIMIT


As well as the server functionality of ASERVE, I also find that
NET.ASERVE.CLIENT::DO-HTTP-REQUEST, i.e., the client side, is very
useful to me.

I have run into a problem and am not sure how to proceed.

Since DO-HTTP-REQUEST returns a string containing the contents, I can
run afoul of ARRAY-TOTAL-SIZE-LIMIT.  This limits me to documents no
larger that 16MB (in my ACL 6.2 Linux).  I'm now dealing with database
extracts obtained via HTTP in XML format, and they can easily exceed
this limit.

My first inclination is to (locally) patch this routine to return a
list (or vector) of strings each adhering to the limit.  It seems
pretty ugly to me.

Has anyone encountered this problem with ASERVE, or a similar problem
in another set of circumstances and care to offer a workaround?

Thanks,
Andrew

CL-USER(36): (net.aserve.client::do-http-request
"http://altamira.isi.edu/large.html")
Error: The size of this array 17001732 exceeds array-total-size-limit,
       16777216 or is negative
  [condition type: SIMPLE-ERROR]

Restart actions (select using :continue):
 0: Return to Top Level (an "abort" restart).
 1: Abort entirely from this process.
[1] CL-USER(37): array-total-size-limit
16777216
[1] CL-USER(38): (excl::shell "ls -lga /var/www/html/large.html")
-rw-r--rw-    1 philpot  simsgrp  17001732 Jul 15 10:00
/var/www/html/large.html
0
[1] CL-USER(41): net.aserve::*aserve-version*
(1 2 27)
.