Luke,

I don't see this in the latest binary and I have not adjusted the rtprio figures at all. I can try running some simple tests if you send them to me.

$ curl get.pharo.org/64/60+vmLatest | bash
....

file Pharo.image
Pharo.image: Smalltalk image Spur 64b +C+NF+Tag (68021)

$ prlimit --rtprio
RESOURCE DESCRIPTION            SOFT HARD UNITS
RTPRIO   max real-time priority    0    0

$ pharo-vm/lib/pharo/5.0-201704120850/pharo --version
5.0-201704120850 Wed Apr 12 09:13:59 UTC 2017 gcc 4.6.3 [Production Spur 64-bit ITHB VM] CoInterpreter VMMaker.oscog-eem.2188 uuid: ff4ca601-cd05-4792-ab0d-dcdf19975239 Apr 12 2017 StackToRegisterMappingCogit VMMaker.oscog-eem.2188 uuid: ff4ca601-cd05-4792-ab0d-dcdf19975239 Apr 12 2017 VM: 201704120850 https://github.com/OpenSmalltalk/opensmalltalk-vm.git $ Date: Wed Apr 12 10:50:48 2017 +0200 $ Plugins: 201704120850 https://github.com/OpenSmalltalk/opensmalltalk-vm.git $ Linux testing-gce-504e47eb-4202-4e16-92e1-3d42dab82e2f 3.13.0-103-generic #150~precise1-Ubuntu SMP Thu Nov 24 11:05:34 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux plugin path: /opt/share/downloads/pharo/64/pharo-vm/lib/pharo/5.0-201704120850/ [default: /opt/share/downloads/pharo/64/pharo-vm/lib/pharo/5.0-201704120850/]

$ ./pharo Pharo.image eval 0 tinyBenchmarks
'923354373 bytecodes/sec; 82191014 sends/sec'

Regards .. Subbu

On Monday 17 April 2017 03:25 AM, Luke Gorrie wrote:
I have the VM building under nix from the master branch now. The build
is based loosely on the linux.64x64 mvm script so it's building a 64-bit
x86-64 VM. The pharo-vm commit I am testing is 1c38b03f (from wednesday.)

I have tried opening both Pharo-60465.image and Pharo-50771.image and
both give this error:

    This interpreter (vers. 68021) cannot read image file (vers. 6521).


How come? Is this because I built a 64-bit VM? If I want to use those
images then should I build a 32-bit image instead? (Or none of the above?)

Then I found Pharo64-60465.image and this does open and display a window
but it's frozen and prints these messages:

    pthread_setschedparam failed: Operation not permitted
    This VM uses a separate heartbeat thread to update its internal clock
    and handle events.  For best operation, this thread should run at a
    higher priority, however the VM was unable to change the priority.  The
    effect is that heavily loaded systems may experience some latency
    issues.  If this occurs, please create the appropriate configuration
    file in /etc/security/limits.d/ as shown below:

    cat <<END | sudo tee /etc/security/limits.d/squeak.conf
    *      hard    rtprio  2
    *      soft    rtprio  2
    END

    and report to the squeak mailing list whether this improves behaviour.

    You will need to log out and log back in for the limits to take effect.
    For more information please see
    https://github.com/OpenSmalltalk/opensmalltalk-vm/releases/tag/r3732#linux
    'Your VM is too old for this image. Please download the latest VM.'
    Error: Can't find the requested origin


    UnixResolver(PlatformResolver)>>cantFindOriginError
    [ self cantFindOriginError ] in
    UnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed: in
    Block: [ self cantFindOriginError ]
    [ ^ aBlock value ] in
    UnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed:or: in
    Block: [ ^ aBlock value ]
    BlockClosure>>cull:
    Context>>evaluateSignal:
    Context>>handleSignal:
    Error(Exception)>>signal
    Error(Exception)>>signal:
    ExternalLibraryFunction(Object)>>error:
    ExternalLibraryFunction(Object)>>externalCallFailed
    ExternalLibraryFunction(ExternalFunction)>>invokeWithArguments:
    UnixEnvironment(OSEnvironment)>>getEnv:
    UnixEnvironment(OSEnvironment)>>at:ifAbsent:
    [ Smalltalk os environment at: aString ifAbsent: [ nil ] ] in
    UnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed:or: in
    Block: [ Smalltalk os environment at: aString ifAbse\
    nt: [...etc...
    BlockClosure>>on:do:
    UnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed:or:
    UnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed:
    UnixResolver>>home
    [ self home / '.config' ] in UnixResolver>>preferences in Block: [
    self home / '.config' ]
    [ ^ aBlock value ] in
    UnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed:or: in
    Block: [ ^ aBlock value ]
    BlockClosure>>cull:
    Context>>evaluateSignal:
    Context>>handleSignal:
    Error(Exception)>>signal
    Error(Exception)>>signal:
    ExternalLibraryFunction(Object)>>error:
    ExternalLibraryFunction(Object)>>externalCallFailed
    ExternalLibraryFunction(ExternalFunction)>>invokeWithArguments:
    UnixEnvironment(OSEnvironment)>>getEnv:
    FFICalloutAPI>>function:module:


Googling around it sounds like this "origin error" is caused by not
finding the Sources file but I have provided the PharoV50.sources and
strace suggests that it is opened okay:

    
open("/nix/store/w85ynpp3zm33k8h1hvzh2g7hf7ggwx1k-pharo-share-1.0/lib/PharoV50.sources",
    O_RDONLY) = 3
    
open("/nix/store/w85ynpp3zm33k8h1hvzh2g7hf7ggwx1k-pharo-share-1.0/lib/PharoV50.sources",
    O_RDONLY) = 6

So maybe the problem is that I need a different source file? Or maybe
that I should switch to a 32-bit VM? Or something else entirely...?

Any help appreciated :)
-Luke



Reply via email to