Settings

Theme

Some of the error messages produced by Apple's MPW C compiler (2006)

cs.cmu.edu

139 points by tiagobraw 4 years ago · 45 comments

Reader

Veserv 4 years ago

Just for some context, the MPW C compiler that produced those messages was actually not developed internally at Apple, but was rather done by Green Hills Software [1] under contract as mentioned on the wikipedia page [2] and its source [3] which is funnily enough about this exact same topic.

[1] https://en.m.wikipedia.org/wiki/Green_Hills_Software

[2] https://en.m.wikipedia.org/wiki/Macintosh_Programmer%27s_Wor...

[3] https://web.archive.org/web/20140528005901/http://lists.appl...

  • kabdib 4 years ago

    I forget what happened to the Green Hills folks, but the official MPW C compiler was an offshoot of the MPW Pascal compiler, and was written by Roger Lawrence at Apple in about a year (around 1987-1988) largely as a reaction to what he thought was a terrible contract.

    The Green Hills folks were likewise upset at Roger's effort. "Anyone who says they can write a compiler in a year should be fired." Roger himself held the same opinion, a couple of years later :-)

    I sat next to Roger while he wrote that thing, he was in the next cubie over (I was working on the MPW linker and some other tools). He types really fast.

    • jsrcout 4 years ago

      Hello from a guy who used your and Roger's work every day back then. Still one of my favorite developer experiences. (I ported an old-school AI application from its original Sun workstation environment to the Macintosh. Had a blast but our product crashed and burned with the AI winter).

    • wglb 4 years ago

      > Anyone who says they can write a compiler in a year should be fired." Roger himself held the same opinion, a couple of years later

      Nonsense.

      Three of us did it in a year compiling a language similar to PL/M written in Bliss 36 on a PDP-10. And that was when compilers were much harder to do then than they are now.

    • moonchild 4 years ago

      > Anyone who says they can write a compiler in a year should be fired.

      ...why?

      • kabdib 4 years ago

        Well, they were clearly upset at losing the contract.

        But mostly they were trying to say, "Okay, you probably have a guy who can do that. But it will be a buggy mess and it will go better if you don't give that dev permission to be a hero."

        • moonchild 4 years ago

          I still don't follow. A year seems like plenty of time to build a c compiler. Maybe it won't generate the best code, but no compiler did, back in the day.

  • dls2016 4 years ago

    I forget why I went into their building, but I always remember a giant T-rex skull in their entryway. I'm not making this up, am I?

    I did find this press release, but it really just raises more questions than answers anything. https://www.prnewswire.com/news-releases/ubm-electronics-and...

watersb 4 years ago

MPW is the Macintosh Programmer's Workbench.

I had forgotten about these.

I think my first real push with MPW was using it as an environment to host the AT&T C++ compiler, which at that time was still a bunch of preprocessor macros written by Bjarne himself.

  • JKCalhoun 4 years ago

    I was introduced to MPW when I started at Apple in 1995. I started on Quickdraw GX (if anyone remembers that).

    Not specifically related to MPW, more about the times, a clean compile of the Quickdraw GX framework took something like eight hours. (Fortunately incremental builds were much quicker.) Nonetheless, it was common to kick off a clean build as you were leaving the office for the night.

    Funny to think about that compiler compiling all night as I had dinner, watched a little cable TV, got some sleep....

    • kabdib 4 years ago

      The Mac you compiled that on likely had a 5Mhz (yes, FIVE MEGAHERTZ) SCSI bus for its disk I/O. And none of the headers had "#pragma once" . . .

      Was QuickDraw GX also known as Skia, perhaps earlier in its life?

      • mwcremer 4 years ago

        Skia was the graphics part. The printing part was “El Kabong” (Quick Draw McGraw’s alter ego.)

  • mistrial9 4 years ago

    I was a cfront beta site using MPW; for people that don't know, that was the self-compiling C++ from C, before the first AT&T C++ compiler, in the late 1980s.

    • rjsw 4 years ago

      Cfront was from AT&T, it compiled C++ to C. I had the source to Cfront 1.2, which was before multiple inheritance was added to the language.

      • mistrial9 4 years ago

        I agree and we are saying the same thing. There was no C++ compiler, the C++ language was processed by cfront, similar to the preprocessor and include compile phase. AT&T supplied cfront. The language spec was changing. I wrote applications with it, not checking "language lawyer" syntax problems. I wrote general feedback on performance, and things that would make the language practical. It is hard to describe those days, but concepts of object-oriented programming were new to many people, and I was quite interested in building actual applications. The linker was the common linker for multiple other languages, like gcc today.

  • scroot 4 years ago

    I booted up MPW in an emulator last year to check it out. Definitely a unique experience. Very cool.

unfocussed_mike 4 years ago

Ahh, I saw the "too many errors on one line" report once when playing with MPW.

A very underrated, idiosyncratic, clever development environment, somehow more reminiscent of Poplog than anything else I've used.

mastax 4 years ago

Is anyone at Apple allowed to have a sense of humor anymore?

  • Austin_Conlon 4 years ago

    As long as it doesn’t contravene the Apple Style Guide:

    “Humor can enhance documentation by adding to a reader’s enjoyment and by helping to lighten the tone. Humor usually works best in examples, where it’s less likely to distract the reader. Be careful that your humor is in good taste—one reader’s joke can be another reader’s insult—and keep in mind that humor may not translate well in localized text.”

    https://help.apple.com/applestyleguide/#/apsg9dac5903

  • threeseed 4 years ago

    As a developer I don't want my compiler to be funny.

    I want it to give helpful, accurate advice as succinctly as possible.

    • glhaynes 4 years ago

      It blows my mind how common taking a silly tone in error messages has become. It's _exactly_ the time the user shouldn't get the impression that you're taking a haha oh well attitude.

  • memco 4 years ago

    Craig Federighi finds a way.

    • smoldesu 4 years ago

      Humor is subjective, but I've always found Craig's performative sense of humor to be more annoying than anything else. The smug brainiac shtick is so old at this point that the dude practically steps on Steve Ballmer's feet.

    • doctor_eval 4 years ago

      Hair Force One FTW!

  • nojito 4 years ago

    Their test OS for iPhone's is hilarious

    https://www.theiphonewiki.com/wiki/TigrisAni_15A93720r

    • dylan604 4 years ago

      You must be a hoot at comedy clubs on amateur night. I don't see anything remotely funny about anything in that link.

    • j16sdiz 4 years ago

      How so? This is just a minimal test screen

  • imoverclocked 4 years ago

    Absolutely.

nyanpasu64 4 years ago

> This label is the target of a goto from outside of the block containing this label AND this block has an automatic variable with an initializer

I get this issue a lot on modern compilers, when trying to write switch/macro-based coroutines (https://www.chiark.greenend.org.uk/~sgtatham/coroutines.html) in C++. Does anyone have a workaround? (I hope it doesn't involve C++20 coroutines... I still don't understand them.)

  • josephcsible 4 years ago

    If your variable is a class without a trivial default constructor, then you're out of luck. Otherwise, the workaround is to not initialize the variable, and to instead assign to it immediately after declaring it (e.g., replace "int x = 42;" with "int x; x = 42;").

secabeen 4 years ago

> " please go buy a RAM upgrade from your local Apple dealer"

Not possible any more!!!

elahieh 4 years ago

Original source: Tony Cunningham, rec.humor.funny, 7 August 1991

https://groups.google.com/g/rec.humor.funny/c/knG5ONlInXM/m/...

fghorow 4 years ago

MPW.

Object Pascal.

MacApp.

Ahh, memories. (Some of them are even _good_ memories! ;-) )

  • vba616 4 years ago

    I remember when I compiled a "hello world" with some new OO framework, possibly MacApp, and it was something like 400K, to do nothing, and I thought that was outrageous and obviously much too bloated for real software.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection