home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.lang.ada
- Path: sparky!uunet!usc!cs.utexas.edu!sun-barr!ames!agate!linus!linus.mitre.org!linus!mbunix!emery
- From: emery@Dr_No.mitre.org (David Emery)
- Subject: Verdix, generics and optimization
- In-Reply-To: mfausett@bbn.com's message of 22 Jul 92 01:25:27 GMT
- Message-ID: <EMERY.92Jul22092751@Dr_No.mitre.org>
- Sender: news@linus.mitre.org (News Service)
- Nntp-Posting-Host: dr_no.mitre.org
- Organization: The Mitre Corp., Bedford, MA.
- References: <2329@nic.cerf.net> <1992Jul17.195605.26215@mksol.dseg.ti.com>
- <mfausett.711768327@kirin>
- Distribution: usa
- Date: Wed, 22 Jul 1992 14:27:51 GMT
- Lines: 38
-
- Verdix' implementation of generics in the "bad old days" was
- particularly fragile. We were burned by this during the IEEE Ada
- Applications and Environments "Ada Programming Contest". We
- made heavy use of generics, and ran into a compiler bug. We ran out
- of time trying to work around the bug and redesign our solution.
-
- In part the problems with generics were due to some weaknesses in the
- ACVC's on generics. I believe that the ACVC's for generics were
- substantially improved based on such experiences.
-
- In Verdix' defense, they have always been out front in terms of
- capabilities for generics. For instance, Verdix did not (does not)
- require that the specification and body of a generic be in the same
- compilation. DEC Ada had that restriction for quite a long time, as
- did other compilers.
-
- This restriction, although strictly legal, has a significant negative
- impact on how you use generics. In some cases, we had programs where,
- because of this rule, most of the program had to be in a single
- compilation, which goes against the whole idea of separate
- compilation. And, I think we came up with a program that could not be
- compiled under this restriction.
-
- Verdix was one of the first compilers to support code sharing for
- generics, too. Again, this has an impact on the user. A 'design
- style' using a lot of instantiations of reusable components can
- quickly run out of memory without code sharing.
-
- In general, I believe that these optimizations (not restricting
- generic specs and bodies in the same compilation, and code sharing)
- are very critical optimizations, in that they have a significant
- impact on the design of a system.
-
- Unfortunately, these are the kinds of optimizations that the normal
- set of PIWG/HARTSTONE/WHETSTONE/DHRYSTONE benchmarks don't capture
- very well.
-
- dave
-