Thread View: fa.info-vlsi
1 messages
1 total messages
Started by kelem
Thu, 29 Aug 1985 23:20
Berkeley CAD tools on the Apollos.
Author: kelem
Date: Thu, 29 Aug 1985 23:20
Date: Thu, 29 Aug 1985 23:20
99 lines
5974 bytes
5974 bytes
>To: info-vlsi@sandia-cad.ARPA
>Subject: Magic on Apollo and others?
>Does anybody know of a port of Magic to the Apollo workstation? How about
>ports to other systems and graphics terminals? We like to get in touch with
>people who have done ports.
>--Bob Mayo, for the Magic group
> mayo@ucbkim.BERKELEY.EDU
> mayo@berkeley.ARPA
> ucbvax!mayo
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
We (The Aerospace Corporation's Computer Science Lab) have tried to port
the Berkeley cad tools to the Apollos. Admittedly, not yet to the
newest SR9 pre-release, but to all the releases since SR7.
(SR==Software Release)
We have had lots of problems trying to do the ports:
1. Name changes in /usr/include/stdio.h . Apollo changed names like
_IOREAD to _SIRD, etc. This is somewhat minor, and could be
easily remedied by adding the Unix names to the Apollo stdio.h
file if we knew that there was a one-to-one correspondence between
the Unix names and the Apollo names (there are a few we're not
sure about).
2. Long names are used in many programs developed under BSD4.2, but
cause problems on Apollos. 32 is a magic number at Apollo. The
maximum stack size in the compiler is 32. The maximum variable
name length is 32. The same restriction applies to external
names, and file names. Apollo is experimenting with a fix to the
C compiler to extend the names to something really big (512? just
like on the Vax), but that won't solve the external name length
restriction. Since this is a major rewrite for Apollo's operating
system and software, Apollo says they're not going to worry about
extending the lengths until they do an Ada compiler. They haven't
set a date for that.
3. Apollo sells a CORE graphics package, but because of the name
length restriction and for a consistent naming strategy in Apollo
libraries, they've changed ALL the names in the Siggraph CORE
standard. First, they've prefixed all the routine names with
"CORE_$". Second, they've shorted the Siggraph CORE names so that
each routine name is 32 characters or shorter. Third, the
parameters to the Apollo CORE routines are compatible between C,
Pascal, and FORTRAN, so structures are represented by the highest
common language feature - the array. So instead of referencing
the primitive attribute "font" with "attribute.font" on the Sun
and Vax (with Schlumberger/Fairchild's cgraph package), you have
to do it with "attribute[3]" on the Apollo. Again, porting
Schlumberger/Fairchild's cgraph package is difficult because of
the name length restrictions on the Apollo.
4. Berkeley comes out with new versions pretty often (full releases
twice a year?) and fixes whenever they're discovered. (For cad
tool user, this is a great feature. For someone doing a port,
this is a real problem.)
With these factors to consider, what's the best strategy to getting the
cad tools running on the Apollos?
Getting someone to do the port would be ok, except for the fact that new
versions come pretty quickly, and then a lot of work has to be redone.
Porting means a longer delay before getting the new version/fix running
and manual conversion is a good source of bugs. It's not like porting
to the Suns and Vaxes, where you unload the source files, compile 'em,
and then run (we did this on a demo Sun and it worked). If someone else
does the conversion, then it's pretty difficult for us to find or track
down bugs. (I'm not saying that we want to fix bugs, but having the
source makes it a lot easier to find out where a problem lies before
submitting a bug report to the authors.) The worst part of this strategy
is that if we make improvements, we can't share them with the rest of
the community without doing a LOT of extra work.
The next best thing is to try to write a translator from Siggraph CORE
into Apollo CORE. This could only be done if the original source is
kept, and modifications (not Apollo-specific) are made ONLY to the
original and not the translated copy. But this is also a lot of work.
Not only do the CORE routine names have to be changed (via lookup &
substitution), but CORE structures have to be converted to Apollo arrays
and long variable names have to be shortened to meet the 32-character
restriction. We haven't tried to do this...yet.
The best solution is to try to get Apollo to fix their software. They
claim it's BSD4.2 compatible, but there are still a few things that need
fixing before software will port easily.
We are interested in getting the Berkeley, Schlumberger/Fairchild, and
our own tools running on the Apollos. We are currently working with the
Apollo C compiler and the Apollo Unix efforts as a beta-test site. We
will provide testing support if anyone else has already started the
work. Of course, we would like to see and work with a group effort to
get Apollo to understand the importance of the work.
Steve Kelem
The Aerospace Corporation (a non-profit, Federally Chartered Research Center)
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads