Re: Bind features
- Posted by Robert Craig <rds at ATTCANADA.NET> Jun 30, 1999
- 622 views
Ralf writes: > A lot of programs will crash, when bound, with the > 300-statement thingie, since bind uses the pd-version of > the interpreter, rather than the registered version. (logically) Registered users of bind (which in 2.1 is all users of bind) do not have a 300 limit in their bound .exe files. Ralf writes: > Be warned with constants, they are in memory twice. > Once in your source, and once in the allocated memory for > that constant. However, fortunately, Euphoria, being one-pass > will remove the memory the constant is using the first time it > reads the constant decleration. However, this is, when the > program is *not* bound. Otherwise, the executable is loaded, > as a whole, into the memory by the operating system. 1. After processing a constant declaration, all the data and code used in calculating the constants value is freed. e.g. constant SIZE=10+100-22*foobar({1,2,3,4,5}) Some intermediate code and temporary data is generated to evaluate this expression, but it's all freed up after it runs, leaving just the final result in memory. This is true of any statement that executes at the "top-level", outside of a routine. 2. Whether bound or not, the operating system only loads the Euphoria interpreter into memory. It is then up to Euphoria to open a file (the same .exe file, in the case of a bound executable) and read in your Euphoria program. As a quick test, I added 40 Mb of garbage onto the end of a bound .exe file. It had no effect of the speed of running the .exe. Obviously, the operating system was not trying to load the 40 Mb of garbage into the 32 Mb of memory on the machine. Regards, Rob Craig Rapid Deployment Software http://members.aol.com/FilesEu/