# Will the Fortran Community participate at GSoC 2024?

**URL:** <https://fortran-lang.discourse.group/t/will-the-fortran-community-participate-at-gsoc-2024/7266>\
**Category:** Projects\
**Created:** [January 24, 2024, 9:16am UTC](https://fortran-lang.discourse.group/t/will-the-fortran-community-participate-at-gsoc-2024/7266 "2024-01-24T09:16:26Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![Carltoffel](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/carltoffel/32/1680_2.png) [@Carltoffel](https://fortran-lang.discourse.group/u/Carltoffel)\
**Post date:** [January 24, 2024, 9:16am UTC](https://fortran-lang.discourse.group/t/will-the-fortran-community-participate-at-gsoc-2024/7266/1 "2024-01-24T09:16:26Z")

</div>

I haven’t heard anything about this year’s GSoC. Maybe I missed it, but if not, then this is a reminder. 🙂

> **[Google Summer of Code](https://summerofcode.withgoogle.com/)**
>
> Google Summer of Code is a global program focused on bringing more developers into open source software development.

“GSoC 2024 Org apps open until Feb 6”

---

<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:** [January 25, 2024, 12:34am UTC](https://fortran-lang.discourse.group/t/will-the-fortran-community-participate-at-gsoc-2024/7266/2 "2024-01-25T00:34:37Z")

</div>

Yes, Fortran-lang is applying as a GSoC organization.

---

<div class="post-metadata">

**Author:** ![ivanpribec](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/ivanpribec/32/3290_2.png) [@ivanpribec](https://fortran-lang.discourse.group/u/ivanpribec)\
**Post date:** [February 5, 2024, 4:44pm UTC](https://fortran-lang.discourse.group/t/will-the-fortran-community-participate-at-gsoc-2024/7266/3 "2024-02-05T16:44:01Z")

</div>

The deadline for organizations to apply is **February 6, 2024 at 18:00 UTC** or in roughly 25 hours.

Is any kind of update or other help needed?

---

<div class="post-metadata">

**Author:** ![gnikit](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/gnikit/32/1213_2.png) [@gnikit](https://fortran-lang.discourse.group/u/gnikit)\
**Post date:** [February 5, 2024, 6:28pm UTC](https://fortran-lang.discourse.group/t/will-the-fortran-community-participate-at-gsoc-2024/7266/4 "2024-02-05T18:28:08Z")

</div>

Yeap, we will hopefully submit the application today or tomorrow morning.

---

<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:** [February 6, 2024, 7:17am UTC](https://fortran-lang.discourse.group/t/will-the-fortran-community-participate-at-gsoc-2024/7266/5 "2024-02-06T07:17:19Z")

</div>

I submitted the application. Can everybody please help with this ideas page:

> **[GSoC 2024 Project ideas](https://github.com/fortran-lang/webpage/wiki/GSoC-2024-Project-ideas)**
>
> New Fortran webpage. Contribute to fortran-lang/webpage development by creating an account on GitHub.

It needs to be greatly improved and updated with good projects, and a mentor list.

---

<div class="post-metadata">

**Author:** ![vmagnin](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/vmagnin/32/28_2.png) [@vmagnin](https://fortran-lang.discourse.group/u/vmagnin)\
**Post date:** [February 7, 2024, 6:17pm UTC](https://fortran-lang.discourse.group/t/will-the-fortran-community-participate-at-gsoc-2024/7266/6 "2024-02-07T18:17:47Z")

</div>

Note also that:

> GCC has applied to be a GSoC mentoring organization in 2024. If accepted, the primary org-admin will be [Martin Jambor](mailto:mjambor@suse.cz).  
> [SummerOfCode - GCC Wiki](https://gcc.gnu.org/wiki/SummerOfCode)

Several project ideas concerning GFortran are listed on that page.

---

<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:** [February 7, 2024, 7:50pm UTC](https://fortran-lang.discourse.group/t/will-the-fortran-community-participate-at-gsoc-2024/7266/7 "2024-02-07T19:50:07Z")

</div>

I suggest that you tweet this from your @fortranlang channel – otherwise I can do so from @fortrantip. Even people who are not potential GSoC participants could learn from the list what the current status and gaps of the Fortran ecosystem are.

Regarding one of the ideas,

> ## File system library (stdlib)
> 
> Currently, file system operations such as listing contents of directories, traversing directories, and similar, are restricted to 3rd party libraries and compiler extensions that are platform-specific and not portable. This project will entail designing and implementing a cross-platform solution for file system operations.

I wonder why the project below is insufficient, at least as a starting point.

> **[GitHub - scivision/fortran-filesystem: Object-oriented Fortran filesystem...](https://github.com/scivision/fortran-filesystem)**
>
> Object-oriented Fortran filesystem path manipulation library, based on C++17 filesystem. - GitHub - scivision/fortran-filesystem: Object-oriented Fortran filesystem path manipulation library, based...

---

<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:** [February 8, 2024, 7:32pm UTC](https://fortran-lang.discourse.group/t/will-the-fortran-community-participate-at-gsoc-2024/7266/8 "2024-02-08T19:32:10Z")

</div>

I would like to propose the following for fpm and call for prospective mentors to fpm-related projects.  
If this is of interest, maybe it could replace the following '23 proposals:

- Source Code Distribution with Foreign Build Systems (fpm) → embedded
- Support for C++ (fpm) → was discarded last year
- Parallel builds (fpm) → embedded

The focus would be on strengthening the fpm build process addressing the following reqiests from the community:

* * *

**Fortran Package Manager: Build Process Enhancements**

**Project Overview:**  
Fortran Package Manager (fpm) is pivotal for long-term Fortran success. This GSoC project aims to improve fpm’s build process by improving dependency detection, optimizing linking, implementing shared libraries, ensuring safe concurrent builds, and introducing external Makefile generation.

**Project Tasks:**

1. **Dependency Detection:**
  - Enhance fpm’s dependency detection to minimize rebuilds by parsing or hashing module/submodule files or parsing procedure interfaces in module files. fpm should not rebuild dependencies to a module whose public interface has not changed.

2. **Linking Optimization:**
  - Replace one-liner linking with static libraries to prevent line buffer overflow in Windows builds.

3. **Shared Library Implementation:**
  - Introduce support for shared library targets for project flexibility.

4. **Safe Concurrent Builds:**
  - Implement file locking for safe concurrent invocations, especially during OpenMP builds, to prevent data corruption.

5. **External Makefile Generation:**
  - Enable generation of external Makefiles akin to `cmake -G` for advanced project configuration.

**Expected Outcomes:**

- Enhanced dependency tracking and reduced rebuild times.
- Improved reliability in linking, particularly in Windows.
- Increased project versatility with shared library support.
- Safer concurrent builds through file locking.
- Greater project configuration flexibility with external Makefile generation.

**Difficulty:**

Intermediate, 175 hours.

**Mentors:**

- Federico Perini @FedericoPerini, Jose Alvez @hkvzjal, [call for interest!]

**Project Repository:** [GitHub - fortran-lang/fpm: Fortran Package Manager (fpm)](https://github.com/fortran-lang/fpm)

**Prerequisites for Applicants:**

- Proficiency in Fortran.
- Understanding of package management and build systems.
- Strong software development skills.

**Conclusion:**  
This GSoC project invites contributions to improving the Fortran Package Manager strengthening and speeding up its build process.

---

<div class="post-metadata">

**Author:** ![milancurcic](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/milancurcic/32/2_2.png) [@milancurcic](https://fortran-lang.discourse.group/u/milancurcic)\
**Post date:** [February 8, 2024, 7:52pm UTC](https://fortran-lang.discourse.group/t/will-the-fortran-community-participate-at-gsoc-2024/7266/9 "2024-02-08T19:52:49Z")

</div>

Run Fortran on Apple Vision Pro 🙂

---

<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:** [February 8, 2024, 8:07pm UTC](https://fortran-lang.discourse.group/t/will-the-fortran-community-participate-at-gsoc-2024/7266/10 "2024-02-08T20:07:11Z")

</div>

@FedericoPerini go ahead and add it to the ideas list.

---

<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:** [February 8, 2024, 8:39pm UTC](https://fortran-lang.discourse.group/t/will-the-fortran-community-participate-at-gsoc-2024/7266/11 "2024-02-08T20:39:06Z")

</div>

Here another idea in replacement of the **Faster string to number conversion (stdlib)** one

## String to number conversion (stdlib)

This project will enhance stdlib’s string handling capabilities for fast number parsing in Fortran.

Recently, a new module was added to stdlib called [`stdlib_str2num`](https://github.com/fortran-lang/stdlib/blob/master/src/stdlib_str2num.fypp) which implements fast routines for converting strings to numerical types. The participant would get familiar with these implementations and subsequently:

- Create a full benchmark suite for the string to number conversion, across compiler vendors, operating systems, and CPU architectures.

- Explore ways to improve robustness and efficiency, e.g. error handling.

- Propose a shallow interface for the [string\_type](https://github.com/fortran-lang/stdlib/blob/master/src/stdlib_string_type.fypp) facility in stdlib.

- Propose an enhancement to the [loadtxt](https://github.com/fortran-lang/stdlib/blob/master/src/stdlib_io.fypp) facility function to speed-up file reading.

- Depending on the advancement, the participant is also encouraged to include a roadmap for inclusion of the inverse conversion by following the initiative in this thread [ryu-based to\_string function](https://github.com/fortran-lang/stdlib/issues/627)

**Relevant thread on Fortran Discrouse** : [Faster string to double](https://fortran-lang.discourse.group/t/faster-string-to-double/2208)

**Expected outcomes:** Enhancement of stdlib fast string to number conversion

**Skills preferred:** Fortran and C programming, understanding of floating-point arithmetic

**Difficulty:** intermediate, 175 hours

**Mentors:**  
José Alves @hkvzjal  
[call for mentors]  
(@Carltoffel @everythingfunctional @ivanpribec you were listed in the previous proposal, do you want to stay in the list?)  
@milancurcic (I added the shallow interface for string\_type following your comment in the PR)

---

<div class="post-metadata">

**Author:** ![gnikit](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/gnikit/32/1213_2.png) [@gnikit](https://fortran-lang.discourse.group/u/gnikit)\
**Post date:** [February 8, 2024, 8:57pm UTC](https://fortran-lang.discourse.group/t/will-the-fortran-community-participate-at-gsoc-2024/7266/12 "2024-02-08T20:57:46Z")

</div>

Very good, I’ll go ahead and purge the completed projects sometime this week (hopefully sooner rather than later).

---

<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:** [February 8, 2024, 9:15pm UTC](https://fortran-lang.discourse.group/t/will-the-fortran-community-participate-at-gsoc-2024/7266/13 "2024-02-08T21:15:48Z")

</div>

@hkvzjal go ahead and put it in.

---

<div class="post-metadata">

**Author:** ![gnikit](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/gnikit/32/1213_2.png) [@gnikit](https://fortran-lang.discourse.group/u/gnikit)\
**Post date:** [February 8, 2024, 9:44pm UTC](https://fortran-lang.discourse.group/t/will-the-fortran-community-participate-at-gsoc-2024/7266/14 "2024-02-08T21:44:54Z")

</div>

I made a post for us to track the new projects. Please discuss there any new project ideas

> [@Fortran-lang GSoC 2024 Project ideas & mentors](https://fortran-lang.discourse.group/t/fortran-lang-gsoc-2024-project-ideas-mentors/7367):
>
> We have applied for GSoC 2024 and now it would be a good time to start brainstorming about potential projects we want Fortran-lang to offer and willing mentors to supervise them. Ideas do not necessarily have to be for projects under the Fortran-lang GitHub organisation, e.g. fpm, stdlib, fortls, etc. The GSoC projects are hosted in Fortran-lang’s wiki web page
