Knowledge (XXG)

Macintosh Programmer's Workshop

Source 📝

367:, a Macintosh-variant of the Green Hills C compiler designed specially for Apple and which was similar to the version that was available for the Lisa Workshop. In addition, the original MPW C compiler was known for its casual and frequently humorous error messages ("we already did this function"), as well as occasionally addressing users by name. These quirks were not carried on after the PowerPC transition, when Apple replaced the originals with compilers written by Symantec. Pascal support was no longer provided by the mid-90s due to declining popularity of the language. MPW was always targeted to a professional audience and was seldom used by hobbyist developers due to the considerable price for the package; by the time it was made freeware it had long since been superseded by offerings from Symantec and 25: 340:, replacing the usual terminal environment with a "worksheet" interface, allowing the user to select and run arbitrary sections of a shell script or to redo commands with no retyping. In addition, command line tools were commonly provided with a somewhat standardized graphical interface named Commando that provided limited access to the command line capabilities of the program. The 138: 428:
window. Each worksheet window is persistently bound to a file. The user may type anything anywhere in the window, including commands, which can be executed via the keyboard's Enter key; command output appears at the insertion point. Unlike an xterm window, an MPW worksheet is always in visual editing
456:
character to indicate dependencies. More significantly, since the limitations of the shell precluded the make program from running tools itself, it had to work by composing a script of compile/link actions to be run, then delivering that to the shell for execution. While this was good enough most of
549:
2.0 (for Object Pascal) were made available. MPW 3.1 and 3.2 came in the next few years, with MPW 3.3 released in May 1993, adding distributed tools support and incremental linking. MPW 3.4 was completed July 14, 1995, and MPW 3.5 was done December 17, 1999. MPW 3.6 was under development when work
532:
Early contributors included Rick Meyers (project lead and MPW Shell command interpreter), Jeff Parrish (MPW Shell editor), Dan Smith (MPW Shell commands), Ira Ruben (assembler and many of the tools including Backup, PasMat, and more), Fred Forsman (Make, Print, SADE, and assembler macro processor),
392:
to files, as well as to windows. If a file was open, the output would go to the file and to the open window. This redirection of output required significant patching out of the file system calls so that tools need not do anything special to inherit this feature: the MPW Shell did all of the work.
464:
through its history; SourceBug and SADE (Symbolic Application Debugging Environment) were used on MC680x0 systems, while the Power Mac Debugger (known during development as R2Db) provided both local and remote debugging services for PowerPC systems, the latter by using a server program known as a
400:
language, but was extended to support the main features of the Macintosh GUI. It had simple commands to create menus, dialogs (prompts), and new shell windows. The cursor could be controlled, and MPW scripts or tools could easily be attached to a menu item. Command key shortcuts could be
533:
Al Hoffman (Pascal compiler) Roger Lawrence (Pascal and C compilers, including the error messages), Ken Friedenbach (linker), Johan Strandberg (Rez, DeRez, RezDet), Steve Hartwell (C libraries), and Dan Allen (MacsBug, editor). The Apple Numerics Group also contributed math libraries.
429:
mode and can be freely reorganized by its user. Hence a worksheet can be purely a command script or purely a text document or a mixture of the two—an integrated document describing the history, maintenance procedures and test results of a software project. The commercial
408:, so MPW tools were effectively called as subroutines of the shell; only one could be running at any one time, and tools could not themselves run other tools. These limitations were the inspiration for the MacRelix project, a "Unix-like system" for classic Mac OS. 504:
MPW was started in late 1985 by Rick Meyers, Jeff Parrish, and Dan Smith (now Dan Keller). It was going to be called the Macintosh Programmer's System, or MPS. (Notice that coincidentally the three last names start with MPS.) 'MPS ' has always been the
553:
During MPW's twilight years, Greg Branche supported MPW unofficially through the Apple MPW-dev mailing list. The list, and the lists.apple.com server that hosted it, was planned to be shut down January 17, 2014, a decision that was later reversed.
509:
of the MPW Shell as a result of this. Since MPW was to be the successor to the Lisa Workshop, they decided to rename it the Macintosh Programmer's Workshop. Before the arrival of MPW, Mac applications had to be cross-developed on a Lisa.
362:
Pascal was Apple's original preferred language for Macintosh software development, and MPW was initially released with only Pascal support. A C compiler was released with MPW 2.0. The MPW C compiler was written under contract for Apple by
371:, as well as Apple's own development tools inherited from NeXT and distributed for free with OS X. It was also occasionally available as a wrapper environment for third-party compilers, a practice used by both Metrowerks and 540:
was fixed on October 10, 1986, and MPW 1.0.1 was born. MPW 2.0 was completed on July 20, 1987. MPW 3.0 was done November 30, 1988 and included a completely new C compiler. Around the same time, the beta version of the
401:
specified. Window size and location could be controlled. These features were popular in commercial production environments, where complicated build and packaging processes were all controlled by elaborate scripts.
375:
among others. Apple has officially discontinued further development of MPW and the last version of OS X to run it is 10.4 'Tiger', the last one to support the Classic environment. Apple maintained a web site and
473:
MPW included a set of standard C libraries sufficient for developers to build their own MPW tools. Many Unix utilities could be ported with little change. One point of difficulty was the Mac OS
355:
Apple's compilers had some features that were not common on other platforms—for example, the Pascal compiler was object-oriented, while the C and C++ compilers included support for
1381: 278:
and Mac OS 8.x and 9.x. Initially MPW was available for purchase as part of Apple's professional developers program, but Apple made it a free download after it was superseded by
42: 1376: 348:
of today but the language compilers supported the symbolic debugging information file format used by the debugger. MPW supported a source-level debugger called
481:, ":" in Mac OS, but many Unix utilities assumed "/". Many Unix utilities also assumed pathnames would not have embedded spaces, a common practice on Macs. 1386: 1406: 965: 1401: 352:(Symbolic Application Debugging Environment). SADE was not an MPW Tool, but ran as a separate application with a user interface similar to MPW. 89: 61: 854: 829: 705: 647: 1396: 1077: 621: 68: 345: 290: 404:
The shell had some important differences from its Unix counterparts. For instance, the classic Mac OS had nothing comparable to Unix
913: 894: 108: 75: 1224: 1355: 673: 57: 46: 129: 600: 318: 930: 235: 958: 182: 884: 35: 457:
the time, it precluded makefiles that could make on-the-fly decisions based on the results of a previous action.
356: 215: 1340: 1264: 1112: 372: 337: 322: 82: 525:
extensions which Ken Doyle incorporated in one of the last versions of the Lisa Pascal compiler. This enabled
1391: 951: 583: 405: 389: 377: 746: 380:
that supported the software long after its discontinuation, but that site now redirects to the Xcode page.
306: 788: 767: 1244: 1102: 364: 574:-based computers. To develop Mac OS X applications based on other technologies, one must use either 1234: 1097: 1067: 210: 1219: 1199: 1169: 1092: 1052: 1039: 858: 833: 709: 651: 567: 1304: 1249: 1057: 909: 890: 809: 506: 314: 1254: 1107: 1044: 478: 263: 222: 198: 1314: 1087: 934: 579: 446: 287: 271: 239: 692: 1239: 1164: 998: 993: 974: 595: 460:
Although not implemented as MPW tools, the package also came with several source-level
267: 260: 203: 153: 1370: 1350: 1345: 1309: 1294: 1204: 522: 518: 493: 485: 1209: 1184: 514: 437:
text editor provides shell buffers, a similar feature that works across platforms.
730: 1324: 1259: 1194: 1189: 537: 453: 421: 279: 24: 137: 1269: 1174: 1117: 368: 333: 148: 1319: 1289: 1284: 1133: 1082: 1072: 513:
The MPW Pascal compiler is descended from the Lisa Pascal compiler. Apple's
489: 433:
text editor retains a feature it calls "shell worksheets" on Mac OS X. The
274:
developers, it was one of the primary tools for building applications for
1229: 1023: 1018: 1008: 1003: 988: 793: 772: 563: 461: 450: 449:. Its syntax was conceptually similar to that of Unix make, but used the 341: 329: 283: 275: 256: 578:
or another OS X-compatible development environment. MPW also included a
1179: 1148: 1138: 814: 751: 571: 474: 397: 128: 1299: 1274: 1214: 1062: 546: 526: 430: 336:
in design, but is designed around the Macintosh's character set and
542: 326: 575: 434: 425: 294: 943: 1279: 947: 492:. This was used to support MPW-hosted cross-compilers used by 310: 18: 706:"Re: Will the last one to leave please turn off the lights?" 582:
system called Projector; this has been superseded by modern
477:
convention, which was different from Unix. Another was the
830:"Will the last one to leave please turn off the lights?" 536:
MPW 1.0 was completed on September 24, 1986. A shell
396:
The MPW Shell command language was based on the Unix
1333: 1157: 1126: 1032: 981: 231: 221: 209: 197: 181: 159: 147: 49:. Unsourced material may be challenged and removed. 16:
Software development package for the Classic Mac OS
674:"Dr Dobb's – The Macintosh Programmer's Workshop" 886:Programming with Macintosh Programmer's Workshop 488:included portability support for MPW as part of 1382:Classic Mac OS-only software made by Apple Inc. 648:"Re: [Humor ] Old MPW C error messages" 465:"debugger nub" on the computer being debugged. 332:. The shell environment is somewhat similar to 959: 908:(1st ed.). Reading, MA: Addison-Wesley. 906:On Macintosh Programming: Advanced Techniques 8: 121: 966: 952: 944: 136: 127: 120: 109:Learn how and when to remove this message 586:and is no longer supported in Mac OS X. 1377:Macintosh operating systems development 818:. Vol. 7, no. 21. p. 12. 612: 344:were not integrated into MPW like most 797:. Vol. 6, no. 4. p. 91. 776:. Vol. 6, no. 4. p. 93. 562:MPW can still be used to develop for 7: 47:adding citations to reliable sources 743:Short for RISC 2-machine Debugger; 622:"Programming Tool and the Atari ST" 359:(needed for Pascal-oriented APIs). 1387:C (programming language) compilers 745:Falkenburg, Dave; Topping, Brian. 14: 309:environment and tools, including 58:"Macintosh Programmer's Workshop" 1407:Classic Mac OS programming tools 620:Webster, Bruce (February 1986). 259:development environment for the 23: 1144:Macintosh Programmer's Workshop 249:Macintosh Programmer's Workshop 122:Macintosh Programmer's Workshop 34:needs additional citations for 1402:Discontinued development tools 810:"MPW 3.3 release through APDA" 496:and several other developers. 142:An executable MPW Shell script 1: 808:Cohen, Raines (24 May 1993). 695:, May 15, 1994 - Robert Lentz 672:Allen, Dan (1 January 1988). 601:Comparison of computer shells 937: (archived May 14, 2011) 883:West, Joel (November 1987). 566:, but support is limited to 242: (archived May 14, 2011) 1397:Classic Mac OS text editors 484:For a number of years, the 1423: 445:MPW included a version of 293:, which eventually became 920:Chapter six is about MPW. 904:Allen, Daniel K. (1989). 787:Poole, Lon (April 1989). 766:Poole, Lon (April 1989). 550:was halted in late 2001. 216:Software development tool 193: 177: 135: 126: 1265:Multiprocessing Services 1225:Hierarchical File System 768:"Developer Developments" 584:version control systems 388:The MPW Shell featured 357:length-prefixed strings 286:it was replaced by the 163:September 24, 1986 747:"Debugging on PowerPC" 227:closed-source freeware 165:; 37 years ago 1245:Macintosh File System 420:is a cross between a 390:redirection of output 931:Official MPW website 789:"C++ and MacApp 2.0" 693:MPW C Error Messages 545:compiler as well as 236:Official MPW website 43:improve this article 1063:Graphing Calculator 123: 1170:Appearance Manager 1113:System Information 994:System 2, 3, and 4 731:"MacRelix Origins" 479:pathname separator 1364: 1363: 1341:Memory management 1250:Macintosh Toolbox 570:applications for 507:creator signature 469:Writing MPW tools 246: 245: 119: 118: 111: 93: 1414: 1334:Related articles 1305:Startup sequence 1083:QuickTime Player 968: 961: 954: 945: 919: 900: 889:. Bantam Books. 870: 869: 867: 866: 857:. Archived from 851: 845: 844: 842: 841: 832:. Archived from 826: 820: 819: 805: 799: 798: 784: 778: 777: 763: 757: 756: 741: 735: 734: 727: 721: 720: 718: 717: 708:. Archived from 702: 696: 690: 684: 683: 681: 680: 669: 663: 662: 660: 659: 650:. Archived from 644: 638: 637: 635: 633: 617: 521:to come up with 424:document and an 416:Functionally, a 264:operating system 199:Operating system 173: 171: 166: 140: 131: 124: 114: 107: 103: 100: 94: 92: 51: 27: 19: 1422: 1421: 1417: 1416: 1415: 1413: 1412: 1411: 1367: 1366: 1365: 1360: 1329: 1315:System suitcase 1195:Command key (⌘) 1153: 1122: 1103:Software Update 1088:Network Browser 1068:Keychain Access 1028: 977: 972: 941: 935:Wayback Machine 927: 916: 903: 897: 882: 879: 877:Further reading 874: 873: 864: 862: 853: 852: 848: 839: 837: 828: 827: 823: 807: 806: 802: 786: 785: 781: 765: 764: 760: 744: 742: 738: 729: 728: 724: 715: 713: 704: 703: 699: 691: 687: 678: 676: 671: 670: 666: 657: 655: 646: 645: 641: 631: 629: 619: 618: 614: 609: 592: 580:version control 560: 502: 471: 443: 414: 386: 305:MPW provided a 303: 288:Project Builder 240:Wayback Machine 189: 169: 167: 164: 160:Initial release 143: 115: 104: 98: 95: 52: 50: 40: 28: 17: 12: 11: 5: 1420: 1418: 1410: 1409: 1404: 1399: 1394: 1392:Command shells 1389: 1384: 1379: 1369: 1368: 1362: 1361: 1359: 1358: 1353: 1348: 1343: 1337: 1335: 1331: 1330: 1328: 1327: 1322: 1317: 1312: 1307: 1302: 1297: 1292: 1287: 1282: 1277: 1272: 1270:Option key (⌥) 1267: 1262: 1257: 1252: 1247: 1242: 1237: 1232: 1227: 1222: 1217: 1212: 1207: 1202: 1197: 1192: 1187: 1182: 1177: 1172: 1167: 1161: 1159: 1155: 1154: 1152: 1151: 1146: 1141: 1136: 1130: 1128: 1124: 1123: 1121: 1120: 1115: 1110: 1105: 1100: 1095: 1090: 1085: 1080: 1075: 1070: 1065: 1060: 1055: 1050: 1047: 1042: 1036: 1034: 1030: 1029: 1027: 1026: 1021: 1016: 1015: 1014: 1006: 1001: 996: 991: 985: 983: 979: 978: 975:Classic Mac OS 973: 971: 970: 963: 956: 948: 939: 938: 926: 925:External links 923: 922: 921: 914: 901: 895: 878: 875: 872: 871: 846: 821: 800: 779: 758: 736: 722: 697: 685: 664: 639: 611: 610: 608: 605: 604: 603: 598: 596:Jasik debugger 591: 588: 559: 556: 501: 498: 470: 467: 442: 439: 413: 410: 385: 382: 302: 299: 268:Apple Computer 261:Classic Mac OS 244: 243: 233: 229: 228: 225: 219: 218: 213: 207: 206: 204:Classic Mac OS 201: 195: 194: 191: 190: 187: 185: 183:Stable release 179: 178: 175: 174: 161: 157: 156: 154:Apple Computer 151: 145: 144: 141: 133: 132: 117: 116: 31: 29: 22: 15: 13: 10: 9: 6: 4: 3: 2: 1419: 1408: 1405: 1403: 1400: 1398: 1395: 1393: 1390: 1388: 1385: 1383: 1380: 1378: 1375: 1374: 1372: 1357: 1354: 1352: 1351:New World ROM 1349: 1347: 1346:Old World ROM 1344: 1342: 1339: 1338: 1336: 1332: 1326: 1323: 1321: 1318: 1316: 1313: 1311: 1310:System folder 1308: 1306: 1303: 1301: 1298: 1296: 1295:Resource fork 1293: 1291: 1288: 1286: 1283: 1281: 1278: 1276: 1273: 1271: 1268: 1266: 1263: 1261: 1258: 1256: 1253: 1251: 1248: 1246: 1243: 1241: 1238: 1236: 1233: 1231: 1228: 1226: 1223: 1221: 1218: 1216: 1213: 1211: 1208: 1206: 1205:Control Strip 1203: 1201: 1200:Control Panel 1198: 1196: 1193: 1191: 1188: 1186: 1183: 1181: 1178: 1176: 1173: 1171: 1168: 1166: 1163: 1162: 1160: 1156: 1150: 1147: 1145: 1142: 1140: 1137: 1135: 1132: 1131: 1129: 1125: 1119: 1116: 1114: 1111: 1109: 1106: 1104: 1101: 1099: 1096: 1094: 1091: 1089: 1086: 1084: 1081: 1079: 1076: 1074: 1073:PictureViewer 1071: 1069: 1066: 1064: 1061: 1059: 1056: 1054: 1051: 1048: 1046: 1043: 1041: 1038: 1037: 1035: 1031: 1025: 1022: 1020: 1017: 1012: 1011: 1010: 1007: 1005: 1002: 1000: 997: 995: 992: 990: 987: 986: 984: 980: 976: 969: 964: 962: 957: 955: 950: 949: 946: 942: 936: 932: 929: 928: 924: 917: 915:0-201-51737-X 911: 907: 902: 898: 896:0-553-34436-6 892: 888: 887: 881: 880: 876: 861:on 2014-02-14 860: 856: 850: 847: 836:on 2014-05-28 835: 831: 825: 822: 817: 816: 811: 804: 801: 796: 795: 790: 783: 780: 775: 774: 769: 762: 759: 754: 753: 748: 740: 737: 732: 726: 723: 712:on 2014-05-28 711: 707: 701: 698: 694: 689: 686: 675: 668: 665: 654:on 2014-05-28 653: 649: 643: 640: 628:. p. 331 627: 623: 616: 613: 606: 602: 599: 597: 594: 593: 589: 587: 585: 581: 577: 573: 569: 565: 557: 555: 551: 548: 544: 539: 534: 530: 528: 524: 523:Object Pascal 520: 519:Niklaus Wirth 516: 511: 508: 499: 497: 495: 494:General Magic 491: 487: 486:GNU toolchain 482: 480: 476: 468: 466: 463: 458: 455: 452: 448: 440: 438: 436: 432: 427: 423: 419: 412:Look and feel 411: 409: 407: 402: 399: 394: 391: 383: 381: 379: 378:mailing lists 374: 370: 366: 360: 358: 353: 351: 347: 343: 339: 335: 331: 328: 324: 320: 316: 312: 308: 300: 298: 296: 292: 289: 285: 281: 277: 273: 269: 266:, written by 265: 262: 258: 254: 250: 241: 237: 234: 230: 226: 224: 220: 217: 214: 212: 208: 205: 202: 200: 196: 192: 186: 184: 180: 176: 162: 158: 155: 152: 150: 146: 139: 134: 130: 125: 113: 110: 102: 91: 88: 84: 81: 77: 74: 70: 67: 63: 60: –  59: 55: 54:Find sources: 48: 44: 38: 37: 32:This article 30: 26: 21: 20: 1300:Sosumi sound 1210:Creator code 1185:Balloon help 1143: 1033:Applications 940: 905: 885: 863:. Retrieved 859:the original 849: 838:. Retrieved 834:the original 824: 813: 803: 792: 782: 771: 761: 750: 739: 725: 714:. Retrieved 710:the original 700: 688: 677:. Retrieved 667: 656:. Retrieved 652:the original 642: 630:. Retrieved 625: 615: 561: 552: 535: 531: 517:worked with 515:Larry Tesler 512: 503: 483: 472: 459: 444: 417: 415: 403: 395: 387: 361: 354: 349: 313:and PowerPC 307:command line 304: 252: 248: 247: 149:Developer(s) 105: 99:October 2008 96: 86: 79: 72: 65: 53: 41:Please help 36:verification 33: 1325:WorldScript 1260:MultiFinder 1049:Drive Setup 855:"Reprieve!" 538:memory leak 441:Other tools 422:text editor 334:Unix shells 317:as well as 280:CodeWarrior 1371:Categories 1220:Extensions 1190:Bomb error 1175:Apple menu 1158:Technology 1118:SimpleText 1053:DVD Player 1040:Calculator 865:2014-05-27 840:2014-05-27 716:2014-05-27 679:2021-02-21 658:2014-05-27 607:References 369:Metrowerks 365:Greenhills 315:assemblers 276:System 7.x 170:1986-09-24 69:newspapers 1320:Type code 1290:QuickTime 1285:QuickDraw 1134:HyperCard 1127:Developer 1093:Scrapbook 1078:PowerTalk 490:libiberty 462:debuggers 418:worksheet 384:MPW Shell 342:debuggers 330:compilers 272:Macintosh 188:3.6d7 1356:Software 1255:Managers 1235:Keychain 1230:HFS Plus 1108:Stickies 1098:Sherlock 1024:Mac OS 9 1019:Mac OS 8 1013:Mac OS 7 1009:System 7 1004:System 6 999:System 5 989:System 1 982:Versions 794:Macworld 773:Macworld 590:See also 564:Mac OS X 451:MacRoman 284:Mac OS X 257:software 1180:At Ease 1149:ResEdit 1139:MacsBug 1045:Chooser 933:at the 815:MacWeek 752:MacTech 572:PowerPC 500:History 475:newline 255:) is a 238:at the 232:Website 223:License 168: ( 83:scholar 1275:OSType 1240:Labels 1215:Dogcow 1058:Finder 912:  893:  568:Carbon 558:Legacy 547:MacApp 527:MacApp 454:long f 431:BBEdit 406:fork() 373:Absoft 319:Pascal 301:Design 270:. For 85:  78:  71:  64:  56:  1165:Alias 632:9 May 576:Xcode 435:Emacs 426:xterm 295:Xcode 282:. On 90:JSTOR 76:books 1280:PICT 910:ISBN 891:ISBN 634:2015 626:BYTE 447:make 350:SADE 346:IDEs 325:and 211:Type 62:news 543:C++ 398:csh 338:GUI 327:C++ 321:, 311:68k 291:IDE 253:MPW 45:by 1373:: 812:. 791:. 770:. 749:. 624:. 529:. 297:. 967:e 960:t 953:v 918:. 899:. 868:. 843:. 755:. 733:. 719:. 682:. 661:. 636:. 323:C 251:( 172:) 112:) 106:( 101:) 97:( 87:· 80:· 73:· 66:· 39:.

Index


verification
improve this article
adding citations to reliable sources
"Macintosh Programmer's Workshop"
news
newspapers
books
scholar
JSTOR
Learn how and when to remove this message


Developer(s)
Apple Computer
Stable release
Operating system
Classic Mac OS
Type
Software development tool
License
Official MPW website
Wayback Machine
software
Classic Mac OS
operating system
Apple Computer
Macintosh
System 7.x
CodeWarrior

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.