Please enable JavaScript to view this site.

A-Shell 6.5 Development Notes

Language enhancement: structure definition embedding added to A-Shell. Previously, in order to bind a DYNSTRUCT to a particular structure definition, you needed to use the MX_DYNSTRUCT call with the DYNOP_DEF opcode to compile the DEFSTRUCT from source specified either in a string or a file. It is now possible to embed the definition of selected DEFSTRUCTs inside the RUN file to allow access for DYNSTRUCT binding without needing any source code at run time.

DEFSTRUCTs may be selected for embedding explicitly, through the use of ++PRAGMAs, or implicitly, by certain kinds of statement references that require structure defintion embedding.

The EMBED_DEFSTRUCT PRAGMA causes the definition of the specified DEFSTRUCT (stname), which have already been seen by the compiler, to be embedded in the RUN.

 ++PRAGMA EMBED_DEFSTRUCT stname

An alternative approach is to enclose the DEFSTRUCTs that you want to embed between the following pair of PRAGMAs:

++PRAGMA EMBED_DEFSTRUCTS_BEGIN  

...

++PRAGMA EMBED_DEFSTRUCTS_END

In addition to the above explicit approach, implicit embedding will be activated for any DEFSTRUCT for which an instance variable occurs in either a .BINDSTRUCT statement or in a parameter list passed to a function that receives that parameter as a DYNSTRUCT. Both of these are described in further detail in the following sections.