LINUX.ORG.RU

Выпуск Fortran Package Manager (fpm) 0.9.0

 , ,


1

1

Группа разработчиков сообщества fortran-lang.org 2 июня 2023 г. представила очередной выпуск пакетного менеджера и системы сборки для языка Fortran — Fortran Package Manager (fpm). Данный пакетный менеджер создавался по образу пакетного менеджера Cargo языка Rust. В настоящее время fpm находится в стадии alpha-версии и активно развивается.

Как система сборки fpm позволяет осуществлять сборку приложений и библиотек, включая динамическую компоновку установленных в системе пакетов; запускать исполняемые файлы проекта, тесты и примеры. При создании нового проекта fpm создаёт шаблон структуры каталогов с простым примером приложения, модуля и программы теста, инициализирует git-репозиторий в каталоге проекта.

Текущий выпуск версии fpm 0.9.0 вносит следующие изменения:

  • Добавлена поддержка metapackages — ряда пакетов, как правило, являющихся системными библиотеками и предоставляющими интерфейсы для разных языков программирования. Пока в список таких пакетов входят: stdlib, minpack, openmp, mpi.
  • Внесены исправления и улучшения, связанные с добавленной в версии 0.8.2 возможностью загрузки пакетов в централизованный репозиторий fpm-registry с помощью интерфейса командной строки.
  • Добавлена возможность сборки fpm с помощью компиляторов из набора Intel OneAPI.

>>> Подробности

★★★★★

Проверено: hobbit ()
Последнее исправление: maxcom (всего исправлений: 2)

Данный пакетный менеджер создавался по образу пакетного менеджера Cargo языка Rust.

Вчера увидел https://github.com/poac-dev/poac :)

Poac (pronounced as /pəʊək/) is a package manager and build system for C++ users, inspired by Cargo for Rust.

dataman ★★★★★
()
Ответ на: комментарий от dataman

Да-да. Но общая тенденция меня немного пугает.

Было забавно пытаться опакетить fpm менеджер, который пытается скачать свои зависимости из интернета для сборки в изолированной среде sandbox для portage. Пришлось сначала опакетить их, а потом пропатчить .toml-файл проекта fpm, чтобы он линковался с динамическими библиотеками, а не пытался собирать статические в подпроектах. Хорошо, что он поддерживал эти средства управления зависимостями.

Есть ещё в некоторой степени похожий проект - FoBiS, там тоже автоматически определяются связи между файлами и последовательность сборки. Но без реестра пакетов

grem ★★★★★
() автор топика
Ответ на: комментарий от grem

Наверное, стоит добавить ссылку на исходники (Фортран и немного Си): https://github.com/fortran-lang/fpm

Но без реестра пакетов

Мне Cargo только этим и нравится. :)
$ cargo search ... часто бывает полезен не только для Раста.

dataman ★★★★★
()

Мне одному кажется идея пакетного менеджера для языка в корне убогой? Скачивание сомнительного кода из сомнительных источников - зачем? В этом плане мне нравится Си, где всё ручками.

Werenter ★★☆
()
Ответ на: комментарий от AnDoR

Да, они ссылаются, что есть другой проект с таким именем, являющийся пакетным менеджером в более общем смысле. Когда они это выяснили, не знаю. Может forpm не очень нравилось называть, походе это название комерческого проекта.

grem ★★★★★
() автор топика
Последнее исправление: grem (всего исправлений: 1)
Ответ на: комментарий от Werenter

Тут больше система сборки, а идея автоматического скачивания меня тоже не очень радует, тем более, что на HPC кластерах всё равно доступа «наружу» нет обычно.

grem ★★★★★
() автор топика
Ответ на: комментарий от Werenter

Мне одному кажется идея пакетного менеджера для языка в корне убогой? Скачивание сомнительного кода из сомнительных источников - зачем? В этом плане мне нравится Си, где всё ручками.

100% программ на Go тянет «пакеты» напрямую с GitHub…

Zhbert ★★★★★
()
Ответ на: комментарий от grem

идея автоматического скачивания

Мне кажется, что с развитием интернетов мир вообще свернул куда-то не туда. Сборка программ тянет все из инета, браузер выполняет какой-то хренпойми какой код на JS без всяких проверок разрешений и автора, программы сливают все в сеть (и хорошо еще если просто стаистику использования и нажатия кнопок, а не конфиденциальную инфу о юзере)…

Zhbert ★★★★★
()
Последнее исправление: Zhbert (всего исправлений: 1)

Любопытно, надо будет потыкать.

visitor
()
Ответ на: комментарий от Werenter

мне нравится Си, где всё ручками

Что ручками? Скачивается исходный код из тех же источников?

dataman ★★★★★
()

посмотрел на список библиотек. NAG library в списке не нашел. Не удивился :)

Мнда... Когда в фортране появились константы и перезача параметров по значению, я сказал «ОК, наконец-то»!

Когда в фортране повились if/endif/do/enddo я терпел. Иногда пользую.

Когда в фортаре появились структуры и из него убрали equivalence и арифметический if я выматерлся и подумал, что «вот, блин, докатились»... :)

Когда в фортране появился свободный синтаксис, я подумал, «ну ладно, наконец-то у людей перфокарты кончились» :)

Когда в фортране появился интерфейс с языком C, я сказал «ну и хорошо» и писал коннекторы в C++ и корбу.

Но вот этого я уже выдержать не могу!! — https://github.com/wavebitscientific/functional-fortran

gns ★★★★★
()
Последнее исправление: gns (всего исправлений: 1)

о боже, ещё один менеджер пакетов. Когда их все, наконец, унифицируют? Ядро же как-то с железом работает через модули, вот и менеджер пакетный должен быть один с плагинами/модулями/аддонами для учёта специфики.

Shushundr ★★★★
()
Ответ на: комментарий от gns

Так NAG library - коммерческая ж библиотека.

Да, с момента выхода FORTRAN IV, Fortran уже не тот.

grem ★★★★★
() автор топика
Ответ на: комментарий от ggrn

НО нет

Это ненадолго. Скоро OpenAI вам всем покажет как надо.

Shushundr ★★★★
()
Ответ на: комментарий от grem

Вот потому и не удивился, что ее нет в списке. :) Я вообще не понимаю, накой этот менеджер пакетов нужен. Ни по способу запуска, ни по способу линковки компилятор фортрана ничем не отличается от компилятора С. И способ установки библиотек для С, имеющийся в системе, обычно всех устраивает. А этот-то нахрена?

gns ★★★★★
()
Ответ на: комментарий от gns

Не знаю, но пишут его люди в общем-то активно пишущие на фортран на работе, судя по по всему.

Насколько понял, основная проблема существующих систем сборки - построение иерархии зависимостей модулей. Видимо, определение того, что от чего зависит не всегда хорошо работает. И им помимо этого захотелось автоматом зависимости подтягивать.

grem ★★★★★
() автор топика

Профессор Фортран умер, но дело его живёт!

Smacker ★★★★★
()
Ответ на: комментарий от ggrn

_Не_нужно_. Всего, что есть в /usr/lib обычно хватает.

gns ★★★★★
()
Ответ на: комментарий от grem

Странная идея. Интерфейсов обычно хватает. Да и сколько тех библиотек? Ну NAG, ну MKL... Ну OpenMP. Распараллеливание на потоки автоматом подтягивается (у Интела, во всяком случае). А тут... Ну выдал тебе линкер сколько-то unresolved external'ов, ну и чо? С С/С++-же зависимости разруливаются системами сборки, коих в избытке.

Я-то полагал, что фортранисты — люди старой закалки, им все эти пищалки и перделки не нужны от слова «совсем».

gns ★★★★★
()
Ответ на: комментарий от token_polyak

Намекаешь, что просто надо было объявить свой ПМ триединым и поплыть насаждать его миру с оружием?

t184256 ★★★★★
()
Ответ на: комментарий от untitl3d

Да вот не похоже. Видать, здоровье у людей уже не то, что б белый пользовать в тех же дозах. Им чего полегче захотелось. Или на кислого потянуло :)

gns ★★★★★
()
Последнее исправление: gns (всего исправлений: 1)
Ответ на: комментарий от gns

Изначально fpm был реализован на haskell, потом переписали на fortran.

Помимо этого участники этого сообщества занимаются разработкой stdlib. Ещё иногда не хватает библиотек и интерфейсов для парсинга параметров командной строки, toml, json, работы со строками, тестирования.

С С/С++-же зависимости разруливаются системами сборки, коих в избытке

Тот же meson и cmake поддерживают сборку модулей для C++ только для MSVC.

Это у нас фортранисты старой закалки и 50 COMMON блоков на файл не предел ;)

grem ★★★★★
() автор топика
Ответ на: комментарий от grem

что на HPC кластерах всё равно доступа «наружу» нет обычно.

В этом случае Meson мне в целом понравился. Ищет зависимости в системе, если нет, то можно сказать как собрать, если очень надо, то можно подготовить для offline сборки (заранее скачать нужное одной командой).

При чём мне удалось запустить hello_world на GTK под windows, когда meson скачал и скомпилировал все зависимости (😜 meson compile и у тебя GTK под виндой).

По сабжу: Meson поддерживает fortran + OpenMP, MPI, Coarrays.

Вот только логичность и user friendly это не про него.

AlexVR ★★★★★
()
Ответ на: комментарий от AlexVR

meson compile и у тебя GTK под виндой

Горячие финские парни...

untitl3d
()
Ответ на: комментарий от crutch_master

Системный :) Все остальное от лукавого или для локальных установок.

gns ★★★★★
()
Ответ на: комментарий от untitl3d

Удачи! Хоть кто-то делом занимается!

gns ★★★★★
()
Ответ на: комментарий от untitl3d

Ага, примерно про это. А пилить новое или легаси поддерживать?

Просто интересно опровержение для смузихлебов.

Zhbert ★★★★★
()
Ответ на: комментарий от grem

Изначально fpm был реализован на haskell, потом переписали на fortran.

Это хорошо, что я в момент прочтения этого прочно сидел на стуле... :)

Ну ниччо, так, эклектичненько.

Это у нас фортранисты старой закалки и 50 COMMON блоков на файл не предел ;)

Да посмотреть, как тот же NAG написан, так не только. Хотя там культура выше явно. Все интерфейсы в стеле 90го фортрана вылизаны... Сейчас, по крайней мере. То, что на торрентах лежит, так семьдесят-седьмой семьдесят-седьмым :)

gns ★★★★★
()
Ответ на: комментарий от hobbit

После того, как собрал Кеды под FreeBSD — все можно :)

gns ★★★★★
()
Ответ на: комментарий от hobbit

Интересно, а можно ли подружить Meson с GTK 2…

Под онтопиком через интерфейс pkg-config нормально работает. Т.е. в meson-файле пишем gtk2_dep = dependency('gtk+-2.0') и в путь.

Под винду вероятно проще будет создать wrap-файлы на бинарные сборки.

AlexVR ★★★★★
()
Ответ на: комментарий от qbbr

Return of the Living Dead: FORTRAN to the Grave (2005) смотрите на всех экранах этой страны вместо новой русалочки. 16+

Udacha
()
Ответ на: комментарий от AnDoR

Самый известный fpm это несомненно пхп, а не все эти штуки. И появился он раньше.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от Werenter

Мне одному кажется идея пакетного менеджера для языка в корне убогой?

Не одному.

Скачивание сомнительного кода из сомнительных источников - зачем?

Это тут ни при чём. Пакетный менеджер может и несомнительный код качать.

А идея убогая потому что от неё несёт языковым фанатизмом. Какая разница на каком языке пакеты? Проект может состоять из частей на разных языках вообще, а зависимости желательно прописывать единообразно и в одном месте. В нормальных ОС уже есть пакетные менеджеры, и незачем изобретать что-то ещё.

firkax ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.