Managing packaging instructions
The packaging process is guided by a set of rules based on a packaging instruction. The packaging instruction is in the form of a Smalltalk class; the packager interacts with the instruction by sending messages to determine the exact contents of the packaged image. Instantiations provides a number of packaging instructions to assist you in building a packaged application image.
You create and manage the packaging instruction through the Packager Control Panel. The pertinent steps are
Create New Instructions
Modify Instructions
Save Instuctions
When packaging for another platform, you will open the Packager Control Panel in a passive image.
You can use a single passive image and have multiple packaging instructions within it or you can have multiple passive images each of which has one or more packaging instructions. Your saved image will grow dramatically if you maintain a lot of passive images.
For cross development it is important to note that the packaging instruction responds to messages from the packager. That is, the packager runs the packaging instruction. Because the passive image does not support execution, the packaging instruction must reside in the development image. However, the runtime code must be loaded into the passive image.
When porting packaging instructions that were initially developed for the traditional packager, ensure that you re-save the instruction from the Packager Control Panel to automatically convert any direct class references within the packaging instruction to the symbolic references required to handle both the development and passive image.
There are certain methods you can code into your applications that provide information to the packager. The following are two of the most common methods used. See Smalltalk User Guide for more information.
packagerKnownSymbols
Answers an array of symbols used as atoms within the application. This method instructs the packager to filter these symbols from any check done to verify that each known symbol has at least one implementor.
packagerIncludeSelectors
Answers a SequenceableCollection of symbols that represents method selectors within the application that should always be included when the application is packaged. The packager uses this method to determine the list of selectors that the application should always include even if there is no explicit reference to them in the code being packaged.
Last modified date: 07/24/2020