Installing previous fpm-versions raised no problems. Installing 0.10.1 does not succeed, using Linux-Fedora-40, which provides gcc-gfortran-14.1.1. This is what happens:
ormo@rolls5:~/fpm-0.10.1$ ./install.sh
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 27309 100 27309 0 0 103k 0 --:–:-- --:–:-- --:–:-- 103k
% 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 1513k 100 1513k 0 0 1633k 0 --:–:-- --:–:-- --:–:-- 21.9M
fpm.F90:28554:101:
28554 | call set_string(table, “descriptor”, descriptor_name(self%descriptor), error, ‘git_target_t’)
Error: There is no specific subroutine for the generic ‘set_string’.
fpm.F90:30325:93:
30325 | call set_string(table,“os-type”,os_type_name(self%os_type), error, ‘profile_config_t’)
Error: There is no specific subroutine for the generic ‘set_string’.
fpm.F90:31376:9:
31376 | use fpm_git, only: git_target_t, git_target_tag, git_target_branch, &
Fatal Error: Cannot open module file ‘fpm_git.mod’ for reading: No such file or directory
compilation terminated.
ormo@rolls5:~/fpm-0.10.1$
It seems that subroutine set_string(table, … ) can not be found?
Using grep, I cannot find the subroutine either.
What do I do wrong?
Thank you in advance for advice.
d.vanormondt&ziggo.nl
gfortran-14 has introduced some breaking changes, and we’ve deployed a fix to the install script just a couple days ago.
If you try with the most up-to-date version on trunk, it should work as it contains the necessary fixes:
git clone https://github.com/fortran-lang/fpm.git
cd fpm
sh ./install.sh
Thank you again for spending your precious time!
Compilation with the new install.sh now reaches 65% and then stops at the call of same missing subroutine, set_string, in git.f90, line 357:
./src/fpm/git.f90:357:101:
357 | call set_string(table, “descriptor”, descriptor_name(self%descriptor), error, ‘git_target_t’)
Error: There is no specific subroutine for the generic ‘set_string’.
Compilation failed for object " src_fpm_git.f90.o "
stopping due to failed compilation
STOP 1
ormo@rolls5:~/fpm-0.10.1$
please ensure that also your fpm version is up-to-date to what is in the main branch.
In other words, not only the install script, but also the fpm source code.
Otherwise, you will pass the bootstrapping phase, but not the build phase.
@gnikit no pip expert here: does pip pre-package binaries, or is fpm built on the fly? In the latter case (homebrew), this issue will pop up again because gfortran 14 introduced these changes so 0.10.1 does not compile with it anymore (it does with gfortran 13).
That’s why I think it could be a good idea to finalize a round of new features and maybe release 0.10.2 soon.
If there is a matching wheel for your OS, architecture, Python version, it will install the pre-compiled binaries (with all its dependencies, supposedly). If no match is found it will build from source, since we provide wheels for all major OSs, architectures and we are Python version agnostic, almost all installations should be occurring from the wheels.
Doing another patch release sounds good, ping me when you think it’s a good time.
Sorry for for my failed hasty trial which gave readers a wrong impression about your advice.
New trial :
First the version :
ormo@rolls5:~/fpm-0.10 (2).1$ ~/.local/bin/fpm --version
Version: 0.10.1, alpha
Program: fpm(1)
Description: A Fortran package manager and build system
Home Page: GitHub - fortran-lang/fpm: Fortran Package Manager (fpm)
License: MIT
OS Type: Linux
ormo@rolls5:~/fpm-0.10 (2).1$
Next, application to neural-fortran-0.15.1:
ormo@rolls5:~/fpm-0.10 (2).1$ cd ‘/home/ormo/neural-fortran-0.15.1’
ormo@rolls5:~/neural-fortran-0.15.1$ ~/.local/bin/fpm build
simple.f90 done.
simple done.
[100%] Project compiled successfully.
ormo@rolls5:~/neural-fortran-0.15.1$
This looks OK. My earlier attempt was too hasty. Sorry for my mistake. And thank you again.
I was slightly worried there for a minute, because I thought we might have messed up the packaging of fpm into PyPi (which is very possible). Thanks for confirming that everything works.
Yes, fpm-0.10.1 works on my PC thanks to your help.
Yet, I keep worrying about the seemingly elusiveness of subroutine set_string that is in the way of installing with install.sh. :
I shall keep you and Federico Perini informed if something tangible comes out.
The issue on set_string has been fixed at fpm#1013.
It requires a character(:), allocatable input and descriptor_name returns exactly that.
However, that is apparently non-standard behavior that was tolerated until gfortran<=13.
So if you’re trying to build fpm 0.10.1 from source using gfortran-14, it will not work: you need the most up to date code.