The C-- Language Specification (2005) [pdf]
cs.tufts.edu
cs.tufts.edu
That’s not to say llvm isn’t great, but some of the design choices it has make it a lot of work to do funky stuff ! And c— is a bit easier to write low level rts snippets in.
I do think the ghc c— flavor is super nice to write in these days.
(It then goes to one of: - Machine code generation - into C for feeding to gcc - into LLVM's intermediate representation. )
For a general overview of GHC's architecture, see [3].
[1] A. Tolmach, T. Chevalier and the GHC Team, An External Representation for the GHC Core Language (For GHC 6.10). https://downloads.haskell.org/~ghc/6.12.2/docs/core.pdf
[2] S. Peyton Jones, Implementing lazy functional languages on stock hardware: the Spineless Tagless G-machine. https://www.microsoft.com/en-us/research/wp-content/uploads/...
[3] S. Marlow, S. Peyton-Jones, The Glasgow Haskell Compiler. https://www.aosabook.org/en/ghc.html
EDIT: One advantage that comes to my mind is that compiling to C-- will give slightly more power to deal with stack. E.g. implementing exceptions, continuations etc would be simpler. This is possible in C using inline assembly.
GHC often produces more efficient code than the LLVM backend.
“C++++-= is the new language that is a little more than C++ and a lot less.” -Bill Joy
In this talk from 1991, Bill Joy predicts a new hypothetical language that he calls “C++++-=”, which adds some things to C++, and takes away some other things.
https://medium.com/@donhopkins/bill-joys-law-2-year-1984-mil...
So, I went to the website[1] linked in the PDF to learn more, but sadly it appears the domain has been taken over and now just displays a small collection of badly written articles about Windows.
Edit: ah, looks like dragonbonheur found and linked it already in this thread!
Abstract: This paper outlines the proposal for generalizing the overloading rules for Standard C++ that is expected to become part of the next revision of the standard. The focus is on general ideas rather than technical details (which can be found in AT&T Labs Technical Report no. 42, April 1,1998).