home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #30 / NN_1992_30.iso / spool / comp / archives / 3770 < prev    next >
Encoding:
Internet Message Format  |  1992-12-14  |  8.6 KB

  1. Path: sparky!uunet!think.com!yale.edu!spool.mu.edu!agate!agate!usenet
  2. From: jamshid@emx.cc.utexas.edu (Jamshid Afshar)
  3. Newsgroups: comp.archives
  4. Subject: [comp.lang.c++] JCOOL 0.1 -- free, general class library using templates
  5. Followup-To: comp.lang.c++
  6. Date: 14 Dec 1992 10:18:54 GMT
  7. Organization: The University of Texas at Austin; Austin, Texas
  8. Lines: 188
  9. Sender: adam@soda
  10. Approved: adam@soda
  11. Distribution: world
  12. Message-ID: <1ghn2eINNml8@agate.berkeley.edu>
  13. References: <84703@ut-emx.uucp>
  14. Reply-To: jamshid@ccwf.cc.utexas.edu
  15. NNTP-Posting-Host: soda.berkeley.edu
  16. X-Original-Newsgroups: comp.lang.c++
  17. X-Original-Date: 3 Dec 92 03:49:32 GMT
  18.  
  19. Archive-name: auto/comp.lang.c++/JCOOL-0-1-free-general-class-library-using-templates
  20.  
  21. I am pleased to announce the availability of JCOOL 0.1.  It is a
  22. template version (no more special cpp!) of the GECOOL 2.1 package
  23. which is a reworking and enhancement of COOL.  I have appended the
  24. JCOOL README file below and will be sending notice to the C++ Products
  25. List maintainer.
  26.  
  27. JCOOL01.ZIP is available by anonymous ftp at cs.utexas.edu in
  28. pub/COOL.  It will soon be at WSMR-SIMTEL20.ARMY.MIL (192.88.110.20)
  29. in <MSDOS.CPLUSPLUS> and its mirror sites (eg, wuarchive.wustl.edu and
  30. src.doc.ic.ac.uk).  It will also soon be available at
  31. ftp.th-darmstadt.de in pub/programming/languages/C++/??.  Before
  32. downloading you might want to check for more articles in this thread
  33. in case I or others have posted some late-breaking news.  If you can't
  34. ftp, send email to jamshid@ccwf.cc.utexas.edu and I'll email you
  35. either the uu(xx?)encoded file (~500KB) or explicit ftp-by-email file
  36. server instructions.
  37.  
  38. A couple of quick notes: I've successfully compiled it with BC++ 3.1
  39. on a machine with 6MB of memory.  I wouldn't bother trying BC++ 3.0
  40. with any of the template classes.  If you have less than 6MB you will
  41. probably run out of memory when compiling the larger tests.  If you
  42. run out of disk space while compiling the tests or examples, remember
  43. you can delete the cool\objs\*.obj files.  Finally, change the INCDIR=
  44. line in examples\makefile to "INCDIR=c:\borlandc\include;..\..;..".
  45.  
  46. Please try to compile this library on the *latest* versions (and
  47. betas) of other compilers supporting templates.  We seriously need to
  48. improve the quality of C++ compilers, especially with respect to
  49. templates.
  50.  
  51. ----------------------------------------------------------------------
  52.  
  53. Date: December 2, 1992
  54. From: Jamshid Afshar (jamshid@ccwf.cc.utexas.edu)
  55. Subject: JCOOL 0.1 -- A free C++ class library using templates
  56.  
  57.  
  58. INTRODUCTION:
  59.  
  60. This is the README file for JCOOL 0.1.  This file and the JCOOL
  61. library are available by anonymous ftp at cs.utexas.edu in the
  62. directory pub/COOL as the files JCOOL01.TXT and JCOOL01.ZIP.  JCOOL
  63. is a modified version of GECOOL 2.1 (also available at cs.utexas.edu
  64. in pub/COOL/GECOOL2.1.tar.Z). GECOOL 2.1 is a reworking and
  65. enhancement of Texas Instrument's "C++ Object Oriented Library" (at
  66. csc.ti.com in ~ftp/pub/COOL.tar.Z) by some programmers at General
  67. Electric.  See the file 'coolhist' for more information about the
  68. history of COOL and its spinoffs.
  69.  
  70. JCOOL's main difference from COOL and GECOOL is that it uses real C++
  71. templates instead of a similar syntax that is preprocessed by a
  72. special 'cpp' distributed with COOL and GECOOL.  Of course, this
  73. means JCOOL can only be compiled with a compiler implementing
  74. templates.  I named the library JCOOL so as not to confuse it with
  75. other current or future versions and spinoffs of COOL.  Hopefully any
  76. further work will be merged to create a freely available and usable,
  77. portable general C++ class library.  JCOOL includes the classes
  78. AVL_Tree, Association, Bignum, Binary_Tree, Bit_Set, Complex,
  79. Date_Time, Envelope, Gen_String, Handle, Hash_Table, Iterator, List,
  80. M_Vector, Matrix, N_Tree, Pair, Quaternion, Queue, Random, Range,
  81. Rational, Regexp, Set, Shared, Stack, String, Timer, Value, Vector.
  82. Most of these are class templates.  So far JCOOL has only been
  83. compiled under Borland C++ 3.1.
  84.  
  85.  
  86. PURPOSE:
  87.  
  88. C++ is a powerful tool but its major benefits cannot be achieved, nor
  89. can a new user be productive, without a good data structures
  90. library.  While I hope JCOOL eventually leads to something any C++
  91. user can confidently start with or incorporate into their existing
  92. code, this version of JCOOL is 0.1 to reinforce the fact that it is
  93. far from being fully tested or stable.  Some of the tests and
  94. examples fail either because of bugs in the code or the compiler.
  95. This library is provided without warranties of any kind.
  96.  
  97. My main goal in releasing it now is to improve the overall quality of
  98. C++ compilers, especially with respect to templates.  I found (and
  99. reported) numerous BC++ bugs in the process of building JCOOL. Please
  100. try to compile it on any C++ compiler claiming to support templates
  101. and (loudly) report the bugs that will inevitably pop up.  While I do
  102. have a long "todo" list of bug fixes and enhancements, and I do want
  103. to be kept abreast of any work, I will probably not have time to do
  104. much work on JCOOL in the near future. I am also somewhat worn out
  105. after fighting BC++ 3.1 over the past several months (though I'm sure
  106. Borland loves me :-).  I will be eager to enhance JCOOL once a new,
  107. more bug-free version of BC++ is released.  Please don't let this
  108. disclaimer keep you from sending comments or suggestions.  I'm always
  109. interested in bug reports, fixes, or suggestions on improving this
  110. package.  Please also consider letting others know about bugs or
  111. ports by posting to comp.lang.c++.
  112.  
  113.  
  114. DIRECTIONS:
  115.  
  116. Get the file pub/COOL/JCOOL01.ZIP by anonymous ftp at cs.utexas.edu. 
  117. It will unzip into:
  118.    cool/
  119.       tests/ - test programs, makefile for tests
  120.       examples/ - example programs, makefile for examples
  121.       readme - *this file
  122.       todo - bugs, plans
  123.       changes - changes, including GECOOL changes from COOL
  124.       makefile - Borland C++ 3.1 makefile to create cool.lib
  125.       coolhist - a COOL history report courtesy of Mary J. Fontana
  126.       renlong.sh - renames all files to their original UNIX names
  127.       renshort.sh - renames all files to DOS (8.3) names
  128.       *.h
  129.       *.c
  130.  
  131. The makefile assumes you have BC++ 3.1 installed in c:\borlandc.  The
  132. large memory model is used.  Please read 'todo' and 'changes' before
  133. using JCOOL as they mention bugs I've encountered.  After modifing
  134. 'makefile' if necessary, do the following to install into your
  135. D:\FREELIBS directory and compile your program MYPROG.CPP.
  136.  
  137.    D:\FREELIBS>unzip -d JCOOL01  => creates COOL directory
  138.    D:\FREELIBS\COOL>make         => creates COOL.LIB
  139.    D:\FREELIBS\COOL\TESTS>make runall.out => creates test*.exe and runs them
  140.    D:\FREELIBS\COOL\EXAMPLES>make runall.out => creates ex*.exe and runs them
  141.    C:\MYPROG>bcc -Ic:\borlandc\include;d:\freelibs;d:\freelibs\cool
  142.                  -ml -vi- -w -w-sig -w-amp
  143.                  myprog.cpp d:\freelibs\cool\cool.lib  => creates myprog.exe
  144.  
  145. See the TESTS and EXAMPLES directories for sample code and see the
  146. header files themselves for class documentation.  You should include
  147. JCOOL headers by specifying the 'cool' path (eg, #include
  148. <cool/Binary_Tree.h>). Doing so allows you to use JCOOL with other
  149. libraries containing the same file names.  Use the full,
  150. case-sensitive file name so that your code is portable to less
  151. restrictive file systems.  You should #include the .C file of
  152. template classes in one of your modules (see the BC++ docs for more
  153. information about template instantiation).
  154.  
  155.  
  156. ACKNOWLEGEMENTS:
  157.  
  158. Thanks to the following for all their work on the design and
  159. implementation of COOL and GECOOL, and for making their work freely
  160. available.
  161.  
  162.       Mary J. Fontana (fontana@mtc.ti.com)
  163.       Van-Duc Nguyen (nguyen@crd.ge.com)
  164.       LGO?
  165.       DLS?
  166.       MBN?
  167.  
  168. A general thanks to the USENET community, especially comp.lang.c/c++,
  169. for being a wealth of information and ideas.
  170.  
  171. Finally, a special thanks to my s.o. Walter for putting up with my
  172. all-nighters at the office working on this and other C++ projects.
  173.  
  174.  
  175. SHAMELESS PLUG/PLEA:
  176.  
  177. Btw, if you are in the Austin area and looking for an expert C++
  178. programmer with 3 years work experience under DOS/MS-Windows and the
  179. ability to quickly learn other environments, please contact me for a
  180. resume.
  181.  
  182.  
  183. DISCLAIMERS:
  184.  
  185. //
  186. // Copyright (C) 1991 Texas Instruments Incorporated.
  187. //
  188. // Permission is granted to any individual or institution to use, copy, modify,
  189. // and distribute this software, provided that this complete copyright and
  190. // permission notice is maintained, intact, in all copies and supporting
  191. // documentation.
  192. //
  193. // Texas Instruments Incorporated provides this software "as is" without
  194. // express or implied warranty.
  195. //
  196.  
  197.  
  198. CONTACT:
  199.  
  200. Jamshid Afshar
  201. Email: jamshid@ccwf.cc.utexas.edu or jamshid@emx.utexas.edu
  202. USMail: 401 E. 4th Street #403, Austin, TX 78701
  203. USPhone: (512) 474-7455
  204.  
  205.  
  206.  
  207.