Richard M Kreuter writes:
> Carlos Konstanski writes:
> > `sb-bsd-sockets:socket-make-stream' recently has had its :name keyword
> > removed from the argument list. This is causing problems with
> > existing code. What was the purpose behind this change?
> Wishful thinking. Out of curiosity, what are you using that argument for?
Araneida uses it. It was easy enough for me to fix. But I worry that
this kind of non-backward-compatible change fuels the single biggest
argument against Common Lisp: that even though it has a rigid ANSI
standard, the language is a moving target due to those parts of the
language that are not covered by the standard. Anything that starts
with "sb-" is subject to breakage from one version to the next. This
makes it more difficult to get my pointy haired bosses to accept sbcl
in the corporate environment. As much as I hate to say it, they have
a point. As much as I dislike Java and .NET, they are more reliable
from the standpoint of updateability because they take backwards
compatibility into account. When most languages need to move away
from compatibility, they release new major versions. I am losing
ground in my fight for lisp because of your decision to break
backwards compatibility in a minor release. It gives the enemy a
I am a rabid Common Lisp fan. I am on your side. The argument I
state here is one that I have had to personally defend against real
people. I have introduced sbcl to the workplace, much to the chagrin
of the aforementioned mucky-mucks. This is not the first
non-backward-compatible change I have had to contend with. I have to
maintain a list of patches for araneida and clsql because both have
current compatibility issues that did not exist at one time. Put
yourself in my place: my boss expresses disdain that we have to patch
3rd party lisp libraries, when such patching is not necessary for .NET
libraries. He wonders why a 10 year old language appears to be more
stable than a 50 year old language. He demands to know what makes
lisp so special that this should be tolerated. How do I respond to
that? This is the problem that keeps lisp from gaining a foothold in
the business world.
I don't have access to the sbcl CVS repo, so it would be very hard or
impossible for me to determine exactly when :name was removed from
this method. But it seems that it was there at one time, otherwise
the author of araneida, who happened to also be an sbcl developer,
would not have used it. One has to assume that other people used it
in their code as well. So at one time it was possible to provide your
own name for a socket. Now the name is hardcoded to "a socket".
Recent versions of sbcl accepted the :name keyword but ignored it.
Let's back up to the point when :name was a valid keyword, and ask why
it is no longer supported to give a socket your own name.