It works if I remove the RELEASE. I can have mixed LIBRARY statements within the program with or without RELEASE but the program itself can't have a RELEASE.
Pete- I am not clear on the conditions wherein 4.18 BR will or will not accept RELEASE. Can you provide an example that refers to Program-A, Program-B, etc so I know what you mean by "the program"? First say if I have a program-A call program-B with RELEASE and program-B calls a library.... ( or whatever )
This way I can understand what is failing to run with RELEASE.
As I understand it, any library should be callable with RELEASE at any time, but it should not be callable with RELEASE while it is still in memory from a non-RELEASE call. There is no restriction on it's calls to other libraries that I know of.
A similar set of rules applies to NOFILES. NOFILES allows us to do make any program into a library like Pete has described without fear of file conflicts. NOFILES causes the library to to run with it's own set of file channels as if it were running in another session.
Gabriel is correct about the purposes of RELEASE. Originally it was to allow any number of snippets to be run in one area of memory. But nowadays the main use of RELEASE is to clear the variables upon each call to it.