miniblog.

TIL that JetBrains has a product Spaces that competes with both GitHub (source hosting, CI) and Teams (chat): https://www.jetbrains.com/space/ It's an incredibly ambitious project.
Program slicing for Rust in VS Code, allowing you to see which parts of your program affect the current expression!
Pursuit is Javadocs equivalent for Purescript, and it's one of the best looking API docs sites I've seen in a long time. It features versioning, links to individual functions and even links to repo and specific source code. This screenshot is from
Photo
Programming languages usually try to minimise undefined behaviour. What if you did the opposite? How much UB could you have whilst still being (theoretically) usable?
Difftastic now supports Haskell and C# files too!
Photo Photo
StarScan: https://source.chromium.org/chromium/chromium/src/+/master:base/allocator/partition_allocator/starscan/README.md Really interesting idea for improving manual memory management security: quarantine free()'d value until you can see all references are gone!
Difftastic treats syntax errors as just another token in the tree. It works surprisingly well!
Photo
An esolang that exclusively uses characters and grammar from traditional Chinese! There are very few languages that are purely non-ASCII, it's interesting to see other examples in this space. https://wy-lang.org/ (Great looking landing page too.)
Adding C++ support to difftastic! The change shown here is src/dynamics/b2_distance_joint.cpp in https://github.com/erincatto/box2d/commit/3d92ed4ec487b8e2aff3fc7dc58663870b17c534?branch=3d92ed4ec487b8e2aff3fc7dc58663870b17c534&diff=split and I think it compares pretty favourably with GitHub (second image).
Photo Photo
Today I learnt that .cxx is an extension used in some C++ projects because "xx" vaguely resembles "++" rotated! It makes sense, but I'd never spotted the similarity before.
I shared difftastic on /r/rust, and received some great feedback, some feature requests, and two generous people even read the code and suggested optimisations! https://old.reddit.com/r/rust/comments/pp6y3d/difftastic_a_syntactic_diff_tool/
It's a shame that programming languages take a while to write. I have so many ideas!
I'm adding C support to difftastic, and it's showing some really interesting examples of tree diffing. In this case, difftastic considers the second `+` in `x + colwidth + diff` to be unchanged. This is because `+` is right associative in C!
Photo
I'm delighted to release difftastic 0.9! https://crates.io/crates/difftastic In this release: * Added support for TypeScript, TSX and Elixir * Improved Rust, Clojure, CSS and plain text * Added a manual: https://difftastic.wilfred.me.uk/ * Performance improvements (~40% cumulatively I believe)
Today I learnt about radix heaps! They're a faster min-heap when your values are monotonically increasing -- perfect for Dijkstra. It saved 15% runtime for difftastic :) Wikipedia reference: https://en.wikipedia.org/wiki/Radix_heap The library I'm using: https://en.wikipedia.org/wiki/Radix_heap
Computing AMD-specific instructions on Intel by just brute-forcing the whole execution space and seeing which values differ: https://robert.ocallahan.org/2021/09/emulating-amd-rsqrtss-etc-on-intel.html
Took me a while to figure out how to debug a hanging Rust test. The best invocation seems to be: $ RUST_TEST_THREADS=1 cargo test -- --nocapture This will print test names before execution, so you can see where you're hanging. --nocapture lets you see print output immediately.
I've factored out the Vector and Edge definitions in difftastic so I can experiment with different graph search algorithms! It's so much easier when you can toggle between them. So far A* is only 10% faster than Dijkstra, but I've found an additional 20% win that benefits all :)
rf for Golang is a really elegant CLI refactoring tool. You use shell style commands for code changes! $ rf 'mv T.Field T.field' https://pkg.go.dev/rsc.io/rf
I've written a manual for Difftastic with mdbook! https://difftastic.wilfred.me.uk/ mdbook makes it super easy: it auto-creates stub files, and reloads your browser as you write. It's a really nice workflow.
Showing 81-100 of 345 posts