From: Mike Cox
Subject: How do I hide lisp source code?
Date: 
Message-ID: <3d6111f1.0403131414.7d8d6248@posting.google.com>
I've been using lisp now for a week, and now I want to make some bucks
selling my software.  I need to hide or compile my code into
executables so some pirate can't steal my code.  C++ automatically
does this when it churns out an executable or dll file, but how does
one hide Lisp code?  If you know how it is done so I can start making
some dough with lisp, please tell.

I'm using Microsoft Visual Studio.NET, although I'm programming in
lisp using emacs until I find Lisp.NET.  Thanks in advance,

Mike Cox.

--
Mike Cox, Author of the *nix "hm" command.

From: Rick Wojcik
Subject: Re: How do I hide lisp source code?
Date: 
Message-ID: <62N4c.16530$H44.304190@bgtnsc04-news.ops.worldnet.att.net>
Franz ACL allows you to compile applications into executables and dlls, 
but they do not allow you to distribute your applications for free.  You 
have to pay them a royalty fee.  I may be wrong, but I believe that 
LispWorks lets you distribute applications royalty-free.

Mike Cox wrote:

> I've been using lisp now for a week, and now I want to make some bucks
> selling my software.  I need to hide or compile my code into
> executables so some pirate can't steal my code.  C++ automatically
> does this when it churns out an executable or dll file, but how does
> one hide Lisp code?  If you know how it is done so I can start making
> some dough with lisp, please tell.
> 
> I'm using Microsoft Visual Studio.NET, although I'm programming in
> lisp using emacs until I find Lisp.NET.  Thanks in advance,
> 
> Mike Cox.
> 
> --
> Mike Cox, Author of the *nix "hm" command.
From: Pascal Bourguignon
Subject: Re: How do I hide lisp source code?
Date: 
Message-ID: <8765d8uzac.fsf@thalassa.informatimago.com>
············@yahoo.com (Mike Cox) writes:

> I've been using lisp now for a week, and now I want to make some bucks
> selling my software.  I need to hide or compile my code into
> executables so some pirate can't steal my code.  C++ automatically
> does this when it churns out an executable or dll file, but how does
> one hide Lisp code?  If you know how it is done so I can start making
> some dough with lisp, please tell.
> 
> I'm using Microsoft Visual Studio.NET, although I'm programming in
> lisp using emacs until I find Lisp.NET.  Thanks in advance,

How do you run lisp code with Microsoft Visual Studio.NET ?

-- 
__Pascal_Bourguignon__                     http://www.informatimago.com/
There is no worse tyranny than to force a man to pay for what he doesn't
want merely because you think it would be good for him.--Robert Heinlein
http://www.theadvocates.org/
From: Alex Mizrahi
Subject: Re: How do I hide lisp source code?
Date: 
Message-ID: <c3053l$21njqn$1@ID-177567.news.uni-berlin.de>
(message (Hello 'Mike)
(you :wrote  :on '(13 Mar 2004 14:14:14 -0800))
(

 MC> I've been using lisp now for a week, and now I want to make some
 MC> bucks selling my software.

8-]]]

 MC> I need to hide or compile my code into executables so some pirate
 MC> can't steal my code. C++ automatically does this when it churns out an
 MC> executable or dll
 MC> file, but how does one hide Lisp code?  If
 MC> you know how it is done so I can start making some dough with lisp,
 MC> please tell.
.

 MC> I'm using Microsoft Visual Studio.NET, although I'm programming in
 MC> lisp using emacs until I find Lisp.NET.  Thanks in advance,

looks like there is no lisp.NET yet 8-]
there is a Scheme(dialect of lisp) implementation called Bigloo that
compiles into .NET and Java bytecodes - you can use it to compile your
applications..

or you can use Allegro Common Lisp.. well, it has nothing with .NET, but it
looks just like Borland IDEs and making UI in it is as easy as in Borland
C++ Builder/Delphi, i think.. you can call it "Lisp Builder" 8-]

)
(With-best-regards '(Alex Mizrahi) :aka 'killer_storm)
(prin1 "Jane dates only Lisp programmers"))
From: ··········@YahooGroups.Com
Subject: Re: How do I hide lisp source code?
Date: 
Message-ID: <REM-2004mar14-005@Yahoo.Com>
> From: ············@yahoo.com (Mike Cox)
> I've been using lisp now for a week, and now I want to make some
> bucks selling my software.  I need to hide or compile my code into
> executables so some pirate can't steal my code.

Instead of delivering the program itself to your customers, whereby
they could possibly disassemble it to learn of your methods, or just
make millions of pirate copies that they sell cheaper than your
legitimate shrink-wrapped copies, why not keep all the code on your own
machine and simply lease use of your software over the Web, such as
using CGI? In addition to the usual CGI that takes in a filled-out HTML
form and directly generates HTML for browsers, you can accept and emit
s-expressions that are a variant of Remote Procedure Call, thereby
establish software library/database services that can be leased by
application programmers. For example if you were Google or Yahoo or
other company with a huge database of documents/articles all nicely
indexed by keywords, you could set up a service where the RPC of:
  (COMMON-WORDS :LANGUAGE "English" :START 0 :END 10)
might return:
  ("the" "to" "and" "a" "of" "in" "is" "i" "you" "for")
and the RPC of:
  (MAPCAR #'WORD-FREQUENCY '("hello" "murphy" "law"))
might return:
  (24800000 7640000 98100000)
Yes, I really did manually fetch those numbers live from www.google.com
to make a realistic example! (The first example, the common-words list,
however, is from a survey I conducted myself many years ago.)

By faking RPC like that (or using the real RPC as defined by RFC,
bletch), you can then set up distributed applications that are
accessible from whereever the toplevel application function is
installed even though the real database accesses are elsewhere.

A few months ago I was thinking of myself setting up some simple s-expr
RPC on-top-of HTTP services like that, but nobody showed any interest
so I haven't gotten around to working on it yet.
From: Henry Hansen
Subject: Re: How do I hide lisp source code?
Date: 
Message-ID: <Xns94B2699D490Fzak3kc22@198.161.157.145>
··········@YahooGroups.Com wrote in ······················@Yahoo.Com:

> A few months ago I was thinking of myself setting up some simple
> s-expr RPC on-top-of HTTP services like that, but nobody showed any
> interest so I haven't gotten around to working on it yet.

This sounds quite interesting.  Are you aware of any hosting companies
that are LISP - XML-RPC friendly? 

Cheers. 
From: Paolo Amoroso
Subject: Re: How do I hide lisp source code?
Date: 
Message-ID: <87znabbidt.fsf@plato.moon.paoloamoroso.it>
Henry Hansen <······@h-o-t-m-a-i-l.com> writes:

> This sounds quite interesting.  Are you aware of any hosting companies
> that are LISP - XML-RPC friendly? 

See:

  Lisp-friendly Web Hosting
  http://alu.cliki.net/Lisp-friendly%20Web%20Hosting


Paolo
-- 
Why Lisp? http://alu.cliki.net/RtL%20Highlight%20Film
From: Robert Bruce Carleton
Subject: LISP web hosting
Date: 
Message-ID: <105pvjd5fm1rn70@corp.supernews.com>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I presently run a web hosting company based on FreeBSD servers.  I've been
giving some thought to offering shared server lisp hosting services.  Is
anyone willing to suggest the kind of lisp environment they'd like to see?

Thanks,

                        --Bruce

Paolo Amoroso wrote:

> Henry Hansen <······@h-o-t-m-a-i-l.com> writes:
> 
>> This sounds quite interesting.  Are you aware of any hosting companies
>> that are LISP - XML-RPC friendly?
> 
> See:
> 
>   Lisp-friendly Web Hosting
>   http://alu.cliki.net/Lisp-friendly%20Web%20Hosting
> 
> 
> Paolo

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (FreeBSD)

iD8DBQFAXP5gJyirwqhxBMYRAqueAJoC+qBJLbyM1RBoFc+wrJCvNCPGGACcCbDp
VvydH4p/gvqlYMJYr9eQ1nY=
=wq1G
-----END PGP SIGNATURE-----
From: Rob Warnock
Subject: Re: LISP web hosting
Date: 
Message-ID: <aBKdnWNRdKoj6MDd3czS-w@speakeasy.net>
Robert Bruce Carleton  <···@hakuhale.net> wrote:
+---------------
| I presently run a web hosting company based on FreeBSD servers.
| I've been giving some thought to offering shared server lisp hosting
| services.  Is anyone willing to suggest the kind of lisp environment
| they'd like to see?
+---------------

Keep it simple. For starters, just add Marc Battyani's "mod_lisp" to
your base Apache installation, and allow customers to configure it in
their ".htaccess" files [or if not that, provide a procedure for them
to request that you add configuration lines to "httpd.conf"]. For security,
initially you'll want to restrict it to accessing Unix-domain socket
files and various server ports on "localhost" (IP address [127.0.0.1]).
As you gain experience with it, you might later want to allow some users
to host the Lisp server on a different system than the one running Apache
(for performance), although that requires some *careful* firewalling
(though if properly done, it can increase security).

IMPORTANT ASIDE: "mod_lisp" does *not* require a "Lisp" server per se.
  Its control protocol is a purely textual exchange of ASCII header/value
  pairs, which can easily be parsed by a daemon process written in
  just about any language: Common Lisp, Scheme, C, C++, Java, whatever.
  It just happens to be called "mod_lisp" because that's what the author
  was going to use it for when he cloned it from "mod_jserv" and the
  Apache "mod_example". [Perhaps it should be called just "mod_sock[et]"
  or something, to avoid scaring people? On the other hand, "mod_lisp"
  is good PR for Lisp...]

For security, you also need to allow each customer to run his/her own
copy of their chosen application server (Lisp, Java, whatever), as
themselves (under their UID), since protecting users from each other
within a single Unix process is not yet within the state of the art. ;-}

You will want to provide (if you don't already), some sort of SQL
database, such as MySQL or PostgreSQL or both. [I strongly prefer
the latter myself, but Y+OMMV.]

You will want to establish some reasonable "acceptable use" guidelines
on CPU and memory usage for the persistent user servers (daemons), but
be aware that some Lisps (CMUCL is notable here) "mmap()" a *large*
amount of virtual memory at startup, but then don't actually touch it
until they need it. For example, here's a "ps" on a CMUCL that's been
running as an app server behind Apache continuously for the last three
months (plus another process that I'm doing something else with):

    USER   PID  PPID %CPU %MEM     VSZ   RSS TT WCHAN  STAT     TIME COMMAND
    rpw3 82048 82047  0.0 11.2 1299088 54456 p4 select Ss+  27:14.68 cmucl ...
    rpw3 69831 69814  0.0  4.5 1299076 21780 pe select S+    1:01.99 cmucl ...

Note that the the VSZ values shown (1.3GB per CMCUL) are ludicrous -- that
machine only has 512 MB on it! Even the RSS sizes are a bit large, as you
can see when I type the following into a REPL on the application server
(yes, the GC output format has been customized):

    appsrv> (gc :full t)
    ; Mar 21 02:33:20.75 GC: Start: 15.22 MB in use.
    ; Mar 21 02:33:21.00 GC: Done:  4.39 MB in use, 10.83 MB freed, 0.25 secs.
    appsrv> 

So it's really only using the 20+ MB of the initial image load
plus ~5-20 MB more as web hits occur and GCs bang it back down.

Finally, I strongly encourage allowing users to run Dan Barlow's
"dettachtty", as a way to get at the "console" REPLs of their Lisp
images even though you configure them to start at system boot time.

I'm sure others will chime in, but that's what I'd want (if I weren't
running my own server)...


-Rob

-----
Rob Warnock			<····@rpw3.org>
627 26th Avenue			<URL:http://rpw3.org/>
San Mateo, CA 94403		(650)572-2607
From: Robert Bruce Carleton
Subject: Re: LISP web hosting
Date: 
Message-ID: <105rob02imckg66@corp.supernews.com>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Thanks for the suggestions.  I'm already running apache 1.3.X,
postgresql-7.3.X and mysql-4.0.X.  The servers I have, are 1.7Ghz Celeron's
with 512MB RAM. I'm running FreeBSD 4.X.  It sounds like I should install a
bigger memory footprint.

Assuming I'll use mod_lisp, which lisp implementations are preferred?  I'm
guessing it will be clisp, cmulisp and sbcl.

Thanks,

   --Bruce

Rob Warnock wrote:

> Robert Bruce Carleton  <···@hakuhale.net> wrote:
> +---------------
> | I presently run a web hosting company based on FreeBSD servers.
> | I've been giving some thought to offering shared server lisp hosting
> | services.  Is anyone willing to suggest the kind of lisp environment
> | they'd like to see?
> +---------------
> 
> Keep it simple. For starters, just add Marc Battyani's "mod_lisp" to
> your base Apache installation, and allow customers to configure it in
> their ".htaccess" files [or if not that, provide a procedure for them
> to request that you add configuration lines to "httpd.conf"]. For
> security, initially you'll want to restrict it to accessing Unix-domain
> socket files and various server ports on "localhost" (IP address
> [127.0.0.1]). As you gain experience with it, you might later want to
> allow some users to host the Lisp server on a different system than the
> one running Apache (for performance), although that requires some
> *careful* firewalling (though if properly done, it can increase security).
> 
> IMPORTANT ASIDE: "mod_lisp" does *not* require a "Lisp" server per se.
>   Its control protocol is a purely textual exchange of ASCII header/value
>   pairs, which can easily be parsed by a daemon process written in
>   just about any language: Common Lisp, Scheme, C, C++, Java, whatever.
>   It just happens to be called "mod_lisp" because that's what the author
>   was going to use it for when he cloned it from "mod_jserv" and the
>   Apache "mod_example". [Perhaps it should be called just "mod_sock[et]"
>   or something, to avoid scaring people? On the other hand, "mod_lisp"
>   is good PR for Lisp...]
> 
> For security, you also need to allow each customer to run his/her own
> copy of their chosen application server (Lisp, Java, whatever), as
> themselves (under their UID), since protecting users from each other
> within a single Unix process is not yet within the state of the art. ;-}
> 
> You will want to provide (if you don't already), some sort of SQL
> database, such as MySQL or PostgreSQL or both. [I strongly prefer
> the latter myself, but Y+OMMV.]
> 
> You will want to establish some reasonable "acceptable use" guidelines
> on CPU and memory usage for the persistent user servers (daemons), but
> be aware that some Lisps (CMUCL is notable here) "mmap()" a *large*
> amount of virtual memory at startup, but then don't actually touch it
> until they need it. For example, here's a "ps" on a CMUCL that's been
> running as an app server behind Apache continuously for the last three
> months (plus another process that I'm doing something else with):
> 
>     USER   PID  PPID %CPU %MEM     VSZ   RSS TT WCHAN  STAT     TIME
>     COMMAND
>     rpw3 82048 82047  0.0 11.2 1299088 54456 p4 select Ss+  27:14.68 cmucl
>     ...
>     rpw3 69831 69814  0.0  4.5 1299076 21780 pe select S+    1:01.99 cmucl
>     ...
> 
> Note that the the VSZ values shown (1.3GB per CMCUL) are ludicrous -- that
> machine only has 512 MB on it! Even the RSS sizes are a bit large, as you
> can see when I type the following into a REPL on the application server
> (yes, the GC output format has been customized):
> 
>     appsrv> (gc :full t)
>     ; Mar 21 02:33:20.75 GC: Start: 15.22 MB in use.
>     ; Mar 21 02:33:21.00 GC: Done:  4.39 MB in use, 10.83 MB freed, 0.25
>     secs. appsrv>
> 
> So it's really only using the 20+ MB of the initial image load
> plus ~5-20 MB more as web hits occur and GCs bang it back down.
> 
> Finally, I strongly encourage allowing users to run Dan Barlow's
> "dettachtty", as a way to get at the "console" REPLs of their Lisp
> images even though you configure them to start at system boot time.
> 
> I'm sure others will chime in, but that's what I'd want (if I weren't
> running my own server)...
> 
> 
> -Rob
> 
> -----
> Rob Warnock                   <····@rpw3.org>
> 627 26th Avenue                       <URL:http://rpw3.org/>
> San Mateo, CA 94403           (650)572-2607

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (FreeBSD)

iD8DBQFAXeFdJyirwqhxBMYRAhBnAJ9TqpOcA/k8++7NXrWpd4DtmFrg/ACdFNXm
Wj65qzx/3eQMWvlzmyQ/HgE=
=IR1a
-----END PGP SIGNATURE-----
From: Thomas F. Burdick
Subject: Re: LISP web hosting
Date: 
Message-ID: <xcvhdwh50zh.fsf@famine.OCF.Berkeley.EDU>
Robert Bruce Carleton <···@hakuhale.net> writes:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Thanks for the suggestions.  I'm already running apache 1.3.X,
> postgresql-7.3.X and mysql-4.0.X.  The servers I have, are 1.7Ghz Celeron's
> with 512MB RAM. I'm running FreeBSD 4.X.  It sounds like I should install a
> bigger memory footprint.
> 
> Assuming I'll use mod_lisp, which lisp implementations are preferred?  I'm
> guessing it will be clisp, cmulisp and sbcl.

You might also want to install mod_proxy, so people can run a Lisp web
server of their choice behind the reverse proxy.  For example, I like
Araneida.  Others might want to use pAserve.

-- 
           /|_     .-----------------------.                        
         ,'  .\  / | No to Imperialist war |                        
     ,--'    _,'   | Wage class war!       |                        
    /       /      `-----------------------'                        
   (   -.  |                               
   |     ) |                               
  (`-.  '--.)                              
   `. )----'                               
From: David Magda
Subject: Re: LISP web hosting
Date: 
Message-ID: <86u10hsz2d.fsf@number6.magda.ca>
Robert Bruce Carleton <···@hakuhale.net> writes:
[...]
> Assuming I'll use mod_lisp, which lisp implementations are
> preferred?  I'm guessing it will be clisp, cmulisp and sbcl.

There are several in the Ports tree. Why not just install all of them
and let people use what they want?

-- 
David Magda <dmagda at ee.ryerson.ca>, http://www.magda.ca/
Because the innovator has for enemies all those who have done well under
the old conditions, and lukewarm defenders in those who may do well 
under the new. -- Niccolo Machiavelli, _The Prince_, Chapter VI
From: John Thingstad
Subject: Re: LISP web hosting
Date: 
Message-ID: <opr48b5qd5xfnb1n@news.chello.no>
------------KV4Tsx4vcAMS1Cfvq2KWSu
Content-Type: text/plain; format=flowed; charset=iso-8859-15
Content-Transfer-Encoding: 8bit

As has been mentioned elsewhere mod_lisp works with cmulisp and sbcl.
Me I'd prefer mod_fastcgi as it works with clisp as well.
(I.e there are libraries that work right out of the box.)
check out www.fastcfgi.com
(This page has the references to the modules for cmucl and clisp as well)

On Sun, 21 Mar 2004 08:39:15 -1000, Robert Bruce Carleton 
<···@hakuhale.net> wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>

> Assuming I'll use mod_lisp, which lisp implementations are preferred?  
> I'm
> guessing it will be clisp, cmulisp and sbcl.
>
-- 
Using M2, Opera's revolutionary e-mail client: http://www.opera.com/m2/
------------KV4Tsx4vcAMS1Cfvq2KWSu
Content-Disposition: attachment; filename=README
Content-Type: application/octet-stream; name=README
Content-Transfer-Encoding: 8bit

I put the following in my /etc/apache/httpd.conf:

=========================================
LoadModule fastcgi_module /usr/lib/apache/1.3/mod_fastcgi.so

# this goes after User/Group setting
FastCgiExternalServer /home/admin/chery/public_html/appserv -socket appserv.socket
<Location "/~chery/appserv">
SetHandler fastcgi-script
Options ExecCGI
</Location>
=========================================

and this in ~chery/public_html/appserv:

=========================================
#! /bin/sh

exec /usr/bin/lisp -eval '(progn (load "/home/admin/chery/projects/fastcgi-cmucl/fastcgi") (load "/home/admin/chery/projects/fastcgi-cmucl/test") (main))' >> /tmp/appserv.dump 2>&1
=========================================

which resulted in http://localhost/~chery/appserv giving me proper
test output.

The test program can handle multipart/form-data entities as well, I
used this form:

=========================================
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>Appform</title>
  </head>

  <body>
    <h1>Appform</h1>

    <form action="appserv" method="post" enctype="multipart/form-data">
      Kala: <input type="text" name="kala"><br>
      <input type="submit" value="Hop.">
    </form>
  </body>
</html>
=========================================

Read the documentation strings.

Feedback welcome.

------------KV4Tsx4vcAMS1Cfvq2KWSu--
From: Eric Marsden
Subject: Re: LISP web hosting
Date: 
Message-ID: <wziptb5ul07.fsf@melbourne.laas.fr>
>>>>> "rw" == Rob Warnock <····@rpw3.org> writes:

  rw> some Lisps (CMUCL is notable here) "mmap()" a *large* amount of
  rw> virtual memory at startup, but then don't actually touch it
  rw> until they need it. For example, here's a "ps" on a CMUCL that's
  rw> been running as an app server behind Apache continuously for the
  rw> last three months (plus another process that I'm doing something
  rw> else with):
  rw> 
  rw> USER   PID  PPID %CPU %MEM     VSZ   RSS TT WCHAN  STAT     TIME COMMAND
  rw> rpw3 82048 82047  0.0 11.2 1299088 54456 p4 select Ss+  27:14.68 cmucl ...
  rw> rpw3 69831 69814  0.0  4.5 1299076 21780 pe select S+    1:01.99 cmucl ...
  rw> 
  rw> Note that the the VSZ values shown (1.3GB per CMCUL) are
  rw> ludicrous -- that machine only has 512 MB on it!

note that the size of CMUCL's virtual mapping can be selected
at startup using the -dynamic-space-size commandline option, eg

   % lisp -dynamic-space-size 100
  
will start with 100MB VSZ and around 3MB RSS. Unfortunately, you can't
increase the dynamic space size after startup. 
  
-- 
Eric Marsden                          <URL:http://www.laas.fr/~emarsden/>
From: Marc Spitzer
Subject: Re: LISP web hosting
Date: 
Message-ID: <86oeqqafkc.fsf@bogomips.optonline.net>
Robert Bruce Carleton <···@hakuhale.net> writes:

> I presently run a web hosting company based on FreeBSD servers.  I've been
> giving some thought to offering shared server lisp hosting services.  Is
> anyone willing to suggest the kind of lisp environment they'd like to see?
>

If you want to do virtual host instead of jails look into mod_lisp and
apache 1.3.  Then each customer gets their own port on localhost to do
what they want to do.  

Good luck,

marc
From: Daniel Barlow
Subject: Re: LISP web hosting
Date: 
Message-ID: <87isgy8426.fsf@noetbook.telent.net>
Robert Bruce Carleton <···@hakuhale.net> writes:

| I presently run a web hosting company based on FreeBSD servers.  I've been
| giving some thought to offering shared server lisp hosting services.  Is
| anyone willing to suggest the kind of lisp environment they'd like to see?

My experience (a few years ago) with shared server hosting for Lisp
apps was that the hosting provider regarded my single 50Mb process
with suspicion and it was always the first thing to get killed (either
by an OOM killer or by admins; at the kind of price point typical for
shared hosting it seems that giving your customer a straight
explanation of what happened to his web server is not required).
I also had trouble with not having the right kind of privileges to
open ptys, which made it more difficult than I would have liked to 
run interactive services in the background.  

Eventually I persuaded the customer to splash out for a dedicated host
(from another company, at that) and everything since then has been a
lot smoother.  If I were in the market for shared hosting again I
think I'd probaly be looking for UML or something of that nature
(FreeBSD jails might fit the bill too, I haven't ever really used
them), but I'd definitely be looking for some admins who actually
wanted to help and preferably could point at other Lisp-using
customers.


-dan

-- 
"please make sure that the person is your friend before you confirm"
From: Robert Bruce Carleton
Subject: Re: LISP web hosting
Date: 
Message-ID: <105tfl18g8c5fca@corp.supernews.com>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi Dan,

Do you think clisp would have a smaller memory footprint than cmulisp.  If
so, would it still get the job done for server side lisp applications?

Thanks,

   --Bruce

Daniel Barlow wrote:

> Robert Bruce Carleton <···@hakuhale.net> writes:
> 
> | I presently run a web hosting company based on FreeBSD servers.  I've
> | been
> | giving some thought to offering shared server lisp hosting services.  Is
> | anyone willing to suggest the kind of lisp environment they'd like to
> | see?
> 
> My experience (a few years ago) with shared server hosting for Lisp
> apps was that the hosting provider regarded my single 50Mb process
> with suspicion and it was always the first thing to get killed (either
> by an OOM killer or by admins; at the kind of price point typical for
> shared hosting it seems that giving your customer a straight
> explanation of what happened to his web server is not required).
> I also had trouble with not having the right kind of privileges to
> open ptys, which made it more difficult than I would have liked to
> run interactive services in the background.
> 
> Eventually I persuaded the customer to splash out for a dedicated host
> (from another company, at that) and everything since then has been a
> lot smoother.  If I were in the market for shared hosting again I
> think I'd probaly be looking for UML or something of that nature
> (FreeBSD jails might fit the bill too, I haven't ever really used
> them), but I'd definitely be looking for some admins who actually
> wanted to help and preferably could point at other Lisp-using
> customers.
> 
> 
> -dan
> 

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (FreeBSD)

iD8DBQFAXr6fJyirwqhxBMYRAj5/AJ4oMplGxa7BgjIlKfmjSfAJBBGuNACePeFF
QK5EFYpyPDvKxqbrCH49oys=
=Emjg
-----END PGP SIGNATURE-----
From: Rob Warnock
Subject: Re: LISP web hosting
Date: 
Message-ID: <vCednSQ7TIaIWsPd3czS-w@speakeasy.net>
Robert Bruce Carleton  <···@hakuhale.net> wrote:
+---------------
| Do you think clisp would have a smaller memory footprint than cmulisp.
+---------------

Perhaps, but it would have a *far* higher CPU "footprint" (assuming the
bulk of the app were compiled). Besides, as I said, the real memory
footprint of CMUCL is much more reasonable than its apparent one.
and you can tune its GC if you like to trade off memory versus CPU
used. Specifically, as distributed CMUCL does a GC whenever the heap
has grown by 12 MB since the last GC finished, but you can tune that
down to GC more often (at the cost of more CPU) or up to lessen the
CPU load. You probably want to set it so that you can get at least
"a few" web hits between GCs for whatever kind of application you're
doing. For example, with the main app I'm currently working on, which
does database queries with 10-100 rows or results and generates HTML
pages with tables of the results on the fly, I seem to get ~25 hits
between GCs using the default 12 MB delta threshold. And those are
the "cheap" generational GCs, which almost always recover almost all
of the memory that was allocated since the last one. So the dymamic
heap used (which is in addition to the 20+ MB of startup code/image)
tends to cycle between ~5 MB and ~20MB, say. [There's a bit of slop
depending on when higher-generation GCs get done.]

+---------------
| If so, would it still get the job done for server side lisp applications?
+---------------

One point to consider is that CLISP has classically been single-threaded,
which can block other users if one user on a *sloooowww* Internet connection
asks for a page that generates a lot of output.

The Apache proxy support that Dan mentioned (in connection with Araneida)
can help this, since Apache will accept all of the output quickly into
the proxy cache, and then dribble it out to the user, doing the rate-
matching for you. [I think...]


-Rob

-----
Rob Warnock			<····@rpw3.org>
627 26th Avenue			<URL:http://rpw3.org/>
San Mateo, CA 94403		(650)572-2607
From: Christopher C. Stacy
Subject: Re: LISP web hosting
Date: 
Message-ID: <uu10gwx7k.fsf@news.dtpq.com>
>>>>> On Mon, 22 Mar 2004 04:59:33 -0600, Rob Warnock ("Rob") writes:

 Rob> Robert Bruce Carleton  <···@hakuhale.net> wrote:
 Rob> +---------------
 Rob> | Do you think clisp would have a smaller memory footprint than cmulisp.
 Rob> +---------------

 Rob> Perhaps, but it would have a *far* higher CPU "footprint"
 Rob> (assuming the bulk of the app were compiled). Besides, as I
 Rob> said, the real memory footprint of CMUCL is much more reasonable
 Rob> than its apparent one.  and you can tune its GC if you like to
 Rob> trade off memory versus CPU used.

I haven't been following this, but since servers come standard with at
least 4 GB of RAM these days, I can't imagine what the debate is about.
From: Edi Weitz
Subject: Re: LISP web hosting
Date: 
Message-ID: <m3smg0wwhg.fsf@bird.agharta.de>
On Mon, 22 Mar 2004 18:30:54 GMT, ······@news.dtpq.com (Christopher C. Stacy) wrote:

> I haven't been following this, but since servers come standard with
> at least 4 GB of RAM these days, I can't imagine what the debate is
> about.

Your point being?
From: Christophe Rhodes
Subject: Re: LISP web hosting
Date: 
Message-ID: <sqwu5ciqar.fsf@lambda.dyndns.org>
······@news.dtpq.com (Christopher C. Stacy) writes:

> I haven't been following this, but since servers come standard with at
> least 4 GB of RAM these days, I can't imagine what the debate is about.

You haven't been following this, but you feel it necessary to display
your lack of imagination anyway.

Thank you so much for your valuable contribution to this thread.

Christophe
-- 
http://www-jcsu.jesus.cam.ac.uk/~csr21/       +44 1223 510 299/+44 7729 383 757
(set-pprint-dispatch 'number (lambda (s o) (declare (special b)) (format s b)))
(defvar b "~&Just another Lisp hacker~%")    (pprint #36rJesusCollegeCambridge)
From: Christopher C. Stacy
Subject: Re: LISP web hosting
Date: 
Message-ID: <ubrmo5uzu.fsf@news.dtpq.com>
>>>>> On Mon, 22 Mar 2004 20:23:56 +0000, Christophe Rhodes ("Christophe") writes:

 Christophe> ······@news.dtpq.com (Christopher C. Stacy) writes:
 >> I haven't been following this, but since servers come standard with at
 >> least 4 GB of RAM these days, I can't imagine what the debate is about.

 Christophe> You haven't been following this, but you feel it
 Christophe> necessary to display your lack of imagination anyway.

I know it started out with someone not understanding what
virtual memory is, and the next time I looked it seemed it
was about tuning CMUCL for minimal memory impact.

My point was that CMUCL doesn't require "a lot" 
of memory on today's computers.

 Christophe> Thank you so much for your valuable contribution to this thread.

Your welcome.
From: Daniel Barlow
Subject: Re: LISP web hosting
Date: 
Message-ID: <87vfkw5v73.fsf@noetbook.telent.net>
Robert Bruce Carleton <···@hakuhale.net> writes:

> Do you think clisp would have a smaller memory footprint than cmulisp.  If
> so, would it still get the job done for server side lisp applications?

Well, for my particular application, no it wouldn't get the job done
as the job required Araneida, and that only runs on SBCL (and probably
on CMUCL with fairly minimal changes)

But as Christopher Stacey says elsewhere, 50Mb costs how much these
days?  How many users did you want to stick onto the same physical
box?


-dan

-- 
"please make sure that the person is your friend before you confirm"
From: Robert Bruce Carleton
Subject: Re: LISP web hosting
Date: 
Message-ID: <105vgclsg2pnnc0@corp.supernews.com>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I don't really have any particular number of sites per box in mind.  I think
it will be a matter of how much space people need and how well I can
provide that.  I'll probably build a few sites of my own and find out
what's required to support it.  

Thanks for the insights,

                        --Bruce

Daniel Barlow wrote:

> Robert Bruce Carleton <···@hakuhale.net> writes:
> 
>> Do you think clisp would have a smaller memory footprint than cmulisp. 
>> If so, would it still get the job done for server side lisp applications?
> 
> Well, for my particular application, no it wouldn't get the job done
> as the job required Araneida, and that only runs on SBCL (and probably
> on CMUCL with fairly minimal changes)
> 
> But as Christopher Stacey says elsewhere, 50Mb costs how much these
> days?  How many users did you want to stick onto the same physical
> box?
> 
> 
> -dan
> 

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (FreeBSD)

iD8DBQFAX8GIJyirwqhxBMYRAoCdAJ9r+jw/xfbgMUwPOYhawqOvV574sACdHHwJ
Ji2oOAS3Zg55yuLQtHojN5w=
=kC1p
-----END PGP SIGNATURE-----