# Application to the Sovereign Tech Fund

**URL:** <https://fortran-lang.discourse.group/t/application-to-the-sovereign-tech-fund/5755>\
**Category:** Projects\
**Created:** [May 5, 2023, 8:34pm UTC](https://fortran-lang.discourse.group/t/application-to-the-sovereign-tech-fund/5755 "2023-05-05T20:34:27Z")\
**Posts on this page:** 16\
**Page:** 1

<div class="post-metadata">

**Author:** ![awvwgk](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/awvwgk/32/154_2.png) [@awvwgk](https://fortran-lang.discourse.group/u/awvwgk)\
**Post date:** [May 5, 2023, 8:34pm UTC](https://fortran-lang.discourse.group/t/application-to-the-sovereign-tech-fund/5755/1 "2023-05-05T20:34:27Z")

</div>

We recently had a meeting in Berlin with the Sovereign Tech Fund (STF) to evaluate the pilot round of their open source funding program which our community participated in. A big thanks to the people who worked on the projects in our community.

Now with the pilot round coming to an end soon, we have the chance to apply for further funding with the STF.

> **[Applications to the Sovereign Tech Fund](https://sovereigntechfund.de/en/applications/)**
>
> \#

Let’s have a look through our community and identity the projects with the largest impact on Fortran.

A couple of suggestions to get the discussion going:

- support for standard dependencies (MPI, Lapack, HDF5, …) in fpm
- compiling stdlib to LLVM with LFortran
- sponsor implementation of generics in GFortran and/or flang
- language server integration between LFortran and the Modern Fortran VS Code extension

Please feel free to suggest topics here and/or you are interested in working on a particular project (yes, those are paid).

---

<div class="post-metadata">

**Author:** ![Beliavsky](https://avatars.discourse-cdn.com/v4/letter/b/ba8739/32.png) [@Beliavsky](https://fortran-lang.discourse.group/u/Beliavsky)\
**Post date:** [May 5, 2023, 8:43pm UTC](https://fortran-lang.discourse.group/t/application-to-the-sovereign-tech-fund/5755/2 "2023-05-05T20:43:50Z")

</div>

Integrate a Fortran compiler or a compiler collection such as gcc with a large language model. Given a user-defined task in English or another natural language, have the LLM generate Fortran code that is verified to compile. The LLM should accept compiler error and warning messages and use them to modify generated code.

---

<div class="post-metadata">

**Author:** ![awvwgk](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/awvwgk/32/154_2.png) [@awvwgk](https://fortran-lang.discourse.group/u/awvwgk)\
**Post date:** [May 5, 2023, 9:12pm UTC](https://fortran-lang.discourse.group/t/application-to-the-sovereign-tech-fund/5755/3 "2023-05-05T21:12:24Z")

</div>

That sounds to me somewhat out of scope for the STF, I would prefer to focus on projects that help building up our core projects and ensure long term maintainability, rather than creating new projects from scratch.

---

<div class="post-metadata">

**Author:** ![certik](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/certik/32/4_2.png) [@certik](https://fortran-lang.discourse.group/u/certik)\
**Post date:** [May 6, 2023, 4:02am UTC](https://fortran-lang.discourse.group/t/application-to-the-sovereign-tech-fund/5755/4 "2023-05-06T04:02:15Z")

</div>

I need help with administration regarding invoices for STF. I already spent probably at least a dozen hours on it, and it is becoming quite a significant burden on me. Is there anybody here who has time to help out?

---

<div class="post-metadata">

**Author:** ![hkvzjal](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/hkvzjal/32/3055_2.png) [@hkvzjal](https://fortran-lang.discourse.group/u/hkvzjal)\
**Post date:** [May 6, 2023, 11:27am UTC](https://fortran-lang.discourse.group/t/application-to-the-sovereign-tech-fund/5755/5 "2023-05-06T11:27:31Z")

</div>

Some ideas

- enable fpm to generate shared libraries (dll/so) such to help Fortran practitioners make their work available faster to other languages [thread](https://fortran-lang.discourse.group/t/fpm-can-fpm-be-used-to-build-a-dynamic-link-library/5722)
- An autodocstrings like [this](https://marketplace.visualstudio.com/items?itemName=njpwerner.autodocstring) for Fortran within VS Code.
  - FORD would also deserve a review to enable more interactive documentations, à la Sphinx…

- support of parametrized derived types… this would be an awesome feature if it wasn’t kind of half-backed in most compilers. (several threads in discourse on this topic)
- modernize IO for the [MatrixMarket](https://math.nist.gov/MatrixMarket/mmio/f/mmiof77.html) and [Harwell-Boeing](https://netlib.org/utk/papers/matrixmarket/node8.html) matrix formats within the stdlib

---

<div class="post-metadata">

**Author:** ![FedericoPerini](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/federicoperini/32/1750_2.png) [@FedericoPerini](https://fortran-lang.discourse.group/u/FedericoPerini)\
**Post date:** [May 6, 2023, 1:41pm UTC](https://fortran-lang.discourse.group/t/application-to-the-sovereign-tech-fund/5755/6 "2023-05-06T13:41:17Z")

</div>

Shout out to @awvwgk and STF for the great leadership on this opportunity.

I agree that it would be the most impactful to build up on existing projects, which is less open-ended than starting off with new ones. Here’s some further ideas I’d be happy to help with:

- fpm standard dependencies: we have openmp, MPI and stdlib in place. Enabling libraries without build instructions is great. Next in line I think there would be:

- Configuration file serializers. One of Fortran’s (at least perceived) bottlenecks. I recently discovered how powerful TOML-Fortran is: with the JSON plug-in, one can read/write to both formats with the same code. This library could be extended to YAML and INI for example.

- Fortran Plotting Library (at least for 2D plotting). “new” project, that would fill one of the biggest gaps Fortran has with other languages. We could provide a high-level API on the style of Matlab, Matplotlib, Matplot++, but with far better array support.

---

<div class="post-metadata">

**Author:** ![hkvzjal](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/hkvzjal/32/3055_2.png) [@hkvzjal](https://fortran-lang.discourse.group/u/hkvzjal)\
**Post date:** [May 6, 2023, 2:39pm UTC](https://fortran-lang.discourse.group/t/application-to-the-sovereign-tech-fund/5755/7 "2023-05-06T14:39:49Z")

</div>

> [@FedericoPerini](#):
>
> ONNX

As for the data formats, it would be protobuf that would need to be interfaced. Onnx provides an inference engine using protobuf as the data representation for exchange.

> [@FedericoPerini](#):
>
> Fortran Plotting Library (at least for 2D plotting)

Recently I was looking at all the 2D plotters referenced in the fortran-lang site, from all the options, I found this one [GitHub - kookma/ogpf: ogpf is Object based interface to GnuPlot from Fortran 2003, 2008 and later](https://github.com/kookma/ogpf) to be the most user-friendly giving a matplotlib-like experience. Maybe get some inspiration out of it?

---

<div class="post-metadata">

**Author:** ![certik](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/certik/32/4_2.png) [@certik](https://fortran-lang.discourse.group/u/certik)\
**Post date:** [May 6, 2023, 2:44pm UTC](https://fortran-lang.discourse.group/t/application-to-the-sovereign-tech-fund/5755/8 "2023-05-06T14:44:12Z")

</div>

I strongly recommend focusing on the core technologies, that enable the community to deliver the rest. I propose the core technologies are fpm, maybe stdlib, and then compilers: I propose LFortran and then helping GFortran and Flang, as @awvwgk mentioned above.

Everything else I would not fund, until the core technologies are mature.

---

<div class="post-metadata">

**Author:** ![interkosmos](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/interkosmos/32/296_2.png) [@interkosmos](https://fortran-lang.discourse.group/u/interkosmos)\
**Post date:** [May 6, 2023, 5:49pm UTC](https://fortran-lang.discourse.group/t/application-to-the-sovereign-tech-fund/5755/9 "2023-05-06T17:49:55Z")

</div>

When is the funding expected to start?

---

<div class="post-metadata">

**Author:** ![awvwgk](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/awvwgk/32/154_2.png) [@awvwgk](https://fortran-lang.discourse.group/u/awvwgk)\
**Post date:** [May 6, 2023, 8:38pm UTC](https://fortran-lang.discourse.group/t/application-to-the-sovereign-tech-fund/5755/10 "2023-05-06T20:38:22Z")

</div>

For the last contract we needed two months from application to the final contract, but I am confident that the process could be faster this time. Maybe mid to end of June?

---

<div class="post-metadata">

**Author:** ![arteevraina](https://avatars.discourse-cdn.com/v4/letter/a/b5ac83/32.png) [@arteevraina](https://fortran-lang.discourse.group/u/arteevraina)\
**Post date:** [May 12, 2023, 9:17am UTC](https://fortran-lang.discourse.group/t/application-to-the-sovereign-tech-fund/5755/11 "2023-05-12T09:17:21Z")

</div>

Thank you admins (@awvwgk @certik) for taking initiatives for the STF.

Some of ideas regarding registry-backend :

- Feature development for the dependencies connection in the registry backend. This will involve maintaining the the data for the dependencies of the packages.

- Implementing the metrics for the packages for which they get rated above the other ones based upon the usage / downloads. Also, implementing a rating & report mechanism. This will notify the admins regarding spam/malicious packages.

- Implementing more upload restrictions that we discover in time after this testing period and in future.

- Have `fpm` playground integrated inside the `fortran` playground that should interact with the registry and users can try out packages there as well. (@henilp105 )

---

<div class="post-metadata">

**Author:** ![awvwgk](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/awvwgk/32/154_2.png) [@awvwgk](https://fortran-lang.discourse.group/u/awvwgk)\
**Post date:** [May 12, 2023, 3:49pm UTC](https://fortran-lang.discourse.group/t/application-to-the-sovereign-tech-fund/5755/12 "2023-05-12T15:49:55Z")

</div>

Thanks everyone for the suggestion, a lot of good ideas already.

Another thing to consider is whether we want to look beyond programming related task and into further developing our community. For example we could create a project manager position to coordinate the development across our projects and help with administrative work as well.

Let’s really plan for the long-term here. Imagine we can provisions three full time positions for one and a half year, what would be our milestones (6 months for each)?

---

<div class="post-metadata">

**Author:** ![awvwgk](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/awvwgk/32/154_2.png) [@awvwgk](https://fortran-lang.discourse.group/u/awvwgk)\
**Post date:** [May 18, 2023, 5:08pm UTC](https://fortran-lang.discourse.group/t/application-to-the-sovereign-tech-fund/5755/13 "2023-05-18T17:08:43Z")

</div>

Here is the current outline of the proposal (this is a wiki post, feel free to provide edits):

## Fortran package manager

### T1: Improve and maintain registry backend

_deliverables_:

- D1.1: Implement metrics for uploaded packages
- D1.2: Add possibility to report packages
- D1.3: Provide functionality for security related incidents
- D1.4: Improve upload restrictions in backed

_funding_:

- 40 hrs/week for 6 months

### T2: Built-in dependencies and metapackages

_deliverables_:

- D2.1 Provide metapackages for math libraries (BLAS, LAPACK, …)
- D2.2: Provide metapackages to discover data format libraries (HDF5, netCDF, …)
- D2.3: Include robust feature selection for coarrays

_funding_:

- 40 hrs/week for 6 months

### T3: Shared library support and language interoperability

_deliverables_:

- D3.1: Generation of shared libraries
- D3.2: Discovery of installed fpm packages
- D3.3: Integration with other (language-specific) build systems

_funding_:

- 40 hrs/week for 6 months

## Fortran Standard library

### T4: Linear algebra support

_deliverables_:

- D4.1: Provide accessible interfaces for common linear algebra operations
- D4.2: Support common IO formats for matrices and tensors

_funding_:

- 40 hrs/week for 6 months

### T5: System library interfaces

_deliverables_:

- D5.1: Provide subprocessing module
- D5.2: Provide file system module

_funding_:

- 40 hrs/week for 6 months

## Fortran language server

### T6: Integration with LFortran

_deliverables_:

- D6.1: fortls can use LFortran to retrieve diagnostics
- D6.2: LFortran support for requests from fortls
- D6.3: pylsp is used as backend in fortls

_funding_:

- 40 hrs/week for 6 months

## LFortran Compiler

### T7: Create error resilient AST parser

_deliverables_:

- D7.1: LFortran parser can recover parsing errors gracefully and store partial Fortran AST
- D7.2: LFortran can translate partial AST to ASR for error analysis and diagnostic messages
- D7.3: LFortran parser can provide suggestions for fixing errors from partial AST

_funding_:

- 40 hrs/week for 6 months

### T8: Compile Fortran stdlib to LLVM

_deliverables_:

- D8.1: LFortran can translate all of stdlib to ASR
- D8.1: LFortran can translate all of stdlib to LLVM

_funding_:

- 40 hrs/week for 6 months

### T9: Support directive based language extensions

_deliverables_:

- D9.1: LFortran parser can recognize directives and pragmas (OpenMP, OpenACC or similar)
- D9.2: LFortran parser can extract docstrings
- D9.3: Support for translating directives in ASR

_funding_:

- 40 hrs/week for 6 months

---

<div class="post-metadata">

**Author:** ![awvwgk](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/awvwgk/32/154_2.png) [@awvwgk](https://fortran-lang.discourse.group/u/awvwgk)\
**Post date:** [May 22, 2023, 6:06pm UTC](https://fortran-lang.discourse.group/t/application-to-the-sovereign-tech-fund/5755/14 "2023-05-22T18:06:37Z")

</div>

I’ll send the application to the STF tomorrow.

---

<div class="post-metadata">

**Author:** ![interkosmos](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/interkosmos/32/296_2.png) [@interkosmos](https://fortran-lang.discourse.group/u/interkosmos)\
**Post date:** [July 11, 2023, 9:28pm UTC](https://fortran-lang.discourse.group/t/application-to-the-sovereign-tech-fund/5755/15 "2023-07-11T21:28:58Z")

</div>

Any updates regarding the proposal?

---

<div class="post-metadata">

**Author:** ![awvwgk](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/awvwgk/32/154_2.png) [@awvwgk](https://fortran-lang.discourse.group/u/awvwgk)\
**Post date:** [July 15, 2023, 7:28am UTC](https://fortran-lang.discourse.group/t/application-to-the-sovereign-tech-fund/5755/16 "2023-07-15T07:28:32Z")

</div>

We are in contact with the STF, the contract is in review with their legal support, so we hopefully have it soon to sent it to NumFocus and create the job postings here.
