This is an archive of CompuServe forum messages from 1985 to 1995, as saved in transcripts by John Foust.
Search Results (255 messages)
All structures are always padded to word alignment on 68k compilers. The reason of course is to ensure that you don't access an int or long on an odd-address boundary by mistake. For example: struct foo { int a; char b; } bar[2]; Here, the sizeof(struct foo) _must_ be 4…
A minor correction: Manx 5.0a is more ANSI conformant than Lattice currently is. -Mike
This is true. I wanted to keep my example short so as not to confuse, but you're right that using RAWKEYs directly may cause problems on foreign keyboards/keymaps. -Mike
Well, ghosting appears on almost _any_ movement in interlaced mode when using the 3000. Just move your mouse pointer around and you'll see noticeable (but not terrible) ghosting appear. Of course, no ghosting appears on non-interlaced screens. Mike
It's pretty easy to do IDCMP for reading keyboard stuff (w/out echo). Just set your window's IDCMP flags for RAWKEY (or VANILLAKEY if you're just reading plain old letters off the keyboard). Then, in your event loop just add a RAWKEY (or, again, VANILLAKEY) case to it. Test the 'Code'…
I was comparing C to assembly language, not to Pascal. In a Casm comparison, C code is clearly much more self-evident as to what it does than w/ assembly code. Obviously you can write warped code in C, but the bulk of C code isn't all that difficult to follow.…
I'm afraid I haven't really used the Sozoban compiler myself, so I can't comment too much on what it's doing. My guess w/ the include file problem is that your only possibility would be a command line switch of some sort which specified an include search path. As for printf(),…
Without a doubt, Gimpel is the king of the hill when it comes to lint programs. Highly recommended. TINAR. -Mike
I think the main problem is that comments are always an unknown quantity as far as what the programmer was trying to accomplish. You know, different people have different styles of commenting (or lack thereof). OTOH, code is an absolute that you can count on to always tell you the…
Huh? The point of my message is that (comments != code) – guess I didn't make that clear. When I'm looking at code produced by someone I don't know, I almost always skip the comments entirely and go right to the code to see what's really going on. The comments…
I agree totally, and that is how I try to write my code. Would that all programmers were so conscientious, and maybe the overall quality of software out there would be better. -Mike
Yes, but you can run into problems here. What if the programmer actually wanted to calculate the area of an ellipse, and then a week later went back on a 'commenting pass', looked briefly at the code, and said 'oh, I guess this is the area of a circle', and…
I disagree completely. If your comment accuracy percentage is less than 90% or so, you'll never know whether what you're reading in the comments actually reflects what the code does, or is just the product of a dimented mind. Your case is a bit different – in assembly code you…
If you want a colorful answer, ask Ben. 😎 -Mike
Well comments help alot when they're accurate, and they can save you alot of time. However, its it not your code how can you know that the comments are accurate w/out looking at the code? That's the big problem, that you often can't know how conscientious the author of the…
Yes, 3.6a gave only one line, and 5.0a gives two. However, 3.6a _still_ contained the date it was created, so I don't see where you're coming from at all. If you don't want to see the signon message at all, then use the -qq option – that's what its there…
Oh my – I actually agree with you on something 😎 Comments are often wrong/misleading/useless, and I've seen lots of code where the comments hurt alot more than they've helped. This isn't to say that all commented code is hard to read, just that some people don't comment well and…
Incrementing from 5.0a to 5.0b is not a big hassle at all. However, putting a date stamp (a time stamp is a bit much) on the compiler is extremely useful. As a case in point, Lattice accidentally shipped two versions of 5.04, both of which said '5.04'. In cases like…
Known problem – ls dates are 8 years off. This is fixed for the next rev…. Actually, the compiler startup string uses the ANSI __DATE__ and __TIME__ macros to signify the date/time when it was built. I'm not entirely sure why __TIME__ was included in the signon myself, as knowing…
You should send in the card, just to make sure. -Mike
So you're saying that 75 lines of asm code in a module is going to be more readable than 20 lines of C code and 2 or 3 lines of ILAC? Get real, Ben. Most ILAC that I've seen comprised of 2 or 3 lines of assembler, which was all…
"Completely avoid" The world you live in must be radically different than mine. "many of those other bugs can be tracked down as quickly with debug printf()s as with a debugger" Sure. Program breaks, jump into the editor and add printfs, compile, link, look at the output – ooops printf…
You should be automatically notified by mail when it's available. (assuming you're a registered user – if not, send in your registration card!) -Mike
Making a teeny-weeny, itsy-bitsy change to the Amiga object format is enough to make what you're doing incompatible with everything else. It was just as impossible to link Lattice object modules using ALink as it was to link Manx object modules. Even though Lattice modules were 95% there (or more),…
Ben, you seem to have forgotten some important people – users of your products. Your users don't give a flying ***** whether you used C, ADA, forth, Modular-programming techniques, or a hammer and chisel to write your application. All they care about is what it does, and how well it…
#101606-
#Dubuggers? Why?
Message #102101
"a deubgger does not speed up my development time by anywhere near the amount you are suggesting" I assume by that statement that you don't value debuggers all that much. And again, the only bug prototyping catches are passing wrong parameters to functions, and nothing else. How does prototyping help…
You should be getting your 5.0b update notice very soon…. -Mike
When you have to throw away something useful for the sake of 'compatability', then perhaps the value of such compatability should be questioned. As it was, the amiga object format (ALink format, if you will) was pretty useless for our needs, so we used our own format. Funny thing, Lattice…
'expressions within array subscripts' Fixed in 5.0b, which will be available very soon (disk dup is already under way…) -Mike
Didn't say it, just implied it. There is a problem w/ range for 16 bits, yes. However, the vast majority of code doesn't need more than +-32k (or 64K unsigned) for a range, and for the little bit that does the 'long' and 'unsigned long' types work wonders. And since…
#101504-
Lattice vs. Manx
Message #102095
Yeah, I'm still pretty green w/ C – only 5 or 6 years experience! I'll repeat, prototyping only kills one narrow type of C bugs (passing the wrong argument type). All problems w/ pointers etc still remain and are not solved by prototyping functions. -Mike
But why should you have to 'stroke' a compiler to get it to generate good code? Why do you think forcing users to re-write startup code to get good code size is such a nifty thing? What John Toebes said was if you do this, and this, and that, and…
In case you've never noticed Ben, the difference between 16-bit ints and 32-bits is astounding from both a code speed and code size perspective. Why you think its a trivial matter is beyond me. As for ANSI, well we were just forced to choose between it and a debugger, since…
You'd be forced to do that anyway. In the PC world there's the .obj standard, and yet you still have to provide seperate libraries for Borland, Lattice, Aztec, MS, etc. This is because each compiler uses 'helper' functions in its own library to do things like long arithmetic, etc. Also,…
Yes, it is amazing how many bugs prototyping can help find. In fact, prototyping has done alot to improve my own code quite a bit. However, for every bug found by function prototyping, 10 more will still be in your code. Function prototyping does nothing for finding uninitialized pointers, array…
#100325-
#Lattice vs. Manx
Message #100328
"All of Commodore's examples" Gee, we must get different copies of AmigaMail, Mike. Most examples I've seen have been tested for Manx _and_ Lattice (right down to appropriate #ifdef's). In addition, the RKM examples also work for both Manx and Lattice. The fact is, most people who distribute code almost…
Didn't mean to start any rwars – sorry if I gave that impression. However, lots of people seem to believe that 'prototyping=ANSI', which is ridiculously far from the truth. There are little matters like auto-aggregate initialization, string concatenation, library functions, et al which are also required to be even close…
Ben, the only 'standards' we didn't support for a long time was the Amiga object standard and ANSI. We didn't do ANSI for awhile because we perceived our source-debugger would be more valuable to Amiga developers, to which most Amiga developers apparently agreed. As for not supporting the amiga object…
Ben, Lattice had a head start w/ the Amiga market in that they were the 1st compiler up and running. However, once Manx was available _almost everyone_ used our product over Lattice's. It was only when Lattice came out w/ the 5.0x product that people went back to them. The…
Not true, Ben. Most inhouse development for the Amiga isn't done on either Manx or Lattice, or even on the Amiga at all! Perhaps you view us as being in a severe catch-up situation, but that is blatantly false. If you look at the _numbers_ of units sold, Lattice and…
This is a known problem with SDB, but we do not have a patch for it at this time. We have noticed however that if you re-arrange the order of your object modules on the link invocation line that this sometimes clears up this problem (as well as some others).…
The user doesn't have anything to loose if he's leaky, where as a developer has lots to loose, because it's unlikely that CBM would actually prosecute someone who bent the non-disclosure agreement, unless it was unbelievably blatant. -Mike
You seem to have the term 'beta release' confused with 'release'. A beta is a release with lots of bugs, that's still in testing phase. It is not a release where alot of things are going to change, or where suggestions are going to be too helpful. The company that…
The fact is, developers are going to find far more bugs in the system then the average user will due to the fact that developers are the ones that usually push the system farthest to its limits, as well as the fact that developers are more conscientious (in general) about…
True, Certified/Commercial developer doesn't fit for most people. However, CBM _does_ need some type of criteria for picking beta testers. I'm afraid just any old person walking up and saying "Hi, I'd like to beta test your software" just doesn't do it. CBM needs a way to insure that 1)…
As I understand it, catch.o does write an error file. Be forwarned however: I saw a message from a Bix user who got his hard disk scrogged from catch.o writing a file when the system wasn't in any shape to be playing with the file system! -Mike
I think the whole problem is that Commodore would have a severe signal-to-noise ratio on bug reports, and would most likely be swamped with Joe Users who couldn't figure out how to get out of the CLI. Allowing people to beta test software who really aren't qualified to beta test…
Just an observation here. Almost everyone who's asked for C= to have non-developers as Beta testers have added a remark along the lines of "I AM NOT VOLUNTEERING". Wonder why that is? -Mike
User Beta-testers Please
Message #92956
I think Commodore figures that if you're not serious enough to become a commercial developer, then you probably wouldn't make to much of a beta tester. I personally belive that its probably true that if you're not going to bother to go through time and effort to become a commercial…
Are you really sure you're using the Manx set command? I've talked to a bunch of people who were using other ones that didn't work correctly. How are you declaring argc/argv for your main? It sounds like you may be declaring them wrong. There are some problems w/ functions.h regarding…
Page 4 of 6