Thanks to visit codestin.com
Credit goes to github.com

Skip to content

ENH: About the "hard coded" options in IntelVisualFCompiler of Numpy's distutils #21484

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
dongkeun-oh opened this issue May 10, 2022 · 4 comments · Fixed by #24532
Closed

ENH: About the "hard coded" options in IntelVisualFCompiler of Numpy's distutils #21484

dongkeun-oh opened this issue May 10, 2022 · 4 comments · Fixed by #24532

Comments

@dongkeun-oh
Copy link
Contributor

Proposed new feature or change:

I just found that the compiler options are written in the getflags function in each of the fortran compiler classes.
As a moderate approach to specify such a "hard coded" flags for each of compiler, it looks reasonable to force lowercase naming with underscore postfix in consistent with the GNU compiler's default condition.
So, the Intel fortran class of IntelVisualFCompiler has /nologo, /MD, /nbs, /names:lowercase, and /assume:underscore flags by default.
However, this will lead a trouble, whenever you attempt to generate a f2py python class out of the established source codes, particularly including C subroutines, where they are supposed to be built on the standard options of uppercase (without underscore) naming convention.
Actually, I solved such a matter by my own brute force modification for numpy/distutils/fcompiler/intel.py to remove those options.
So, would you make it plain by default without /names:lowercase, and /assume:underscore, and to enable
any user defined configuration for the distutils or f2py projects?

@mattip
Copy link
Member

mattip commented May 10, 2022

If things are working as expected, you should be able to override these defaults by setting environment variables.

@dongkeun-oh
Copy link
Contributor Author

dongkeun-oh commented May 11, 2022

Neither setting F77, F90, FFLAGS, F77FLAGS, F90FLAGS nor FOPT doesn't work, as I tried according to the advice.
They never override the default setting; f2py is tested on windows 10, python 3.9.7 (intelpython) and numpy 1.21.2.
Is there any other spell which I missed, or any misunderstanding of mine?

@HaoZeke
Copy link
Member

HaoZeke commented May 18, 2022

Updating distutils at this stage might not be a good idea (it is EOL), but documenting existing "forced" options would be welcome.

Additionally, the Intel Fortran toolchain itself has been rehauled into ifx (the LLVM set) so this might not be a good thing to patch now.

@HaoZeke HaoZeke self-assigned this May 20, 2022
@HaoZeke
Copy link
Member

HaoZeke commented May 20, 2022

The fix here would be checking the environment variables, if any of them are set, the defaults will not be applied.

Also the documentation can be clearer on our defaults.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants