The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Релиз набора компиляторов LLVM 9.0"
Отправлено Ordu, 24-Сен-19 17:02 
> Ну хорошо, допустим, я тупица, теоретик и не видел ни одного компилятора.
> Просвети же меня, о мудрейший, какие такие свойства раста мешали использованию Rust+C
> LTO?

Я где-то говорил, что свойства раста мешали использованию Rust+C? Ты продолжаешь мыслить теоретически. LTO -- это не теоретическая штука, это не какая-то абстрактная идея о том, как можно проводить link-time оптимизации. LTO -- это кусок кода внутри llvm. _Внутри_, то есть не стоЯщий отдельно, а искусно погнутый так, чтобы без зазоров соединяться с другими кусками кода. Кусок кода имеющий множество точек входа, и каждая точка входа может принимать аргументы как явно, так и неявно. Чтобы понять как нужно дёргать этот кусок кода, чтобы он сделал именно то, что тебе нужно, требуется куча времени по изучению этого куска кода и смежных с ним. Иногда это происходит потому, что что-то там недокументировано, иногда потому что документировано, но ты не нашёл документацию, иногда потому, что ты что-то совершенно другое сделал не так и не заметил, и оно падает с ошибкой, несмотря на то, что здесь ты делаешь всё правильно, дёргаешь нужные функции API, в нужном порядке и с нужными аргументами. Ты знаешь, что косяки лезут в файле X в N'ой строке, но ты знаешь, что там всё правильно сделано, реальная ошибка где-то ещё. И вот ты сидишь в дебуггере, отслеживая как выполняется программа, которая работает, и сравнивая это с тем, как работает твоя программа, которая не работает. Тебе не знаком этот опыт? Это видно, и именно поэтому я и говорю о том, что у тебя какой-то излишне теоретический взгляд на чисто техническую проблему.

А как насчёт версий llvm? llvm меняется от версии к версии, rust идёт за llvm и привязывается к нему, но нигде нет гарантий, что clang и rust основаны на достаточно близких версиях. Эта проблема уже почти организационного уровня, и очевидно напрашивающийся способ решить её полностью -- это синхронизировать выпуски и их нумерацию шланга и раста. Но это будет очень неудобно, потому что сейчас нумерация версий rust'а привязана к плану разработки rust'а. При этом даже использовать "стабильные" версии llvm будет затруднительно, потому что подчастую используются версии llvm собранные по номеру ревизии в git, потому что именно там был исправлен блокирующий баг llvm.

Пока вместо этого они завели табличку совместимости между версиями, чтобы в ней отмечать удачные комбинации версий. Что делать в будущем, они пока ещё не знают, это требует более широкого обсуждения с привлечением других разработчиков, не только тех, кто занимался LTO.

> Я еще, видимо, и английский не понимаю. Может твои объяснения по-русски пойму?

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

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру