Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

CGI in Scheme (LISP?)

7 views
Skip to first unread message

comp.lang.scheme

unread,
Aug 5, 2010, 10:06:05 AM8/5/10
to
I am trying to write CGI applications in Scheme. The programs work
with Stalin, but fail when compiled by any other dialect of Scheme. I
need to host pages of law firms in commercial and gov hosting
services. This means that the CGI programs cannot use any external
libraries, because people refuse to change their systems to accomodate
my applications. The programs cannot be very large too, and cannot use
large heaps. Speed is very important, since the programs must run
complex cryptography, statistics, game theory (the lawyers want to
calculate their chances :-), etc. I thought that Bigloo would do the
job. Therefore I compiled my programs thus:

bigloo -static-bigloo game_theory_for_lawyers.scm -o game.cgi

I expected that the option -static-bigloo would remove any reference
to external libraries. However, ten out of ten commercial and gov
hosting services complained that Bigloo is using libraries not
available or not allowed in their systems. I also tried Racket, but
the hosting services complained that it was using unknown libraries.
Finally, I tried one of these tiny Scheme systems, like SIOD; the
hosting services accepted the programs, but they turned out to be very
slow.

I want to point out that Bigloo works when I try it in servers from
the law firm where my client works. The problem arises when I send the
cgi application to a gov organization (like the Supreme Court of
<country name>). It does not work on commercial hosting services
either. People always complain about external libraries, or/and
allocation of large memory chunks.

Interesting enough, everything works well with Stalin. In fact,
Stalin applications run faster than C applications. Programs compiled
with Stalin are accepted by all hosting services or gov organization.
Therefore, I am forced to conclude that the problem is not with
Scheme, but with the way I am compiling the Bigloo applications, or
the Racket applications.

I would like to know how to compile Bigloo (or Racket) applications in
order to:

(1) Use a very small heap. I believe that large heaps is the source of
allocation errors.
(2) Do not use any external library.

BTW, I want to port the applications from Stalin to Bigloo (or Racket)
for two reasons:

(1) It seems that Stalin is not supported or in active development.
(2) Bigloo and Racket have a few tools that I want to use, and is not
available in Stalin. For instance, Bigloo and Racket have bignums,
powerful string manipulation functions, tokenizers, etc.

0 new messages