Oooooh! That might just do the trick for me...

Turns out that I've got one more problem in that the gsDevKit pharo vm
and/or gsdevkit image files can be installed in arbitrary locations ... for
this one I guess I need to consider installing pharo and pharo-ui in
/usr/local/ ... will work for Linux and Mac ... for Windows, I'm already
jumping through some ugly hoops...

Thanks Thierry and Sven!

Dale


On Fri, Jul 25, 2014 at 1:53 PM, Thierry Goubier <thierry.goub...@gmail.com>
wrote:

> You can try to get the current working directory this way:
>
> argumentsAsFileReferences
> |pwd |
> pwd := (Smalltalk os environment at: 'PWD' ifAbsent: [ Smalltalk os
> environment at: 'CD' ]) asFileReference.
> ^ self argumentsWithoutOptions collect: [ :each | pwd resolveReference:
> each asFileReference ]
>
> This works when passing arbitrary files as argument to a shell script
> doing an exec on arbitraryPath/pharo afterwards.
>
> (This is how GitFileTree-MergeDriver handles being called by git with file
> paths).
>
> Now, it would be necessary to fix that on the default .st loading :)
>
> Thierry
>
> Le 25/07/2014 22:05, Sven Van Caekenberghe a écrit :
>
>  Yes, for some reason, the shebang (#!) machinery passes ./test2.st as
>> argument to pharo, which it seems can only be resolved if it is in the
>> image directory (as opposed to the current shell directory).
>>
>> I have no time to look at this now, but I vaguely remember that pharo
>> mixed the concept of current working directory and image directory (at
>> least in some places).
>>
>> On 25 Jul 2014, at 21:43, Dale Henrichs <dale.henri...@gemtalksystems.com>
>> wrote:
>>
>>  Sven,
>>> Without putting a test.st file in /Users/daleh/gsDevKitHome/pharo, I
>>> get the following (it works if I `cp ./test.st
>>> /Users/daleh/gsDevKitHome/pharo`):
>>>
>>> nehalem:junk daleh$ pwd
>>> /Users/daleh/junk
>>> nehalem:junk daleh$ cat test.st
>>> #!/Users/daleh/gsDevKitHome/pharo/pharo-vm/Pharo.app/Contents/MacOS/Pharo
>>> --headless /Users/daleh/gsDevKitHome/pharo/todeClient.image st --quit
>>> FileStream stdout nextPutAll: 42 factorial asString; cr.
>>> nehalem:junk daleh$ ./test.st
>>> FileDoesNotExist: File @ /Users/daleh/gsDevKitHome/pharo/test.st
>>> FileHandle>>streamError
>>> FileHandle>>readStream
>>> FileSystem>>readStreamOn:
>>> FileReference>>readStream
>>> FileReference(AbstractFileReference)>>readStreamDo:
>>> STCommandLineHandler>>installSourceFile:
>>> STCommandLineHandler>>installSourceFiles in Block: [ :reference | self
>>> installSourceFile: reference ]...etc...
>>> OrderedCollection>>do:
>>> STCommandLineHandler>>installSourceFiles in Block: [ sourceFiles do: [
>>> :reference | self installSourc...etc...
>>> BlockClosure>>ensure:
>>> STCommandLineHandler>>installSourceFiles
>>> STCommandLineHandler>>activate
>>> STCommandLineHandler class(CommandLineHandler class)>>activateWith:
>>> PharoCommandLineHandler(BasicCommandLineHandler)>>activateSubCommand:
>>> in Block: [ aCommandLinehandler activateWith: commandLine ]
>>> BlockClosure>>on:do:
>>> PharoCommandLineHandler(BasicCommandLineHandler)>>activateSubCommand:
>>> PharoCommandLineHandler(BasicCommandLineHandler)>>handleSubcommand
>>> PharoCommandLineHandler(BasicCommandLineHandler)>>handleArgument:
>>> PharoCommandLineHandler(BasicCommandLineHandler)>>activate in Block: [
>>> self handleArgument: (self arguments ifEmpty: [ ...etc...
>>> BlockClosure>>on:do:
>>> PharoCommandLineHandler(BasicCommandLineHandler)>>activate
>>> PharoCommandLineHandler>>activate
>>> PharoCommandLineHandler class(CommandLineHandler class)>>activateWith:
>>> PharoCommandLineHandler class>>activateWith: in Block: [ super
>>> activateWith: aCommandLine ]
>>> WorldState>>runStepMethodsIn:
>>> WorldMorph>>runStepMethods
>>> WorldState>>doOneCycleNowFor:
>>> WorldState>>doOneCycleFor:
>>> WorldMorph>>doOneCycle
>>> MorphicUIManager>>spawnNewProcess in Block: [ ...
>>>
>>>
>>>
>>> On Fri, Jul 25, 2014 at 12:29 PM, Sven Van Caekenberghe <s...@stfx.eu>
>>> wrote:
>>>
>>> On 25 Jul 2014, at 21:25, Dale Henrichs <dale.henrichs@gemtalksystems.
>>> com> wrote:
>>>
>>>  Sven,
>>>>
>>>> I'm using Pharo3.0 and it appears that the .st scripts have to be
>>>> located in the same directory as the image and changes files  ... I see
>>>> that you are using Pharo4.0 ...
>>>>
>>>> So is it possible to get Pharo3.0 to work on .st files in arbitary
>>>> directores?
>>>>
>>> Are you using the shebang or direct version ?
>>> In any case, I am always using absolute paths.
>>> Does that not work for you ?
>>>
>>>  Dale
>>>>
>>>>
>>>> On Thu, Jul 24, 2014 at 7:42 AM, Sven Van Caekenberghe <s...@stfx.eu>
>>>> wrote:
>>>>
>>>> On 24 Jul 2014, at 16:34, p...@highoctane.be wrote:
>>>>
>>>>  One question I have is how fast the load of an image and processing by
>>>>> an image is when compared with bash.
>>>>>
>>>> Obviously, it is slower, there is a whole image that needs to be
>>>> loaded, etc.
>>>>
>>>> $ cat test.st
>>>> #!/Users/sven/tmp/pharo4/pharo-vm/Pharo.app/Contents/MacOS/Pharo
>>>> --headless /Users/sven/tmp/pharo4/Pharo.image st --quit
>>>> FileStream stdout nextPutAll: 42 factorial asString; cr.
>>>>
>>>> $ time ./test.st
>>>> 1405006117752879898543142606244511569936384000000000
>>>>
>>>> real    0m0.644s
>>>> user    0m0.516s
>>>> sys     0m0.067s
>>>>
>>>> So about half a second overhead.
>>>>
>>>> Sven
>>>>
>>>>
>>>
>>>
>>
>>
>>
>
>

Reply via email to