Size: a a a

Compiler Development

2020 April 03

IB

Ivan Balanar in Compiler Development
Alexander Tchitchigin
И в 2 раза - чем "файл и директория". А учитывая, что файлы в Git всё равно есть... А ещё хеши и репозитории, конфиги, ... 😁
вот так научным путем было доказано, что гит принципиально непостижим человеческим умом
источник

AT

Alexander Tchitchigin in Compiler Development
Berkus Decker
не, придираться то можно до бесконечности. в вашем любимом языке программирования тоже больше сущностей чем просто файл.
Это не придирки - это объективная когнитивная нагрузка, которая никуда не исчезает от того, что мы к ней привыкли. И в языках тоже, да.
источник

AT

Alexander Tchitchigin in Compiler Development
Ivan Balanar
вот так научным путем было доказано, что гит принципиально непостижим человеческим умом
Мы же тут занудствуем, так что на "научный путь" Вы зря "хвост подняли", ой зря... 😂
источник

BD

Berkus Decker in Compiler Development
Alexander Tchitchigin
Это не придирки - это объективная когнитивная нагрузка, которая никуда не исчезает от того, что мы к ней привыкли. И в языках тоже, да.
она вполне анализируема, я всего-лишь показывал что гит это не какая-то фантастическая магия, ее можно понять и даже иногда простить
источник

AT

Alexander Tchitchigin in Compiler Development
Berkus Decker
она вполне анализируема, я всего-лишь показывал что гит это не какая-то фантастическая магия, ее можно понять и даже иногда простить
Думаю, что с этим тоже никто не спорил. 😊
источник

IB

Ivan Balanar in Compiler Development
Alexander Tchitchigin
Мы же тут занудствуем, так что на "научный путь" Вы зря "хвост подняли", ой зря... 😂
это не хвост. /me густо покраснел
источник

BD

Berkus Decker in Compiler Development
Ivan Balanar
вот так научным путем было доказано, что гит принципиально непостижим человеческим умом
вы недалеки от истины, я специально провожу тренинги по гиту с картинкой вот выше, пушо 99% девелоперов считают что боги в Лице Самого Линуса соорудили что-то волшебное и совершенно неотличимое от магии (ака sufficiently sophisticated technology)
источник

BD

Berkus Decker in Compiler Development
если вдруг кому-то интересно
источник

BD

Berkus Decker in Compiler Development
приложил тренинг, сконденсированно о важных внутренностях гита
источник

BD

Berkus Decker in Compiler Development
(не для новичков, в целом)
источник

W🌐

White_Angel 004 🌐🏡🎓 in Compiler Development
Hello My Computer Engineering into 2 account White Angel me is helping all member its fun be happy coding ☺️
источник
2020 April 04

ИЧ

Илья Чистяков in Compiler Development
Есть понимание, почему некоторые языки производительные, а другие не очень? Например питон, руби, js. Js когда-то был тормозом, но потом пришёл гугл. Неужели ускорение стоит так дорого? Внедрять jit? Или это специфика языков. Какие-то проще оптимизировать?
источник

BD

Berkus Decker in Compiler Development
Илья Чистяков
Есть понимание, почему некоторые языки производительные, а другие не очень? Например питон, руби, js. Js когда-то был тормозом, но потом пришёл гугл. Неужели ускорение стоит так дорого? Внедрять jit? Или это специфика языков. Какие-то проще оптимизировать?
очень общий вопрос, одни языки медленные из-за одних причин, другие из-за других

у некоторых вопрос в дизайне, у других просто огрехи в имплементации
источник

AK

Andrei Kurosh in Compiler Development
Илья Чистяков
Есть понимание, почему некоторые языки производительные, а другие не очень? Например питон, руби, js. Js когда-то был тормозом, но потом пришёл гугл. Неужели ускорение стоит так дорого? Внедрять jit? Или это специфика языков. Какие-то проще оптимизировать?
У статически типизированных языков обычно есть «ограничения», которые позволяют легко выполнять оптимизации. Например, список полей класса известен во время компиляции, и обращения к полям можно сразу делать по смещению. В джиесе же ограничений нет, поэтому компилятору не за что зацепиться. Любое поле можно удалить или добавить на лету, значит обращение к полям - это поиск в словаре по строке. Типы неизвестны, поэтому все примитивные значения должны быть обернуты. Тут лишняя проверка, там лишний indirect call, и в итоге все работает на порядок-два медленнее, чем могло бы. Чтобы в таких условиях что-либо вообще соптимизировать, нужно выполнять безумно сложный анализ. И более того, код может в любой момент выполнить какое-то неожиданное действие, которое заставит оптимизацию откатить и вернуться к «базовой» версии.
источник

M

MaxGraey in Compiler Development
Andrei Kurosh
У статически типизированных языков обычно есть «ограничения», которые позволяют легко выполнять оптимизации. Например, список полей класса известен во время компиляции, и обращения к полям можно сразу делать по смещению. В джиесе же ограничений нет, поэтому компилятору не за что зацепиться. Любое поле можно удалить или добавить на лету, значит обращение к полям - это поиск в словаре по строке. Типы неизвестны, поэтому все примитивные значения должны быть обернуты. Тут лишняя проверка, там лишний indirect call, и в итоге все работает на порядок-два медленнее, чем могло бы. Чтобы в таких условиях что-либо вообще соптимизировать, нужно выполнять безумно сложный анализ. И более того, код может в любой момент выполнить какое-то неожиданное действие, которое заставит оптимизацию откатить и вернуться к «базовой» версии.
В V8 тоже по смещению в hidden classes, в других движках тоже что то подобное. Хэш таблицы для объектов/классов используются сейчас разве что в Lua
источник

M

MaxGraey in Compiler Development
> и в итоге все работает на порядок-два медленнее, чем могло бы.

Нет, JS медленее того же невекторизированного C в 1.5-2x раза всего. JIT-движки для JS сейчас иногда способны обогнать даже managed языки вроде Java. Не всегда конечно, но могут
источник

M

Max in Compiler Development
MaxGraey
В V8 тоже по смещению в hidden classes, в других движках тоже что то подобное. Хэш таблицы для объектов/классов используются сейчас разве что в Lua
Речь же была про "некоторые ограничения" языка. В отсутствие которых hidden classes получаются таким костылём, когда смещения полей зависят от порядка их инициализации.
источник

M

Max in Compiler Development
И в luajit тоже есть своего рода hidden classes. Гораздо более примитивные, но так и писал их один человек
источник

λ

λoλdog in Compiler Development
Зигохистоморфный Препроморфизм
почему фп язык какой-то так никто не проводит лекции?)
Вообще Брагилевский хотел, но все отметилось)
источник

M

MaxGraey in Compiler Development
Max
Речь же была про "некоторые ограничения" языка. В отсутствие которых hidden classes получаются таким костылём, когда смещения полей зависят от порядка их инициализации.
Тогда speculative devirtualization для виртуальных методов в GCC и LLVM тоже костыль? Вообще все спекулятивные оптимизации костыль выходит?)
источник