Skip to content

GSoC 2021 Project ideas

Milan Curcic edited this page Feb 2, 2021 · 41 revisions

GSoC 2021 Project Ideas

Fortran Standard Library (stdlib)

Strings

Related issues: #69, #241, #268

WIP: #269

Containers

Potential related issues: #27, #68

OS integration

Short description: POSIX and Windows API integration for file system and OS operations, subprocesses

Potential related issues: #22, #308

Potential related discussion: !439

Fortran Package Manager (fpm)

Local package registry

Related issues: #321 #35

Version constraint resolution

Preprocessor support

Support for preprocessors which are not built-in to the compiler should be provided by fpm. A manifest syntax should be developed and implemented as additional (optional) step in the fpm build backend.

The package manifest preferably allows:

  • to quickly select established preprocessors (fypp, fpp, ...)
  • to define preprocessor variables in a preprocessor independent way
  • to define a custom preprocessor
  • to select the file suffixes to be preprocessed

Selection of preprocessing should happen on per project basis, i.e. multiple preprocessors might be required. The preprocessor is usually external to fpm and fpm must be able to report useful errors for missing preprocessors.

Related issues:

  • #78: support for third-party preprocessors (e.g. fypp)

  • #308: Fortran-based smart code generation in fpm

Extended Testing Support

Aim of this project is it to create a manifest specification to provide defaults to executable targets in fpm projects. Information can be passed as environment variables, command line arguments or as runner.

  • programs should have a way to find resources of which the relative position within the project source directory is known
  • the current binary directory to access other targets within a project
  • default runners like mpirun/cafrun or scripts from test frameworks should be usable to launch programs
  • a general syntax to define environment variables and command line arguments should be defined

Some features should be implemented directly in fpm, while more elaborated functionality could be implemented in a separate fpm package as offical fortran-lang fpm package.

Mentors: Sebastian Ehlert (@awvwgk)

Related issues: #179

Related discussions: #328

Source Code Distribution with Foreign Build Systems

Aim of this project is to enable fpm to create source code distributions of itself that can be bootstrapped without fpm.

  • allow fpm to generate source code distributions with non-fpm build systems
  • generated source code distribution should allow to build fpm project without fpm, git or internet access
  • potential third-party build systems are CMake and meson
  • allows easier distribution and packaging of fpm via various packaging ecosystems

Mentors: Sebastian Ehlert (@awvwgk)

Related issues: #69 #70

Standard Conformance Suite

LFortran

Other

Clone this wiki locally