Fortran-FOSS-Programmers / Fortran-FOSS-Programmers/FoOtS

Design of FoOtS

Open
#1 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
No language data
Stars
9
Forks
0
PR merge metrics
No merged PRs in 30d

Description

Dear Mr. Zaghi,

I discovered with great interest your project "FoOtS" on GitHub :
https://github.com/Fortran-FOSS-Programmers/FoOtS
Thank you for your work on this project and on your other Open Source Projects.

I am not currently able to contribute to your project, but please find below some remarks whose intention is to be helpful.
1. How does your project compare with the modFileSys project ?
https://bitbucket.org/dftbplus/modfilesys
https://aradi.bitbucket.org/modfilesys/
2. Will your project be usable under Windows ?
For a sample, in Fortran, see for example :
https://groups.google.com/forum/#!msg/comp.lang.fortran/bU02_Q3ZB7s/Xy8F0U5mvckJ
3. Will your project will portable on 32-bits and 64-bits operating systems ?
Under POSIX, the members of the "dirent" structure seemingly differ depending on whether the system is 32 or 64 bits. See for example :
https://gcc.gnu.org/ml/fortran/2007-08/msg00167.html
https://gcc.gnu.org/ml/fortran/2007-08/msg00175.html

On Windows, STDCALL calling convention should be required 32-bits version.
4. Most importantly : instead of defining your own Fortran interface (e.g. the names of procedures), did you consider the possibility to mold your interface on one of the existing libraries ?

My preference would go to the Boost Filesystem Library project :
http://www.boost.org/doc/libs/1_33_1/libs/filesystem/doc/design.htm
http://www.boost.org/doc/libs/1_33_1/libs/filesystem/doc/index.htm
http://www.boost.org/doc/libs/1_33_1/libs/filesystem/doc/portability_guide.htm

Another possibility could be the Fortran POSIX interface :
http://standards.ieee.org/findstds/standard/1003.9-1992.html
IEEE 1003.9-1992 was withdrawn, but some compilers (for example ifort) include access to POSIX functions :
https://software.intel.com/en-us/node/580295
See also the NAG compiler :
http://www.nag.co.uk/nagware/np/r60_doc/f90_unix_dir.html
http://www.nag.co.uk/nagware/np/r60_doc/f90_unix_dirent.html

Another interface (POSIX and Windows) is defined by the functions group "Files Utilities" from the glib library :
https://developer.gnome.org/glib/stable/glib-File-Utilities.html
These functions handle file names with any Unicode characters in them on Windows without having to use ifdefs and the wide character API in the application code.

Yours faithfully,

Paul Martin

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.