OberonCore https://forum.oberoncore.ru/ |
|
x64 компилятор - проект Гершель https://forum.oberoncore.ru/viewtopic.php?f=127&t=6640 |
Страница 4 из 4 |
Автор: | adimetrius [ Понедельник, 26 Октябрь, 2020 10:15 ] |
Заголовок сообщения: | Re: x64 компилятор - проект Гершель |
Спасибо за ответ, за отсылку к Вирту. Я нашел этот фрагмент уже после того, как написал свою статью. И все-таки нашел в себе смелость уклониться от весомого мнения авторитета и попробовать по-своему - в порядке эксперимента. Да, Struct, form (сокращение от format) и некоторые другие имена и меня тоже сбивали с толку. Особенно поскольку в Сообщении о языке четко сказано, что структуры, в противовес базовым типам - это записи и массивы (даже не процедуры). В генераторе кода я обнаружил еще такой хитрый прием: вот есть, напр, у каждого объекта привязанная к нему запись .conval, а в ней - поля .intval и intval2. Мало того, что названия никак не намекают на смысл/назначение этих полей - так еще этот смысл кое-где меняется на ходу. Например, было в .intval позиция в тексте, а потом ее - хоп! - и "перепрятывают" в .intval2, а в .intval кладут что-то другое. И потом это другое путешествует по всему исходному коду: смотришь на .intval, и неизвестно, означает это позицию в тексте, или, скам, смещение в сегменте дескрипторов; чтобы понять, нужно делать анализ вызовов процедур. Причем, если obj.form = Comp и obj.comp = чегонибудь, то obj.conval.intval - это что-тоодно, а иначе - совсемдругое. И хотя это все отлажено и работает - понимать оч сложно. А программы-то пишутся для людей, не для ЭВМ... Но, конечно, это все - мелкие пять копеек. CP2 продуман, логичен, четко декомпозирован, аккуратно написан и выверен, минималистичен и экономичен. Проштудировав весь анализатор и уже почти весь синтезатор кода, я не могу назвать ни одного критического замечания, кроме невнятных названий типов и полей - напротив, многому научился. |
Автор: | Иван Денисов [ Четверг, 08 Апрель, 2021 06:19 ] | ||
Заголовок сообщения: | Re: x64 компилятор - проект Гершель | ||
Опробовал интеграцию библиотек с Excel. Работает! Поддержите Антона тестированием или лучше — финансами → Руб.
|
Автор: | Kubanych [ Пятница, 09 Апрель, 2021 07:27 ] |
Заголовок сообщения: | Re: x64 компилятор - проект Гершель |
не нашел в показанных ссылках, где можно скачать и опробовать. |
Автор: | Иван Денисов [ Пятница, 09 Апрель, 2021 11:04 ] |
Заголовок сообщения: | Re: x64 компилятор - проект Гершель |
Kubanych писал(а): не нашел в показанных ссылках, где можно скачать и опробовать. В первом сообщении есть ссылки: viewtopic.php?f=127&t=6640#p112185 Но вы правы, что надо и прямую ссылку на релиз от 3-го марта дать! https://github.com/adimetrius/Herschel/ ... mpiled.zip Он немного устарел, но на скриншоте я именно на нём проверял. |
Автор: | Kubanych [ Понедельник, 12 Апрель, 2021 15:19 ] |
Заголовок сообщения: | Re: x64 компилятор - проект Гершель |
Спасибо |
Автор: | kekc_leader [ Вторник, 13 Август, 2024 15:10 ] |
Заголовок сообщения: | Re: x64 компилятор - проект Гершель |
Товарищи, работает ли LLVM достаточно быстро? То есть, если компилятор КП под x86_64 делать через LLVM, не будет ли он в несколько раз (может быть, даже, в десятки раз?) медленнее, чем компилятор в машинный код? Есть ли где-то цифры, сравнение? |
Автор: | arisu [ Вторник, 13 Август, 2024 15:36 ] |
Заголовок сообщения: | Re: x64 компилятор - проект Гершель |
но зачем? куча десятков мегабайт бинарного мусора, отсутствие не только сишного апи, но и вообще стабильного апи… зачем, мистер Андерсон, зачем? с такими раскладами уж проще взять ofront и делать .so-хи ним. вообще, llvm — это всегда худшее из возможных решений для любого кодогена. p.s.: да, будет медленней. без оптимизаций код сильно хуже, чем даже у CP2, а с оптимизациями тормоза. и полный набор прелестей сопряжения с опричной гусеницей крестов. |
Автор: | Виктор Мясников [ Четверг, 15 Август, 2024 09:06 ] |
Заголовок сообщения: | Re: x64 компилятор - проект Гершель |
kekc_leader писал(а): Товарищи, работает ли LLVM достаточно быстро? ( . . .) не будет ли он в несколько раз, медленнее, чем 'Y' ? Если "Y" неоптимизирующий компилятор, то, естественно, да. Но в сравнении с оптимизирующими -- разница "на глаз" незаметна. ( подробнее - см. в др. подразделе) arisu писал(а): но зачем? куча десятков мегабайт бинарного мусора, отсутствие не только сишного апи, но и вообще стабильного апи… ( . . .) вообще, llvm — это всегда худшее из возможных решений для любого кодогена. p.s.: да, будет медленней. без оптимизаций код сильно хуже, чем даже у CP2, а с оптимизациями тормоза. и полный набор прелестей сопряжения с опричной гусеницей крестов. Скорее сотен мегабайт, но из них нужны не все. API, действительно меняется, но утилита SWIG способна изготовить "переходник" к нему |
Автор: | arisu [ Четверг, 15 Август, 2024 10:37 ] |
Заголовок сообщения: | Re: x64 компилятор - проект Гершель |
vvmtutby писал(а): Скорее сотен мегабайт много лет назад, когда я однажды решил на это посмотреть пристальней, у меня получилось около 30 мб бинарей. возможно с тех пор собачка могла подрасти.
|
Автор: | arisu [ Четверг, 15 Август, 2024 10:41 ] |
Заголовок сообщения: | Re: x64 компилятор - проект Гершель |
vvmtutby писал(а): Если "Y" неоптимизирующий компилятор, то, естественно, да. вообще-то CP2, например, вполне можно отнести к оптимизирующим: он умеет использовать загруженое в регистр значение несколько раз, даже между выражениями. а также умеет в dead code elimination. и, само собой, в constant folding. то, что он делает это не очень агрессивно — никак не выводит его из разряда «оптимизирующих».Но в сравнении с оптимизирующими -- разница "на глаз" незаметна. p.s.: мой Oberon/Ur делает код ещё быстрее, чем CP2. в смысле, результирующий код быстрее. по скорости компиляции примерно сравним. а он даже в лимитированый CSE умеет. |
Страница 4 из 4 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |