uk
Feedback
Блог*

Блог*

Відкрити в Telegram

Блог со звёздочкой. Много репостов, немножко программирования. Небольшое прикольное комьюнити: @decltype_chat_ptr_t Автор: @insert_reference_here

Показати більше
1 923
Підписники
+224 години
Немає даних7 днів
-1130 день
Архів дописів
AnimatedSticker.tgs0.04 KB

photo content

photo content

#prog #meme Типикал питонист

Логотип Bon aqua на армянском
Логотип Bon aqua на армянском

#prog #rust #article Winning the fight against the Rust compiler (Coherence in Rust, feat. rustc sources) Или неглубокое погружение в coherence check в rustc.

Так, я понял. У меня нет донатов, потому что мои подписчики не любят толстые кошельки

photo content

#prog #meme про React

photo content

Даже гугл считает, что фембои > томбои
Даже гугл считает, что фембои > томбои

Repost from N/a
photo content

#meme про образование

Программист на Rust в поисках вакансии

#prog #julia #rust #rustlib #article Первая статья — Shelling Out Sucks — рассказывает, что не так с языковыми средствами для запуска шелла (такими, как в Perl и в Ruby с backtick-строками, например). Тезисно: 1. Для интерполяции переменных используется обычная строковая интерполяция, которая не экранирует символы со специальным значением для шелла — что ломает пайплайны, если туда затёсывается, скажем, пробел или кавычка. 2. Для исполнения команды запускается шелл, который, в свою очередь, уже запускает переданную команду — что не слишком эффективно и, вообще говоря, необязательно. 3. Ошибки по умолчанию проглатываются (из-за посредника в виде процесса шелла), а при использовании средств вроде set pipefail ошибки недостаточно подробны, так как не говорят, какая именно команда завершилась ошибкой. 3.1. Некоторые команды используют код завершения не для передачи статуса ошибки, а для передачи полезной информации (grep, например), что плохо сочетается с set pipefail. В статье Put This In Your Pipe рассказывается, как эта проблема была решена в Julia. В языке также присутствует синтаксис backtick-строк, но он реализует другой функционал. А именно: * вместо немедленного запуска команды строка формирует объект, который представляет собой команду. В частности, на этом этапе строка делится на имя запускаемой программы и её аргументы. * синтаксис для интерполяции значений (не только переменных, но и выражений) уже делает необходимое экранирование. * интерполяция массивов работает аналогично shell expansion вместо вставки разделённых пробелами строк. * функции для запуска команд порождают процессы и собирает их коды возврата самостоятельно, без делегации командной оболочке. В Rust есть библиотеки для запуска команд, основанные на похожих принципах: xshell (от Алексея Кладова) и более продвинутая duct, позволяющая пайпить команды. Документация xshell прямо отсылает к "Shelling out sucks" и "Put this in your pipe", а документация duct дополнительно рассказывает о том, какие ловушки закрывает. P. S.: тот факт, что в Unix-like системах до сих пор нет вменяемого способа завершить дерево процессов более чем единичной глубины — это охренеть как странно.

nice
nice

Копропилот передаëт привет
Копропилот передаëт привет