Fpm version 0.10.0 released

We have just released v0.10.0 of fpm with a series of new features. Among others, this release contains great improvements in the handling of MPI as a metapackage.
For a full list of the new features see the GitHub Release Notes

Thank you to all the contributors!

Portions of the work present in this release have been funded by the Sovereign Tech Fund.

17 Likes

Great to see this out!

Thanks to all!

I tried to update fpm but failed:

Clonage dans 'fpm'...
remote: Enumerating objects: 74651, done.
remote: Counting objects: 100% (2141/2141), done.
remote: Compressing objects: 100% (404/404), done.
remote: Total 74651 (delta 1935), reused 1778 (delta 1734), pack-reused 72510
Réception d'objets: 100% (74651/74651), 32.57 Mio | 8.35 Mio/s, fait.
Résolution des deltas: 100% (68401/68401), fait.
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 27836    0 27836    0     0  96353      0 --:--:-- --:--:-- --:--:-- 96652
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 1380k  100 1380k    0     0  1328k      0  0:00:01  0:00:01 --:--:-- 1328k
fpm.F90:37748:22:

37748 | end module fpm_sources
      |                      1
Error: Pointer assignment target in initialization expression does not have the TARGET attribute at (1)
fpm.F90:37783:5:

37783 | use fpm_sources, only: get_exe_name_with_suffix
      |     1
Fatal Error: Cannot open module file ‘fpm_sources.mod’ for reading at (1): Aucun fichier ou dossier de ce type
compilation terminated.
-------------------
Version:     0.9.0, alpha
Program:     fpm(1)
Description: A Fortran package manager and build system
Home Page:   https://github.com/fortran-lang/fpm
License:     MIT
OS Type:     Linux

using those commands:

cd /tmp
git clone https://github.com/fortran-lang/fpm.git

cd fpm
chmod u+x ./install.sh
./install.sh

My main compiler is GNU Fortran (Ubuntu 13.2.0-4ubuntu3) 13.2.0

That’s strange, using gfortran from conda-forge (13.2.0-3) and running the install.sh worked for me.
I am not sure if this will be any better but instead of running install.sh you could do

cd fpm
fpm install

I have tried my fpm update script (which always worked until today) on another PC (with the same Ubuntu 23.10), but obtained the same error.

I tried the fpm install you suggested but obtained also that error:

fpm_model.f90                          done.
update.f90                             done.
fpm_meta.f90                           done.
fpm_source_parsing.f90                 done.
fpm_sources.f90                        failed.
[ 90%] Compiling...
././src/fpm_sources.f90:254:22:

  254 | end module fpm_sources
      |                      1
Error: Pointer assignment target in initialization expression does not have the TARGET attribute at (1)
<ERROR> Compilation failed for object " src_fpm_sources.f90.o "
<ERROR> stopping due to failed compilation
STOP 1

All I can say is that the last time I updated fpm I was in a previous version of Ubuntu…

I will also try in FreeBSD 14.0.

just tested on mac with your exact commands and it worked like a charm:

[100%]                            fpm  done.
[100%] Project compiled successfully.
# Update: build/gfortran_7E39037AD371E5BE/app/fpm -> /Users/federico/.local/bin
federico@Federicos-MBP fpm % gfortran --version
GNU Fortran (Homebrew GCC 13.2.0) 13.2.0

In my experience, when gfortran stops on end module, it’s usually an internal compiler error (internal routines are added e.g. for finalization, which don’t have a line). If we can find out at what piece of code that happens, we can deploy a fix quickly

1 Like

No problem in FreeBSD 14.0:

$ fpm --version
Version:     0.10.0, alpha
...
$ gfortran --version
GNU Fortran (FreeBSD Ports Collection) 13.1.0
1 Like

I will spin-up a VM and see if I can reproduce the error (seems to be originating from GFortran).

1 Like

You are probably right, as it worked in Ubuntu with a previous version of gfortran:

$ fpm install --compiler gfortran-12
...
$ fpm --version
Version:     0.10.0, alpha
...
$ gfortran-12 --version
GNU Fortran (Ubuntu 12.3.0-9ubuntu2) 12.3.0

I will ask @JerryD if it could be a GFortran bug (although there is no problem in macOS with the same version).

I was able to build the latest release with gfortran-13 and ubuntu-22.04 on my device and CI . maybe it is correlated with ubuntu version.

1 Like

I also tested and it builds fine on $ gfortran --version
GNU Fortran (GCC) 13.2.1 20231205 (Red Hat 13.2.1-6). I suspect a bug in 13.2.0 that is now fixed.

3 Likes

And the workaround in Ubuntu 23.10, waiting for a new version of GFortran 13.2, is simply to use gfortran-12 to build fpm:

$ cd fpm
$ fpm install --compiler gfortran-12