Разработка ждёт балета
1.67K subscribers
488 photos
3 videos
15 files
1.43K links
What I cannot create, I do not understand.

DM: @alexey_mileev
PeerLab: https://t.me/+e2ND1tAa0lU2ZTli
Download Telegram
Вот тут очень здорово рассказывают, как работает оптимизация хвостовой рекурсии (tail call optimization / TCO). Surprise-surprise, она вполне хорошо применяется и к обычным функциям с вызовом функции и return в конце.

#compiler #optimize #recursion
С Kotlin 1.4.30 в бетку перешёл новый JVM IR бэкенд компилятора. И вот за этим самым бэкендом будущее. Он станет дефолтным с Kotlin 1.5, да и старый компилятор больше не будет развиваться.

И вот Команда Kotlin Компилятора (или Ко-Ко-Ко, как их ласково называют в народе), просит помочь им с тестированием. Нужно убедиться, что новый бэкенд действительно достаточно стабилен для публичного релиза.

Собственно, как помочь?
- Включить новый компилятор в своём конфиг файле и собрать проект хотя бы один раз
- В идеале - включить новый компилятор для своего поекта по умолчанию, потому что не только сборка, но и дебаг имеют значение для этого теста
- Любые найденные баги нужно репортить сюда
- Ну и можно репортить в публичный Kotlin Slack

#kotlin #compiler #test
В этот раз ссылка немного странная: тут нашёлся репо с пачкой ссылок, которые, в теории, помогут углубиться в то, как работает этот наш Kotlin компилятор. Может быть однажды и пригодится, как знать.

#kotlin #compiler
А тут вот Arrow показали свой Analysis. Типа такой умный линтер, который построен как плагин для Kotlin компилятора, и умеет анализировать флоу кода, чтобы более глубокие вещи обнаруживать.

#lint #compiler #plugin
👍4🤔2
Сначала они говорят тебе, что читать ассемблер просто. И потом они же тебе говорят, что
- Регистр RAX - 64 бита
- EAX - младшие 32 бита RAX
- AX - младшие 16 бит RAX
- AL - младшие 8 бит RAX
- AH - старшие 8 бит AX
- Запись работает, как и ожидается, но запись в EAX занулит остальную часть RAX
- Регистров есть много разных, например, RAX, RCX, RDX, RBX. Да-да, не ABCD, а ACDB, именно в таком порядке они хранятся
- (╯°□°)╯︵ ┻━┻

#cpu #assembler #compiler
🤯5🤨21😁1😐1
Попался занимательный пример того, на что в целом способны современные компиляторы, но что не доходит до мейнстримных языков. Речь пойдёт про язык Dafny, который умеет доказывать или опровергать в compile time своего рода ассёрты, которые мы разбрасываем по своему коду.

#compiler #language #cs
👍2
Пусть старый, но не ставший от этого менее интересным разбор реализации Go интерфейсов в gc компиляторах.

#go #interface #compiler
Прикольно, чел хотел написать бесконечный цикл, но только чтобы оптимизирующий компилятор этого не понял. Для этого он взял частный случай великой теоремы Ферма, и сильно удивился, когда некоторые компиляторы её «опровергли» и успешно цикл оптимизировали.

#compiler #c #optimize
😁2
Небольшой обзор забавного c4 - компилятор C, уместившийся в 4 функции, который на самом деле и компилирует в байт-код, и интерпретирует его.

#c #compiler
😱4👍3
Тут собрали пачку распространённых заблуждений про оптимизирующие компиляторы. Всё про C/C++, конечно, но некоторые вещи перекладываются и на другие языке.

#compiler #optimize
Заблуждения разработчиков о NULL указателях. Именно об указателях. Не те NullPointerException, к которым мы с вами привыкли. Читая всё это, немного стареешь внутри.

#c #memory #compiler
Тут забавное: компилятор и тулинг TypeScript переписывают на Go и всё сразу 10x зацвело и запахло. Но почему же не Rust? Так бы все 11x получили! Да ещё бы и "написано на расте" могли бы нацепить!

#ts #go #compiler
👍2😁2