Damus
David Chisnall (*Now with 50% more sarcasm!*) profile picture
David Chisnall (*Now with 50% more sarcasm!*)
@David Chisnall (*Now with 50% more sarcasm!*)

I am Director of System Architecture at SCI Semiconductor and a Visiting Researcher at the University of Cambridge Computer Laboratory. I remain actively involved in the #CHERI project, where I led the early language / compiler strand of the research, and am the maintainer of the #CHERIoT Platform.

I was on the FreeBSD Core Team for two terms, have been an LLVM developer since 2008, am the author of the GNUstep Objective-C runtime (libobjc2 and associated clang support), and am responsible for libcxxrt and the BSD-licensed device tree compiler.

Opinions expressed by me are not necessarily opinions. In all probability they are random ramblings and should be ignored. Failure to ignore may result in severe boredom and / or confusion. Shake well before opening. Keep refrigerated.

Warning: May contain greater than the recommended daily allowance of sarcasm.

No license, implied or explicit, is granted to use any of my posts for training AI models.

Relays (1)
  • wss://relay.ditto.pub – read & write

Recent Notes

note1c8ydn...
David Chisnall (*Now with 50% more sarcasm!*) profile picture
@nprofile1q...

The thing that annoys me the most about this is that it’s actually a feature I want. And it’s something well within the realms of possibility for on-device compute (our next microcontroller chip will have an inference engine that can run models that do this). But I absolutely do not trust Meta to do this in a trustworthy way. Any vendor shipping this should be able to provide independently auditable guarantees that the data used for facial recognition cannot ever leave the device.
note19zgcj...
David Chisnall (*Now with 50% more sarcasm!*) profile picture
@nprofile1q...

I seem to recall Macron making some very public statements about how the UK imports a lot of energy and should be nicer to France a while ago. At the time, the existing connector was 100% saturated sending electricity to France. After a heatwave, they had to shut down a load of nuclear plants due to a lack of cooling. Others were shut down for maintenance.

Which is to say that the benefits go both ways, irrespective of who normally imports the power.

That said, a large area near the Dordogne has been without power for two days due to flooding, so I don’t think this week is a good time for the French to lecture anyone about electing infrastructure.
note1rkd20...
David Chisnall (*Now with 50% more sarcasm!*) profile picture
@nprofile1q...

I think it's worth separating compile-time and run-time metaprogramming. Smalltalk and Lisp did a lot with the latter to remove boilerplate. Higher-order abstractions that let you just write code for the things where you're deviating from some template are very easy in these languages. Python inherits this ability, but it seems to be used a bit less. JavaScript also inherits it and uses it even less.

Compile-time metaprogramming features are often less flexible but have two additional benefits: better performance (code specialisation at compile time, versus additional dynamic dispatch indirection at run time) and the opportunity to do better error reporting. The latter is the killer feature for me of C++ and Rust over C in systems programming: I can write APIs that will fail to compile if you use them wrongly. That's incredibly valuable, but it doesn't necessarily reduce the amount of code that you need to write.

Features like key-value coding and key-value observing in Objective-C didn't do anything at compile time but massively reduced the amount of code that you needed for GUI apps by allowing the frameworks to ship 100% generic controller classes that just needed to be parameterised on key names.