Fortran Package Manager Brad Richardson Ondrej Certik Milan Curcic - - PowerPoint PPT Presentation

fortran package manager
SMART_READER_LITE
LIVE PREVIEW

Fortran Package Manager Brad Richardson Ondrej Certik Milan Curcic - - PowerPoint PPT Presentation

Fortran Package Manager Brad Richardson Ondrej Certik Milan Curcic FortranCon2020 Outline What problems does a package manager solve? How does fpm solve them? Live demo Future development Questions 2 What problems does a


slide-1
SLIDE 1

Fortran Package Manager

Brad Richardson Ondrej Certik Milan Curcic

FortranCon2020

slide-2
SLIDE 2

2

Outline

  • What problems does a package manager solve?
  • How does fpm solve them?
  • Live demo
  • Future development
  • Questions
slide-3
SLIDE 3

3

What problems does a package manager solve?

  • How do I manage my external dependencies?
  • How do I build my project?
  • How do I test my project?
  • How do I create a new project?
  • How do I find available libraries?
slide-4
SLIDE 4

4

How does fpm solve these problems?

Managing Dependencies

  • Specify the name of the dependency
  • Where to find it
  • And what version you need

[dependencies] library1 = { git = “https://github.com/someone/library1.git”, tag = “v1.2.3” } package2 = { git = “https://github.com/other/package2.git”, rev = “a12bc3” }

slide-5
SLIDE 5

5

How does fpm solve these problems?

  • fpm build
  • Fetches any dependencies
  • Scans your sources
  • Builds them in the proper order

Building

slide-6
SLIDE 6

6

How does fpm solve these problems?

  • fpm test
  • A program in test/main.f90 is compiled and run
  • Other test programs can be specified in fpm.toml

Testing

slide-7
SLIDE 7

7

How does fpm solve these problems?

  • fpm new new_project_name [--with-executable] [--with-test]
  • Creates new project with

basic fpm.toml

a module with a single subroutine that prints “Hello, new_project_name!”

(optionally) a program that just calls the provided subroutine

(optionally) a test that just prints “Put some tests in here!”

New Projects

slide-8
SLIDE 8

8

How does fpm solve these problems?

  • COMING SOON
  • `fpm search for_something`
  • Check the registry for packages with matching

names and/or descriptions

Finding Libraries

slide-9
SLIDE 9

9

Demo Time

slide-10
SLIDE 10

10

Future Development

  • Detailed Specification
  • Re-write in Fortran
  • Centralized Registry
slide-11
SLIDE 11

11

Learn more at: https://github.com/fortran-lang/fpm

slide-12
SLIDE 12

12

Questions

Email: everythingfunctional@protonmail.com Github: everythingfunctional Twitter: @everythingfunct

slide-13
SLIDE 13

13

Demo Backup Slides

slide-14
SLIDE 14

14

slide-15
SLIDE 15

15

slide-16
SLIDE 16

16

slide-17
SLIDE 17

17

slide-18
SLIDE 18

18

slide-19
SLIDE 19

19

slide-20
SLIDE 20

20

slide-21
SLIDE 21

21

slide-22
SLIDE 22

22

slide-23
SLIDE 23

23

slide-24
SLIDE 24

24

slide-25
SLIDE 25

25