From: Jan Vorbrüggen on 25 Oct 2006 05:02 >>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 25 Oct 2006 05:07 > 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 25 Oct 2006 05:16 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 25 Oct 2006 11:44 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 25 Oct 2006 11:48
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 |