home *** CD-ROM | disk | FTP | other *** search
/ Power DOS 1995 July / Power_DOS_CD-ROM_Walnut_Creek_July_1995.iso / program / c / jcool01.txt < prev    next >
Internet Message Format  |  1994-04-12  |  6KB

  1. Date: December 2, 1992
  2. From: Jamshid Afshar (jamshid@ccwf.cc.utexas.edu)
  3. Subject: JCOOL 0.1 -- A free C++ class library using templates
  4.  
  5.  
  6. INTRODUCTION:
  7.  
  8. This is the README file for JCOOL 0.1.  This file and the JCOOL
  9. library are available by anonymous ftp at cs.utexas.edu in the
  10. directory pub/COOL as the files JCOOL01.TXT and JCOOL01.ZIP.  JCOOL
  11. is a modified version of GECOOL 2.1 (also available at cs.utexas.edu
  12. in pub/COOL/GECOOL2.1.tar.Z). GECOOL 2.1 is a reworking and
  13. enhancement of Texas Instrument's "C++ Object Oriented Library" (at
  14. csc.ti.com in ~ftp/pub/COOL.tar.Z) by some programmers at General
  15. Electric.  See the file 'coolhist' for more information about the
  16. history of COOL and its spinoffs.
  17.  
  18. JCOOL's main difference from COOL and GECOOL is that it uses real C++
  19. templates instead of a similar syntax that is preprocessed by a
  20. special 'cpp' distributed with COOL and GECOOL.  Of course, this
  21. means JCOOL can only be compiled with a compiler implementing
  22. templates.  I named the library JCOOL so as not to confuse it with
  23. other current or future versions and spinoffs of COOL.  Hopefully any
  24. further work will be merged to create a freely available and usable,
  25. portable general C++ class library.  JCOOL includes the classes
  26. AVL_Tree, Association, Bignum, Binary_Tree, Bit_Set, Complex,
  27. Date_Time, Envelope, Gen_String, Handle, Hash_Table, Iterator, List,
  28. M_Vector, Matrix, N_Tree, Pair, Quaternion, Queue, Random, Range,
  29. Rational, Regexp, Set, Shared, Stack, String, Timer, Value, Vector.
  30. Most of these are class templates.  So far JCOOL has only been
  31. compiled under Borland C++ 3.1.
  32.  
  33.  
  34. PURPOSE:
  35.  
  36. C++ is a powerful tool but its major benefits cannot be achieved, nor
  37. can a new user be productive, without a good data structures
  38. library.  While I hope JCOOL eventually leads to something any C++
  39. user can confidently start with or incorporate into their existing
  40. code, this version of JCOOL is 0.1 to reinforce the fact that it is
  41. far from being fully tested or stable.  Some of the tests and
  42. examples fail either because of bugs in the code or the compiler.
  43. This library is provided without warranties of any kind.
  44.  
  45. My main goal in releasing it now is to improve the overall quality of
  46. C++ compilers, especially with respect to templates.  I found (and
  47. reported) numerous BC++ bugs in the process of building JCOOL. Please
  48. try to compile it on any C++ compiler claiming to support templates
  49. and (loudly) report the bugs that will inevitably pop up.  While I do
  50. have a long "todo" list of bug fixes and enhancements, and I do want
  51. to be kept abreast of any work, I will probably not have time to do
  52. much work on JCOOL in the near future. I am also somewhat worn out
  53. after fighting BC++ 3.1 over the past several months (though I'm sure
  54. Borland loves me :-).  I will be eager to enhance JCOOL once a new,
  55. more bug-free version of BC++ is released.  Please don't let this
  56. disclaimer keep you from sending comments or suggestions.  I'm always
  57. interested in bug reports, fixes, or suggestions on improving this
  58. package.  Please also consider letting others know about bugs or
  59. ports by posting to comp.lang.c++.
  60.  
  61.  
  62. DIRECTIONS:
  63.  
  64. Get the file pub/COOL/JCOOL01.ZIP by anonymous ftp at cs.utexas.edu. 
  65. It will unzip into:
  66.    cool/
  67.       tests/ - test programs, makefile for tests
  68.       examples/ - example programs, makefile for examples
  69.       readme - *this file
  70.       todo - bugs, plans
  71.       changes - changes, including GECOOL changes from COOL
  72.       makefile - Borland C++ 3.1 makefile to create cool.lib
  73.       coolhist - a COOL history report courtesy of Mary J. Fontana
  74.       renlong.sh - renames all files to their original UNIX names
  75.       renshort.sh - renames all files to DOS (8.3) names
  76.       *.h
  77.       *.c
  78.  
  79. The makefile assumes you have BC++ 3.1 installed in c:\borlandc.  The
  80. large memory model is used.  Please read 'todo' and 'changes' before
  81. using JCOOL as they mention bugs I've encountered.  After modifing
  82. 'makefile' if necessary, do the following to install into your
  83. D:\FREELIBS directory and compile your program MYPROG.CPP.
  84.  
  85.    D:\FREELIBS>unzip -d JCOOL01  => creates COOL directory
  86.    D:\FREELIBS\COOL>make         => creates COOL.LIB
  87.    D:\FREELIBS\COOL\TESTS>make runall.out => creates test*.exe and runs them
  88.    D:\FREELIBS\COOL\EXAMPLES>make runall.out => creates ex*.exe and runs them
  89.    C:\MYPROG>bcc -Ic:\borlandc\include;d:\freelibs;d:\freelibs\cool
  90.                  -ml -vi- -w -w-sig -w-amp
  91.                  myprog.cpp d:\freelibs\cool\cool.lib  => creates myprog.exe
  92.  
  93. See the TESTS and EXAMPLES directories for sample code and see the
  94. header files themselves for class documentation.  You should include
  95. JCOOL headers by specifying the 'cool' path (eg, #include
  96. <cool/Binary_Tree.h>). Doing so allows you to use JCOOL with other
  97. libraries containing the same file names.  Use the full,
  98. case-sensitive file name so that your code is portable to less
  99. restrictive file systems.  You should #include the .C file of
  100. template classes in one of your modules (see the BC++ docs for more
  101. information about template instantiation).
  102.  
  103.  
  104. ACKNOWLEGEMENTS:
  105.  
  106. Thanks to the following for all their work on the design and
  107. implementation of COOL and GECOOL, and for making their work freely
  108. available.
  109.  
  110.       Mary J. Fontana (fontana@mtc.ti.com)
  111.       Van-Duc Nguyen (nguyen@crd.ge.com)
  112.       LGO?
  113.       DLS?
  114.       MBN?
  115.  
  116. A general thanks to the USENET community, especially comp.lang.c/c++,
  117. for being a wealth of information and ideas.
  118.  
  119. Finally, a special thanks to my s.o. Walter for putting up with my
  120. all-nighters at the office working on this and other C++ projects.
  121.  
  122.  
  123. SHAMELESS PLUG/PLEA:
  124.  
  125. Btw, if you are in the Austin area and looking for an expert C++
  126. programmer with 3 years work experience under DOS/MS-Windows and the
  127. ability to quickly learn other environments, please contact me for a
  128. resume.
  129.  
  130.  
  131. DISCLAIMERS:
  132.  
  133. //
  134. // Copyright (C) 1991 Texas Instruments Incorporated.
  135. //
  136. // Permission is granted to any individual or institution to use, copy, modify,
  137. // and distribute this software, provided that this complete copyright and
  138. // permission notice is maintained, intact, in all copies and supporting
  139. // documentation.
  140. //
  141. // Texas Instruments Incorporated provides this software "as is" without
  142. // express or implied warranty.
  143. //
  144.  
  145.  
  146. CONTACT:
  147.  
  148. Jamshid Afshar
  149. Email: jamshid@ccwf.cc.utexas.edu or jamshid@emx.utexas.edu
  150. USMail: 401 E. 4th Street #403, Austin, TX 78701
  151. USPhone: (512) 474-7455
  152.  
  153.