Nikodemus Siivola | 1 Jun 2004 01:31
Picon
Picon

Re: BUG 241 not a bug?

On Sat, 29 May 2004, Nikodemus Siivola wrote:

> 241: "DEFCLASS mysteriously remembers uninterned accessor names."

> Unless I'm missing something obvious here, I'd be inclined to remove the
> 241 entry, and maybe add a new one about the profling / generic function
> interaction the suboptimality higlighted by this. ,-)

In absence of voices to the contrary, I've done this in 0.8.10.73.

Cheers,

 -- Nikodemus                   "Not as clumsy or random as a C++ or Java.
                             An elegant weapon for a more civilized time."

-------------------------------------------------------
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g. 
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id=3149&alloc_id=8166&op=click
Bruno Haible | 1 Jun 2004 16:47

class redefinition

This gives a weird error, printing circular structures endlessly:
  (defclass foo () ())
  (defclass foo () () (:metaclass structure-class))
but if *print-circle* is t, the error is continuable.

However, here the error is not continuable:
  (defclass foo () () (:metaclass structure-class))
  (defclass foo () ())

Seen in SBCL 0.8.9.

Bruno

-------------------------------------------------------
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g. 
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id=3149&alloc_id=8166&op=click
Bruno Haible | 1 Jun 2004 16:46

customizing compute-slots

The MOP spec says about COMPUTE-SLOTS's primary methods: "This method can
be overridden." But when trying to do this, to add a new local or shared slot,
I get an error:

(use-package "SB-PCL")
(defclass b (a) ())
(defmethod compute-slots ((class (eql (find-class 'b))))
  (append (call-next-method)
          (list (make-instance 'standard-effective-slot-definition
                  :name 'y
                  :allocation :instance))))
(defclass a () ((x :allocation :class)))
;; A should now have a shared slot, X, and a local slot, Y.
(mapcar #'slot-definition-location (class-slots (find-class 'b)))
=>
  There is no applicable method for the generic function
    #<STANDARD-GENERIC-FUNCTION CLASS-SLOTS (3)>
  when called with arguments
    (NIL).

(use-package "SB-PCL")
(defclass b (a) ())
(defmethod compute-slots ((class (eql (find-class 'b))))
  (append (call-next-method)
          (list (make-instance 'standard-effective-slot-definition
                  :name 'y
                  :allocation :class))))
(defclass a () ((x :allocation :class)))
;; A should now have two shared slots, X and Y.
(mapcar #'slot-definition-location (class-slots (find-class 'b)))
(Continue reading)

William Harold Newman | 1 Jun 2004 20:52

impending sbcl-0.8.11

I expect to release sbcl-0.8.11 next Sunday or perhaps Monday. In the
meantime, committers please try to limit changes to conservative
fixes, and thanks in advance to anyone who wants to test things before
release.

--

-- 
William Harold Newman <william.newman <at> airmail.net>
"It takes two to lie, Marge -- one to lie and one to listen." -- Homer Simpson
PGP key fingerprint 85 CE 1C BA 79 8D 51 8C  B9 25 FB EE E0 C3 E5 7C

-------------------------------------------------------
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g. 
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id=3149&alloc_id=8166&op=click
Bruno Haible | 1 Jun 2004 22:53

Re: BUG 241 not a bug?

> (defclass foo () ((bar :accessor foo-bar)))
> (profile foo-bar)
> (unintern 'foo-bar)
> (defclass foo () ((bar :accessor foo-bar)))
> gives the error message
>  "#:FOO-BAR already names an ordinary function or a macro."

Still, the error message is annoying. TRACE and PROFILE should not
cause ADD-METHOD or REMOVE-METHOD to stop working. If TRACE can do it,
why can't PROFILE do it as well?

Bruno

-------------------------------------------------------
This SF.Net email is sponsored by the new InstallShield X.
From Windows to Linux, servers to mobile, InstallShield X is the one
installation-authoring solution that does it all. Learn more and
evaluate today! http://www.installshield.com/Dev2Dev/0504
Christophe Rhodes | 1 Jun 2004 23:27
Picon
Picon
Favicon

Re: Re: BUG 241 not a bug?

Bruno Haible <bruno <at> clisp.org> writes:

>> (defclass foo () ((bar :accessor foo-bar)))
>> (profile foo-bar)
>> (unintern 'foo-bar)
>> (defclass foo () ((bar :accessor foo-bar)))
>> gives the error message
>>  "#:FOO-BAR already names an ordinary function or a macro."
>
> Still, the error message is annoying. TRACE and PROFILE should not
> cause ADD-METHOD or REMOVE-METHOD to stop working. If TRACE can do it,
> why can't PROFILE do it as well?

That was the gist of Nikodemus' message: it's not a bug in DEFCLASS,
which quite rightly is remembering the old accessor name; it's a bug
in the profiler.  See bug #328.

Cheers,

Christophe
--

-- 
http://www-jcsu.jesus.cam.ac.uk/~csr21/       +44 1223 510 299/+44 7729 383 757
(set-pprint-dispatch 'number (lambda (s o) (declare (special b)) (format s b)))
(defvar b "~&Just another Lisp hacker~%")    (pprint #36rJesusCollegeCambridge)

-------------------------------------------------------
This SF.Net email is sponsored by the new InstallShield X.
From Windows to Linux, servers to mobile, InstallShield X is the one
installation-authoring solution that does it all. Learn more and
evaluate today! http://www.installshield.com/Dev2Dev/0504
(Continue reading)

Julian Stecklina | 1 Jun 2004 23:42
Picon

Re: INSTALL documentation

Nikodemus Siivola <tsiivola <at> cc.hut.fi> writes:

> 2.6. Known good platforms
>
>   This software has been built successfully on these systems:
>
>     cpu = x86 (Intel 386 or higher, or compatibles like the AMD	K6)
> 		os = Debian GNU/Linux 2.1 with libc >= 2.1
> 			host lisp = CMU CL 2.4.17
> 			host lisp = SBCL itself
> 			host lisp = CLISP CVS as of end of April
> 		os = RedHat Linux 6.2
> 			host lisp = SBCL itself
> 		os = FreeBSD 3.4 or 4.0
> 			host lisp = CMU CL
> 			host lisp = SBCL itself
> 		os = OpenBSD 2.6, 2.7, 2.8, 2.9, and 3.0
> 			host lisp = SBCL itself

Do we intentionally list archaic OS versions here?

Regards,
--

-- 
Julian Stecklina 

Signed and encrypted mail welcome.
Key-Server: pgp.mit.edu         Key-ID: 0xD65B2AB5
FA38 DCD3 00EC 97B8 6DD8  D7CC 35D8 8D0E D65B 2AB5

Any sufficiently complicated C or Fortran program
(Continue reading)

Nikodemus Siivola | 2 Jun 2004 00:12
Picon
Picon

Re: Re: BUG 241 not a bug?

On Tue, 1 Jun 2004, Tony Martinez wrote:

> FWIW, here's a non-profiler example which turns up the bug.

Thinking about this further, the uninterning, profiling and whatnot are
just red herrings. (Though the profiling issue is a bug of it's own.)
There are two separate issues convoluted here:

Issue the first:

  (defun foo-bar () 42)
  (defclass foo () ((bar :accessor foo-bar)))
  => debugger invoked on a SB-INT:SIMPLE-PROGRAM-ERROR in thread 2286:
       FOO-BAR already names an ordinary function or a macro.

  This is not a bug, but providing a restart to clobber the function and
  continue could be done.

Issue the second:

  (defclass bar () ((foo :accessor bar-foo)))
  (defun bar-foo () 42)
  (defclass bar () ((foo :accessor get-foo)))
  => debugger invoked on a SB-INT:SIMPLE-PROGRAM-ERROR in thread 2286:
       BAR-FOO already names an ordinary function or a macro.

  This one is a bug, I believe. If the symbol no longer names a generic
  function we should just skip removing the method since there is nothing
  to remove it from.

(Continue reading)

Nikodemus Siivola | 2 Jun 2004 00:47
Picon
Picon

Re: INSTALL documentation

On Tue, 1 Jun 2004, Julian Stecklina wrote:

> Do we intentionally list archaic OS versions here?

Not anymore. ;-) Well, Linux 2.2 is probably archaic, and still listed
even in the new version.

Cheers,

 -- Nikodemus                   "Not as clumsy or random as a C++ or Java.
                             An elegant weapon for a more civilized time."

-------------------------------------------------------
This SF.Net email is sponsored by the new InstallShield X.
From Windows to Linux, servers to mobile, InstallShield X is the one
installation-authoring solution that does it all. Learn more and
evaluate today! http://www.installshield.com/Dev2Dev/0504
Julian Stecklina | 2 Jun 2004 02:12
Picon

Re: INSTALL documentation

Nikodemus Siivola <tsiivola <at> cc.hut.fi> writes:

> On Tue, 1 Jun 2004, Julian Stecklina wrote:
>
>> Do we intentionally list archaic OS versions here?
>
> Not anymore. ;-) Well, Linux 2.2 is probably archaic, and still listed
> even in the new version.

Well, FreeBSD 4.0 is more then 4 years old (I am currently using
5.2-CURRENT), OpenBSD is way past 3.0, too. :)

Regards,
--

-- 
Julian Stecklina 

Signed and encrypted mail welcome.
Key-Server: pgp.mit.edu         Key-ID: 0xD65B2AB5
FA38 DCD3 00EC 97B8 6DD8  D7CC 35D8 8D0E D65B 2AB5

Any sufficiently complicated C or Fortran program
contains an ad hoc informally-specified bug-ridden
slow implementation of half of Common Lisp.
 - Greenspun's Tenth Rule of Programming

-------------------------------------------------------
This SF.Net email is sponsored by the new InstallShield X.
From Windows to Linux, servers to mobile, InstallShield X is the one
installation-authoring solution that does it all. Learn more and
evaluate today! http://www.installshield.com/Dev2Dev/0504
(Continue reading)


Gmane