From: Jan Vorbrüggen on
>>Then again, the dominant style in C these days is using quite long
>>variable names, as a form of documentation.
> and people want to be able to call those C routines without having to
> map the names to something else. I didn't define those names. I
> personally think them ludicrous. But they exist, and the Fortran
> standard increased its name length limit to accomodate them.

Of course, part of the problem is C++ and its inability to get proper support
from the linker/loader for overloading of functions and procedure, which leads
to the abominable practice of name mangling. Bah pfui!

> I'll also note that I continue to disagree with the claim that
> readability didn't suffer from the 6-character limit.

Quite so.

Jan
From: Jan Vorbrüggen on
> In the extreme case, suppose N=2, which with 8bit chars allows
> up to ~32000 unique external names. With the F90 liberal rules
> some F90 Fortran program might exceed the system design constraints
> and become impossible to do. :)

A bug was filed against DEC's Fortran compiler - IIRC, it even was the one for
the VAX - because the compiler failed with an internal error on a program
unit. This happened because the compiler uses 16-bit indices into its symbol
table, and this program unit defined more than 65535 names.

Jan
From: glen herrmannsfeldt on
Richard Maine wrote:

> Rostyslaw J. Lewyckyj <urjlew(a)bellsouth.net> wrote:

>>F90 may require 31 character
>>namelength support within the Fortran components. But then the
>>Fortran implementation will require translation contortions
>>to work within the system.

> Yes. And my point was that Fortran implementations do, in fact do the
> necessary translation contortions. I wasn't bothering to go into all the
> details; they probably vary. The observed fact - not just a hypothesis -
> is that the implementations do do this. If you know of any exceptions,
> I'd be curious. They might exist. But I don't know of any.

The OS/360 Linkage Editor allows for eight character external names.
It was only relatively recently replaced by the binder which does allow
long names, as tend to be required by C, C++, and Java.

For PL/I, which allows longer names, in the Linkage Editor days, the
first four and last three characters would be used for external names.

As far as I know, there still is not a Fortran 90 or later compiler
for OS/390, MVS, or z/OS. VS Fortran was and still is the Fortran 77
compiler.

-- glen

From: Richard E Maine on
Rostyslaw J. Lewyckyj <urjlew(a)bellsouth.net> wrote:

> Richard Maine wrote:
[on the subject of Fortran procedure names longer than "naturally"
supported by some systems]
> > To the extent that the code is purely Fortran, the user never notices
> > the issue. To the extent that you expect the Fortran code to be callable
> > from other languages, then yes, you'll need to pay attention. But then,
> > interlanguage calls generally require special attention.
> >
> purely Fortran? But I'd consider that to be rather unrealistic in a
> production environment. Linkers, loaders, libraries etc. are a fact
> of life.

I think we are not communicating here. The linkers, loaders, etc, are
part of the Fortran environment. That's why the Fortran standard (like
most language standards) uses the term "processor" instead of "compiler"
or some such term. "Processor" in standard-speak means everything
necessary to process the Fortran program, including such things as
linkers, et. al. (I wish the standards used a different term, because
"processor" tends to mean something different from that outside of
standard-speak, but the standards specifically define the term in this
way.) So from a Fortran standard perspective, the necessary linkers,
loaders and other such things count as "purely Fortran". In any case,
that's the way I was using the term. Substitute whatever term you would
use to describe that environment if you don't like the one I used.

Yes, there are huge numbers of purely Fortran programs in production
environments. There have been for 5 decades (ok, the number wasn't huge
yet 5 decades ago, but it has been for several of those decades) and
continue to be today.

I repeat that I am not theorizing. I have such production programs
myself. I've written many. I have used many more others. I have used
them on machines that did not naturally support external names as long
as some of the procedure names I had. The compiler did the necessary
"magic" and they worked. I'm not speculating that they might work. I'm
saying that they *DID*, in fact, work.

> Also
> more likely is the requirement for an ability to call out (use) non
> Fortran especially system routines. In which case the external naming
> rules need to be adhered to.

Yes, and I also have predominantly Fortran programs that call
non-Fortran system routines. That also worked in those same
environments. Again, you seem to be theorizing about how things might
be. I'm telling you how things actually are for compilers/systems that I
have personally used.

I don't see the need to go into details of how the implementations made
this work. I've outlined it before, not in complete detail it is true. I
find it quite adeuate to stop at the demonstrated fact that the
compilers I have used *DO* make it work. The mechanism is secondary to
that starting point. I am being serious in asking whether you know of
any compilers where it doesn't work - not where you don't think it would
work, but where you have actually tried and seen it fail.

And as a reminder, I'm talking about f90 and later compilers. Pre-f90
compilers are a different matter. I have seen pre-f90 compilers that
didn't do such tricks (or did half-***sed tricks that weren't reliable).
Such tricks weren't generally needed for the standard f77 limit of 6
characters. F77 compilers that allowed longer names sometimes did have
"issues" (of various types) with names longer than the "natural" system
limits.

--
Richard Maine | Good judgment comes from experience;
email: my first.last at org.domain| experience comes from bad judgment.
org: nasa, domain: gov | -- Mark Twain
From: Richard E Maine on
glen herrmannsfeldt <gah(a)ugcs.caltech.edu> wrote:

> As far as I know, there still is not a Fortran 90 or later compiler
> for OS/390, MVS, or z/OS. VS Fortran was and still is the Fortran 77
> compiler.

I believe that NAG sells or sold an f90 compiler for OS/390 or anyway
one of the IBM mainframe operating systems. I never actually bought or
otherwise saw a copy myself, but I'd swear I recall that compiler being
mentioned a few times as an example of something moderately unusual. For
example, I forget whether it used ASCII or EBCDIC as its default
character set, or whether it might have supported both; any of those 3
possibilities would have made it unusual in some manner.

--
Richard Maine | Good judgment comes from experience;
email: my first.last at org.domain| experience comes from bad judgment.
org: nasa, domain: gov | -- Mark Twain