> On 5 Jul 2017, at 16:05, Tim Mackinnon <tim@testit.works> wrote: > > I went to try this to see how it might perform on AWS Lambda but I’m guessing > there isn’t a minimal 64 bit image right? > > Sven - was this a 32bit image from get.pharo.org/70-minimal?
It came from a link Pavel sent me for debugging purposes, he is the expert, I don't know if there are both 32 and 64 bit versions (or even if there is much difference, if any). > Tim > >> On 30 Jun 2017, at 14:43, Sven Van Caekenberghe <s...@stfx.eu> wrote: >> >>> >>> On 27 Jun 2017, at 21:15, Sven Van Caekenberghe <s...@stfx.eu> wrote: >>> >>> >>>> On 27 Jun 2017, at 21:00, Esteban A. Maringolo <emaring...@gmail.com> >>>> wrote: >>>> >>>> Interesting experiment. >>>> >>>> It would be good to know how fast does the image boot and start >>>> execution in the context of a service billed at the sub second scale. >>> >>> Sadly I have the impression we lost some speed: >>> >>> ~/pharo64$ ./pharo Pharo.image printVersion >>> [version] 6.0 #60499 >>> >>> ~/pharo64$ time ./pharo Pharo.image eval '42 factorial' >>> 1405006117752879898543142606244511569936384000000000 >>> >>> real 0m1.276s >>> user 0m0.985s >>> sys 0m0.171s >>> >>> while before >>> >>> ~/pharo/build$ ../bin/pharo Pharo.image printVersion >>> [version] 4.0 #40620 >>> >>> $ time ../bin/pharo Pharo.image eval '42 factorial' >>> 1405006117752879898543142606244511569936384000000000 >>> >>> real 0m0.526s >>> user 0m0.434s >>> sys 0m0.045s >>> >>> But it is really hard to find the cause. >> >> The good news is that the Pharo 7 minimal core is way faster >> >> $ time ./pharo ~/Downloads/Pharo7.0-core-32bit-b649ac6.image eval "42 >> factorial" >> 1405006117752879898543142606244511569936384000000000 >> >> real 0m0.262s >> user 0m0.132s >> sys 0m0.062s >> >> Which is good of course ! >> >>> That being said, these lambda servers can only work well if they keep >>> instances alive for longer when there is enough traffic. >>> >>>> Esteban A. Maringolo >>>> >>>> >>>> 2017-06-27 13:05 GMT-03:00 Tim Mackinnon <tim@testit.works>: >>>>> Hi - I am trying to run a pharo image in lambda (as an experiment) - >>>>> however >>>>> I get an error from Pharo about not being able to write to the changes >>>>> file? >>>>> >>>>> As I am just evaluating some code - I’m not really coding, so don’t need a >>>>> changes file - is there a command line option to not require it? >>>>> >>>>> Also, am I running pharo the most efficient way - I’m using eval on the >>>>> command line and referencing a class with a class method - but is this the >>>>> best way? >>>>> >>>>> Thanks, >>>>> >>>>> Tim >>>>> >>>>> "errorMessage": "Command failed: ./pharo Pharo.image eval \"Lambda >>>>> processJSON: >>>>> '{\"key3\":\"value3\",\"key2\":\"value2\",\"key1\":\"value1\"}'\"\n'Pharo >>>>> cannot write to the changes file named /var/task/Pharo.changes.\n\nPlease >>>>> check that you have write permission for this file.\n\nYou won''t be able >>>>> to >>>>> save this image correctly until you fix this.'\n\u001b[31mError: Can't >>>>> find >>>>> the requested >>>>> origin\n\u001b[0mUnixResolver(PlatformResolver)>>cantFindOriginError\n[ >>>>> self >>>>> cantFindOriginError ] in >>>>> UnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed: in Block: [ >>>>> self cantFindOriginError >>>>> ]\nUnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed:or:\nUnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed:\nUnixResolver>>home\n[ >>>>> self home / '.config' ] in UnixResolver>>preferences in Block: [ self >>>>> home / >>>>> '.config' >>>>> ]\nUnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed:or:\nUnixResolver>>preferences\nUnixResolver(FileSystemResolver)>>resolve:\nSystemResolver(FileSystemResolver)>>unknownOrigin:\nSystemResolver(FileSystemResolver)>>resolve:\nInteractiveResolver>>unknownOrigin:\n[ >>>>> self unknownOrigin: origin ] in InteractiveResolver>>resolve: in Block: [ >>>>> self unknownOrigin: origin >>>>> ]\nIdentityDictionary(Dictionary)>>at:ifAbsent:\nInteractiveResolver>>resolve:\nFileLocator>>resolve\nFileLocator(AbstractFileReference)>>exists\nGlobalIdentifierStonPersistence(GlobalIdentifierPersistence)>>shouldCallPreviousPersistence\nGlobalIdentifierStonPersistence(GlobalIdentifierPersistence)>>ensure:\nGlobalIdentifier>>ensure\nGlobalIdentifier >>>>> class>>initializeUniqueInstance\nGlobalIdentifier >>>>> class>>uniqueInstance\nSystemSettingsPersistence >>>>> class>>resumeSystemSettings\n[ :persistence | persistence >>>>> resumeSystemSettings ] in PharoCommandLineHandler>>runPreferences in >>>>> Block: >>>>> [ :persistence | persistence resumeSystemSettings >>>>> ...etc...\nBlockClosure>>cull:\nSystemDictionary(Dictionary)>>at:ifPresent:\nSmalltalkImage>>at:ifPresent:\nPharoCommandLineHandler>>runPreferences\nPharoCommandLineHandler>>activate\nPharoCommandLineHandler >>>>> class(CommandLineHandler class)>>activateWith:\n\u001b[0m", >>>>> "errorType": "Error", >>>>> "stackTrace": [ >>>>> "'Pharo cannot write to the changes file named >>>>> /var/task/Pharo.changes.", >>>>> "", >>>>> "Please check that you have write permission for this file.", >>>>> "", >>>>> "You won''t be able to save this image correctly until you fix this.'", >>>>> "\u001b[31mError: Can't find the requested origin", >>>>> "\u001b[0mUnixResolver(PlatformResolver)>>cantFindOriginError", >>>>> "[ self cantFindOriginError ] in >>>>> UnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed: in Block: [ >>>>> self cantFindOriginError ]", >>>>> "UnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed:or:", >>>>> "UnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed:", >>>>> "UnixResolver>>home", >>>>> "[ self home / '.config' ] in UnixResolver>>preferences in Block: [ self >>>>> home / '.config' ]", >>>>> "UnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed:or:", >>>>> "UnixResolver>>preferences", >>>>> "UnixResolver(FileSystemResolver)>>resolve:", >>>>> "SystemResolver(FileSystemResolver)>>unknownOrigin:", >>>>> "SystemResolver(FileSystemResolver)>>resolve:", >>>>> "InteractiveResolver>>unknownOrigin:", >>>>> "[ self unknownOrigin: origin ] in InteractiveResolver>>resolve: in >>>>> Block: [ self unknownOrigin: origin ]", >>>>> "IdentityDictionary(Dictionary)>>at:ifAbsent:", >>>>> "InteractiveResolver>>resolve:", >>>>> "FileLocator>>resolve", >>>>> "FileLocator(AbstractFileReference)>>exists", >>>>> >>>>> "GlobalIdentifierStonPersistence(GlobalIdentifierPersistence)>>shouldCallPreviousPersistence", >>>>> "GlobalIdentifierStonPersistence(GlobalIdentifierPersistence)>>ensure:", >>>>> "GlobalIdentifier>>ensure", >>>>> "GlobalIdentifier class>>initializeUniqueInstance", >>>>> "GlobalIdentifier class>>uniqueInstance", >>>>> "SystemSettingsPersistence class>>resumeSystemSettings", >>>>> "[ :persistence | persistence resumeSystemSettings ] in >>>>> PharoCommandLineHandler>>runPreferences in Block: [ :persistence | >>>>> persistence resumeSystemSettings ...etc...", >>>>> "BlockClosure>>cull:", >>>>> "SystemDictionary(Dictionary)>>at:ifPresent:", >>>>> "SmalltalkImage>>at:ifPresent:", >>>>> "PharoCommandLineHandler>>runPreferences", >>>>> "PharoCommandLineHandler>>activate", >>>>> "PharoCommandLineHandler class(CommandLineHandler >>>>> class)>>activateWith:", >>>>> "\u001b[0m", >>>>> "ChildProcess.exithandler (child_process.js:204:12)", >>>>> "emitTwo (events.js:106:13)", >>>>> "ChildProcess.emit (events.js:191:7)", >>>>> "maybeClose (internal/child_process.js:886:16)", >>>>> "Process.ChildProcess._handle.onexit (internal/child_process.js:226:5)" >>>>> ] >>>>> } >