Path: utzoo!attcan!uunet!husc6!uwvax!oddjob!gargoyle!att!ihnp4!poseidon!ech From: ech@poseidon.UUCP (Edward C Horvath) Newsgroups: comp.sys.mac.programmer Subject: Re: LSC almost gets it right. Message-ID: <490@poseidon.UUCP> Date: 7 Sep 88 14:16:54 GMT References: <5077@fluke.COM> Organization: AT&T Information Systems, Lincroft, NJ Lines: 27 From article <5077@fluke.COM>, by mce@tc.fluke.COM (Brian McElhinney): > In article <670@mailrus.cc.umich.edu> shane@um.cc.umich.edu (Shane Looker) writes: >>The manual clearly states that the MacTraps calls do not have prototypes. >> >>You can add prototypes with no problem. > Documenting a bug does not make it a feature (the Require Prototypes option > should *require* prototypes for *all* routines; anything less is a bug). What drives me NUTS about LSC prototyping (at least in 2.x: my check for 3.0 cleared the bank three weeks ago, Symantec, where's my upgrade???) is the SILENT coercion of (incorrect) arguments. Example: you pass 0 for the space parameter to NewWindow. This is an error, folks, it needs to be NIL or NULL or, in any case, a LONG zero. LSC is happy to silently notice that the value ought to be long, and indeed generates code to push a long zero. Great. Unless you have hopes of sharing your code with ANYBODY who doesn't have LSC. Now Symantec/Think may just snicker because this misfeature makes it even easier to write code -- incorrect, but acceptable to LSC, code -- and harder to port it to another compiler. But it's MY code, and I reserve the right to own more than one compiler. I'd rather be warned about type mismatches, and I'd be happy to turn on a "picky, picky, picky!" option if there were one. Meantime it just makes me paranoid... =Ned=