Mail Archives: djgpp/1994/09/01/10:01:11
Hello all DJGPPers
I downloaded yesterday version 1.12. I've found some bugs in it.
1. Sometimes go32 generates error message about too many arguments.
This is caused by comparison of uninitialized variable argc to 10000
in module ^C. This is a fix.
1091a1092,1093
> /* GWJ change 94-08-31 */
> for (argc=0; argv[argc]; argc++);
2. Compiling anything in C++ caused (as I thought) system hang.
So happens only in XMS mode. VCPI works fine.
This is due to buggy swapping out routine in paging.c. When our
program allocates little enough memory, it is not swapped out.
It has the following consequences:
i) All the XMS is allocated. Child program is executed only
in released base memory. Accesing XMS through paging and
SMARTDRIVE is very slow method. After identyfication of the
problem I used topline info and found out, that program is
swapping like crazy. I lost my patience after 1/2 h and turned it off.
So, if we want to keep something on exec, we should free some XMS
after swapping out or relocation the pages in released area.
ii)If we have little XMS in our computer, go32 uses base memory for
execution of the program. We free all allocated base memory, but
we have some data on pages in this area. (I am not quite sure of it
- tell me if I am wrong). So after return from the child program,
we can have some data or code corrupt.
So, better use paging.c from 1.11m5 or set keep_on_exec to 1 and do
not change it.
3. The example of obiective C doesn't work. I don't know and don't
use this language, so I don't care.
Grzegorz W. Jablonski
gwj AT j-23 DOT p DOT lodz DOT pl
- Raw text -