]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/tools/build/src/engine/boehm_gc/doc/README.cords
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / tools / build / src / engine / boehm_gc / doc / README.cords
CommitLineData
7c673cae
FG
1Copyright (c) 1993-1994 by Xerox Corporation. All rights reserved.
2
3THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
4OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
5
6Permission is hereby granted to use or copy this program
7for any purpose, provided the above notices are retained on all copies.
8Permission to modify the code and to distribute modified code is granted,
9provided the above notices are retained, and a notice that the code was
10modified is included with the above copyright notice.
11
12Please send bug reports to Hans-J. Boehm (Hans_Boehm@hp.com or
13boehm@acm.org).
14
15This is a string packages that uses a tree-based representation.
16See cord.h for a description of the functions provided. Ec.h describes
17"extensible cords", which are essentially output streams that write
18to a cord. These allow for efficient construction of cords without
19requiring a bound on the size of a cord.
20
21More details on the data structure can be found in
22
23Boehm, Atkinson, and Plass, "Ropes: An Alternative to Strings",
24Software Practice and Experience 25, 12, December 1995, pp. 1315-1330.
25
26A fundamentally similar "rope" data structure is also part of SGI's standard
27template library implementation, and its descendents, which include the
28GNU C++ library. That uses reference counting by default.
29There is a short description of that data structure at
30http://reality.sgi.com/boehm/ropeimpl.html . (The more official location
31http://www.sgi.com/tech/stl/ropeimpl.html is missing a figure.)
32
33All of these are descendents of the "ropes" in Xerox Cedar.
34
35de.c is a very dumb text editor that illustrates the use of cords.
36It maintains a list of file versions. Each version is simply a
37cord representing the file contents. Nonetheless, standard
38editing operations are efficient, even on very large files.
39(Its 3 line "user manual" can be obtained by invoking it without
40arguments. Note that ^R^N and ^R^P move the cursor by
41almost a screen. It does not understand tabs, which will show
42up as highlighred "I"s. Use the UNIX "expand" program first.)
43To build the editor, type "make cord/de" in the gc directory.
44
45This package assumes an ANSI C compiler such as gcc. It will
46not compile with an old-style K&R compiler.
47
48Note that CORD_printf iand friends use C functions with variable numbers
49of arguments in non-standard-conforming ways. This code is known to
50break on some platforms, notably PowerPC. It should be possible to
51build the remainder of the library (everything but cordprnt.c) on
52any platform that supports the collector.
53