Но, что делать миллионам других пользователей, у которых домашние рутеры взламываются по паролю admin/admin, с открытым telnet, tftp и возможностью установки вредоносного софта в /tmp?
По своей работе, я сталкивался с расчётом радиационной защиты медицинских ускорителей. Как правило её делают гетерогенной - из "плотных" (на основе тяжёлых элементов) и "лёгких" (водородосодержащих) слоёв.
Частицы этих энергий относительно безопасны для человека. И дело не в том, что их поток незначительный, а в том, что они ведут себя как "Minimum Ionization Particles", выделяя постоянную энергию = ~2 МэВ на грамм вещества (сантиметр толщины водного эквивалента). Грубо говоря, они "прошивают" организм не производя "повреждений". Наибольшую опасность представляют протоны, ядра, которые останавливаются в организме. Такими частицами являются протоны, с энергией до нескольких сотен МэВ, из первого пояса Аллена (почему-то этот термин отсутствует в Вашем посте) . Кстати, именно этот "эффект разрывной пули" мы https://protom.ru используем для лечения онкологии. Наш протонный ускоритель с энергией 30-350 МэВ и интенсивностью 10^9 идеально подходит для изучения защиты космических аппаратов от ионизационного излучения.
Свинец от гаммы и рентгена подходит, а против корпускулярного излучения только хуже сделает.
Я надеюсь, что Вячеслав Шуршаков не разделяет этого Вашего утверждения. Защитой "против корпускулярного излучения" занимались/занимаются тысячи людей. Курс "Прохождение частиц через вещество" проходит каждый физик-ядерщик. Существует десятки, если не сотни, программ, которые это считают. Более того, мы http://protom.ru этим "корпускулярным излучением только лучше делаем" - лечим людей от рака. Боюсь, что одной этой фразой Вы дискредитировали весь материал поста, продемонстрировав свою некомпетентность в области, которую Вы освещаете.
Если собрать данные со всего мира по всем сусекам, захолустьям, регионам, областям, хуторам, аулам и стоянкам оленеводов, то она вряд ли превысит объем нескольких гигабайт и уместится на обычную флешку.
Тем не менее, я никогда не видел карту динамики распространения ковида.
Где временная географическая карта распространения? Была информация, что китайцы, как при сифилисе, всю цепочку заражений отслеживают. Через полтысячи лет восстановили, как чума пришла из Азии в Европу, и как она продвигалась, шаг за шагом, по континенту. А с распространением ковида, при всех современных компьютерных мощностях и технологиях, ничего подобного НЕТ(?!)
ГДЕ статистические данные доказывающие эффективность вакцинации в виде понятных любому пешеходу графиков? ГДЕ график временной зависимости между темпом вакцинации и снижения числа заболеваний? ну, или временной график процента вакцинирования и снижения относительной смертности.
Доходит до абсурда - на пример, динамика ковида в Испании и Португалии различается, кардинально.
Про "вакцинацию и Украину", сколько вёдер "соловьиного помёта" было вылито. Но, медицинский факт, "невакцинированная" Украина "чувствует себя лучше", чем "завакцинированный" Израиль, в том числе и по приросту вновь умерших на душу населения.
Очевидно, что такие исследования ведутся. НО ПОЧЕМУ, такие очевидные научные статистические данные не публикуются? Для меня лично, они были бы гораздо убедительнее, чем все заклинания артистов, спортсменов и прочих "эпидемиологов".
Cling — интерактивный интерпретатор C++, построенный на базе библиотек LLVM и Clang. Его преимущества перед стандартными интерпретаторами заключаются в том, что он имеет командную строку и использует JIT-компилятор для компиляции.
Есть ли английская версия этого поста? Xочу переслать его своим коллегам из Cling/ROOT Они могли бы дать наиболее профессиональную рецензию этому труду.
Я просто хотел сказать, что C++ сообществом активно развивается C++ интерпретатор и Reflection на основе LLVM.
"Reflection && Interpreter" - это то, что давно есть почти во всех современных языках программирования на уровне стандарта, но только не в C++. Бьярн прекрасно знает об этой работе и не раз упоминал о ней в своих публикациях. Более того, добавление "Reflection && Interpreter" было даже, когда-то, лет 10 назад, добавлено комитетом по C++ стандарту в C++ Roadmap.
К сожалению, этого не произошло.
И то, что мы видим сегодня - это бурное развитие C++образных языков, таких как C# & Kotlin, и "стагнацию" их прародителя, C++, как , по-видимому, и самого его создателя, Бьярнa Страустрапа, о чём говорят заключительные строки этой "биографии".
За последнее десятилетие мы разработали интерактивный интерпретирующий интерпретатор C ++ (также известный как REPL) в рамках проекта анализа данных физики высоких энергий (HEP) - ROOT. Мы приложили значительные усилия для замены CINT, интерпретатора C ++, который использовался до ROOT5, на недавно реализованный REPL, основанный на llvm-Cling. Cling является основным компонентом ROOT и находится в производстве с 2014 года.
Cling также является автономным инструментом, у которого растет сообщество за пределами нашей области. Он известен тем, что обеспечивает интерактивность, динамическую совместимость и возможности быстрого прототипирования для разработчиков C ++. Например, если вы набираете C ++ в блокноте Jupyter, вы используете ядро jupyter xeus- cling. Одна из основных задач - обеспечить устойчивость Cling и способствовать развитию этого растущего сообщества.
Цели
Cling построен на основе LLVM и Clang. Повторное использование этой инфраструктуры компилятора означает, что Cling получает легкий доступ к новым будущим стандартам C ++, новым функциям компилятора и инфраструктуре статического анализа. Наша проектная организация в основном следовала стандартам сообщества LLVM, но оставшиеся специфические для LLVM настройки, хотя и сохранены на минимальном уровне, теперь являются дорогостоящими для устойчивости и развития. Например, переход на более новые версии LLVM и выпуск Cling в соответствии с графиком выпуска LLVM занимает много времени.
Следующим естественным шагом для смягчения некоторых из этих проблем является перемещение основной части инфраструктуры ближе к орбите LLVM. Сообщество LLVM высоко оценило преимущества надежной разработки программного обеспечения. Например, строгие стандарты LLVM для проверки кода, циклов выпуска и интеграции часто поднимаются нашими «внешними» пользователями. Мы могли бы соединить два высококвалифицированных сообщества разработчиков системного программного обеспечения - одно вокруг LLVM, а другое - вокруг анализа данных в HEP. Успех Cling демонстрирует, что инкрементально компилируемый C ++ - это функция, которая может принести пользу сообществу C ++ и потребности сообщества специалистов по науке о данных. Наконец, существует также потенциальная синергия с такими проектами, как clangd и lldb, которые помогут интерактивному C ++ стать более популярным среди более широкой аудитории C ++.
Где мы сейчас
В 2018 году мы решили подойти к вопросу более структурно. Мы выделили ресурсы из различных текущих мероприятий в DIANA-HEP и IPCC-ROOT, и в 2019 году мы получили награду NSF, поддерживающую эту цель.
В июле 2020 года мы изложили наши аргументы в документе «запрос комментариев» в списках рассылки llvm . Обнадеживающий ответ сообщества побудил нас написать несколько сообщений в блоге llvm с намерением прояснить возможности, аспекты дизайна и использование расширенных функций:
Интерактивный C ++ с Cling - мотивирует интерактивный интерпретатор C ++, объясняет архитектуру и принципы проектирования Cling, а также разделяет некоторые проблемы реализации конкретных функций.
Интерактивный C ++ для науки о данных - мотивирует интерактивный C ++ в контексте сценария использования науки о данных и физики высоких энергий. Примеры включают возможности программирования в стиле eval и такие технологии, как C ++, в Jupyter Notebooks через xeus-cling и интерактивную разработку CUDA C ++.
Cling - Beyond Just Interpreting C ++ - демонстрирует расширенное использование, такое как создание экземпляров шаблона по запросу, языковая совместимость с Python и D через cppyy, а также использование интерпретатора в качестве службы для соединения скомпилированного и интерпретируемого кода. Другие приложения включают расширение языка C ++ для обеспечения функций автоматического распознавания «на лету».
Сообщество LLVM поддержало общее направление перемещения повторно используемых компонентов в Clang. «Новый» инструмент Clang называется clang-repl. Мотивация нового названия имеет два основных аспекта. Во-первых, нам нужно обеспечить постепенное повторное использование кода от clang-repl к нижележащему Cling, и конфликт имен классов - еще одна ненужная сложность. Во-вторых, некоторые функции Cling адаптированы к HEP, и трудно спорить о более широком использовании. Таким примером является неявныйautoвнедрение ключевого слова или подключение файлов ROOT к поиску имени. В этом отношении наличие проекта с именем Cling в репозитории Clang, который отличается по функциональности от проекта в ROOT и HEP, вызовет путаницу и проблемы с упаковкой. И последний (бонусный) аргумент заключается в том, что ROOT всегда будет требовать периодических исправлений как в Cling, так и в LLVM, которые не могут быть привязаны к основному графику выпуска LLVM. Например, было бы неразумно ждать следующего выпуска LLVM, чтобы решить эту проблему (или даже просто процедуры строгой проверки).
12 мая в репозиторий LLVM загрузился исходный, минимально функциональный clang-repl . Ура!
Следующие вызовы
Хотя принятие первоначального патча clang-repl было значительным успехом, по сути, он направлен на то, чтобы инициировать новое направление для сообщества LLVM. Такой стратегический выбор был сделан в результате многолетних усилий HEP по внедрению инноваций, а также по поддержанию своего технологического прогресса, что сделало его доступным для более широкой аудитории.
Некоторые технические аспекты Cling сейчас обсуждаются с сообществом LLVM, например, как реализовать надежные механизмы восстановления ошибок и удаления кода, которые освобождают неиспользуемую базовую память. Эти задачи оказались трудными для Cling, находящегося за пределами инфраструктуры LLVM. Благодаря Джону МакКоллу и Ричарду Смиту набросок технического проекта функции в LLVM получился правильным, и мы работаем над ним. Однако этот процесс ставит ожидаемую задачу - как продвинуть технологию в слегка касательном направлении, одновременно возвращая ее в основную область использования?
Обратная реализация от основного LLVM к Cling и ROOT - нетривиальная задача, отчасти потому, что ROOT обычно использует значительно более старые версии LLVM. LLVM API не обещает обратной совместимости, а ROOT использует сложную и обширную поверхность API, что делает переход на более новые версии, по сути, задачей разработки. Целью восходящих частей Cling в LLVM является уменьшение используемой поверхности API. Мы ускорим процедуру обновления, хотя по-прежнему измеряется месяцами, чтобы можно было проводить всестороннее тестирование стеками программного обеспечения для экспериментов. Мы не можем ожидать, что ROOT сможет легко принять каждый выпуск LLVM, не говоря уже о каждом коммите. Однако мы можем сохранить ROOT ближе к основной ветке LLVM, что упростит обратное портирование функций из основной ветки.
Следующая часть головоломки заключается в том, если основная функциональность успешно перенесена на серверную часть, как постепенно развивать ROOT и кодовые базы Cling в этом направлении и как обеспечить, чтобы все работало в полном масштабе экспериментов. Лично я считаю, что это возможно только в том случае, если два конца совпадают по замыслу. То есть при разработке патча против clang-repl нам необходимо оценить его повторное использование в Cling. Легче сказать, чем сделать, и нам нужно будет учиться на собственном опыте ...
Устойчивость в открытом исходном коде обычно означает наличие опытных пользователей, которые могут отправлять отчеты об ошибках, обзоры кода и код. Таким образом, неотъемлемой частью этих усилий является разъяснительная работа и создание сообщества как для clang-repl, так и для Cling. Клингу повезло, что люди жертвуют свое время, чтобы помочь перейти к основной линии LLVM. Здесь я хочу их всех поблагодарить. В частности, Рафаэль Исеманн, Йонас Ханфельд и Пратюш Дас, каждый из которых посвятил значительное время тому, чтобы помочь нашим усилиям и тем самым сократить накопленный технический долг в HEP.
Заключение
Исследования и разработки в направлении интерактивного и инкрементного C ++ в ROOT привели к созданию Cling, который стал краеугольным камнем для анализа данных в области HEP. Технические достижения в Cling открывают новые, ранее не предполагаемые возможности для clang и C ++, такие как создание экземпляров шаблонов по запросу, отражение и языковая совместимость.
Благодаря поддержке CERN, USCMS, DIANA-HEP, Intel «технический долг» при первоначальном внедрении Cling был значительно сокращен. Тем не менее, большая часть этой работы еще впереди.
Cling теперь используется вне HEP. Мы рады работать над тем, чтобы сделать его доступным для еще более широкой аудитории, например, за счет расширения связей Cling с проектом llvm, одновременно возвращая достижения других сообществ в HEP через Cling и ROOT.
Только сейчас осознал мудрость древних греков, которые выбирали депутатов простым жребием. Как Бог пошлет - вот истинная демократия!
Все конечно замечательно!
Но, что делать миллионам других пользователей, у которых домашние рутеры взламываются по паролю admin/admin, с открытым telnet, tftp и возможностью установки вредоносного софта в /tmp?
порвали целку :) 199x i'm absolutely linuxoid
2020 - i'm absolutely M$ prostirude
Извините, за фразу про "некомпетентность"
интересно, не знал.
Удивительно, но, в космосе иногда находишь ответы на вполне "земные вопросы" На пример, Ваш пост "натолкнул" меня на интересное исследование
Риски космической радиации для астронавтов в нескольких миссиях Международной космической станции (plos.org)
Надеюсь, Вы знакомы с этой статьёй?
Обзор радиационной среды МКС, наблюдаемой во время миссии ЕКА EXPOSE‐R2 в 2014–2016 годах
По своей работе, я сталкивался с расчётом радиационной защиты медицинских ускорителей. Как правило её делают гетерогенной - из "плотных" (на основе тяжёлых элементов) и "лёгких" (водородосодержащих) слоёв.
Частицы этих энергий относительно безопасны для человека. И дело не в том, что их поток незначительный, а в том, что они ведут себя как "Minimum Ionization Particles", выделяя постоянную энергию = ~2 МэВ на грамм вещества (сантиметр толщины водного эквивалента). Грубо говоря, они "прошивают" организм не производя "повреждений". Наибольшую опасность представляют протоны, ядра, которые останавливаются в организме. Такими частицами являются протоны, с энергией до нескольких сотен МэВ, из первого пояса Аллена (почему-то этот термин отсутствует в Вашем посте) .
Кстати, именно этот "эффект разрывной пули" мы https://protom.ru используем для лечения онкологии.
Наш протонный ускоритель с энергией 30-350 МэВ и интенсивностью 10^9 идеально подходит для изучения защиты космических аппаратов от ионизационного излучения.
Я надеюсь, что Вячеслав Шуршаков не разделяет этого Вашего утверждения. Защитой "против корпускулярного излучения" занимались/занимаются тысячи людей. Курс "Прохождение частиц через вещество" проходит каждый физик-ядерщик. Существует десятки, если не сотни, программ, которые это считают. Более того, мы http://protom.ru этим "корпускулярным излучением только лучше делаем" - лечим людей от рака.
Боюсь, что одной этой фразой Вы дискредитировали весь материал поста, продемонстрировав свою некомпетентность в области, которую Вы освещаете.
В истории с ковидом удивляет отсутствие наглядных статистических графиков.
Вся мировая статистика по ковиду за последние 2 года умещается в ~200 Mb:
covid-19-data/public/data at master · owid/covid-19-data · GitHub
covid-19-data/owid-covid-codebook.csv at master · owid/covid-19-data · GitHub
Если собрать данные со всего мира по всем сусекам, захолустьям, регионам, областям, хуторам, аулам и стоянкам оленеводов, то она вряд ли превысит объем нескольких гигабайт и уместится на обычную флешку.
Тем не менее, я никогда не видел карту динамики распространения ковида.
Где временная географическая карта распространения?
Была информация, что китайцы, как при сифилисе, всю цепочку заражений отслеживают.
Через полтысячи лет восстановили, как чума пришла из Азии в Европу, и как она продвигалась, шаг за шагом, по континенту.
А с распространением ковида, при всех современных компьютерных мощностях и технологиях, ничего подобного НЕТ(?!)
ГДЕ статистические данные доказывающие эффективность вакцинации в виде понятных любому пешеходу графиков?
ГДЕ график временной зависимости между темпом вакцинации и снижения числа заболеваний? ну, или временной график процента вакцинирования и снижения относительной смертности.
Доходит до абсурда - на пример, динамика ковида в Испании и Португалии различается, кардинально.
Про "вакцинацию и Украину", сколько вёдер "соловьиного помёта" было вылито.
Но, медицинский факт, "невакцинированная" Украина "чувствует себя лучше", чем "завакцинированный" Израиль, в том числе и по приросту вновь умерших на душу населения.
Очевидно, что такие исследования ведутся.
НО ПОЧЕМУ, такие очевидные научные статистические данные не публикуются?
Для меня лично, они были бы гораздо убедительнее, чем все заклинания артистов, спортсменов и прочих "эпидемиологов".
Неужели автор ничего не слышал о Cling - ROOT ?
Есть ли английская версия этого поста?
Xочу переслать его своим коллегам из Cling/ROOT
Они могли бы дать наиболее профессиональную рецензию этому труду.
Я написал это несерьёзно :)
Однако - а, как же призвание?
+даже в нашем захолустье, вузовские преподаватели получают неплохо, в районе 100К
Вам бы астрономию преподавать, а не на "дуде играть" :)
offtop.
отчего Карма такая "выдающаяся"?
просмотрел комменты - вроде, одни плюсы ...
Странно, пишет проффи, но зациклился на VPN, хотя существует другие способы туннелирования, вплоть до DNS kryo.se: iodine (IP-over-DNS, IPv4 over DNS tunnel) .
На пример, я предпочитаю этот Создание SSH-туннелей с помощью PuTTY
Очень удобно, если имеешь аккаунт в каком-нибудь зарубежном универе.
Два тысячелетия истории богословия опровергают Ваше утверждение.
Для которых "абсурдно, потому и верю" - это так. Для остальных - нет.
Минусы-то за что?
Я просто хотел сказать, что C++ сообществом активно развивается C++ интерпретатор и Reflection на основе LLVM.
"Reflection && Interpreter" - это то, что давно есть почти во всех современных языках программирования на уровне стандарта, но только не в C++.
Бьярн прекрасно знает об этой работе и не раз упоминал о ней в своих публикациях.
Более того, добавление "Reflection && Interpreter" было даже, когда-то, лет 10 назад, добавлено комитетом по C++ стандарту в C++ Roadmap.
К сожалению, этого не произошло.
И то, что мы видим сегодня - это бурное развитие C++образных языков, таких как C# & Kotlin, и "стагнацию" их прародителя, C++, как , по-видимому, и самого его создателя, Бьярнa Страустрапа, о чём говорят заключительные строки этой "биографии".
Life may have evolved outside our planet (zmescience.com)
Если закон Мура применим к жизни, то ей должно быть 10 миллиардов лет.
Возможно, кого-то это заинтересует - новость от моей бывшей команды:
Cling Transitions to LLVM’s Clang-Repl - ROOT
autotranslated
Привязка переходов к Clang-Repl LLVM
(30 июня 2021 г.)
За последнее десятилетие мы разработали интерактивный интерпретирующий интерпретатор C ++ (также известный как REPL) в рамках проекта анализа данных физики высоких энергий (HEP) - ROOT. Мы приложили значительные усилия для замены CINT, интерпретатора C ++, который использовался до ROOT5, на недавно реализованный REPL, основанный на llvm-Cling. Cling является основным компонентом ROOT и находится в производстве с 2014 года.
Cling также является автономным инструментом, у которого растет сообщество за пределами нашей области. Он известен тем, что обеспечивает интерактивность, динамическую совместимость и возможности быстрого прототипирования для разработчиков C ++. Например, если вы набираете C ++ в блокноте Jupyter, вы используете ядро jupyter xeus- cling. Одна из основных задач - обеспечить устойчивость Cling и способствовать развитию этого растущего сообщества.
Цели
Cling построен на основе LLVM и Clang. Повторное использование этой инфраструктуры компилятора означает, что Cling получает легкий доступ к новым будущим стандартам C ++, новым функциям компилятора и инфраструктуре статического анализа. Наша проектная организация в основном следовала стандартам сообщества LLVM, но оставшиеся специфические для LLVM настройки, хотя и сохранены на минимальном уровне, теперь являются дорогостоящими для устойчивости и развития. Например, переход на более новые версии LLVM и выпуск Cling в соответствии с графиком выпуска LLVM занимает много времени.
Следующим естественным шагом для смягчения некоторых из этих проблем является перемещение основной части инфраструктуры ближе к орбите LLVM. Сообщество LLVM высоко оценило преимущества надежной разработки программного обеспечения. Например, строгие стандарты LLVM для проверки кода, циклов выпуска и интеграции часто поднимаются нашими «внешними» пользователями. Мы могли бы соединить два высококвалифицированных сообщества разработчиков системного программного обеспечения - одно вокруг LLVM, а другое - вокруг анализа данных в HEP. Успех Cling демонстрирует, что инкрементально компилируемый C ++ - это функция, которая может принести пользу сообществу C ++ и потребности сообщества специалистов по науке о данных. Наконец, существует также потенциальная синергия с такими проектами, как clangd и lldb, которые помогут интерактивному C ++ стать более популярным среди более широкой аудитории C ++.
Где мы сейчас
В 2018 году мы решили подойти к вопросу более структурно. Мы выделили ресурсы из различных текущих мероприятий в DIANA-HEP и IPCC-ROOT, и в 2019 году мы получили награду NSF, поддерживающую эту цель.
В июле 2020 года мы изложили наши аргументы в документе «запрос комментариев» в списках рассылки llvm . Обнадеживающий ответ сообщества побудил нас написать несколько сообщений в блоге llvm с намерением прояснить возможности, аспекты дизайна и использование расширенных функций:
Интерактивный C ++ с Cling - мотивирует интерактивный интерпретатор C ++, объясняет архитектуру и принципы проектирования Cling, а также разделяет некоторые проблемы реализации конкретных функций.
Интерактивный C ++ для науки о данных - мотивирует интерактивный C ++ в контексте сценария использования науки о данных и физики высоких энергий. Примеры включают возможности программирования в стиле eval и такие технологии, как C ++, в Jupyter Notebooks через xeus-cling и интерактивную разработку CUDA C ++.
Cling - Beyond Just Interpreting C ++ - демонстрирует расширенное использование, такое как создание экземпляров шаблона по запросу, языковая совместимость с Python и D через cppyy, а также использование интерпретатора в качестве службы для соединения скомпилированного и интерпретируемого кода. Другие приложения включают расширение языка C ++ для обеспечения функций автоматического распознавания «на лету».
Сообщество LLVM поддержало общее направление перемещения повторно используемых компонентов в Clang. «Новый» инструмент Clang называется clang-repl. Мотивация нового названия имеет два основных аспекта. Во-первых, нам нужно обеспечить постепенное повторное использование кода от clang-repl к нижележащему Cling, и конфликт имен классов - еще одна ненужная сложность. Во-вторых, некоторые функции Cling адаптированы к HEP, и трудно спорить о более широком использовании. Таким примером является неявный
auto
внедрение ключевого слова или подключение файлов ROOT к поиску имени. В этом отношении наличие проекта с именем Cling в репозитории Clang, который отличается по функциональности от проекта в ROOT и HEP, вызовет путаницу и проблемы с упаковкой. И последний (бонусный) аргумент заключается в том, что ROOT всегда будет требовать периодических исправлений как в Cling, так и в LLVM, которые не могут быть привязаны к основному графику выпуска LLVM. Например, было бы неразумно ждать следующего выпуска LLVM, чтобы решить эту проблему (или даже просто процедуры строгой проверки).12 мая в репозиторий LLVM загрузился исходный, минимально функциональный clang-repl . Ура!
Следующие вызовы
Хотя принятие первоначального патча clang-repl было значительным успехом, по сути, он направлен на то, чтобы инициировать новое направление для сообщества LLVM. Такой стратегический выбор был сделан в результате многолетних усилий HEP по внедрению инноваций, а также по поддержанию своего технологического прогресса, что сделало его доступным для более широкой аудитории.
Некоторые технические аспекты Cling сейчас обсуждаются с сообществом LLVM, например, как реализовать надежные механизмы восстановления ошибок и удаления кода, которые освобождают неиспользуемую базовую память. Эти задачи оказались трудными для Cling, находящегося за пределами инфраструктуры LLVM. Благодаря Джону МакКоллу и Ричарду Смиту набросок технического проекта функции в LLVM получился правильным, и мы работаем над ним. Однако этот процесс ставит ожидаемую задачу - как продвинуть технологию в слегка касательном направлении, одновременно возвращая ее в основную область использования?
Обратная реализация от основного LLVM к Cling и ROOT - нетривиальная задача, отчасти потому, что ROOT обычно использует значительно более старые версии LLVM. LLVM API не обещает обратной совместимости, а ROOT использует сложную и обширную поверхность API, что делает переход на более новые версии, по сути, задачей разработки. Целью восходящих частей Cling в LLVM является уменьшение используемой поверхности API. Мы ускорим процедуру обновления, хотя по-прежнему измеряется месяцами, чтобы можно было проводить всестороннее тестирование стеками программного обеспечения для экспериментов. Мы не можем ожидать, что ROOT сможет легко принять каждый выпуск LLVM, не говоря уже о каждом коммите. Однако мы можем сохранить ROOT ближе к основной ветке LLVM, что упростит обратное портирование функций из основной ветки.
Следующая часть головоломки заключается в том, если основная функциональность успешно перенесена на серверную часть, как постепенно развивать ROOT и кодовые базы Cling в этом направлении и как обеспечить, чтобы все работало в полном масштабе экспериментов. Лично я считаю, что это возможно только в том случае, если два конца совпадают по замыслу. То есть при разработке патча против clang-repl нам необходимо оценить его повторное использование в Cling. Легче сказать, чем сделать, и нам нужно будет учиться на собственном опыте ...
Устойчивость в открытом исходном коде обычно означает наличие опытных пользователей, которые могут отправлять отчеты об ошибках, обзоры кода и код. Таким образом, неотъемлемой частью этих усилий является разъяснительная работа и создание сообщества как для clang-repl, так и для Cling. Клингу повезло, что люди жертвуют свое время, чтобы помочь перейти к основной линии LLVM. Здесь я хочу их всех поблагодарить. В частности, Рафаэль Исеманн, Йонас Ханфельд и Пратюш Дас, каждый из которых посвятил значительное время тому, чтобы помочь нашим усилиям и тем самым сократить накопленный технический долг в HEP.
Заключение
Исследования и разработки в направлении интерактивного и инкрементного C ++ в ROOT привели к созданию Cling, который стал краеугольным камнем для анализа данных в области HEP. Технические достижения в Cling открывают новые, ранее не предполагаемые возможности для clang и C ++, такие как создание экземпляров шаблонов по запросу, отражение и языковая совместимость.
Благодаря поддержке CERN, USCMS, DIANA-HEP, Intel «технический долг» при первоначальном внедрении Cling был значительно сокращен. Тем не менее, большая часть этой работы еще впереди.
Cling теперь используется вне HEP. Мы рады работать над тем, чтобы сделать его доступным для еще более широкой аудитории, например, за счет расширения связей Cling с проектом llvm, одновременно возвращая достижения других сообществ в HEP через Cling и ROOT.
Благодарности
Автор хотел бы поблагодарить Axel Naumann и David Lange, которые внесли свой вклад в этот пост. Вы можете узнать больше о нашей деятельности на https://compiler-research.org и https://root.cern/cling/
!!!
Для большинства людей, вера в Бога - это последствия эффекта Даннинга-Крюгера.