Rust and LLVM progress in 2021:

PGO in rustc is showing promise, and the Motorola 68000 LLVM backend was upstreamed just to enable usage in Rust!

Dr John Shutt, the author of the kernel lisp language and exploring f-expressions, has passed away:

I'm finding that it's easier to write static analysis tools for language X in language X. It's less to think about.

I've been writing an analysis for JS. I really like working with typescript but it's been easier to prototype if I dogfood.

I like writing web applications in memory managed languages because you shouldn't get pwned by RCE. RCE in Python from *just a number* is scary.

I'm rewriting a Rust function transform function from `&mut Foo` to `Foo -> Foo`. It might be a little slower, but ownership makes it harder to miss parts of the Foo type when I work with values.

I've seen 'modularity shaming' for JS libraries that are big and make sites slow to load. I'm surprised to see Wikipedia start reporting on app size though!

Deliberately overclocking the Super Game Boy 2 so one instruction fails(!) and the ROM contents can be observed:

Nice, accessible discussion of linear types, giving an example where you can prevent sockets being bound and listened to at the same time:

Incredibly impressive: reverse-engineering and modifying SNES games so they run on the faster CPU in the cartridge, not the console CPU:

Lisp macros are like salt, and a little goes a long way. Looking at some code I wrote in 2013 and I was too heavy-handed then. I learnt a lot in the process though!

Today I learnt about --ignore-rev with git-blame. Super handy if git thinks moving some code made you the author.

$ git blame --ignore-rev abcdef source_file

(Turned out I was still the author, but several years earlier!)

LSP is great for providing basic IDE services across editors and language. I do wonder if it limits the best you can do.

For example, I'm not aware of any way you can add up/down arrows to the margin for exploring inheritance. Hover text or lenses seem to be your only options.

A remarkable number of developers continually undo changes or copy-paste code so they can refer to the previous implementation!

I definitely use the GitHub web UI as a reference for the current code sometimes.

On the large number of similarities between software engineering and other kinds of engineering:

Print debugging remains an extremely common debugging technique. This makes me wonder: what's the state-of-the-art for print debugging?

Rust's debug! macro prints a bunch of helpful information (variable name, line number) but there must be other nice tools in this space.

I average about two pull requests per week across my personal GitHub repos. It's easy to let them pile up.

Easy PRs (uncontroversial fix, green build) are fine, but harder PRs (old project, broken build, complex feature) can be a chore in aggregate.

Any tips?

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!