Will the Fortran Community participate at GSoC 2024?

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

“GSoC 2024 Org apps open until Feb 6”

5 Likes

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

4 Likes

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?

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

3 Likes

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

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

1 Like

Note also that:

GCC has applied to be a GSoC mentoring organization in 2024. If accepted, the primary org-admin will be Martin Jambor.
SummerOfCode - GCC Wiki

Several project ideas concerning GFortran are listed on that page.

2 Likes

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.

1 Like

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:

Project Repository: GitHub - fortran-lang/fpm: Fortran Package Manager (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.

4 Likes

Run Fortran on Apple Vision Pro :slight_smile:

2 Likes

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

1 Like

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 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 facility in stdlib.

  • Propose an enhancement to the loadtxt 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

Relevant thread on Fortran Discrouse: Faster string to double

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)

3 Likes

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

1 Like

@hkvzjal go ahead and put it in.

1 Like

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