1.84K subscribers
3.27K photos
130 videos
15 files
3.55K links
Блог со звёздочкой.

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

Небольшое прикольное комьюнити: @decltype_chat_ptr_t
Автор: @insert_reference_here
Download Telegram
Блог*
#prog #tips Не используйте для подписи коммитов на Github GPG-ключи, у которых указан e-mail, но не имя — Github почему-то считает, что к этим ключам не прикреплены e-mail (The email in this signature doesn’t match the committer email) и потому отказывается…
Вы спросите, откуда я это знаю? А дело в том, что я при просмотре последних release notes к Rust 1.60.0 я обнаружил, что в документации к инструментам для расчёта покрытия кода (то, о чём я не упомянул в своём обзоре) есть место, где есть подпись к скриншоту, но нету самого скриншота. Взгляд на коммиты и структуру репы пролил свет на недоразумение: документацию попросту перенесли из unstable book в документацию cargo, при этом забыв исправить относительный путь и перенести сам скриншот.

Я, как добропорядочный программист, решил это дело исправить (и в итоге исправил), но вот дёрнул меня чёрт в процессе выяснить, почему коммиты, который я запушил с локальной версии репы — на своём компьютере — помечаются Github как unverified... Не, я в итоге разобрался, но знание этого сэкономило бы мне полчаса, если не больше, гугления.
🔥1
#prog #rust #article

How to speed up the Rust compiler in April 2022 — продолжение серии статей от nnethercote. В этот раз Николас взялся, помимо всего прочего, за оптимизацию декларативных макросов — как их парсинг в самом компиляторе, так и сами эти макросы в популярных библиотеках.

Из-за этой статьи я узнал, что макрос quote написан Толяном является декларативным макросом, а не процедурным, да ещё и использует особую технику для парсинга токенов с контекстом, которая эквивалентна по выразительной силе tt-munchers, но, в отличие от них, не является квадратичной (которую Николас, кстати, и задокументировал).
👍5
C++ это очень классный язык
Мой код: пик 1
Результат запуска: пик 2

Перевод ко второй пикче: он здох при попытке создать std::cout. Как? Я даже знать не хочу
🤮9😁4
Forwarded from Санечка Ъысь
Леон
👍10
#prog #rust #c #article

Pointers Are Complicated III, or: Pointer-integer casts exposed

Очередная статья от Ральфа о том, какую семантику должны иметь касты между указателями и числами — предложенный вариант должен существенно упростить абстрактную машину Rust (и C, пусть и в меньшей степени).
👍2🔥1
#prog #rust #article

Improved portability and performance 🦀

Выдержки:

* Why?
In short: There's no standard for building C programs. It's a non-portable mess, and a time sink. Cross-compilation of OpenMP was the last straw. Rust/Cargo is much more dependable, and enables me to support more features on more platforms.

* The platonic ideal portable C exists only as a hypothetical construct in the C standard. The C that exists in the real world is whatever Microsoft, Apple, and others have shipped. That C is a mess of vendor-specific toolchains, each with its own way of doing things, missing features, broken headers, and leaky abstractions. Shouting "it's not C's fault, screw <insert vendor name>!" doesn't solve the problem, but switching to Rust does.

* rayon is a substantial library with thread pools, work-stealing queues, parallel iterators, and many generic interfaces. It being smaller than the "compiler-native" OpenMP was a nice surprise too.

* The hash table implementation in Rust's standard library uses a state-of-the art algorithm, and my C didn't. In theory, nothing stopped me from using the same algorithm in C. In practice, lack of a useful standard library, lack of templates/generics, and the dreadful state of C dependency management did.
Корабль в бутылке
25🔥10👍3
#prog #cpp #article

Офигенная статья от Дани. Вы вот, например, знали, что можно, написав неправильный компаратор, сегфолтнуть сортировку в GCC?
Forwarded from Experimental chill
https://danlark.org/2022/04/20/changing-stdsort-at-googles-scale-and-beyond/

В общем, вот. Мы меняем сортировку в libcxx. Это был годовой 20%-й проект у меня, я к нему возвращался и бросал. Я его любил и ненавидел. Я ненавижу все ваши golden тесты до единого, я смеялся с некоторых багов. Я нашёл 15 критичных просто походив по github, в репозиториях с 5к+ звездами :)

Я видел как бинари падают в проде, когда сортировали 31 элемент, а когда сортировали 30, работали дальше.

Я понял, что даже самые простые изменения базовых вещей требуют огромного количества времени, усилий, и все возможные поведения будут увидены и сломаны. Мы точно сделали что-то полезное, я точно сдвинул какой-то неприподъемный груз, который нарабатывался 15 лет в стандартной библиотеке. И мне хочется рассказать как это делать. Перф тоже есть, но он не так важен как возможность получить перф как только кто-то придумает более быструю сортировку.

Пораньше получилось. Устал я это писать, 7к слов почти :)
Have fun

https://news.ycombinator.com/item?id=31098822
Тред в Мастодоне
https://mastodon.ml/@vladimir/108140472475210443

Происходит так конечно же не только в СНГ. Но GPL, есть GPL, код надо открывать.

https://gitlab.com/fdroid/fdroidclient под лицензией GPLv3
https://gitlab.com/fdroid/fdroidserver под лицензией AGPLv3

В оригинальном посте неправильная ссылка, правильная будет https://ruplay.market/