Notes from kernel hacking in Hare, part 2: multi-threading
drewdevault.com
drewdevault.com
Arguably, another needed change in thinking should maybe be about supporting Windows and macOS, which together represent 90% of desktops and laptops.
There can be nothing wrong with changing one's mind. Particularly if it's for the better and earlier on in development. Few would find fault or blame, and perhaps many would agree.
With respect to this paper, it's interesting but mainly considers a C audience and makes many assumptions which do not apply to Hare. For instance, the kind of optimizations discussed in section 4.1 are prohibited by the Hare specification. So too for section 4.2, and much of the remainder of the paper deals with optimizations of this nature. Hare's approach is specifically to eschew many of these kinds of optimizations, such that the program you write is very similar to the program that runs, even at the cost of performance. The programmer is expected to optimize their program in many cases, rather than expecting the compiler to do it -- at a great potential cost to correctness and debuggability.
Anyway, this was an interesting read, thanks for sharing!
I mean, of course you can just mandate sequential consistency everywhere and bloat your codegen in the process, but if you care so little about performance, why even bother with Hare? If I wanted a poorly specified, badly performing language with no concurrency support and a superficial appeal for simplicity, Python will suffice in the role.
> I mean, of course you can just mandate sequential consistency everywhere and bloat your codegen in the process, but if you care so little about performance, why even bother with Hare? If I wanted a poorly specified, badly performing language with no concurrency support and a superficial appeal for simplicity, Python will suffice in the role.
This was not nice.