~ubuntu-branches/ubuntu/quantal/gclcvs/quantal

« back to all changes in this revision

Viewing changes to pcl/notes/5-22-87-notes.text

  • Committer: Bazaar Package Importer
  • Author(s): Camm Maguire
  • Date: 2004-06-24 15:13:46 UTC
  • Revision ID: james.westby@ubuntu.com-20040624151346-xh0xaaktyyp7aorc
Tags: 2.7.0-26
C_GC_OFFSET is 2 on m68k-linux

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
 
 
3
These notes correspond to *pcl-system-date* "5/22/87   May 22nd, 1987".
 
4
 
 
5
The notes from the last release are stored as 4-29-notes.text
 
6
 
 
7
This release runs in:
 
8
  CMU Lisp
 
9
  ExCL
 
10
  Lucid
 
11
  Symbolics Common Lisp (Genera)
 
12
  Vaxlisp (2.0)
 
13
  Xerox Common Lisp (Lyric Release)
 
14
  Kyoto Common Lisp (5.2)
 
15
  TI Common Lisp (Release 3)
 
16
 
 
17
TI release 2 should also be working soon, I will announce that when it
 
18
happens.
 
19
 
 
20
 
 
21
Note once again, that Xerox Lisp users should FTP all the source files
 
22
from /pub/pcl/ as well as all the dfasl files from /pub/pcl/xerox/.
 
23
Included in the xerox specific directory is a file called PCL-ENV, which
 
24
provides some simple environment support for using PCL in Xerox Lisp.
 
25
You must load PCL BEFORE loading pcl-env.
 
26
 
 
27
 
 
28
MAJOR CHANGES IN THIS RELEASE:  
 
29
 
 
30
---
 
31
  it is possible to forward reference classes in a defclass (or
 
32
  add-named-class) form.  This means it is possible to say:
 
33
 
 
34
  (defclass foo (bar) (i j k))
 
35
 
 
36
  (defclass bar () (x y z))
 
37
 
 
38
  Rather than having to put the in the "right" order.
 
39
 
 
40
  NOTE: the full-on error checking for this is not finished yet.
 
41
        don't try to break it by doing things like:
 
42
 
 
43
  (defclass foo (bar) (i j k))
 
44
  (make-instance 'foo)
 
45
  (defclass bar () (x y z))
 
46
 
 
47
---
 
48
  print-instance has been renamed to print-object
 
49
 
 
50
---
 
51
  the defclass and class-definition protocol has changed.  some of the
 
52
effects of this change are:
 
53
 
 
54
* ADD-NAMED-CLASS is a true functional interface for defclass, so for
 
55
  example,
 
56
 
 
57
  (defclass foo () (x y z) (:accessor-prefix foo-))
 
58
 
 
59
  is equivalent to:
 
60
 
 
61
  (add-named-class (class-prototype (class-named 'class))
 
62
                   'foo
 
63
                   ()
 
64
                   '(x y z)
 
65
                   '((:accessor-prefix foo-)))
 
66
 
 
67
* defclass (and add-named-class) now undefined accessor methods, reader
 
68
  methods and constructors which 'went away'.  For example:
 
69
 
 
70
  (defclass foo () (x y z) (:reader-prefix foo-))
 
71
 
 
72
  defines methods on the generic functions foo-x foo-y and foo-z.
 
73
 
 
74
  but if you then evaluated the defclass form:
 
75
 
 
76
  (defclass foo () (x y z))
 
77
 
 
78
  those reader methods will be removed from the generic functions
 
79
  foo-x foo-y and foo-z.
 
80
 
 
81
  Similarly constructors which 'went away' will be undefined.
 
82
 
 
83
---
 
84
  writer methods generated by the :accessor and :accessor-prefix options
 
85
  now pay attention to the :type slot-option.  So,
 
86
 
 
87
  (defclass foo () ((x :accessor foo-x :type symbol)))
 
88
 
 
89
  (defvar *foo-1* (make-instance 'foo))
 
90
 
 
91
  (setf (foo-x *foo-1*) 'bar)  ; is OK
 
92
 
 
93
  (setf (foo-x *foo-1*) 10)    ; signals an error
 
94
 
 
95
---
 
96
  There are fewer built-in classes.  Specifically, only the following
 
97
  Common Lisp types have classes:
 
98
 
 
99
  ARRAY BIT-VECTOR CHARACTER COMPLEX CONS FLOAT INTEGER LIST
 
100
  NULL NUMBER RATIO RATIONAL SEQUENCE STRING SYMBOL T VECTOR
 
101
 
 
102
* In a future release the subtypes of FLOAT may have classes, that issue
 
103
  is still under discussion.
 
104
 
 
105
* Some ports of PCL also define classes for:
 
106
 
 
107
  HASH-TABLE PACKAGE PATHNAME RANDOM-STATE READTABLE STREAM
 
108
 
 
109
  it depends on how the type is represented in that Lisp's type system.
 
110
 
 
111
 
 
112
---
 
113
  The with-slots option :use-slot-value is now obsolete.  You should use
 
114
  the :use-accessors option as specified in the CLOS spec instead.
 
115
 
 
116
  with-slot forms which did not use the :use-slot-value option are OK,
 
117
  you don't have to touch them.
 
118
 
 
119
  with-slot forms which used :USE-SLOT-VALUE T should be changed to say
 
120
  :USE-ACCESSORS NIL.
 
121
 
 
122
  with-slot forms which used :USE-SLOT-VALUE NIL should be changed to
 
123
  use neither option, or if you insist :USE-ACCESSORS T
 
124
 
 
125
 
 
126