Thanks john. I will to investigate that. What is strange is that damien on linux did not get the problem. So may be this is coming from the image. I can systematically get an error usging the latest core 470 and the following script http://code.google.com/p/pharo/issues/list?cursor=1295
stef On Oct 13, 2009, at 7:46 AM, John M McIntosh wrote: > Well the FilePlugin is built into the VM versus being an external VM > and it supplies the basic file I/O operations. > So you won't find a plugin called that unless some-one decided to > compile up one. > > So either the plugin method call fails because it cannot be found, or > it fails because it explicitly failed on bad data, or > other reason (an error?) > > The failure cases are: > > (1) the id object is not a byte array type of object. > Given > MultiByteFileStream(StandardFileStream)>>primGetPosition: > Receiver: MultiByteFileStream: '/Data/Downloads/pharo1.0-10470- > BETAdev09.10.2/installScript.st' > Arguments and temporary variables: > id: #[153 12 133 142 168 105 19 160 0 0 0 0 18 18 0 0 0 0 0 > 0 0 0 0 > 0] > Receiver's instance variables: > > Yes that looks like a byte array object. > > (b) the size of id is wrong > This is unlikely since the id bytearray hasn't changed size in > decades. > Let me assume the number of bytes is correct. > > (c) the bytes 5-8 have to be non-zero, otherwise we fail > Nope, it's 168 105 19 160 > > (d) bytes 1-3 have to be non-zero AND match some magic value in the VM > Well 153 12 133 142 is non zero, but what's the magic value? > > MMm I don't think you can get the magic value directly, but at the > point of failure you could create a new file and examine the 'id' > value for the StandardFileStream and see if the first 4 bytes match > the first 4 bytes of this value (153 12 133 142) > Failure to match would cause a prim failure. > > Oh wait I see you can invoke > self primSizeNoError: fileID > and if that returns NIL the handle is stale. > > See ensureOpen > > (e) the ftello() fails because the file doesn't exist, or an I/O error > happened, or the path is bad. Or some icky file system error. > Alas we don't feed back or record what the error is, but I think you > fail on (d)? > > > I'd bet on (d) the MultiByteFileStream instance is some cached value > from a previous VM usage, try the primSizeNoError: and see what it > returns when you're inspecting the MultiByteFileStream. > > > On 2009-10-12, at 9:42 PM, Stéphane Ducasse wrote: > >> Hi >> >> when trying to build the dev image I systematically get a DNU >> >> primGetPosition: id >> "Get this files current position." >> >> <primitive: 'primitiveFileGetPosition' module: 'FilePlugin'> >> self primitiveFailed >> >> and I do not have the FilePlugin in the resources VM folder. >> >> I checked the web site of john but could not find an explanation. >> >> Stef >> >> _______________________________________________ >> Pharo-project mailing list >> [email protected] >> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > > -- > = > = > = > = > = > ====================================================================== > John M. McIntosh <[email protected]> Twitter: > squeaker68882 > Corporate Smalltalk Consulting Ltd. http:// > www.smalltalkconsulting.com > = > = > = > = > = > ====================================================================== > > > > > > _______________________________________________ > Pharo-project mailing list > [email protected] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project _______________________________________________ Pharo-project mailing list [email protected] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
