gavr_sas
с др меня! дата удобная легко запомнить)
др 911, 256 в году день порогромиста, пятница 13
хех
хех
Первая конфа очень интересного языка Unison состоится 20 сентября и полностью пройдет в дискорде, дешево и сердито.
Это такой Haskell с алгебраическими эффектами(что в 4352 раза удобнее чем выражать сайды монадами) и имаджем вместо текстовых файлов как в Smalltalk
Каждая AST нода генерализуется(все идентификаторы становятся чем то вроде цифр) и от нее берется хеш.
Таким образом 2 функции которые делают тоже самое, но допустим с разными названиями переменных и разным синтаксическим сахаром будут иметь одинаковый хеш
А теперь делаем следующее, в одной табличке храним хеши к реальным аст нодам, а во всех аст нодах используем эти хеши вместо реальных названий функций и типов
Получаем
1) мгновенный рефакторинг
2) возможность иметь пакеты разных версий в дереве зависимостей
3) отсутствие клеша по именам типов\функций
4) ОЧЕНЬ инкрементальную компиляцию, рекомпилить теперь надо буквально только то что изменилось
А теперь закидываем это в распределенную систему и получаем халявный продолжение в комм
Это такой Haskell с алгебраическими эффектами(что в 4352 раза удобнее чем выражать сайды монадами) и имаджем вместо текстовых файлов как в Smalltalk
Каждая AST нода генерализуется(все идентификаторы становятся чем то вроде цифр) и от нее берется хеш.
Таким образом 2 функции которые делают тоже самое, но допустим с разными названиями переменных и разным синтаксическим сахаром будут иметь одинаковый хеш
А теперь делаем следующее, в одной табличке храним хеши к реальным аст нодам, а во всех аст нодах используем эти хеши вместо реальных названий функций и типов
Получаем
1) мгновенный рефакторинг
2) возможность иметь пакеты разных версий в дереве зависимостей
3) отсутствие клеша по именам типов\функций
4) ОЧЕНЬ инкрементальную компиляцию, рекомпилить теперь надо буквально только то что изменилось
А теперь закидываем это в распределенную систему и получаем халявный продолжение в комм
🔥2
Почему у JVM медленный стартап тайм?
- до прогрева работает интерпретатор байткода
почти у каждого производителя жвма(IBM, Amazon, Oracle) была своя реализация AOT компиляции,
не помогло
- происходит чтение и парсинг всех .class файлов
Решили а шо если запарсить всю структуру зарание, задампать на диск и на старте просто прочитать готовенькое? class data sharing
не помогло
Что же еще там происходит на старте? Оказалось что огромное количество исполнения байткода статических инициализаторов всех стд классов например поднятие с диска всех локалей, датавремя, таймзоны
Даже если эту инициализацию скомпилировать статически это все равно медленно так как непредсказуемо
Проблему решили в GraalVM очень забавно, они просто этого не делают, да в обход спецификации, а когда первый раз понадобится таймзона, только статический инициализатор таймзон и запустят!
Авторы всех АОТ компиляторов кусают теперь локти что не додумались
А также начат Project Leyden по внедлению этой техники в стандарт, но уже с соблюдейнием спецификации https://openjdk.org/projects/leyden/
Можно скачать попробовать билд здесь https://jdk.java.net/leyden/
Так жаба-языки можно будет использовать для написания CLI тулзов и на edge компутинге заместь Go даже без GraalVM и других приседаний!
#JVM
- до прогрева работает интерпретатор байткода
почти у каждого производителя жвма(IBM, Amazon, Oracle) была своя реализация AOT компиляции,
не помогло
- происходит чтение и парсинг всех .class файлов
Решили а шо если запарсить всю структуру зарание, задампать на диск и на старте просто прочитать готовенькое? class data sharing
не помогло
Что же еще там происходит на старте? Оказалось что огромное количество исполнения байткода статических инициализаторов всех стд классов например поднятие с диска всех локалей, датавремя, таймзоны
Даже если эту инициализацию скомпилировать статически это все равно медленно так как непредсказуемо
Проблему решили в GraalVM очень забавно, они просто этого не делают, да в обход спецификации, а когда первый раз понадобится таймзона, только статический инициализатор таймзон и запустят!
Авторы всех АОТ компиляторов кусают теперь локти что не додумались
А также начат Project Leyden по внедлению этой техники в стандарт, но уже с соблюдейнием спецификации https://openjdk.org/projects/leyden/
Можно скачать попробовать билд здесь https://jdk.java.net/leyden/
Так жаба-языки можно будет использовать для написания CLI тулзов и на edge компутинге заместь Go даже без GraalVM и других приседаний!
#JVM
🤯2❤1
Forwarded from Denis Rangelov
Эксперименты Кэссиди Джеймса с акцентными цветами:
This media is not supported in your browser
VIEW IN TELEGRAM
👍1
Внимание! если магическим образом во сне поменять местами сознание и память двух людей, то проснувшись они заметят?
Anonymous Poll
67%
Да
33%
Нет
8%
Рассуждение в комментариях
лучший обзор fallout 1, если пережить крики в начале https://youtu.be/mLJ1gyIzg78
YouTube
Fallout 3 Is Garbage, And Here's Why
This is a review of Fallout 3, featuring retrospectives on the series as a whole, analysis of gameplay and storytelling mechanics, discussion of the games' initial critical reception, and the ability to absorb 1.5 hours of your human life right through the…