summaryrefslogtreecommitdiff
path: root/docs/README.cords
diff options
context:
space:
mode:
authorIvan Maidanski <ivmai@mail.ru>2023-01-26 07:32:47 +0300
committerIvan Maidanski <ivmai@mail.ru>2023-01-26 07:53:41 +0300
commitd389c2d7f08ab48e7b6ec1a22c2afe9d201f5b12 (patch)
treede1e09811741f697ac3bd557af06c402390be641 /docs/README.cords
parenta8d383792100cb9958b430498e5a49ea4c4c2b9f (diff)
downloadbdwgc-d389c2d7f08ab48e7b6ec1a22c2afe9d201f5b12.tar.gz
Rename doc folder to docs
* CMakeLists.txt [enable_docs] (CMAKE_INSTALL_DOCDIR): Rename doc folder to docs. * Makefile.am [ENABLE_DOCS] (docdocdir, dist_docdocs_DATA, dist_docdocsplatforms_DATA): Likewise. * Makefile.direct (CXXFLAGS): Likewise. * README.md: Likewise. * docs/simple_example.md (Other platforms): Likewise. * Makefile.am [ENABLE_DOCS] (docdocdir): Rename to docdocsdir. * Makefile.am [ENABLE_DOCS] (dist_docdoc_DATA): Rename to dist_docdocs_DATA. * Makefile.am [ENABLE_DOCS] (docdocplatformsdir): Rename to docdocsplatformsdir. * Makefile.am [ENABLE_DOCS] (dist_docdocplatforms_DATA): Rename to dist_docdocsplatforms_DATA. * doc/README.autoconf: Move to docs folder. * doc/README.cmake: Likewise. * doc/README.cords: Likewise. * doc/README.environment: Likewise. * doc/README.macros: Likewise. * doc/debugging.md: Likewise. * doc/faq.md: Likewise. * doc/finalization.md: Likewise. * doc/gcdescr.md: Likewise. * doc/gcinterface.md: Likewise. * doc/leak.md: Likewise. * doc/overview.md: Likewise. * doc/porting.md: Likewise. * doc/scale.md: Likewise. * doc/simple_example.md: Likewise. * doc/tree.md: Likewise. * doc/platforms/README.aix: Move to docs/platforms folder. * doc/platforms/README.amiga: Likewise. * doc/platforms/README.arm_cross: Likewise. * doc/platforms/README.darwin: Likewise. * doc/platforms/README.dgux386: Likewise. * doc/platforms/README.emscripten: Likewise. * doc/platforms/README.ews4800: Likewise. * doc/platforms/README.hp: Likewise. * doc/platforms/README.linux: Likewise. * doc/platforms/README.mac: Likewise. * doc/platforms/README.os2: Likewise. * doc/platforms/README.sgi: Likewise. * doc/platforms/README.solaris2: Likewise. * doc/platforms/README.symbian: Likewise. * doc/platforms/README.uts: Likewise. * doc/platforms/README.win32: Likewise. * doc/platforms/README.win64: Likewise.
Diffstat (limited to 'docs/README.cords')
-rw-r--r--docs/README.cords40
1 files changed, 40 insertions, 0 deletions
diff --git a/docs/README.cords b/docs/README.cords
new file mode 100644
index 00000000..ad0b9a41
--- /dev/null
+++ b/docs/README.cords
@@ -0,0 +1,40 @@
+
+This is a string packages that uses a tree-based representation.
+See cord.h for a description of the functions provided. Ec.h describes
+"extensible cords", which are essentially output streams that write
+to a cord. These allow for efficient construction of cords without
+requiring a bound on the size of a cord.
+
+The cord library is built by default in case of the GNU autoconf-based build
+and the CMake-based one (unless "-Dbuild_cord=OFF" option is given to cmake).
+If you wish to build the library with the stand-alone Makefile.direct, type
+"make -f Makefile.direct cords".
+
+More details on the data structure can be found in:
+
+Boehm, Atkinson, and Plass, "Ropes: An Alternative to Strings",
+Software Practice and Experience 25, 12, December 1995, pp. 1315-1330.
+
+A fundamentally similar "rope" data structure is also part of SGI's standard
+template library implementation, and its descendants, which include the
+GNU C++ library. That uses reference counting by default.
+There is a short description of that data structure at
+http://www.sgi.com/tech/stl/ropeimpl.html .
+
+All of these are descendants of the "ropes" in Xerox Cedar.
+
+cord/tests/de.c is a very dumb text editor that illustrates the use of cords.
+It maintains a list of file versions. Each version is simply a
+cord representing the file contents. Nonetheless, standard
+editing operations are efficient, even on very large files.
+(Its 3 line "user manual" can be obtained by invoking it without
+arguments. Note that ^R^N and ^R^P move the cursor by
+almost a screen. It does not understand tabs, which will show
+up as highlighted "I"s. Use the UNIX "expand" program first.)
+To build the editor, type "make de" in the gc directory.
+
+Note that CORD_printf and friends use C functions with variable numbers
+of arguments in non-standard-conforming ways. This code is known to
+break on some platforms, notably PowerPC. It should be possible to
+build the remainder of the library (everything but cordprnt.c) on
+any platform that supports the collector.