File: 5-22-87-notes.text

package info (click to toggle)
gcl 2.6.7%2Bdfsga-1
  • links: PTS
  • area: main
  • in suites: wheezy
  • size: 84,796 kB
  • sloc: ansic: 452,686; lisp: 156,133; asm: 111,405; sh: 29,299; cpp: 18,599; perl: 5,602; makefile: 5,201; tcl: 3,181; sed: 469; yacc: 378; lex: 174; fortran: 48; awk: 30; csh: 23
file content (126 lines) | stat: -rw-r--r-- 3,499 bytes parent folder | download | duplicates (17)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126


These notes correspond to *pcl-system-date* "5/22/87   May 22nd, 1987".

The notes from the last release are stored as 4-29-notes.text

This release runs in:
  CMU Lisp
  ExCL
  Lucid
  Symbolics Common Lisp (Genera)
  Vaxlisp (2.0)
  Xerox Common Lisp (Lyric Release)
  Kyoto Common Lisp (5.2)
  TI Common Lisp (Release 3)

TI release 2 should also be working soon, I will announce that when it
happens.


Note once again, that Xerox Lisp users should FTP all the source files
from /pub/pcl/ as well as all the dfasl files from /pub/pcl/xerox/.
Included in the xerox specific directory is a file called PCL-ENV, which
provides some simple environment support for using PCL in Xerox Lisp.
You must load PCL BEFORE loading pcl-env.


MAJOR CHANGES IN THIS RELEASE:  

---
  it is possible to forward reference classes in a defclass (or
  add-named-class) form.  This means it is possible to say:

  (defclass foo (bar) (i j k))

  (defclass bar () (x y z))

  Rather than having to put the in the "right" order.

  NOTE: the full-on error checking for this is not finished yet.
        don't try to break it by doing things like:

  (defclass foo (bar) (i j k))
  (make-instance 'foo)
  (defclass bar () (x y z))

---
  print-instance has been renamed to print-object

---
  the defclass and class-definition protocol has changed.  some of the
effects of this change are:

* ADD-NAMED-CLASS is a true functional interface for defclass, so for
  example,

  (defclass foo () (x y z) (:accessor-prefix foo-))

  is equivalent to:

  (add-named-class (class-prototype (class-named 'class))
                   'foo
                   ()
                   '(x y z)
                   '((:accessor-prefix foo-)))

* defclass (and add-named-class) now undefined accessor methods, reader
  methods and constructors which 'went away'.  For example:

  (defclass foo () (x y z) (:reader-prefix foo-))

  defines methods on the generic functions foo-x foo-y and foo-z.

  but if you then evaluated the defclass form:

  (defclass foo () (x y z))

  those reader methods will be removed from the generic functions
  foo-x foo-y and foo-z.

  Similarly constructors which 'went away' will be undefined.

---
  writer methods generated by the :accessor and :accessor-prefix options
  now pay attention to the :type slot-option.  So,

  (defclass foo () ((x :accessor foo-x :type symbol)))

  (defvar *foo-1* (make-instance 'foo))

  (setf (foo-x *foo-1*) 'bar)  ; is OK

  (setf (foo-x *foo-1*) 10)    ; signals an error

---
  There are fewer built-in classes.  Specifically, only the following
  Common Lisp types have classes:

  ARRAY BIT-VECTOR CHARACTER COMPLEX CONS FLOAT INTEGER LIST
  NULL NUMBER RATIO RATIONAL SEQUENCE STRING SYMBOL T VECTOR

* In a future release the subtypes of FLOAT may have classes, that issue
  is still under discussion.

* Some ports of PCL also define classes for:

  HASH-TABLE PACKAGE PATHNAME RANDOM-STATE READTABLE STREAM

  it depends on how the type is represented in that Lisp's type system.


---
  The with-slots option :use-slot-value is now obsolete.  You should use
  the :use-accessors option as specified in the CLOS spec instead.

  with-slot forms which did not use the :use-slot-value option are OK,
  you don't have to touch them.

  with-slot forms which used :USE-SLOT-VALUE T should be changed to say
  :USE-ACCESSORS NIL.

  with-slot forms which used :USE-SLOT-VALUE NIL should be changed to
  use neither option, or if you insist :USE-ACCESSORS T