Deborah Norberg (IBM) came to talk about the new "binder", a replacement for the time-honored linkage editor and loader.
The binder does not produce load modules; it produces something called a "program object". Program objects can be loaded and executed only by more recent versions of MVS. IBM does not document the format of a program object, and neither will they document what an IEBCOPY unloaded PDS looks like if it contains program objects. They are being really hardnosed about this.
While program objects can be stored on PDSE datasets, you cannot store both program objects and data on a PDSE. You are allowed to read a PDSE program object, but you cannot write to it. This means that homegrown programs like SUPERZAP won't work anymore.
But IBM is also providing a binder API, so that external programs that want to make changes can do it -- but only through the binder. Also IBM has committed to providing a "transportable format" for program objects, sort of an external view. The binder will be able to rebuild a program object given a "transportable" image.
The binder does away with a host of old linkage editor limitations. There are no more limitations on number of symbols, symbol lengths, and buffer sizes. Performance is better, way better, because the binder does away with the linkage editor spill file. Binder does require lots of memory though, and one to two megabytes is recommended (four is not out of line).
Program objects take up a multiple of 4k on disk. They are built for fast loading and relocation. One of the tradeoffs is that DS (Define Storage) assembly instructions take up real disk space in the program object (they were compressed out in the old load modules).
The new loader in ESA maps program objects using Data-In-Virtual (or DIV). Programs are either page-faulted into memory or bulk paged in at load time, depending on the size of the program object. If the program is less than 96k bytes, the program is bulk-paged in, otherwise the system loads 16 pages per page fault. During page-in of a program object, the loader performs adcon resolution via a page-fault exit.
For some unobvious reason, program objects still support overlays. I thought these were dead!
SYS1.LPALIB, SYS1.NUCLEUS and SYS1.SVCLIB are not supported for program objects (the new loader isn't part of NIP). SYS1.LINKLIB and its concatenations are supported -- what a surprise.