HANDLE versus stdio (was: [squeak-dev] Faster FileStream experiments)

Colin Putney cputney at wiresong.ca
Thu Dec 3 18:41:56 UTC 2009


On 3-Dec-09, at 10:12 AM, David T. Lewis wrote:

> In the Windows VM, FilePlugin uses the standard win32 interface  
> interacting
> with HANDLE rather than (FILE *). The other VMs use stdio in the file
> plugin. Loosely speaking, the Windows VM is using "level 2", while the
> other VMs are working at "level 3".

Performance is certainly interesting, but to me it's mostly a question  
design. FILE * is a high-level API, meant for C programmers to use  
directly. A lot of what it provides is already implemented in the  
image-level code.

For example, a FileStream has a position instance variable, but the  
FilePlugin primitives also maintain a position, and we have to choose  
between keeping them in sync or ignoring the image-level position.  
Both of those are problematic. I'd like to see file IO primitives that  
are implemented in terms of pread() and pwrite() or the like.

  I like to primtives to be as primitive as possible. :-)

Colin



More information about the Squeak-dev mailing list