How to make Rust code faster, including profiling, LLVM whole-crate optimisation, and avoiding costly error checks:

Would it make sense for compilers to have a gas model for optimisations? It would enable speculative execution of transforms that are sometimes expensive.

TIL that Rust's dbg! macro also works in release builds, so you can debug issues when you need the perf of a release build.

This differs from debug_assert! which is ignored in release builds.

Tectonic is a fabulous new implementation of TeX that doesn't require a large distribution, doesn't write intermediate files, and automatically loops TeX and BibTeX!

Deep dive into netcode in the Apex Legends shooter, respecting fairness between players with different latencies, and choosing server tickrates:

Bootstrapping a full GCC toolchain from an extremely minimal hex editor has an astounding number of steps:

I didn't realise just how many tools are self-hosting. Not just GCC, but also flex, bison, automake and even perl!

What languages have changed the most since their creation?

JS? IIFEs and prototypes to modules and classes.

C++? Plain pointers to smart pointers.

There must be more dramatic examples.

Pharo 9 will also be available as a Linux package in several major distros!

For most languages this is no big deal, but it's much harder for a deeply mutable image-based environment.

Pharo 9 refactoring demonstrates some clever analysis: if you extract a method from an expression, it can find other occurrences of that expression in the class hierarchy!

A clever approach to JS dependencies during development: Snowpack hosts npm libraries which you can reference directly!

Renaming code often exposes further needs for refactoring:

(I found the example really compelling!)

It's amazing how quickly leaked credentials get harvested and used to create VMs mining cryptocurrencies:

TIL that &mut [T] in Rust means that you can modify the items in a slice, but you can't change its size. It's surprisingly handy: I'd just been using &mut Vec<T> everywhere previously.

The number of tools a programming language is expected to provide is growing over time. This in-depth article describes what Rust provides: you can't just ship a compiler these days.


Want to move to a code autoformatter, but worried about git history? Black even documents how to teach git to ignore your formatting commit!

Python programmers use Linux significantly more than Mac or Windows, and Windows usage declines with experience level:

Show older

Server run by the main developers of the project 🐘 It is not focused on any particular niche interest - everyone is welcome as long as you follow our code of conduct!