source: trunk/@Release Notes 0.9 @ 3

Revision 3, 10.1 KB checked in by gz, 9 years ago (diff)

Recovered version 0.961 from Sheldon Ball <s.ball@…>

1This file contains release notes for version 0.9 of Wood.
3New features since 0.8
5There is the start of a transaction system. It doesn't do much
6yet, but the API exists, so you can start writing it into your
7code. See documentation for WITH-TRANSACTION in "wood.doc".
9p-make-load-function is deprecated. New code should use
10p-make-load-function-using-pheap. See "wood.doc".
12The btree code now uses binary search in each node. This makes it
13almost 3 times as fast. It is also more (disk) space efficient.
15Wood allow you to specify that some slots of a CLOS instance are
16to remain disk-resident until accessed. See the documentation for
17wood-disk-resident-slot-names & define-disk-resident-slots in "wood.doc".
19create-pheap & open-pheap now take :mac-file-creator and :external-format
20keywords that work like the same keyword args to open except that
21if an existing file's mac-file-type is not the same as the specified
22external-format, an error is signalled.
24New functions: p-loaded? & p-stored?. See "wood.doc".
26gc-pheap-file now takes an optional modify-input-file arg, default NIL.
27It used to write forwarding pointers into the pheap file and
28restore the old values on exit. It now does this only if
29modify-input-file is true. The default is to use a hash table to store
30the forwarding pointers. This makes it use more memory, but it doesn't
31modify the file and is noticeably faster.
33Wood works in the alpha version of MCL 3.0.
34MCL 3.0a4 requires a compiler patch in order to compile
35the file "recovery.lisp". Send mail to me (
36if you need the patch. Later alphas will incorporate the patch.
38Mod Histories
42;; 03/13/95 bill byte-array-p and ensure-byte-array move here from "disk-cache-accessors.lisp"
43;;               byte-array-p updated to work in MCL 3.0.
44;;               Former lap uses of $v_subtype changed to calls of ensure-byte-array
45;; 10/25/94 Moon without-interrupts -> with-databases-locked
46;; 09/21/94 bill without-interrupts around part of %fread-bytes and %fwrite-bytes
47;; 01/31/94 bill %fread-bytes & %fwrite-bytes support offsets > 64K and
48;;               will read/write more than just the first 512 bytes.
51;;; 02/06/95 bill  Moon's idea to add binary search to %btree-search-node without
52;;;                changing the disk representation. That and doing the comparisons
53;;;                inline got speed improvement of a factor of 2.7 over the old linear
54;;;                search code.
55;;; 12/16/94 bill  Complete rewrite of the low-level insertion code.
56;;;                This fixes a bug found by and
57;;;                will make much easier the addition of binary search for nodes.
58;;; 10/28/94 Moon  Change without-interrupts to with-databases-locked.
59;;; 10/25/94 bill  (setf (p-btree-store ...) x) now returns x instead of its pptr.
60;;; 09/21/94 bill  without-interrupts as necessary for interlocking
63;; 03/13/95 bill byte-array-p & ensure-byte-array-p move to "block-io-mcl.lisp"
64;; 10/28/94 Moon Change without-interrupts to with-databases-locked.
65;; 10/03/94 bill (setf wood::read-8-bits) no longer fails when writing
66;;               less than 4 bytes from the end of the buffer.
67;; 09/21/94 bill without-interrupts as necessary for interlocking
70;; 11/17/95 bill poor man's transactions.
71;;               open-disk-cache takes an :initial-transaction-p keyword.
72;;               If nil (NOT the default), errors on any disk writes that
73;;               happen outside of a start-disk-cache-transaction/commit-disk-cache-transaction
74;;               pair.
75;; 11/03/94 ows  open-disk-cache takes a mac-file-creator keyword,
76;;               which it passes on to open.
77;; 10/28/94 Moon Change without-interrupts to with-databases-locked.
78;;               Remove interlocking from get-disk-page; callers must.
79;;               Add comment "Must be called inside with-databases-locked"
80;;               to with-locked-page.
81;; 09/21/94 bill without-interrupts as necessary for interlocking
82;; 07/26/94 bill get-disk-page allocates a new page if all the pages
83;;               are locked. Hence, it can't fail unless out of memory.
86;; 01/17/95 bill  export p-store-pptr, pptr-pointer, pptr-pheap,
87;;                with-transaction, start-transaction, commit-transaction,
88;;                abort-transaction
89;; 11/02/94 ows   export pptr, pheap-pathname
90;; 10/25/94 bill  export pptr-p, p-loaded?, p-stored?,
91;;                wood-disk-resident-slot-names, define-disk-resident-slots
92;; 03/14/94 bill  Don't push anything onto *module-search-path*
95;; 11/02/94 bill  (method %p-store-object (t standard-object t)) no longer
96;;                handles p-make-load-function-using-pheap. It has moved
97;;                into %p-store-internal now.
98;; 10/28/94 Moon  Change without-interrupts to with-databases-locked
99;; 10/25/94 bill  p-load-instance calls wood-disk-resident-slot-names,
100;;                a new GF that users can specialize.
101;;                define-disk-resident-slot-names macro to aid generation
102;;                of wood-disk-resident-slot-names methods and accessor
103;;                methods that will swap disk resident slots in when
104;;                necessary.
105;; 09/21/94 bill  without-interrupts as necessary for interlocking
108;; 02/10/95 bill  Binding of *loading-pheap* moves from p-load to pointer-load.
109;; 01/17/95 bill  poor man's transactions.
110;;                open-pheap takes an :initial-transaction-p keyword.
111;;                If nil (NOT the default), errors on any disk writes that
112;;                happen outside of a start-transaction/commit-transaction pair.
113;; 12/09/94 bill  Changes from fix-redefine-class-patch for Alpha 1
114;;                %p-store-internal gets new descend value :store-slots-again
115;; 11/16/94 bill  flush-all-open-pheaps ignores errors and ensures that they
116;;                won't happen again.
117;; 11/04/94 ows   open-pheap & create-pheap take a mac-file-creator keyword, which
118;;                they pass on to open-disk-cache.
119;;                Add :mac-file-creator to *open-pheap-keywords*.
120;; 11/02/94 bill  Handling of p-make-load-function-using-pheap moves into
121;;                %p-store-internal and out of (method %p-store-object (t structure-object t)).
122;;                %p-store-object-body-with-load-function commented out.
123;;                Remove %p-store-hash-table and its call.
124;;                Optimize handling of NIL in %p-store-internal
125;; 10/28/94 Moon  Change without-interrupts to with-databases-locked
126;;                Remove interlocking from pheap-write-hook since it is only called
127;;                from inside of get-disk-page, which is already interlocked
128;; 10/25/94 bill  p-loaded?, p-maphash type checks its hash table arg.
129;;                initialize-vector-storage had an error in its first error call.
130;;                %p-store-uvector calls %p-store-hash-table for hash tables.
131;;                %p-store-hash-table saves hash tables without dumping
132;;                a copy of #'equal, #'equalp, or internal hash table functions.
133;;                p-load-load-function handles circularity correctly.
134;;                New macro: %p-store-object-body-with-load-function and
135;;                its helper function do-%p-store-object-body-with-load-function
136;; 10/13/94 bill  New variable: *preserve-lfun-info*. Pass it as second arg to split-lfun.
137;; 10/12/94 bill  typo in error message in initialize-vector-storage.
138;;                Thanx to Chris DiGiano for finding this.
139;; 10/11/94 bill  open-pheap works again if the file does not exist and
140;;                the :if-exists keyword is present.
141;; 09/26/94 bill  GZ's simplification t do-%p-store-object-body
142;; 09/21/94 bill  without-interrupts as necessary for interlocking
143;; 09/19/94 bill  New function: p-stored?
144;;                New macro: careful-maybe-cached-address. Use it in %p-store-object-body
145;;                to handle the case of a make-load-function-using-pheap returning
146;;                the same disk object for two different memory objects.
147;; 07/18/94 bill  (via derek)
148;;                Calls p-make-load-function-using-pheap instead of p-make-load-function.
149;;                p-make-load-function-using-pheap takes the pheap as an arg, so that it
150;;                can dispatch off its type. open-pheap takes a new :pheap-class keyword
151;;                to support this. The reason for this change is to allow different
152;;                persistent heap types to have different strategies for storing objects to disk.
153;; 06/21/94 bill  flush-all-open-pheaps removes a pheap from *open-pheaps* if
154;;                its stream is no longer open.
155;; 03/10/93 bill  create-pheap & open-pheap now take an :external-format keyword
156;;                (submitted by Oliver Steele)
159;; 10/13/94 gz    optional preserve-lfun-info-p arg to split-lfun
160;; 10/11/94 bill  split-lfun no longer attempts to skip immediate map when
161;;                there is none. Thanx to Chris DiGiano for finding this one.
164;; 11/02/94 ows  gc-pheap-file-internal takes keyword argument modify-input-file;
165;;               when true, calls make-forwarding-table instead of open-dc-log.
166;;               gc-pheap-file-internal copies the mac-file-creator from the input
167;;               file to the output file.
168;;               gc-pheap-file takes optional argument modify-input-file
169;;               gc-pheap-file only swaps files when the size is smaller.
170;;               new fns make-forwarding-table, forwarding-table-p
171;;               gc-write-forwarding-pointer, address-forwarded-p check whether
172;;               the log is a forwarding table.
173;;               new fns address-forwarded-p, read-forwarded-pointer replace
174;;               inlined versions of this code in callers.
175;;               gc-copy-pkg-symbols, gc-copy-ptr, gc-copy-cons-internal
176;;               call address-forwarded-p, read-forwarded-pointer.
177;; 09/26/94 bill gc-copy-bytes uses addr+ instead of incf.
178;;               Thanx to Christopher T. Wisdo for finding this.
181;; 03/09/94 bill  wood::load-wood -> (find-symbol "LOAD-WOOD" :wood)
184;; 01/18/95 bill  $btree.max-key-size
Note: See TracBrowser for help on using the repository browser.