Re: [winide] Re: Function Returning Wrong Value From: Bill Auerbach <bill@softools.com> To: winide@yahoogroups.com Reply-To: winide@yahoogroups.com Date: Dec 08 2007 - 10:09am Viewed On: - - ?date? Hi Martin, > Martin Honeywill writes on 08:19 AM 12/7/2007>This is just a small request, would you be able to synchronise your>version number of the DLL's with the windows version number that is>shown in XP when you mouse over the dll. Both the original>scrabbit.dll and the one I've just downloaded from the website have>the same windows version number 0.1.0.0, the only difference is the>size and modification date.This is easy to do.>It would also be really helpful to have a list of what changes / bugs>fix have occurred between different versions of the DLL.As you see, most of the changes are far pointer, syntax error crashes, or very obscure items: * Fix problem with comments ending in *//* * Add check to stop GPF on syntax error * Fix internal compiler error casting to const char far * * Stop generating code in far pointer adds in initializers. * Call far pointer to ulong conversion to ensure upper byte of far pointer is 0. * Place initializer for const far array of struct in FARCONST, not CONST. * Fix initializer of a near array used for a far pointer type. * Fix crash caused with syntax errors. * Stop error on volatile to non-volatile pointer assignment. * Fix bug in increment decrement of a constant object optimization. * In dereference for far array of pointer, don't make pointer far. * In struct member handler, don't fully free member name branch since the name could match previous function declaration name. * In peephole, don't delete bool hl after and because H might not have been 0. * In returning struct from function, don't lose hidden storage class so return f(); works where the function and f both return structs. * In function return generator, use callers return space, not functions, for same issue above. * In setting up to divide by pointer size in far pointer sub, validate rhs register owner or bad code can be generated. * In far struct copy mark register pushed on the stack as unused to stop internal error. * Ensure rhs is fully loaded for assign-ops with far pointer lvalues. * In conversion of short/int to ulong, force register assignment instead of freeing registers, since the allocation can move the free reg when it still holds the object. * In peephole, suppress ld r,r which can occur from changing compiler optimization options.> Please don't take this as a criticism, thanks for a great CompilerI won't - and thank you.Bill
From: Bill Auerbach <bill@softools.com> To: winide@yahoogroups.com Reply-To: winide@yahoogroups.com Date: Dec 08 2007 - 10:09am Viewed On: - - ?date?
Hi Martin, > Martin Honeywill writes on 08:19 AM 12/7/2007>This is just a small request, would you be able to synchronise your>version number of the DLL's with the windows version number that is>shown in XP when you mouse over the dll. Both the original>scrabbit.dll and the one I've just downloaded from the website have>the same windows version number 0.1.0.0, the only difference is the>size and modification date.This is easy to do.>It would also be really helpful to have a list of what changes / bugs>fix have occurred between different versions of the DLL.As you see, most of the changes are far pointer, syntax error crashes, or very obscure items: * Fix problem with comments ending in *//* * Add check to stop GPF on syntax error * Fix internal compiler error casting to const char far * * Stop generating code in far pointer adds in initializers. * Call far pointer to ulong conversion to ensure upper byte of far pointer is 0. * Place initializer for const far array of struct in FARCONST, not CONST. * Fix initializer of a near array used for a far pointer type. * Fix crash caused with syntax errors. * Stop error on volatile to non-volatile pointer assignment. * Fix bug in increment decrement of a constant object optimization. * In dereference for far array of pointer, don't make pointer far. * In struct member handler, don't fully free member name branch since the name could match previous function declaration name. * In peephole, don't delete bool hl after and because H might not have been 0. * In returning struct from function, don't lose hidden storage class so return f(); works where the function and f both return structs. * In function return generator, use callers return space, not functions, for same issue above. * In setting up to divide by pointer size in far pointer sub, validate rhs register owner or bad code can be generated. * In far struct copy mark register pushed on the stack as unused to stop internal error. * Ensure rhs is fully loaded for assign-ops with far pointer lvalues. * In conversion of short/int to ulong, force register assignment instead of freeing registers, since the allocation can move the free reg when it still holds the object. * In peephole, suppress ld r,r which can occur from changing compiler optimization options.> Please don't take this as a criticism, thanks for a great CompilerI won't - and thank you.Bill