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?TimOn 30 Jun 2017, at 14: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\ nGlobalIdentifierStonPersisten ce( GlobalIdentifierPersistence)>> shouldCallPreviousPersistence\ nGlobalIdentifierStonPersisten ce( 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",
"GlobalIdentifierStonPersistenc e(GlobalIdentifierPersistence) >> shouldCallPreviousPersistence" ,
��"GlobalIdentifierStonPersistenc e(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)"
]
}