From: John Doe
Subject: loop
Date: 
Message-ID: <3ad74c58.96720205@203.164.2.74>
Everytime I try to use loop, it fails..

If I use (loop for ..... )

it says that "The variable for FOR is unbound."

If I use (loop repeat ....)

it says that "The variable for REPEAT is unbound"

Can anyone give me any clues as to what makes 'for' or 'repeat'
bound!?

Thanks.

Dan.

From: Barry Margolin
Subject: Re: loop
Date: 
Message-ID: <ubru6.62$U4.2879@burlma1-snr2>
In article <·················@203.164.2.74>, John Doe <···@feh.com> wrote:
>Everytime I try to use loop, it fails..
>
>If I use (loop for ..... )
>
>it says that "The variable for FOR is unbound."
>
>If I use (loop repeat ....)
>
>it says that "The variable for REPEAT is unbound"
>
>Can anyone give me any clues as to what makes 'for' or 'repeat'
>bound!?

Sounds like you're using a pre-ANSI Common Lisp that doesn't support the
extended version of LOOP.  In the original Common Lisp specification, LOOP
didn't have keywords, it just had a body of forms and it repeated them
endlessly.

-- 
Barry Margolin, ······@genuity.net
Genuity, Burlington, MA
*** DON'T SEND TECHNICAL QUESTIONS DIRECTLY TO ME, post them to newsgroups.
Please DON'T copy followups to me -- I'll assume it wasn't posted to the group.
From: John Doe
Subject: Re: loop
Date: 
Message-ID: <3ad7500d.97669218@203.164.2.74>
Dammit..

that's probably the cause of most of my problems.

is there any other (pre-ANSI) way of making a section loop a certain
number of times?

Thanks

Dan.

On Thu, 22 Mar 2001 18:07:22 GMT, Barry Margolin <······@genuity.net>
wrote:

>In article <·················@203.164.2.74>, John Doe <···@feh.com> wrote:
>>Everytime I try to use loop, it fails..
>>
>>If I use (loop for ..... )
>>
>>it says that "The variable for FOR is unbound."
>>
>>If I use (loop repeat ....)
>>
>>it says that "The variable for REPEAT is unbound"
>>
>>Can anyone give me any clues as to what makes 'for' or 'repeat'
>>bound!?
>
>Sounds like you're using a pre-ANSI Common Lisp that doesn't support the
>extended version of LOOP.  In the original Common Lisp specification, LOOP
>didn't have keywords, it just had a body of forms and it repeated them
>endlessly.
>
>-- 
>Barry Margolin, ······@genuity.net
>Genuity, Burlington, MA
>*** DON'T SEND TECHNICAL QUESTIONS DIRECTLY TO ME, post them to newsgroups.
>Please DON'T copy followups to me -- I'll assume it wasn't posted to the group.
From: Geoff Summerhayes
Subject: Re: loop
Date: 
Message-ID: <tbkhido0rvurdd@corp.supernews.com>
"John Doe" <···@feh.com> wrote in message ······················@203.164.2.74...
> Dammit..
>
> that's probably the cause of most of my problems.
>
> is there any other (pre-ANSI) way of making a section loop a certain
> number of times?
>

How about do, dolist, or dotimes?

CL-USER 67 : 8 > (dotimes (x 10 'fred)(princ x))
0123456789
FRED

Geoff
From: Kent M Pitman
Subject: That result arg to dolist and dotimes...
Date: 
Message-ID: <sfwhf0ld2qc.fsf_-_@world.std.com>
"Geoff Summerhayes" <·············@hNoOtSmPaAiMl.com> writes:

> CL-USER 67 : 8 > (dotimes (x 10 'fred)(princ x))
> 0123456789
> FRED

Since we've been discussing style, I want to take this opportunity to
risk controversy by suggesting that I personally have adopted a style
rule that any use of the third (result) argument in the DOLIST and
DOTIMES iteration spec is bad style.  That is, purely as a point of
style (not conformance), I think one should always use DOLIST and
DOTIMES for null result if the iteration terminates normally.

Useful as it is, and I admit it is, I think the result form is in a 
syntactically terrible place that makes it easy to overlook or to get 
confused with the iteration quantity.

I find myself preferring to write:

  (defun check-foo (foos)
    (block check
      (dolist (foo foos)
        (unless (eq foo 'foo) (return-from check nil)))
      t))

because it makes it visually obvious that something funny is going on
with return values rather than the syntactically more concise:

  (defun check-foo (foos)
    (dolist (foo foos t)
      (unless (eq foo 'foo) (return nil))))

which I just do not find perspicuous.

I sometimes also write:

  (defun check-foo (foos)
    (dolist (foo foos)
      (unless (eq foo 'foo) (return-from check-foo nil)))
    t)

but this has two disadvantages: it gets broken if the function name
is changed, and sometimes people just see the T at the end and think that
it unconditionally returns that value, either not realizing you can use
or not remembering to check for a RETURN-FROM.

As with all style rules, although it's possible to express them in the
absolute (and I often do), I think it's possible and reasonable to decide
to have different style rules than mine.  It's more important to have put
thought into this and to have reached your own conclusion than to just do
what someone says without thinking.

But the thought driving my decision is that this weird argument to DOLIST
and DOTIMES is both obscure in practice, and obscurely placed syntactically,
and does more harm than good for the few times it is needed.

JMO.
From: Rob Warnock
Subject: Re: That result arg to dolist and dotimes...
Date: 
Message-ID: <99jr5v$3l3ci$1@fido.engr.sgi.com>
Kent M Pitman  <······@world.std.com> wrote:
+---------------
| Since we've been discussing style, I want to take this opportunity to
| risk controversy by suggesting that I personally have adopted a style
| rule that any use of the third (result) argument in the DOLIST and
| DOTIMES iteration spec is bad style.
...
| Useful as it is, and I admit it is, I think the result form is in a 
| syntactically terrible place that makes it easy to overlook or to get 
| confused with the iteration quantity.
+---------------

I agree, for additional reasons: When one uses a variable name as the
result, one then has the problem that [unlike DO/DO*], DOLIST & DOTIMES
provide no way to bind that variable to an initial value, which means
that one must wrap the iteration in some outer binding form [unless
it's a global, ugh!!]. Given that, why not just return the variable
in the outer form?

	(let ((result '()))
	  (dolist (num nums)
	    (when (oddp num)
	      (push (+ num 1) result)))
	  result)

More verbose, yes, but to me the intention is clearer than (say):

	(let (result)
	  (dolist (num nums result)
	    (when (oddp num)
	      (push (+ num 1) result))))


-Rob

-----
Rob Warnock, 31-2-510		····@sgi.com
SGI Network Engineering		<URL:http://reality.sgi.com/rpw3/>
1600 Amphitheatre Pkwy.		Phone: 650-933-1673
Mountain View, CA  94043	PP-ASEL-IA
From: Aaron Crane
Subject: Re: That result arg to dolist and dotimes...
Date: 
Message-ID: <djwv9dvk5y.fsf@planet.dcs.ed.ac.uk>
In article <··············@fido.engr.sgi.com>,
····@rigden.engr.sgi.com (Rob Warnock) writes:
> When one uses a variable name as the result, one then has the problem that
> [unlike DO/DO*], DOLIST & DOTIMES provide no way to bind that variable to
> an initial value, which means that one must wrap the iteration in some
> outer binding form [unless it's a global, ugh!!]. Given that, why not just
> return the variable in the outer form?
> 
>       (let ((result '()))
>         (dolist (num nums)
>           (when (oddp num)
>             (push (+ num 1) result)))
>         result)
> 
> More verbose, yes, but to me the intention is clearer than (say):
> 
>       (let (result)
>         (dolist (num nums result)
>           (when (oddp num)
>             (push (+ num 1) result))))

While we're on the subject of style in things like this, I'd be interested
in comments on this macro:

  (defmacro let-and-return (bindings &body body)
    `(let ,bindings
       ,@body
       (values ,@(mapcar #'(lambda (binding)
                             (if (symbolp binding) binding (car binding)))
                         bindings))))

I've used it in functions like this, which copies an array, transposing two
of its elements:

  (defun array-transpose-elements (array position1 position2)
    (let-and-return ((copied-array (copy-seq array)))
      (rotatef (aref copied-array position1)
               (aref copied-array position2))))

That is, using LET-AND-RETURN allows you to avoid repeating the name of the
bound variable (or variables, potentially) -- so without this macro, the
ARRAY-TRANSPOSE-ELEMENTS function would look like

  (defun array-transpose-elements (array position1 position2)
    (let ((copied-array (copy-seq array)))
      (rotatef (aref copied-array position1)
               (aref copied-array position2))
      copied-array))

However, I've never been quite sure whether that macro promotes good style.
I kind of like being able to avoid the isolated variable name at the end of
the function, but I'm also a little concerned that the control flow isn't
apparent.  I'm also unconvinced that LET-AND-RETURN is a good name for it.

Opinions?

-- 
Aaron Crane
From: Kent M Pitman
Subject: Re: That result arg to dolist and dotimes...
Date: 
Message-ID: <sfwitkxo0gt.fsf@world.std.com>
Aaron Crane <···········@pobox.com> writes:

>   (defmacro let-and-return (bindings &body body)
>     `(let ,bindings
>        ,@body
>        (values ,@(mapcar #'(lambda (binding)
>                              (if (symbolp binding) binding (car binding)))
>                          bindings))))
> 
> I've used it in functions like this, which copies an array, transposing two
> of its elements:
> 
>   (defun array-transpose-elements (array position1 position2)
>     (let-and-return ((copied-array (copy-seq array)))
>       (rotatef (aref copied-array position1)
>                (aref copied-array position2))))
> 
> That is, using LET-AND-RETURN allows you to avoid repeating the name of the
> bound variable (or variables, potentially) -- so without this macro, the
> ARRAY-TRANSPOSE-ELEMENTS function would look like
> 
>   (defun array-transpose-elements (array position1 position2)
>     (let ((copied-array (copy-seq array)))
>       (rotatef (aref copied-array position1)
>                (aref copied-array position2))
>       copied-array))
> 
> However, I've never been quite sure whether that macro promotes good style.
> I kind of like being able to avoid the isolated variable name at the end of
> the function, but I'm also a little concerned that the control flow isn't
> apparent.  I'm also unconvinced that LET-AND-RETURN is a good name for it.

I rather like it.  The thing it does is to make it impossible to 
accidentally forget in a set of side-effect forms that you want to remember
to return a certain value.  This is especially important if there's a
conditional in there since sometimes you get a right value "sometimes"
in testing, not noticing that when the conditional fails you might not.

About the only downside I see of it is that it's somewhat rare to need 
multiple value return, and perhaps not correlated with the set of bindings
you need.  I bet almost all uses of this have a single bound variable.

I do think the name return is incorrect since this macro does not have
a RETURN in its expansion. I prefer the verb yield or the noun values.

I might call it VALUES-LET (or LET-VALUES, but I like VALUES-LET I think
because it relates it a bit to VALUES and VALUES-LIST). Or maybe 
LET-AND-YIELD...

But all in all, I think this is an example of a nicely designed general 
purpose control abstraction.
From: Aaron Crane
Subject: Re: That result arg to dolist and dotimes...
Date: 
Message-ID: <djg0g0up0o.fsf@planet.dcs.ed.ac.uk>
In article <···············@world.std.com>,
Kent M Pitman <······@world.std.com> writes:
> Aaron Crane <···········@pobox.com> writes:
> >   (defmacro let-and-return (bindings &body body)
> >     `(let ,bindings
> >        ,@body
> >        (values ,@(mapcar #'(lambda (binding)
> >                              (if (symbolp binding) binding (car binding)))
> >                          bindings))))
> 
> About the only downside I see of it is that it's somewhat rare to need
> multiple value return, and perhaps not correlated with the set of bindings
> you need.  I bet almost all uses of this have a single bound variable.

Every time I've used it in my own code has indeed been with a single bound
variable.  I first considered an equivalent macro with just one bound
variable, like

  (defmacro let-and-yield ((variable &optional value) &body body) ...)

but went for the multiple-binding version for analogy with LET itself.
Given the multiple-binding version, a VALUES of all the bindings seemed the
most straightforward thing to yield.

As for "perhaps not correlated with the set of bindings you need": that
seems entirely true.  One of my uses of this macro is actually equivalent to

  (let* ((variable1 value)
         (variable2 (function-of variable1)))
    ...
    variable2)

which of course needs an additional binding form around it given the
definition I suggested (or else NTH-VALUE, which strikes me as being worse).
Does this seem any better?

  (defmacro let*-and-yield-last (bindings &body body)
    `(let* ,bindings
       ,@body
       ,(let ((last-binding (car (last bindings))))
          (if (symbolp last-binding) last-binding (car last-binding)))))

> I do think the name return is incorrect since this macro does not have a
> RETURN in its expansion. I prefer the verb yield or the noun values.  I
> might call it VALUES-LET (or LET-VALUES, but I like VALUES-LET I think
> because it relates it a bit to VALUES and VALUES-LIST). Or maybe
> LET-AND-YIELD...

I'd considered names like these as well, but none seems entirely ideal to
me.

-- 
Aaron Crane
From: Barry Margolin
Subject: Re: loop
Date: 
Message-ID: <ioru6.63$U4.2981@burlma1-snr2>
In article <·················@203.164.2.74>, John Doe <···@feh.com> wrote:
>Dammit..
>
>that's probably the cause of most of my problems.
>
>is there any other (pre-ANSI) way of making a section loop a certain
>number of times?

do, dotimes, mapc, etc.  Look up "iteration" in CLTL.

-- 
Barry Margolin, ······@genuity.net
Genuity, Burlington, MA
*** DON'T SEND TECHNICAL QUESTIONS DIRECTLY TO ME, post them to newsgroups.
Please DON'T copy followups to me -- I'll assume it wasn't posted to the group.
From: John Doe
Subject: Re: loop
Date: 
Message-ID: <3ad75430.98727690@203.164.2.74>
Thanks for your help :)

Dan.

On Thu, 22 Mar 2001 18:21:03 GMT, Barry Margolin <······@genuity.net>
wrote:

>In article <·················@203.164.2.74>, John Doe <···@feh.com> wrote:
>>Dammit..
>>
>>that's probably the cause of most of my problems.
>>
>>is there any other (pre-ANSI) way of making a section loop a certain
>>number of times?
>
>do, dotimes, mapc, etc.  Look up "iteration" in CLTL.
>
>-- 
>Barry Margolin, ······@genuity.net
>Genuity, Burlington, MA
>*** DON'T SEND TECHNICAL QUESTIONS DIRECTLY TO ME, post them to newsgroups.
>Please DON'T copy followups to me -- I'll assume it wasn't posted to the group.
From: Tim Bradshaw
Subject: Re: loop
Date: 
Message-ID: <nkjbsqt1w0p.fsf@tfeb.org>
···@feh.com (John Doe) writes:

> 
> that's probably the cause of most of my problems.
> 
> is there any other (pre-ANSI) way of making a section loop a certain
> number of times?
> 

DO, DOTIMES &c.

*But* if you're using a pre-ANSI implementation and you have any
choice in the matter you should try and get a more recent system: you
will likely be bitten by other things.  There are good-quality free
systems available for most or all major platforms, and demo/restricted
versions of the commercial systems are also available for many
platforms.

If you are (as I suspect!) a student, being taught with a pre-ANSI
system, then you should complain vigorously: you're being shoddily
treated by your institution.  Academic site licenses for the
commercial systems are not really that much - or at least they weren't
four years ago - and if even that is too much then, again, there are
good-quality free systems.

--tim
From: Pierre R. Mai
Subject: Re: loop
Date: 
Message-ID: <87u24liqe0.fsf@orion.bln.pmsf.de>
···@feh.com (John Doe) writes:

> Dammit..
> 
> that's probably the cause of most of my problems.
> 
> is there any other (pre-ANSI) way of making a section loop a certain
> number of times?

Well, as others have suggested, you could use dotimes & co.  But I'd
really, really urge you to consider switching to an implementation
that at least tries to conform to the ANSI standard.  Take a look at
http://www.alu.org/ for alternatives open to you.  As long as you stay
clear of GCL, you should probably be okay.

Regs, Pierre.

-- 
Pierre R. Mai <····@acm.org>                    http://www.pmsf.de/pmai/
 The most likely way for the world to be destroyed, most experts agree,
 is by accident. That's where we come in; we're computer professionals.
 We cause accidents.                           -- Nathaniel Borenstein
From: nels tomlinson
Subject: Re: loop
Date: 
Message-ID: <3ABAECCA.EDE116B9@purdue.edu>
Wow.  You've gotten me wondering: what's wrong with gcl?  I'm just getting
started on learning Common Lisp.  Is there a serious problem with it?

Curiously yours,
Nels

"Pierre R. Mai" wrote:

> ···@feh.com (John Doe) writes:
>
> > Dammit..
> >
> > that's probably the cause of most of my problems.
> >
> > is there any other (pre-ANSI) way of making a section loop a certain
> > number of times?
>
> Well, as others have suggested, you could use dotimes & co.  But I'd
> really, really urge you to consider switching to an implementation
> that at least tries to conform to the ANSI standard.  Take a look at
> http://www.alu.org/ for alternatives open to you.  As long as you stay
> clear of GCL, you should probably be okay.
>
> Regs, Pierre.
>
> --
> Pierre R. Mai <····@acm.org>                    http://www.pmsf.de/pmai/
>  The most likely way for the world to be destroyed, most experts agree,
>  is by accident. That's where we come in; we're computer professionals.
>  We cause accidents.                           -- Nathaniel Borenstein
From: ········@hex.net
Subject: Re: loop
Date: 
Message-ID: <BnCu6.87870$lj4.2446013@news6.giganews.com>
nels tomlinson <········@purdue.edu> writes:
> Wow.  You've gotten me wondering: what's wrong with gcl?  I'm just
> getting started on learning Common Lisp.  Is there a serious problem
> with it?

Ah.  GCL.

It's quite ancient, and wasn't being maintained for quite a number of
years.  (It is not obvious that it is presently seeing a lot of
maintenance.)

If you anticipate having a minimal software budget, you should
probably consider CLISP or CMU/CL as much more up to date
alternatives.
-- 
(reverse (concatenate 'string ········@" "enworbbc"))
http://vip.hex.net/~cbbrowne/commonlisp.html
"I have  traveled the  length and breadth  of this country  and talked
with the best people, and can assure you that data processing is a fad
that won't  last out  the year".  --  Business books  editor, Prentice
Hall 1957
From: Pierre R. Mai
Subject: Re: loop
Date: 
Message-ID: <87d7b8fsjp.fsf@orion.bln.pmsf.de>
nels tomlinson <········@purdue.edu> writes:

> Wow.  You've gotten me wondering: what's wrong with gcl?  I'm just getting
> started on learning Common Lisp.  Is there a serious problem with it?

As others have pointed out, GCL hasn't seen regular maintenance for
quite some time, and therefore it is still stuck in a time-rift
somewhere between 1984 and 1988 or so:  It's a ClTl1 Common Lisp,
and therefore has no CLOS, no condition system, no complex loop, no
defpackage & friends, etc.

It is like taking a K&R C compiler to learn ISO C++.

GCL is one of several descendants of the (Austin) Kyoto Common Lisp
system, and the only reason IMHO that it has survived to this day, is
that it sadly has gotten the "GNU" stamp of approval at some time in
the past.  So newcomers assume that it is of the same quality and
accuracy as e.g. GCC, or other actively maintained GNU projects.  But
sadly that is about as far from the truth as possible.

There are plenty of free (both GNU and normal interpretations of the
word) alternatives available, that are both much more modern (i.e. try
to adhere to the ANSI CL standard X3.226:1994, which was officially
published nearly 7 years ago), and actively maintained.

CLISP and CMU CL/SBCL are both good choices, as are the free/trial
versions of Allegro Common Lisp from Franz, and LispWorks from
Xanalys.  And if you'd like to stay with a Kyoto Common Lisp
descendant, you might want to try ECL-Spain, available at
http://www.arrakis.es/~worm/ecls.html 

Although it's still at version 0.0g, it is a descendant of KCL via
EcoLisp, both of which had much time to mature.  Contrary to most
other KCL descendants, there _is_ active work going on, and the
maintainer aims at ANSI CL conformance.

Regs, Pierre.

-- 
Pierre R. Mai <····@acm.org>                    http://www.pmsf.de/pmai/
 The most likely way for the world to be destroyed, most experts agree,
 is by accident. That's where we come in; we're computer professionals.
 We cause accidents.                           -- Nathaniel Borenstein
From: Raymond Toy
Subject: Re: loop
Date: 
Message-ID: <4n1yroa040.fsf@rtp.ericsson.se>
>>>>> "Pierre" == Pierre R Mai <····@acm.org> writes:

    Pierre> As others have pointed out, GCL hasn't seen regular maintenance for
    Pierre> quite some time, and therefore it is still stuck in a time-rift
    Pierre> somewhere between 1984 and 1988 or so:  It's a ClTl1 Common Lisp,
    Pierre> and therefore has no CLOS, no condition system, no complex loop, no
    Pierre> defpackage & friends, etc.

gcl can use PCL, the complex loop macro from CMU Lisp archives works
on gcl, and so does Mark K's defpackage.  If not, I think there are
versions of these on http://www.mindspring.com/~rtoy that used to work
with gcl.

Ray
From: Peter Wood
Subject: Re: loop
Date: 
Message-ID: <80hf0k8nx6.fsf@localhost.localdomain>
"Pierre R. Mai" <····@acm.org> writes:

> nels tomlinson <········@purdue.edu> writes:
> 
> > Wow.  You've gotten me wondering: what's wrong with gcl?  I'm just getting
> > started on learning Common Lisp.  Is there a serious problem with it?
> 
> As others have pointed out, GCL hasn't seen regular maintenance for
> quite some time, and therefore it is still stuck in a time-rift
> somewhere between 1984 and 1988 or so:  It's a ClTl1 Common Lisp,
> and therefore has no CLOS, no condition system, no complex loop, no
> defpackage & friends, etc.
> 
> It is like taking a K&R C compiler to learn ISO C++.
> 

There was a beta release (gcl-2.3.8-beta) 30 Jan 2001.  Prior to that,
there were (beta) releases in October and May 2000 and one in November
1999..  I do not think that ANSI conformance, or lack thereof, is an
issue with the maintainers.

(I agree with you that CLISP or CMUCL are better choices.)

Regards,
Peter
From: nels tomlinson
Subject: Re: loop
Date: 
Message-ID: <3ABC237D.F2DCD5F4@purdue.edu>
One of my main reasons for learning Lisp is to facilitate playing/working with
Maxima, so that is a strong argument for using gcl at least part of the time.
I've gotten the latest versions of both gcl and Maxima, and  also gotten the
latest version of CMUCL.  I guess if I want ANSI/CLTL2 I'll look to that.   CMUCL
has better manuals, too, I think (though I haven't read them yet, so my first
impression may be wrong).

Thanks for the information, and also my thanks to Mr. Toy.
Nels

Peter Wood wrote:

> "Pierre R. Mai" <····@acm.org> writes:
>
> > nels tomlinson <········@purdue.edu> writes:
> >
> > > Wow.  You've gotten me wondering: what's wrong with gcl?  I'm just getting
> > > started on learning Common Lisp.  Is there a serious problem with it?
> >
> > As others have pointed out, GCL hasn't seen regular maintenance for
> > quite some time, and therefore it is still stuck in a time-rift
> > somewhere between 1984 and 1988 or so:  It's a ClTl1 Common Lisp,
> > and therefore has no CLOS, no condition system, no complex loop, no
> > defpackage & friends, etc.
> >
> > It is like taking a K&R C compiler to learn ISO C++.
> >
>
> There was a beta release (gcl-2.3.8-beta) 30 Jan 2001.  Prior to that,
> there were (beta) releases in October and May 2000 and one in November
> 1999..  I do not think that ANSI conformance, or lack thereof, is an
> issue with the maintainers.
>
> (I agree with you that CLISP or CMUCL are better choices.)
>
> Regards,
> Peter
From: Raymond Toy
Subject: Re: loop
Date: 
Message-ID: <4nk85c8v81.fsf@rtp.ericsson.se>
>>>>> "nels" == nels tomlinson <········@purdue.edu> writes:

    nels> One of my main reasons for learning Lisp is to facilitate playing/working with
    nels> Maxima, so that is a strong argument for using gcl at least part of the time.
    nels> I've gotten the latest versions of both gcl and Maxima, and  also gotten the
    nels> latest version of CMUCL.  I guess if I want ANSI/CLTL2 I'll look to that.   CMUCL
    nels> has better manuals, too, I think (though I haven't read them yet, so my first
    nels> impression may be wrong).

For what it's worth, I have a set of very rough patches (based on
patches from Douglas Crosher from long ago) to maxima for CMUCL.  The
result basically works but still has some problems.

After I clean them up, I hope to submit them to the maxima maintainers
for inclusion.

Ray
From: nels tomlinson
Subject: Re: loop
Date: 
Message-ID: <3ABFD078.3F1E2BA0@purdue.edu>
That sounds rather neat. One reason I like the idea is because it seems that CMUCL is
threaded, while GCL is not.  Since GCL is single-threaded, so is Maxima, and Maxima doesn't
seem able to do two things at once.  For example, it would be nice to be able to make a
three-d interactive plot, and then have Maxima doing something else while you admire it.

I gather that the maxima maintainer is also the gcl maintainer, so we will have to hope that
there will be no "not invented here" effect.

Nels


Raymond Toy wrote:

> >>>>> "nels" == nels tomlinson <········@purdue.edu> writes:
>
>     nels> One of my main reasons for learning Lisp is to facilitate playing/working with
>     nels> Maxima, so that is a strong argument for using gcl at least part of the time.
>     nels> I've gotten the latest versions of both gcl and Maxima, and  also gotten the
>     nels> latest version of CMUCL.  I guess if I want ANSI/CLTL2 I'll look to that.   CMUCL
>     nels> has better manuals, too, I think (though I haven't read them yet, so my first
>     nels> impression may be wrong).
>
> For what it's worth, I have a set of very rough patches (based on
> patches from Douglas Crosher from long ago) to maxima for CMUCL.  The
> result basically works but still has some problems.
>
> After I clean them up, I hope to submit them to the maxima maintainers
> for inclusion.
>
> Ray
From: Raymond Toy
Subject: Re: loop
Date: 
Message-ID: <4n8zlr7389.fsf@rtp.ericsson.se>
>>>>> "nels" == nels tomlinson <········@purdue.edu> writes:

    nels> That sounds rather neat. One reason I like the idea is
    nels> because it seems that CMUCL is threaded, while GCL is not.

That's only true on x86.  CMUCL doesn't do multiprocessing on any
other platform.

    nels> doesn't seem able to do two things at once.  For example, it
    nels> would be nice to be able to make a three-d interactive plot,
    nels> and then have Maxima doing something else while you admire
    nels> it.

The CMUCL version of maxima doesn't do 3-d plots (or any plots).
Haven't ported that code.

Ray
From: Paolo Amoroso
Subject: Re: loop
Date: 
Message-ID: <NofAOh16XUDkDZeGxaCjx8KUL5Pv@4ax.com>
On Mon, 26 Mar 2001 18:27:53 -0500, nels tomlinson <········@purdue.edu>
wrote:

> That sounds rather neat. One reason I like the idea is because it seems that CMUCL is
> threaded, while GCL is not.  Since GCL is single-threaded, so is Maxima, and Maxima doesn't

CMU CL supports threads only on the x86 port (Linux and FreeBSD).


Paolo
-- 
EncyCMUCLopedia * Extensive collection of CMU Common Lisp documentation
http://cvs2.cons.org:8000/cmucl/doc/EncyCMUCLopedia/
From: James Amundson
Subject: maxima and cmucl (was Re: loop)
Date: 
Message-ID: <99qmrb$kt1$1@info1.fnal.gov>
In article <··············@rtp.ericsson.se>, "Raymond Toy" <···@rtp.ericsson.se>
wrote:

>>>>>> "nels" == nels tomlinson <········@purdue.edu> writes:
> 
>     nels> One of my main reasons for learning Lisp is to facilitate
>     playing/working with nels> Maxima, so that is a strong argument for using
>     gcl at least part of the time. nels> I've gotten the latest versions of
>     both gcl and Maxima, and  also gotten the nels> latest version of CMUCL. 
>     I guess if I want ANSI/CLTL2 I'll look to that.   CMUCL nels> has better
>     manuals, too, I think (though I haven't read them yet, so my first nels>
>     impression may be wrong).
> 
> For what it's worth, I have a set of very rough patches (based on patches from
> Douglas Crosher from long ago) to maxima for CMUCL.  The result basically
> works but still has some problems.
> 
> After I clean them up, I hope to submit them to the maxima maintainers for
> inclusion.

Bill Schelter has recently committed changes to the maxima cvs repository to
make maxima play better with ANSI Common Lisp. The most recent changes allow me
to compile maxima with both clisp and cmucl. Unfortunately, although the clisp
version actually works, I have not been successful in getting the cmucl version
to run. I was planning to work on it when I had more time. I would encourage
you to look at the current cvs version to see how many of your changes are
still necessary. If would be interested in collaborating on such a project if
you would like help.

--Jim Amundson
From: Kent M Pitman
Subject: Re: legal status of maxima (was Re: maxima and cmucl (was Re: loop))
Date: 
Message-ID: <sfwofumk2ik.fsf@world.std.com>
Clemens Heitzinger <········@rainbow.studorg.tuwien.ac.at> writes:

> "James Amundson" <········@fnal.gov> writes:
> 
> > Bill Schelter has recently committed changes to the maxima cvs
> > repository to make maxima play better with ANSI Common Lisp. The
> > most recent changes allow me
> [...]
> 
> What's the legal status of the maxima source code?

Pardon my confusion, but what is "maxima"?  Is this just a misspelling of
"macsyma" or something entirely unrelated?
From: ········@hex.net
Subject: Re: legal status of maxima (was Re: maxima and cmucl (was Re: loop))
Date: 
Message-ID: <HYdw6.104971$lj4.3040289@news6.giganews.com>
Kent M Pitman <······@world.std.com> writes:
> Clemens Heitzinger <········@rainbow.studorg.tuwien.ac.at> writes:
>> "James Amundson" <········@fnal.gov> writes:
>>> Bill Schelter has recently committed changes to the maxima cvs
>>> repository to make maxima play better with ANSI Common Lisp. The
>>> most recent changes allow me [...]

>> What's the legal status of the maxima source code?

> Pardon my confusion, but what is "maxima"?  Is this just a
> misspelling of "macsyma" or something entirely unrelated?

This appears to be a release of Macsyma, as released by the Department
of Energy.

Apparently the DOE has given permission to distribute "Maxima" under
the GPL; so indicates the documentation for the Debian package for
it...
-- 
(reverse (concatenate 'string ····················@" "454aa"))
http://vip.hyperusa.com/~cbbrowne/resume.html
ITS is a hand-crafted RSUBR.
From: Martti Halminen
Subject: Re: legal status of maxima (was Re: maxima and cmucl (was Re: loop))
Date: 
Message-ID: <3AC1B23B.DE4A34F3@solibri.com>
Kent M Pitman wrote:
> 
> Clemens Heitzinger <········@rainbow.studorg.tuwien.ac.at> writes:
> 
> > "James Amundson" <········@fnal.gov> writes:
> >
> > > Bill Schelter has recently committed changes to the maxima cvs
> > > repository to make maxima play better with ANSI Common Lisp. The
> > > most recent changes allow me
> > [...]
> >
> > What's the legal status of the maxima source code?
> 
> Pardon my confusion, but what is "maxima"?  Is this just a misspelling of
> "macsyma" or something entirely unrelated?

http://www.ma.utexas.edu/maxima.html

<quote>
Maxima is a Common Lisp implementation of MIT's Macsyma system for
computer based algebra. Maxima is now about to be released under the GNU
Public
License. I have maintained and extended Maxima for the last 15 years,
but have only recently received formal permission from DOE, to release
this under GPL as a
derivative work. This formalizes earlier opinions from DOE. 
...
William F. Schelter (···@math . utexas. edu) 

</quote>

--
From: Nicolas Neuss
Subject: Re: maxima and cmucl (was Re: loop)
Date: 
Message-ID: <wsy9tqz1nm.fsf@ortler.iwr.uni-heidelberg.de>
"James Amundson" <········@fnal.gov> writes:
> > 
> > For what it's worth, I have a set of very rough patches (based on
> > patches from  Douglas Crosher from long ago) to maxima for CMUCL.
> > The result basically works but still has some problems.
> > 
> > After I clean them up, I hope to submit them to the maxima maintainers for
> > inclusion.
> 
> Bill Schelter has recently committed changes to the maxima cvs
> repository to make maxima play better with ANSI Common Lisp. The
> most recent changes allow me to compile maxima with both clisp and
> cmucl. Unfortunately, although the clisp version actually works, I
> have not been successful in getting the cmucl version to run. I was
> planning to work on it when I had more time. I would encourage you
> to look at the current cvs version to see how many of your changes
> are still necessary. If would be interested in collaborating on such
> a project if you would like help.
> 
> --Jim Amundson

There are also patches to maxima-5.4 in
ftp://ftp2.cons.org/.0/languages/lisp/cmucl/ports/maxima

For applying the patches use
tar xzvf maxima-5.4.tgz
cd maxima-5.4
patch -p1 <${your_path_to_}maxima-5.4-patches

(Thanks to Andrei Elkin for mailing me the above information.)

My experience is that not everything works with CMUCL in the same way
as with GCL (e.g. graphics).  So an improved CVS version definitely
might help.

Nicolas.

P.S.: I just went through the test examples ("make test") together
with the info documentation, and I am very impressed.  Could anyone who
knows also Maple or Mathematica tell me how it compares to those
systems?
Another question: Is there some better way to learn Maxima than by
going through the examples?
From: Bruce Stephens
Subject: Re: maxima and cmucl (was Re: loop)
Date: 
Message-ID: <87wv99fqks.fsf@cenderis.demon.co.uk>
Nicolas Neuss <·····@ortler.iwr.uni-heidelberg.de> writes:

[...]

> Could anyone who knows also Maple or Mathematica tell me how it
> compares to those systems?

Macsyma is older.  (Sorry, more mature.)  I believe Maple's a bit
simpler internally (Macsyma has a whole bunch of different
implementations of things for different purposes).  Maple's user
interface is quite a bit nicer (than Maxima, anyway).  

I haven't used Mathematica; I'm a bit prejudiced against it because of
Richard Fateman's (in)famous critique of it, available from the page
here <http://www.cs.berkeley.edu/~fateman/algebra.html>.  Other papers
there probably mention Macsyma.

Maxima also has the advantage of being written in Lisp, and price (and
freedom in the Free Software Foundation sense, of course).  I'm a bit
surprised more people don't seem to be playing with it.  For example,
TeXmacs <http://www.math.u-psud.fr/~anh/TeXmacs/TeXmacs.html>, an
editor which can provide an interface onto computer algebra systems,
doesn't (or didn't, last I looked) provide an interface onto maxima.

Hmm, I did a quick web search and found Symaxx,
<http://symaxx.sourceforge.net/>.  Maybe maxima isn't quite as
invisible as I thought.
From: Kent M Pitman
Subject: Re: maxima and cmucl (was Re: loop)
Date: 
Message-ID: <sfw7l19qv0t.fsf@world.std.com>
Bruce Stephens <············@cenderis.demon.co.uk> writes:

> 
> Nicolas Neuss <·····@ortler.iwr.uni-heidelberg.de> writes:
> 
> [...]
> 
> > Could anyone who knows also Maple or Mathematica tell me how it
> > compares to those systems?
> 
> Macsyma is older.  (Sorry, more mature.)  I believe Maple's a bit
> simpler internally (Macsyma has a whole bunch of different
> implementations of things for different purposes).  Maple's user
> interface is quite a bit nicer (than Maxima, anyway).  
> 
> I haven't used Mathematica; I'm a bit prejudiced against it because of
> Richard Fateman's (in)famous critique of it, available from the page
> here <http://www.cs.berkeley.edu/~fateman/algebra.html>.  Other papers
> there probably mention Macsyma.
> 
> Maxima also has the advantage of being written in Lisp, and price (and
> freedom in the Free Software Foundation sense, of course).  I'm a bit
> surprised more people don't seem to be playing with it.  For example,
> TeXmacs <http://www.math.u-psud.fr/~anh/TeXmacs/TeXmacs.html>, an
> editor which can provide an interface onto computer algebra systems,
> doesn't (or didn't, last I looked) provide an interface onto maxima.

Please note that Macsyma was also sold through Macsyma, Inc. and has had
quite a number of years of additional, funded development in that branch
that I *presume* are not part of the sources that are offered through FSF.

(I converted the source for the version that Macsyma, Inc. had into Common
Lisp when employed by Symbolics back in 1985 or 1986.)
 
It's a serious shame that these two branches got split, IMO.  It's also a
shame that the proprietary version is presently not being sold anywhere
that I can determine.  I'd love to get a copy of that one for my personal 
use, but www.macsyma.com doesn't respond and hasn't for quite a while.
Failing anyone wanting to sell the Macsyma, Inc. version, I do wish DOE
could somehow intervene to shake it loose and make it available, too.

> Hmm, I did a quick web search and found Symaxx,
> <http://symaxx.sourceforge.net/>.  Maybe maxima isn't quite as
> invisible as I thought.
From: Christopher Stacy
Subject: Re: maxima and cmucl (was Re: loop)
Date: 
Message-ID: <usnjx5byp.fsf@spacy.Boston.MA.US>
I think the latest incarnation of Symbolics acquired the assets of
Macsyma, Inc.  It is true that the commercial version of Macsyma has
quite a lot more functionality than DOE Macsyma, including very fancy
modern graphical user interfaces, notebooks, etc.

I don't know what the status of the company is or how to purchase a copy.
From: Bruce Stephens
Subject: Re: maxima and cmucl (was Re: loop)
Date: 
Message-ID: <87ae63ufld.fsf@cenderis.demon.co.uk>
Kent M Pitman <······@world.std.com> writes:

[...]

> Please note that Macsyma was also sold through Macsyma, Inc. and has
> had quite a number of years of additional, funded development in
> that branch that I *presume* are not part of the sources that are
> offered through FSF.

Yes, sorry, I should have been more careful.  The last time I used
Macsyma was back in 1986 or thereabouts on Multics, and Maxima feels
very similar to what I remember from then.

[...]

> It's a serious shame that these two branches got split, IMO.  It's
> also a shame that the proprietary version is presently not being
> sold anywhere that I can determine.  I'd love to get a copy of that
> one for my personal use, but www.macsyma.com doesn't respond and
> hasn't for quite a while.

Yes, I seem to remember them selling personal versions at really very
reasonable prices a few (5?) years ago.

> Failing anyone wanting to sell the Macsyma, Inc. version, I do wish
> DOE could somehow intervene to shake it loose and make it available,
> too.

That would be cool, too, if it's the case that Macsyma is no longer
available commercially.

> > Hmm, I did a quick web search and found Symaxx,
> > <http://symaxx.sourceforge.net/>.  Maybe maxima isn't quite as
> > invisible as I thought.

I've been playing a bit with Symaxx, and I think it's good.  A nice,
interesting interface design that I've not seen before.  Well worth a
look, IMHO.
From: Christopher Stacy
Subject: Re: maxima and cmucl (was Re: loop)
Date: 
Message-ID: <ud7ayluqv.fsf@spacy.Boston.MA.US>
>>>>> On 30 Mar 2001 22:16:06 +0100, Bruce Stephens ("Bruce") writes:

 Bruce> Kent M Pitman <······@world.std.com> writes:
 >> Please note that Macsyma was also sold through Macsyma, Inc. and has
 >> had quite a number of years of additional, funded development in
 >> that branch that I *presume* are not part of the sources that are
 >> offered through FSF.

 Bruce> Yes, sorry, I should have been more careful.  The last time I used
 Bruce> Macsyma was back in 1986 or thereabouts on Multics, and Maxima feels
 Bruce> very similar to what I remember from then.

DOE Macsyma, now packaged as Maxima, is based on a snapshot from that time.
Commercial Macsyma development then proceeded on and off for 10 more years.
From: Kent M Pitman
Subject: ip law vs abandonment [was: Re: maxima and cmucl (was Re: loop)]
Date: 
Message-ID: <sfwsnjuk9y6.fsf_-_@world.std.com>
Bruce Stephens <············@cenderis.demon.co.uk> writes:

> Kent M Pitman <······@world.std.com> writes:
>
> > Failing anyone wanting to sell the Macsyma, Inc. version, I do wish
> > DOE could somehow intervene to shake it loose and make it available,
> > too.
> 
> That would be cool, too, if it's the case that Macsyma is no longer
> available commercially.

This has happened to me a lot at various places I've worked.  Things I've
spent life energy on are locked away from me by trade secret or copyright
law but are not actually marketed by the company.  I'm actually an IP fan,
and not a die-hard about free software (I don't mind free software, but don't
think it should be the only model), however, I think IP law is flawed by
permitting this particular situation.

I think the list of "moral rights" in intellectual property should be extended
to say the people who actually wrote the work should have a moral right to
reclaim the work if it's not marketed after a certain period of time.

I'm told there is some legal concept of "abandonment" that might be exploited
under certain limited circumstances to achieve this end, but I wish we could
make this be a "matter of proper course" in disuse situations.
From: Tim Moore
Subject: Re: ip law vs abandonment [was: Re: maxima and cmucl (was Re: loop)]
Date: 
Message-ID: <9a3f5t$11o$0@216.39.145.192>
On Sat, 31 Mar 2001, Kent M Pitman wrote:
> This has happened to me a lot at various places I've worked.  Things I've
> spent life energy on are locked away from me by trade secret or copyright
> law but are not actually marketed by the company.  I'm actually an IP fan,
> and not a die-hard about free software (I don't mind free software, but don't
> think it should be the only model), however, I think IP law is flawed by
> permitting this particular situation.

The GPL must be starting to look pretty good right about now :)  Steve
Chamberlain of Cygnus had a compelling flame about insisting on
working only on GPL'ed code so that he'd never be in this situation.  If
deja were working I'd wade through the tarpits of gnu.misc.discuss and
provide a URL, but it's not so I won't.

> I think the list of "moral rights" in intellectual property should be extended
> to say the people who actually wrote the work should have a moral right to
> reclaim the work if it's not marketed after a certain period of time.
> 
From: Kent M Pitman
Subject: Re: ip law vs abandonment [was: Re: maxima and cmucl (was Re: loop)]
Date: 
Message-ID: <sfwofui7inb.fsf@world.std.com>
Tim Moore <·····@herschel.bricoworks.com> writes:

> On Sat, 31 Mar 2001, Kent M Pitman wrote:
>
> > This has happened to me a lot at various places I've worked.
> > Things I've spent life energy on are locked away from me by trade
> > secret or copyright law but are not actually marketed by the
> > company.  I'm actually an IP fan, and not a die-hard about free
> > software (I don't mind free software, but don't think it should be
> > the only model), however, I think IP law is flawed by permitting
> > this particular situation.
> 
> The GPL must be starting to look pretty good right about now :)  

Not to me.

> Steve Chamberlain of Cygnus had a compelling flame about insisting
> on working only on GPL'ed code so that he'd never be in this
> situation.  If deja were working I'd wade through the tarpits of
> gnu.misc.discuss and provide a URL, but it's not so I won't.

It's ok.  I'll believe you.  And this is a fine position for someone to
take.  But it's not my position.
 
> > I think the list of "moral rights" in intellectual property should
> > be extended to say the people who actually wrote the work should
> > have a moral right to reclaim the work if it's not marketed after
> > a certain period of time.

To be clear, I'm NOT suggesting that the item should revert to the public
domain.  I still believe in the commercial properties of intellectual 
property.  However, I think abandonment of intellectual property should be
dealt with in a way that returns unused items to someone's control.  
Certainly after some number of years, the thing enters the public domain
anyway.  But in the interim, I think the people who've poured their life
and soul into something have a superior claim over the world in general.
I think they ought to have the right to turn that time/effort to personal
benefit when their employers fail to.  If what those people see as personal
benefit is GPL'ing, of course, that's fine by me.
From: Russell Senior
Subject: Re: ip law vs abandonment [was: Re: maxima and cmucl (was Re: loop)]
Date: 
Message-ID: <8666gqtrgj.fsf@coulee.tdb.com>
>>>>> "Kent" == Kent M Pitman <······@world.std.com> writes:

Kent> [...] Certainly after some number of years, the thing enters the
Kent> public domain anyway. [...]

Prove it! :-)

Things like the Sonny Bono Copyright Extension Act make this far from
a certainty.


-- 
Russell Senior         ``The two chiefs turned to each other.        
·······@aracnet.com      Bellison uncorked a flood of horrible       
                         profanity, which, translated meant, `This is
                         extremely unusual.' ''                      
From: Kent M Pitman
Subject: Re: ip law vs abandonment [was: Re: maxima and cmucl (was Re: loop)]
Date: 
Message-ID: <sfwsnjuzbgq.fsf@world.std.com>
Russell Senior <·······@aracnet.com> writes:

> >>>>> "Kent" == Kent M Pitman <······@world.std.com> writes:
> 
> Kent> [...] Certainly after some number of years, the thing enters the
> Kent> public domain anyway. [...]
> 
> Prove it! :-)
> 
> Things like the Sonny Bono Copyright Extension Act make this far from
> a certainty.

Most copyrighted software isn't registered with the copyright office in
the first place, which I suspect makes it not subject to extension.

And abandoned software has a particular quality to it that makes it even
less likely to be renewed.

I haven't read the Sunny Bono extension, though; do you have a pointer?
From: Russell Senior
Subject: Re: ip law vs abandonment [was: Re: maxima and cmucl (was Re: loop)]
Date: 
Message-ID: <861yretk41.fsf@coulee.tdb.com>
>>>>> "Kent" == Kent M Pitman <······@world.std.com> writes:

Kent> I haven't read the Sunny Bono extension, though; do you have a
Kent> pointer?

If you can wade through the strange `diff' format, here is some
linkage to the canonical patch:

   <http://thomas.loc.gov/cgi-bin/bdquery/z?d105:SN00505:|TOM:/bss/d105query.html|>

A challenge to its constitutionality has been adjudicated through the
federal court of appeals as of last autumn.  Here is some linkage to
opposing points of view:

  <http://www.public.asu.edu/~dkarjala/>

Here is a link to the appellate decision:

  <http://www.ll.georgetown.edu/Fed-Ct/Circuit/dc/opinions/99-5430a.pdf>

-- 
Russell Senior         ``The two chiefs turned to each other.        
·······@aracnet.com      Bellison uncorked a flood of horrible       
                         profanity, which, translated meant, `This is
                         extremely unusual.' ''                      
From: Kent M Pitman
Subject: Re: ip law vs abandonment [was: Re: maxima and cmucl (was Re: loop)]
Date: 
Message-ID: <sfw7l16az01.fsf@world.std.com>
Russell Senior <·······@aracnet.com> writes:

> >>>>> "Kent" == Kent M Pitman <······@world.std.com> writes:
> 
> Kent> I haven't read the Sunny Bono extension, though; do you have a
> Kent> pointer?
> 
> If you can wade through the strange `diff' format, here is some
> linkage to the canonical patch:
> 
>    <http://thomas.loc.gov/cgi-bin/bdquery/z?d105:SN00505:|TOM:/bss/d105query.html|>
 
Ah, I see.  Yeah, it looks like these parameter values are already in
place in http://www4.law.cornell.edu/uscode/17/index.html (and
particularly in http://www4.law.cornell.edu/uscode/17/ch3.html ).  I
agree with you that these extensions, and especially the prospect of
continued extensions, are matter for concern (although to the extent
that they only mirror average lifespan, which might go up, I think
there is some potential justification, since I think an author or
artist should have a right to have their life's works provide them
income during that life).

Then again, I'm also not sure code should be covered by copyright.  I
mostly think things like songs and stories should mirror lifespan.
It's possible that code--more of an engineering task--should not be
lengthening in duration but shortening, as commercial cycles quicken
and obsolescence hastens.  I divide coding as an engineering task not
as an insult to the creativity sometimes involved but in the sense
that it seeks to be convergent (two implementors might reasonably
write and often should write the same code; that probably wouldn't
happen for poems or certainly for books, and if it did we wouldn't
want it).  I might prefer a different kind of law, more like patent
law, to apply to coding ... well, except I abhor the part of patent
law that makes independently developed work be an infringement. (It
seems to me that independent development is an existence proof that
the work was more obvious than originally thought and that by rights
it should weaken an existing patent rather than being ground down by
one.  I think any law that restricts independent use of brainpower 
is suspect.)

> A challenge to its constitutionality has been adjudicated through the
> federal court of appeals as of last autumn.  Here is some linkage to
> opposing points of view:
> 
>   <http://www.public.asu.edu/~dkarjala/>
> Here is a link to the appellate decision:
> 
>   <http://www.ll.georgetown.edu/Fed-Ct/Circuit/dc/opinions/99-5430a.pdf>

I'll look these over later but I seriously doubt this can be beaten on
constitutional grounds, given the way the constitution permits it.  It'd
be like trying to argue a given tax change was unconstitutional by claiming
it was unconstitutional--there's maybe enough window of opportunity to get
a case heard, but probably not enough to actually prevail.

Thanks!
From: Russell Senior
Subject: Re: ip law vs abandonment [was: Re: maxima and cmucl (was Re: loop)]
Date: 
Message-ID: <86r8zdo9i7.fsf@coulee.tdb.com>
>>>>> "Kent" == Kent M Pitman <······@world.std.com> writes:

Kent> [...] I agree with you that these extensions, and especially the
Kent> prospect of continued extensions, are matter for concern
Kent> (although to the extent that they only mirror average lifespan,
Kent> which might go up, I think there is some potential
Kent> justification, since I think an author or artist should have a
Kent> right to have their life's works provide them income during that
Kent> life).

Just to clarify, it is currently life *plus* 70 years for authors,
unless it is written anonymously or is a work for hire, then it is
either 95 years from publication or 120 years from creation (if I've
got that right).

Kent> I'll look these over later but I seriously doubt this can be
Kent> beaten on constitutional grounds, given the way the constitution
Kent> permits it.

I think the strongest (and to me rather convincing) arguments were
against the retrospective extensions, given that the specific grant of
power in the constitution indicated that the purpose of copyright was
to ``promote the progress of science and useful arts''.  Explain to me
how you give an incentive to a dead (and after 70 years, substantially
mouldered) person to create more progress in science and the useful
arts).  As for the `for limited times' clause, while it seems that the
intent of the Sonny Bono Act rather transparently violated it, it
didn't come right out and say so.

-- 
Russell Senior         ``The two chiefs turned to each other.        
·······@aracnet.com      Bellison uncorked a flood of horrible       
                         profanity, which, translated meant, `This is
                         extremely unusual.' ''                      
From: Kent M Pitman
Subject: Re: ip law vs abandonment [was: Re: maxima and cmucl (was Re: loop)]
Date: 
Message-ID: <sfw8zlla2nq.fsf@world.std.com>
Russell Senior <·······@aracnet.com> writes:

> >>>>> "Kent" == Kent M Pitman <······@world.std.com> writes:
> 
> Kent> [...] I agree with you that these extensions, and especially the
> Kent> prospect of continued extensions, are matter for concern
> Kent> (although to the extent that they only mirror average lifespan,
> Kent> which might go up, I think there is some potential
> Kent> justification, since I think an author or artist should have a
> Kent> right to have their life's works provide them income during that
> Kent> life).
> 
> Just to clarify, it is currently life *plus* 70 years for authors,

Just to clarify, if you die young, you may have a spouse whose life is
reasonably going to live 70 years.

> unless it is written anonymously or is a work for hire, then it is
> either 95 years from publication or 120 years from creation (if I've
> got that right).

These other lengths seems stupidly long.

> Kent> I'll look these over later but I seriously doubt this can be
> Kent> beaten on constitutional grounds, given the way the constitution
> Kent> permits it.
> 
> I think the strongest (and to me rather convincing) arguments were
> against the retrospective extensions, given that the specific grant of
> power in the constitution indicated that the purpose of copyright was
> to ``promote the progress of science and useful arts''.  Explain to me
> how you give an incentive to a dead (and after 70 years, substantially
> mouldered) person to create more progress in science and the useful
> arts).  As for the `for limited times' clause, while it seems that the
> intent of the Sonny Bono Act rather transparently violated it, it
> didn't come right out and say so.

Because it applies forward.  And because if you make a split rule
(applying only after a certain date), as happened in 1978, the math
gets very hard.
From: Russell Senior
Subject: Re: ip law vs abandonment [was: Re: maxima and cmucl (was Re: loop)]
Date: 
Message-ID: <86n1a1nzkh.fsf@coulee.tdb.com>
>>>>> "Kent" == Kent M Pitman <······@world.std.com> writes:

Kent> Just to clarify, if you die young, you may have a spouse whose
Kent> life is reasonably going to live 70 years.

Uh, so perhaps that spouse ought to make other arrangements for income
in their later years.  Remember, the constitution granted congress the
authority of establishing copyright not for the permanent welfare of
spouses and future offspring, but for the promotion of science and
useful arts.

Russell> [...] unless it is written anonymously or is a work for hire,
Russell> then it is either 95 years from publication or 120 years from
Russell> creation (if I've got that right).

Kent> These other lengths seems stupidly long.

The goal of the Act doesn't seem to be promoting the sciences and
useful arts, but rather to keep rich copyright holders (Disney, et al)
fat and happy.  In that context and to those people I rather guess
that the lengths seem annoyingly short.

Kent> Because it applies forward.  And because if you make a split
Kent> rule (applying only after a certain date), as happened in 1978,
Kent> the math gets very hard.

I don't see how the math got any easier.  There are still at least
three different cases based on dates, according to the Patent Office's
Circular 15a:

  <http://www.loc.gov/copyright/circs/circ15a.pdf>

If the goal was truly to promote the sciences and useful arts, the
extension would be limited to prospective creations.  Those are the
creations that could theoretically be promoted by providing additional
incentives like extended copyright protection.


-- 
Russell Senior         ``The two chiefs turned to each other.        
·······@aracnet.com      Bellison uncorked a flood of horrible       
                         profanity, which, translated meant, `This is
                         extremely unusual.' ''                      
From: George Neuner
Subject: Re: ip law vs abandonment [was: Re: maxima and cmucl (was Re: loop)]
Date: 
Message-ID: <3ac8f14b.276883587@helice>
On Sat, 31 Mar 2001 12:45:02 GMT, Kent M Pitman <······@world.std.com>
wrote:
>
>I abhor the part of patent law that makes independently developed 
>work be an infringement.

Independently developed work is not technically an infringement if it
was developed prior to or in isolation from the patented work.
Infringement really applies only to derivative works based on the
patent itself or on the immediate work that led to it.

The difficulty with current patent law is in proving the chronology
and/or the isolation.


>It seems to me that independent development is an existence proof
>that the work was more obvious than originally thought and that by
>rights it should weaken an existing patent rather than being ground
>down by one.

Obviousness is based on norms, not exceptions.  An idea is obvious if
it would naturally occur to a substantial percentage of people skilled
in the art [paraphrased].  Independent development by 10 people from a
population of thousands does not constitute "obvious". 


The basis of the laws were written at a point in history when
wholesale copying of designs was rampant.  As such, the laws were
written to give weight to the first filer as the idea originator and
made it very difficult for later comers to prove their similar idea
was independently developed.  That historical leaning is still evident
in modern laws.


>I think any law that restricts independent use of brainpower is suspect.

Agreed.


George
-------------------------------------------------------------------
Disclaimer: I am not a patent attorney ... my father, sister and a
dozen or so family friends *are*.
From: ········@hex.net
Subject: Re: ip law vs abandonment [was: Re: maxima and cmucl (was Re: loop)]
Date: 
Message-ID: <Wm7y6.121203$lj4.3627492@news6.giganews.com>
·······@dyn.com (George Neuner) writes:
> On Sat, 31 Mar 2001 12:45:02 GMT, Kent M Pitman <······@world.std.com>
> wrote:
> >
> >I abhor the part of patent law that makes independently developed 
> >work be an infringement.
> 
> Independently developed work is not technically an infringement if it
> was developed prior to or in isolation from the patented work.
> Infringement really applies only to derivative works based on the
> patent itself or on the immediate work that led to it.
> 
> The difficulty with current patent law is in proving the chronology
> and/or the isolation.

Hum?  I thought the point of patent was to provide exclusive rights to
the use of a technique, regardless of "isolation."  

If I file the patent to the new kind of "mouse ball," you're not
allowed to use that without my permission, regardless of your
independence.

In effect, the action of filing the patent puts the technique/object
as part of the public record, so that you can't claim "isolation."

>>It seems to me that independent development is an existence proof
>>that the work was more obvious than originally thought and that by
>>rights it should weaken an existing patent rather than being ground
>>down by one.

> Obviousness is based on norms, not exceptions.  An idea is obvious
> if it would naturally occur to a substantial percentage of people
> skilled in the art [paraphrased].  Independent development by 10
> people from a population of thousands does not constitute "obvious".

Obviousness is based on whatever criteria the politicians establish.
[That doesn't necessarily mean _elected_ politicians...]
-- 
(reverse (concatenate 'string ········@" "enworbbc"))
http://vip.hex.net/~cbbrowne/resume.html
"No, I'm not interested in developing a powerful brain.  All I'm after
is just a mediocre brain, something like the president of American
Telephone and Telegraph Company."  -- Alan Turing on the possibilities
of a thinking machine, 1943.
From: George Neuner
Subject: Re: ip law vs abandonment [was: Re: maxima and cmucl (was Re: loop)]
Date: 
Message-ID: <3aca2cc8.357647139@helice>
On Mon, 02 Apr 2001 22:50:30 GMT, ········@hex.net wrote:

>·······@dyn.com (George Neuner) writes:
>> 
>> Independently developed work is not technically an infringement if it
>> was developed prior to or in isolation from the patented work.
>> Infringement really applies only to derivative works based on the
>> patent itself or on the immediate work that led to it.
>>
>> The difficulty with current patent law is in proving the chronology
>> and/or the isolation.
>
>Hum?  I thought the point of patent was to provide exclusive rights to
>the use of a technique, regardless of "isolation."  
>
>If I file the patent to the new kind of "mouse ball," you're not
>allowed to use that without my permission, regardless of your
>independence.
>
>In effect, the action of filing the patent puts the technique/object
>as part of the public record, so that you can't claim "isolation."


That is your perception, not reality.
  

If my development occurred before yours, and I can prove that, then I
do not infringe your patent.

If my development was concurrent with yours, and I didn't know what
you were doing, and I can prove that, then I do not infringe your
patent.

If my development occurred after yours, and I designed without any
reference to yours, and I can prove that, then I do not infringe your
patent.  This is the so-called "clean room" design.

If my development occurred after yours, and I used your shipping
product as a reference for functionality only, and I can prove that,
then I do not infringe your patent.  This is the so-called "black box"
design.



That you may dislike or disagree with any of this is not relevant.
The law simultaneously protects both your investment *and* my fair
competition with you.

Laws are not absolute, there are myriad exceptions and loopholes.  If
you are unclear about something, talk to an IP attorney.




>> Obviousness is based on norms, not exceptions.  An idea is obvious
>> if it would naturally occur to a substantial percentage of people
>> skilled in the art [paraphrased].  Independent development by 10
>> people from a population of thousands does not constitute "obvious".
>
>Obviousness is based on whatever criteria the politicians establish.
>[That doesn't necessarily mean _elected_ politicians...]

No it isn't.  "Obviousness" is the probability of independent
occurance of an idea within a given population.  This is a measure
that can't be quantified, so the law relies instead on ad hoc. experts
[ie. examiners] to determine what is exceptional for the population.

[We'll save the examiner competency discussion for another time.]



George
-------------------------------------------------------------------
Disclaimer: I am not a patent attorney ... my father, sister and a
dozen or so family friends are.
From: Joe Marshall
Subject: Re: ip law vs abandonment [was: Re: maxima and cmucl (was Re: loop)]
Date: 
Message-ID: <lmpmyo78.fsf@content-integrity.com>
It is my understanding that trade secrets only apply to those secrets
that are actually used, so trade secret protection would not apply to
that software that is no longer being used or marketed by a company.
However, copyright and patents would still apply.

Remember that free legal (from a software engineer, no less) advice is
worth what you payed for it. 


Kent M Pitman <······@world.std.com> writes:

> Bruce Stephens <············@cenderis.demon.co.uk> writes:
> 
> > Kent M Pitman <······@world.std.com> writes:
> >
> > > Failing anyone wanting to sell the Macsyma, Inc. version, I do wish
> > > DOE could somehow intervene to shake it loose and make it available,
> > > too.
> > 
> > That would be cool, too, if it's the case that Macsyma is no longer
> > available commercially.
> 
> This has happened to me a lot at various places I've worked.  Things I've
> spent life energy on are locked away from me by trade secret or copyright
> law but are not actually marketed by the company.  I'm actually an IP fan,
> and not a die-hard about free software (I don't mind free software, but don't
> think it should be the only model), however, I think IP law is flawed by
> permitting this particular situation.
> 
> I think the list of "moral rights" in intellectual property should be extended
> to say the people who actually wrote the work should have a moral right to
> reclaim the work if it's not marketed after a certain period of time.
> 
> I'm told there is some legal concept of "abandonment" that might be exploited
> under certain limited circumstances to achieve this end, but I wish we could
> make this be a "matter of proper course" in disuse situations.


-----= Posted via Newsfeeds.Com, Uncensored Usenet News =-----
http://www.newsfeeds.com - The #1 Newsgroup Service in the World!
-----==  Over 80,000 Newsgroups - 16 Different Servers! =-----
From: Joe Marshall
Subject: Re: ip law vs abandonment [was: Re: maxima and cmucl (was Re: loop)]
Date: 
Message-ID: <4rwaynh2.fsf@content-integrity.com>
Joe Marshall <···@content-integrity.com> writes:

> Remember that free legal (from a software engineer, no less) advice is
> worth what you payed for it. 
................ paid ........




-----= Posted via Newsfeeds.Com, Uncensored Usenet News =-----
http://www.newsfeeds.com - The #1 Newsgroup Service in the World!
-----==  Over 80,000 Newsgroups - 16 Different Servers! =-----