Блог*
الذهاب إلى القناة على Telegram
Блог со звёздочкой. Много репостов, немножко программирования. Небольшое прикольное комьюнити: @decltype_chat_ptr_t Автор: @insert_reference_here
إظهار المزيد1 923
المشتركون
لا توجد بيانات24 ساعات
-47 أيام
-830 أيام
أرشيف المشاركات
1 923
#prog #rust хайлайты
Я был несколько оптимистичен, но в итоге mpmc в std быть!
https://github.com/rust-lang/rust/pull/126839
1 923
#prog #article
В статье The Solid-State Register Allocator автор описывает свой дизайн аллокатора регистров (который впоследствии оказался тем же, который используется в LuaJIT).
Все аллокаторы регистров требуют для работы информации о том, какие регистры используются в каждый конкретный момент времени — то есть то, что называется liveness ranges. Обычно у аллокаторов регистров это отдельный шаг перед работой собственно аллокатора. Анализ, требуемый для построения liveness ranges, обрабатывает программу от конца к началу (как и многие dataflow алгоритмы). Ключевая идея нового аллокатора состоит в том, чтобы также обрабатывать программу от конца к началу и вместо требования наличия liveness ranges вычислять их на лету. Замеры показали, что этот аллокатор регистров очень быстр (на пару порядков быстрее clang и GCC) и при этом лучше их утилизирует большое количество физических регистров.
Несмотря на впечатляющие характеристики, у Solid state register allocator есть весьма существенный недостаток: он работает только на программах с линейный исполнением, без условных переходов и прыжков. Demilade Sonuga решил написать свой вариант реализации, который поддерживал бы более сложный поток управления, и использовать его как один из вариантов аллокатора регистров в Cranelift. Свой прогресс автор описал в статье regalloc I (фактически анонс) и regalloc II (которая описывает новый вариант алгоритма, работающий на уровне взаимосвязанных базовых блоков). Его работа в итоге привела к PR в Cranelift, который был принят.
В regalloc III автор описывает замеры производительности нового аллокатора. TL;DR: компиляция в WASM быстрее (в некоторых случаях аж в пять раз), но производительность скомпилированного кода в разы хуже. Второе, впрочем, является следствием довольно наивного подхода в реализации (в частности, обработки условных ветвлений), который приводит к избыточному перемещению между регистрами и слотами стека, и впоследствие, скорее всего, может быть улучшено.
1 923
PSA: если вы копируете ссылку из приложения YouTube, то к ней в конце прибавляется query parameter
si. То есть ссылка выглядит, как youtu.be/random_video_id?si=some_random_part. Так вот, ?si и всё, что идёт далее — это уникальное значение, которое необходимо лишь для того, чтобы отследить, что это конкретно вы скопировали эту ссылку, и понять, кто привёл очередного зрителя по клику по ссылке. Она нужна исключительно для YouTube. Это можно удалить без влияния на работоспособность ссылки. Так что, пожалуйста, ДЕЛАЙТЕ ЭТО.1 923
YouTube умудрился пробить очередное дно.
Для многих видео YouTube умеет автоматически генерировать субтитры на английском. С 2020 года эта фича заменяет слова вроде fuck на "[___]". С 2022 года это можно отключить... Но только на стороне канала, не на стороне клиента. И по умолчанию "исправление" включено.
Так вот. Кажется, теперь YouTube проводит подобную замену и на сделанных вручную субтитрах.
1 923
Repost from Random Rust Dev
Хотите научиться дефайнить числовые константы как эксперты уровня писателей стандартных либ?
Учитесь вот.
1 923
#article
The story of the first "computer bug"... is a pile of lies.
Вы, вероятно, слышали историю про то, как Грейс Хоппер нашла ошибку в компьютере, вызванную мотыльком, застрявшим в реле? И записала его, как "first actual case of bug being found"? Так вот, это байка.
* Запись в журнале (с приклеенным мотыльком) была сделана не Грейс Хоппер;
* Ошибки в электронных машинах называли "bug" и задолго до этого инцидента.
* Это даже не первый случай, когда делают шутку, основанную на этой омонимии.
متاح الآن! بحث تيليغرام 2025 — أهم رؤى العام 
