1.83K subscribers
3.3K photos
132 videos
15 files
3.58K links
Блог со звёздочкой.

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

Небольшое прикольное комьюнити: @decltype_chat_ptr_t
Автор: @insert_reference_here
Download Telegram
А теперь ложка дёгтя:
Корректность get довольно существенным образом зависит от проверки в new, то есть от кода, напрямую не связанного с get. В данном случае уследить за условиями было несложно, но в каком-то более сложно устроенном коде это было бы не так просто заметить. Отличная иллюстрация того, что unsafe может протекать.
Также нам приходится следить за тем, чтобы мы меняли элементы дека, но не сам дек как таковой. В идеале, стоило бы хранить соответствующий адаптер над деком, но такого адаптера (пока?) нет.
Несмотря на то, что компилятор не следит за сырыми указателями, есть интерпретатор кода miri, который позволяет проверять корректность кода динамически. Мой первый вариант кода использовал std::mem::transmute для того, чтобы принудительно перезаписать lifetime, а ссылки брались через get_unchecked_mut. Этот вариант давал ошибку в miri. Я не был уверен, кто был в данном случае неправ, поэтому задал соответствующий вопрос в официальном Rust чате в Discord. Очень хороший человек @udoprog потратил время на то, чтобы разобраться в моём коде и указать мне на то, что я действительно провоцирую подобным образом UB (так что miri таки был прав), и предложил использовать сырые указатели. Спасибо, @udoprog
Forwarded from Nick
Боров чекер звучит как работа лесника
Блог*
#prog #article Изобретаем JPEG Замечательная статья про устройство JPEG
Собственно, артефакты кодирования в виде квадратов на градиентах понятно откуда берутся. Я тут подумал: а что, если кодировать кусок, принимая во внимание не только данные в нём, но и вокруг него? По идее, это должно уменьшить артефакты. С другой стороны, это может снизить эффективность сжатия.

Почти уверен, что мысль не нова и уже кому-то приходила в голову. Если вы знаете о практической реализации этой идеи - напишите в чат, пожалуйста: @decltype_chat_ptr_t
С новым годом!
С новым годом, @aspirin_pp
Forwarded from Αλεχ Zhukovsky
айфоны - это го от мира смартфонов
Forwarded from The After Times
#prog #rust #article (🔁✏️➡️🦀)

Rewriting m4vgalib in Rust

"The results so far? The Rust implementation is simpler, shorter (in lines of code), faster, and smaller (in bytes of Flash) than my heavily-optimized C++ version — and because it's almost entirely safe code, several types of bugs that I fought regularly, such as race conditions and dangling pointers, are now caught by the compiler."
Forwarded from Jem
Forwarded from Alex Levin
Представил в голове мир, где если у тебя итальянская локаль, то 44 > 1000 ибо сначала в римские числа переводит.