Google
 

Trailing-Edge - PDP-10 Archives - aplsfv2 - aplsf.doc
There are 3 other files named aplsf.doc in the archive. Click here to see a list.


APLSF.DOC  -- Changes from V1C(315) to V2(435)
September 1979






























COPYRIGHT (C) 1976,1979 BY
DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.


THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND  COPIED
ONLY  IN  ACCORDANCE  WITH  THE  TERMS  OF  SUCH  LICENSE AND WITH THE
INCLUSION OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR  ANY  OTHER
COPIES  THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
OTHER PERSON.  NO TITLE TO AND OWNERSHIP OF  THE  SOFTWARE  IS  HEREBY
TRANSFERRED.

THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT  NOTICE
AND  SHOULD  NOT  BE  CONSTRUED  AS  A COMMITMENT BY DIGITAL EQUIPMENT
CORPORATION.

DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR  RELIABILITY  OF  ITS
SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
APLSF.DOC                                                       Page 2


APLSF.DOC  -- Changes from V1C(315) to V2(435)
September 1979






1.0  SUMMARY

APLSF is the implementation on the DECsystem-10 of  the  APL  language
with shared system functions and system variables.  It runs on a KI-10
or KL-10 processor  under  release  6.03A  or  later  of  the  TOPS-10
monitor,  and  requires  VMSER  on  the  KI-10.   It requires no other
software modules during execution, and  is  documented  in  the  APLSF
Programmer's   Reference  Manual  (DEC-10-LPLSA-A-D).   Version  2  is
documented in the TOPS-10/20 APLSF Language Manual (AA-H200A-TK).

Version 2 runs under release 6.03A or later of  the  TOPS-10  monitor.
It has been tested in-house under 6.03A and 7.00.

The reason for this release is to correct outstanding  bugs  in  APLSF
Version  1C  and  to  incorporate  several  functional enhancements as
described below.

APLSF Version 2 fully supersedes Version 1C and includes edits #316 to
#435.
APLSF.DOC                                                       Page 3


2.0  EXTERNAL CHANGES


     1.  The current setting of )MAXCOR is now saved across  a  )CALL,
         so  it is possible to return from a )CALL even if )MAXCOR had
         been expanded in the workspace before the )CALL.

     2.  There are now TTY mnemonics for diamond (.DM),  left  bracket
         (.LB),  left  tack (.LK), right bracket (.RB), and right tack
         (.RK).

     3.  Nonprinting elements of the atomic  vector  (.BXAV)  are  now
         displayed  as  squish  quad  (.SQ).   Note that this is not a
         valid character and cannot be typed to APL.

     4.  When doing APL output to an ASCII sequential  file  while  in
         TTY  mode,  the  default terminal type is now LA36 instead of
         2741.

     5.  Error numbers  are  now  catenated  to  the  front  of  error
         messages.   Also, the error line printed when an error occurs
         occasionally has fewer added spaces and the caret position is
         sometimes one position to the right of where it used to be.

     6.  It is now possible to open a PTY as an ASCII sequential file.
         As noted in the next item, lower case input will be converted
         to upper case just as with any ASCII  sequential  file.   The
         new  system  variable .BXTIMEOUT will be set if the input was
         not terminated with a line feed.

     7.  When doing TTY mode input from ASCII sequential files,  lower
         case characters are converted to uppercase (instead of random
         operators).

     8.  The omega function (.OM) has been removed from the version  2
         manual.   Omega  still  works  in  version  2 but will not be
         supported after version 2.  The .OM symbol has other proposed
         uses  in  the  APL  language and the optimizing effect of .OM
         will be implememted for reduce-iota-rho.

     9.  The definitions of  I-beams  (.IB)  have  been  moved  to  an
         appendix  of  the version 2 manual.  They are still supported
         in version 2 and  most  will  still  be  supported  in  later
         versions  for  compatibility with other vendors.  However, we
         strongly recommend that system  variables  and  functions  be
         used instead of I-beams.

    10.  Quote-quad (.QQ) or quad-del (.QD) input following .QQ or .QD
         output  precedes  the  input  string  with a string of blanks
         equal in length to the preceding output.  If  such  preceding
         output  was  longer  than  390  characters (the maximum input
         length), a LINE TOO LONG error occurs and  correct  input  is
         awaited.
APLSF.DOC                                                       Page 4


    11.  For  niladic  function  F  which  returns   no   value,   the
         expressions  "1;F", "1+F" and "F+1" give value errors since a
         value is needed by the  primitive  function  but  F  did  not
         return  one.  The expression "F;1" returns 1 to be consistent
         with the expression "F", which executes F but prints nothing.
         Note  that  the  ";"  function is a monadic output catenator,
         operating on  the  expression  to  its  right.   ";"  is  not
         intended to be a statement separator.




2.1  Functional Changes


     1.  The HIGH segment of APLSF has grown by about 11 pages.  Users
         should  monitor  their  memory use with version 2 and if they
         notice substantial performance loss due to  excessive  paging
         activity, they should ask their system administrator to raise
         the global physical page limit on the system.




2.2  Functional Additions

2.2.1  Error Trapping - The following system variables  and  functions
have  been  added  to  allow  program handling of error conditions and
other events.

     1.  .BXBREAK - This is a monadic function which causes  execution
         to  terminate,  suspending  the current function and entering
         immediate mode.  It prints its argument  before  breaking  to
         the terminal.

     2.  .BXERROR - This is a variable which is  set  by  APL  to  the
         error  message  for  the  last  error.  (It contains the text
         which is normally printed on the terminal.)

     3.  .BXSIGNAL - This is a dyadic function which signals an  error
         from the current function.  It causes the current function to
         terminate before generating the error.  Its right argument is
         either a valid APL error or a user defined error in the range
         500-999.  Its optional left argument is  the  message  to  be
         associated with the error.

     4.  .BXTRAP - This variable is similar to .BXLX.  It can  be  set
         to an expression which will be executed when an error occurs.

APLSF.DOC                                                       Page 5


2.2.2  Limiting Input Wait - The  following  two  variables  allow   a
program  to  limit  the  amount  of time a user is given to respond to
quote-quad or quad-del input.

     1.  .BXTIMELIMIT - The number of milliseconds to  wait  for  user
         input.  If 0, then no limit.  If -1, no waiting is done (only
         characters which were typed ahead are read).

     2.  .BXTIMEOUT - Flag indicating whether or not user timed out on
         last  input.   (This  flag is also used with PTYs to indicate
         whether or not last input was terminated with a LF).




2.2.3  New Character Arrays - The  following  system   variables   are
useful subsets of .BXAV.

     1.  .BXALPHA - The 27 letters, .LD-Z.

     2.  .BXALPHAU - The 27 underscored letters, [email protected].

     3.  .BXASCII - The 128 ASCII codes.   These  codes  are  sent  to
         files  as  is,  regardless  of  the  terminal type.  They are
         useful when doing graphics.

     4.  .BXCTRL - The 32 control characters, octal 0-37.

     5.  .BXNUM - The 10 digits, 0-9.




2.2.4  New File Functions -

     1.  .BXRENAME - This is a dyadic system function which  allows  a
         user to rename a file from within APL.  Its right argument is
         the channel associated with the file to be renamed.  Its left
         argument is the new filespec.

     2.  .BXAPPEND - This is a dyadic system function which  allows  a
         user  to  append data to /BU or /DA files.  Its left argument
         is the data item to be  appended  to  the  file.   Its  right
         argument  has  the  same  format  as the right argument to an
         output quad (.OQ)  and  specifies  how  the  data  is  to  be
         formatted in the file.

     3.  Two new file types, /AS* and /BS*, have been added  to  allow
         users  to append to ASCII and binary sequential files.  These
         file types are analogous to /IS*.

APLSF.DOC                                                       Page 6


3.0  KNOWN BUGS AND DEFICIENCIES

3.1  Deficiencies And Restrictions

The known deficiencies and restrictions in APLSF are:

     1.  The  caret  symbol  indicating  where  an  error  in  an  APL
         statement  was  first  detected is sometimes displayed in the
         wrong position.  With the introduction of error trapping  and
         .BXERROR, it is desirable to fix this.  We will attempt to do
         so in the future.  With this in mind, we recommend that users
         do not write programs which depend on the current positioning
         of the caret.

     2.  It is not possible to display the trace or stop vector  of  a
         function.  This is a restriction which will not be removed in
         the foreseeable future.

     3.  It is impossible to  enter  an  invalid  TTY  mnemonic  in  a
         character  string  when  using  a TTY terminal, just as it is
         impossible  to  enter  an  illegal  overstrike  from  an  APL
         terminal.  This is a permanent restriction.

     4.  Monadic domino uses an inordinate amount of core.  This is  a
         deficiency  due  to  the  algorithm  used, which does monadic
         domino by simulating a dyadic domino with a left argument  of
         the  identity  matrix.   Thus,  it  must  construct  a double
         precision identity matrix.




3.2  Outstanding Bugs

The known outstanding bugs in APLSF are:


     1.  Erasing a pendent or a suspended function can cause a  SYSTEM
         ERROR, depending on the state of the function when erased.

     2.  The compression of a zero-by-n matrix returns a length  error
         when  the  left argument is an n-element vector, but works if
         it is a scalar.

     3.  A niladic branch inside a multistatement line will fail  with
         a SYNTAX ERROR.

APLSF.DOC                                                       Page 7


4.0  INSTALLATION INSTRUCTIONS

4.1  Files Included on This Tape

There are four savesets on this tape:  DOCUMENTATION, BINARIES,  WSINT
and REL LIBRARIES.

The contents of DOCUMENTATION are:

     APLSF.DOC    This documentation file.

     APLSF.BWR    The beware file, containing DDT patches.

     APLSF.HLP    The HELP message to  respond  to  the  monitor  HELP
                  command.

     APLSF.RNH    The RUNOFF input for the HELP file.

     APLSF.RND    The RUNOFF input for the .DOC file.

The contents of BINARIES are:

     APLSF.EXE    The APLSF executable file.

     APLSF.MAP    The LINK MAP for APLSF.EXE.

     DAPLSF.EXE   The APLSF executable file with DDT loaded.

     GENSF.EXE    Generation program for APLSF.   See  below  for  its
                  use.

     BILING.1     The APLSF workspace which processes the APL  billing
                  file.

The contents of WSINT are:

     APLCNV.DOC   DOC file for the interchange package.

     TENTAP.EXE   Program to read/write interchange tapes.

     WSIN.APL     Workspace for conversion to APLSF.

     WSOUT.APL    Workspace for conversion from APLSF.

The contents of REL LIBRARIES are:

     APLS12.REL   REL Library for APLSF-10 v2.

     APLS12.LNK   LINK indirect file for APLSF-10 v2.

     APLS12.DEB   LINK/DDT indirect file for APLSF-10 v2.

     APLG12.REL   REL Library for GENSF-10 v2.

     APLG12.LNK   LINK indirect file for GENSF-10 v2.
APLSF.DOC                                                       Page 8


     APLW12.REL   REL Library for APLSF-10 v2 WSINT.

     APLW12.LNK   LINK indirect file for APLSF-10 v2 WSINT.

The following two files are not distributed.  They  are  generated  by
APLSF.

     APLHSF.APL   The APLSF HI file, if a HI message is desired.

     ACCTSF.APL   The APLSF accounting file.

The default is to put APLSF.EXE and GENSF.EXE on SYS:[1,4],  APLSF.HLP
on HLP:[2,5], and BILING.1 on APL:[5,31].  There is no need to put the
files from the REL LIBRARIES saveset on disk.



4.2  Changing the Default Installation Parameters

The default installation parameters are as follows:

     The installation name is DECSYSTEM-10 APLSF.
     Two PPN's which differ only in the project number do  not  belong
          to the same programmer.
     The automatic save facility, .BXAUS, is off.
     The structure used for the HI file and the library is APL:.
     The name of the accounting file is ACCTSF.APL.
     The directory used for the accounting file is [5,31].
     The directory used for the HI file and the library is [5,31].
     The default value  of  )MAXCOR  (and  thus  the  default  maximum
          workspace size) is 20K.
     The default file protection for permanent files  is  000  (system
          standard).
     The default file protection for library workspaces is 100.

If a change in the parameters is desired, put the .EXE file on  device
DSK:, run GENSF.EXE and answer the questions.  The program updates the
.EXE file.  Then rename and distribute  the  different  files  to  the
appropriate disk structures and directories.



4.3  Creating a HI Message

If you wish a HI message,  login  under  [1,2],  sign  on  APLSF,  and
execute the command

     )HI 'THIS IS MY HI MESSAGE'

Then sign off APLSF.  This generates APLHSF.APL on the  structure  and
the directory specified for the )HI file by GENSF.

The )HI message is truncated to 239 characters.  The error message "WS
NOT  FOUND"  means that the )HI file directory specified by GENSF does
not exist.
APLSF.DOC                                                       Page 9


5.0  INTERNAL CHANGES

5.1  Edits


EDIT #    SPR       REMARKS

316       27504     Fix CRLF  idle-character  handling:   use  correct
                    idle   character  for  TTYs  and  reset  the  idle
                    character control count properly.

317       27492     Fix  input  routine  for  integers  of   magnitude
                    greater than 2^27-1.

320       12872     Prevent  function  line  editor   from   accepting
                    negative line numbers (with random results).

321       Dev       Implement .BXRENAME.

322       Dev       Implement .BXAPPEND and /AS* file type.

323       Dev       Implement .SQ for all  nonprinting  characters  in
                    .BXAV.

324       Dev       Implement .BXASCII.

325       -----     Modify .BXMTP to simulate some of the  TAPOPs  not
                    in PA1050.  (-20 only)

326       -----     Correctly handle nonalphanumeric SIXBIT characters
                    in user-specified installation name.

327       12947     Check allocated space on  codestring  creation  to
                    avoid overwriting data.

330       -----     Change default PPN to be  user's  PPN  if  PPN  of
                    current workspace is [0,0].

331       -----     Change default APL output type for TTYs from  2741
                    to LA36.

332       Dev       Implement .BXTIMELIMIT and .BXTIMEOUT.

333       -----     Have TTY mode input from  ASCII  sequential  files
                    convert lower to upper case.

334       -----     Internal edit.

335       -----     Internal edit to  circumvent  TOPS-20  bug.   (-20
                    only)

336       -----     Withdrawn.

337       -----     Correctly print nonalphanumeric SIXBIT  characters
                    in user name.
APLSF.DOC                                                      Page 10


340       -----     Internal edit.

341       Dev       Implement .BXERROR.

342       -----     Fix LIB:  definitions on -20.  (LIB:   belongs  to
                    user, LIBn:  belongs to APL) (-20 only)

343       Dev       Implement .BXBREAK.

344       -----     Add TTY mnemonics for diamond (.DM), left  bracket
                    (.LB), left tack (.LK), right bracket (.RB), right
                    tack (.RK).

345       -----     Internal edit.

346       Dev       Don't set .BXERROR on EOF.

347       Dev       Append  .XQ  execute  error  message  to  previous
                    .BXERROR.

350       Dev       Implement .BXTRAP.

351       -----     For  LA36,  shift  out  after  MONITOR:    message
                    instead of before.

352       Dev       Implement .BXSIGNAL.

353       -----     When doing )SI, have .XQs show up as  .XQ  instead
                    of .EP.

354       Dev       Make .BXBREAK work inside .XQ.

355       -----     Internal edit.

356       -----     Fix shadowing of .BXERROR.

357       -----     Internal edit.

360       Dev       Allow .BXBREAK in APL-BASIC.

361       -----     Fix SIXBIT to NINEBIT of nonalphanumerics.

362       -----     .BXFLS, .BXENQ and .BXDEQ were  returning  invalid
                    error numbers on TOPS20.

363       -----     Make .BXBREAK clear )SI when done  from  protected
                    function.

364       Q00429    Prevent loop or system error when generating error
                    during subscripted catenate.

365       Q00377    Put setting  of  )MAXCOR  into  TMPCOR  so  it  is
                    possible  to  return  from a )CALL even if )MAXCOR
                    has been expanded.
APLSF.DOC                                                      Page 11


366       -----     Correctly save terminal type across )CALL.

367       -----     Internal edit.

370       -----     Correctly restore localized system variables  when
                    )LOADing  or  )COPYing  a  workspace  saved with a
                    different version of APL.

371       Q00448    If .BXPW is set to a width less than )TABS,  reset
                    )TABS to new width (as is done with )WIDTH).

372       -----     Prevent  workspace  damage  from  occurring   when
                    setting .BXTRAP to a system command.

373       -----     Allow .BXSIGNAL and .BXBREAK in immediate mode.

374       -----     Introduce the idea of system variables  which  can
                    be  set by the system but not the user (needed for
                    .BXTIMEOUT and .BXERROR).

375       Q03193    Fix .BXRENAME on channels 2 and 5.

376       Q00431    Fix  real  to  integer  conversion   of   negative
                    numbers.

377       Dev       Implement  /BS*  (sequential  append  for   binary
                    files).

400       Dev       Allow recursive error trapping.  Prevent  it  only
                    with  errors  which  occur  in  the  .BXTRAP  line
                    itself, not in any functions which are called.

401       -----     Internal edit.

402       -----     Remove 1030, ONTEL and TYCOM terminal  types  from
                    HELP  message.   They are still supported, but are
                    not documented.

403       -----     Fix printing of error line when error occurred  at
                    end of execute string.

404       -----     Take CRLF out from before ATTENTION SIGNALED error
                    message  so  error number appears on the same line
                    as message.

405       -----     Internal edit.

406       -----     Fix problem with printing real matrices  (e.g.   2
                    2.RO.FL/.IO0).

407       -----     Make .BXGAG work on TOPS20.

410       -----     Have  .NT  print  @T  in  escape,  and   turn   on
                    .LK,.DM,.LB,.RB,.RK output mnemonics.
APLSF.DOC                                                      Page 12


411       -----     Add local version numbers.

412       -----     Make product version number available to GENSF and
                    keep MAKILB from loosing it.

413       -----     Allow inner products with right function = and .NE
                    to compare alpha's with numerics (i.e.  'ABC'.=1 0
                    1)

414       QAR561    Fix edit 370 to set ASVSYMTAB  on  )CLEAR  and  to
                    RELWS WS with version = 0.

415       QA3420    Fix edit 367 to contract core on  )LOAD:   problem
                    only  occurs  on  the  -10 when loading smaller WS
                    after larger.

416       QA3266    Give LINE TOO LONG error if INBUF  would  overflow
                    when putting in leading blanks on .QQ or .QD input
                    following .QQ or .QD output.

417       QAR560    Prevent  INCHAR  from  discarding  any   character
                    except a linefeed following a carriage-return.

420       -----     When the  quad-error  data  entry  gets  allocated
                    after  a  partially-built data entry that gtcore()
                    was trying to get core for when a wsfull  occured,
                    move the quad-error data entry above the partially
                    built data entry and update globals  as  necessary
                    prevent the workspace from being trashed.

421       Q00546    Correct function-line wraparound during output  of
                    a  numeric vector (broken during implementation of
                    .BXERROR).

422       -----     Prevent system errors  during  evaluation  of  the
                    expression F+1) where F is a niladic function that
                    does not return a value.

423       Q00511    Correct  two  more  problems  with   function-line
                    wrap-around.

424       -----     Make   DGETSCI   accept   double   precision    -1
                    (=533400,,0 0,,0) as integer -1.

425       Q00518    Make .BXTIMELIMIT set < -1 a DOMAIN ERROR.

426       QAR547    Fix dyadic .BXSIGNAL to correctly ignore left  arg
                    if right arg is system error number.

427       -----     Be able to load release 4 UDDT,  which  has  pages
                    below 770.

430       QAR612    Change the wording in GENSF (XLIMCOR) to  ask  for
                    the default setting of )MAXCOR, not an upper bound
                    on memory.
APLSF.DOC                                                      Page 13


431       QAR613    Allow -20 to specify LIBn:  structure (default  is
                    PS:).

432       -----     Fix the dqren() interface to cmdsyn()  to  prevent
                    wsid-filename default, accidentally deleted files,
                    lost default file extension, and infinite loops.

433       QAR564    INLINE loops when .bxTIMEOUT = 1  on  PTY  because
                    FILINP didn't reset TIMOUT (DEVTYP UUO is CALLI 53
                    octal not decimal).

434       -----     Create PATCH.REL to define PATCH:  area to be used
                    instead of PAT..  (which could get wiped out by an
                    exapanding WS).

435       QA3587    Fix typos in FS on -10 in /BS*.  Make STRTIO leave
                    BLKNUM  and  INDEX = 0 so WRTSETUP will do read of
                    last block which write goes into on append.
APLSF.DOC                                                      Page 14


6.0  SUGGESTIONS

6.1  Continuing a detached APL job

In the event of a line drop or system crash, a user's job  may  become
detached.  After reestablishing a connection with the system, the user
should check to see if his/her job is still there.  If  so,  the  user
should reattach to the job using the ATTACH command.  Then, to restore
the job to its previous state, the user should type CONTINUE.  If  the
user  instead  types  R APLSF, a new version of APL will be loaded and
the job's previous core image will be destroyed, along with the user's
workspace.



[End of APLSF.DOC]


[APLSF.OLD is appended as an integral part of APLSF.DOC]
APLSF.DOC                                                      Page 15


APLSF.OLD -- Changes from V1B(301) to V1C(315)
February 1979






























COPYRIGHT (C) 1976,1979 BY
DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.


THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND  COPIED
ONLY  IN  ACCORDANCE  WITH  THE  TERMS  OF  SUCH  LICENSE AND WITH THE
INCLUSION OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR  ANY  OTHER
COPIES  THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
OTHER PERSON.  NO TITLE TO AND OWNERSHIP OF  THE  SOFTWARE  IS  HEREBY
TRANSFERRED.

THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT  NOTICE
AND  SHOULD  NOT  BE  CONSTRUED  AS  A COMMITMENT BY DIGITAL EQUIPMENT
CORPORATION.

DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR  RELIABILITY  OF  ITS
SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
APLSF.OLD                                                      Page 16


APLSF.OLD -- Changes from V1B(301) to V1C(315)
February 1979



1.0  SUMMARY

APLSF is the implementation on the DECsystem-10 of  the  APL  language
with shared system functions and system variables.  It runs on a KI-10
or KL-10 processor under release 6.03 or later of the TOPS-10 monitor,
and  requires  VMSER  on  the  KI-10.   It  requires no other software
modules during execution, and is documented in the APLSF  Programmer's
Reference Manual (DEC-10-LPLSA-A-D).

The reason for this release is to correct outstanding  bugs  in  APLSF
Version 1B.

APLSF Version 1C runs under release  6.03  or  later  of  the  TOPS-10
monitor.  It has been tested in-house under 6.03A and 7.01.

APLSF Version 1C fully supersedes Version 1B and includes  edits  #302
to #315.
APLSF.OLD                                                      Page 17


2.0  EXTERNAL CHANGES


2.1  Functional Changes


     1.  GENSF can now be run  from  any  directory  instead  of  only
         [1,2].

     2.  Dyadic ! now gives results over a wider  range  of  arguments
         (e.g.   12!40).   It  also  computes  results when the second
         argument is less than zero, instead of returning 0 (it  still
         returns  zero  when  the  second  argument  is  less than the
         first).  Also, monadic ! not only gives results for  negative
         (non-integral) arguments, but the results are now correct.

     3.  When character strings containing embedded CRLFs are printed,
         trailing blanks before the carriage returns are removed.

     4.  Terminal characteristics are now restored appropriately  (the
         same way they are set on entry) when REENTERing or CONTinuing
         from CTRL/C.



2.2  Functional Additions


     None.
APLSF.OLD                                                      Page 18


3.0  KNOWN BUGS AND DEFICIENCIES

3.1  Deficiencies and Restrictions

The known deficiencies and restrictions in APLSF are:

     1.  The caret symbol  indicating  where  an  error  in  an  APLSF
         statement  was  first detected is sometimes displayed too far
         to the left.  This is a design problem with the  interpreter,
         and there are no plans to fix it in the immediate future.

     2.  It is not possible to display the trace or stop vector  of  a
         function.  This is a restriction which will not be removed in
         the foreseeable future.

     3.  It is impossible to  enter  an  invalid  TTY  mnemonic  in  a
         character  string  when  using  a TTY terminal, just as it is
         impossible  to  enter  an  illegal  overstrike  from  an  APL
         terminal.  This is a permanent restriction.

     4.  Monadic domino uses an inordinate amount of core.  This is  a
         deficiency  due  to  the  algorithm  used, which does monadic
         domino by simulating a dyadic domino with a left argument  of
         the  identity  matrix.   Thus,  it  must  construct  a double
         precision identity matrix.  We will attempt to  correct  this
         deficiency soon.


3.2  Outstanding Bugs

The known outstanding bugs in APLSF are:


     1.  Erasing a pendent or a suspended function can cause a  SYSTEM
         ERROR, depending on the state of the function when erased.

     2.  The compression of a zero-by-n matrix returns a length  error
         when  the  left argument is an n-element vector, but works if
         it is a scalar.

     3.  A niladic branch inside a multistatement line will fail  with
         a SYNTAX ERROR.

     4.  If F is a niladic function which does not return an  explicit
         result, the construct ';F;' will give a VALUE ERROR.

     5.  The random link variable .BXRL cannot  be  set  equal  to  or
         greater than 2^27.  This will be fixed in version 2.

APLSF.OLD                                                      Page 19


4.0  INSTALLATION INSTRUCTIONS


4.1  Files Included on this Tape

The APLSF system is composed of the following files:

     APLSF.DOC    This documentation file.

     APLSF.EXE    The APLSF executable file.

     GENSF.EXE    Generation program for APLSF.   See  below  for  its
                  use.

     APLSF.RNH    The HELP message to respond to the monitor HELP
     APLSF.HLP    command.  Put APLSF.HLP on HLP:[2,5].


     BILING.1     The APLSF workspace which processes the APL  billing
                  file.  Put it on the APL library area.

The following two files are not distributed.  They  are  generated  by
APLSF.

     APLHSF.APL   The APLSF HI file, if a HI message is desired.

     ACCTSF.APL   The APLSF accounting file.

The default is to put APLSF.EXE and GENSF.EXE on SYS:[1,4],  APLSF.HLP
on HLP:[2,5], and BILING.1 on APL:[5,31].


4.2  Changing the Default Installation Parameters

The default installation parameters are as follows:

     The installation name is DECsystem-10 APLSF.
     Two PPN's which differ only in the project number do  not  belong
          to the same programmer.
     The automatic save facility, .BXAUS, is off.
     The name of the accounting file is ACCTSF.APL.
     The PPN used for the accounting file is [5,31].
     The PPN used for the HI file and the library is [5,31].
     The default value of )CORMAX is 20K (thus,  the  default  maximum
          workspace size is 20K).
     The structure used for the HI file and the library is APL:.
     The default file protection for permanent files  is  000  (system
          standard).
     The default file protection for library workspaces is 100.

If a change in the parameters is desired, put the .EXE file on  device
DSK:, run GENSF.EXE and answer the questions.  The program updates the
EXE file.  Then rename and  distribute  the  different  files  to  the
appropriate disk structures and PPNs.
APLSF.OLD                                                      Page 20


4.3  Creating a HI Message

If you wish a HI message,  login  under  [1,2],  sign  on  APLSF,  and
execute the command

     )HI 'THIS IS MY HI MESSAGE'

Then sign off APLSF.
APLSF.OLD                                                      Page 21


5.0  INTERNAL CHANGES

5.1  Edits

EDIT #    SPR       REMARKS

302       QAR       Fix E  format  to  scale  mantissa  appropriately.
                    (E-format  of  1.0  was  printing 10E-1 instead of
                    1E0.)

303       QAR       Rewrite monadic and dyadic !.  Dyadic ! now  gives
                    results for a wider range of arguments.  Also make
                    them more accurate with non-integral arguments.

304       12480     Function editing was starting on  line  [0]  after
                    doing a single line display of the function.

305       12486     Suppress  trailing  blanks  in  character  vectors
                    containing embedded carriage-control characters.

306       -----     Internal edit.

307       -----     Reset the terminal characteristics to  proper  APL
                    characteristics  when  re-entering  or  continuing
                    from CTRL/C.

310       -----     Reinstate )PASSWORD command.

311       -----     Internal edit.

312       -----     Version  1B  didn't  read   TMPCOR   (e.g.    when
                    returning from a )CALL or )RUN).  Fix it.

313       -----     Version 1B didn't report KCS in the billing  file.
                    Fix it.

314       -----     Correct upper-lower case handling  when  resetting
                    terminal characteristics.

315       12787     Fix  AFUZZ   comparison   in   integer   to   real
                    conversion, broken by edit 224.



[End of APLSF.OLD]