[Vm-dev] SqueakVMPathAnswersResources preference

Eliot Miranda eliot.miranda at gmail.com
Mon Aug 1 19:46:14 UTC 2011


On Mon, Aug 1, 2011 at 12:39 PM, Bert Freudenberg <bert at freudenbergs.de>wrote:

>
>
> On 01.08.2011, at 21:34, Eliot Miranda wrote:
>
> Hi Bert,
>
> On Mon, Aug 1, 2011 at 5:12 AM, Bert Freudenberg <bert at freudenbergs.de>wrote:
>
>>
>>
>> On 31.07.2011, at 20:55, Eliot Miranda wrote:
>>
>> Hi Bert,
>>
>> On Sun, Jul 31, 2011 at 10:52 AM, Bert Freudenberg <bert at freudenbergs.de>wrote:
>>
>>>
>>>
>>> On 31.07.2011, at 19:18, Eliot Miranda wrote:
>>>
>>> > Hi All,
>>> >
>>> >     I just added code to the Cog branch for the Mac VM so that whether
>>> primVmPath/primitiveVMPath answers the directory containing the VM.app or
>>> answers the Resources directory within the .app is controlled by the
>>> SqueakVMPathAnswersResources preference in the Info.plist file.  primVmPath
>>> is used to determine where to derive the sources file from.
>>>
>>> Among other places.
>>>
>>> >  By default primVmPath answers the directory containing the VM.app and
>>> therefore the sources file is at the same level, e.g.
>>> /Applications/Squeak.app & /Applications/SqueakV41.sources.  But some
>>> installations (e.g. Newspeak and the EToys all-in-one) may find it more
>>> convenient to put the sources in VM.app/Contents/Resources.
>>>
>>> That's what Etoys does, of course.
>>>
>>> > This means one file to install, not 2, etc.  I think it useful that
>>> this behavior be in the standard VM.  Esteban, if you agree, perhaps you
>>> could integrate into the trunk platforms/Mac OS?
>>>
>>> Not opposed to the change, but it's unnecessary for all-in-ones like
>>> Etoys.  The Squeak logic to open the sources file looks in the image
>>> directory anyway, which is the Resources folder.
>>>
>>
>> I didn't find this code when I looked yesterday.  Can you spell this out
>> for me?
>>
>>
>> FileDirectory class>>openSources:forImage: {system start up}
>> tpr 2/17/2004 19:59
>>
>> openSources: fullSourcesName forImage: imageName
>> "We first do a check to see if a compressed version ofthe sources file is
>> present.
>> Open the .sources file read-only after searching in:
>> a) the directory where the VM lives
>> b) the directory where the image came from
>> c) the DefaultDirectory (which is likely the same as b unless the
>> SecurityManager has changed it).
>> "
>>
>> | sources fd sourcesName |
>> (fullSourcesName endsWith: 'sources') ifTrue:
>> ["Look first for a sources file in compressed format."
>>  sources _ self openSources: (fullSourcesName allButLast: 7) , 'stc'
>> forImage: imageName.
>> sources ifNotNil: [^ CompressedSourceStream on: sources]].
>>
>> sourcesName _ FileDirectory localNameFor: fullSourcesName.
>> "look for the sources file or an alias to it in the VM's directory"
>>  fd _ FileDirectory on: SmalltalkImage current vmPath.
>> (fd fileExists: sourcesName)
>> ifTrue: [sources _ fd readOnlyFileNamed: sourcesName].
>>  sources ifNotNil: [^ sources].
>> "look for the sources file or an alias to it in the image directory"
>>  fd _ FileDirectory on: (FileDirectory dirPathFor: imageName).
>> (fd fileExists: sourcesName)
>> ifTrue: [sources _ fd readOnlyFileNamed: sourcesName].
>>  sources ifNotNil: [^ sources].
>> "look for the sources in the current directory"
>> fd _ DefaultDirectory.
>>  (fd fileExists: sourcesName)
>> ifTrue: [sources _ fd readOnlyFileNamed: sourcesName].
>> "sources may still be nil here"
>>  ^sources
>>
>
> yes, I saw that.  But the above implies that the only way the sources are
> going to be found in the Resources directory is if primVmPath answers the
> Resources directory, right?
>
>
> No.
>
>  And at least in the Cog sources that wasn't the case until I made
> modifications.  Does the etoys VM have some modifications to primVmPath or
> does it patch the method or...?
>
>
> As I wrote above "The Squeak logic to open the sources file looks in the
> image directory anyway, which is the Resources folder" because the Etoys
> image is in the Resources folder. Just like any other all-in-one I know.
>

Ah, got you.  So the Info.plist names the image in the Resources directory
and everything follows from there.  Thanks.


>
> - Bert -
>
>
>
>


-- 
best,
Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20110801/10ad7781/attachment.htm


More information about the Vm-dev mailing list