keith@ssc-vax.UUCP (Keith Nemitz) (05/27/86)
I have just received a new Modula-2 compiler for the Macintosh, and this is a short review describing its pains and pleasures. MacMeth (nuke the Mac prefix already) is a single pass, native code Modula 2 compiler for the Apple Macintosh personal computer. Designed by Niklaus Wirth's ETH group in Switzerland, it is being distributed by Modula Corp in Provo UT. 1-800-LILITH2. The development package includes: an editor, symbolic debugger, compiler, and a dissasmbler. Both link-at-runtime and link to Macintosh application is supported. I love it, and yes, I hate it. In the final analysis, it is the best Modula compiler for the mac yet. The baddie list: The editor stinks. (hows that for being specific) Its only use is to point to an error after compilation. Compiler requires you to type the sourcefile name, but remembers until changed. Final link process is STUPID! (hello world in 30k) Compiler generates object code into the DATA fork. Linker does not produce REAL (CODE resource) applications. Type Transfer Functions are not implemented. (use VAL instead). Single Pass-ness requires 'declare before call' (FORWARD supported). Array types may only be defined with subrange indicies. Absolute position Variables are not supported. A complete ROM interface is not included. (I'm working on it) Overall user-interface is 'unMac-ish', but tolerable. Poorly supported because writer is far away, but Modula Corp tries hard! MacMeth requires all support files to be at same level in HFS. Documentation is minimal. (60p) The Goodie list: Compiler is FAST!!!! (1500-3000 lpm) Debugger is GREAT! (drop in from error) Shows position of error in source. Shows all variables involved at error. Complex types can be 'zoomed' into. HALT instruction causes breakpoint. Compiler supports 'no glue' access to the ROMs. (other than Str255) Linking is done at load time. The dissasmbler works nice. (shows key numbers (heh, heh)) Link to clickable application is supported, however kludgy. Very complete 'Wirth' library. Generated code is impressive. (10 iterations of sieve < 7sec) (I know, I hate the sieve too, am doing some others...) System,finder, compiler,debugger, library, all fit with room to spare on a 400k disk. (I use a Mac+ with internal drive only) Documentation is well written. (what there is of it). Code Procedures (ROM hooks) may be declared in definition module. Modula-2 procedures may be passed to Mac ROM routines. What really excites me that FINALLY I am able to use Modula-2 in an almost Professional enviroment. No more puny Mac Jokes. Our VAX8600 hundred still has the public domain 5 pass compiler and the MacMeth lets the Mac compile Modula-2 faster than our VAX can. MacMeth is $100.00 from Modula Corp, and I am glad I bought it, but am still waiting for that 'perfect' development system. Good night, and have a pleasant tommorow. Disk lamer: I can't even read german! Keith Nemitz uw-beaver!ssc-vax!keith A9F4