home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
spo386.zip
/
HISTORY.TXT
next >
Wrap
Text File
|
1994-01-13
|
6KB
|
102 lines
----------------------------------------------------------------------------
The history of Spo
----------------------------------------------------------------------------
Jan-Feb 1993 : Version 1,00
All the basic stuff, but crude interface.
Feb 5, 1993 : Wrote some documentation.
Version 1,00 released to Internet via Garbo.
Feb 18, 1993 : Version 1,01 introduced.
Added detection for units compiled by older versions
of TP. These caused a garbled error message. Also
added detection for files that are not units.
Added check for unit larger than 64K which is not handled
by Spo. These caused run time errors. I wasn't even
aware of the possibility. [I guess I have been pointing
out too many bugs in other products...]
Added setting of {$G+} flag when target>=186.
Reduced memory requirements slightly.
Updated the documentation with a list of errors and
warnings with their causes.
Added "/A" option to specify the assembler to use; useful
for Tasmx.Exe only.
Feb 23, 1993 : Added list of optimizations to the documentation.
Feb 25, 1993 : Fixed some bugs in the regular expression search engine.
These bugs should not have been noticed by users of Spo.
Added some string optimizations.
Command line parsing improved. Among other things, the
switch char (normally '/') returned by Dos is now
respected.
Feb 26, 1993 : Procedures and segments are now aligned according to
processor.
Mar 1, 1993 : Fixed bug in analysis; it didn't follow Loop instructions.
Changed processor directive from "P386N" to "P386" to
allow inlined protected instructions.
Fixed overflow bug that sometimes caused strange assembly
errors and even memory overwrites.
Mar 2, 1993 : Fixed bug that caused spilling of file handles as more and
more units were optimized.
Error message "The unit does not use itself!" changed to
warning. It seems as if a unit is reported as using
another if and if only some fixup depends on that unit.
Improved the capacity significantly by compacting the data
section by a factor of approximately 7.
Mar 6, 1993 : Version 1,10 introduced.
Mar 7, 1993 : Made changes to allow Spo itself to run in protected mode.
Mar 8, 1993 : Changed "Int_0405" to work in protected mode also.
Fixed a bug that caused incorrect code when emulated
8087-instructions used segment override.
Fixed a bug in the above mentioned compaction of the data
segment.
Mar 9, 1993 : Efficient Shr/Shl for longints on 86/186/286.
Improved ZUnion, ZDifference, ZIntersect, and ZEqual.
Improved 186->86 conversion.
Allowed "/T" on its own to specify the processor on which
Spo is running.
Mar 11, 1993 : Broke the 32 bit barrier for the assembly buffer (DPMI
version, 386+ only).
Put macros for Op32/Addr32/Pushd/Fnsetpm in the start of
all assembler files.
Wrote units Need_186, Need_286, and Need_386 to check for
processor at run time.
Mar 12, 1993 : Improved some for-loops guaranteed to execute either at
least once or never.
Mar 13, 1993 : Added clearing of {$G+} flag when target is 8086 and no
errors were detected.
Added "/Cx" option to specify target platform.
Implemented searching for units for dos protected mode or
Windows.
Added the system tables for dos protected mode.
Had my first game of optimized TvChess. Lost.
Increased the starting size of the assembly buffer to 32K
for Spo386.
Mar 14, 1993 : Found very ugly bug in procedure alignment. Affected all
Cpu targets except 486. (I'm glad that didn't make it
to the internet!)
Corrected the FLn replacement under "/NH".
Mar 15, 1993 : Bug in "LongShl 8" found and corrected; misspelling.
Jan 5, 1994 : Target is set to 286 for non-dos targets if no higher target
is specified.
Added some hooks for OS/2 units.
Minor optimization: don't set Al after addtion etc.
Updated docs.
Significantly improved the annotation of call statements
with procedure names. Some cache may be benefical when
this code is used. Annotation no longer inhibits any
optimization since they are now added at a later stage.
Improved Need_186 and Need_286 by making them a no-op user
non-dos platforms.
Tables for Windows & OS/2 entered. These targets enabled.
Jan 6, 1994 : Fixed a bug that caused bad results for longint
multiplication and division is some rare cases. (It
was found because some already faulty code didn't do
what it was supposed to!)
Jan 11, 1994 : Target defaults to 8086 (Real), 286 (Prot.+Windows), and
386 (OS/2).
Target cannot be set lower then default. Attempts are
silently ignored.
The entry point of procedures are annotated with the name
of the function, if that is in the interface.