GSoC'22: Fortran Playground - FPM integration and stdlib support

Hi everyone,
I’ve integrated fpm into the playground, this means we can use all the libraries that are supported via fpm. For now, I’ve added only stdlib to the list, but we can add support for other packages as well.

The pull isnt merged but you can check it out here

What libraries do you suggest we should add to our playground for users to try out?

Also, please drop any other feedback you have regarding the playground. There are a few more changes left like:

  1. Editor options - (font,color)
  2. Blocking users from seeing playground files.
  3. Some smaller UI changes

I plan to implement them over the course of remaining week.

7 Likes

Can you explain how the integration of fpm works? I have experimented as you know) with the playground, but this aspect is new.

1 Like

We’ve modified our file structure to use fpm for builds now. We fetch fpm and required libraries from source(stdlib for now). We store user code in main.f90 under app directory and run all the executions via fpm instead of using the compiler directly.

User can select the required library on the frontend which gives the API another parameter of the libraries selected, based on this selection our flask app writes dependencies to the fpm.toml file which is transfered to the container, and then the code is compiled via fpm.

Very exciting! Great work @ashirrwad! Can users edit the fpm.toml file directly or is it only a pre-approved list of packages? It would be great if we can run/demo our own fpm packages in it!

1 Like

We can definitely implement it but the security constraints restrict us from allowing every package. As the container on which code is executed has internet access cut off so downloading packages is not possible. It is definitely doable(We can fetch it via our flask app and then transfer it to container for usage) but it may cause its own issues. Right now, we can only utilise a list of pre-fetched packages.

1 Like