#prog #js #typescript #article
The Code Review That Changed Everything
TL;DR: в отличие от прочих абстракций,
(thanks @al_tch)
The Code Review That Changed Everything
TL;DR: в отличие от прочих абстракций,
enum в Typescript приводит к генерации нетрививального рантайм-кода, который не вычищается tree shaker-ами, а в случае численных enum ещё и не даёт type safety.(thanks @al_tch)
DEV Community
The Code Review That Changed Everything
Three months ago, I submitted what I thought was a perfectly reasonable pull request. I had created a...
😢16🤣2🤔1
#prog #csharp #article
Performance Improvements in .NET 10
Сентябрьская статья об оптимизациях в .NET. Как пишет автор, ускорение кода, как правило, достигается не за счёт одного большого изменения, а за счёт множества маленьких — и весь текст статьи это прекрасно иллюстрирует.
В статье множество примеров того, как одно изменение в JIT позволяет применить другие, уже имеющиеся оптимизации, чтобы достичь улучшения, недоступного при применении оптимизаций по отдельности.
Вместе с тем статья несколько расстраивает тем, что ясно показывает, какие усилия приходится тратить разработчикам JIT, чтобы ускорить C#. Многие эти оптимизации были бы избыточны, если бы язык был бы более выразительным или если бы использовались более высокоуровневые (и удобные!) API. Думаю, напишу как-то об этом.
Performance Improvements in .NET 10
Сентябрьская статья об оптимизациях в .NET. Как пишет автор, ускорение кода, как правило, достигается не за счёт одного большого изменения, а за счёт множества маленьких — и весь текст статьи это прекрасно иллюстрирует.
В статье множество примеров того, как одно изменение в JIT позволяет применить другие, уже имеющиеся оптимизации, чтобы достичь улучшения, недоступного при применении оптимизаций по отдельности.
Вместе с тем статья несколько расстраивает тем, что ясно показывает, какие усилия приходится тратить разработчикам JIT, чтобы ускорить C#. Многие эти оптимизации были бы избыточны, если бы язык был бы более выразительным или если бы использовались более высокоуровневые (и удобные!) API. Думаю, напишу как-то об этом.
Microsoft News
Performance Improvements in .NET 10
Take a tour through hundreds of performance improvements in .NET 10.
😢17👍3😁1🤔1
#prog #article (и #rust, но многое в статье от Rust не зависит)
SocketAddrV6 is not roundtrip serializable
SocketAddrV6 is not roundtrip serializable
😱5💩1
#prog #rust #article
Rust in Android: move fast and fix things
Rust in Android: move fast and fix things
The 2025 data continues to validate the approach, with memory safety vulnerabilities falling below 20% of total vulnerabilities for the first time.
We adopted Rust for its security and are seeing a 1000x reduction in memory safety vulnerability density compared to Android’s C and C++ code. But the biggest surprise was Rust's impact on software delivery. With Rust changes having a 4x lower rollback rate and spending 25% less time in code review, the safer path is now also the faster one.
We'll analyze a near-miss memory safety bug in unsafe Rust: how it happened, how it was mitigated, and steps we're taking to prevent recurrence. It’s also a good chance to answer the question “if Rust can have memory safety issues, why bother at all?”
👍5
Блог*
Как ни странно, больше всего проблем принёс сам факт инкремента версии...
#prog #article
Ваши тесты упали по причине JavaScript
TL;DR: в коде для UI-тестирования был
Ваши тесты упали по причине JavaScript
TL;DR: в коде для UI-тестирования был
if по версии VS Code, который сравнивал версию (заданную строкой) с литералом "1.44.0", и лексикографическое сравнение строк перестало быть корректным в данном случае, когда минорная версия VS Code перевалила за сотню и стала умещаться в три символа, а не два.🤩13❤2
#prog #go #article
The Green Tea Garbage Collector
Статья о дизайне нового сборщика мусора для Go, который идейно является всё тем же mark and sweep, но сканирует память страницами вместо того, чтобы отслеживать в очереди каждую индивидуальную аллокацию.
Разумеется, выигрыш по производительности сильно зависит от формы графа объектов (и в некоторых случаях может быть хуже предыдущего), но на практике даже сканирование страниц памяти по 2 процента за раз уже даёт выигрыш.
The Green Tea Garbage Collector
Статья о дизайне нового сборщика мусора для Go, который идейно является всё тем же mark and sweep, но сканирует память страницами вместо того, чтобы отслеживать в очереди каждую индивидуальную аллокацию.
Разумеется, выигрыш по производительности сильно зависит от формы графа объектов (и в некоторых случаях может быть хуже предыдущего), но на практике даже сканирование страниц памяти по 2 процента за раз уже даёт выигрыш.
go.dev
The Green Tea Garbage Collector - The Go Programming Language
Go 1.25 includes a new experimental garbage collector, Green Tea.
👍8🤡3
#prog #rust #rustlib
TIL что в bindgen есть возможность прицепить коллбеки, которые будут вызываться для определений, обрабатываемых во время генерации биндингов, и что есть уже готовый CargoCallbacks, который печатает
для каждого обрабатываемого файла и каждой явно заданной переменной окружения.
TIL что в bindgen есть возможность прицепить коллбеки, которые будут вызываться для определений, обрабатываемых во время генерации биндингов, и что есть уже готовый CargoCallbacks, который печатает
cargo:rerun-if-changed...
для каждого обрабатываемого файла и каждой явно заданной переменной окружения.
docs.rs
CargoCallbacks in bindgen - Rust
A `ParseCallbacks` implementation that will act on file includes by echoing a rerun-if-changed line and on env variable usage by echoing a rerun-if-env-changed line
🤔2
#prog #rust #python
Pre-PEP: Rust for CPython
Отдельно отмечается, что компилятор Rust в настоящее время поддерживает все платформы, официально поддерживаемые CPython.
Pre-PEP: Rust for CPython
In summary, Rust provides many extremely useful benefits that would improve CPython development. Increasing memory safety would be a significant improvement in of itself, but it is far from the only benefit Rust provides.Историческое событие.
Отдельно отмечается, что компилятор Rust в настоящее время поддерживает все платформы, официально поддерживаемые CPython.
Discussions on Python.org
Pre-PEP: Rust for CPython
Introduction We (@emmatyping, @eclips4) propose introducing the Rust programming language to CPython. Rust will initially only be allowed for writing optional extension modules, but eventually will become a required dependency of CPython and allowed to be…
🔥14🤡2