Subject: Re: free software as a delivery vehicle for lisp
From: Erik Naggum <>
Date: Tue, 02 Apr 2002 06:43:19 GMT
Newsgroups: comp.lang.lisp
Message-ID: <>

* Jon Allen Boone <>
| Erik, you give an example where a collection of non-open-source patches
| were not accepted verbatim by the vendor.

  Well, they took the form of requests for future enhancement, and some
  have been adopted verbatim, but most have been taken more seriously than
  I expected and led to more fundamental changes, such that my local
  patches would still apply, but have a destructive effect, instead.

| Presumably, one benefit of the open source model is that even if the
| local patches are not accepted by the vendor [project lead], you still
| may be able to find other people who can assist you in the integration
| process, thereby assisting you in amortizing the cost.
| Is that something that you could have (did?) do with your ACL patches?

  Well, I had the freedom to be that integrator for others.  Basically,
  they are still at 5.0.1.

| If you couldn't have, would it have been helpful to you if you would have
| been able to?

  I think Franz Inc believes that anyone who builds an application on top
  of Allegro CL is actually providing their product to third-party
  customers with some "local patches" (a.k.a. "application") applied.  The
  whole vocabulary (like Value-Added Reseller) indicates that they do not
  just sell you a binary-producing system.

| Would you have continued to make local modifications to Gnu Emacs if
| someone else were to track Gnu Emacs development and do the integration
| work for you?

  That is a very good question.  This would, in my view, constitute a
  "fork" with some particular features.  A project called emacs-dl, which
  allowed Emacs to dynamically load foreign code, did just that for some
  particular needs.  It is still at Emacs-20.7, even though Emacs 21.2 was
  just released.  Here is the Debian package system description:

emacs20-dl - The GNU Emacs editor. (Dynamic Loading supported)

GNU Emacs is the extensible self-documenting text editor. This binary
supports the Dynamic Loading architecture(dl). If you want to use dynamic
loadable modules, you should use this instead of pure emacs20
package. Dynamic Loadable Module examples are Canna/Wnn input method
support. (emacs-dl-canna/emacs-dl-wnn package)

And some dirty patch applied. Dirty means such as,
  Rejected by upstream authors (difficult for merge),
  Code from other emacsen, like XEmacs/Meadow/obsolete Mule2.3,
  or backported.
| How much would such a service be worth to you?

  Well, right now, I am working with a new completion algorithm for Emacs
  (and readline, in time).  Instead of expanding to stop before the first
  disambiguating character, I want to see the best attempt with various
  portions of the completed string highlighted in various colors.  E.g., if
  I wrote m-s--s TAB, I would get make-string-input-stream with "ake",
  "tring", "put", and "tream" in green (only completion) and "in" in red
  (more alternatives), and then a new TAB would replace "in" with "out".  I
  would want point (the cursor) to be behind the completed word, so I could
  just keep writing, but "i" and "o" would choose "in" or "out" and turn
  all the completed text green.  There are design issues to work out here,
  but I am tired of completion that (1) pops up windows, and (2) does not
  learn what I really want in context.

  Should I complete this work (pun intended), I am not sure I want to give
  it away under GPL conditions.  Suppose I invent something really clever
  as part of this development process.  I may not know that myself for a
  while, but if I did, I want to be able to recover more than time and cost
  in developing it.  Suppose I write a paper about it and make a binary
  available -- people could conceivably want to pay me for this feature.  I
  would have closed that door to opportunity if I had published the code.
  Worse, if I am not particular good at marketing to idiots, and somebody
  else is, just having the code in the open would allow someone to take the
  ideas it contains and reimplement them in a clean-room setting such that
  none of my code remained.  This is why patents are good -- they both
  encourage people to try to do better, _and_ protect you from competitors
  who do not succeed in that.

  In a fight against something, the fight has value, victory has none.
  In a fight for something, the fight is a loss, victory merely relief.