home *** CD-ROM | disk | FTP | other *** search
/ Gold Fish 2 / goldfish_vol2_cd1.bin / files / dev / obero / 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 overhaul:
  254.       - Reorganised and renamed some modules:
  255.         - Rexx.mod --> Rexx.mod and RexxSysLib.mod
  256.         - KeyMaps.mod --> KeyMap.mod and KeyMapLib.mod
  257.         - InputEvents.mod --> InputEvent.mod
  258.         - Console.mod --> Console.mod and ConUnit.mod
  259.         - FileSystem.mod --> FileSysRes.mod
  260.         - Merged Types.mod with Exec.mod
  261.       - Added missing modules:
  262.         - MathLibrary.mod
  263.         - MathIeeeSingBas.mod
  264.         - MathIeeeSingTrans.mod
  265.       - Made sure that the translation of C names into Oberon was done
  266.         consistently:
  267.         - Kept prefixes for constants except where they were just
  268.           abbreviations of the module name.
  269.         - Deleted prefixes for record fields except where this caused name
  270.           clashes.
  271.       - Fixed parameter types of LIBCALLs.
  272.       - Created LIBCALL versions using varargs as well as TagItem arrays.
  273.       - Created variant LIBCALLs with alternative parameter lists where
  274.         appropriate.
  275.       - Wrote new utility procedures:
  276.         - ExecUtil.mod
  277.         - BoopsiUtil.mod
  278.         - HookUtil.mod
  279.  
  280.   FPE
  281.     * Changed source code to use new Amiga interfaces.
  282.     * Minor details changed.
  283.  
  284.   Examples
  285.     * Wrote some (well, ported some from the RKM).
  286.  
  287.   Files.mod
  288.     * Module now keeps track of all files opened and closes any left
  289.       open when the program exits.
  290.  
  291.   OL
  292.     * Added specific support for ALink and dlink.
  293.  
  294.   Changes made in release 1.2
  295.   ===========================
  296.  
  297.   Bugs fixed
  298.   ----------
  299.  
  300.   OC
  301.     * Batch file was not closed when batch compile interrupted by CTRL-C.
  302.       [fjc]
  303.     * Numerous bugs in the translation of type-bound procedures,
  304.       especially when forward declared.  It was a wonder they worked at
  305.       all. [K. Juha, J. Hawkins]
  306.  
  307.   Improvements made
  308.   -----------------
  309.  
  310.   OC
  311.     * "/" appended to paths not ending in "/" or ":".
  312.     * Now checks for at least one RETURN statement in a function
  313.       procedure. Generates code to check at run-time for a missing RETURN
  314.       statement in a function procedure. Added "$r" switch to turn checks
  315.       off.
  316.  
  317.   OL
  318.     * "/" appended to paths not ending in "/" or ":".
  319.  
  320.   ORU
  321.     * "/" appended to paths not ending in "/" or ":".
  322.  
  323.   Lists.mod
  324.     * Added FindNameNoCase().
  325.  
  326.   Workbench.mod
  327.     * Implemented AddAppIconA() using inline code to get around the
  328.       problem with using A4 to pass parameters.
  329.  
  330.   Changes made in release 1.1
  331.   ===========================
  332.  
  333.   Bugs fixed
  334.   ----------
  335.  
  336.   OC
  337.     * Enforcer hit caused when no DST parameter was specified [A. Weinert].
  338.     * Same error code used for different errors. [R. Waspe]
  339.  
  340.   OL
  341.     * The module name passed as a parameter was case-sensitive [R. Waspe].
  342.  
  343.   OberonSys.lib
  344.     * The garbage collector was mistreating SysBlks in the mark phase.
  345.       Fireworks mode :-) [fjc]
  346.  
  347.   Improvements made
  348.   -----------------
  349.  
  350.   FPE
  351.     * Added "Program-Create Directory" menu item and removed references
  352.       to "Make Code" button in FPE.doc.
  353.  
  354.   OC
  355.     * Changed command line arguments:
  356.       - Options now must come first;
  357.       - Multiple filename arguments allowed.
  358.     * Batch compiles implemented.
  359.     * OLIB: is now the default symbol file search path.
  360.     * Error files are output in the current directory with the name
  361.       "<module>.err".
  362.     * Compiles can be interrupted with CTRL-C.
  363.  
  364.   OL
  365.     * Command line arguments slightly changed.
  366.     * Changed format of .with file to suit Commodore's ALink.
  367.     * OLIB: is now the default symbol file search path.
  368.  
  369.   ORU
  370.     * Changed to generate a batch file to be used with the BATCH option of
  371.       the compiler.
  372.     * OLIB: is now the default symbol file search path.
  373.  
  374.   Oberon-A/S
  375.     * Oberon-Startup file containing useful aliases for Shell users
  376.       created.
  377.  
  378.   StdIO.mod
  379.     * Added code to check for CTRL-C.
  380.