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

Press F to Fortran

a1ba
()

Я на федоре часто ванильное ставлю, потом лень удалять. Пока в один прекрасный момент больше не бутится.

Интересно можно узнать какие патчи сует Федора в ваниль?

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

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

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

Кстати, а есть ли в принципе компилируемый язык со стабильным ABI(ну или относительно стабильным), кроме Си, крестов, фортрана и паскаля?

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

Я так понимаю, что всякий язык, понимаемый GCC (в смысле compiler collection), опирается на его ABI. То есть, еще ADA и ObjecttiveC. На обоих языках кода под Linux я не видел от слова совсем. Коллега мой когда-то в прошлом веке писал на Аде для VAXa, с тех пор новостей про этот язык я не слышал. ObjC — это коллеги за углом, но у них теперь есть модный Сфифт :) Ну вот еще Пролог и Лисп можно вспомнить из условно живых, но у них не ABI, там же машинного кода нет, там ниже исполняющая система.

А вот, Ocaml, кстати, не требует тащить пять компиляторов и восемь рантаймов.

Тут не в ABI дело, основной бардак проистекает от неустоявшейся исполняющей системы. У того же Хаскеля добавление фич означает изменения в рантайме. Вот и придумывают всякие ghcup.

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

Таких много: pacman, apt, yum, dnf, portage, nix и тд. Выбирай на свой вкус.

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

На обоих языках кода под Linux я не видел от слова совсем.

with Ada.Text_IO; use Ada.Text_IO;
procedure Hello is
begin
   Put_Line ("Hello LOR!");
end Hello;

$ gnat make hello.adb
$ stat hello

File: hello
Size: 30912

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

Попробуй nix, для разработки как раз самое самое. На десктопе применимость крайне сомнительна, а вот для разработки - вполне.

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

А теперь что-нибудь более содержательное и с unchecked_conversion пжалста! :)

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

Нет, компилятор таки понадобится, но зависимости между файлами проекта оно разрулит.

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

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

Странный ход мысли. Ручками ты же также «скачиваешь сомнительный код из сомнительных источников» и добавляешь в свою сишечку, только вручную. Более того, вручную ты можешь скачать из еще более сомнительных источников. Современные языки не обязывают тебя использовать пакетные менеджеры. Если у тебя такая сильная паранойя, то все еще можешь добавить пакет вручную, скачав его из источника, который тебе кажется не сомнительным.

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

Чаще симейк с месоном встречал, честно говоря, так что нет

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

а, ну нормас, очередной пакетный менеджер для плюсов, теперь то точно заживем

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

В нормальных ОС уже есть пакетные менеджеры, и незачем изобретать что-то ещё.

К сожалению, любимые нами классически опекеченные зависимости, непротиворечивые и недублирующиеся, rpm-спеки и прочие ебилды нынче не в моде: системный менеджер если и зовут, то чтобы поставить условные build-essential, curl, unzip и virtualenv в свежем контейнере, а дальше уже сплошные curl ... | bash и pip install во все поля, to name a few. Неудивительно, что народ разучился в пакеты с этими докерами, запечёнными зависимостями, жестко прибитыми версиями и статической линковкой.

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

И поэтому компиляция проектов на C/C++ это всегда гребанная лотерея (я тут пробовал собирать эмуляторы для современных консолей из исходников и это тот еще зоопарк). Вместо того, чтобы набрать одну-две стандартных команд, как в Maven/Gradle для Java, нужно бегать с высунутым языком и качать самому исходники, править CMake и заниматься какой-то ерундой, которую можно было легко автоматизировать и стандартизировать, если бы был вменяемый пакетный менеджер.

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

Не, поддерживается — это когда туда иногда смотрят и баги правят. А когда в код перестают заглядывать, и он просто работает, вот тогда код переходит в состояние легаси.

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

Стандартизировать и автоматизировать можно нечто регулярное. А вот бардак в голове разработчика и зоопарк с библиотеками никаким пакетным менеджером не вылечишь.

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

Для начала стандартную макробиблиотеку хотя бы, ala SYSMAC.SML из RT-11

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

Само по себе разнообразие библиотек неплохо. Плохо когда каждая из них уж слишком узко направлена: библиотека для удаления пробела, библиотека для перевода в нижний регистр, библиотека для перевода в верхний регистр, библиотека для замены «-» на «_», библиотека для сложения двух целых чисел и т.д.

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

Ну не без этого. И еще нерабочий код коммитят :)

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

интерактивный компилятор

Это интерпретатор, что ли?

P.S. Хотя нет, я прошёл по ссылке, там таки компилятор в LLVM. Тогда интересно, в чём заключается «интерактивность». :)

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

Он и компилировать может и его можно использовать, по словам авторов, как интерпритатор, в том числе для Jupiter Notebook.

По крайней мере, если его просто запустить, то запустится консоль как для python.

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

Особенно в этом плане питон доставляет,когда пакету нужны модули,которых нет в репах. Ставишь их такой pip’ом, и забываешь, а потом у тебя в дистре решают их опакетить. И начинается веселье…

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

Хе-хе, при этом pip list выводит список всех site-packages пакетов, как системных, так и пользовательских. Чтобы узнать что именно установлено пользователем, приходится лезть в пользовательских каталог site-packages и смотреть там.

А ninja-python (сторонний проект в виде wrapper) создан так, что тащит с собой свой ninja и опакетить его как wrapper поверх системного непросто, из-за того, как он устроен.

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

Когда у меня такое было, я просто поставил пакману ключ --overwrite '*' и не заморачивался.

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

Хотя бы сабж для удовлетворения собственных потребностей в сборке своих же программ.

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

Ну вот да,там и без этого неразберихи хватает.

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