Fortran Programming Language

Open64 not setting world on fire

Some time back, I had heard that there was a free and open-source FORTRAN compiler that had already implemented the Fortran 95 standard (while f95, based on gcc, was still being worked on) and which generated efficient code; it was called Open64.

Its only drawback was that you needed an Itanium-based system to use it.

Initially, when I did a web search, it seemed that the name Open64 was now out of date, and the compiler is now called ORC, the Open Research Compiler.

And then I read that to install and use the program, you need to get another FORTRAN compiler - specifically, Intel FORTRAN. Fortunately, there's a free version strictly for non-commercial use of that available.

The regular Intel FORTRAN requires that you have a copy of Microsoft's Visual Studio now, though. That seems strange; you didn't need to buy a copy of, say, Microsoft Visual C++ before you could use Borland C++ Builder; but then, Borland has left the compiler business. Has Microsoft changed its licensing terms for the (required portions of the) Windows SDK, or is it just that FORTRAN sells so few copies that the one-time fee for licensing what would be needed would have added more than the cost of a copy of Visual Studio to the product?

Then I read that there is a patent issue with Open64; apparently it is a minor one, in that Open64 includes patented technology, and its license is modified from the GPL in respect of the section about patents. The code incorporating patents was contributed by the patent owners, and the modification to the license appears to be merely a clarification, but absent a formal assignment of patent rights and things like that, some uses of Open64 source code are inhibited.

Also, while Intel has its ORC project, Open64 was originally based on the Itanium version of SGI's Pro64 FORTRAN, which it released. They did not release their MIPS version of the same compiler. And ORC, although the main line of Open64 development, apparently is a code fork.

I had done a Google search on the Open64 license only because I wondered why there were proprietary compilers for the AMD64 (or EM64T) architecture that were apparently successful products.

Yes, the GPL doesn't stop one from writing custom software for a specific customer who is paying for the customization, but, in general, if your customers can give away what you sell them, mass sales of the same program seem odd. So I wondered if Open64 had been licensed under a BSD-type license instead of a GPL-type license, but it hadn't. Nor, apparently, was there a restriction on target types (i.e. a restrictive license allowing the open source to be used only for compiling for the Itanium, a paid license from SGI required to use the code for other targets).

I can only conclude, then, that perhaps a back end going from WHIRL to AMD64 can be packaged as a *separate program* from the Open64 compiler itself, and can therefore be conventionally licensed without any violation of the terms of the GPL. The alternative is that the few people buying the AMD64 version of Open64 are voluntarily (and unanimously!) not doing anything to undermine the source of their support and enhancements: this has happened with an optical design software package that I'm familiar with, but for an unusual set of reasons that doesn't seem to apply here.

It may be that the reason the Open64 project hasn't "gone further" (i.e. to the point where Open64 is a standard part of most Linux distros) is simply that porting it to other architectures, making it fully standalone, and so on and so forth, simply involve a lot of work, and there has been lack of interest on the part of the people capable of doing such work.

But the open source community in general seems vibrant with activity, so I suspect that lack of interest in this specific project does need a specific explanation. Is it just the patent issue, or the code fork, or is the explanation something I haven't come across yet?

John Savard

Sorry about posting it twice: Google Groups reported that this first posting attempt had failed.