home *** CD-ROM | disk | FTP | other *** search
-
- $RCSfile: Changes.doc $
- Description: Changes made to Oberon-A
-
- Created by: fjc (Frank Copeland)
- $Revision: 1.6 $
- $Author: fjc $
- $Date: 1994/08/08 21:07:40 $
- ________________________________________________________________________
-
-
- Changes made in release 1.4 update 1
- ====================================
-
- Bugs fixed
- ----------
-
- OC
- * Bug in processing of formal parameters caused infinite loops if two
- parameters had the same name. [C.Ziegler]
-
- Improvements made
- -----------------
-
- OC
- * Checks for the existence of directories given in SYM and DST
- arguments.
-
- Revision control
- * Uses Johan Fereirra's OBumpRev to manage revision numbers for the
- compiler and utilities.
-
- Oberon-A Library modules
- * Implemented module Kernel to replace functions currently in module
- SYSTEM that will be removed in Release 1.5.
- * Added ObjectExists() and DirExists() to module DosUtil.
- * Changed module ExecUtil to use functions from module Kernel.
- * Created module WbConsole to independantly handle creating a stdio
- environment for Workbench programs.
- * Changed module StdIO to use module WbConsole.
-
- Changes made in release 1.4
- ===========================
-
- Bugs fixed
- ----------
-
- OC
- * The register involved in a LIBCALL parameter was being reserved too
- soon, causing register allocation errors in some cases where the
- actual parameters were expressions involving function procedures,
- or long integer or real arithmetic. [C.Ziegeler]
- * Fixing the above bug uncovered another, in which the parameter
- register was being freed before it was reserved. This only happened
- when the actual parameter was a record field referenced through a
- pointer, or an array element. [fjc]
- * It was possible to dereference a function procedure that returned a
- pointer type as if it were a pointer variable, with unpredictable
- results. [C.Ziegeler]
- * There was no check that forward declared procedures were actually
- implemented. The linker would have spotted this anyway. [fjc]
- * The stack offsets of procedure parameters were being written to the
- symbol file. The $L compiler switch changed these offsets, making
- the symbol file invalid. [fjc]
- * The column reported for error locations was incorrect if there were
- TAB characters in the line. [J.Ferreira]
- * Direct comparisons with TRUE gave incorrect results in some
- circumstances (specifically, when dealing with boolean return
- values from dos.library functions). [E.Dewald]
-
- Intuition.mod
- * menuNull was mis-spelled nenuNull.
-
- Exec.mod
- * paXXX flags declared incorrectly. [J.Ferreira]
-
- Improvements made
- -----------------
-
- OEL
- * Oberon-A Error Lister, contributed by Johan Ferreira.
-
- Module SYSTEM
- * The parameters to SYSTEM.SETCLEANUP are now a single assignable
- procedure. There is no need for a variable to hold the old cleanup
- procedure, or a return code parameter.
- * Added SYSTEM.RC to return the current return code.
- * SYSTEM.NEW now has an optional parameter for passing memory
- requirements.
- * Extended the range of types that can be used with bit operations
- (SYSTEM.LSH, etc.)
-
- All
- * Changed to use new SYSTEM.SETCLEANUP format.
-
- OC
- * Changed the $Z switch from a module switch to a global switch.
- * No longer generates multiple error reports at the same location.
- * Implemented foreign procedures.
- * Implemented the $A compiler switch.
- * SYSTEM.LONGWORD variables can now be assigned any value whose type
- <= 32 bits. The same for SYSTEM.WORD when the type is <= 16 bits.
- Integers are sign-extended, all other values are zero-extended.
- * Implemented NIL checking when dereferencing pointers, calling
- procedures from variables and executing type guards with pointers.
- * Changed register parameter declarations to use square brackets
- instead of braces.
- * Implemented stack checking.
- * Added TEXTERR command line option.
- * Changed to output binary error file by default.
- * Implemented $s compiler switch.
- * Changed error numbers.
-
- FPE
- * arp.library is now only used if dos.library < V37 or asl.library
- cannot be opened.
-
- OL
- * Added options to allow a linker to be called directly.
-
- OD
- * Definition file utility created.
-
- Amiga Interface
- * Updated to Release 40.15 (3.1).
- - Added new declarations to most existing modules.
- - Created new modules:
- - AmigaGuide.mod
- - Bullet.mod
- - CardRes.mod
- - CDDevice.mod
- - Datatypes.mod
- - Gadgets.mod
- - Locale.mod
- - LowLevel.mod
- - NonVolatile.mod
- - Prefs.mod
- - RealTime.mod
- * Changed modules to use foreign code interface:
- - BoopsiUtil.mod
- - RexxUtil.mod
- - Added the related object files (Classface.obj and rexxvars.o) to
- OberonSys.lib. Note that this is a temporary solution until a
- more complete foreign code interface is implemented.
- * Retained Commodore's comments in the source code.
-
- Third-party library interface modules:
- * New modules contributed by various people:
- - GuiEnv.mod
- - GuiEnvSupport.mod
- - ReqTools.mod
- - TextFieldGadget.mod
- - UMS.mod
-
- Dos.mod
- * Created SetVBufPtr() as an alias for SetVBuf(), to be used to pass
- NIL buffers.
-
- Intuition.mod
- * Changed 'args' parameters for EasyRequest functions to
- SYS.LONGWORD.
-
- Editor support
- * Macros and ARexx scripts to allow the compiler, linker, etc. to be
- called from within an editor. The only supported editor at the
- present is AmokEd, but the scripts should be adaptable to other
- editors.
-
-
- Changes made in release 1.3 update 2
- ====================================
-
- Bugs fixed
- ----------
-
- OC
- * The string passing bug introduced in update 1 was fixed.
-
- Changes made in release 1.3 update 1
- ====================================
-
- Bugs fixed
- ----------
-
- OC
- * Calling a type-bound procedure through a de-referenced CPointer
- variable caused an address trap. [fjc]
-
- Improvements made
- -----------------
-
- OC
- * Compiler now passes NIL when the actual parameter for an ARRAY OF
- CHAR LIBCALL parameter is an empty string.
-
- Bugs introduced :-(
- -------------------
-
- OC
- * Strings longer than 1 character are not being passed to LIBCALL
- parameters.
-
- Changes made in release 1.3
- ===========================
-
- Bugs fixed
- ----------
-
- OC
- * Compiling non-Oberon files caused gurus due to writing error reports
- to a NIL filehandle. [Torsten ?]
- * Processing escaped characters in strings could lead to infinite
- loops. [A. Weinert]
- * Number of bytes of initialised data was understated. [fjc]
- * Failed to free registers when dereferencing BPointers. [fjc]
- * _Any_ constant could be assigned to a set variable. [fjc]
-
- FPE
- * In at least two cases memory belonging to IntuiSup library was being
- accessed (read) _after_ the message was replied. [fjc]
-
- Graphics.mod
- * Wrong register used for parameter of OpenFont(). [fjc]
-
- OL
- * Program failed to free locks on symbol files if it was interrupted
- with CTRL-C.
-
- ORU
- * Program failed to free locks on files if it was interrupted with
- CTRL-C.
-
- Improvements made
- -----------------
-
- OC
- * Error #5 (end of file in comment) now reports the position of the
- start of the offending comment.
- * Removed all references to UNION types. They were more more trouble
- than they were worth.
- * String literals seperated by whitespace are concatenated.
- * Implemented varargs for Amiga library calls.
- * Reorganised symbol table as a binary search tree, for a serious
- performance improvement.
- * New symbol file format produces smaller files and increases number
- of exportable types.
-
- Module SYSTEM
- * Added TYPETAG type and procedures for processing type tags.
- * Added SETREG and REG procedures.
-
- Amiga Interface
- * General overhaul:
- - Reorganised and renamed some modules:
- - Rexx.mod --> Rexx.mod and RexxSysLib.mod
- - KeyMaps.mod --> KeyMap.mod and KeyMapLib.mod
- - InputEvents.mod --> InputEvent.mod
- - Console.mod --> Console.mod and ConUnit.mod
- - FileSystem.mod --> FileSysRes.mod
- - Merged Types.mod with Exec.mod
- - Added missing modules:
- - MathLibrary.mod
- - MathIeeeSingBas.mod
- - MathIeeeSingTrans.mod
- - Made sure that the translation of C names into Oberon was done
- consistently:
- - Kept prefixes for constants except where they were just
- abbreviations of the module name.
- - Deleted prefixes for record fields except where this caused name
- clashes.
- - Fixed parameter types of LIBCALLs.
- - Created LIBCALL versions using varargs as well as TagItem arrays.
- - Created variant LIBCALLs with alternative parameter lists where
- appropriate.
- - Wrote new utility procedures:
- - ExecUtil.mod
- - BoopsiUtil.mod
- - HookUtil.mod
-
- FPE
- * Changed source code to use new Amiga interfaces.
- * Minor details changed.
-
- Examples
- * Wrote some (well, ported some from the RKM).
-
- Files.mod
- * Module now keeps track of all files opened and closes any left
- open when the program exits.
-
- OL
- * Added specific support for ALink and dlink.
-
- Changes made in release 1.2
- ===========================
-
- Bugs fixed
- ----------
-
- OC
- * Batch file was not closed when batch compile interrupted by CTRL-C.
- [fjc]
- * Numerous bugs in the translation of type-bound procedures,
- especially when forward declared. It was a wonder they worked at
- all. [K. Juha, J. Hawkins]
-
- Improvements made
- -----------------
-
- OC
- * "/" appended to paths not ending in "/" or ":".
- * Now checks for at least one RETURN statement in a function
- procedure. Generates code to check at run-time for a missing RETURN
- statement in a function procedure. Added "$r" switch to turn checks
- off.
-
- OL
- * "/" appended to paths not ending in "/" or ":".
-
- ORU
- * "/" appended to paths not ending in "/" or ":".
-
- Lists.mod
- * Added FindNameNoCase().
-
- Workbench.mod
- * Implemented AddAppIconA() using inline code to get around the
- problem with using A4 to pass parameters.
-
- Changes made in release 1.1
- ===========================
-
- Bugs fixed
- ----------
-
- OC
- * Enforcer hit caused when no DST parameter was specified [A. Weinert].
- * Same error code used for different errors. [R. Waspe]
-
- OL
- * The module name passed as a parameter was case-sensitive [R. Waspe].
-
- OberonSys.lib
- * The garbage collector was mistreating SysBlks in the mark phase.
- Fireworks mode :-) [fjc]
-
- Improvements made
- -----------------
-
- FPE
- * Added "Program-Create Directory" menu item and removed references
- to "Make Code" button in FPE.doc.
-
- OC
- * Changed command line arguments:
- - Options now must come first;
- - Multiple filename arguments allowed.
- * Batch compiles implemented.
- * OLIB: is now the default symbol file search path.
- * Error files are output in the current directory with the name
- "<module>.err".
- * Compiles can be interrupted with CTRL-C.
-
- OL
- * Command line arguments slightly changed.
- * Changed format of .with file to suit Commodore's ALink.
- * OLIB: is now the default symbol file search path.
-
- ORU
- * Changed to generate a batch file to be used with the BATCH option of
- the compiler.
- * OLIB: is now the default symbol file search path.
-
- Oberon-A/S
- * Oberon-Startup file containing useful aliases for Shell users
- created.
-
- StdIO.mod
- * Added code to check for CTRL-C.
-