#prog #amazingopensource
TweetNaCl:
a crypto library in 100 tweets
TweetNaCl:
a crypto library in 100 tweets
TweetNaCl is the world's first auditable high-security cryptographic library. TweetNaCl fits into just 100 tweets while supporting all 25 of the C NaCl functions used by applications. TweetNaCl is a self-contained public-domain C library, so it can easily be integrated into applications.
🤔4
#prog #article
snuffle / salsa / chacha
Небольшой текст про анатомию ChaCha20, крутое свойство этого шифра (которым обладают далеко не все поточные шифры) и про то, как это шифр был рождён из-за, внезапно, #politota соображений.
snuffle / salsa / chacha
Небольшой текст про анатомию ChaCha20, крутое свойство этого шифра (которым обладают далеко не все поточные шифры) и про то, как это шифр был рождён из-за, внезапно, #politota соображений.
👍7
#prog #article
GSoC 2025: Usability Improvements for the Undefined Behavior Sanitizer
clang поддерживает несколько санитайзеров, в том числе UBSan для отловки неопределённого поведения (с оговорками). Запускать их при этом можно в двух разных режимах. Первый — с добавлением рантайма, который при детектировании UB перед завершением работы программы печатает, что конкретно пошло не так. Второй вариант — без рантайма, в котором при детектировании UB просто исполняется trap-инструкция процессора.
Второй вариант больше годится для случаев, когда важны оверхед на производительность и размер компилированного кода (в embedded, например). Проблема в том, что UX у такого решения ужасный: получай аварийное завершение программы, а что именно пошло не так — гадай сам. И даже дебаггер в этих случаях не особо помогает, потому что он максимум укажет на инструкцию рядом с trap и на соответствующую строку исходного кода, но не более.
Anthony Tran задался целью исправить этот недостаток. С этой целью он модифицировал кодогенерацию так, чтобы к trap-инструкции прицеплялась отладочная информация, в которую уже включалось человекочитаемое сообщение об ошибке. Этот подход хорош тем, что сразу же подхватывается существующими отладчиками. Разумеется, дополнительная отладочная информация требует места, но оверхед на размер кода на практике пренебрежимо мал.
Не обошлось без костылей из-за ограниченности DWARF:
GSoC 2025: Usability Improvements for the Undefined Behavior Sanitizer
clang поддерживает несколько санитайзеров, в том числе UBSan для отловки неопределённого поведения (с оговорками). Запускать их при этом можно в двух разных режимах. Первый — с добавлением рантайма, который при детектировании UB перед завершением работы программы печатает, что конкретно пошло не так. Второй вариант — без рантайма, в котором при детектировании UB просто исполняется trap-инструкция процессора.
Второй вариант больше годится для случаев, когда важны оверхед на производительность и размер компилированного кода (в embedded, например). Проблема в том, что UX у такого решения ужасный: получай аварийное завершение программы, а что именно пошло не так — гадай сам. И даже дебаггер в этих случаях не особо помогает, потому что он максимум укажет на инструкцию рядом с trap и на соответствующую строку исходного кода, но не более.
Anthony Tran задался целью исправить этот недостаток. С этой целью он модифицировал кодогенерацию так, чтобы к trap-инструкции прицеплялась отладочная информация, в которую уже включалось человекочитаемое сообщение об ошибке. Этот подход хорош тем, что сразу же подхватывается существующими отладчиками. Разумеется, дополнительная отладочная информация требует места, но оверхед на размер кода на практике пренебрежимо мал.
Не обошлось без костылей из-за ограниченности DWARF:
To accomplish this, we needed to find a place to “stuff” the string in the DWARF DIE tree. Using aDW_TAG_subprogramwas deemed the most straightforward and space-efficient location. This means we create a syntheticDISubprogramwhich is not a real function in the compiled program; it exists only in the debug info as a container.
<...>
When a trap is hit in the debugger, the debugger retrieves this string from the debug info and shows it as the reason for trapping.
The LLVM Project Blog
GSoC 2025: Usability Improvements for the Undefined Behavior Sanitizer
Introduction My name is Anthony and I had the pleasure of working on improving the Undefined Behavior Sanitizer this Google Summer of Code 2025. My mentors were Dan Liew and Michael Buch.
👍7
Forwarded from меньше чем три <3
Use non-human-readable ids (for example objectGuid) instead of things like SAM account name or email address for data that you expect to live longer that a single day - names tend to change even if this was not originally planned by the spec.
#software_work_tips
#software_work_tips
💯8🤔2
Блог*
#prog #rust #article Four challenges cargo-semver-checks has yet to tackle
Почти все до сих пор не решены :/ Ну, хотя бы по cross crate analysis и type checking подвижки есть
Кем бы вы предпочли работать?
Anonymous Poll
42%
Дизайнер автомобилей
58%
Дизайнер игрушечных автомобилей
🤡13🫡3😁1
#prog #rust #article
What does it take to ship Rust in safety-critical?
Статья про очень конкретные препятствия к использованию Rust в safety-critical системах.
Это именно препятствия, а не блоки — в этих областях Rust уже используется в проде.
What does it take to ship Rust in safety-critical?
Статья про очень конкретные препятствия к использованию Rust в safety-critical системах.
Это именно препятствия, а не блоки — в этих областях Rust уже используется в проде.
blog.rust-lang.org
What does it take to ship Rust in safety-critical? | Rust Blog
Empowering everyone to build reliable and efficient software.
🤔2
Forwarded from ✨[LLC] food and ass✨
Оказывается если закрывать как можно быстрее срочные задачи - это не значит что ты сможешь сделать в спокойном темпе не срочные но нужные, тебе просто дадут новых срочных задач от коллег 🥵
Please open Telegram to view this post
VIEW IN TELEGRAM
🫡19😢7💯1
#prog #rust #article
Офигенно!
Rust's standard library on the GPU
Офигенно!
Rust's standard library on the GPU
GPU code can now use Rust's standard library. We share the implementation approach and what this unlocks for GPU programming.
This works because of our customhostcallframework. A hostcall is analogous to a syscall. A hostcall is a structured request from GPU code to the host CPU to perform something it cannot execute itself. You can think of it like a remote procedure call from the GPU to the host to achieve syscall-like functionality.
To end users, Rust's std APIs appear unchanged and act as one would expect.
❤11👍7
Блог*
#video Рекурсивный Bad apple (крайне не советую смотреть, если вы страдаете эпилепсией)
#video
Bad apple, но каждый кадр меняется от предыдущего на два прямоугольника.
(есть вариант со сменой одного прямоугольника за кадр, но он выглядит хуже)
Bad apple, но каждый кадр меняется от предыдущего на два прямоугольника.
(есть вариант со сменой одного прямоугольника за кадр, но он выглядит хуже)
YouTube
Bad Apple!!, but only 2 new rectangles per frame
The 60 fps version of https://youtu.be/V9KJpbzNvKw (so 2 rectangles per frame of the original video), which looks somewhat better.
OG vid: https://www.nicovideo.jp/watch/sm8628149, https://youtu.be/FtutLA63Cp8
OG vid: https://www.nicovideo.jp/watch/sm8628149, https://youtu.be/FtutLA63Cp8
👍3🤔1💩1
#лингво #video
Девять минут нытья по поводу того, какая китайская система письменности логичная и одновременно нет
youtu.be/cYcO3G8Gxu8
Девять минут нытья по поводу того, какая китайская система письменности логичная и одновременно нет
youtu.be/cYcO3G8Gxu8
YouTube
The basics of how Chinese writing works
Get ready to learn Chinese buddy.
Notes/Corrections
--If there's any corrections that need to be made, I'll put them here.
Notes/Corrections
--If there's any corrections that need to be made, I'll put them here.
❤4
"Cloud-native" is a catch-all term for widely adopted shitty technology, such as Go and YAML
💯13🌚3👍1