# Fortran Package Manager GUI

**URL:** <https://fortran-lang.discourse.group/t/fortran-package-manager-gui/11168>\
**Category:** AI\
**Created:** [October 10, 2026, 3:27am UTC](https://fortran-lang.discourse.group/t/fortran-package-manager-gui/11168 "2026-10-10T03:27:19Z")\
**Posts on this page:** 20\
**Page:** 2

<div class="post-metadata">

**Author:** ![themos](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/themos/32/521_2.png) [@themos](https://fortran-lang.discourse.group/u/themos)\
**Post date:** [October 11, 2026, 5:42pm UTC](https://fortran-lang.discourse.group/t/fortran-package-manager-gui/11168/21 "2026-10-11T17:42:30Z")

</div>

Compile Fortran to OS kernel module so that there is no other user code running.

---

<div class="post-metadata">

**Author:** ![rwmsu](https://avatars.discourse-cdn.com/v4/letter/r/48db29/32.png) [@rwmsu](https://fortran-lang.discourse.group/u/rwmsu)\
**Post date:** [October 11, 2026, 10:03pm UTC](https://fortran-lang.discourse.group/t/fortran-package-manager-gui/11168/22 "2026-10-11T22:03:55Z")

</div>

Heck. Lets just compile the whole human genome (which you might be able to make the case that its natures form of computer code) into Fortran. That way all you have to do to clone yourself is just recompile it (with LFortran of course). Of course in my case it would insist on outputing the new me as punch cards. 😄

---

<div class="post-metadata">

**Author:** ![jacobwilliams](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/jacobwilliams/32/10_2.png) [@jacobwilliams](https://fortran-lang.discourse.group/u/jacobwilliams)\
**Post date:** [October 12, 2026, 4:09pm UTC](https://fortran-lang.discourse.group/t/fortran-package-manager-gui/11168/23 "2026-10-12T16:09:41Z")

</div>

I did not set out to build a full Fortran IDE…but I seem to have done it…

Here’s what I used:

| Dependency | Used for |
| --- | --- |
| [fpm](https://fpm.fortran-lang.org) ![](https://global.discourse-cdn.com/free1/uploads/fortran_lang/original/2X/d/dfea428238452524b24657711febcb16e64bdfd6.png) | Building, running, testing, updating and cleaning projects; reading their dependency tree |
| [fortls](https://fortls.fortran-lang.org) ![](https://global.discourse-cdn.com/free1/uploads/fortran_lang/original/2X/d/dfea428238452524b24657711febcb16e64bdfd6.png) | The Fortran language server: hover info, completion, go to definition/implementation, references, rename, outline, diagnostics |
| [fortitude](https://fortitude.readthedocs.io) ![](https://global.discourse-cdn.com/free1/uploads/fortran_lang/original/2X/d/dfea428238452524b24657711febcb16e64bdfd6.png) | Linting Fortran files as you type, and its automatic fixes |
| [fprettify](https://github.com/fortran-lang/fprettify) ![](https://global.discourse-cdn.com/free1/uploads/fortran_lang/original/2X/d/dfea428238452524b24657711febcb16e64bdfd6.png) | Auto-formatting Fortran files |
| [pyside6](https://doc.qt.io/qtforpython-6/) | Python Qt interface for creating the GUI |
| [pyqtgraph](https://www.pyqtgraph.org) | Drawing the interactive dependency graph |
| [pigments](https://pygments.org) | Syntax highlighting |
| [pathspec](https://github.com/cpburnz/python-pathspec) | `.gitignore` matching for file list display |
| [pyte](https://github.com/selectel/pyte) | Built in terminal |
| [pyspellchecker](https://github.com/barrust/pyspellchecker) | Spell checking comments and strings in the editor |
| [ollama](https://ollama.com) | AI code review with a local models |

It’s very close to having everything I currently use VSCode for, and lots that VSCode doesn’t have at all. It certainly seems better now than anything Intel has ever produced for ifort/ifx (which is sad really). It launches instantly, doesn’t use all my RAM, has no feature I don’t want. Is it useable for a daily driver? I have no idea! Maybe! It certainly was a fun experiment to make. Is it AI slop? Maybe!! Does it scale? No clue!!!

What else can I add? I think the largest missing piece is debugger integration…

 ![gui](https://global.discourse-cdn.com/free1/uploads/fortran_lang/original/2X/e/e94dba209fa84531fedda2e98ad76cc9d7aadd2e.jpeg)

---

<div class="post-metadata">

**Author:** ![jacobwilliams](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/jacobwilliams/32/10_2.png) [@jacobwilliams](https://fortran-lang.discourse.group/u/jacobwilliams)\
**Post date:** [October 13, 2026, 11:13pm UTC](https://fortran-lang.discourse.group/t/fortran-package-manager-gui/11168/24 "2026-10-13T23:13:15Z")

</div>

Here’s what it looks like to run `fpm test`. It’s using the Openmp-enabled fpm from conda-forge so it can build in parallel. But I also added a feature to also run the tests in parallel:  
 ![gui-recording-small-2](https://global.discourse-cdn.com/free1/uploads/fortran_lang/original/2X/7/7ff9dcbc4b6db525b85038f528ac62cf04416750.gif)

---

<div class="post-metadata">

**Author:** ![rwmsu](https://avatars.discourse-cdn.com/v4/letter/r/48db29/32.png) [@rwmsu](https://fortran-lang.discourse.group/u/rwmsu)\
**Post date:** [October 13, 2026, 11:19pm UTC](https://fortran-lang.discourse.group/t/fortran-package-manager-gui/11168/25 "2026-10-13T23:19:02Z")

</div>

> [@jacobwilliams](#):
>
> What else can I add? I think the largest missing piece is debugger integration…

YES! My hate for GDB would fill the known universe. I liked the interactive debugger that Intel used to ship with ifort etc. Not sure why they dropped it.

---

<div class="post-metadata">

**Author:** ![jacobwilliams](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/jacobwilliams/32/10_2.png) [@jacobwilliams](https://fortran-lang.discourse.group/u/jacobwilliams)\
**Post date:** [October 13, 2026, 11:27pm UTC](https://fortran-lang.discourse.group/t/fortran-package-manager-gui/11168/26 "2026-10-13T23:27:40Z")

</div>

The problem is i’m on an arm Mac and I don’t think gdb exists for that? I guess I’d have to try an llvm debugger? @certik what is the debugging situation for LFortran?

---

<div class="post-metadata">

**Author:** ![rwmsu](https://avatars.discourse-cdn.com/v4/letter/r/48db29/32.png) [@rwmsu](https://fortran-lang.discourse.group/u/rwmsu)\
**Post date:** [October 14, 2026, 1:05am UTC](https://fortran-lang.discourse.group/t/fortran-package-manager-gui/11168/27 "2026-10-14T01:05:22Z")

</div>

I believe there is a LDBG or something similar for LLVM based compilers but I’m not sure about Apple silicon. I believe most compilers and Unix based OSes use the DWARF debugging specification so maybe with AI you can roll your own debugger but they might be a bridge too far for what you are trying to do.

---

<div class="post-metadata">

**Author:** ![jacobwilliams](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/jacobwilliams/32/10_2.png) [@jacobwilliams](https://fortran-lang.discourse.group/u/jacobwilliams)\
**Post date:** [October 14, 2026, 3:40am UTC](https://fortran-lang.discourse.group/t/fortran-package-manager-gui/11168/28 "2026-10-14T03:40:34Z")

</div>

Code coverage added:

 ![coverage](https://global.discourse-cdn.com/free1/uploads/fortran_lang/original/2X/5/5f0e4f991c3c5c6685234cf54dd1724e254ada94.jpeg)

---

<div class="post-metadata">

**Author:** ![certik](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/certik/32/4_2.png) [@certik](https://fortran-lang.discourse.group/u/certik)\
**Post date:** [October 14, 2026, 6:38am UTC](https://fortran-lang.discourse.group/t/fortran-package-manager-gui/11168/29 "2026-10-14T06:38:02Z")

</div>

> [@jacobwilliams](#):
>
> @certik what is the debugging situation for LFortran?

We support `-g`, although there will still be some bugs. We’ll iron them all out after beta. Then you need to use some debugger, like `lldb` to debug the binary. I looked into the VSCode debugger protocol and it’s really complex. Although with AI we might be able to use it somehow. Without AI I didn’t even attempt that. I still think there must be some simpler way.

I should also say that I let my AI agent debug my codes, so I probably haven’t used a debugger myself in like a year now. Do you still debug by hand?

---

<div class="post-metadata">

**Author:** ![milancurcic](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/milancurcic/32/2_2.png) [@milancurcic](https://fortran-lang.discourse.group/u/milancurcic)\
**Post date:** [October 14, 2026, 5:43pm UTC](https://fortran-lang.discourse.group/t/fortran-package-manager-gui/11168/30 "2026-10-14T17:43:26Z")

</div>

You’re doing it wrong. This should be a TUI.

---

<div class="post-metadata">

**Author:** ![milancurcic](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/milancurcic/32/2_2.png) [@milancurcic](https://fortran-lang.discourse.group/u/milancurcic)\
**Post date:** [October 14, 2026, 5:44pm UTC](https://fortran-lang.discourse.group/t/fortran-package-manager-gui/11168/31 "2026-10-14T17:44:50Z")

</div>

You should call it VSPunch.

---

<div class="post-metadata">

**Author:** ![jacobwilliams](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/jacobwilliams/32/10_2.png) [@jacobwilliams](https://fortran-lang.discourse.group/u/jacobwilliams)\
**Post date:** [October 14, 2026, 6:56pm UTC](https://fortran-lang.discourse.group/t/fortran-package-manager-gui/11168/32 "2026-10-14T18:56:25Z")

</div>

Claude: convert all of Qt to a TUI framework. Make no mistakes.

---

<div class="post-metadata">

**Author:** ![compuJarHead](https://avatars.discourse-cdn.com/v4/letter/c/ed655f/32.png) [@compuJarHead](https://fortran-lang.discourse.group/u/compuJarHead)\
**Post date:** [October 15, 2026, 4:12am UTC](https://fortran-lang.discourse.group/t/fortran-package-manager-gui/11168/33 "2026-10-15T04:12:02Z")

</div>

> [@jacobwilliams](#):
>
> Python

This is a helpful tool, thank you for sharing this GUI package manager. Because of the AI heritage, have you examined the Python code with a Linter or a security scanner (e.g. bandit)? I’d be curious to know how AI generated code performs against lint-ing tests and security scans.

---

<div class="post-metadata">

**Author:** ![Rekindle](https://avatars.discourse-cdn.com/v4/letter/r/f14d63/32.png) [@Rekindle](https://fortran-lang.discourse.group/u/Rekindle)\
**Post date:** [October 15, 2026, 8:21pm UTC](https://fortran-lang.discourse.group/t/fortran-package-manager-gui/11168/34 "2026-10-15T20:21:33Z")

</div>

There is a project at LLVM to bring Fortran language support into lldb. Not sure how long that will take. You can search the lldb subproject to follow along.

---

<div class="post-metadata">

**Author:** ![jacobwilliams](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/jacobwilliams/32/10_2.png) [@jacobwilliams](https://fortran-lang.discourse.group/u/jacobwilliams)\
**Post date:** [October 16, 2026, 12:14am UTC](https://fortran-lang.discourse.group/t/fortran-package-manager-gui/11168/35 "2026-10-16T00:14:35Z")

</div>

i’ve had `ruff` for Python linting on since the start, so all that passes.

i’d never heard of `bandit` but I added it to the CI and now it runs on every commit. There were a few high-level issues it found originally that I had Claude fix. Some of the low ones don’t apply or we have to ignore since the point of this program is to run other programs (`fpm`, etc.)

---

<div class="post-metadata">

**Author:** ![compuJarHead](https://avatars.discourse-cdn.com/v4/letter/c/ed655f/32.png) [@compuJarHead](https://fortran-lang.discourse.group/u/compuJarHead)\
**Post date:** [October 16, 2026, 12:59am UTC](https://fortran-lang.discourse.group/t/fortran-package-manager-gui/11168/36 "2026-10-16T00:59:19Z")

</div>

Thanks for the reply. I am glad I was able to point you towards bandit. It has found some interesting high level holes that I have “plugged” on occasion.

---

<div class="post-metadata">

**Author:** ![jacobwilliams](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/jacobwilliams/32/10_2.png) [@jacobwilliams](https://fortran-lang.discourse.group/u/jacobwilliams)\
**Post date:** [October 16, 2026, 4:22am UTC](https://fortran-lang.discourse.group/t/fortran-package-manager-gui/11168/37 "2026-10-16T04:22:22Z")

</div>

How about a cyclomatic complexity analysis panel with auto-generated control-flow diagrams of the code?

 ![complexity](https://global.discourse-cdn.com/free1/uploads/fortran_lang/original/2X/8/8ceb836c2bae6ecd11acf38680ffe3ae66d85473.jpeg)

---

<div class="post-metadata">

**Author:** ![jacobwilliams](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/jacobwilliams/32/10_2.png) [@jacobwilliams](https://fortran-lang.discourse.group/u/jacobwilliams)\
**Post date:** [October 18, 2026, 3:19pm UTC](https://fortran-lang.discourse.group/t/fortran-package-manager-gui/11168/38 "2026-10-18T15:19:56Z")

</div>

Added debugger support! You can set breakpoints, step through them, view variable values and the call stack, etc. Here’s an example using `gdb` (the only debugger i’ve tested, so probably the only one that works). It’s running on a Mac in a Linux Docker container. Claude set all that up for me…I have absolutely no idea how Docker works. I also added `valgrind` support to check for memory leaks.

 ![Screenshot 2026-10-18 at 9.49.51 AM](https://global.discourse-cdn.com/free1/uploads/fortran_lang/original/2X/8/8f2302c2d745924d52a7f89d588456f288346650.png)

@certik To answer your question: Yes, Claude can do a lot of debugging on its own nowadays! It’s amazingly useful for that. Historically, I have occasionally needed to crack open a debugger to track down very hard problems (The intel debugger in Visual Studio on Windows. I never remember how to use `gdb`). Maybe those days are gone now, but probably it’s still something to keep in the toolbox just in case.

---

<div class="post-metadata">

**Author:** ![rwmsu](https://avatars.discourse-cdn.com/v4/letter/r/48db29/32.png) [@rwmsu](https://fortran-lang.discourse.group/u/rwmsu)\
**Post date:** [October 18, 2026, 5:10pm UTC](https://fortran-lang.discourse.group/t/fortran-package-manager-gui/11168/39 "2026-10-18T17:10:20Z")

</div>

ifx and I think other LLVM based compilers can use the LLVM memory sanitizer tools. For ifx you set the -fsanitizer=address etc. I prefer that to valgrind which I have found to give false positives for Fortran codes on Linux. Of course there is the old saying that “If God had intended Fortran programmers to use debuggers, He wouldn’t have created the PRINT statement” 😄

---

<div class="post-metadata">

**Author:** ![jacobwilliams](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/jacobwilliams/32/10_2.png) [@jacobwilliams](https://fortran-lang.discourse.group/u/jacobwilliams)\
**Post date:** [October 21, 2026, 4:50am UTC](https://fortran-lang.discourse.group/t/fortran-package-manager-gui/11168/40 "2026-10-21T04:50:54Z")

</div>

Adding some basic git support (diff, blame, stats). 😱

 ![Screenshot 2026-10-20 at 11.46.06 PM](https://global.discourse-cdn.com/free1/uploads/fortran_lang/original/2X/1/1a84c6b3a3ce6585cb917314206f42b059dd216b.jpeg)

[Previous page](https://fortran-lang.discourse.group/t/fortran-package-manager-gui/11168.md?page=1)

[Next page](https://fortran-lang.discourse.group/t/fortran-package-manager-gui/11168.md?page=3)
