home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #27 / NN_1992_27.iso / spool / comp / lang / cplus / 16486 < prev    next >
Encoding:
Text File  |  1992-11-17  |  25.4 KB  |  682 lines

  1. Newsgroups: comp.lang.c++
  2. Path: sparky!uunet!charon.amdahl.com!pacbell.com!ames!saimiri.primate.wisc.edu!zaphod.mps.ohio-state.edu!cis.ohio-state.edu!pacific.mps.ohio-state.edu!linac!att!att!dptg!ucs!skdutta
  3. From: skdutta@ucs.att.com (Saumen Dutta)
  4. Subject: C++ Product List - Version 2.04 - Part 8/8
  5. Message-ID: <1992Nov18.023213.916@ucs.att.com>
  6. Organization: AT&T Universal Card Services, Jacksonville FL
  7. Date: Wed, 18 Nov 1992 02:32:13 GMT
  8. Lines: 672
  9.  
  10. 5.  Tools
  11. _   _____
  12.  
  13.      In this section we will cover  C++  tools  which  helps
  14. developing C++ and other programs. Some of these are already
  15. being covered in the previous chapters and are omitted here.
  16.  
  17. 5.1.  Interviews Drawing Editor
  18. _ _   __________ _______ ______
  19.  
  20. +    It   is    available    via    anonymous    ftp    from
  21.      interviews.stanford.edu
  22.  
  23. +    On line drawing tool capable of interactive line  draw-
  24.      ing  and  filling.  It creates a postscript file. Files
  25.      created by Idraw can  also  be  imported.  It  supports
  26.      split view, grouping, ungrouping etc.
  27.  
  28. 5.2.  Interviews Interface Builder
  29. _ _   __________ _________ _______
  30.  
  31. +    It   is    available    via    anonymous    ftp    from
  32.      interviews.stanford.edu
  33.  
  34. +    Interactive Interface building tool which  creates  C++
  35.      code  which  can  be compiled with other Libraries sup-
  36.      plied with Interviews.
  37.  
  38. 5.3.  FIELD C++/C/Pascal Development Environment
  39. _ _   _____ _   _ ______ ___________ ___________
  40.  
  41. +    It is available from Brown University. Instructions for
  42.      "semi-anonymous"  ftp  can be obtained by sending name,
  43.      business   address,   phone   and   fax    number    to
  44.      brusd@cs.brown.edu.   Alternatively,  a  request may be
  45.      faxed to Kathleen Kirman at (401)863-7657.
  46.  
  47. +    FIELD programming environment  provides  an   extensive
  48.      set  of  tools  for  programming  in C++, C and Pascal.
  49.      FIELD uses the tools of the Brown Workstation  Environ-
  50.      ment (BWE), which in turn runs on top of X11.
  51.  
  52.      Various utility tools  provided  by  FIELD  programming
  53.      environment includes the following:
  54.  
  55.      -    C++ class browser (cbrowse).  This is more  power-
  56.           full  when  compared  to iclass provided by Inter-
  57.           Views.  It offers graphical  as  well  as  textual
  58.           output.   The  drawbacks  are that it is much more
  59.           slower than  iclass,  and  it  needs  a  lot  more
  60.           memory.
  61.  
  62.      -    debugger. The debugger in this environment runs on
  63.           top  of dbx or gdb.  It supports both GNU and AT&T
  64.           compilers.
  65.  
  66.      For more information, refer to the following papers
  67.  
  68.      1.   Steven P. Reiss, "Connecting Tools  using  Message
  69.           Passing  in the FIELD Program Development Environ-
  70.           ment", IEEE Software, July 1990, pp 57-67.
  71.  
  72.      2.   Steven  P.  Reiss,  "Interacting  with  the  FIELD
  73.           Environment",  Software:  Practice and Experience,
  74.           20:S1, June 1990, pp. 89-115.
  75.  
  76.      3.   Steven P. Reiss and Scott Meyers,  "FIELD  Support
  77.           for C++", USENIX C++ Conference Proceedings, April
  78.           1990, pp. 293-299.
  79.  
  80. +    Information provided by Scott Meyers (sdm@cs.brown.edu)
  81.  
  82. 5.4.  MTS (Memory Tuning System)
  83. _ _   ___  ______ ______ ______
  84.  
  85. +    Platform: Unknown
  86.  
  87. +    Commercial product marketed by :
  88.      NewCode Technology Incorporated
  89.      200 Boston Avenue
  90.      Medford, MA 02155
  91.  
  92.      Tel: (617) 396-3009
  93.      Fax: (617) 395-9452
  94.  
  95. +    MTS includes a malloc interface that  guarantees  quick
  96.      installation.  Its  use does not require any reprogram-
  97.      ming.  It includes a report facility that  details  the
  98.      different  types  and sizes of a programs memory usage.
  99.      Using the report, MTS can be tuned for a  typical  pro-
  100.      gram run.  For object oriented programs, this mechanism
  101.      provides a memory management scheme for each  class  of
  102.      object in use.  Using MTS, the developer is relieved of
  103.      the need to write  specific  code  to  optimize  memory
  104.      access.
  105.  
  106.      NewCode's MTS employs a hierarchy of memory  management
  107.      schemes  that  are designed to fulfill the dual purpose
  108.      of minimizing paging activity while providing very fast
  109.      allocation  and  reuse  of  many  small and medium size
  110.      objects.  As an in memory allocator, MTS  is  typically
  111.      three  times  as  fast  as the standard malloc package.
  112.      More importantly, its contribution to minimizing paging
  113.      overhead  can  lead to dramatic improvements in overall
  114.      program performance.
  115.  
  116. +    Information    provided    by:    Ze'ev    Mehler     (
  117.      zeev%cybvax0@uunet.uu.net )
  118.  
  119. 5.5.  Cback
  120. _ _   _____
  121.  
  122. +    Platform:  Works with the Cfront  output.  Tested  with
  123.      SUN3, SPARC, RS6000, DEC RISC, Interactive Unix and SCO
  124.      Unix/Xenix on 386/486.
  125.  
  126. +    Commercial product marketed by :
  127.      NewCode Technology Incorporated
  128.      200 Boston Avenue
  129.      Medford, MA 02155
  130.      Tel: (617) 396-3009
  131.      Fax: (617) 395-9452
  132.  
  133. +    cback is a companion product to cfront based C++ trans-
  134.      lators.   It processes cfront C output and creates easy
  135.      to read, smaller, faster and portable C code.
  136.  
  137. +    Information    provided    by:    Ze'ev    Mehler     (
  138.      zeev%cybvax0@uunet.uu.net )
  139.  
  140. 5.5.1.  Introduction
  141. _ _ _   ____________
  142.  
  143.      cback is a fast, rule driven, C to C translator that in
  144. addition to producing C code that is easy to read and under-
  145. stand,  CAREFULLY  eliminates   unreferenced   declarations,
  146. unreferenced static functions, redundant assignments to vptr
  147. and performs many other cfront specific cleanups.   Each  of
  148. cback's  rules  can be turned on or off to suit a variety of
  149. different needs.
  150.  
  151. cback does a thorough job of  simplifying  cfront's  compli-
  152. cated  statements and expressions.  Even complex cfront out-
  153. put that your local C compiler might  reject,  will  compile
  154. without  fault.  cback's  output  is  maintainable  and will
  155. readily cross compile to systems that currently do not  sup-
  156. port C++.  cback typically eliminates 70% of cfront's C code
  157. output.
  158.  
  159. While debugging, cback will shrink the  overall  size  of  a
  160. typical  application  by  40%.  Thus during development your
  161. binary files as well as link and debugger load times will be
  162. substantially smaller and faster. When compiling with optim-
  163. ization, cback can also produce significant code size reduc-
  164. tions.
  165.  
  166. cback will fit seamlessly into your compiling and  debugging
  167. environment. Our supplied shell script will call both cfront
  168. and cback and will work with your current  make  files.   In
  169. addition,  cback  will recreate appropriate line numbers and
  170. for Sun's cfront it will filter  .stab  statements  for  use
  171. with dbx.
  172.  
  173. 5.5.2.  Netcomments
  174. _ _ _   ___________
  175.  
  176.         From: Dale Lutz (dal@mdavcr.mda.ca) on comp.lang.c++
  177.  
  178.         We used cback on a rather large development (300,000 lines of C++) and
  179.         found it to be extremely worthwhile.  On the average, the size of
  180.         executables and object files after using cback was one half the
  181.         pre-cback size.  Link times were also about 1/2 what they were before.
  182.         Of course, your mileage may vary.  In our case, you can guess it didn't
  183.         take too long to repay our original investment.
  184.  
  185.         We were using SUN C++ 2.0 on SUN SPARCStations.
  186.  
  187.         Dale
  188.  
  189.         (Not an MDA spokesman, and not affliated with the cback maker in any way.
  190.         Its just a great product I want other people to know about).
  191.  
  192. 5.6.  Purify
  193. _ _   ______
  194.  
  195. +    Platform:  SPARC
  196.  
  197. +    Commercial product marketed by :
  198.      Pure Software
  199.      1309 S. Mary Avenue
  200.      Sunnyvale, CA 94087
  201.      Phone: (408) 720-1600
  202.      e-mail: info@pure.com
  203.  
  204. +    Price is $2750 for a floating license, volume  discount
  205.      available.  Free  two-week  trial evaluation of Purify,
  206.      which can be arranged through email.
  207.  
  208. +    Purify enables C and C++  developers  to  produce  more
  209.      reliable  software  by  detecting  and  pinpointing the
  210.      leading cause of  unexpected  system  failures-run-time
  211.      errors,  both memory access errors and memory leaks. It
  212.      makes error detection and  correction  easier,  faster,
  213.      and  more  comprehensive.  Purify performs instruction-
  214.      level checking on all of  the  code,  including  third-
  215.      party  libraries, while imposing minimal run-time over-
  216.      head, so it is practical to use on large  applications.
  217.      By    preventing    memory   leaks,   Purify   improves
  218.  
  219.      performance, particularly for longer  running  applica-
  220.      tions.
  221.  
  222.      Purify's run-time error detection is particularly valu-
  223.      able  to  C++  developers,  as these programs typically
  224.      make extensive  and  complex  use  of  dynamic  memory.
  225.      Purify  was  reviewed  in  the  September issue of IEEE
  226.      Software and was also chosen for an Outstanding Product
  227.      Award by Unix Review (December 1992).
  228.  
  229. +    Information provided by: Barbara Kay ( bkay@pure.com )
  230.  
  231. 5.7.  Sniff
  232. _ _   _____
  233.  
  234. +    Written by:
  235.  
  236.      Walter R. Bischofberger
  237.      UBILAB (UBS Informatics Laboratory)
  238.      Union Bank of Switzerland
  239.      Bahnhofstrasse 45
  240.      CH-8021 Zurich/Switzerland
  241.      Phone: (0041) 01 236 31 83 (direct)
  242.      Fax: (0041) 01 236 46 71 (direct)
  243.      Email: bischi@ZH010.ubs.ubs.arcom.ch
  244.  
  245.      may be ftp'ed from
  246.  
  247.      iamsun.unibe.ch (130.92.64.10)
  248.      /pub/Sniff1.6 or C++/Sniff1.6 directory
  249.  
  250.      self.stanford.edu (36.22.0.201 or 36.22.0.41)
  251.      /pub/sniff directory
  252.  
  253.      takeFive Software is expected to market  this  software
  254.      in  near  future  (this  may  be the last public domain
  255.      release of Sniff). If you do not have ftp access,  send
  256.      $80 to
  257.  
  258.      takeFive Software GesmbH
  259.      Jakob-Haringer-Str. 8
  260.      5020 Salzburg
  261.      Austria
  262.  
  263.      Tel. 0043 662 45 79 15
  264.      Fax. 0043 662 45 79 15 6
  265.      email: info@takeFive.co.at
  266.  
  267.      They will send you a quarter inch tape (other media  on
  268.      request)  and  the  printed  documentation. For $20 you
  269.      will get the printed documentation only.
  270.  
  271. +    The newest public domain release (1.6) runs on  SPARCs-
  272.      tations  only.  It  requires OS 4.1.2 (it is not tested
  273.      under 4.1.1) and it runs under  Open  Windows  and  X11
  274.      (olwm,  mwm,  and twm window managers) as well as under
  275.      SunView.
  276.  
  277. +    Sniff is  a  C++/C  programming  environment  providing
  278.      browsing,  cross-  referencing,  design  visualization,
  279.      documentation, and editing support. It delegates compi-
  280.      lation  and  debugging to any C++ compiler and debugger
  281.      of choice.
  282.  
  283.      The main goal in developing  Sniff  was  to  create  an
  284.      efficient  portable  C++  programming environment which
  285.      makes it possible to edit  and  browse  large  software
  286.      systems  textually  and  graphically. Much emphasis was
  287.      laid on runtime and memory efficiency and on a comfort-
  288.      able user interface.
  289.  
  290. +    Information  provided  by   Walter   R.   Bischofberger
  291.      (bischi@ZH010.ubs.ubs.arcom.ch)
  292.  
  293.      Most of the information given below is written  by  the
  294. author and is copied from a README file from Sniff distribu-
  295. tion.
  296.  
  297. 5.7.1.  History and Future
  298. _ _ _   _______ ___ ______
  299.  
  300.      Sniff was developed in the research laboratory  of  the
  301. Union  Bank  of  Switzerland (UBS) where it has been used on
  302. its own development for about one year.
  303.  
  304.      Two public domain beta  releases  of  Sniff  have  been
  305. available  for  some months. These releases were applied for
  306. professional software development at several places.
  307.  
  308.      This is the announcement of release 1.6. Version 1.6 is
  309. the last public domain release. It has lost the beta.
  310.  
  311.      Now that Sniff is almost finished I want to free myself
  312. from  the  time  consuming porting, support, and maintenance
  313. chore. For this reason UBS  cooperates  with  takeFive  -  a
  314. Salzburg based software house - which will produce the first
  315. commercial release of Sniff until  end  of  year.  A  prere-
  316. quisite  for  this  cooperation  is  that  universities  get
  317. further commercial releases of Sniff  almost  for  free  and
  318. research  laboratories  will  get Sniff at a fraction of the
  319. commercial price.
  320.  
  321. 5.7.2.  Main Tools
  322. _ _ _   ____ _____
  323.  
  324.      A running version of Sniff consists  of  two  operating
  325. system processes, the information extractor and the program-
  326. ming environment itself. The information extractor  can  run
  327. locally  or on any node of a network. Its task is to extract
  328. information about  definitions  and  declarations  from  the
  329. source code.
  330.  
  331.      The programming environment consists  of  a  number  of
  332. tools  which are organized around a kernel consisting of the
  333. symbol table and the project manager. Both the symbol  table
  334. and   the  project  manager  organize  information  in  main
  335. storage, which is used by browsers and editors.
  336.  
  337.      The symbol table manages the information  about  symbol
  338. definitions and declarations and the project manager manages
  339. the information about open projects such as the source files
  340. they consist of and various attributes.
  341.  
  342. 5.7.3.  Information Extraction
  343. _ _ _   ___________ __________
  344.  
  345.      Sniff's information extractor is a  fuzzy  C++  parser.
  346. This  means  that  it  understands enough about C and C++ to
  347. extract the information of interest without having to under-
  348. stand  C++  completely.  This  approach makes it possible to
  349. parse every file only once without  including  header  files
  350. and expanding macros.
  351.  
  352.      Not  expanding  macros  is   somewhat   controversially
  353.  
  354. because  it  could result in a loss of information if macros
  355. are used to change C++ syntax or semantics. Experience shows
  356. that  this  is  no  problem.  Until now no user of Sniff has
  357. informed us about macro expansion  problems.  Not  expanding
  358. macros  means  that  the  symbolic  information  corresponds
  359. exactly to the locally visible source  code.  This  is  fre-
  360. quently  an  advantage, for example, when macros are used to
  361. put unique prefixes in front of all class names.
  362.  
  363.      Sniff's  information  extractor  extracts   information
  364. about  declarations and definitions of C++ language elements
  365. and macros. It does not extract information about the  usage
  366. of symbols. This information is extracted on the fly.
  367.  
  368. 5.7.4.  Information Updating
  369. _ _ _   ___________ ________
  370.  
  371.      If the source code of a project is edited the  informa-
  372. tion  about  the location of the affected symbols is updated
  373. immediately. On saving a file its  symbolic  information  is
  374. extracted  anew  and all browsing tools are updated. A user,
  375. therefore, works always with symbol based  tools  presenting
  376. him  information  that  correctly  mirrors  the  source code
  377. without ever having to  bother  about  the  effects  of  his
  378. changes.
  379.  
  380.      Sniff can not know when a source file was changed  with
  381. another  tool  while its symbolic information was loaded. In
  382. this case the developer has to tell Sniff to update its sym-
  383. bol table.
  384.  
  385. 5.7.5.  Project Concept
  386. _ _ _   _______ _______
  387.  To start working with Sniff a developer  has  to  define  a
  388. project. I.e., the source files it contains and eventually a
  389. set of subprojects which can be  shared  among  projects.  A
  390. subproject is a complete project on its own.
  391.  
  392.      A typical project structure for a program building on a
  393. class  library is to have a root project containing the pro-
  394. ject specific source files an to load the library project as
  395. subproject.  Library  projects  are frequently trees of pro-
  396. jects themselves.
  397.  
  398.      Whenever a project is opened or when a file or  a  sub-
  399. project  is  loaded into the current project its source code
  400. is analyzed and the information about  the  symbols  defined
  401. therein is stored in Sniff's symbol table.
  402.  
  403. 5.7.6.  Browsers and Editors
  404. _ _ _   ________ ___ _______
  405.  
  406.      Once a new project is defined with the  Project  Editor
  407. or  an  existing  project  is  opened  it can be browsed and
  408. edited in different ways.
  409.  
  410. +    The Symbol Browser can be  used  to  gain  an  overview
  411.      about  which  symbols are defined in the source code or
  412.      it displays the results  of  queries  sent  from  other
  413.      tools  such  as which symbols exist, the names of which
  414.      match "X".
  415.  
  416. +    The Class Browser can be used  to  browse  through  the
  417.      locally defined and inherited members of a class.
  418.  
  419. +    The Hierarchy Browser can be used to display the  class
  420.      graph  and  to  visualize  queries  such  as  "mark all
  421.      classes declaring method X".
  422.  
  423. +    The Retriever can be used to obtain  information  about
  424.      where  a  certain  symbol  is  used  in the source code
  425.      (i.e., cross reference information). The Retriever is a
  426.      text search based tool. It makes it possible to extract
  427.      all occurrences of strings matching the name of a  sym-
  428.      bol  (or  any regular expression) in a set of projects.
  429.      The matches can then be further restricted with  seman-
  430.      tic  filters.  The  Retriever provides therefore a much
  431.      more powerful query facility  than  conventional  cross
  432.      referencing tools.
  433.  
  434. +    Sniff's comfortable mouse driven  WYSIWYG  Editor  pro-
  435.      vides several kinds of browsing support and it automat-
  436.      ically highlights  structurally  important  information
  437.      such as class names, method names, and comments. Once a
  438.      source file was modified it is possible to trigger  its
  439.      compilation  from  the  editor  and  to mark the source
  440.      lines where  the  compiler  found  syntax  errors.  The
  441.      current  version  of  Sniff  does  not provide an emacs
  442.      interface. Because of the flood  of  requests  we  will
  443.      provide emacs support with one of the next versions.
  444.  
  445. 5.7.7.  Efficiency
  446. _ _ _   __________
  447.  
  448.      The loading of a project with  100,000  lines  of  code
  449. takes  on a SPARCstation2 about 20 Seconds. Sniff needs with
  450. 100,000 lines of code loaded between 5 and 8 MB main storage
  451. (depending  on  how  many tools are open). For every further
  452. 100,000 lines of code 3 to 4 MB are needed.
  453.  
  454.      For a project  with  100,000  lines  of  code  Symbolic
  455. queries (e.g., show all classes the names of which contain a
  456. certain string) can be answered in less than a second. Cross
  457. reference  queries based on text search are answered in less
  458. than three second (once Sniff's internal cache  is  loaded).
  459. The  most frequent cross reference queries are even answered
  460. in less than a second.
  461.  
  462. 5.7.8.  Acknowledgements
  463. _ _ _   ________________
  464.  
  465.      My sincere thanks go to the Union Bank  of  Switzerland
  466. that gave me the freedom and founding which made it possible
  467. to develop Sniff and to distribute it in the public domain.
  468.  
  469.      The development of Sniff would not have  been  possible
  470. without  the  ET++  application framework and the support of
  471. its developers Erich Gamma and Andre Weinand.
  472.  
  473.      A good user interface has to grow.  Thanks  to  all  my
  474. colleagues  who  have  been  working  with Sniff for several
  475. months giving me the feedback I needed.
  476.  
  477. 5.7.9.  References
  478. _ _ _   __________
  479.  
  480.      Sniff is already used for large scale software develop-
  481. ment at several locations. For example:
  482.  
  483.      At UBS a team of twelve  software  developers  switched
  484. within  two  days from their commercially available program-
  485. ming environment to  the  first  public  domain  release  of
  486. Sniff. They are working on a large portfolio management sys-
  487. tem written in C++ which interfaces with a relational  data-
  488. base system.
  489.  
  490.      At MacDonald Dettwiler  and  Associates,  a  commercial
  491. software house, seven developers are using Sniff on software
  492. systems with up to 250,000 lines of source code and they are
  493. happy with Sniff's responsiveness and user interface.
  494.  
  495. 6.  Products
  496. _   ________
  497.  
  498.      This section will discuss various c++ products. It will
  499. also  cover  some of the c++ products which could not be put
  500. into the previous three categories.
  501.  
  502. 6.1.  uC++
  503. _ _   __
  504.  
  505. +    may be ftp'ed from
  506.  
  507.      watmsg.uwaterloo.ca (129.97.141.9)
  508.      pub/uSystem/u++-3.4.4.tar.Z
  509.  
  510. +    uC++ runs on the  following  processors:  M68K  series,
  511.      NS32K series, VAX, MIPS, Intel 386, Sparc, and the fol-
  512.      lowing UNIX operating systems:
  513.  
  514.      -    generic BSD 4.3
  515.  
  516.      -    Sun OS 4.x
  517.  
  518.      -    Tahoe BSD 4.3
  519.  
  520.      -    Ultrix 3.x/4.x
  521.  
  522.      -    DYNIX
  523.  
  524.      uC++ requires at least GNU C++ 2.2.  uC++ will NOT com-
  525.      pile  using other compilers. To run multiprocessor on a
  526.      Sequent GNU C++ must  use  the  Sequent  assembler  and
  527.      loader.
  528.  
  529. +    Augments C++ to allow  control  flow  for  light-weight
  530.      concurrency  on  uniprocessor  and  multiprocessing  on
  531.      parallel processor.
  532.  
  533. +    Information    provided    by    Rick     Stroobosscher
  534.      (rastroob@plg.uwaterloo.ca)
  535.  
  536.      Most of the information given below is written  by  the
  537.  
  538. author  and  most of it is copied verbatim from a posting in
  539. comp.lang.c++.
  540.  
  541. 6.1.1.  Introduction
  542. _ _ _   ____________
  543.  
  544.      We are pleased to announce, to any interested  parties,
  545. the  availability  of  Version  3.4.4  of  uC++  (pronounced
  546. micro-C++).  uC++ extends the C++  programming  language  in
  547. somewhat  the  same  way  that C++ extends the C programming
  548. language.  The extensions introduce new objects that augment
  549. the  existing set of control flow facilities and provide for
  550. light-weight concurrency on uniprocessor and parallel execu-
  551. tion  on multiprocessor computers running the UNIX operating
  552. system.  uC++ is not another thread package built on top  of
  553. C++,  but  a  comprehensive  set of language extensions that
  554. integrate the notions of  coroutine,  mutual  exclusion  and
  555. concurrent execution into the language.
  556.  
  557. 6.1.2.  Features
  558. _ _ _   ________
  559.  
  560. 1.   The uC++ translator may fail when given very bad syntax
  561.      errors.   The error recovery facilities of the transla-
  562.      tor will be updated in version 4.  Also, the translator
  563.      is  vulnerable  to programs that use the same names for
  564.      types and routines.  Beware of this vulnerability.   It
  565.      may show up in very subtle errors.
  566.  
  567. 2.   The "inline" version of the runtime environment is  not
  568.      working  in this release, so that performance is signi-
  569.      ficantly slower than it can be. When the "inline"  ver-
  570.      sion  is  working,  performance  is  comparable  to any
  571.      light- weight tasking system.
  572.  
  573. 3.   The only  multiprocessor  computer  supported  in  this
  574.      release   is   the  Sequent  Symmetry.  Ports  to  more
  575.      vendor/machines will appear shortly.
  576.  
  577. 6.1.3.  Requirements to run uC++
  578. _ _ _   ____________ __ ___ __
  579.  
  580.      uC++ requires at least version 3.8 of dmake,  which  is
  581. available  by  anonymous  ftp  from  the  following location
  582. (remember to set your ftp mode to binary):
  583.  
  584.      watmsg.uwaterloo.ca                      (129.97.141.9)
  585. pub/dmake/dmake38.tar.Z
  586.  
  587.      Execute the following command to unpack the source:
  588.  
  589.      % zcat dmake38.tar.Z | tar -xf -
  590.  
  591.      To  build   dmake,   edit   the   variables   in   file
  592. ./1/startup.h.   The  variable  MAKESTARTUP must specify the
  593. location of the startup.mk  file,  which  contains  all  the
  594. implicit  recipes.   This file is placed at the top level of
  595. the source directory after dmake is built.  If dmake is  not
  596. being  installed in a public location, set the value of MAK-
  597. ESTARTUP to dmake-source-path/startup.mk.  After setting the
  598. MAKESTARTUP  variable, execute the command make in directory
  599. dmake to determine what  configurations  are  available.   A
  600. list of possible configurations will be printed.  Once dmake
  601. is built, add the executable to your command path.
  602.  
  603.      The  current  version  of  uC++  can  be  obtained   by
  604. anonymous  ftp  from the following location (remember to set
  605. your ftp mode to binary):
  606.  
  607.      watmsg.uwaterloo.ca  (129.97.141.9)    pub/uSystem/u++-
  608. 3.4.4.tar.Z
  609.  
  610.      Execute the following command to unpack the source:
  611.  
  612.      % zcat u++-3.4.4.tar.Z | tar -xf -
  613.  
  614.      To build uC++, edit the variables in  file  ./Makefile.
  615. The  variable  ROOT must specify the current location of the
  616. uC++ source (the path to the  directory  that  contains  the
  617. source).   The  variable BINDIR specifies the location where
  618. the u++ executable and other executables needed for compila-
  619. tion are placed.  The LIBDIR variable specifies the location
  620. for the u++ runtime libraries.  Both BINDIR and LIBDIR  have
  621. default  values.   After setting at least the ROOT variable,
  622. execute the command dmake in  this  directory  to  determine
  623. what  configurations are available.  A list of possible con-
  624. figurations will be printed.
  625.  
  626.      After installation is complete, there will be a  number
  627. of  executables  created  in  the BINDIR location.  Add this
  628. directory to your command path  to  access  the  compilation
  629. command  u++,  or move the u++ executable itself to a direc-
  630. tory in your command path.  Do not move  the  other  execut-
  631. ables in BINDIR, as the u++ executable references these exe-
  632. cutables and the runtime library via hard coded  path  names
  633. set at installation time.
  634.  
  635.      A postscript version of the uC++  reference  manual  is
  636. available  in  the  same  ftp  directory as u++-3.4.4.tar.Z,
  637. called u++-3.4.4.ps.  It contains a copy of the  uC++  docu-
  638. mentation  that  has  been formatted for 8.5x11 paper.  This
  639. file has been made available because some  people  have  had
  640. problems LaTeXing the documentation that comes with the uC++
  641. distribution.  Normally, it is unnecessary to retrieve  this
  642. file  as  uC++ comes with the latex source for the reference
  643. manual.
  644.  
  645. 6.1.4.  References
  646. _ _ _   __________
  647.  
  648.      There is a Software-Practice and Experience paper about
  649. uC++  Version  2.0  in  the Feb 1992 issue. Note, there have
  650. been many changes from version 2 to 3,  and  there  will  be
  651. more changes from version 3 to 4.
  652.  
  653.      uC++ is being used daily  to  build  highly  concurrent
  654. access  methods  for  persistent file structures (databases)
  655. here at Waterloo.
  656.  
  657. 6.1.5.  Future Enhancements
  658. _ _ _   ______ ____________
  659.  
  660.      What's coming in uC++ Version 4:
  661.  
  662. -    inline version of kernel
  663.  
  664. -    visualization of concurrent execution
  665.  
  666. -    multiprocessor ports to SGI, Encore
  667.  
  668. -    uWait and uSignal as members of uCondition
  669.  
  670. -    port to IBM 6000
  671.  
  672. -    task priorities
  673.  
  674. -    exception handling
  675.  
  676. -    improve translator, make more robust
  677.  
  678. -    time out on I/O calls
  679.  
  680.      We hope to have some of this done by  the  end  of  the
  681. year.
  682.