Hi Andrew, On 20 March 2018 at 21:42, Andrew P. Black <apblack@pdx.edu> wrote:
On 21 Mar 2018, at 03:15 , Sven Van Caekenberghe <sven@stfx.eu> wrote:
On 20 Mar 2018, at 14:36, Andrew P. Black <apblack@pdx.edu> wrote:
Iâm having trouble reading files with the most recent âstableâ versions of Pharo.
OK, this is no answer to your issue, but Pharo 7 latest is far from stable, it is intentionally the development head.
It is very good that you test it and help out, more eyes and all that, but using it is at your own risk, there are no promises about stability.
I understand this. The point of my post was to try and diagnose the issue and help make Pharo 7 more stable.
Does my diagnosis of a missing or outdated primitive look reasonable?
Not really :-)
If so, how do I check?
If you can successfully open World Menu -> Tools -> File Browser then the primitive is working.
That is, where are is this primitive
<primitive: 'primitiveDirectoryLookup' module: 'FilePlugin' error: errorCode >
supposed to come from? Iâm guessing that there should be a file with âFilePluginâ somewhere in its name somewhere in one of my VMs. There isnât â although some older Cog vms from back in the day (Iâm talking Pharo 1.4) have something called âlibAsynchFilePlugin.dylibâ
Plugins can either be built-in or external. FilePlugin is built-in.
If this plugin is now essential to run Pharo, shouldnât downloading the launcher and using the launcher to grab a fresh image and launch it (after checking for the appropriate VM) be all that is required to ensure that it is installed? If not, what other steps should I take?
The error handling in #lookupEntryIn:index: is less than ideal. I'm working on a replacement, so I don't think it is worthwhile spending a lot of time on it. This primitive returns a directory entry by index number. Just taking a couple of wild guesses: One possibility is that the directory was modified while you were iterating over the directory. I'm also not sure how it handles entries that you don't have permission to read. But to help track down your issue, maybe temporarily replace the code with: <primitive: 'primitiveDirectoryLookup' module: 'FilePlugin' error: errorCode > errorCode ifNotNil: [self halt: errorCode asString]. ^ #badDirectoryPath That should allow you to track down the issue a bit more. P.S. If the primitive really is missing, errorCode will be #'not found'.
Iâm getting on a l-o-n-g flight in a few hours, and would really like to be able to run Pharo ...
Andrew
HTH, Alistair