On 4 January 2013 08:54, Torsten Bergmann <[email protected]> wrote: > When one deploys an image one usually requires ONLY > the image - not the source or changes file. An "image locker" > code would look like this: > > SmalltalkImage checkSourcesFileAvailability: false. > SmalltalkImage checkChangesFileAvailability: false > > do disable acording warnings when source/changefile is removed. > > If one uses NativeBoost in such a deployment scenario, for > instance the > > NBWin32Shell shellBrowse: 'http://www.google.de' > > functionality the internal code (due to missing source) now > looks like this > > shellExecute: t1 file: t2 parameters: t3 directory: t4 show: t5 > <primitive: 'primitiveNativeCall' module: 'NativeBoostPlugin'> > ^ self nbCall: #(#HINSTANCE #ShellExecuteA #(0 #, #LPCTSTR > #lpOperation #, #LPCTSTR #lpFile #, #LPCTSTR #lpParameters #, #LPCTSTR > #lpDirectory #, #INT #nShowCmd ) ) module: 'Shell32.dll' > > Hence the t1 ... t5 parameters. > > NativeBoost is in this situation not able to match the > FFI parameters and throws an error "Could not find accessor for variable ..." > > Try yourself without a changes and source file. This makes > NativeBoost not very deployment friendly and unusable in > such a "minimal deployment" scenario ... > > Any comments? >
yes it needs sources (indirectly) to bind method's argument names during code generation. To avoid that, i can imagine that one must modify a compiler to detect if compiled method primitive requires arg names, and store them in method properties. Like that later code generator can use them without need to access the source code. > Thanks > T. -- Best regards, Igor Stasenko
