Stack Commit Size, Stack Reserve Size
Posted: Thu Oct 11, 2018 6:24 pm
Hello all,
I've been using BlackBox Component Builder for over 20 years to build a powerful modelling tool, but somehow never used this forum (yet).
Several years back we ran into a problem that very big models could not be loaded anymore into the tool we develloped with BlackBox. Back then I was advised by Marc Frei of Oberon to alter some parameters in the WriteHeader Procedure of the DevLinker module:
Write4(900000H); (* stack reserve size *) (* MRW: 900000H, ORIGINAL VALUE: 200000H *)
Write4(060000H); (* stack commit size *) (* MRW: 060000H, ORIGINAL VALUE: 10000H *)
IF isDll THEN
Write4(00100000H); (* heap reserve size *)
ELSE
Write4(04000000H); (* heap reserve size *) (* MRW: 04000000H, ORIGINAL VALUE: 00400000H *)
END;
Write4(080000H); (* heap commit size *) (* MRW: 80000H, ORIGINAL VALUE: 10000H *)
Write4(0);
This parameters I tried seemed to work fine, because the big models could now be loaded again. Since a few weeks, with Windows10, however, there seems to be a big problem when opening an Explorer Window to open or save a file (HostDialog.GetIntSpec or HostDialog.GetExtSpec). At first the Explorer Dialog loads, but not properly (black squares are shown, in stead of icons) and after a few tries I only get Trap 100 (meaning that the WinDlg.GetOpenFileNameW failed).
Does anybody know which parameters would work? Reverting back to the original values is not an option, since then the bigger models will result in a Stack Overflow again.
I'm working with BlackBox 1.7 (which I altered in several System and Host modules to better suit my needs).
Kind regards,
Mathieu.
I've been using BlackBox Component Builder for over 20 years to build a powerful modelling tool, but somehow never used this forum (yet).
Several years back we ran into a problem that very big models could not be loaded anymore into the tool we develloped with BlackBox. Back then I was advised by Marc Frei of Oberon to alter some parameters in the WriteHeader Procedure of the DevLinker module:
Write4(900000H); (* stack reserve size *) (* MRW: 900000H, ORIGINAL VALUE: 200000H *)
Write4(060000H); (* stack commit size *) (* MRW: 060000H, ORIGINAL VALUE: 10000H *)
IF isDll THEN
Write4(00100000H); (* heap reserve size *)
ELSE
Write4(04000000H); (* heap reserve size *) (* MRW: 04000000H, ORIGINAL VALUE: 00400000H *)
END;
Write4(080000H); (* heap commit size *) (* MRW: 80000H, ORIGINAL VALUE: 10000H *)
Write4(0);
This parameters I tried seemed to work fine, because the big models could now be loaded again. Since a few weeks, with Windows10, however, there seems to be a big problem when opening an Explorer Window to open or save a file (HostDialog.GetIntSpec or HostDialog.GetExtSpec). At first the Explorer Dialog loads, but not properly (black squares are shown, in stead of icons) and after a few tries I only get Trap 100 (meaning that the WinDlg.GetOpenFileNameW failed).
Does anybody know which parameters would work? Reverting back to the original values is not an option, since then the bigger models will result in a Stack Overflow again.
I'm working with BlackBox 1.7 (which I altered in several System and Host modules to better suit my needs).
Kind regards,
Mathieu.