home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!mcsun!sun4nl!cwi.nl!dik
- From: dik@cwi.nl (Dik T. Winter)
- Newsgroups: comp.unix.cray
- Subject: Re: Storage of Fortran character strings on Cray
- Message-ID: <8410@charon.cwi.nl>
- Date: 19 Dec 92 01:11:40 GMT
- References: <MRL.92Dec16094950@sun4.uai.com> <1992Dec17.164818.2198@craycos.com>
- Sender: news@cwi.nl
- Organization: CWI, Amsterdam
- Lines: 24
-
- In article <1992Dec17.164818.2198@craycos.com> jrbd@craycos.com (James Davies) writes:
- >Character variables are passed by descriptor. The descriptor contains
- >the address of the first word, the starting offset in that word,
- >and the length of the variable in bytes, all packed into a 64-bit word.
- >The format of the descriptors varies by model, but the Cray-2 and 3 have
- >the starting bit offset in the upper 6 bits of the word, the length in the
- >next 26 bits, and the word address in the lower 32 bits. C character pointers
- >have the same format, except that the length field isn't used.
- >
- Right. Which makes me wonder. Could you publish a list of standard Unix
- programs that were broken and revealed such by this particular character
- pointer implementation? (Like /bin/sh which is really awful.) It ought
- to be more common knowledge that:
- 1. type1 pointers have not necessarily the same format as type2 pointers,
- and:
- 2. the low order bit(s) of a word aligned pointer can not be freely used as
- a marker.
- (On the other hand, one of the Cray C compilers had a bug where in some
- cases the upper bits of a char pointer were cleared when it was passed as
- a parameter, so apparently Cray did not know this all at that time
- either :-).)
- --
- dik t. winter, cwi, kruislaan 413, 1098 sj amsterdam, nederland
- home: bovenover 215, 1025 jn amsterdam, nederland; e-mail: dik@cwi.nl
-