home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 8 / FreshFishVol8-CD2.bin / bbs / dev / oberon-a-1.4ß.lha / Oberon-A / Docs / Changes.doc < prev    next >
Text File  |  1994-09-03  |  12KB  |  380 lines

  1.  
  2.      $RCSfile: Changes.doc $
  3.   Description: Changes made to Oberon-A
  4.  
  5.    Created by: fjc (Frank Copeland)
  6.     $Revision: 1.6 $
  7.       $Author: fjc $
  8.         $Date: 1994/08/08 21:07:40 $
  9.   ________________________________________________________________________
  10.  
  11.  
  12.   Changes made in release 1.4 update 1
  13.   ====================================
  14.  
  15.   Bugs fixed
  16.   ----------
  17.  
  18.   OC
  19.     * Bug in processing of formal parameters caused infinite loops if two
  20.       parameters had the same name. [C.Ziegler]
  21.  
  22.   Improvements made
  23.   -----------------
  24.  
  25.   OC
  26.     * Checks for the existence of directories given in SYM and DST
  27.       arguments.
  28.  
  29.   Revision control
  30.     * Uses Johan Fereirra's OBumpRev to manage revision numbers for the
  31.       compiler and utilities.
  32.  
  33.   Oberon-A Library modules
  34.     * Implemented module Kernel to replace functions currently in module
  35.       SYSTEM that will be removed in Release 1.5.
  36.     * Added ObjectExists() and DirExists() to module DosUtil.
  37.     * Changed module ExecUtil to use functions from module Kernel.
  38.     * Created module WbConsole to independantly handle creating a stdio
  39.       environment for Workbench programs.
  40.     * Changed module StdIO to use module WbConsole.
  41.  
  42.   Changes made in release 1.4
  43.   ===========================
  44.  
  45.   Bugs fixed
  46.   ----------
  47.  
  48.   OC
  49.     * The register involved in a LIBCALL parameter was being reserved too
  50.       soon, causing register allocation errors in some cases where the
  51.       actual parameters were expressions involving function procedures,
  52.       or long integer or real arithmetic. [C.Ziegeler]
  53.     * Fixing the above bug uncovered another, in which the parameter
  54.       register was being freed before it was reserved. This only happened
  55.       when the actual parameter was a record field referenced through a
  56.       pointer, or an array element. [fjc]
  57.     * It was possible to dereference a function procedure that returned a
  58.       pointer type as if it were a pointer variable, with unpredictable
  59.       results. [C.Ziegeler]
  60.     * There was no check that forward declared procedures were actually
  61.       implemented. The linker would have spotted this anyway. [fjc]
  62.     * The stack offsets of procedure parameters were being written to the
  63.       symbol file. The $L compiler switch changed these offsets, making
  64.       the symbol file invalid. [fjc]
  65.     * The column reported for error locations was incorrect if there were
  66.       TAB characters in the line. [J.Ferreira]
  67.     * Direct comparisons with TRUE gave incorrect results in some
  68.       circumstances (specifically, when dealing with boolean return
  69.       values from dos.library functions). [E.Dewald]
  70.  
  71.   Intuition.mod
  72.     * menuNull was mis-spelled nenuNull.
  73.  
  74.   Exec.mod
  75.     * paXXX flags declared incorrectly. [J.Ferreira]
  76.  
  77.   Improvements made
  78.   -----------------
  79.  
  80.   OEL
  81.     * Oberon-A Error Lister, contributed by Johan Ferreira.
  82.  
  83.   Module SYSTEM
  84.     * The parameters to SYSTEM.SETCLEANUP are now a single assignable
  85.       procedure. There is no need for a variable to hold the old cleanup
  86.       procedure, or a return code parameter.
  87.     * Added SYSTEM.RC to return the current return code.
  88.     * SYSTEM.NEW now has an optional parameter for passing memory
  89.       requirements.
  90.     * Extended the range of types that can be used with bit operations
  91.       (SYSTEM.LSH, etc.)
  92.  
  93.   All
  94.     * Changed to use new SYSTEM.SETCLEANUP format.
  95.  
  96.   OC
  97.     * Changed the $Z switch from a module switch to a global switch.
  98.     * No longer generates multiple error reports at the same location.
  99.     * Implemented foreign procedures.
  100.     * Implemented the $A compiler switch.
  101.     * SYSTEM.LONGWORD variables can now be assigned any value whose type
  102.       <= 32 bits. The same for SYSTEM.WORD when the type is <= 16 bits.
  103.       Integers are sign-extended, all other values are zero-extended.
  104.     * Implemented NIL checking when dereferencing pointers, calling
  105.       procedures from variables and executing type guards with pointers.
  106.     * Changed register parameter declarations to use square brackets
  107.       instead of braces.
  108.     * Implemented stack checking.
  109.     * Added TEXTERR command line option.
  110.     * Changed to output binary error file by default.
  111.     * Implemented $s compiler switch.
  112.     * Changed error numbers.
  113.  
  114.   FPE
  115.     * arp.library is now only used if dos.library < V37 or asl.library
  116.       cannot be opened.
  117.  
  118.   OL
  119.     * Added options to allow a linker to be called directly.
  120.  
  121.   OD
  122.     * Definition file utility created.
  123.  
  124.   Amiga Interface
  125.     * Updated to Release 40.15 (3.1).
  126.       - Added new declarations to most existing modules.
  127.       - Created new modules:
  128.         - AmigaGuide.mod
  129.         - Bullet.mod
  130.         - CardRes.mod
  131.         - CDDevice.mod
  132.         - Datatypes.mod
  133.         - Gadgets.mod
  134.         - Locale.mod
  135.         - LowLevel.mod
  136.         - NonVolatile.mod
  137.         - Prefs.mod
  138.         - RealTime.mod
  139.     * Changed modules to use foreign code interface:
  140.       - BoopsiUtil.mod
  141.       - RexxUtil.mod
  142.       - Added the related object files (Classface.obj and rexxvars.o) to
  143.         OberonSys.lib. Note that this is a temporary solution until a
  144.         more complete foreign code interface is implemented.
  145.     * Retained Commodore's comments in the source code.
  146.  
  147.   Third-party library interface modules:
  148.     * New modules contributed by various people:
  149.       - GuiEnv.mod
  150.       - GuiEnvSupport.mod
  151.       - ReqTools.mod
  152.       - TextFieldGadget.mod
  153.       - UMS.mod
  154.  
  155.   Dos.mod
  156.     * Created SetVBufPtr() as an alias for SetVBuf(), to be used to pass
  157.       NIL buffers.
  158.  
  159.   Intuition.mod
  160.     * Changed 'args' parameters for EasyRequest functions to
  161.       SYS.LONGWORD.
  162.  
  163.   Editor support
  164.     * Macros and ARexx scripts to allow the compiler, linker, etc. to be
  165.       called from within an editor. The only supported editor at the
  166.       present is AmokEd, but the scripts should be adaptable to other
  167.       editors.
  168.  
  169.  
  170.   Changes made in release 1.3 update 2
  171.   ====================================
  172.  
  173.   Bugs fixed
  174.   ----------
  175.  
  176.   OC
  177.     * The string passing bug introduced in update 1 was fixed.
  178.  
  179.   Changes made in release 1.3 update 1
  180.   ====================================
  181.  
  182.   Bugs fixed
  183.   ----------
  184.  
  185.   OC
  186.     * Calling a type-bound procedure through a de-referenced CPointer
  187.       variable caused an address trap. [fjc]
  188.  
  189.   Improvements made
  190.   -----------------
  191.  
  192.   OC
  193.     * Compiler now passes NIL when the actual parameter for an ARRAY OF
  194.       CHAR LIBCALL parameter is an empty string.
  195.  
  196.   Bugs introduced :-(
  197.   -------------------
  198.  
  199.   OC
  200.     * Strings longer than 1 character are not being passed to LIBCALL
  201.       parameters.
  202.  
  203.   Changes made in release 1.3
  204.   ===========================
  205.  
  206.   Bugs fixed
  207.   ----------
  208.  
  209.   OC
  210.     * Compiling non-Oberon files caused gurus due to writing error reports
  211.       to a NIL filehandle. [Torsten ?]
  212.     * Processing escaped characters in strings could lead to infinite
  213.       loops. [A. Weinert]
  214.     * Number of bytes of initialised data was understated. [fjc]
  215.     * Failed to free registers when dereferencing BPointers. [fjc]
  216.     * _Any_ constant could be assigned to a set variable. [fjc]
  217.  
  218.   FPE
  219.     * In at least two cases memory belonging to IntuiSup library was being
  220.       accessed (read) _after_ the message was replied. [fjc]
  221.  
  222.   Graphics.mod
  223.     * Wrong register used for parameter of OpenFont(). [fjc]
  224.  
  225.   OL
  226.     * Program failed to free locks on symbol files if it was interrupted
  227.       with CTRL-C.
  228.  
  229.   ORU
  230.     * Program failed to free locks on files if it was interrupted with
  231.       CTRL-C.
  232.  
  233.   Improvements made
  234.   -----------------
  235.  
  236.   OC
  237.     * Error #5 (end of file in comment) now reports the position of the
  238.       start of the offending comment.
  239.     * Removed all references to UNION types.  They were more more trouble
  240.       than they were worth.
  241.     * String literals seperated by whitespace are concatenated.
  242.     * Implemented varargs for Amiga library calls.
  243.     * Reorganised symbol table as a binary search tree, for a serious
  244.       performance improvement.
  245.     * New symbol file format produces smaller files and increases number
  246.       of exportable types.
  247.  
  248.   Module SYSTEM
  249.     * Added TYPETAG type and procedures for processing type tags.
  250.     * Added SETREG and REG procedures.
  251.  
  252.   Amiga Interface
  253.     * General ove