******************************************************************************* SHARP APL for UNIX README history File Copyright 2000 Soliton Associates ******************************************************************************* Company Information =================== Soliton Associates Limited 44 Victoria Street Suite 2100 Toronto, Ontario, Canada M5C 1Y2 Business Phone: 416-364-9355 FAX Phone: 416-364-6159 Technical Support / Customer Support ==================================== INTERNET: support@Soliton.com ******************************************************************************* SHARP APL for UNIX version 4.6.2 README Excerpts Copyright 1996 Soliton Associates March 1996 ******************************************************************************* - SAX Fonts If you have installed a SAX APL font with 'national use' support, display of the atomic vector shows some non-printable characters with a tiny number. These numbers are intended to indicate the particular NU character in that position. - Suggestions: When writing multi-user on-line applications, consider the following to acheive a reasonably good compromise between security and performance: * The application uses a single shared database file for permanent storage of user data. * The application creates an unshared temporary file at the start of each new interactive user session, for use as working storage during the life of the session, and deletes the temporary file at the end of the session. * SAX runs with -Yfsync=0. * The application uses the "unix.filesync" intrinsic to synchronize the database file at the end of each database transaction. This type of file synchronization could not result in loss of APL or UNIX file integrity, or APL or UNIX data integrity of the database file unless some vital part of the UNIX system malfunctions during the transaction and before the explicit fsync(). Synchronizing the file at the end of a transaction gives data security that is essentially as good as synchronizing after each file operation. ******************************************************************************* SHARP APL for UNIX version 4.7.1 README Excerpts Copyright 1996 Soliton Associates January 1997 ******************************************************************************* - QUAD-run Password Checking The architecture of QUAD-run is such that password checking is processed as follows: Type of QUAD-run Who Checks local machine, same user APL local machine, other user NSVP remote machine, same user NSVP remote machine, other user NSVP - apl-8 Keyword signifier SHARP APL for UNIX apl-8 has been changed to accept a lone escape character as the APL character QUAD. The output still translates to #quad. For example: Input Output #ai #quad ai #fd #quad fd ******************************************************************************* SHARP APL for UNIX version 4.8.0 README Excerpts Copyright 1997 Soliton Associates July 1997 ******************************************************************************* - Shared Variable Processor <2 QUAD-ws 3> is enhanced to return the (file) descriptor number for the shared variable processor. Element is used for this. This element is used as the port number field in SHARP APL for MVS, but was previously unused in SHARP APL for UNIX. <(2 QUAD-ws 3)[QUAD-io +9]> = 1 when your SAX session has not signed on to the SVP = fd file descriptor number for SVP operation after signon The intrinsic function sunix.select_1 may be used, with this file descriptor, to wait for SVP events and other file-based events simultaneously. - NSVP NSVP permits transfer of packages containing SAX variables with underbar (_) in the name to SHARP APL for MVS. On the MVS side, displays variable names with underbars, leaves the variable in the workspace visible with <)var>, but otherwise inaccessible. No changes will be made in SHARP APL for UNIX to address this. A future version of SHARP APL for MVS will deal with this. In the meantime, try to avoid transfering these objects. - Intrinsic Functions A number of new intrinsics have been added to the sunix group: Shared memory intrinsics create and manage shared memory segments. These provide a mechanism for a data manager and a client to move data between shared memory and an APL work- space. From more information on these intrinsics, see the document shmem.txt in this directory. Intrinsics for stat(), fstat(), and lstat() have been added. There is a constant, INTSIZEOFSTAT , which returns the proper dimension of the integer array: 'sunix.stat' IFbind 'stat' statbuf (constant 'INTSIZEOFSTAT') 2 stat 'filename' statbuf The unix.path intrinsic is bound to 'path' in the workspace <1 unix>. It takes a single argument: a character list or a character item representing a file name in SHARP APL format. This is the same format that is used in the left argument to , , , , and . It returns, as a character list, the full UNIX pathname of the file. The file does not have to be tied or even exist. The only requirement is that the name be properly formed. It is now possible to write a simple cover function to convert a file name to file tie number. For example, <(QUAD-io -{swap}QUAD-paths {iota}< path filename { QUAD-nums> - AP124 AP124 now supports the "end" key (shift+F6). When you hit the "end" key while your cursor is in the modifiable field, the cursor moves to one beyond the last non-blank character in the field. When the field is full (of non-blanks), the cursor moves to the end position of the field where the cursor is currently located. If the cursor is outside any defined fields, or in a non-modifiable field, AP124 beeps and there is no cursor movement. This currently works with TERM=ansi, xterm, and aixterm. ******************************************************************************* SHARP APL for UNIX version 4.9.0 README Excerpts Copyright 1998 Soliton Associates July 1998 ******************************************************************************* - Intrinsic Functions IFs are declared in .saxif files. They are read in at run-time by the interpreter in the following order: $HOME/.saxif (highest precedence) $SAXCNF/.saxif (2nd highest) $SAXDIR/etc/.saxif (lowest) The first declaration of a particular function will be bound with the interpreter and stays in effect. Any subsequent re-declaration, either in the same file or other .saxif files will be ignored. This feature allows a user to override system wide declarations made, e.g. in $SAXDIR/etc/.saxif, by redeclaring an IF in $HOME/.saxif.