Return-Path: smlieu Return-Path: Received: by cygnus.com (4.1/SMI-4.1) id AA21928; Thu, 21 Apr 94 18:02:31 PDT Date: Thu, 21 Apr 94 18:02:31 PDT From: smlieu (Sun Ming Lieu) Message-Id: <9404220102.AA21928@cygnus.com> To: engnews-distrib Subject: Inside Cygnus Engineering - Vol 3 #4 ------------------------------------------------------------------------- Vol 3 No 4 INSIDE CYGNUS ENGINEERING April 1994 ------------------------------------------------------------------------- Inside Cygnus Engineering (ICE) is published monthly for customers of Cygnus Support. Our objective is to provide a relevant but informal summary of news and ongoing activities. Please send all comments, suggestions, and subscription requests to engnews@cygnus.com. TABLE OF CONTENTS ----------------- . DejaGNU 1.2 . New Virtual Table Optimizations in G++ . Rogue Wave Support . GDB Update . 94Q1 Shipments . Rebuilding Progressive Releases from Source . Software Maintenance Status . Announcing the Cygnus Support World-Wide Web Server PRODUCTS AND RELEASES --------------------- 1. DejaGNU 1.2 We have just made a new release of DejaGNU, version 1.2 to the Net. This is the version that has been used extensively for our inhouse testing for the 94Q1 Progressive Release. Changes from version 1.1.1 include the following. - Better error trapping and handling, including the execution of sub scripts. - Default handling of testing unknown targets. - New testsuite for Expect and runtest. - More debugging procedures for the user. - Re-worked configuration subsystem. - Support for Tcl 7.3 and Expect 5.7 (which are included). This release was tested on the following platforms, but should run on most any other Unix systems. - alpha-dec-osf1.3 - hppa1.1-hp-hpux (hp700) - i486-lgx-linux0.99.13 (Linux) - i486-unknown-sysv4.2 (UnixWare) - i486-bsdi-bsd (BSDI) - i486-unknown-bsd (386BSD) - i486-lynx-lynxos2.2.2 - m68k-sun-sunos4.1.1 (sun3) - m68k-hp-hpux (hp300) - mips-dec-ultrix4.2 (decstation) - mips-sgi-irix4.0.5H (sgi) - rs6000-ibm-aix3.2 (rs600/AIX) - sparc-sun-solaris2.3 - sparc-sun-sunos4.1.3 (sun4) DejaGNU 1.2 is available on the standard GNU ftp sites. It is in gzipped tar format, and is called "dejagnu-1.2.tar.gz". Gzip is available from the same ftp sites. To report bugs in DejaGNU, send mail to bug-dejagnu@prep.ai.mit.edu. There is a TODO list in the distribution if you wish to contribute tests for unsupported tools or targets. NEW AND ONGOING DEVELOPMENTS ---------------------------- 1. New Virtual Table Optimizations in G++ We have implemented two new optimizations for virtual function tables in G++. The vtable building and management code has also been substantially restructured to fix all known bugs (from the Net as well as from Cygnus customers) and improve maintainability. The first optimization is that each entry in a virtual function table now contains just a function pointer, instead of a function pointer plus an integer. The integer was needed in some cases of multiple inheritance to adjust the `this' pointer. In the new implementation, we use a `thunk function' to perform this adjustment. (See Ellis & Stroustrup, The Annotated C++ Reference Manual, pages 230-231). This change usually makes programs smaller and run faster. In addition, you only pay for the overhead of multiple inheritance when you actually use it. The other change is in the timing of when virtual function tables and inline functions are emitted. G++ has always had #pragma interface and #pragma implementation to control the writing of vtables to reduce duplicate space usage. The effect of the second optimization is equivalent to automatically using #pragma interface/implementation on a per-class basis. The compiler checks to see if there are non-inline virtual methods. If the first such method is defined, it writes the vtable (and inlines); otherwise, it assumes some other compilation unit has written it, so it does not have to write the vtable again. Using the old #pragmas will still be useful, but this change will reduce the penalty when you don't use these #pragmas. The new virtual table code will be included as part of the 94Q2 release at the end of June. Since neither optimization is binary-compatible with previous releases, they are not included as the default behaviour of the compiler for the Q2. To use these optimizations, you will have to compile with the -fvtable-thunks flag. This flag will become the default in a future release. 2. Rogue Wave Support We have just completed testing of the Rogue Wave library (v. 6.0.4) with the 94Q1 Progressive Release of G++ (*). There are two bugs that prevent the library from building with the 94Q1 release as shipped: 1. The header file munger does not take into account the fact that wchar_t is a distinct type in C++, and 2. calling constructors for const return values is flagged as an error. We now have patches for both of these bugs. After applying them, the library and examples both build cleanly. One of the test cases in tmpltest fails due to what we believe to be a bug in Rogue Wave's software. All the other test cases succeed. If you would like to obtain these patches, please contact us at jason@cygnus.com. (*) Note that the library was built with -g or -O2, the testcases with -O2, on a Sparc running SunOS 4.1.3. 3. GDB Update Progress continues on the graphical user interface (GUI) for GDB project. We have been prototyping the interface using multiple windows within Emacs 19. Our current plans call for releasing a version of this prototype with the GDB 4.13 release in the summer. We expect to support X-windows (without Emacs) later in the year, and are looking into a port to MS Windows thereafter. SUPPORT ACTIVITIES ------------------- In addition to new development, a significant part of our engineering resources is devoted to answering questions, fixing problems in the GNU software, and providing a range of support services to our customers. 1. 94Q1 Shipments We have now completed most of the quarterly update shipments for the 94Q1 Progressive Release. It has since come to our attention that about half a dozen quarter inch cartridge tapes have been inadvertently written on a QIC-150 drive instead of a QIC-24 drive. If you have trouble reading your tape on a QIC-24 drive, please send us mail at production@cygnus.com so that we can send you a tape (tapes) of the correct format. We apologize for the inconvenience. 2. Rebuilding Progressive Releases from Source Starting with the 94Q1 Progressive Release, you must set the environment variable `CC' if you do not use the system compiler to rebuild the binaries. This must be done before running configure, or else the build may fail. 3. Software maintenance status The following table shows the maintenance statistics for the last five weeks. We continue to need your help: please let us know when you agree that a problem has been fixed so that we can move it from a "feedback" state to a "closed" state. # # # # # # Date Open Analzd Fdback Closed Suspnd Total ------------------------------------------------------------ 03/28/94 463 282 816 2,870 151 4,582 04/18/94 393 310 872 2,951 158 4,684 ------------------------------------------------------------ Change -70 +28 +56 +81 +7 +102 OTHER ITEMS ----------- 1. Announcing the Cygnus Support World-Wide Web Server You can now access the Cygnus Support Information Gallery at http://www.cygnus.com/ For people who are not familiar with World-Wide Web (WWW), it is an Internet-wide hypermedia project that was begun at CERN, the European Laboratory for Particle Physics. Information providers set up hypermedia servers from which documents can be obtained by special browser programs. Typical browsers include chimera and mosaic. Information about chimera can be obtained from ftp.cs.unlv.edu:~ftp/pub/chimera. For more information about Mosaic, ftp zaphod.ncsa.uiuc.edu and change directory into /Web. The Cygnus WWW server contains, among other things: - online documentation for many GNU tools - information on Sourceware support from Cygnus - latest editions of the Free Software Report and Inside Cygnus Engineering - information about Cygnus Network Security, based on MIT Kerberos - favourite Cygnus pets in the `Cygnus Animal Preserve' Please try it out and let us know what you like/dislike, and what else you would like us to include. --------------------------------------------------------------------- Cygnus Support 1937 Landings Drive One Kendall Square Mountain View, CA 94043 Cambridge, MA 02139 +1 415 903 1400 voice +1 617 494 1040 voice +1 415 903 0122 fax +1 617 494 1325 fax ---------------------------------------------------------------------