LEICHTER-JERRY@YALE.ARPA (04/24/87)
I've been called to task for a gross over-simplification in a note I wrote on this topic yesterday, which gives entirely the wrong impression about what the various higher-level language OTS's support. In general, the HLL OTS's are AT LEAST AST-reentrant. (Ada's OTS is fully reentrant, as it has to be to support the ADA tasking environment. Pieces of the VMS RTL are too.) The main restrictions are in the I/O packages. To return to the language mentioned in the question that I was replying to, FORTRAN I/O can be used at both AST and non-AST level, but you can't access a given channel at both levels at the same time. You CAN access distinct channels. Most of the FORTRAN procedures - certainly all the things like the math procedures - are reentrant. It is quite possible to write AST routines and AST-driven programs in FORTRAN and have them work. The Guide to Creating Modular Procedures has 10 pages or so of text in its "Writing AST Reentrant Code" chapter, and there is related information else- where in the book; plus, of course, the individual languages have documenta- tion of their own procedures and restrictions. No note in this forum can possibly provide this much detail, nor is any quick one-line rule going to keep you safe - unless of course it's some sledge-hammer approach like "Don't use AST's!" -- Jerry -------