[comp.arch] Unaligned data and old FORTRAN

jjb@sequent.UUCP (Jeff Berkowitz) (04/07/89)

The now-defunct Culler machine was originally going to "just do the
wrong thing" on unaligned accesses.  Fairly late in design, logic
was added to trap on unaligned accesses.  As I recall, one of the
arguments for adding that logic was that it was difficult
(impossible?) to achieve F77 validation on a machine which "just
did the wrong thing".  Can anyone comment on this?  Does the F77
validation suite actually force oddly aligned access and expect
them to work?  Is there a qualified F77 for the RT PC?
-- 
Jeff Berkowitz N6QOM			{sun,uunet}!sequent!jjb
Sequent Computer Systems		Custom Systems Group
15450 SW Koll Pkwy			Home (503)629-0806
Beaverton OR 97006			Work (503)526-4148

khb@fatcity.Sun.COM (fatcity) (04/08/89)

In article <13998@sequent.UUCP> jjb@sequent.UUCP (Jeff Berkowitz) writes:
>The now-defunct Culler machine was originally going to "just do the
>wrong thing" on unaligned accesses.  Fairly late in design, logic
>was added to trap on unaligned accesses.  As I recall, one of the
>arguments for adding that logic was that it was difficult
>(impossible?) to achieve F77 validation on a machine which "just
>did the wrong thing".  Can anyone comment on this?  Does the F77
>validation suite actually force oddly aligned access and expect
>them to work?  Is there a qualified F77 for the RT PC?
>-- 

There is no x3j3 equivalent of Ada validation. There are suites which
purport to validate a compiler, but they have no x3j3, ansi, or iso
standing. 


Keith H. Bierman
It's Not My Fault ---- I Voted for Bill & Opus

sjc@key.COM (Steve Correll) (04/08/89)

In article <13998@sequent.UUCP>, jjb@sequent.UUCP (Jeff Berkowitz) writes:
> Does the F77 validation suite actually force oddly aligned access and expect
> them to work?  Is there a qualified F77 for the RT PC?

The copy of the US Government validation suite which I have does not require
misaligned access, but it could legally do so. Consider the following program:

     common /x/ i, d, j
     integer i, j, ia(4)
     doubleprecision d
     equivalence (ia(1), i), (ia(4), j)
     ... 
     end

Fortunately for current RISCs, the only legal kind of misalignment in Fortran
77 puts a doubleword on a singleword boundary, and processors with 32-bit
busses tend not to notice that. From what I've seen so far, Fortran 8X does not
change this.

(Three rules in the 77 standard prevent other kinds of misalignment:
   1. There are only three "sizes" of data: character, integer/logical/real,
     and doubleprecision/complex.
   2. An equivalence or common block may not mix character data with
     non-character data.
   3. Doubleprecision/complex must be twice the size of integer/logical/real.)

In practice, of course, Fortran programs from CISC machines pose additional
kinds of misalignment--e.g. a doubleword on a halfword boundary--but these all
involve either extensions to or violations of the standard.
-- 
...{sun,pyramid}!pacbell!key!sjc 				Steve Correll

guy@auspex.auspex.com (Guy Harris) (04/09/89)

>Fortunately for current RISCs, the only legal kind of misalignment in Fortran
>77 puts a doubleword on a singleword boundary, and processors with 32-bit
>busses tend not to notice that.

SPARC notices it, though.  (Was this put into the architecture for the
benefit of potential future implementations with 64-bit buses?)

henry@utzoo.uucp (Henry Spencer) (04/09/89)

In article <98036@sun.Eng.Sun.COM> khb@sun.UUCP (fatcity) writes:
>There is no x3j3 equivalent of Ada validation. There are suites which
>purport to validate a compiler, but they have no x3j3, ansi, or iso
>standing. 

One reason for this, incidentally, is that standards committees have to
tread lightly to avoid problems with anti-trust laws.  Saying that one
manufacturer's compiler conforms and another doesn't leaves the committee
open to charges of bias, especially if the non-conforming compiler comes
from an outfit that was not represented on the committee.

The US government is another story, which is why Ada validation exists.
There are also government validation suites for COBOL, and I think for
FORTRAN.  They don't have the same magic status ("*the* validation suite
for the language"), since the government does not set the standards for
said languages.
-- 
Welcome to Mars!  Your         |     Henry Spencer at U of Toronto Zoology
passport and visa, comrade?    | uunet!attcan!utzoo!henry henry@zoo.toronto.edu

henry@utzoo.uucp (Henry Spencer) (04/09/89)

In article <1405@auspex.auspex.com> guy@auspex.auspex.com (Guy Harris) writes:
>>Fortunately for current RISCs, the only legal kind of misalignment in Fortran
>>77 puts a doubleword on a singleword boundary, and processors with 32-bit
>>busses tend not to notice that.
>
>SPARC notices it, though.  (Was this put into the architecture for the
>benefit of potential future implementations with 64-bit buses?)

Possibly, but it has the more immediate benefit that a 64-bit operand
(like smaller ones) cannot straddle a page boundary.
-- 
Welcome to Mars!  Your         |     Henry Spencer at U of Toronto Zoology
passport and visa, comrade?    | uunet!attcan!utzoo!henry henry@zoo.toronto.edu

sjc@key.COM (Steve Correll) (04/09/89)

In article <98036@sun.Eng.Sun.COM>, khb@fatcity.Sun.COM (fatcity) writes:

Jeff Berkowitz writes:
> Does the F77 validation suite actually force oddly aligned access...?

Keith H. Bierman writes:
> There is no x3j3 equivalent of Ada validation. There are suites which
> purport to validate a compiler, but they have no x3j3, ansi, or iso
> standing. 

Readers who understand Ada validation better than I may compare for themselves:

  In the US Fortran community, "the F77 validation suite" usually means the one
  put out by the US government National Technical Information Service, and
  "validation" usually means paying the National Bureau of Standards (recently
  renamed the National Institute of Standards and Technology for variety's
  sake) to send an official out to test your compiler with that suite and give
  you a certificate. You can call your compiler "Fortran" without doing this,
  but a federal agency (or even a private customer) may require it as a
  condition of sale.

  To complete this brief tour of US government agencies, the General Services
  Administration formerly administered validations, so people refer to the same
  thing as both "the GSA suite" and "the NBS suite".
-- 
...{sun,pyramid}!pacbell!key!sjc 				Steve Correll

bill@hcx2.SSD.HARRIS.COM (04/13/89)

> The US government is another story, which is why Ada validation exists.
> There are also government validation suites for COBOL, and I think for
> FORTRAN.  They don't have the same magic status ("*the* validation suite
> for the language"), since the government does not set the standards for
> said languages.

This isn't quite so.  The FORTRAN Compiler Verification Service (FCVS)
tests and the COBOL Compiler Verification Service (CCVS) tests are
_official_ government validation suites.  You must pass them to sell a
FORTRAN or COBOL compiler to the U.S. Government.  The primary difference
between them and Ada is that the Ada standard was, first, a MIL-STD, not an
ANSI standard, and also it allows so subsetting/supersetting.  A second
difference is that the Ada validation process is much more rigorous than
FCVS or CCVS.  But this is fundamentally just a question of degree, not
substance.

Moreover, the U.S. Government _does_ set the standards for FORTRAN and
COBOL!  The mechanism is the Federal Information Processing Standard
(FIPS).  There is a FIPS for FORTRAN, COBOL, and (I believe) Ada.  Not
coincidentally, they are the same as the corresponding ANSI standards.  The
FIPS is what makes passing the validation tests a pre-requisite to selling
to the U.S. Government (or to almost any government contractor).

eugene@eos.UUCP (Eugene Miya) (04/15/89)

 In article <748@key.COM> sjc@key.COM (Steve Correll) writes:
 >In article <98036@sun.Eng.Sun.COM>, khb@fatcity.Sun.COM (fatcity) writes:
 >
 >Jeff Berkowitz writes:
 >> Does the F77 validation suite actually force oddly aligned access...?
 >
 >Keith H. Bierman writes: (I think Henry wrote this:)
 >> There is no x3j3 equivalent of Ada validation. There are suites which
 >> purport to validate a compiler, but they have no x3j3, ansi, or iso
 >> standing. 
 >
 >Readers who understand Ada validation better than I may compare for themselves:
 >
 >  In the US Fortran community, "the F77 validation suite" usually means the one
 >  put out by the US government National Technical Information Service, and
 >  "validation" usually means paying the National Bureau of Standards (recently
 >  renamed the National Institute of Standards and Technology for variety's
 >  sake) to send an official out to test your compiler with that suite and give
 >  you a certificate. You can call your compiler "Fortran" without doing this,
 >  but a federal agency (or even a private customer) may require it as a
 >  condition of sale.
 >
 >  To complete this brief tour of US government agencies, the General Services
 >  Administration formerly administered validations, so people refer to the same
 >  thing as both "the GSA suite" and "the NBS suite".
 
Experience: tested the Pascal VS [Sale 1978 on] on the Univac 1100 series
compiler, and used the FCVS on both the Cray Y-MP and ETA-10Q.  Am fully
aware of the ACVS, and a few developments which aren't public. I was an
ANSI committee member [not the same as an ANSI member].

Jeff, the FCVS doesn't do anything as sophisiticated as unaligned accesses.
It merely tests for comformance to a standard (ANSI...1978).  The Pascal VS
had a bit more.  ACVS is a considerably more rigourous than either.
There are a few clever things, but nothing as clever as I was once told.

Standards are simply pieces of paper which are gentleman's agreements.
They aren't blueprints.  Standards are typically after the fact documents.
Don't expect every machine and compiler to pass.  These test are not
cut and dry.  They are not strictly all pass-fail.

Another gross generalization from

--eugene miya, NASA Ames Research Center, eugene@aurora.arc.nasa.gov
resident cynic at the Rock of Ages Home for Retired Hackers:
"Mailers?! HA!", "If my mail does not reach you, please accept my apology."
			Live free or die.