TIL that Prolog has a notion of a functor! https://www.cse.unsw.edu.au/~billw/dictionaries/prolog/functor.html
In true PL style it has a different meaning from the Haskell, OCaml and C++ terminology.
miniblog.
Icon is a programming language with an interesting backtracking evaluation model I've not seen before:
I'm not sure how I feel about languages with auto currying.
Upside: Partial application is easy.
Downside: It's common to miss a parameter when refactoring, and errors can be unclear.
Upside: You can be generic on functions: a -> b.
Downside: An a -> b isn't very useful.
TIL that Haskell does not complain about incomplete pattern matches by default!
Exodus: a neat tool that can convert dynamically linked binaries to self-contained static binaries that work on pretty much any Linux machine!
Using GitHub's Copilot to automatically generate descriptions of code in English!
Some of the examples are really impressive, others less so. The regex example is particularly compelling.
I really like the idea of using deliberately ugly syntax when proposing a language feature. You avoid bikeshedding when you're figuring out the basic design.
I don't know why this is so rare. Bikeshedding can be exhausting, especially when a design is young.
I've released difftastic 0.13! In this release:
* Added support for Bash, Common Lisp and Ruby
* Improved C, CSS, JS, JSON, TS and plain text in comments
* A bunch of new explanatory screenshots in the README
I've had bug reports from people compiling difftastic on both OpenIndiana and Windows!
It's kinda neat, and so far the build fixes have been straightforward.
Optimising fizzbuzz with hand-written x86-64 assembly and AVX2: https://codegolf.stackexchange.com/a/236630
I guess it was only a matter of time, but it's an impressive achievement: 31GB/second!
Adding LLVM control flow integrity to make exploits harder is coming to Rust: https://rcvalle.com/docs/rust-cfi-design-doc.pdf
The primary use case is mixing C/C++ with Rust: you have weaker memory safety guarantees and hardening is still necessary. You don't want a partial Rust port to reduce security!
Devious regexp trick I've not seen before: [^]
Negating the empty set matches any character, which lets you emulate DOTALL (i.e. a . matches newlines too) on older regexp implementations.
Explaining syntax-aware diffing is tricky, so I'm trying to add some compelling screenshots to the difftastic readme.
They need to demonstrate weaknesses in text diffing, and be small enough to be mobile friendly. Here's the current examples.
Excellent summary on the problems that tree-sitter solves, how it differs from LSP, and why it's such a great fit for editors: https://www.masteringemacs.org/article/tree-sitter-complications-of-parsing-languages
I'm regularly impressed by how many parsers are available and how accurate they are.
Showing 16-30 of 345 posts






