Wow that's very promising - how do I get that setup? I also believe for lambda I need 64 bit as you have little control of the base image? I haven't had a chance to try marshalling results back to Alexa yet - but that's my goal. Tim
Sent from my iPhone > On 30 Jun 2017, at 15:43, Sven Van Caekenberghe <[email protected]> wrote:> > >> On 27 Jun 2017, at 21:15, Sven Van Caekenberghe <[email protected]> wrote:>> >> >>> On 27 Jun 2017, at 21:00, Esteban A. Maringolo >>> <[email protected]> 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 <[email protected]>: >>>> 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)>>cantFindOriginErr- >>>> or\n[ self>>>> cantFindOriginError ] in >>>> UnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed: in >>>> Block: [>>>> self cantFindOriginError >>>> ]\nUnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed:o- >>>> r:\nUnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed:- >>>> \nUnixResolver>>home\n[>>>> self home / '.config' ] in >>>> UnixResolver>>preferences in Block: [ >>>> self home />>>> '.config' >>>> ]\nUnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed:o- >>>> r:\nUnixResolver>>preferences\nUnixResolver(FileSystemResolver)>>r- >>>> esolve:\nSystemResolver(FileSystemResolver)>>unknownOrigin:\nSyste- >>>> mResolver(FileSystemResolver)>>resolve:\nInteractiveResolver>>unkn- >>>> ownOrigin:\n[>>>> self unknownOrigin: origin ] in >>>> InteractiveResolver>>resolve: in >>>> Block: [>>>> self unknownOrigin: origin >>>> ]\nIdentityDictionary(Dictionary)>>at:ifAbsent:\nInteractiveResolv- >>>> er>>resolve:\nFileLocator>>resolve\nFileLocator(AbstractFileRefere- >>>> nce)>>exists\nGlobalIdentifierStonPersistence(GlobalIdentifierPers- >>>> istence)>>shouldCallPreviousPersistence\nGlobalIdentifierStonPersi- >>>> stence(GlobalIdentifierPersistence)>>ensure:\nGlobalIdentifier>>en- >>>> sure\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:i- >>>> fPresent:\nSmalltalkImage>>at:ifPresent:\nPharoCommandLineHandler>- >>>> >runPreferences\nPharoCommandLineHandler>>activate\nPharoCommandLi- >>>> neHandler>>>> 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:o- >>>> r:",>>>> >>>> "UnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed:",>>>> >>>> "UnixResolver>>home", >>>> "[ self home / '.config' ] in UnixResolver>>preferences in Block: >>>> [ self>>>> home / '.config' ]", >>>> "UnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed:o- >>>> r:",>>>> "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)>>sho- >>>> uldCallPreviousPersistence",>>>> >>>> "GlobalIdentifierStonPersistence(GlobalIdentifierPersistence)>>en- >>>> sure:",>>>> "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)">>>> ] >>>> } >>>> >>>> >>> >> > >
