1.83K subscribers
3.29K photos
130 videos
15 files
3.56K links
Блог со звёздочкой.

Много репостов, немножко программирования.

Небольшое прикольное комьюнити: @decltype_chat_ptr_t
Автор: @insert_reference_here
Download Telegram
Forwarded from commit -m "better"
https://vondra.me/posts/playing-with-bolt-and-postgres/

Коллега собрал postgres с #BOLT.

TL;DR - десятки процентов перфа в плюс.

Кстати, скачать clang + BOLT всегда можно вот тут - https://github.com/yandex/toolchain-registry
🔥7🤯3🌚1
Forwarded from Segment@tion fault
use std::os::unix::net::UnixDatagram;

fn main() {
let sock = UnixDatagram::bind("./sock").unwrap();
let addr = sock.local_addr().unwrap();

sock.connect_addr(&addr).unwrap();
sock.send(b"test").unwrap();
sock.recv(&mut [0; 4]).unwrap();
}


I expected to see this happen: no crash of the operating system

Instead, this happened: macOS 15.0.1 crashed


https://github.com/rust-lang/rust/issues/131374

Ставьте шиндовс!
👍5😁3🤯3🤣2❤‍🔥1
Forwarded from Санечка Ъысь
🔥16😁9😭9
😁25💯41
🥰20🔥21👍1🤡1
😒🤚 he/him
😒🤚 she/her
😒🤚 they/them
😏👉 ref/ref mut
🎉17😁11🔥5🌚2
Today is coming out day.

Go outside.
Breath fresh air.
Touch some (gr)ass.
🤡9🍌7👍3🎉2🌚2❤‍🔥1
НАСТОЯЩИЙ
🎉42🍌2
#article

The story of the first "computer bug"... is a pile of lies.

Вы, вероятно, слышали историю про то, как Грейс Хоппер нашла ошибку в компьютере, вызванную мотыльком, застрявшим в реле? И записала его, как "first actual case of bug being found"? Так вот, это байка.

* Запись в журнале (с приклеенным мотыльком) была сделана не Грейс Хоппер;
* Ошибки в электронных машинах называли "bug" и задолго до этого инцидента;
* Это даже не первый случай, когда делают шутку, основанную на этой омонимии.
🤯10👍1
😒🤚 Ticket for bug
😏👉 ЖУЧИНЫЙ БИЛЕТ
💩7😁4❤‍🔥2🤔1
Forwarded from Random Rust Dev
Хотите научиться дефайнить числовые константы как эксперты уровня писателей стандартных либ?
Учитесь вот.
🌚6
YouTube умудрился пробить очередное дно.

Для многих видео YouTube умеет автоматически генерировать субтитры на английском. С 2020 года эта фича заменяет слова вроде fuck и shit на "[___]". С 2022 года это можно отключить... Но только на стороне канала, не на стороне клиента. И по умолчанию "исправление" включено.

Так вот. Кажется, теперь YouTube проводит подобную замену и на сделанных вручную субтитрах.
🤡20🖕7🤨4🤬1🤮1
PSA: если вы копируете ссылку из приложения YouTube, то к ней в конце прибавляется query parameter si. То есть ссылка выглядит, как youtu.be/random_video_id?si=some_random_part. Так вот, ?si и всё, что идёт далее — это уникальное значение, которое необходимо лишь для того, чтобы отследить, что это конкретно вы скопировали эту ссылку, и понять, кто привёл очередного зрителя по клику по ссылке. Она нужна исключительно для YouTube. Это можно удалить без влияния на работоспособность ссылки. Так что, пожалуйста, ДЕЛАЙТЕ ЭТО.
💯34🤝15❤‍🔥6👍3🌚3💩2
Блог* pinned «PSA: если вы копируете ссылку из приложения YouTube, то к ней в конце прибавляется query parameter si. То есть ссылка выглядит, как youtu.be/random_video_id?si=some_random_part. Так вот, ?si и всё, что идёт далее — это уникальное значение, которое необходимо…»
Блог*
#prog В кодогенераторе cranelift (который, помимо всего прочего, планируют использовать как бекенд rustc для отладочных билдов) для аллокации регистров используется библиотека regalloc2. В репозитории есть занятный документ — обзор дизайна regalloc2, включающий…
#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 быстрее (в некоторых случаях аж в пять раз), но производительность скомпилированного кода в разы хуже. Второе, впрочем, является следствием довольно наивного подхода в реализации (в частности, обработки условных ветвлений), который приводит к избыточному перемещению между регистрами и слотами стека, и впоследствие, скорее всего, может быть улучшено.
7😐1
Кремовые пироги люблю
Anonymous Poll
49%
есть
28%
готовить
59%
быть
🤮10🍌8😁1