annotate src/README.kkcc @ 1280:7b40ca6d2195

[xemacs-hg @ 2003-02-09 14:49:15 by youngs] Revert this (Steve T beat me to it with a better patch) 2003-02-09 Steve Youngs <youngs@xemacs.org> * s/darwin.h (DLSYM_NEEDS_UNDERSCORE): Define it. From Andrew Begel <abegel@cs.berkeley.edu>
author youngs
date Sun, 09 Feb 2003 14:49:20 +0000
parents e22b0213b713
children ac1be85b4a5f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
992
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
1 2002-07-17 Marcus Crestani <crestani@informatik.uni-tuebingen.de>
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
2 Markus Kaltenbach <makalten@informatik.uni-tuebingen.de>
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
3 Mike Sperber <mike@xemacs.org>
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
4
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
5 New KKCC-GC mark algorithm:
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
6 configure flag : --use-kkcc
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
7
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
8 For better understanding, first a few words about the mark algorithm
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
9 up to now:
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
10 Every Lisp_Object has its own mark method, which calls mark_object
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
11 with the stuff to be marked.
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
12 Also, many Lisp_Objects have pdump descriptions, which are used by
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
13 the portable dumper. The dumper gets all the information it needs
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
14 about the Lisp_Object from the descriptions.
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
15
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
16 Also the garbage collector can use the information in the pdump
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
17 descriptions, so we can get rid of the mark methods.
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
18 That is what we have been doing.
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
19
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
20
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
21 DUMPABLE FLAG
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
22 -------------
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
23 First we added a dumpable flag to lrecord_implementation. It shows,
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
24 if the object is dumpable and should be processed by the dumper.
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
25 The dumpable flag is the third argument of a lrecord_implementation
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
26 definition (DEFINE_LRECORD_IMPLEMENTATION).
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
27 If it is set to 1, the dumper processes the descriptions and dumps
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
28 the Object, if it is set to 0, the dumper does not care about it.
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
29
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
30
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
31 TODO
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
32 ----
1204
e22b0213b713 [xemacs-hg @ 2003-01-12 11:07:58 by michaels]
michaels
parents: 992
diff changeset
33 After all Lisp_Objects have pdump descriptions (THEY DO NOW!!),
992
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
34 (mark_with_description) can get rid of the mark_object calls.
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
35
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
36
1204
e22b0213b713 [xemacs-hg @ 2003-01-12 11:07:58 by michaels]
michaels
parents: 992
diff changeset
37 There are a few Lisp_Objects, where there occured differences and
e22b0213b713 [xemacs-hg @ 2003-01-12 11:07:58 by michaels]
michaels
parents: 992
diff changeset
38 inexactness between the mark-method and the pdump description. All
e22b0213b713 [xemacs-hg @ 2003-01-12 11:07:58 by michaels]
michaels
parents: 992
diff changeset
39 these Lisp_Objects get dumped (except image instances), so their
e22b0213b713 [xemacs-hg @ 2003-01-12 11:07:58 by michaels]
michaels
parents: 992
diff changeset
40 descriptions have been written, before we started our work:
e22b0213b713 [xemacs-hg @ 2003-01-12 11:07:58 by michaels]
michaels
parents: 992
diff changeset
41
e22b0213b713 [xemacs-hg @ 2003-01-12 11:07:58 by michaels]
michaels
parents: 992
diff changeset
42 * alloc.c: lcrecord_list
e22b0213b713 [xemacs-hg @ 2003-01-12 11:07:58 by michaels]
michaels
parents: 992
diff changeset
43 description:
e22b0213b713 [xemacs-hg @ 2003-01-12 11:07:58 by michaels]
michaels
parents: 992
diff changeset
44 mark: performs extra gc_checking_assert() for various checks.
992
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
45
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
46 * alloc.c: cons
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
47 description: car and cdr
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
48 mark: cdr is marked, only if its != Qnil
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
49
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
50 * alloc.c: string
1204
e22b0213b713 [xemacs-hg @ 2003-01-12 11:07:58 by michaels]
michaels
parents: 992
diff changeset
51 description: ???
e22b0213b713 [xemacs-hg @ 2003-01-12 11:07:58 by michaels]
michaels
parents: 992
diff changeset
52 mark: ???
992
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
53
1204
e22b0213b713 [xemacs-hg @ 2003-01-12 11:07:58 by michaels]
michaels
parents: 992
diff changeset
54 * buffer.c: buffer
e22b0213b713 [xemacs-hg @ 2003-01-12 11:07:58 by michaels]
michaels
parents: 992
diff changeset
55 description: XD_LISP_OBJECT indirect_children
e22b0213b713 [xemacs-hg @ 2003-01-12 11:07:58 by michaels]
michaels
parents: 992
diff changeset
56 mark: indirect_children not marked if Qnull_pointer
992
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
57
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
58 * eval.c: subr
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
59 description: XD_DOC_STRING doc
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
60 mark: empty, nothing is marked
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
61
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
62 * file-coding.c: coding_system
1204
e22b0213b713 [xemacs-hg @ 2003-01-12 11:07:58 by michaels]
michaels
parents: 992
diff changeset
63 description: ???
e22b0213b713 [xemacs-hg @ 2003-01-12 11:07:58 by michaels]
michaels
parents: 992
diff changeset
64 mark: ???
992
964f33d24564 [xemacs-hg @ 2002-09-03 10:51:55 by michaels]
michaels
parents:
diff changeset
65
1204
e22b0213b713 [xemacs-hg @ 2003-01-12 11:07:58 by michaels]
michaels
parents: 992
diff changeset
66 * glyphs.c: image_instance
e22b0213b713 [xemacs-hg @ 2003-01-12 11:07:58 by michaels]
michaels
parents: 992
diff changeset
67 description:
e22b0213b713 [xemacs-hg @ 2003-01-12 11:07:58 by michaels]
michaels
parents: 992
diff changeset
68 mark: mark method sets device to nil if dead