>Hi Christof,
>
>>>I can't look into the memory management design, but I recall that FPW 2.x was not able to free unused memory back to the OS.
>
>>That's the "back-end".
>
>>>>And how does garbage collection fit into these layers ? A part of the 'backend' layer or both ?<<
>
>>Which garbage collection? The NTI garbage collection is definitely part of the internal memory system. Reorganizing the handle pool, though, is something that probably the back-end must do. However, I'm not sure that VFP does still do a back-end garbage collection. It was necessary when memory access was limited to physical memory, but with virtual memory, memory mapping, and the like, I'm not sure what role memory fragmentation really plays.
>
>Is there any documentation about this? If not, how do you know this about VFPs memory management ?
There is some documentation in the VFP Help File itself wrt the basics of the VFP memory management surfaced by the VFP API functions, and the earlier versions of Fox had documentation in the DK; this describes things like the basic management of the name space, memory handles and the like. I spent a few hours under the hood investigating what actually takes place in the API calls - you can run VFP under the control of something like VC++ debugger, which is necessary for debugging FLLs (and old-style libraries like PLDs from the FPDOS DK) and you can step into the VFP API calls...