LINUX.ORG.RU

LLVM Foundation одобрил включение компилятора F18 в проект LLVM

 , ,


0

1

На прошедшей встрече разработчиков EuroLLVM’19 (April 8 - 9 in Brussels / Belgium), после очередного обсуждения, совет директоров LLVM Foundation одобрил включение компилятора F18 (Fortran) и его среду выполнения в проект LLVM.


Вот уже несколько лет разработчики NVidia занимались разработкой фронтэнда Flang для языка Fortran в рамках проекта LLVM. Недавно они приступили к его переписыванию с языка C на язык C++ (с использованием возможностей стандарта C++17). Новый проект, получивший название F18, большей частью поддерживает возможности реализованные проектом Flang, реализует поддержку стандарта Fortran 2018 и поддержку OpenMP 4.5.

Фонд LLVM рекомендовал рассмотреть изменение имени проекта на более приемлемое и более очевидное для новых разработчиков и списков рассылки. Также проекту F18 было рекомендовано рассмотреть возможность избавления привязки к стандарту C++17. Данное пожелание не блокирует принятие проекта в структуру LLVM, но пока мешает взаимодействию с определёнными элементами инфраструктуры проекта LLVM (например, ботами сборки и интеграцией с официальными выпусками).

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

★★★★★

Проверено: Shaman007 ()
Последнее исправление: grem (всего исправлений: 5)

Также проекту F18 было рекомендовано рассмотреть возможность избавления привязки к стандарту C++17

Правильно. Скоро ведь уже C++20 будет – пора бы уже задуматься о переходе.

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

Goto

теперь ещё есть оператор Entry, позволящий внутри одной процедуры/функции указывать точку входа для другой.

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

теперь ещё есть оператор Entry, позволящий внутри одной процедуры/функции указывать точку входа для другой.

Entry был ещё в Fortran 77, есть что-то новое?

quickquest ★★★★★
()

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

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

Вот самому интересно. Видимо никогда, здоров он больно :)

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

Ещё лучше, что он был и в 77.

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

И его, и тип label

LABEL IGO
ASSIGN 100 TO IGO
GOTO IGO
gns ★★★★★
()
Ответ на: комментарий от grem

Вычислимый goto — это вот это:

GOTO (1000, 44, 196) I - 17

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

в нём нет ffast-math и из-за этого выполнение кода с вычислениями медленнее в 4-5 раз

Как я понимаю, подобные оптимизации можно проводить руками без выхода за рамки стандартных операций. Так что достаточно просто подумать, прежде чем кодить формулы.

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

Не совсем. Эта опция отрубает кучу проверок в процессе вычислений.

Ещё march=native бывает полезна, если собирать под конкретную машину.

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

Вон Embarcadero компиляторы для Delphi перевела на LVMM.

С какой версии Делфи? Компоненты бесплатыми станут?

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

конкретную

Не обязательно, с -mavx2 будет работать на любом процессоре (всё что его не поддерживает - не процессоры, раз уж у нас тут серьёзные вычисления).

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

Ну в большинстве задач узкое место - шина данных, а не пинание регистров. Факториалы редко кому нужны.

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

Года с 2015, может раньше.

У них сначала сильно урезанные бесплатные starter edition были, а в прошлом году, летом, стал бесплатно доступен community edition с кучкой визуальных компонентов и ограниченной коммерческой лицензией.

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

Это понятно, но вот такие постоянные проверки могут, например, помешать компилятору векторизовать код.

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

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

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

С учетом того, что MS, Apple и Google делают свои ОС за свои же деньги (т.е. в рамках строков и бюджетов), тут еще большой вопрос, кто за дешевизной погнался.

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

Много компиляторов на си написал? Большинству хватает одного, чтобы понять почему лучше взять OCaml.

Поправил.

anonymous
()
Ответ на: комментарий от eao197

даже не Java и C#, а на Python-ы, Ruby и JavaScript. Но вот, незадача, там за безопасность приходится платить производительностью

Во-первых, главная цена, которую приходится уплатить при переходе на это дерьмо — вовсе не производительность, которая в наше идиотское время уже никого, судя по всему, не волнует. Основное, чем приходится расплачиваться — это зависимости времени исполнения. И, как следствие, непроизводительный расход времени и нервов майнтейнеров и конечных пользователей.

Во-вторых, вся эта скриптоинтерпретируемая шатия никакого отношения к повышению безопасности не имеет. Разговоры о том, что выбор языка программирования может как-то там повысить безопасность, ведутся уже десятки лет, и пора бы понять, что все эти разговоры безнадёжно оторваны от реальности. Всевозможные injection'ы интерпретируемых языков ничем не лучше какого-нибудь buffer overflow, которое можно сделать на Си, наоборот — их даже проще исполнить. А ещё есть такой момент, что дыра в программе на Си — это всегда результат безалаберности автора программы, тогда как дыра в конгломерате интерпретатора с интерпретируемым кодом может оказаться вообще-то в интерпретаторе.

Так что если кто платил за безопасность — может считать, что его кинули: цену содрали, безопасности не дали.

Что до C++, то есть сильно разные варианты понимания, что такое C++. Если под C++ понимать C++17 в сочетании с STL, да даже и C++98 в сочетании с STL, то на этом бастарде _могут_ писать полные идиоты, не понимающие, чем список отличается от массива, при этом всё великолепие чистого Си оказывается к их услугам. Кабы они сами себе ноги отстреливали, настал бы рай, но увы — отстрелить можно не только ногу и не только себе. О какой производительности и о какой безопасности может идти речь при использовании такого инструмента — непонятно.

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

Ну так ценность Rust-а в его безопасности.

Из этого следует, что ценность Rust равна нулю. Безопасность не имеет никакого отношения к используемому языку программирования.

NB: нет, я не знаю Rust и не утверждаю, что он не нужен. Я лишь утверждаю, что (а) вопросы безопасности и вопросы выбора языка программирования между собой никак не связаны, (б) никакие свойства языка программирования не могут повлиять на безопасность ни в какую сторону, если только это не дыры в трансляторе и (в) разговоры о том, что чистый Си якобы как-то там снижает безопасность, представляют собой чистый миф.

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

Почему же в MS, Apple и Google Торвальдса не послушали, а?

Не знаю как в MS (и вправду, чего это они Торвальдса не послушали), но я что-то пока не слышал, чтобы Apple или Google начали ядра на плюсах писать.

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

но я что-то пока не слышал, чтобы Apple или Google начали ядра на плюсах писать.

Не знаю, что там у Apple-овского ядра внутри, но околоядерные вещи там пишутся на плюсах: https://developer.apple.com/library/archive/documentation/Darwin/Conceptual/K...

У Google в разработке новая ОС Фуксия, в которой используется C++14 и Rust. Плюс Dart и Go сверху.

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

но околоядерные вещи

«Околоядерные» можно хоть на коболе писать, какая разница. Точнее, разница есть, безусловно, но она не такая, чтобы вообще невозможно было.

А вот в ядре (и вообще «на голом железе», это не обязательно именно ядро ОС, может быть и firmware) условия существования от обычных несколько отличаются, налагая свои ограничения в том числе и на выбор инструментария.

У Google в разработке новая ОС Фуксия, в которой используется C++14 и Rust. Плюс Dart и Go сверху.

В истории уже были попытки писать операционки на C++, как впрочем и на Паскале, и на Обероне, и, кажется, даже на джаве. Пока что ни одна такая попытка не взлетела (э-ммм... ну, мы не будем считать операционками Windows 1.0 и 2.0 образца восьмидесятых, правда? :) Ну а эта не взлетит совершенно точно: множество людей, понимающих, как устроена ОС, не имеет пересечения с множеством тех, кто полагает использование C++14 допустимым (для чего бы то ни было, не только для ОС).

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

А-а-а!

А.В.Столяров, «Введение в язык Си++», издание четвертое:

Если под «языком Си++» понимать C++17, то о применении такого инструмента на практике не может быть никакой речи, т.е. с языком Си++ следует попрощаться, устроить торжественные похороны и поискать альтернативу; впрочем, то же самое можно сказать про все его «стандарты», начиная с самого первого, принятого в 1998 году; строго говоря, язык Си++ как уникальное явление был уничтожен именно тогда.

Как я до сих пор жил не зная столь выдающегося автора?...

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