#prog #c #rust #article
Porting libyaml to Safe Rust: Some Thoughts
Или о том, как автор перевёл libyaml, сконвертированный c2rust, в идиоматичный Rust-код. Почему? Этот код используется как бекенд для serde-yaml и при этом существующий интерфейс поверх не давал информацию о положении частей входа вне ошибок.
The result is not just safer and easier, it is also just as performant
Автор также более подробно рассказывает о тонкостях реализации на C и о том, как они изменились с переходом на Rust.
Porting libyaml to Safe Rust: Some Thoughts
Или о том, как автор перевёл libyaml, сконвертированный c2rust, в идиоматичный Rust-код. Почему? Этот код используется как бекенд для serde-yaml и при этом существующий интерфейс поверх не давал информацию о положении частей входа вне ошибок.
The result is not just safer and easier, it is also just as performant
Автор также более подробно рассказывает о тонкостях реализации на C и о том, как они изменились с переходом на Rust.
simonask.github.io
libyaml-safer
👍7
#gamedev #video
Искусственный интеллект в играх не обязательно должен быть продвинутым, чтобы бросать игроку вызов. Довольно наглядно видно на примере разбора устройства AI в "Into the Breach".
youtu.be/fkEG55gFqrA
Искусственный интеллект в играх не обязательно должен быть продвинутым, чтобы бросать игроку вызов. Довольно наглядно видно на примере разбора устройства AI в "Into the Breach".
youtu.be/fkEG55gFqrA
YouTube
The Secret of Into the Breach's AI: Power in Simplicity | AI and Games #72
Sometimes you just don't need super flashy AI in your game. You just need something that is 'good enough' for what your game is trying to do. With that in mind, we dive behind the scenes of Subset Games 2018 release 'Into the Breach', and find out that…
👍9
Наконец-то вроде бы привёл в порядок режим, чтобы спать не днём
@
Наступил выходной
@
Наступил выходной
🌚10🔥1
Nox from Hell 🏴
Photo
Был бы лет на 10 младше — обзавидовался бы. Хотя, блин, я и сейчас немного завидую
💯11
Блог*
#prog #rust #article Очень хорошая демонстрация пользы от type-level наворотов. The Rust language offers a promising approach to safe systems programming based on the principle of aliasing XOR mutability: a value may be either aliased or mutable, but not…
#prog #rust #article
Design safe collection API with compile-time reference stability in Rust
Описанный подход опирается на подход GhostCell и делает его несколько более эргономичным за счёт того, что позволяет означенные коллекции хранить как поля типов.
Design safe collection API with compile-time reference stability in Rust
Описанный подход опирается на подход GhostCell и делает его несколько более эргономичным за счёт того, что позволяет означенные коллекции хранить как поля типов.
Cocl2
Design safe collection API with compile-time reference stability in Rust
Reference Stability is an important concept in C++ STL containers, and it is also one of the major sources of Undefined Behavior (UB). Will an iterator or a reference (pointer) keep valid when you do a modification? In C++ STL, the concept only exists on…
❤🔥3💩1
Папищеки, а поделитесь в комментариях своими котиками (и вообще своими питомцами)
❤2
#prog
В программировании есть принцип, известный как robustness principle или Postel's law. Одна из его формулировок звучит так:
Be conservative in what you send, be liberal in what you accept
Люди, поддерживающие этот принцип, аргументируют, что он необходим для нормальной коммуникации, особенно на ранних этапах ввода систем в эксплуатацию.
Авторы Maintaining Robust Protocols приводят аргументы против этого принципа, точнее, против одной из его интепретации: обработка ввода, не соответствующего спецификации, не приводит к немедленной ошибке, а проходит с угадыванием намерения того, кто этот ввод прислал. TL;DR: следование robustness principle достаточно большой доли эксплуатируемых реализаций приводит к циклу положительной обратной связи, которая может привести к расхождению между протоколом согласно спецификации и протоколом согласно тому, как он работает реально, и в конечном счёте привести к нарушению совместимости между реализациями, которую robustness principle предположительно поощряет.
В программировании есть принцип, известный как robustness principle или Postel's law. Одна из его формулировок звучит так:
Be conservative in what you send, be liberal in what you accept
Люди, поддерживающие этот принцип, аргументируют, что он необходим для нормальной коммуникации, особенно на ранних этапах ввода систем в эксплуатацию.
Авторы Maintaining Robust Protocols приводят аргументы против этого принципа, точнее, против одной из его интепретации: обработка ввода, не соответствующего спецификации, не приводит к немедленной ошибке, а проходит с угадыванием намерения того, кто этот ввод прислал. TL;DR: следование robustness principle достаточно большой доли эксплуатируемых реализаций приводит к циклу положительной обратной связи, которая может привести к расхождению между протоколом согласно спецификации и протоколом согласно тому, как он работает реально, и в конечном счёте привести к нарушению совместимости между реализациями, которую robustness principle предположительно поощряет.
Wikipedia
Robustness principle
design guideline for software that states: "be conservative in what you do, be liberal in what you accept from others"
❤🔥5🔥2