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

ANN: AServe for LispWorks downloadable

113 views
Skip to first unread message

Jochen Schmidt

unread,
May 11, 2001, 8:17:31 PM5/11/01
to
The AllegroServe to LispWorks port is downloadable from my website
http://www.dataheaven.de

It is tested under LispWorks Enterprise Edition 4.1.20 for Linux.

Regards,
Jochen Schmidt

--
j...@dataheaven.de
http://www.dataheaven.de

Wade Humeniuk

unread,
May 16, 2001, 5:32:12 PM5/16/01
to
As anyone got aserve to work under LispWorks for Windows 4.1.20? It seems
to compile and run but just hangs on the example pages.

Wade

"Jochen Schmidt" <j...@dataheaven.de> wrote in message
news:9dhv45$igt1u$1...@ID-22205.news.dfncis.de...

Jochen Schmidt

unread,
May 16, 2001, 6:12:14 PM5/16/01
to
Wade Humeniuk wrote:

> As anyone got aserve to work under LispWorks for Windows 4.1.20? It seems
> to compile and run but just hangs on the example pages.

Have you edited the paths in example.lisp? I have forgotten to make them
generic. Another problem is that the defsystems are ugly hacks with wrong
dependencies and more. They work best if you force complete recompilation
each time you compile it. Later versions will probably be MK:DEFSYSTEM
based as I like it more than the LW Defsystem.

Kent M. Pitman pointed out various glitches in the above stated parts, but
he has finally managed to run it under LispWorks for Windows (I don't know
the version)

I will fix the above problems in later releases.
Kent sent me some examples how to do it much better and I will test them as
soon as my sparse freetime allows it.

Jochen

--
http://www.dataheaven.de

Jochen Schmidt

unread,
May 16, 2001, 6:25:04 PM5/16/01
to
Wade Humeniuk wrote:

> As anyone got aserve to work under LispWorks for Windows 4.1.20? It seems
> to compile and run but just hangs on the example pages.

You can try to run it in single-threaded mode (by using START-SIMPLE-SERVER
in example.lisp). Then you can break into the process and look into the
backtrace where it seems to lock up.

Btw.: I had somewhere around 60 downloads since announcing AServe for
LispWorks.

Regards,
Jochen

Kent M Pitman

unread,
May 16, 2001, 6:40:16 PM5/16/01
to j...@dataheaven.de
Jochen Schmidt <j...@dataheaven.de> writes:

> Kent sent me some examples how to do it much better and I will test them as
> soon as my sparse freetime allows it.

I suggested changing the logical-hostnames.lisp file to contain this:

==============================================================================
;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Package: CL-USER; -*-

(in-package "CL-USER")

(setf (logical-pathname-translations "ACL-COMPAT")
'(("*.*.*"
;; e.g., "/home/jsc/lisp/src/aserve/acl-compat-lw/"
,(merge-pathnames
(make-pathname :host (pathname-host *load-truename*)
:directory '(:relative "ACL-COMPAT-LW")
:name :wild
:type :wild
:version :wild
:case :common)
*load-truename*))))

(setf (logical-pathname-translations "ASERVE")
`(("**;*.lisp.*" ,(logical-pathname "**;*.cl.*"))
("**;*.*.*"
;; e.g., "/home/jsc/lisp/src/aserve/aserve-lw/**/"
,(merge-pathnames
(make-pathname :host (pathname-host *load-truename*)
:directory '(:relative "ASERVE-LW"
:wild-inferiors)
:name :wild
:type :wild
:version :wild
:case :common)
*load-truename*))))

==============================================================================

And then I suggested moving examples.lisp town into the aserve-lw folder,
renaming it to examples.cl so the translations will find it.

In the examples.cl, you also have to change all occurrences of:
/home/jsc/lisp/src/aserve/aserve-lw/examples/
to be:
aserve:examples;

And finally, you need the following INSTALL.lisp script in the toplevel
directory, next to the INSTALL file. It's just a codification of the
INSTALL file, and it seems to work automatically for me. The examples
ran fine in LWW Enterprise 4.1.20. No warranty expressed or implied.

I did get a bunch of compiler warnings, btw; I didn't investigate those.
I was just doing a superficial test that it would come up and run at all,
which it seems to.

Note that this will compile but not run in LispWorks Personal. I don't
think it's so much a problem with a Personal Edition per se as that there
is some fix which has been added since the Personal Edition came out which
is present in LWW 4.1.20 but not in the Personal Edition--the Personal Edition,
being free, doesn't load any patches. I suspect it would work in the
Professional Edition--I just don't have one to try.

==============================================================================
;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Package: CL-USER; -*-

(in-package "CL-USER")

; 1. Load logical host definitions
(load (merge-pathnames "logical-hostnames.lisp" *load-truename*))

; 2. Load definition of ACL Compatibility system
(load "acl-compat:defsys.lisp")

; 3. Compile and load ACL Compatibility system
(scm:compile-system 'acl-compat :load t) ;use :FORCE T if compilation troubles

; 4. Load definition of Aserve system
(load "aserve:defsys.lisp")

; 5. Compile and load the ASERVE system
(scm:compile-system 'aserve :load t) ;use :FORCE T if compilation troubles

; 6. Load example.lisp in the aserve directory.
(load "aserve:example.lisp")

; 7. Select example package
(in-package :aserve-example)

; 8. Start example server (in multiprocessing) on port 2001
(start-server :port 2001)

Wade Humeniuk

unread,
May 16, 2001, 6:50:23 PM5/16/01
to
Yes I got it to work, though it is glitchy. Getting errors signaled in
match-regexp. But, way to go!

Wade

"Jochen Schmidt" <j...@dataheaven.de> wrote in message

news:9dutld$7ol6$1...@ID-22205.news.dfncis.de...

Wade Humeniuk

unread,
May 16, 2001, 6:57:41 PM5/16/01
to

> Note that this will compile but not run in LispWorks Personal. I don't
> think it's so much a problem with a Personal Edition per se as that there
> is some fix which has been added since the Personal Edition came out which
> is present in LWW 4.1.20 but not in the Personal Edition--the Personal
Edition,
> being free, doesn't load any patches. I suspect it would work in the
> Professional Edition--I just don't have one to try.
>
>

I have the professional edition, it does work. I will try your
modifications.

Wade

Jochen Schmidt

unread,
May 16, 2001, 7:08:07 PM5/16/01
to
Wade Humeniuk wrote:

> Yes I got it to work, though it is glitchy. Getting errors signaled in
> match-regexp. But, way to go!

Ah - if that would be all...
Btw. It seems to be rather stable for me - there are certainly a lot of
things that don't work right but the way it is written leads to a rather
error-resistant behavior. If there are any runtime-errors in a
worker-thread (most time because of missing features or bugs in the ported
parts...) the worker thread simply ignores it and takes the next request.
This is nice in the way that the application doesn't simply core dump - it
doesn't even stop service.
This is one reason why I love Lisp so much - I think it is impossible to
get similar programs in most other languages running in so short time.
There's certainly much to do until AServe for LW will be ready for
production use - but it runs imho rather good for a weekend hack.

Regards,
Jochen

David Bakhash

unread,
May 16, 2001, 9:08:39 PM5/16/01
to
This is fine work, however not everyone necessarily cares about having
a Lisp-based web server.

I just wanted to point out that for people who generally care about
ACL compatibility with LispWorks, you can get quite a bit out of this
code.

Here's an example, from unzipping the files:

aserve/acl-compat-lw/uri.lisp
aserve/acl-compat-lw/nregex.lisp
aserve/acl-compat-lw/acl-mp.lisp
aserve/acl-compat-lw/scan-macros.lisp
aserve/acl-compat-lw/acl-socket.lisp
aserve/acl-compat-lw/acl-excl.lisp
aserve/acl-compat-lw/acl-sys.lisp
aserve/acl-compat-lw/defsys.lisp

I know that at least some of these things will prove useful to
people -- maybe even to Xanalys. ACL has a whole suite of tools to
help migrate code from LW and LCL to ACL, and I think that it would be
nice if similar tools existed for LispWorks (not that they don't; I
havn't actually looked recently).

This is inevitably something I'd be MUCH happier if maintained by
Xanalys, and not by others, though maybe through Sourceforge, so
others can contribute easily.

I have a strong feeling that more and more people will be migrating
code from ACL to LispWorks, so it would be nice to make that as easy
as possible. This is what happens when companies charge an order of
magnitude of difference for a very similar solution.

I ported some LCL stuff to ACL once, and recall that ACL's migration
tools were pretty good, and these things are certainly useful, and
save lots of headaches and time. If such things were flushed out
completely, then they're effectively all you'd need to make things
like AServe work under LispWorks.

dave

Chris Double

unread,
May 17, 2001, 8:38:44 AM5/17/01
to
David Bakhash <ca...@alum.mit.edu> writes:

> This is fine work, however not everyone necessarily cares about having
> a Lisp-based web server.
>
> I just wanted to point out that for people who generally care about
> ACL compatibility with LispWorks, you can get quite a bit out of this
> code.

It was disappointing to find that at least one of the files appears to
be a copy of my own work with my copyright and license information
removed.

acl-excl.lisp from the distribution contains almost exactly the
contents of the acl-excl.lisp I distribute with my Corman Lisp port
but with all reference to licence information, copyright, notes, etc
removed.

While I don't mind too much as it's a fairly trivial module at least
my notes mentioned the original source for things like the IF* macro
which has been removed from the version in the 'lispworks port'.

So much for the license agreement for my original acl-excl source
which stated:

;;;; 2. Altered source versions must be plainly marked as such, and must
;;;; not be misrepresented as being the original software.
;;;;
;;;; 3. This notice may not be removed or altered from any source
;;;; distribution.

Chris.
--
http://www.double.co.nz/cl

Jochen Schmidt

unread,
May 17, 2001, 9:41:51 AM5/17/01
to
David Bakhash wrote:

> This is fine work, however not everyone necessarily cares about having
> a Lisp-based web server.
>
> I just wanted to point out that for people who generally care about
> ACL compatibility with LispWorks, you can get quite a bit out of this
> code.
>
> Here's an example, from unzipping the files:
>
> aserve/acl-compat-lw/uri.lisp
> aserve/acl-compat-lw/nregex.lisp
> aserve/acl-compat-lw/acl-mp.lisp
> aserve/acl-compat-lw/scan-macros.lisp
> aserve/acl-compat-lw/acl-socket.lisp
> aserve/acl-compat-lw/acl-excl.lisp
> aserve/acl-compat-lw/acl-sys.lisp
> aserve/acl-compat-lw/defsys.lisp
>
> I know that at least some of these things will prove useful to
> people -- maybe even to Xanalys. ACL has a whole suite of tools to
> help migrate code from LW and LCL to ACL, and I think that it would be
> nice if similar tools existed for LispWorks (not that they don't; I
> havn't actually looked recently).

I plan to distribute them seperately when they are more mature.
Most of this things are kludges. It is not documented so I will say here
some things what you will find:

uri.lisp (needs scan-macros.lisp):
The URI module is the same that is available seperately from my webpage as
"CommonURI" module. I think CommonURI is now rather usable and can be
counted as "stable". I will work on scan-macros.lisp so that it is more
easy to define your own scan-macros by a DEF-SCAN-MACRO construct.
I see scan-macros.lisp as a solution between using a full-scale lex/yacc
like compiler-compiler and writing your parsing code yourself.

nregex.lisp:
Is needed by acl-excl.lisp
nregex.lisp is available standalone - I've forgotten where.
This time I got it from the CormanLisp port of Aserve that uses it too.

acl-mp.lisp:
Was a try to add the differences in ACLs MP package to LW. Some things
like handling run-reasons. Creating locks with MAKE-PROCESS-LOCK and
WITH-PROCESS-LOCK were added. I've added a WITH-TIMEOUT based on
the one found in CLOCC.
The sad thing is that it is AFAIK not possible to solve the issues with
PROCESS-RUN-FUNCTION or MAKE-PROCESS easily. AServe uses
PROCESS-RUN-FUNCTION when the process should run immediately and
MAKE-PROCESS when the process should block until it gets a run-reason.
I simulated this behavior by creating a process within a WITHOUT-SCHEDULING
form with PROCESS-RUN-FUNCTION and setf'ing the new process' runreasons to
nil (within the WITHOUT-SCHEDULING too).

acl-sockets.lisp:
is a modified version of the one I found at

http://mit.edu/cadet/www/socket.lisp

I modified it alot - particularily the handling of socket-servers is changed
to do it more like CLOCCs portable socket-package handles this for
Lispworks. Some of the missing functions was added.
Neither SSL nor chunking is supported by my ACL-SOCKET wrapper.

acl-excl.lisp
Is a modified version of the one found in the CormanLisp Aserve-port.
There is an issue with STREAM-INPUT-FN which should return a
file-descriptor and not simply the given stream. By returning a stream it
works better with the other functions of this package because the LW
pendants need the stream and not the FD. If theres a way to find the
stream that uses a particular FD then it would be possible to make this
package much more ACL-alike. There's at least one part in AServe that uses
STREAM-INPUT-FN to get a FD of a socket - I had to change this part to
resolve this incompatibility. It is said that there are warnings (or
errors?) in AServe using MATCH-REGEXP. I have not looked into it but it is
maybe because NREGEX supports no grouping so far.

acl-sys.lisp:
This file adds working versions of ACLs COMMAND-LINE-ARGUMENTS
and COMMAND-LINE-ARGUMENT functions. A stub of the function
REAP-OS-SUBPROCESS is added too.

We have seen much efforts on creating portable versions of most of this
parts. I often have the impression that most people don't use them because
they don't want to add external dependencies to their project. Some others
don't like the interface or the way it is implemented (e. g. CLOCCs
port/net.lisp that doesn't use CLOS for sockets and socket-servers)

What I would like to see is a more modular repository and facilities to
fetch the modules over the net. I want to be able to say REQUIRE or
LOAD-MODULE a package by givin simply an URI like "lisp://clocc/port/net"

(load-module "lisp://clocc/port/net")
or
(load-module "lisp://dataheaven/cipher/rsa")

LOAD-MODULE looks if the module is local available and if not it contacts a
central directory-service site that lists all available modules and their
dependencies. There it gets the URLs of the needed modules and fetches them
by using a simple http-client. The modules are built in a standard-way e.g.
each one using MK:DEFSYSTEM and packaging it the same way, so that after
fetching the module and all dependent modules the system can compile and
load it. All modules are cryptographically signed by their maintainers so
you can decide whom packages you want to compile and load directly and
whoms packages you want to inspect first.

Regards,
Jochen

--
http://www.dataheaven.de

Kent M Pitman

unread,
May 17, 2001, 9:48:40 AM5/17/01
to
Btw, I had this interchange by e-mail that seemed worth sharing for general
information and in case anyone else wanted to comment/disagree.

| Date: Thu, 17 May 2001 08:20:10 -0400 (EDT)
| From: Kent M Pitman <pit...@world.std.com>
|
| Date: Thu, 17 May 2001 07:56:44 -0400
| From: Paul Werkowski <pw@...>
|
| Hi Kent, a question re your post to c.l.l.


|
| (setf (logical-pathname-translations "ASERVE")
| `(("**;*.lisp.*" ,(logical-pathname "**;*.cl.*"))

| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| Isn't this incorrect? No host name is specified.
|
| Yeah, could well be. I didn't look at the code that wasn't erring,
| and I didn't write that code. But it appears to work for LW, which is
| all I said it would do. If you think about it, it's a kind of awkward
| patch anyway, probably for implementations that don't find .cl files
| in their defsystem. I think (though didn't check) that it makes LW's
| defsystem, which probably just looks for .lisp files, find .cl files
| by translating the .lisp logical host to .cl, which translates in turn
| to .cl native filename. There's probably some list one can just put
| "CL" onto so that when the system goes to find a source file, it wins
| directly.
|
| The whole translation should almost surely be inside a #+LispWorks, which
| would mean it's really not constrained by the language but by the
| implementation.
|
| (Also, btw, although I've always felt it should work, I don't know that
| all implementations allow logical-pathname to logical-pathname translation.
| I believe the Lisp Machine, where the concept came from, used to have all
| manner of troubles with this the only time I ever tried. So this is
| an additional form of hidden system dependency that might come into play.
| Even if the spec requires it to work, it may be obscure enough to do that
| implementations haven't tested it well...)
|
| From CLHS:
|
| Description:
|
| logical-pathname converts pathspec to a logical pathname and
| returns the new logical pathname. If pathspec is a logical pathname
| namestring, it should contain a host component and its following
| colon. If pathspec is a stream, it should be one for which pathname
| returns a logical pathname.
|
|
| Regards,
| Paul, who is still struggling to grok logical-pathnames so CMUCL will
| grok them too 8-).
|
| I think the reason the logical pathnameis required is since pathnames
| are required to have a host, and since the likelihood is that
| *default-pathname-defaults* is not a logical host means that there is
| no obvious host to put into there... Personally, I think it's an
| utter travesty that hosts are required in pathnames. I think I've
| mentioned the absolute disaster this causes. It turns out that the
| only reason this is forced is that the LispM crowd was convinced that
| pathnames must always be printable (that is, namestring-able), and it
| followed as a consequence (they alleged) that they must always know
| what syntax to print in (which I also dispute, because I tried to get
| them to use #S syntax in some cases, or to signal an error), which
| they thought could only be known if they knew their host (which is
| surely not true). But as you see here, a logical host can print even
| if it doesn't know its host because it knows it's a subclass that has
| a uniform syntax! So I see no reason for this not to work, frankly,
| other than bad design on the committee's part.

Chris Double

unread,
May 17, 2001, 10:15:41 AM5/17/01
to
Jochen Schmidt <j...@dataheaven.de> writes:

> nregex.lisp:
>Is needed by acl-excl.lisp nregex.lisp is available standalone - I've
>forgotten where. This time I got it from the CormanLisp port of
>Aserve that uses it too.

That is from:

http://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/lisp/code/match/nregex/0.html

Note that I emailed the original author to ask for permission to
redistribute and for the license he'd like it distributed
under. Lawrence Freils reply was:

"At this point the software is pretty much public domain. You can
include it in any product, commercial or otherwise. I've not had
a chance to work on it in about 8 years, but others have modified
it for several lisp systems and it is in at least a couple of
products."

I'd appreciate it if you could re-add the various details at the
beginning of acl-excl.lisp from the Corman Lisp AllegroServe
distribution to the modified version you are distributing with your
port.

Thanks,
Chris.
--
http://www.double.co.nz/cl

Marco Antoniotti

unread,
May 17, 2001, 10:17:36 AM5/17/01
to

Given that this is the state of affairs, like it or not (and I don't)

(logical-pathname "**;*.cl.*") ; Missing HOST in logical-path-spec.

is essentially non-portable. End of story.


Cheers

BTW. May I plug-in CL-CONFIGURATION for this case :)

--
Marco Antoniotti ========================================================
NYU Courant Bioinformatics Group tel. +1 - 212 - 998 3488
719 Broadway 12th Floor fax +1 - 212 - 995 4122
New York, NY 10003, USA http://bioinformatics.cat.nyu.edu
"Hello New York! We'll do what we can!"
Bill Murray in `Ghostbusters'.

Kent M Pitman

unread,
May 17, 2001, 10:33:56 AM5/17/01
to
Chris Double <ch...@double.co.nz> writes:

> Jochen Schmidt <j...@dataheaven.de> writes:
>
> > nregex.lisp:
> >Is needed by acl-excl.lisp nregex.lisp is available standalone - I've
> >forgotten where. This time I got it from the CormanLisp port of
> >Aserve that uses it too.
>

> [...] I'd appreciate it if you could re-add the various [copyright/history]

> details at the beginning of acl-excl.lisp from the Corman Lisp AllegroServe
> distribution to the modified version you are distributing with your
> port.

In general, as a point of style, all of the history information in this
post probably belongs in the header of each of the files in question.
Widely distributed files like this should, to the extent reasonable, record
a pedigree of where they came from, not carry it separately, since it's too
easy to get the two separated.

But DEFINITELY, no one's copyright notice should be removed and special pains
should be made to restore such where it has occurred.

Christophe Rhodes

unread,
May 17, 2001, 10:38:09 AM5/17/01
to
Marco Antoniotti <mar...@cs.nyu.edu> writes:

> Given that this is the state of affairs, like it or not (and I don't)
>
> (logical-pathname "**;*.cl.*") ; Missing HOST in logical-path-spec.
>
> is essentially non-portable. End of story.
>
>
> Cheers
>
> BTW. May I plug-in CL-CONFIGURATION for this case :)

Only if you explain how it helps.

Christophe
--
Jesus College, Cambridge, CB5 8BL +44 1223 524 842
http://www-jcsu.jesus.cam.ac.uk/~csr21/ (defun pling-dollar
(str schar arg) (first (last +))) (make-dispatch-macro-character #\! t)
(set-dispatch-macro-character #\! #\$ #'pling-dollar)

Jochen Schmidt

unread,
May 17, 2001, 11:12:52 AM5/17/01
to
Chris Double wrote:

> I'd appreciate it if you could re-add the various details at the
> beginning of acl-excl.lisp from the Corman Lisp AllegroServe
> distribution to the modified version you are distributing with your
> port.

Oh yes sorry - I cutted and pasted the functions from one buffer into a new
one looking into if I can use it or have to do something different for LW.
Be assured that it was no bad intent from me! I will add it ASAP. I don't
looked very much into documentation and distribution issues for the things
in ACL-COMPAT I only wanted it to be out before the last weekend so the
only license issues I assured was that I explicitely used only
redistributable and modifyable code from others.

Sorry,
Jochen

--
http://www.dataheaven.de

Jochen Schmidt

unread,
May 17, 2001, 11:26:48 AM5/17/01
to
Chris Double wrote:

I can only say that I really feel bad because of this mistake - and be
assured it was *no* bad intent behind it. If there would have been bad
intent behind it I would not have let the copyright header including your
additional notes in nregex.lisp.
I just said in the reply to your other post that I will add this header
ASAP. It was simply a dumb copy/paste failure while creating a version for
LW.
I try to distribute the "fixed" version today so that this issue is
resolved. Another thing is maybe the unknown license issues of
acl-sockets.lisp. But as this module is now merely a rewrite in that way
that each original function is reimplemented by me and the additional
functions was by me I don't think that this is a problem.

Again - sorry for this *major* faux pas !

Regards,
Jochen

Jochen Schmidt

unread,
May 17, 2001, 11:47:21 AM5/17/01
to
Kent M Pitman wrote:

> Btw, I had this interchange by e-mail that seemed worth sharing for
> general information and in case anyone else wanted to comment/disagree.
>
> | Date: Thu, 17 May 2001 08:20:10 -0400 (EDT)
> | From: Kent M Pitman <pit...@world.std.com>
> |
> | Date: Thu, 17 May 2001 07:56:44 -0400
> | From: Paul Werkowski <pw@...>
> |
> | Hi Kent, a question re your post to c.l.l.
> |
> | (setf (logical-pathname-translations "ASERVE")
> | `(("**;*.lisp.*" ,(logical-pathname "**;*.cl.*"))
> | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> | Isn't this incorrect? No host name is specified.
> |
> | Yeah, could well be. I didn't look at the code that wasn't erring,
> | and I didn't write that code. But it appears to work for LW, which is
> | all I said it would do. If you think about it, it's a kind of awkward
> | patch anyway, probably for implementations that don't find .cl files
> | in their defsystem. I think (though didn't check) that it makes LW's
> | defsystem, which probably just looks for .lisp files, find .cl files
> | by translating the .lisp logical host to .cl, which translates in turn
> | to .cl native filename. There's probably some list one can just put
> | "CL" onto so that when the system goes to find a source file, it wins
> | directly.

Hm I have to admit that this is another kludge from me.
The "problem" was that AServe uses .cl with all files. AFAIR Lispworks
defsystem wanted to load the files with a .lisp ending. I searched for some
options to fix that and than simply created this translation for the AServe
logical-host. It worked nice and so I not further looked into it.
I don't want to rename all files in Aserve to .lisp
In later releases I will probably use MK:DEFSYSTEM - this has a option for
the ending so that this issue will be resolved then.

Regards,
Jochen

Jochen Schmidt

unread,
May 17, 2001, 11:51:23 AM5/17/01
to
Marco Antoniotti wrote:

> Given that this is the state of affairs, like it or not (and I don't)
>
> (logical-pathname "**;*.cl.*") ; Missing HOST in logical-path-spec.
>
> is essentially non-portable. End of story.
>
>
> Cheers
>
> BTW. May I plug-in CL-CONFIGURATION for this case :)

You may - but MK:DEFSYSTEM is enough to resolve this issues ;-)

At least - sorry for the inconvenience.

Regards,
Jochen


Marco Antoniotti

unread,
May 17, 2001, 12:15:27 PM5/17/01
to

Jochen Schmidt <j...@dataheaven.de> writes:

Apart from that I would also go the length of *not* bundling software
that is stand-alone. I.e. a piece of software like the nregexp
should be 'on-par' with the software that uses it.

Cheers

Jochen Schmidt

unread,
May 17, 2001, 1:05:45 PM5/17/01
to
Marco Antoniotti wrote:

>
> Jochen Schmidt <j...@dataheaven.de> writes:
>
>> Chris Double wrote:
>>
>> > I'd appreciate it if you could re-add the various details at the
>> > beginning of acl-excl.lisp from the Corman Lisp AllegroServe
>> > distribution to the modified version you are distributing with your
>> > port.
>>
>> Oh yes sorry - I cutted and pasted the functions from one buffer into a
>> new one looking into if I can use it or have to do something different
>> for LW. Be assured that it was no bad intent from me! I will add it ASAP.
>> I don't looked very much into documentation and distribution issues for
>> the things in ACL-COMPAT I only wanted it to be out before the last
>> weekend so the only license issues I assured was that I explicitely used
>> only redistributable and modifyable code from others.
>
> Apart from that I would also go the length of *not* bundling software
> that is stand-alone. I.e. a piece of software like the nregexp
> should be 'on-par' with the software that uses it.

This is done - nregex.lisp is included unmodified with the AServe-distro.
CommonURI is the same as the seperate one - no other modifications.
acl-excl.lisp from Chris was thought as modifiyable component because it is
not so much code that it would be good to distribute it seperately. It is
good as a part of a complete ACL-COMPAT package but not standalone.

I'm maybe dumb enough to forget including licence-issues and other things
but I'am not *so* dumb that I don't think in terms of modularity. ;-)
Yes the actual ACL-COMPAT looks a bit like chaos but this is only because I
had not the time to clean it up. The hooks are in - they only have to be
used...

I thought it would be better to share my work then using it here for me
alone. The package is much in the state I would use it for personal needs.
I thought it would help the community more if I deliver it in this state
than waiting any longer.

Maybe I've to think more and wait longer when providing free software in
future - I always thought it is better to get something not completely
perfect than to get nothing...

Erik Naggum

unread,
May 17, 2001, 1:37:30 PM5/17/01
to
* David Bakhash <ca...@alum.mit.edu>

> I have a strong feeling that more and more people will be migrating
> code from ACL to LispWorks, so it would be nice to make that as easy
> as possible. This is what happens when companies charge an order of
> magnitude of difference for a very similar solution.

I have a strong feeling that if people form a gang and attack a company,
they will feel very good about themselves for destroying somebody else's
work and livelihood and for scaring off their customers, too. Human
decency will have suffered another blow, the ability of people to make
their own decisions will be curtailed by gang-menality "popular views"
(agree with us, or else), the concept of fairness is once again shown to
be completely inapplicable in the Comon Lisp community, respect for other
people is once again proven to be worthless to Common Lispers, and we are
perhaps left with a company that could not survive the demand that in the
best of worlds would arise from being the only game in town.

Short-sighted, vindictive people will have won another fight and will
have killed Common Lisp in their zeal to force the world to be to their
liking, because leaving people who think differently alone is not an
option to them. We have a lot of those people here -- people who are
unable to deal with those who have another view, need, idea, problem,
etc, than the "majority"; including people who want Common Lisp to be the
language of the poor and the destitute who cannot even learn the language
without getting the textbooks for free.

Also, companies that go bankrupt are a danger to healthy competition.
They are able to make their creditors and shareholders pay for their
losses and bad management and then to start anew with assets that they
essentially got for free, quite unlike the competition that has not gone
bankrupt, who have to pay full price for their assets, but quite similar
to how their customers have wanted their products, for too little money.

Anyone who plans to waste the shareholders' money can undercut the
competition. The easiest thing in the world is to charge too little, it
is just as easy as spending too much of other people's money. Customers
will flock to those who do because they are giving away some, if not all,
of the value for free. Somebody may even pick up the underpriced goods
and sell them at a profit when the stupid company ceases to exist or
raises prices to try to survive after all.

People of very limited intellect just _love_ "free" stuff. That is how
they can be lured into bad and costly deals with free offers, miniscule
chances to win some "prize", and other marketing techniques aimed at the
non-thinking. And then there are the cynics, who do not understand that
by only taking the free stuff and not buying anything else, they are
making everybody else lose, so that free stuff is no longer goodwill to
honest people, but reduced to free crap for the fools.

When something _must_ be widespread in order to be used, the only option
may well be to give it away to lots of people until you have enough
market share that those who want on the bandwagon later will be willing
to pay for it, but then you need to be damn certain that you are able to
keep your customers and not provide free marketing for your competitors,
who do not need to recover those marketing costs. Fax machines, cellular
phones, even operating systems, have been sold with this technique. Many
other products have failed to gain the required market share and have
lost all the shareholders' money. Remember all the web sites that used
this trick to cause people to use them, but who were left behind when the
_next_ outlet for free goods and services sprung up to waste new money.

Common Lisp has, however, been given away for free for a very long time,
and the market share has failed to materialize. This is very instructive
to those who want the market share to increase: It simply does not work
to give Common Lisp away to increase the market share -- you simply give
something away without getting anything back, not even happy users! To
add insult to injury, those who get the demos for free, demand to get the
product for free, too, based on their (claimed) inability to make money
with it. Now, _why_ should anyone cater to these people? _Why_ is mass
popularity a _goal_ with anyone at all? It is merely a _means_ to reach
the category of goals that requires lots of people. Not _all_ goals are
like that. The most interesting goals require reaching only a handful of
people. Some things are even possible only if the mass market is kept
out of it.

The obvious _business_ solution to this problem for those who want others
to give them free Common Lisps is to produce and market your own Common
Lisp system, give it away to lots of people just like yourself, spend at
least 100 million dollars in marketing, and expect to recover about twice
that money in five years. Anyone can do this. Just go to your favorite
bank and ask for a 100 million dollar unsecured loan, present them with
your plan to give the stuff you make away for free, and you should be
_very_ surprised if you are not met with enthusiasm and a willingness to
pour the money over you. This is how business works, you know. That,
and Disney movies with talking animals are really documentaries, the lion
and the lamb already grace side by side, poverty is about to vanish, and
peace and harmony will soon fall upon the earth. Yeah, verily.

Making money on a product that only a small number of people want, but
which is expsneive to produce, is damn hard. One company has shows us
that it can be done for very little money, provided that they are bought
out by someone who saw the bargain price for the assets of the bankrupt
company, provided that you can fire key personnell when the product has
reached maturity, and provided that you can continue to basically give
away the results until the next bailout/bankruptcy occurs. Here is a
clue to which companies to avoid buying stocks in and products from: If
_you_ cannot figure out how they are going to stay in business, with or
without spending serious effort to find out, they will probably fold.

Betting on losers is considered more "humanitarian" in some cultures than
betting on winners (outside of sports, which for some bizarre reason is
exempt from the criticism levied on every other kind of competition).
People are of course free to bet on whatever they like, but if the goal
is to make everybody a loser so only "humanitarians" will bet on them, I
take serious exception to this practice. I want Common Lisp to be there
when I need it, when I want it, and when I depend on it. If Common Lisp
were as hugely popular as, say, Perl or Linux, I would be able to rely on
the momentum of the mass market to keep free stuff alive, but Common Lisp
is and always will be an elite thing.

People ask why Common Lisp is not more popular all the time. One answer
is that those who could help make it more popular are busy denouncing
those who develop, make, and market the stuff they want to be popular.
Another problem is some people are so upset about their inability to deal
with other people that they cannot help themselves from running after
them and attacking them, like what happened in comp.org.lisp-users just
recently. Their failure to focus on the good of the community and
accepting the differing views about what is for the good of the community
has produced a community of people who are very, very concerned about
attacking people and companies. "If you do not charge a price _we_ like,
we beat up your company." "If you do not use _our_ choice of polite
words, we beat you up for it." "If you dare to think something different
than us at all, we beat you up." This is particularly true of people who
no longer _use_ Common Lisp in either work or play, those who no longer
fight _for_ anything, only _agsinst_, and typically, they fight against
trivialties.

If you have a personal gripe against anyone's pricing, David, keep it
personal. Other people are able to come to their own conclusions without
your "help" to make it harder for people to come a conclusion they have
to "defend". It obviously makes business sense for _some_ people to do
what you want _others_ (not just yourself) to do, so let them do it. If
this is all about envy and hostility towards those who _can_ afford what
you can not, which I happen to think it is, just _can_ it. Do something
better. Let us all find people who are actually _using_ Common Lisp and
hear what they have to say. The whining bastards who do not are not
worth listening to. There are easy ways to use Common Lisp for those who
want to, and if something is lacking, let us hear about it and _inspire_
someone to make it for you if you do not want to do it yourself. "Gimme"
does not an inspiration make. Those who find it easier to whine than do
something useful are a waste of time.

#:Erik
--
Travel is a meat thing.

Chris Double

unread,
May 17, 2001, 4:56:10 PM5/17/01
to
Jochen Schmidt <j...@dataheaven.de> writes:

> I can only say that I really feel bad because of this mistake - and
> be assured it was *no* bad intent behind it. If there would have
> been bad intent behind it I would not have let the copyright header
> including your additional notes in nregex.lisp.

Thanks for understanding and making the change Jochen, and also thanks
for making your AllegroServe port available. I'm sure many LispWorks
users (and other Lispers who'll use your port for a base) will find it
very useful!

Regards,
Chris.
--
http://www.double.co.nz/cl

Jochen Schmidt

unread,
May 17, 2001, 5:11:42 PM5/17/01
to
The new release is on the site.
I've added the missing header
the new logical-hostname.lisp and INSTALL.lisp.

Tim Bradshaw

unread,
May 18, 2001, 7:23:47 AM5/18/01
to
Erik Naggum <er...@naggum.net> writes:

> Also, companies that go bankrupt are a danger to healthy competition.
> They are able to make their creditors and shareholders pay for their
> losses and bad management and then to start anew with assets that they
> essentially got for free, quite unlike the competition that has not gone
> bankrupt, who have to pay full price for their assets, but quite similar
> to how their customers have wanted their products, for too little money.
>

This is obviously true, but it's applicable only where there is a
residual debt associated with the asset. Whether that's true here I
don't know (and if I did I would not comment!). I just want to make a
slightly nerdy point:

If a company acquires some asset, then they have to fund the cost of
that asset. If they borrow money to do so, then they need to service
the debt, and that can influence what they charge for things. However
once the debt is paid they don't need to service it any more, so
things are quite different - they need to fund the cost of maintainign
and developing the asset, but not the acquisition cost. This is a
kind of inverse sunk-cost thing - in both cases the trick is to only
look forward and not consider the history (so don't consider paid-off
debts but do consider non-paid-off ones).

There's a second related point which is how much you should pay to buy
an asset from a bankrupt company, which influences what you then have
to charge. If you think the asset is worth having then you should
expect to pay for it: if you get it for free, then the receiver isn't
doing their job right, and is ripping off the creditors & shareholders
of the bankrupt company. So it should not be the case that a company
which gets assets from a bankrupt company gets them for free, unless
those assets are worthless.

None of this is to disagree with your main point.

--tim

Espen Vestre

unread,
May 18, 2001, 8:55:22 AM5/18/01
to
Erik Naggum <er...@naggum.net> writes:

> * David Bakhash <ca...@alum.mit.edu>
> > I have a strong feeling that more and more people will be migrating
> > code from ACL to LispWorks, so it would be nice to make that as easy
> > as possible. This is what happens when companies charge an order of
> > magnitude of difference for a very similar solution.
>
> I have a strong feeling that if people form a gang and attack a company,
> they will feel very good about themselves for destroying somebody else's
> work and livelihood and for scaring off their customers, too. Human
> decency will have suffered another blow, the ability of people to make
> their own decisions will be curtailed by gang-menality "popular views"

I don't see any 'gang mentality' in David's statement, it's probably
relatively close to being a statement of facts. And I assume that Franz
knows what they're doing with their current licensing policies, and that
they will stay in business even if they lose a few customers to Xanalys.
In fact, I think it's also in the interest of Franz that Xanalys is able
to keep their lisp business running. The existence of at least two
commercial lisp system vendors can be an essential sales point when
introducing lisp to one of those many organizations where lisp is
either a myth or (recently more common) completely unknown.
--
(espen)

Marco Antoniotti

unread,
May 18, 2001, 9:27:30 AM5/18/01
to
Jochen Schmidt <j...@dataheaven.de> writes:

I do not agree. I did not mean to be overly critical and just made a
suggestion given your posting. Look: had you not posted your
software, you would have not received comments about it. If the newer
release is better, this is also a result of the comments you received,
and everybody benefitted.

Kent M Pitman

unread,
May 18, 2001, 10:12:45 AM5/18/01
to
Tim Bradshaw <t...@tfeb.org> writes:

> Erik Naggum <er...@naggum.net> writes:
>
> > Also, companies that go bankrupt are a danger to healthy competition.
> > They are able to make their creditors and shareholders pay for their
> > losses and bad management and then to start anew with assets that they
> > essentially got for free, quite unlike the competition that has not gone
> > bankrupt, who have to pay full price for their assets, but quite similar
> > to how their customers have wanted their products, for too little money.
>

> ... how much you should pay to buy


> an asset from a bankrupt company, which influences what you then have
> to charge. If you think the asset is worth having then you should
> expect to pay for it: if you get it for free, then the receiver isn't
> doing their job right, and is ripping off the creditors & shareholders
> of the bankrupt company. So it should not be the case that a company
> which gets assets from a bankrupt company gets them for free, unless
> those assets are worthless.

Exactly. The competition that Erik's assuming gets an unfair shake
might actually be the one to buy the asset. I'd certainly expect it
to bid. Certainly it's a matter of public record that the company
goes out of business. The creditors would be fools not to allow a
bidding war on anything that had higher market value than it appeared
to.

Indeed, in a market where bidding occurs properly, the goods will achieve
a fair market price and the only effect of bankruptcy will be to remove
control from someone who could not maintain the product and hand it to someone
who promises to do better. At least, that's the position I heard
espoused by the "sharks" buying up assets after the 1987 US stock market
crash, trying to defend their position. They claim they are just keeping the
herd of companies healthy. And they make a credible case, I think.

Which is to say that I don't agree with Erik's concern, except to say that
sometimes people make wrong judgments and markets while they achieve good
value/efficiency statistically sometimes don't at the micro-level. It's at
the micro-level where the effects are almost quantum-mechanical, with people
making the decisions, not the markets, and people making mistakes. And it's
at this level that you can make money. Because, as far as I know, no one
has ever made consistent, reliable money betting against the market. One
makes money betting against smaller processes that are people-controlled.

Jochen Schmidt

unread,
May 18, 2001, 11:34:38 AM5/18/01
to
Marco Antoniotti wrote:

> Jochen Schmidt <j...@dataheaven.de> writes:


>
>> Marco Antoniotti wrote:
>> Maybe I've to think more and wait longer when providing free software in
>> future - I always thought it is better to get something not completely
>> perfect than to get nothing...
>
> I do not agree. I did not mean to be overly critical and just made a
> suggestion given your posting. Look: had you not posted your
> software, you would have not received comments about it. If the newer
> release is better, this is also a result of the comments you received,
> and everybody benefitted.

Your critic was ok and I hope to get more constructive critics like this.
What I said was not because you made suggestions but a question if it would
be better to wait instead of publish my free work "to early".
IMHO the right thing when doing a open-source project is to distibute as
early as possible. Errors, bugs and inconveniences may be found and
probably fixed by the comunity that profits from the software.
I'm not sure - nobody said anything that would justify such a question but
I would be interested what others here think of that. Is it considered
harmful to publish half-ready packages that may in the worst case contain
such silly errors like missing license info for external ressources?
This doesn't mean that this may happen again (I've certainly learned
somewhat of this...) but there may be other probably similar errors in
future?!?

Regards,
Jochen

Tim Bradshaw

unread,
May 18, 2001, 11:56:35 AM5/18/01
to
Kent M Pitman <pit...@world.std.com> writes:

> Indeed, in a market where bidding occurs properly, the goods will
> achieve a fair market price and the only effect of bankruptcy will
> be to remove control from someone who could not maintain the product
> and hand it to someone who promises to do better. At least, that's
> the position I heard espoused by the "sharks" buying up assets after
> the 1987 US stock market crash, trying to defend their position.
> They claim they are just keeping the herd of companies healthy. And
> they make a credible case, I think.


I think the `where bidding occurs properly' bit is pretty crucial.
This depends on people knowing what things are worth and on that
information being available &c &c. All things that economists like to
assume about markets, but they're not always brilliant approximations.
And of course there can be other factors, such as a company being
willing to buy *all* the assets of a bankrupt company which might be
better for the creditors but avoid the issue of what some particular
asset is worth. Let alone corruption &c.

--tim

Kent M Pitman

unread,
May 18, 2001, 12:23:27 PM5/18/01
to
Tim Bradshaw <t...@tfeb.org> writes:

But this discussion started with Erik saying that Company A would find it
unfair that Company C bought Company B's assets after Company B went
bankrupt. What I'm saying is that Company C should have no better access
to info about Company B's assets than Company A unless either [1] the owner of
B's assets is just stupid and doesn't want to sell them for what it's worth
(because lack of lknowedge by A will mean C will get them at too low a price)
or [2] the owner of B's assets wants to give an advantage to C. In scenario
1, Company A is not unfairly taken advantage of, but rather the owner
of Company B's assets is--a fair price has been paid by the sum of the loss
to B on what he should have paid + the price C actually paid. In scenario
2, Company A is also not unfairly taken advantage of because B and C are
colluding and/or partners, and A might as well think of the pair as combined
partners, who have in combination deliberately arranged to go after A, but in
any case have paid the price to do so. It is always the case that A could
have made an offer that was fair; if A is prevented from doing that, then
B, at least, is a fool for not waiting to see what A would offer, or else
A was not going to offer enough.

The measure of what the right thing is, in the end, is whether people
sign the agreement. It can't fail to work, because their mutual
acceptance DEFINES it to have worked. If I offer you a nickel for your
house, and you say yes, that's a fair price. If I offer you $10M and you
say yes, that's a fair price. If I offer you a nickel and you say no, that's
an unfair price. If I offer you $10M and you say no, then that's not a fair
price either. It is your free choice, and not the fact that either of knows
that an appraiser last week appraised the house at $100K, that determines
the true fair price.

Tim Bradshaw

unread,
May 18, 2001, 12:59:57 PM5/18/01
to
Kent M Pitman <pit...@world.std.com> writes:

> But this discussion started with Erik saying that Company A would
> find it unfair that Company C bought Company B's assets after
> Company B went bankrupt. What I'm saying is that Company C should
> have no better access to info about Company B's assets than Company
> A unless either [1] the owner of B's assets is just stupid and
> doesn't want to sell them for what it's worth (because lack of
> lknowedge by A will mean C will get them at too low a price) or [2]
> the owner of B's assets wants to give an advantage to C. In
> scenario 1, Company A is not unfairly taken advantage of, but rather
> the owner of Company B's assets is--a fair price has been paid by
> the sum of the loss to B on what he should have paid + the price C
> actually paid. In scenario 2, Company A is also not unfairly taken
> advantage of because B and C are colluding and/or partners, and A
> might as well think of the pair as combined partners, who have in
> combination deliberately arranged to go after A, but in any case
> have paid the price to do so. It is always the case that A could
> have made an offer that was fair; if A is prevented from doing that,
> then B, at least, is a fool for not waiting to see what A would
> offer, or else A was not going to offer enough.

I think this is basically right. The bad case is where B (or B's
(ex-)directors) and C collude to rip off B's creditors by underselling
the asset to C, thus writing-off the cost of the asset. This
incidentally is bad for A too. *However* in order for this to happen
the receiver (or whatever the US equivalent is - the person who is
responsible for disposing of B's assets) has to either be in on the
deal, or to be incompetent.

(There are lots of cases where A probably can't or should not offer for
the asset - for instance in the case of two suppliers where A is one
of them and the other has gone bankrupt, it may well be in A's
interest to get someone else to offer to avoid becoming a
single-source.)

Anyway, I think we agree, especially since I've now reread your
original message with the bit about fluctuations & mistakes, which is
more what I was trying to get at.

--tim

Erik Naggum

unread,
May 18, 2001, 2:37:20 PM5/18/01
to
* Tim Bradshaw <t...@tfeb.org>

> If a company acquires some asset, then they have to fund the cost of that
> asset. If they borrow money to do so, then they need to service the
> debt, and that can influence what they charge for things.

Whether you borrow from your own war chest or an external lender, you
still have to ensure that the money is profitable. Money is a perishable
good and very quickly deteriorates in value if left alone. (Thanks in
part to the very strong drive by governments everywhere to keep the money
in circulation and productive through money supply manipulation, interest
rates from the central bank or other lender of last resort, and taxation
alike.) If you borrow from your other assets, you also limit your
ability to do other things with the same money, and there is the risk of
loss that is actually much more pronounced if you use your own money.
This is why it is made profitable by our governments to be in debt, which
ironically makes it more expensive to be in debt than if it were more
profitable and a lot easier to build and keep a fortune, but I digress.

> However once the debt is paid they don't need to service it any more, so

> things are quite different - they need to fund the cost of maintaining


> and developing the asset, but not the acquisition cost.

This is superficially true, but nobody ever has money enough to do all
that they want, so in order to ensure that you can take risks and have
some of your acquisitions fail, you need to ensure that you recover a lot
more from the profitable acquisitions than just its own cost. The whole
system of limited liability means that failure is inexpensive and success
needs to pay for far more than it would if failure was more expensive, in
the hopes that a few huge successes actually can pay for several failures.

> This is a kind of inverse sunk-cost thing - in both cases the trick is to
> only look forward and not consider the history (so don't consider
> paid-off debts but do consider non-paid-off ones).

This is a good way to look at it if you do not plan to make acquisitions
later. There is never _enough_ money to do all you want, and there is
never enough available people to do it with. The more money you can make
circulate profitably, the more you can do. In other words, you are
making sure that you pay less for future acquisitions if you consider the
need some time in the future to borrow from yourself. The serviceability
requirement does not change appreciably whether you have borrowed them
from someone or own them yourself.

> There's a second related point which is how much you should pay to buy an
> asset from a bankrupt company, which influences what you then have to
> charge. If you think the asset is worth having then you should expect to
> pay for it: if you get it for free, then the receiver isn't doing their
> job right, and is ripping off the creditors & shareholders of the
> bankrupt company. So it should not be the case that a company which gets
> assets from a bankrupt company gets them for free, unless those assets
> are worthless.

Not quite true. Goods are worth only what others are willing and able to
pay for them at the time of the offer. If someone went bankrupt with a
certain asset, few lenders will give you a lot of money to acquire it, so
the assets of bankrupt companies are often acquired by entitites with
available (spare) money. There are also anti-trust regulations to take
into account. If the sole surviving competitor buys the remains of its
competition, the government will be on your tail and will "encourage" the
asset to be sold to a less able buyer, all in the interest of keeping the
"competition" and "market" working, i.e., avoiding "monopoly". As a
result, you get a _lot_ less for the assets of a bankrupt company than
you would have if it were sold off while the company had proved viable.
Finance being much about trust and psychology, failures also tend to
raise questions about future viability of all components, no matter how
complex the relationships that caused the failure. Not to mention the
fact that the government is the most aggressive killer in the market, and
that a company can go bankrupt for relatively minor tax transgressions
that had nothing to do with the viability of its products or management.

David Bakhash

unread,
May 22, 2001, 11:15:46 PM5/22/01
to
>>>>> "chris" == Chris Double <ch...@double.co.nz> writes:

chris> David Bakhash <ca...@alum.mit.edu> writes:
>> This is fine work, however not everyone necessarily cares about having
>> a Lisp-based web server.
>>
>> I just wanted to point out that for people who generally care about
>> ACL compatibility with LispWorks, you can get quite a bit out of this
>> code.

chris> It was disappointing to find that at least one of the files appears to
chris> be a copy of my own work with my copyright and license information
chris> removed.

yeah. I think one of the files was my initial work too, i.e. the
sockets, but I never put a copyright on it, since I personally don't
give a damn. I think this stuff is easy, and anyone can pretty much
do it. Porting is not particularly hard work, imho. Probably not
even worth caring about, except for the value to the reader who wants
to know where to get the latest updates, etc.

chris> acl-excl.lisp from the distribution contains almost exactly the
chris> contents of the acl-excl.lisp I distribute with my Corman Lisp port
chris> but with all reference to licence information, copyright, notes, etc
chris> removed.

I'm sure the Jochen will make the change (as he probably says in later
posts I've havn't gotten to).

chris> So much for the license agreement for my original acl-excl source
chris> which stated:

chris> ;;;; 2. Altered source versions must be plainly marked as such, and must
chris> ;;;; not be misrepresented as being the original software.
chris> ;;;;
chris> ;;;; 3. This notice may not be removed or altered from any source
chris> ;;;; distribution.

It's not as if he made money off of it. I don't think he tried to
claim that too much of this is his original work.

Anyway, I'd still prefer to use LispWorks's SQL package than USQL. I
think that Jochen is unaware of major changes that have gone on in the
past year, and so, in case people care:

Pay the extra money for Xanalys's USQL -- especially if you're
already using LispWorks.

It's also very well supported, and hopefully soon will support ODBC on
Linux.

dave

David Bakhash

unread,
May 22, 2001, 11:25:16 PM5/22/01
to
>>>>> "jochen" == Jochen Schmidt <j...@dataheaven.de> writes:

jochen> nregex.lisp:
jochen> Is needed by acl-excl.lisp
jochen> nregex.lisp is available standalone - I've forgotten where.
jochen> This time I got it from the CormanLisp port of Aserve that uses it too.

jochen> acl-mp.lisp:
jochen> Was a try to add the differences in ACLs MP package to LW. Some things

jochen> acl-sockets.lisp:
jochen> is a modified version of the one I found at

jochen> http://mit.edu/cadet/www/socket.lisp

jochen> acl-excl.lisp
jochen> Is a modified version of the one found in the CormanLisp Aserve-port.

jochen> ...

this is a really good post. You have definitely been very resourceful
in finding these packages, and not re-inventing the wheel. Great
work.

It just goes to show that when you consider what's in things like
CLOCC, the Web in general, other packages, Chris's CormanLisp stuff,
CL-HTTP, SQL-ODBC, etc., there's enough to really do some damage.

nice.

I must admit, though. I don't like compatibility packages. Using
them makes me feel sick. The *only* reason I've ever considered an
implementation of Lisp other than LispWorks is that the enterprise
runtime licenses are still not cheap, and don't port to enough
platforms. CLISP is a nice fix, but there's a lot of lossage when
trying to port to CLISP.

dave

David Bakhash

unread,
May 22, 2001, 11:29:42 PM5/22/01
to
>>>>> "marco" == Marco Antoniotti <mar...@cs.nyu.edu> writes:

marco> Jochen Schmidt <j...@dataheaven.de> writes:

marco> Apart from that I would also go the length of *not* bundling
marco> software that is stand-alone. I.e. a piece of software like
marco> the nregexp should be 'on-par' with the software that uses it.

I'd say screw that!

First off, if nregex is in the public domain, then let him bundle it
however he wants. It's like the difference between static and
dynamically-linked software. People want to download something and
see it work. That's all there is to it. If this is a necessary part
of the software and he can ethically add it, then I say go for it. It
makes other people's lives easier, which is the whole point of
software in the first place.

dave

David Bakhash

unread,
May 22, 2001, 11:33:20 PM5/22/01
to
>>>>> "marco" == Marco Antoniotti <mar...@cs.nyu.edu> writes:

>> Maybe I've to think more and wait longer when providing free
>> software in future - I always thought it is better to get
>> something not completely perfect than to get nothing...

marco> I do not agree. I did not mean to be overly critical and just
marco> made a suggestion given your posting. Look: had you not
marco> posted your software, you would have not received comments
marco> about it. If the newer release is better, this is also a
marco> result of the comments you received, and everybody benefitted.

Marco,

I personally have to disagree with you here. I, for one, don't want
to have to download a billion things to make a webserver work. sorry.

I actually think this is an excuse for you to post, and nothing else.
If nregex is what it takes to make this package complete, and it's in
the public domain, then I don't see what your problem is.

dave

David Bakhash

unread,
May 23, 2001, 12:03:44 AM5/23/01
to
I'm sorry I was out of commission for so long, and missed this post.
So I'll reply now, and hope that I can complete the thought that I
intended by my earlier post, which read:

* David Bakhash <ca...@alum.mit.edu>
> I have a strong feeling that more and more people will be migrating
> code from ACL to LispWorks, so it would be nice to make that as easy
> as possible. This is what happens when companies charge an order of
> magnitude of difference for a very similar solution.

First off, what I say is true. It is my personal experience, which is
what I write about, in an effort to make others aware of _my_
experiences, as I am eager to learn of their experiences.

I feel that it was constructive to point out that the package that was
recently released -- a port of an ACL's AllegroServe which I've said
time after time in probably half a dozen posts is the best Lisp-based
web server out there -- contained useful porting information.

In the same post, I also pointed out:

> ACL has a whole suite of tools to help migrate code from LW and LCL
> to ACL, and I think that it would be nice if similar tools existed
> for LispWorks (not that they don't; I havn't actually looked
> recently).

While some may perceive any thriving CL company as beneficial to the
Common Lisp community, I do not see things this way. I think that
their success and profitability is part of it, but there's a lot more.

Here's an example. I recently pitched Common Lisp as in
implementation language for a system. Subsequent research on it from
the decision makers led them to conclude that it would not be a viable
alternative. That came completely independent of me, and was exactly
_not_ what I wanted to convey (especially as I try to use CL for as
muc work as possible). Without naming any names, I can openly say
that it was a single vendor that was responsible for the bad rap.

This forum is one of the few places where people really gather to
discuss issues about Common Lisp. It's also the primary place.
Incorrect information is quickly identified here, and I always post
under my own name, so people know who I am when I say stuff. I make
mistakes, but I don't make stuff up. And I'm not afraid to say it. I
say what I feel and what I think. I read follow-ups because I want to
know if I'm wrong, where I'm wrong, and how to become a better
contributor, and of course to become a better programmer.

It's a free market out there for the Lisp guys. They can put whatever
pricetag on their stuff, as far as I'm concerned. But that
information will propogate so fast that they won't know what hit
them. If they screw someone over, they'll get it. That's the beauty
of open media, free press, and the Internet. I don't always agree
with the individual outcomes, but on the whole forums such as this
improve overall productivity. Vendors find out what developers need
and care about, and that is a value they get. Well, I believe it goes
beyond features, and so I'm comfortable writing about it.

The last thing I ever want to hear is that a company got burned
_because_ they used Common Lisp.

dave

Jochen Schmidt

unread,
May 23, 2001, 2:34:49 AM5/23/01
to
David Bakhash wrote:

> yeah. I think one of the files was my initial work too, i.e. the
> sockets, but I never put a copyright on it, since I personally don't
> give a damn. I think this stuff is easy, and anyone can pretty much
> do it. Porting is not particularly hard work, imho. Probably not
> even worth caring about, except for the value to the reader who wants
> to know where to get the latest updates, etc.

My first private port of the older AServe used a foreign ACL socket
implementation. Of the former five Functions in this package I've rewritten
3 and added another 10 - so I count it as a rewrite (as I mentioned
somewhere) Particularily to the fact the only remaining 2 functions are two
PRINT-OBJECT methods that I by myself would not know how to write it in
another way (And as both versions implement the same API they will
certainly somewhat similar...) . I found your version on Christopher Brownes
Webpage (as I mentioned somewhere) but there was no info in who has written
it or what the Licence-Issues was. If I had used the original version and
not my rewrite for the new port I would have searched for the author.

> chris> acl-excl.lisp from the distribution contains almost exactly the
> chris> contents of the acl-excl.lisp I distribute with my Corman Lisp
> port chris> but with all reference to licence information, copyright,
> notes, etc chris> removed.
>
> I'm sure the Jochen will make the change (as he probably says in later
> posts I've havn't gotten to).

Already happened ;-)

> Anyway, I'd still prefer to use LispWorks's SQL package than USQL. I
> think that Jochen is unaware of major changes that have gone on in the
> past year, and so, in case people care:

Major changes in what - Xanalys CommonSQL or OnShore's USQL?
I've only written some glue-code to use SQL-ODBC with USQL without the
need to change something essentially in any of this packages. So if nobody
has broken it's interfaces my glue-code should work.

> Pay the extra money for Xanalys's USQL -- especially if you're
> already using LispWorks.

I find USQL I rather nice DB-package and I'm sure it has the capabilities
to be the "standard" DB-Package for CommonLisp. It runs proven on CMUCL and
LispWorks and should be able to run on ACL, Corman and MCL by using
SQL-ODBC as backend.

> It's also very well supported, and hopefully soon will support ODBC on
> Linux.

That would be nice to have...

Regards,
Jochen

Chris Double

unread,
May 23, 2001, 2:41:36 AM5/23/01
to
David Bakhash <ca...@alum.mit.edu> writes:

> It's not as if he made money off of it. I don't think he tried to
> claim that too much of this is his original work.

Quite agree David, it was just a copy/paste error on his part and I
didn't mean to make too much out of it.

Chris.
--
http://www.double.co.nz/cl

Marco Antoniotti

unread,
May 23, 2001, 10:48:44 AM5/23/01
to

David Bakhash <ca...@alum.mit.edu> writes:

...

> this is a really good post. You have definitely been very resourceful
> in finding these packages, and not re-inventing the wheel. Great
> work.
>
> It just goes to show that when you consider what's in things like
> CLOCC, the Web in general, other packages, Chris's CormanLisp stuff,
> CL-HTTP, SQL-ODBC, etc., there's enough to really do some damage.
>
> nice.
>
> I must admit, though. I don't like compatibility packages. Using
> them makes me feel sick. The *only* reason I've ever considered an
> implementation of Lisp other than LispWorks is that the enterprise
> runtime licenses are still not cheap, and don't port to enough
> platforms. CLISP is a nice fix, but there's a lot of lossage when
> trying to port to CLISP.

Well, I guess we have to agree to disagree here. I stand at the exact
opposite of the spectrum. Compatibility packages are what I care most
and pretty much all I do for the CL community. Of course, I will
reuse a piece of code when I can and when it is well packaged, but
that is another story.

My issue with 'nregexp' (of course it is not my decision to make) is
that it may happen that such a package gets upgraded within the
context of the bundling one and that the changes are not folded back
in the "disentangled" one. Am I paranoid? Probably yes. :) Of course
I could always do the work to "port back" the changes, but that is
work I want to avoid :)

Chris Double

unread,
May 23, 2001, 5:04:41 PM5/23/01
to
Marco Antoniotti <mar...@cs.nyu.edu> writes:

> My issue with 'nregexp' (of course it is not my decision to make) is
> that it may happen that such a package gets upgraded within the
> context of the bundling one and that the changes are not folded back
> in the "disentangled" one. Am I paranoid? Probably yes. :) Of
> course I could always do the work to "port back" the changes, but
> that is work I want to avoid :)

The problem is that I don't think the archive where 'nregexp' is
hosted is still active. That is, it doesn't seem to be containing any
new stuff or updates. So the disentangled one can never be updated.

Chris.
--
http://www.double.co.nz/cl

Erik Naggum

unread,
May 23, 2001, 5:14:59 PM5/23/01
to
* David Bakhash <ca...@alum.mit.edu>

> It's a free market out there for the Lisp guys. They can put whatever
> pricetag on their stuff, as far as I'm concerned.

If you really meant that, you would not have complained about their
prices, you would simply have worked to find or build cheaper solutions.
Since you do talk about the pricing, it looks very much like misdirected
bitterness. It is simply none of your businsees to argue about anybody
else's prices. If they are way too high, it is an excellent opportunity
to go in there and make a less expensive product. Of course, that would
be a lot easier if some of the competition had not given away their work
for free and some of it for too little, but maybe it will dawn on you
some day that the hardest thing in business is to charge the right price.

Also, inability to buy something you want is _not_ somebody's fault, not
even your own (think about it). You have complained bitterly about a
product you cannot purchase for a very long time, as if some _right_ of
yours has been abridged or violated. This provides a very strong signal
to those who could have provided tools to the Common Lisp community that
they should not do so, because they are looking at a customer base that
consists primarily of stingy people who do not want to pay (enough) for
Common Lisp products to keep the vendors alive. It is the attitudes that
you are professing that is killing the Common Lisp market. Because every
time you complain, the customer base shrinks a little, just like you told
us about your experience. This is _one_ reason never to discuss business
matters on the Internet. Another is that _any_ information you find on
business matters on the Net must be treated as completely unsubstantiated
and basically regarded as malicious rumors, but most people are oblivious
to the accountability of information they receive and regard any and all
sources of information as "equals".

> But that information will propogate so fast that they won't know what hit
> them.

Somebody has to put that information "out there" before it can propogate.

> If they screw someone over, they'll get it.

Some of us -- I begin to realize we are a shrinking minority -- still
appreciate the legal system for its ability to arbitrate conflicts such
that all parties are properly identified and heard, still want _fairness_
to have a fighting chance, and still appreciate the rational course of
acation in the face of disagreements to seek more information and to make
impartial conclusions. You, David Bakhash, are not in that minority.

The above one-liner is a strong signal to people who might do business
with you that they should be _very_ careful about the way they conduct
it. It is also a very strong signal to the community that if someone
_feels_ screwed, they will make sure that those who have the "gang up on
the alleged bad guy"-quality that was so cherished before civilization
happened will join in and beat up however made them feel bad for whatever
reason and cause.

> That's the beauty of open media, free press, and the Internet.

How do you correct mistakes once the information has propagated "so fast
the victom won't know what hit him"? How do you run after all the people
who are of the pre-civilized kind who just love to beat up people they
happen not to like for any numbers of reasons and shout "hey, wait, he's
not a bad guy after all"?

There are a lot of astonishingly unintelligent people out there who have
zero concern for people they have somehoe excluded from humanity, those
they do not want to empathize with. This neanderthal mentality that
people can be divided into "us" and "them" and you can do whatever you
want with "them" as long as you are one of "us" is so amazingly popular
in pre-civilized gangs of missing links, pre-humans, idiots and morons
who still roam the earth, some of them having figured out how to dress in
suits and ties, that it is damn nigh _impossible_ to stop a malicious
rumor. Those who have the intelligence and wherewithal to question them
(and of course not repeat them) encounter them repeatedly from the most
bizarre sources, frequently in contorted versions they recognize only
because they know what it was contorted from.

The "beauty" of giving everybody access to the microphone, is that you
have to _expect_ that what people say is nuts, but that is not how we
deal with people. We generally expect people to be rational and honest
and not go about destroying things maliciously, but some do. It is of
course an affront to everything human and decent to abuse public fora
with falsehoods of any magnitude, but also to spread "information" that
is hurtful to a party that cannot defend itself, that cannot be undone,
in a process that cannot even be _reversed_ if it turned out to be wrong
and unfair.

It annoys me tremendously that you are so selfish and destructive that
you completely fail to see the negative aspects of your own behavior,
David. The "beauty" of the free press is that we have libel laws to take
care of the destructive idiots. If it was such a "beauty", why would we
need such laws? Giving every person who wants to speak a voice is the
wrong choice. Democracy works when it is representative and guarantees
that procedures must be followed if anyone is to be punished or otherwise
have his rights taken away. We do not need Internet Lynch mobs, but when
it happens, it is the _furthest_ thing from "beauty" I can think of.

> I don't always agree with the individual outcomes, but on the whole
> forums such as this improve overall productivity.

Sure, this belief is why people have no concern for fairness. They have
some "higher goal" that think is serviced by their behavior. This is why
people _also_ object to anything they see as unfairness much more
severely than they would to fair treatment, and you, David Bakhash, are
grossly unfair to somebody you could simply stop mentioning and working
with. It was a mistake for _them_ to try to deal with _you_, but such
mistakes are hard to avoid when you run a business that has to be open to
all kinds of customers. _You_ are the real perpetrator here, David,
because you think it is morally defensible to be unfair to someone in
order to improve overall productivity.

> Vendors find out what developers need and care about, and that is a value
> they get. Well, I believe it goes beyond features, and so I'm
> comfortable writing about it.

The problem is that on the Internet, the saying is updated to read "once
burned, a billion times shy". People make mistakes all the time. The
important thing is to make it possible to correct them. If somebody do
not _want_ to correct them, I say flog them. If they want to, but are
not able to because people are prejudicial assholes who fail to update
their opinions when the facts they were once based on change, we have a
severe problem. This problem is exacerbated by the tendency of people
who are already prejudicial assholes to gang up on their victims.

Since you are so goddamn "comfortable" about writing about somebody you
happen not to like, even though they seem to have done a lot to try to
make you feel happier, why are you not comfortable about other people
telling the world about their encounters with you? What we see from you
here is grossly unfair. I would not deal with you if you gave me a
billion dollars to produce a Common Lisp environment, and sure as hell
would never in a lifetime hire you to work on a Common Lisp project.

> The last thing I ever want to hear is that a company got burned _because_
> they used Common Lisp.

That has never been the case. Not not, not in the past, and not in the
future. If you stick to this story, however, _you_ are the one who makes
it into an issue about Common Lisp and not the real issue, whatever it is
-- it could even _be_ overpricing, dwindling markets, uncertain future
for the Common Lisp environments because of that, or whatever, but this
is _not_ because they used Common Lisp.

Go play in another language if you cannot stop griping, David Bakhash.
You are doing the business community in the Common Lisp world a major,
major disservice when you think you do anything good with your incessant
griping. Just go do something better with your life and your money, will
you? Every one of us who still work to make Common Lisp a viable tool in
a changing world needs to make sure we survive while doing it. You are a
direct threat to that survival, because you are effectively antagonizing
the very concept of making money providing Common Lisp environments.

Not everybody are able to provide you with the goods you want at the
price you want. Just learn to live with it. The ability to buy whatever
you fancy is not a human right that is violated by charging more than you
can afford to pay. Leave those who charge more than you can afford alone
and pursue other goals. It is not like you do not have any options.

Alain Picard

unread,
May 24, 2001, 8:42:12 AM5/24/01
to
Erik Naggum <er...@naggum.net> writes:

> * David Bakhash <ca...@alum.mit.edu>
>

> > If they screw someone over, they'll get it.
>

> The above one-liner is a strong signal to people who might do business
> with you that they should be _very_ careful about the way they conduct
> it.

Sheesh... talking about character assassinations...

* Erik also notes


> It is of course an affront to everything human and decent to abuse
> public fora with falsehoods of any magnitude, but also to spread
> "information" that is hurtful to a party that cannot defend
> itself, that cannot be undone, in a process that cannot even be
> _reversed_ if it turned out to be wrong and unfair.

Right. Well, in the interest of trying to reverse this "information",
I'll go on record as having had dealings with Mr. Bakhash, on both
a professional and personal level, and have found him ethical to a T.

I for one would do business with him again without hesitation.

Alain Picard

--
It would be difficult to construe Larry Wall, in article
this as a feature. <1995May29....@netlabs.com>

Erik Naggum

unread,
May 24, 2001, 9:58:41 AM5/24/01
to
* Alain Picard

> Sheesh... talking about character assassinations...

It may in time serve you well to spend the effort to understand that
_you_ have chosen to make this a personal issue. I was referring to his
his comments and their consequences. You apparently think this is a
character assassinations. May I suggest a more _rational_ approach?

If you _think_ you see "character assassinations" when _do_ see an
argument about the consequences of someone actions, I must assume you,
too, have zero understanding of the need for a legal system, which, if
you read anything other than that which inflamed you, was the gist of my
message. Your very personal message had nothing to do in a public forum.
It would perhaps have counted for something if we were having a character
witness day here on USENET. However, despite the urgent need of a few
people to think that is what the Net is all about, the _idea_ that is at
least _attmpted_ communicated to those who are not so inclined is that by
posting personal experiences with a desire to make them look general, you
destroy the possibility of dealing with people as individuals.

It is not a character assassination to argue that if you have business
with someone and as a consequence find that business a matter of the
public record as presented and understood by only one party, it is a very
good idea to avoid having business with that someone until and unless you
are very, very certain that that someone will refrain from posting
hurtful information in public forums. I am so _thrilled_ that you have
to prove this point by showing that doing business with _you_ also means
that one will see it posted all over the Net, instead of dealing with it
in a professional manner.

Since people _do_ make mistakes, and good people work to correct them,
some mischievous or malicious person can selectively inform the public of
the mistake and withhold the attempt to correct it, just as a mischievous
or malicious person might choose not to correct a mistake that hurt
someone. Since we are inherently unable to know about such a case and
information lives forever on the Internet, otherwise good people who feel
they have been screwed, may decide to take revenge and screw people back.
The perception that you have been screwed and treated unfairly is highly
personal and if you are a professional, you deal with professionally, not
by posting your personal experiences in the guise of general conduct.

Some people do not understand the difference betwenn public and private
and between personal and professional. In general, such people are a
danger to other people, because they will hurt someone's professional
sphere, i.e., their livelihood, for personal reasons over which nobody
has any control. If you do not understand the difference between
personal and professional conduct, and when each is appropriate, the best
course of action is actually to shut up until you learn that difference.

Andy Freeman

unread,
May 24, 2001, 11:02:02 AM5/24/01
to
Erik Naggum <er...@naggum.net> wrote in message news:<31996412...@naggum.net>...

> some day that the hardest thing in business is to charge the right price.

In another posting, I stated that no one in this discussion had objected to
prices charged by others. (That being different than objecting to the
expectation that software should be free.) However, that statement ignored
US v Microsoft, where the US Govt objected to Microsoft's 0 price browser.

I note that both anti-trust law AND common consumer reaction provides
guidance on pricing relative to competitors.

(1) If you charge more, you're gouging.
(2) If you charge the same, you're colluding.
(3) If you charge less, you're dumping or unfairly competing.

Speaking of "free", one of the "explanations" is "free as in free speech,
not as in free beer" (relating to "freedom to do what you want" as opposed
to "0 price".) Yet, if it isn't free as in "free beer", that is, 0 price,
it isn't free enough, that is to say, it must be free beer and free speech,
but certainly not public domain.

It's important to remember that many of the philosophers in the free software
movement thought (and may still think) that software development should be
supported by a tax on hardware. This scheme has the potential of solving
Kent's problem, so I'm surprised that it hasn't been mentioned.

Interestingly enough, Microsoft implemented an approximation of that scheme.
It tries to tax hardware sales and uses that money to provide bundled software
that does almost everything that most people want to do. Of course, the money
isn't distributed as those philosophers would prefer and they don't get to
see/use the code, but they also don't pay the tax either ....

-andy

David Bakhash

unread,
May 24, 2001, 6:20:08 PM5/24/01
to
Erik,

I've thought about what you've said, and have decided the following:

o I should keep personal feelings out of the reality of doing
business.
o I should avoid the general subject of writing about Franz other
than details about their product (basically, avoid discussing their
price).
o I should get more up-to-date information about Franz, since I
havn't called them in a while.

If anyone's listened to what I said this far, then hopefully they'll
take the some more suggestions and notes:

o Always consider CL an excellent way to get any job done.
o If you're interested in PC-based, Windows/Linux/Unix, Sparc, HP,
and/or Irix platforms, then ACL is one of the commercial products
that works well on these platforms.
o ACL is in many ways the best Lisp, in my opinion. It has a nice
editor, good compiler, many useful extensions, is mostly ANSI
compliant, is decently well-supported and very well documented.
o Note that Franz has contributed to the open source community under
the LGPL.
o ACL has excellent facilities to port code from other CL
implementations.
o ACL supports multiprocessing, and in some of their implementations,
uses the OS's native threads.
o Franz has been around for a long time, and has a good technology
track record. They've interfaced their product with:

* an object DB (ObjectStore)
* ODBC-enabled relational DBs
* Java
* foreign libraries
* IP communications (the only implementation that I've seen
which supports UDP)
* Corba

Lastly, there are few enough vendors that people should investigate
*all* possibilities before making serious decisions.

Now, as far as working with other people goes...

I value working with people a lot, for both business and personal
reasons. Just as my prior posts had intent, I also have equally
strong intent to work with lots of people, and solve problems that I'm
good for. If, for example, Erik has decided that he would not work
with me based on my posts, then this is already a loss, and so I'll
quit while I'm already behind. I've noticed that most people actually
appreciate information, and are able to account for the situational
differences, and so the things I say don't reflect either good or bad
on _me_, but rather they offer one person's view that might be useful.

I noticed that this thread quickly became personal, and this is no
surprise, considering that part of my original post was personal. So
on a personal note, I'll say that the people on this group who I like
are the same people who I value. I look here for knowledge, insight,
experience, and historical outlook, not to figure out who's nice and
who's not, or who's in and who's out. There are lines across which
I'm comfortable with seeing our comunity being divided (e.g. the Lisp
vs. Scheme line and even the push toward ANSI compliance line) just as
I felt strongly to be on one side of a line with respect to XEmacs and
CL vs. Guile. But the lines being drawn here are ones which I don't
value, and which I don't think are very constructive, and so I will
agree with Erik that there's more harm than good if I were to
continue.

dave


David Bakhash

unread,
May 24, 2001, 6:58:04 PM5/24/01
to
>>>>> "chris" == Chris Double <ch...@double.co.nz> writes:

chris> The problem is that I don't think the archive where 'nregexp'
chris> is hosted is still active. That is, it doesn't seem to be
chris> containing any new stuff or updates. So the disentangled one
chris> can never be updated.

Right. There's lots of archived code out there that's really no
longer maintained, and so if it's within the license agreement to use
that code elsewhere, then so be it. It's not a perfect world, and
especially here, with the regexp limitations felt in many Lisp
implementations, it's useful to link in the small, single-file nregexp
program to make your stuff work.

At some point, I'm hoping to see regexp support in LispWorks. I
*know* it's already in there somewhere, since their editor supports
regular expression searches, so who knows? maybe we'll see it in a
future edition of their software. When/if this happens, there
probably won't be any need for nregex, just as there's no need for
such things in ACL and CLISP.

dave

0 new messages