Installieren von TOML Fortran#

Diese Anleitung führt Dich durch die Installation der neuesten Version von TOML Fortran. Falls Du FPM, CMake oder meson verwendest, schaue Dir die Integrationsanleitung an, um TOML Fortran automatisch in mitzukompilieren oder bereits installierte Bibliotheken zu finden.

Installation von conda-forge#

Conda Conda

Dieses Projekt ist für den mamba-Paketmanager verfügbar und wird auf dem conda-forge-Kanal zur Verfügung gestellt. Um den mamba-Paketmanager zu installieren, empfehlen wir den mambaforge-Installer. Falls der conda-forge-Kanal noch nicht aktiviert ist, füge ihn zu Deinen Kanälen hinzu mit

mamba config --add channels conda-forge
mamba config --set channel_priority strict

Wenn der conda-forge-Kanal aktiviert ist, kann TOML Fortran mit mamba installiert werden:

mamba install toml-f

Es ist möglich, alle verfügbaren Versionen von TOML Fortran für Dein System mit mamba aufzulisten:

mamba repoquery search toml-f --channel conda-forge

FreeBSD Ports#

FreeBSD

Ein FreeBSD-Port ist verfügbar

pkg install textproc/toml-f

Falls kein Paket verfügbar ist, kann der Port folgendermaßen gebaut werden

cd /usr/ports/textproc/toml-f
make install clean

Für weitere Informationen schau Dir die toml-f Port-Details an.

Mit spack bauen#

Spack

Dieses Projekt ist mit dem spack-Paketmanager verfügbar. Du kannst TOML Fortran mit dem folgenden Befehl installieren:

spack install toml-f
spack load toml-f

Um auf TOML Fortran in deinem spack-Paket zu verwenden, kannst du eine Abhängigkeit hinzufügen mit

depends_on("toml-f")

Mit EasyBuild#

TOML Fortran ist mit EasyBuild verfügbar. Du kannst die verfügbaren Konfigurationen mit dem Suchoption auswählen

❯ eb -S TOML-Fortran
CFGS1=.../easyconfigs/t/TOML-Fortran
 * $CFGS1/TOML-Fortran-0.2.2-GCC-10.2.0.eb
 * $CFGS1/TOML-Fortran-0.2.2-iccifort-2020.4.304.eb

Wähle eine passende Konfiguration aus und bau TOML Fortran mit

❯ eb TOML-Fortran-0.2.2-GCC-10.2.0.eb -r
== temporary log file in case of crash /tmp/eb-51Jk58/easybuild-NI5Ee1.log
== resolving dependencies ...
== processing EasyBuild easyconfig TOML-Fortran-0.2.2-GCC-10.2.0.eb
== building and installing TOML-Fortran-0.2.2-GCC-10.2.0.eb...
[...]
== Build succeeded for 1 out of 1
== Temporary log file(s) /tmp/eb-51Jk58/easybuild-NI5Ee1.log* have been removed.
== Temporary directory /tmp/eb-51Jk58 has been removed.

TOML Fortran ist nun über ein Umgebungsmodul verfügbar. Für weitere Informationen schau Dir die EasyBuild-Dokumentation an.

Mit Homebrew#

TOML Fortran ist in einem eigenen Tap verfügbar unter grimme-lab/homebrew-qc für den brew Paketmanager. Du kannst den Tap mit dem folgenden Befehl hinzufügen:

brew tap grimme-lab/qc
brew install toml-f

Um mit einem eigenen Fortran-Compiler zu bauen, kannst du die FC-Umgebungsvariable setzen und die vorhandenen Binärdistribution vom Tap ignorieren

export FC=gfortran-11
brew install -s toml-f

Bemerkung

TOML Fortran wurde noch nicht an `homebrew-core https://github.com/homebrew/homebrew-core>`_ eingereicht.

Vom Quellcode bauen#

Um dieses Projekt aus dem Quellcode in diesem Repository zu bauen, benötigst Du

  • einen Fortran-Compiler, der Fortran 2008 unterstützt

    • GFortran 5 oder neuer

    • Intel Fortran 18 oder neuer

    • NAG 7 oder neuer

  • Eines der unterstützten Buildsysteme

    • meson Version 0.55 oder neuer

    • CMake Version 3.9 oder neuer

Erst, hol Dir den Quellcode per Clone des Repositories

git clone https://github.com/toml-f/toml-f
cd toml-f

Mit Meson#

Um dieses Projekt mit meson zu bauen, benötigst Du ein Build-System, wie ninja Version 1.7 oder neuer.

meson setup _build --prefix=/path/to/installation

Du kannst den Fortran-Compiler durch die Umgebungsvariable FC auswählen. Um das Projekt zu kompilieren, rufe den folgenden Befehl auf

meson compile -C _build

Wir arbeiten mit einer Validator-Suite um die Standardkonformität dieser Implementierung zu testen. Um diese Test zu durchführen, benötigst Du eine go-Installation. Die Installation der Validator-Suite wird automatisch von meson in den go-Arbeitsbereich eingebunden. Die Tests werden folgendermaßen aufgerufen

meson test -C _build --print-errorlogs

Um den kompletten Decoder-Test auszuführen, füge den Benchmark-Parameter hinzu. Dieser Test wird zur Zeit fehlschlagen, da die Implementierung noch Unicode-Escape-Sequenzen nicht unterstützt.

meson test -C _build --benchmark --print-errorlogs

Das Programm zum Transkribieren von TOML-Dokumenten in das Testformat ist _build/test/toml2json und kann zur Prüfung auf Basis der Tests verwendet werden. Zum Abschluss kann TOML Fortran wie folgt installiert werden

meson install -C _build

Mit CMake#

Während meson die bevorzugte Bauweise für dieses Projekt ist, bietet es auch CMake-Unterstützung. Konfiguriere den CMake-Build mit

cmake -B_build -GNinja -DCMAKE_INSTALL_PREFIX=/path/to/installation

Ähnlich wie meson kann der Compiler durch die Umgebungsvariable FC ausgewählt werden. Du kannst das Projekt wie folgt bauen

cmake --build _build

To include toml-f in your CMake project, check the [example integration with CMake](https://github.com/toml-f/tf-cmake-example). The validation suite is currently not supported as unit test for CMake builds and requires a manual setup instead using the toml2json binary. Finally, you can install TOML Fortran with

cmake --install _build

Unterstützte Compiler#

Dies ist eine nicht-komplettierte Liste von getesteten Compilern für TOML Fortran. Compiler mit dem Label latest werden getestet mit den kontinuierlichen Integrationen für jeden Commit.

Compiler

Version

Plattform

Architektur

Version

GCC

11.1, 10.3, 9.4, 8.5, 7.5

Ubuntu 20.04

x86_64

0.2.3, latest

GCC

9.4, 6.5

MacOS 10.15.7

x86_64

0.2.3, latest

GCC

11.0

MacOS 11.0

arm64

0.2.3

GCC

9.4

CentOS 7

ppc64le

0.2.3

GCC

9.4

CentOS 7

aarch64

0.2.3

GCC/MinGW

8.1

Window Server 2019

x86_64

0.2.3, latest

GCC/MinGW

5.3

Window Server 2019

x86_64

0.2.3

Intel

2022.0

Ubuntu 20.04

x86_64

0.2.3, latest

Intel

19

OpenSUSE

x86_64

0.2.3

NAG

7.1

RHEL

x86_64

0.2.3

Compiler die aktuell fehlschlagen sind hier dokumentiert, zusammen mit dem letzten Commit, an dem dieses Verhalten aufgetreten ist. Wenn verfügbar ist ein Problem im Issue-Tracker des Projekts oder der Issue-Tracker der Abhängigkeiten verlinkt. Normalerweise ist es sicher, dass ältere Versionen desselben Compilers auch fehlschlagen und dieses Verhalten ist über Platformen und/oder Architekturen konsistent.

Compiler

Version

Plattform

Architektur

Referenz

Flang

20190329

Ubuntu 20.04

x86_64

f066ec6, toml-f#28

NVHPC

20.9

Manjaro Linux

x86_64

f066ec6, toml-f#27