Skip to content

Design of FoOtS #1

@paul-martin3

Description

@paul-martin3

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions