Thanks, Nicolas (and Sven),

VM search path is what I am looking for (UFFI external modules) and I am curious whether or not this path `pharo-vm/lib/pharo/5.0-201806281256` is constant or variable for the various Pharo versions or does it vary based on the vm version/build number ... pharo6.0 and pharo.1 appear to have the same path ... haven't looked at Pharo7.0 ... and hopefully the path is the same for mac and unix or does it vary ... I don't have a mac to readily test on:)

The bash script that copies my unix/mac .so/.dylib files will be run immediately after the image and vm have been downloaded so I won't be running the image itself (unless I have to). Currently, the download, installation and build of the pharo client for GemStone is built by a bash script...

I'm going to assume for now that the gci libraries will be shoveled into the pharo-vm/lib/5.0-* directory until someone gives me a more definitive answer...

Dale

On 1/25/19 12:27 PM, Nicolas Cellier wrote:
Oh, maybe you're after PharoLauncher conventions?
I was talking of underlying VM search path.
I remember that the library loading happens in ioLoadModule() both for FFI and external plugins.
https://github.com/OpenSmalltalk/opensmalltalk-vm/search?q=ioLoadModule&unscoped_q=ioLoadModule

Le ven. 25 janv. 2019 à 18:45, Sven Van Caekenberghe <[email protected] <mailto:[email protected]>> a écrit :

    Maybe FileLocator can help ?

    on macOS

    FileLocator vmDirectory pathString.
    "'/Users/sven/Develop/Pharo/Pharo-Daily/2019-01-24/pharo-vm'"

    FileLocator vmBinary pathString.
    
"'/Users/sven/Develop/Pharo/Pharo-Daily/2019-01-24/pharo-vm/Pharo.app/Contents/MacOS/Pharo'"

    on Linux

    $ ../bin/pharo Pharo.image eval 'FileLocator vmDirectory pathString'
    '/home/t3/pharo/bin/pharo-vm'

    $ ../bin/pharo Pharo.image eval 'FileLocator vmBinary pathString'
    '/home/t3/pharo/bin/pharo-vm/pharo'

    > On 25 Jan 2019, at 18:25, Dale Henrichs
    <[email protected]
    <mailto:[email protected]>> wrote:
    >
    > Thanks Nicolas,
    >
    > Is it as simple as pharo/*, or could there be multiple
    directories created and I need to pick the right one?
    >
    > Dale
    >
    > On 1/25/19 12:48 AM, Nicolas Cellier wrote:
    >> I'm afraid it also depends on the overly complex rules burried
    deep inside the VM...
    >> It would be a good thing to try and document it.
    >> And if we can't reasonably document it, then we might want to
    open an issue on opensmalltalk.
    >>
    >> Le ven. 25 janv. 2019 à 01:51, Dale Henrichs
    <[email protected]
    <mailto:[email protected]>> a écrit :
    >> I am in the process of porting the GemStone-GCI[1] project to
    Pharo6.1
    >> (32 bit) and Pharo7.0 (64 bit) and I'm curious what the naming
    >> convention for the library directories are.
    >>
    >> For Pharo5.0 and earlier, I copied my 32 bit gemstone gci
    library files
    >> (.so on linux) into the pharo-vm directory.
    >>
    >> For Pharo6.1 I just figured out that I need to copy the gci
    library
    >> files into the pharo-vm/lib/pharo/5.0-201806281256 directory
    ... at list
    >> the libraries are found when I do so?
    >>
    >> I would like to be able to write a bash script that copies the gci
    >> library files into the proper directory, but the directory for the
    >> Pharo6.1 vm looks like some kind of magic number and I assume that
    >> different builds of the 6.1 vm could have different names and
    possibly
    >> even multiple directories under pharo-vm/lib/pharo/?
    >>
    >> I haven't looked at Pharo7.0 yet to see what it's pharo-vm
    directory
    >> structure looks like...
    >>
    >> A pointer to where the naming conventions for these directories is
    >> described for Pharo6.x, Pharo7.x and Pharo8.x would be greatly
    >> appreciated ... would also be nice if the error message for the
    "module
    >> not found" error could be a bit more descriptive as well ...
    >>
    >> Thanks,
    >>
    >> Dale
    >>
    >> [1] https://github.com/GsDevKit/GemStone-GCI
    >>
    >>


Reply via email to