1 Data General Corporation Software Release Notice RDOS DG/L REVISION 3.20 Model Number 3716 July 1986 085-000056-05 This release notice provides specific product information which is not supplied in the software documentation. Please read all sections carefully. 1 Product Description . . . . . . . . . . . . . 2 2 Prerequisites . . . . . . . . . . . . . . . 2 3 Enhancements . . . . . . . . . . . . . . . . 2 4 Tips and Techniques . . . . . . . . . . . . . 2 5 Documentation Changes and Additions . . . . . . . . 5 6 Product Organization . . . . . . . . . . . . . 5 7 Installation Instructions . . . . . . . . . . . 6 __________________________________________________________________ Copyright (C) Data General Corporation 1978, 1979, 1980, 1981, 1982 1985, 1986 All Rights Reserved Printed in the United States of America Licensed Material--Property of Data General Corporation 2 1 Product Description With regard to structure and operating procedures, Revision 3.20 of RDOS DG/L is the same as Revision 3.10. A number of error corrections have been made. These will be discussed in some detail in the 'Enhancements' section. 2 Prerequisites RDOS Revision 7.50 or later. 3 Enhancements * The routine DUCLK has been corrected. Previously, it was not loading the correct address for the take-over routine. * TOVRELEASE now works correctly. * FFALLOCATE previously would work incorrectly when a block of size 1 was allocated. This has been corrected. * The built-in function SGN has been corrected. * A problem with the built-in function SHIFT has been corrected. When attempting to shift with a shift quantitiy of -2, an error would occur. * The implementation of array subscript checking has been changed due to a number of problems with the old method. * Numerous complaints of "DGL COMPILER GENERATES BAD CODE" have been dealt with. In various situations, the compiler would lose track of an accumulator or a stack variable causing bad code to be generated. All reported cases have been corrected. 4 Tips and Techniques * The formal parameter COUNT of the routine MTDIO requires an argument. The Runtime Manual states incorrectly that it does not. * When conversions are done to bit and character strings, temporary areas are allocated. If the size of the temporary area is 4 Tips and Techniques 3 less than the size of the result, information may be lost. The default size (32) of the temps may be changed by modifying the EXTERNAL INTEGER variables STRSIZE and BITSIZE which define the default temporary size for character and bit strings respectively. They can be modified from your DG/L program by the following EXTERNAL INTEGER STRSIZE, BITSIZE; STRSIZE := BITSIZE := * The result of arithmetic operations performed on bit and character strings is stored in a temporary area the size of which is set by BITSIZE and STRSIZE. If you set BITSIZE accordingly you can use BIT strings to do arithmetic to whatever precision you like. If you do not change BITSIZE, the default precision will be 32 bits. * If you define a GLOBAL array, string or bit string variable in a procedure or cluster that is not the main program, and then reference it from a procedure that is called before the procedure in which it is defined, the descriptor will not be properly initialized. If you must access a non-locally defined GLOBAL variable, do it in a procedure that is not called until after the defining procedure. * If you use TRCONSOLE or TRDOPERATOR, you must explicitly call SYSRETURN (or ERETURN) to return to the CLI or else the program may hang if all of your tasks are terminated. * Some DG/L routines disable scheduling for internal purposes and then restore the state of whether scheduling was turned on or not. Users who disable scheduling might get unexpected results if not using either: (1) The macros .SINGL and .MULTI supplied in DGLMACS.SR, or (2) The DG/L callable routines SINGLETASK, DRESCHEDULE, MULTITASK and ERESHCEDULE. * Because of operating system differences, multitasking may not run exactly the same on AOS/VS, AOS and RDOS. When writing a program on one system that is to be run on a different system, be sure to consult the documentation for both systems. * The names of certain builtin functions such as ADDRESS, BYTE, SUBSTR, LENGTH and other generic functions should not be redifined by the user. A list of names to avoid is SIN ASN HSN COS ACS HCS TAN ATN HTN EXP LGE LGD SQR IABS .JAB ABS DABS SIG SGN ADDRESS BYTE .BYTE .IBYTE .UBYTE 4 Tips and Techniques 4 .IFMT .IFLE .IWRT .TFLE .TFOP .TFMT .TWRT .FWRI .FWRJ .FWRR .FWRD .FWRS .FWRP .FWRB .FWRU .URDI .URDJ .URDR .URDD .URDS .URDP URDB .URDU .FOPI .FOPJ .FOPR .FOPD .FOPS .FOPP FOPB .FOPU CVT .JDB ATT PWR FLR MAX MIN MOD HBOUND LBOUND SHIFT .JSHIFT ROTATE .SADDR LENGTH GTIME LINEREAD STIME LINEWRITE BYTEREAD CLASSIFY NODEREAD NODEWRITE FLUSH NODESIZE WORDREAD WORDWRITE FETCH STASH CHAIN CLOSE OPEN SETCURRENT HASHREAD HASHWRITE BUFFER ALLOCATE FREE ACCESS APPEND REM UMUL INDEX DELETE ERROR POSITION FILEPOSITION FILESIZE SIZE MEMORY COMARG RENAME .SNGL .DBLE .STINT .STREAL .STDBL .STPTR .INBL .STBOOL .INTST .RLST .DBLST .PTRST .BLST .JST .STJ .JIN .INJ .JRL .RLJ .JDB .DBJ .JBL .BLJ .UINDEX TBIT SBIT CBIT .USTR .UBL .UADDR .INU .JU .PTU .UIN .UJ .UPT .STU .BLU READSTRING WRITESTRING ERRTRAP ERRINTERCEPT * The /Z switch does not work for Revision 3.20. * In order to use BASED STRING arrays, or BASED BIT arrays, the user must set the array of specifiers manually. In the 16 bit environments, each specifier takes 3 words; in the 32 bit environment, each specifier takes 4 words - the byte or word pointer is two words instead of one. * The user may get compiler stack overflows on complicated expressions. If your installation gets a stack overflow in a particular phase, you can increase the amount of memory given to the stack for that phase by using the octal file editor (SEDIT for RDOS). For phases 1-9 (phase 0 doesn't use cache memory) the loca- tions to modify are: DG/L compiler that runs on RODS: 20 -- .PHASE 21 -- NUMCORE 22 -- .UMEM 23 -- .VMIN For the RDOS compiler, NUMCORE tells the compiler how much space to reserve for the stack. To give the program more stack, increase this value in 400R8 increments. Note that changing this value will probably increase your compilation time (you're cutting down on the compiler's memory buffers). It is suggested that you change values as a last resort. 4 Tips and Techniques 5 * When linking on an ECLIPSE machine using a NOVA RDOS system library (SYS.LB), you may get link errors. Use the appropriate NOVA SYS.LB supplied on the DG/L release tape to remedy this. The SYS.LBs that correspond to the particular RDOS system are as follows: USYS.LB for unmapped NOVA NSYS.LB for mapped NOVA 3 & 4 MSYS.LB for mapped NOVA 830 & 840 5 Documentation Changes and Additions See the documentation file DGLDOC for documentation changes and additions. 6 Product Organization SOFTWARE Part Number File Fmt Names Magnetic and Cartridge Tape Model 3716 M/H/C 071-000254-05 0 Dump DGL.SV DGL1.SV DGL2.SV DGL3.SV DGL3N.SV DGL4E.SV DGL4N.SV DGL6E.SV Compiler DGL6N.SV DGL7E.SV DGL7N.SV DGL8E.SV DGL8N.SV DGL9.SV DGL.ER General parameter files DGLMACS.SR DGLSYM.SR DGLPARAM.SR DG/L Documentation DGLDOC. 6 Product Organization 6 RDOS NOVA runtime DGLNTASK.LB DGLNMATH.LB DGLNOPSYS.LB DGLNENV.LB DGLNINIT.LB USYS.LB NSYS.LB MSYS.LB DGLIBN DGLNMACPS.MC RDOS ECLIPSE runtime DGLETASK.LB DGLEMATH.LB DGLEOPSYS.LB DGLEENV.LB DGLEINIT.LB DGLIBE DGLEMACPS.MC 7 Installation Instructions To install Revision 3.20 of DG/L, load the contents of file 0 of the product tape into the directory that is to contain Revision 3.20 of DG/L. If you want to use the compiler from a directory other than the one into which you load it, you must be sure to create links from your working directory to each of the DGL-.SV files in the compiler directory. --End of Release Notice--