Introducing Version 4.0
Posted on 2026-09-02
For a little over a year, we have been working on a new major release of Simply Fortran. Version 3 of the development environment and compiler distribution had run its course, resulting in a stable, solid Fortran solution across three major platforms. There were non-trivial features, though, that users have been requesting throughout version 3's lifespan that were simply too large to include in a point release.
Version 4 was envisioned to achieve two major goals: improve Simply Fortran's flexibility and adaptability, and to bring the development environment into the future with sustainable improvements. User input provided the majority of guidance as we settled on new features and environment improvements. The final project is now available for users to evaluate and, hopefully, enjoy.
In this post, we've outlined and described some of the notable improvements in the development environment and all its included tools.
Ability to Use Alternative Compilers
Version 4 introduces the concept of Compiler Personalities, which allows seamless integration with other Fortran compilers. While Simply Fortran still primarily works with the GNU Fortran compiler, it can now be configured to use, for example, the LLVM project's flang compiler with a simple switch:

The advantage to using these personalities is that they ensure the compiler works correctly with Simply Fortran's workflow and options. Project Options are mapped to that particular compiler's command format automatically if an equivalent option exists; there is usually no need to explicitly enter compiler flags just because they differ from GNU Fortran's command options.
By default on Windows, we now include personalities for:
- GNU Fortran (our default, included compiler)
- LLVM flang
- Approximatrix WebFortran
- OpenWatcom
- GNU Fortran under the Windows Subsystem for Linux (more on that later)
On GNU/Linux we include personalities for the first three compilers. Personalities, though, can be extended, created, and added to Simply Fortran with relative ease, meaning we can quickly add them to our distribution or users can author their own. This format also opens the door to cross compilers targeting architectures separate from the host system.
Support for Language Servers
Simply Fortran now has the ability to employ external language servers to improve structural outlines, autocompletion, and procedure definition searches. For any supported language syntax, users can now specify a local language server to execute:

Generally, using an external Fortran language server is not recommended because Simply Fortran's parsing provides additional information and context to the development environment that isn't available from a language server. Using language servers with other languages within Simply Fortran can be a powerful tool.
Once the language server is specified in Simply Fortran, the development environment will handle managing language servers automatically. When a project is loaded containing source code in a language where a language server was specified, Simply Fortran will launch the appropriate server or servers in the background and manage requests transparently in a separate background thread. Servers are subsequently shut down when no longer needed without user interaction.
Compatibility with Windows Subsystem for Linux
The development environment is now able to detect the presence of and work with Microsoft's Windows Subsystem for Linux (WSL) on Windows 10 or 11. When WSL is enabled on a particular system, Simply Fortran can execute a Fortran compiler within the environment, connect to a debugger, or launch executables detected to be Linux binaries.
As mentioned earlier, one of the included compiler personalities on Windows is GNU Compiler under WSL. When this personality is selected, Simply Fortran will use the GNU Fortran compiler installed under the default WSL distribution to compile Fortran projects seamlessly from within Simply Fortran's native Windows development environment. When a project is launched and the target executable is detected to be a Linux binary, WSL is used to start the process automatically while the output can still be viewed in Simply Fortran's Console tab. Even debugging works as expected from within the development environment, starting a GNU Debugger instance under WSL to control the Linux binary's execution while using our native Windows debugging interface.
Users will also notice that their WSL distributions will now appear in the View menu's Open Terminal entry:

Simply Fortran's internal terminal can now open a Linux shell inside our development environment easily.
New Default Look and Feel on Linux
Our GNU/Linux development environment has now switched to the "header bar" layout by default. Previously available as an option, Simply Fortran's title bar is now a functional component of the environment. The entire menu is contained within an application button, and commonly used tools are available within the header bar.

The new default layout better conforms to modern Gtk application standards while retaining all functionality. The original layout can be switched on in the Appearance and Behavior options.
Speaking of options, all option windows in Simply Fortran for GNU/Linux have been overhauled to use a modern interface. A glimpse of the options windows is available above in the discussion of language servers. The new interface is laid out in a far more sensible fashion.
Some additional user interface changes were included to modernize Simply Fortran. Editor tabs more closely resemble the new Windows interface, highlighting the active tab in the user's selection color from the editor. Debugger controls have been moved into the Debug panel to make space for some new convenience functions in the header bar. The quick search box has been renamed the GOTO box in a nod to Fortran's infamous flow control construct.
Updated Compiler on Windows
Simply Fortran on Windows includes version 16.1 of the GNU Fortran compiler. Notably, the new compiler comes with a drastically faster coarray implementation than what Simply Fortran previously included on Windows. People employing this modern Fortran feature should see substantial speed improvements on Windows when frequently transferring data between images compared to the older Approximatrix Windows Coarray library.
Our Windows compiler continues to use mathematical functions provided by the OpenLibm project rather than the default options provided by the Minimalist GNU for Windows project when producing 64-bit x86 targets. These routines are substantially faster and more mathematically robust than the defaults since they exploit modern CPU features rather than relying on dated 80x87 math coprocessor routines.
New Windows Packaging
Simply Fortran for Windows is delivered in two formats: an MSIX package and a simple Zip file. The MSIX package is a new installation format introduced in Windows 10 that substantially improves installation speed and application isolation compared to older techniques. The updated installer will still provide command line tool availability using the package without adding more and more directories to the user's path. The new packaging better conforms to modern Windows standards.
Users who wish to remain on Windows 8 or earlier can still use our Zip file, which includes the entirety of Simply Fortran in a simple directory structure. Simply Fortran 4.0 continues to work flawlessly on Windows XP and higher or any 32-bit release of the operating system.
File System Synchronization
Simply Fortran treats projects differently from many other development environments in that the project's organization is not necessarily tied to the file system layout. Specifically, while many development environments just treat a subdirectory as a "project," Simply Fortran allows a custom layout and organization of source files that may not reflect their organization on the disk. Our design allows users to group source files into more conceptual layouts in the development environment, possibly creating project folders for "Mathematical Utilities" and "Flow Solvers" while the source code on disk all sits in the same folder. We like this flexibility here, and users seem to appreciate it as well.
However, there are times where one might prefer to just have the project tied to the file system layout. We've added a menu option to make this process simple and quick:

The option rescans the folder containing the project file, and the project is reorganized to reflect files that have moved, populated with new files, and cleaned of deleted files. Maintaining a project in Simply Fortran that is tied to file system layout is now much easier.
Obviously arbitrarily adding every file in a directory to a project is a bad idea, though. Users don't want Simply Fortran's build subdirectory, along with all the object files inside, added to a project. The Appearance and Behavior options now have a list under the Project Behavior category of patterns of files a directories to ignore when synchronizing with the file system. Users can add version control directories, intermediate cache directories from interpreted languages, or simply unrelated output files to the ignore list so that synchronizing the project doesn't mistakenly bring in an assortment of unnecessary files.
Significant Bug Fixes
Over a year of development and testing has led to the inclusion of a number of bug fixes, resolved issues, and workflow improvements. Simply Fortran 4 appears to be the most stable release yet since Simply Fortran itself is used for its own development.
Unpredictable Debugger Crashes Resolved
Simply Fortran's debugger interface did seem to experience intermittent issues over time. These issues could lead to unpredictable crashes of the entire development environment. The issue was finally found to be the scripting and control interface that sits between Simply Fortran and the GNU Debugger. A very subtle memory leak that would occur just by stepping through a Fortran program would eventually lead to a crash due to exceeding the process stack space. Once the issue was fixed and the interface was checked (and checked and checked) for any other such leaks, the debugger interface no longer appears to experience the random crashes that have plagued it in the past.
Gtk Clipboard Issues
As most Linux distributions leave X11 behind, moving on to Wayland display solutions, some of our legacy code was found to be incompatible with the current state of GNU/Linux. Our editing component and much of our custom code for interfacing with the clipboard were both experiencing issues with clipboard operations on modern Linux distributions and desktops. The issue would manifest itself as being unable to copy or cut text from Simply Fortran and paste it into any other application. Oddly, it could be pasted into Simply Fortran, along with any other text on the clipboard from any other application. Fixing this behavior required rewriting much of the clipboard code within Simply Fortran so that it relied on modern Gtk calls to correctly access the clipboard with text contents.
Accelerated Project Loading
Because Simply Fortran is used in its own development, we maintain a Simply Fortran project file for Simply Fortran's own source code. While the project isn't "enormous" by any means, it is relatively large, and loading the project into Simply Fortran would take far too long. Much of the issue with loading projects was related to graphical update operations; populating the Project Outline was too slow. The speed issues were related to countless internal database operations for determining file status, position, etc. in the list of project files. The process was streamlined, and users should see a noticeable improvement in loading large, complex projects.
GNOME Shell Fixes
As we stated earlier, Simply Fortran was due for some "catching up" with the current state of Linux graphical applications. While some desktop environments and display servers have been a little more forgiving to our "olden times" implementations of certain standards, GNOME Shell was not quite so tolerant of our skirting standards. With 4.0, Simply Fortran should now display a proper taskbar icon under GNOME, although we quite possibly were failing to display the proper icon under KDE Plasma as well (it is fixed there now too). We also more strictly dictate what controls are available in our header bar. Regardless of the current desktop settings, we now make sure minimize and maximize buttons are available. Under certain conditions, we were seeing an extremely goofy system menu show up next to our menu button the header bar, but we are now only showing the menu button. Version 4.0 should appear far more polished under modern GNOME Shell desktops.
Project-wide Text Search
Our project text search was in need of some attention with this release. While it performed well, there were some major "gotchas" in the search system which could lead to slow searches on GNU/Linux or complete development environment lockups when a search term was found too often. The performance of searching on Linux has been improved greatly by switching to a memory-mapped file access pattern to more rapidly search for text, a method already in production for our Windows version. Linux users should see better performance on text searches.
If a user mistakenly searched for, as an example, a common two-letter term in a large project, the development environment could lock up as it struggled to graphically update the search results with countless matches. While the process of updating the search results has been refined greatly, we've also introduced the ability to abort the search by clicking a new stop button next to the search term. The button should halt all background searches with relative immediacy. The combination of the refinement of result updates and the stop button inclusion should eliminate development environment lockups on problematic searches.
Sunsetting macOS Support
A difficult decision was made halfway through the development of Simply Fortran 4 in regards to macOS support. Significant challenges have always surrounded our port to the platform, and we did not feel we could provide the years of expected support of another major version with Simply Fortran's current macOS architecture and implementation.
On platforms other than Windows, Simply Fortran utilizes the Gtk+ 3 toolkit for its interface. This cross-platform graphical user interface toolkit is primarily designed for GNU/Linux, but it is also supported on other platforms. However, GNU/Linux does remain its primary platform; the reality of the situation is that other platforms are secondary. We're not criticizing Gtk in any way, though. The issue is the sudden, unannounced, and incompatible changes in macOS that can sometimes break Gtk. We've seen this issue manifest itself in text scrolling issues, maximizing/sizing behavior problems, broken message and file selection dialogs, and many more. These problems tend to be beyond our control and far outside the scope of Simply Fortran.
The Gtk project itself is focusing on improving compatibility with macOS, but most of that focus is rightfully being directed towards Gtk 4. Upgrading to Gtk 4, however, is an enormous task that we cannot complete at this time.
Additionally, we've always had difficulty with surprise changes to Apple's development tools upon which our compiler relies. Arbitrary changes to the linker syntax regularly cause spurious warnings or, worse, compiler failures with Simply Fortran after macOS development tool updates.
Finally, the debugging situation has not improved. Simply Fortran uses the GNU Debugger as its debugging engine, and the GNU Debugger does not support the macOS platform any longer for a variety of valid reasons. Without the GNU Debugger, Simply Fortran just doesn't have an option for debugging Fortran code on macOS. While there is some initial planning related to adding Fortran support to lldb, the debugger from the LLVM project that is supported by Apple on macOS, support for Fortran simply isn't available now.
This decision may not be permanent. However, maintaining a port of Simply Fortran 4 for macOS is not sustainable at this time.
Moving Forward
Simply Fortran 4.0 is the first in many point releases that will introduce more performance and productivity improvements, additional minor features, and, inevitably, more bug fixes. We love hearing from users about missing or desirable features for the development environment and packaged libraries. Please feel free to contact us directly or participate in the conversation on our forums.
