-
Notifications
You must be signed in to change notification settings - Fork 0
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.
-
How does your project compare with the modFileSys project ?
https://bitbucket.org/dftbplus/modfilesys
https://aradi.bitbucket.org/modfilesys/ -
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 -
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.htmlOn Windows, STDCALL calling convention should be required 32-bits version.
-
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.htmAnother 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.htmlAnother 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