home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gold Fish 2
/
goldfish_vol2_cd1.bin
/
files
/
dev
/
obero
/
oberon-a
/
docs
/
changes.doc
< prev
next >
Wrap
Text File
|
1994-09-03
|
12KB
|
380 lines
$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.