Re: something is wrong
- Posted by Derek Parnell <ddparnell at bigpond.com> Aug 25, 2004
- 372 views
Robert Craig wrote: > > I set up Win32Lib 0.60.4 and tried the clock.exw example. > > With both the 2.4 binder and the 2.4 translator > I saw the problem where the time does not appear, > only the word "Clock". > > With both the 2.5 (alpha) binder and the 2.5 (alpha) translator, > clock.exw worked fine. I also tried Win32Lib 0.59.1 and > everything worked fine with 2.5. This is good news. > I noticed with 0.60.4 the .exe size produced by the > translator was more than double, 1443K vs 602K. This is > likely due to w32start.ew which has a call to routine_id() > using a general expression, parms[1], rather than the > usual hard-coded string naming a specific routine. > What happens in this case is that the Translator > (and also the binder) must mark every earlier global routine > (plus the local routines in the same file) as being a possible target > of routine_id(). This prevents these routines from ever being > deleted. Maybe there is a way to avoid this, such as moving the > general call to routine_id() to a place much earlier in the source. I don't think that's possible. The whole idea of having this call to routine_id at the end of the program's source is so it can 'find' any global routine anywhere in the entire source file(s). If we routine_id() could do forward referencing at run-time, then this would not be a problem. -- Derek Parnell Melbourne, Australia