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 <sven@stfx.eu> wrote:
>
>
>> On 27 Jun 2017, at 21:15, Sven Van Caekenberghe <sven@stfx.eu> wrote:
>>
>>
>>> On 27 Jun 2017, at 21:00, Esteban A. Maringolo <emaringolo@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)"
>>>> ]
>>>> }
>>>>
>>>>
>>>
>>
>
>