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:.
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.