Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

ANN: Win32Forth 6.05

2 views
Skip to first unread message

Alex McDonald

unread,
Apr 26, 2003, 10:45:00 AM4/26/03
to
Announcement: Win32Forth 6.05
Win32Forth is being further developed & maintained by a group at
groups.yahoo.com/group/win32forth. If you have any bug reports (TKZ's
original 4.3 build 671 onwards), comments or need help, please post here or
at win32forth at yahoogroups.rem.com (remove ".rem").

Changes between V4.2 Build 671 (TJZ's last release) and 6.05 501B (any
build, this is no longer part of the version/release specification).

Where to get it
---------------

http://groups.yahoo.com/group/win32forth/files/Distros/
select file V605.EXE, a winzipped EXE file.

Installation
------------

Run the file above and unzip to a directory of your choice. Run _MAKEALL.BAT
in the root of the directory, follow the prompts.

** NOTE ** Although the file has been virus scanned, there's no guarantee
that this file may not contain a virus, and that you're advised to use your
own virus checker before executing this file.

End-user changes
----------------

All existing code continues to work, with the following exceptions:

1. Multitasking
MULTITHR.F is now obsolete, and has been replaced by TASK.F.
Impact: Jos vd Ven uses MULTITHR.F in many of his programs. Any code that
uses MULTITHR.F will not work.

2. WINCLOCK.F
This had a subtle bug in it. Fixed in this release.

Architectural changes
---------------------

-- Multiple directories
. addition of multiple directories to store documentation and
applications
. simplifies maintenance and identification of files used over a flat
all-in-one-directory structure
. supports separation of application from system code

-- Fixed loadpoint images can optionally be built
. performance improvements of up to 30% for fixed loadpoint images over
standard relocatable images

-- Performance improvements
. Words rewritten to improve performance. Conditional jumps eliminated
from much of the code, stack juggling reduced to a minimum.
. Code moved out of the kernel that required the assembler, reduces size
of the kernel
. Better use of the stack to support USER variables and large static
allocations of memory, allows simplified multitask support.

-- CALL mechanism simplified and moved to the kernel from WINLIB.F
. allows the kernel to call Windows API without using XCALLs (calls to
the C wrapper).
. permits libraries & procedures to be specified during development &
runtime that do not exist. All CALL errors can optionally be deferred
to run-time, rather than compile time.

-- ANS file words moved to the kernel from ANSFILE.F
. allows the kernel to perfrom I/O without using XCALLs.
. some improved performance
. read-line now supports DOS (CR|LF), UNIX (LF) and MAC (CR) newlines
. I/O supported in multitasking

-- Memory words moved to the kernel form PRIMUTIL.F
. better performance by using heap API calls rather than Win32S
compatability calls
. allows locking during allocation to support multitasking

-- Exception handling improved
. diagnostics improved to allow better determination of the error
. integrated into CATCH/THROW

-- Multitasking support improved
. simplification of requirements for supporting multiple tasks
. USER variables rationalised and unique per-task.
. Still in progress, subject to some changes.

-- Better FORGET support
. correctly forgets all types of entries including libraries, files,
procedure definitions

-- CALLBACKs rationalised
. Callbacks rationalised to support Windows callbacks with a single word
. Efficency improved, standardised use of the stack
. Supported in multitasking

-- File interdependencies reduced
. allows more flexibility about the order of FLOADs in EXTEND.F
. permits assembler to be loaded early if required

-- CLASS changes
. new root class allows simplified and smaller classes that don't require
RECORD: support

-- Disassembler improvements
. better text output identifies labels by name rather than by hex offset
. bug fixes

-- Hidden words in kernel support
. Internal words in the kernel are now hidden, reduces size of the
dictionary.

Bugs fixed
----------

. SEE was generating errors on optimised code in ;CODE sections
. FORGET wasn't forgetting properly certain classes of items, such as
PROCs, WINLIBRARYs and CALLs
. META compile was miscalculating the size of the generated image
. Dialog loading was miscalculating the offsets inside a RES file causing
spurious errors.
. FIND with class support was finding words of the form x.y, even though x
did not exist, or x was not an object.
. Optimiser was generating invalid code and/or generating an exception
for a non-zero origin kernel
. Optimiser assumed that all code ended with NEXT, and generated incorrect
code if not.
. Cosmetic tidy up, some spelling corrected in messages
. FLOAD wouldn't load a file with blanks in its name. Changed to support
quoted filenames
. Disassembler was not recognising some instruction encodings

Known Problems
--------------

. File and folder support is not consistent across all words
. FIND x.y if y is not a method of x returns found
. SEE may overrun code if it doesn't terminate with NEXT
. Communication between WINED (the editor) and a Forth instance is
not good. Depends on the version of Windows in use.
. probably lots of others...

--
Regards
Alex McDonald


0 new messages