Live data from Hacker News

Resurrecting Fortran

ondrejcertik.com

21–30 of 37 posts

Re: Resurrecting Fortran

#21
post #10
post #7

Earlier quoted context omitted.

Author here. Yes, some people did not like the title, I didn't realize that it necessary means Fortran was dead. I meant it in the way of "rejuvenate". Fortran was not dead.

“Rejuvenating Fortran” would have been a better title ;-)

Next time. ;)

Re: Resurrecting Fortran

#22

Earlier quoted context omitted.

COBOL is another one. COBOL programs written decades ago are still running unchanged on mainframes today. (Not that it was ever used for scientific computing.)

I recall reading on HN a while back that a modern z/OS mainframe can run unmodified System/360 binaries.

Well, there was the shocking news here not long ago that some OS\360(?) backwards compatibility had been dropped. What's the world coming to.

Relevant to Fortran, there's a version of ESSL that I recall on OS\370 now for POWER9 (and doubtless 10). Scientific subroutine libraries are arguably the best example of the re-use beloved of those who haven't seen their OOP code last decades.

Re: Resurrecting Fortran

#23
post #12
post #8

Earlier quoted context omitted.

LFortran is not ready yet for production usage, but I've been developing it on M1 Macs, everything works (both compiling of LFortran itself, as well as LFortran compiling other codes and interactive usage in Jupyter). It compiles really fast and I really enjoy the experience of M1.

Very interested in LFortran, are there any benchmarks how it compares with respect to performance to GFortran or Intel Fortran?

There is speed of compilation (I did some very preliminary benchmarks and I think it will be very good) and there is speed of the generated code, there currently we just use stock LLVM. But down the road we will have special optimizations on top, just like Intel Fortran is doing. Some of the things I personally would like to have a close look on is array operations, where I've heard from many users that they are slower than explicit loops. And function inlining and other such operations.

We want to have a dedicated repository for benchmarking compilers:

https://github.com/fortran-lang/benchmarks/issues/2

Re: Resurrecting Fortran

#24

My first language, 1965, on a CDC 3100. We used Eliot Organick`s text book. Wonderful memories.

1964, IBM 1620, 1311 drive. McCracken text. I remember the day the prof was late to class and came in looking much the worse for wear. The drive had experienced a head crash.

Thanks from those of us feeling relatively young for once, even if we have read McCracken.

The best failure I know was due to beer fermenting in the warm space above the fancy disk of an old Sigma 3; with hilarious consequences. No opportunity to get worse for wear from that batch, obviously.

Re: Resurrecting Fortran

#25

How does LFortran compare to flang?

Author of the blog post here. There are two Flang compilers:

https://fortran-lang.org/compilers/

The legacy Flang and a new Flang. I don't know exactly the plans for the legacy Flang, but I assume the idea is to eventually use new Flang. The new Flang and LFortran where started at about the same time, they have a little bit different design. Both written in C++. LFortran has from the ground up written to be interactive (like Julia or Python), in addition to regular compilation to binaries. Some of the other goals of Flang and LFortran overlap.

I think it's good for Fortran to have at least two actively developed open source compilers.

Re: Resurrecting Fortran

#26
post #19
post #13

Earlier quoted context omitted.

I often nowadays find GNU GFortran the same speed or faster than Intel Fortan for FEM/CFD codes, while 10-15 years ago Intel Fortan was 10-20% faster in general. So these days I typically just recommend to go with GFortan which is easily available on most platforms.

And not only on such codes. I've posted variations on this before: In my experience GNU Fortran was always competitive with proprietary compilers at around the 20% level on average once the scheduling was sorted for a new architecture. That's from the times I could try SPARC SunOS and GNU/Linux, MIPS/Irix, Alpha/Tru64(?), RS6000/AIX, and x86 GNU/Linux. (I don't know about the times between those and Opteron.) I don't…

I've seen a similar change in recent years. 10 years ago Intel Fortran was usually faster, at least 20%. Good 20%. GFortran seems to have caught up a lot.

Re: Resurrecting Fortran

#27

Earlier quoted context omitted.

COBOL is another one. COBOL programs written decades ago are still running unchanged on mainframes today. (Not that it was ever used for scientific computing.)

I recall reading on HN a while back that a modern z/OS mainframe can run unmodified System/360 binaries.

wine can also run unmodified windows binaries

Re: Resurrecting Fortran

#28
post #27

Earlier quoted context omitted.

I recall reading on HN a while back that a modern z/OS mainframe can run unmodified System/360 binaries.

wine can also run unmodified windows binaries

Yes and if those windows binaries were from a platform from over 50 years ago then perhaps your snarky quips would come off as intelligent.

Re: Resurrecting Fortran

#29
post #11

I've been a Fortran user for (gawd help me) 35 years or so. I can say that rumors of its demise are greatly exaggerated. There are many languages, and language fads. Fortran was never sexy, never faddy. My research codes from 30+ years ago still compile w/o issue to this day, and run, on my linux laptop. Even using the big endian data files (gfortran has a nice switch for that). I don't really use it actively anymore…

> C++ code I wrote 15 years ago won't compile today

Do you recall specifically why?

Also, isn't C pretty 'time proof'? The only time I've seen old C fail to compile was when dealing with a real relic of a codebase. If memory serves it used the pre-standardisation parameter-declaration syntax:

    void my_func(x, y)
    {
        int x;
        long y;
    }

Re: Resurrecting Fortran

#30
post #27

Earlier quoted context omitted.

wine can also run unmodified windows binaries

Yes and if those windows binaries were from a platform from over 50 years ago then perhaps your snarky quips would come off as intelligent.

Windows 3.1, released on April 6, 1992 - so only 29 years old.

My bad, the 21 years difference must be important (somehow?)

Post reply on HN