Path: utzoo!utgpu!news-server.csri.toronto.edu!me!rwh Newsgroups: comp.sys.ibm.pc.programmer From: rwh@me.utoronto.ca (Russell Herman) Subject: Re: Looking for experience with big project upgrades from MSC 5.1 to 6.0 Message-ID: <90Jun13.221146edt.20004@me.utoronto.ca> Organization: none References: <1990Jun13.132843.13966@Octopus.COM> Date: 14 Jun 90 02:12:06 GMT In article <1990Jun13.132843.13966@Octopus.COM> pete@octopus.COM (Pete Holzmann) writes: >Has anybody out there been through (or most of the way through) an upgrade >of a big pile of code from 5.1 to 6.0? If so, I (and probably others in >this newsgroup) would love to benefit from your experience! I was originally going to reply to Pete, but it occurred to me that I hadn't seen any kind of general summary of MSC6 experiences starting from MSC5.1 source or other UNIX-based source. So I'll hunker down by the campfire and tell my story in the hopes that some other people will as well. I guess I qualify in the MSC5.1 to 6 large project port dept. It was PERL, which is about as large I want to tackle single-handedly. I started from Diomidis Spinellis' port. After getting it to compile under MSC5.1, I took the precaution of also porting Larry's regression test. Problems showed up that were resistant to various code twiddles and optimization toggles. When MSC6 arrived, I pushed the source through it. A few changes were necessary where some CYA redeclarations for multiplatforms didn't work any longer. Just wait til you see what MSC6's declaration of 'errno' looks like! It wasn't a big deal though. The result passed the regression test, and you'll be seeing it announced on SIMTEL20 in the near future. I'm also fooling around with PCCTS and GNUCHESS3.1. Observations 1. The code isn't much smaller. 2. Some of the code looks faster, but I haven't measured anything yet. Probably won't either, too much like work :-) 3. Global optimization isn't worth much. The compiler spews a steady stream of 'function too large for global optimizer' messages for functions that aren't absurdly large, at least by professional standards. 4. With /Ox, it's slooow. 6 temp files can be opened. I wouldn't even dream of using the Workbench. BTW, I'm on a 20MHz 386 system with a 30-odd msec disk, no caching, no RAMDISK. Sucks back a lot of disk space too. 5. Under MSC5.1, the first thing I do to a piece of UNIX code is insert a #define register in some central header file. This hasn't changed! Unfortunately this may require changes in the body of the code, since some code contains register x; in lieu of register int x; or register unsigned x; Portabilists please keep in mind! 6. I've had 2 compiler blowups, both which could be worked around. 7. The EMM Codeview is nice. Contrary to early reports, I can run it in a DV partition and TELIX in another. EXT=512 is on my QEMM call. No himem.sys or anything like that; QEMM5 does the whole job. 8. NMAKE is a long-overdue addition. It's big enough though that with large modules, there isn't enough room for it and the compiler. Ought to be smart enough to swap itself out like OPUS MAKE can. 9. INTEL architecture highlights malloc and pointer problems. On a few other ports, I've hung or trashed memory, gotten close to isolating the problem, and sent info back to authors. I always get back a fix :-) The bottom line is, I don't regret having spent the $$. I do hope, though, to see a 6.1 upgrade in about six months for around $25 that will fix some of the bugs/problems. Russ Herman INTERNET: rwh@me.utoronto.ca UUCP: ..uunet!utai!me!rwh