Re: [Pharo-users] Are we able to run pharo images in a read only environment?
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)>>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)">>>> ] }
participants (1)
-
Tim Mackinnon