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

[ANN] iForth32 3.0 -- final release

30 views
Skip to first unread message

Marcel Hendrix

unread,
May 5, 2008, 12:59:13 AM5/5/08
to
We are proud to present the final release of iForth32 (32-bits iForth).
The version number has been bumped up to 3.0.

The final release is available for Windows (XP tested), Linux x86_32
or x86_64, and Mac OSX (Intel hardware only).

Because of the truly awesome contributions of two iForth users, very
significant improvements were implemented for this final release.

1. Hanno Schwalm has worked on the iForth meta source code (thought to
be humanly unreadable!) and succeeded to free up a CPU register,
without any degradation of execution speed. This free register is
used to cache the address of the iForth USER area.

The result is that iForth has now OS-level threads and callbacks
for each supported platform. There is no limit on what threads and
callbacks are allowed to do: floating-point arithmetic, execution
of complete SPICE jobs, multiple invocations of external programs,
even compilation of thread-local Forth code -- it will all work.

Threads and callbacks have private stacks (data, return,
floating-point, system, and locals), plus a private USER area and
dictionary. Semaphored I/O is supported for threads, and Forth-level
interactive debugging of parallel code (.S ABORT etc.) is possible.

The iForth parallel constructs (inherited from tForth) have been
extensively tested in a real-time application (Linux driver for the
AOR 7030 shortwave receiver) that uses the FPU extensively, talks
to the PC audio system and radio hardware, and supports a GUI written
in Forth. The AOR 7030 code is included as a user contribution (it
supports a "dummy" radio as fallback).

2. Hanno Schwalm rationalized the terminal control sequences used to
set attributes (e.g. INVERSE BOLD ITALICS) and colors (red blue etc.)
in both text and graphic mode.

3. Hanno also wrote a truly awesome iForth graphics driver for X-windows
that works under both Linux and Mac OSX. Apart from very fast graphics,
this driver supports multi-font text output and mouse control. The driver
is thread-safe and it is possible (although not necessarily useful ;-)
to run any number of iForth graphics programs in parallel.

iForth graphics run unmodified on all platforms (Windows, X, OSX)

4. Charles Turner has ported the Linux server "C" code to Mac OSX and
in the process genericized them.

Yes, iForth32 now works not only on Windows and Linux, but also
on Intel Macs (under both Debian Linux and OSX)!

5. OpenGL driver bugs were removed. OpenGL code now works bugfree on Windows,
Linux, and OSX.

6. A blocking sound driver (OSS/ALSA) for Linux is available, as is an
experimental non-blocking sound/MIDI driver. The MANX program runs
unchanged on both Windows and Linux. Unfortunately, sound does not
work yet for OSX. However, for all platforms a uniform Jack interface
is in the design stage.

7. Extensive floating-point library support (GotoBLAS, NRC, FFTW, GINT,
Atlas) is integrated on all platforms. Typical processing speed is around
8 GFLOPS (double precision) for matrix multiplication (1.6 GHz Core Duo).
All code follows the extended FSL conventions and Forth native memory layout.
Pre-compiled Linux and OSX binaries are available to save some hassle for
new users.

Interfaces to Matlab, Excel, MathCAD, LTSPICE, CONV, Mag_Tool, LeCroy
oscilloscopes, BOSS and Roland synthesizers.

8. At this moment installation programs are being prepared for Windows, Linux
and Mac OSX. However, be warned that iForth is definitely not for beginners!

9. iForth32 now comes with 24,552 example and documentation files. Server
source code for Linux and OSX is included. The examples work on all platforms,
save for some Windows GUI demos, and with a few omissions on OSX because
of the still lacking sound driver.

10. Minor fixes: input of lower-case HEX is now possible and S\" and
PARSE-NAME have been added to the kernel. X:deferred, X:defined, X:ekeys,
X:extension-query, X:number-prefix, X:parse-name are also available
(but NOT X:required, X:structures, and X:throw-iors). iForth does have
NEEDS and structure packages, of course.

Added EKEY>FKEY and all key constants (ALT SHIFT and CONTROL masks
only for Windows).

iForth tries to reasonably track the Forth20x0 standard.

11. Path name support has been improved. It is now possible to trace the names
of files given only by their handle. iForth remembers the state of the command
line buffer and the current directory in the user's home directory.

12. The Forth Foundation library (http://ffl.dvoudheusden.net/docs/) has been
ported to iForth.

13. Some 50 problems of the Euler Project (http://projecteuler.net) are now
available.

14. New and ugraded library support for
o) Jack W. Crenshaw's "Let's Build a Compiler" series
o) SOD64 and eForth64 exeprimental 64-bit Forths
o) FITS driver (cfitsio library)
o) RSS, telnet, and IRC micro client platform independent libraries
o) RAR and UNRAR library support
o) SQLITE 3.0 library bindings
o) SWISSEPH (sweph, compute a celestial body or point position) support
o) A compiler for Tiny-C (compiles to a virtual machine)

15. Included the online version of Starting Forth, the original (TM)

iForth is not free. It can be ordered through Kagi
( http://store.kagi.com/cgi-bin/store.cgi?storeID=AMP_LIVE&currency=EUR )

As from today, main development will concentrate on iForth's 64-bit branch.
Support policy is unchanged. (It includes Free Meals For Visitors ;-)


The iForth development team

(Marcel Hendrix, Hanno Schwalm and Charles Turner)

Anton Ertl

unread,
May 5, 2008, 5:55:30 AM5/5/08
to
m...@iae.nl (Marcel Hendrix) writes:
> X:deferred, X:defined, X:ekeys,
> X:extension-query, X:number-prefix, X:parse-name are also available

I have updated the CfV results accordingly.

- anton
--
M. Anton Ertl http://www.complang.tuwien.ac.at/anton/home.html
comp.lang.forth FAQs: http://www.complang.tuwien.ac.at/forth/faq/toc.html
New standard: http://www.forth200x.org/forth200x.html
EuroForth 2008: http://www.complang.tuwien.ac.at/anton/euroforth/ef08.html

0 new messages