I have to say, that gives me a funny sort of feeling. The linked 0.9 tarball appears to support the Motorola 68000 and Vax, and https://gcc.gnu.org/backends.html seems to indicate that both are still supported, which is kind of beautiful (though there's a note on vax that "A hardware implementation is not currently being manufactured":P). Just... disconcerting to imagine a world before gcc supported x86.
I was curious what architectures were supported by the original GCC, if not x86. It seems the answer is vax and 68020: https://gcc.gnu.org/wiki/History
That’s because Eric Ostrom had somehow gotten us a vax 750 for some inexplicable reason (years later he told me he was astonished that nobody appreciated it) as if anybody wanted a vax.
So RMS started using it for his gnu project since nobody else cared. It was just using up power in a small machine room on the 3rd (or 7th — I can’t remember) floor of tech square.
Yup. My point was that I can understand if someone rejects a 750 in 1987 because it is fairly slow. I think home computers like the Amiga and Atari ST had at least that much raw CPU power?
But VAXen in general in 1987 weren't yet hopelessly slow, right?
I can understand if people didn't like VAXes for personal reasons. I had a pick of both a fast VAX and fast Sun workstations in 1987, the Suns were clear winners for me.
It was delivered back when the 750 was new, but we had lispms and PDP-10s and didn't care about stuff like vaxes.
I think it was already obsolete when RMS started using it, and had probably never been used over the years by anyone. Nowadays that kinds of thing is unremarkable, but back then at most places it would have been shocking.
A 750 was a nice 'personal computer' in 1987 (I ran 3 of them in that year, along with a 780 and a bunch of different microVaxen/Vaxstations) especially if you had plenty of memory (8MB was comfy, 14MB max). CPU wasn't so fast (less than 1MIP), but I/O was well engineered and well matched so it 'felt' responsive. It was reasonably fast with 1 user, not terrible up to maybe 3-4 power users and significantly more just doing email/text processing/etc. And the CPU only weighed about 100lbs (without rack & disks)!
The 784 was more capable (with caveats), but 1) only a handful were ever built (less than 10?), and 2) it was huge, both in physical size and power consumption (it's basically 4 x 11/780s with a custom interconnect cabinet). And as I understand not terribly reliable. You might be thinking of the 785, which was an improved 780, so it was still big and power hungry, but lots more were built.
Yes, I wrote that wrong. I initially checked the VAX wikipedia page and thought 784 looked familiar. But I'm pretty sure it was a 785 now that you remind me.
> I/O was well engineered and well matched so it 'felt' responsive
Yeah, I remember back then how Dhrystones were pretty misleading when comparing things like a VAX 11/780 and a barebones 68000 system.
It was interesting working on VAXes. They had really good documentation (10 shelf-feet of orange binders :), and I liked the ";n" automatic file versioning. But having a personal Sun workstation with X11 was so much nicer, and Unix felt much more natural.
Yeah...always good for a laugh. Sure, your 68k can compute a Sieve of Eratosthenes 3 times faster than my 780 (or whatever)...but no 68k alive (at the time) could support 50+ interactive terminal users like we did all day every day (and provide email, netnews, ftp, etc. for the whole campus).
DEC VMS is indeed very nice, but we didn't run it. We ran a locally hacked version of BSD 4.2/4.3. At some point I got upgraded to a Sun 3/160 on my desk (well...next to it) so I hear you.
This is the stuff of religious wars; and the VAX is the patron saint of the CISC school of ISA design. Large parts of the VAX ISA are very nice, and it's a lot of fun to program in assembler. There's (relatively for the time) lots of registers, and tons of addressing modes. But some of it is plain bonkers. How many variations of ADDL3 are there across all addressing modes? Dunno...thank gawd the doco is excellent. Then you get to things like INDEX and the numerous character string instructions and suddenly you got a migrane. You want BCD? Well of course you do. A CRC instruction? The customer is always right. Bit fields? Why wouldn't we? Didn't find something you like? We have the writable control store option so you can microcode your own instructions.
Yeah, I think I remember seeing the sysops load the VAX CPU microcode using a floppy on the front panel (?)
I don't disagree in general. Writing a disassembler must have been a real challenge.
It's a waste of gates in the CPU. You put a lot of unnecessary combinatorical logic on the critical path, which limits the clock speed.
RISC chips remove everything that is not needed for the output of a C compiler, making the chip smaller and faster.
But from the perspective of Stallman writing a C compiler and having to generate and read lots of assembly code, I can see how the VAX assembly was easy to deal with. He could skip past a lot of stuff like BCD/CRC.
I'm not intimately familiar with 386 assembly, but my impression is that you have a lot of interdependencies and special cases? That can't be fun when writing a compiler. But at least it's not an accumulator-based CPU architecture like the 6502 or the PIC16, where everything has to be done through a single register.
The 730 & 750 load microcode from cartridge tape (TU58). The 780/785 had a 'front end processor' (a baby PDP-11) which loaded microcode from floppies.
It's a waste of gates in the CPU.
Couple of things. First, VAX was designed when lots of stuff was still written in assembly, so they threw the kitchen sink at it. You didn't have a stdlib, you had huge numbers of assembly instructions. That wasn't how things evolved, but hindsight is 20-20, as they say. Second, C wasn't top-of-mind when designing VAX. The DEC systems programming language equivalent was BLISS, which is quite different than C. And FORTRAN & COBOL were probably more important.
And, yes, the folks who came up with RISC often cite the baroque nature of the VAX instruction set as inspiration for stripping things down. But there again, not driven by C per se; the first VLSI RISC, the IBM 801 (later PC RT), was targeted for a language called PL.8, a descendant of PL/I.
Sorry, I didn't mean to sound disparaging. Given my specific use case of running compiled C code, then an advanced CISC CPU has a lot of wasted gates. But that's not what the VAX was designed for as you pointed out.
> In late 1983, in an effort to bootstrap the GNU operating system, Richard Stallman asked Andrew S. Tanenbaum, the author of the Amsterdam Compiler Kit (also known as the Free University Compiler Kit)
I see what you did there
edit: Oh but actually Richard Stallman is careful to clarify:
> Shortly before beginning the GNU project, I heard about the Free University
Compiler Kit, also known as VUCK. (The Dutch word for "free" is written
with a V.)
The "free" in VUCK doesn't stand for free as in freedom, or even free as in beer. Free University is a weird translation of the name of a specific institution - the Vrije Universiteit in Amsterdam. Tanenbaum was a professor there, giving classes on operating systems. So I'd say it should rather be called the VU Compiler Kit.
> The "free" in VUCK doesn't stand for free as in freedom, or even free as in beer. Free University is a weird translation of the name of a specific institution - the Vrije Universiteit in Amsterdam.
It isn’t a “weird translation” - “Free University” is a perfectly valid translation of Dutch “Vrije Universiteit”. You just have to understand the historical background, that the university was so named because it was free from control by State or Church, unlike other universities in the Netherlands at the time of its 19th century founding
That's a pretty interesting list! A lot of interesting entries there, including a couple (e.g. Needlemakers) signed by Cromwell.
Given that it was issued by the privy counsel it is interesting that it has some notable omissions (though how comprehensive can the records be over such a long period, anyway?). I thought at first it might have been limited to charters in the current UK, but it does have the Massachusetts Company (1629), though not Virginia's charter (1606). Has the East and West India Companies, but not the College of William and Mary (1693) -- there are images of that one on the web, though not the signature.
My school was also in the Massachusetts colony, the somewhat pompous Roxbury Latin, 1643, charter 1645 (the unfortunate Charles I). It's been more than 40 years since I clapped eyes on its charter - astonishing they haven't put it online. My memory that it was 1640 was corrected by a bit of web searching.
Really these things are archaic silly relics, like monarchies themselves.
My guess: the royal Governor of an (at-the-time) British colony issued a charter in the name of the crown, and people in that colony called it a “royal charter” since it was issued in the King’s name, but while that kind of thing may pass for a “royal charter” in the colonies, in London it was not considered to be one
I don't know. While looking around to see if I could find my school's charter online I discovered that Harvard never had a royal charter, though at various times they sought one. On the other hand College of William and Mary got one (from the eponymous co-rulers) in 1693.
As my parallel comment noted, there are some notable omissions in that list, quite unsurprising given its thousand year scope.
Wikipedia’s article on Thomas Dudley, governor of Massachusetts Bay Colony, says he issued one of Harvard’s charters, and provided land and funds for the founding of Roxbury Latin. Since as Governor he was technically the monarch’s representative, I could see why both Harvard and Roxbury might have elided the technical distinction between “chartered by the King’s official representative” (vice regal) and “chartered by the King personally” (regal)
> As my parallel comment noted, there are some notable omissions in that list, quite unsurprising given its thousand year scope.
The only "Royal Australian" body it has is the Royal Australian Chemical Institute (RACI, to which my father belongs), which is the national professional body for chemistry. But, it is missing many other "Royal Australian” organisations, including all the “Royal Australian” medical professional colleges (e.g. the Royal Australian College of General Practice, to which belongs my mother). I know under Australian law, it is illegal to call yourself “Royal” without approval from Buckingham Palace. But, possibly, that approval isn’t technically considered a “royal charter”-since 1946, the Australian federal and state governments effectively control the use of “Royal”, the Australian government sends the paperwork to Buckingham Palace for the monarch’s signature, but the monarch will sign anything if the right person gives it to them. However, that’s out of the Privy Council’s jurisdiction (which is the UK only), so the Privy Council might not know about it. The RACI is on this list, because it was 1934, and that was before control over the use of the word “Royal” was transferred from the British government to the Australian ones, and hence the Privy Council would have processed the application. EDIT: One page on their website notes that getting permission to call yourself "Royal X" is technically a separate process from getting a royal charter, you can have one without the other
Another guess: the College of William and Mary got a letter from the eponymous monarchs approving its use of their names, but the Privy Council doesn’t technically consider that letter to be a “royal charter”, because it didn’t use the right magic code words to count as one
I assume the GG, being a viceroy, can sign these things on the king's behalf? But what do I know?
I did find it ironic that I moved from aus to a republic, only to attend a school with supposedly a royal charter.
> Another guess: ...but the Privy Council might not technically consider that letter to be a “royal charter”, because it didn’t use the right magic code words to count as one
If you're going to cast a magic spell you've gotta get it right.
> I assume the GG, being a viceroy, can sign these things on the king's behalf?
Apparently not. According to a 1946 edict of Buckingham Palace (whose text does not appear to be publicly available, although there are public documents referencing it), the procedure is (a) request is approved by Prime Minister (for national orgs) or state Premier (for state-based orgs)–in their sole individual discretion, (b) PM/Premier advises GG/Governor to submit request to Buckingham Palace, (c) the King/Queen signs it and returns it. Although theoretically either the GG/Governor or the monarch could veto the request, it is almost inconceivable they ever would. I think, theoretically, Buckingham Palace could delegate the power to sign them to GG/Governor, but they likely worry that not having the monarch sign it personally would deprive it of its magical properties. Also, in 1983, the federal government adopted a policy that the PM would no longer consider applications for the title "Royal" from national orgs, so now only state-based ones can get it. Any future PM could decide to change that, but in over 40 years nobody has. Even Tony Abbott, who was such a devout monarchist that he had to (briefly) resurrect knighthoods, couldn't be bothered.
> If you're going to cast a magic spell you've gotta get it right.
As I mentioned in a sibling comment, there is a notice on the Privy Council's website saying their list is not exhaustive, and please contact them to report any omissions. So, a few hours ago, I contacted them to query whether the College of William and Mary's omission is intentional or a mistake. I'll see what they say. It helps they have a copy of their charter on their website: https://scrc-kb.libraries.wm.edu/royal-charter
The Wikipedia article suggests that Stallman understood it as "Free (University (Compiler Kit))" only to find out that it was "(Free University) Compiler Kit":
> When Tanenbaum advised him that the compiler was not free, and that only the university was free, Stallman decided to work on a different compiler.
Free University is a perfectly fine translation, just not much used because of the high chance of misunderstanding. The "free" does stand for free as in freedom, just a different kind of freedom than you'd think of. The Vrije Universiteit was founded as a Reformed protestant christian university, to be free from state control. By the time Tanenbaum worked there, the religious character was much watered down, and barely noticeable in the computer science department.
> The Vrije Universiteit was founded as a Reformed protestant christian university, to be free from state control
Abraham Kuyper was a dissenter from the state church (Dutch Reformed), whom he believed had gone astray – after founding VU, he left the state church and founded his own conservative breakaway denomination (the Doleantie) – so although he did want VU to have a Reformed Protestant ethos, he also wanted it to not be controlled by any particular Protestant denomination. As such, the Vrije was meant to denote independence, not just from state control, but also independence from the church control
Somewhat ironically for someone who desired independence from state control, Kuyper later went on to control the state (as Prime Minister)
Thanks for the added nuance which I missed. As far as I knew, there has always been a strong association, even though not formal, between Kuyper's denomination (the Gereformeerde Kerken in Nederland (GKN)) and the university.
Also ironical that within the GKN, one aspect of his theology was imposed by the synod, leading to a schism - again people fleeing from church control. (And one schism further led to the church I grew up in.)
> (And one schism further led to the church I grew up in.)
If you don't mind me asking, which church is that? Church schisms is just one of those topics that may seem very dry to most people, but I personally find fascinating
Nederlands Gereformeerde Kerken. We actually re-merged last year with the Gereformeerde Kerken (vrijgemaakt), which were in turn a result of the first schism I described. I find the underlying emotions and personalities (usually the most important!), doctrine and to some extent also the organizational issues quite interesting.
Also a point to note to the WASM advocacy folks, this compiler toolkit is one of the first to have a bytecode format for C, called EM, shared across its languages, namely C, Modula-2, Pascal and BASIC.
Nitpick: calling this an "x86" compiler is a modernism. There were, indeed, multiple successor chips to the 8086 in the market. But gcc supported only one of them. This is a 386 compiler, not an x86 compiler.
I don't think the GCC maintainers have ever or will ever want to support 16-bit x86, because it is so limited, and adds a lot of messy corner cases, and nowadays is really only of hobbyist/retrocomputing interest.
Maybe there is some 16-bit x86 embedded system still being maintained–there were military spec versions of the 8086, and possibly some weapons system, aircraft, satellite, etc, still in use contains one. But I doubt they'd have any interest in adopting a 16-bit GCC – they'd already have some proprietary compiler they'd been using for decades, switching now would add a lot of risk, very late in the life of a legacy system, for no tangible benefit
The point to a nitpick is to point out something is correct, but misleading. In 1988, no one alive was calling this an "x86" compiler. It was specifically targeting the (then quite new -- about 1.5 years old) 80386 chip, which at the time was the only implementation of the architecture that we understand today as "x86".
In my circles, I think we just used the CPU name since there weren't that many of them yet, and unlike 386/486/586/etc, the 286 and lower CPUs weren't real 32-bitters. So, "386", "286" etc. Or just "Intel" to refer to the whole CPU family.
IIRC, I started hearing "x86" once the 486 came out in 1989.
You are inventing the requirement that all *86 must be supported for some inexplicable reason. It is not there in any ordinary interpretation of any language including English.
If it outputs code for a single cpu from 8086 or later in that family, any single one of them, then it is "an x86 compiler".
It also doesn't matter what they would have called it at the time.
When the 8086 was new, there was not yet a family of *86 model numbers, so no one would call anything an x86 anything. But that doesn't change the fact that now, when the speaker you are incorrectly trying to correct spoke, there is a set with name "x86" and the 8086 is in it.
The 8086 is an x86 cpu, and gcc 1.27 is an x86 compiler.
If you didn't think that's how those words should be interpreted, well now you are better informed, and will hopefully confuse fewer people in your future communications, and wind up in fewer arguments like this one.
On that note I beleive GCC 2.95.3 (released 2001) is the last gcc written in C, therefore one of the most important versions and still used for bootstrapping
Cross compiling only helps with a subset of uses.
If you're doing it for security reasons (to counter the Trusting Trust attack), you aren't coming from another current-edition GCC/clang, you're coming from the simplest compiler you could find.
Instead of x86, it would be interesting to have an FPGA based PDP10 clone with 32MB of RAM, ITS patches with DNS support and, maybe, a gopher and an IRC client could be built on it. 36 bit CPU's are very interesting.
That's really cool. ITS with DNS and a faster CPU could do lots of 'modern' things such as maybe basic TLS and of course gopher would be a matter of spending a few months with Midas to create a client.
I have to say, that gives me a funny sort of feeling. The linked 0.9 tarball appears to support the Motorola 68000 and Vax, and https://gcc.gnu.org/backends.html seems to indicate that both are still supported, which is kind of beautiful (though there's a note on vax that "A hardware implementation is not currently being manufactured":P). Just... disconcerting to imagine a world before gcc supported x86.