annotate src/README.kkcc @ 1306:371cff0ccdd7

[xemacs-hg @ 2003-02-16 06:08:02 by youngs] Take out Rendhalver - 21.5.11 would have been the first release with him in about.el, but seeing as though he has decided to leave the project, I've taken him out of about.el. If he changes his mind, I can always put him back in.
author youngs
date Sun, 16 Feb 2003 06:08:02 +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