Last updated: 5 December 2011
Features
- ANS standard Forth with many extensions
- VFX code generator - generates native code with optimisation - see the benchmark results!
- Direct access to source with LOCATE and XREF.
- Robust exception handling
- Online disassembler and decompiler
- Examples and libraries.
- HTML and PDF Online help
- GTK+ Cross Platform GUI
- Minos OOP and Widget display
- Theseus GUI desgner
- DocGen documentation generator
- Internationalisation support for multiple languages
- Rapid development.
- System resources give you full control.
- Compatibility with other MPE Products.
- Support services - standard, extended and advanced technical support.
- See also - VFX Forth for Windows
- See also - VFX Forth for Mac OS X
- See also - VFX Forth for DOS
VFX Forth for Linux is a 32 bit x86 Forth built from the same code tree as the Windows and DOS versions; please refer to the Windows version for a more detailed description of aspects common to all versions, e.g. code generation.
The v4.5 release is available. This release includes code generation changes, an improved shared library interface, the GTK+ cross-platform GUI code, a port of Bernd Pasan's Minos and Theseus GUI designer, and Hanno Schwalm's fJACK audio interface.
Free downloads of VFX Forth for Linux are available from the Southampton server. Login as "public" with a blank password. Please read the file ReadMe.Linux.txt before you install the system. The 32 bit VFX Forth for Linux version is available in rpm and deb packages for 32 bit and 64 bit x86 Linux variants, and as a tarball. VFX Forth for Linux also works on FreeBSD with the Linux compatibility layer installed.
The paid-for releases include more features and a version for embedded use on 386 and 486 class CPUs, such as those in the Ebox family of low-cost industrial/network PCs.
Read the latest release notes. Release notes for all earlier versions of VFX Forth can be found here.
A customer said:
"Besides the amazing optimizing compiler, I love the
DocGen documentation system. The easy C interfacing and Genio
driver architecture have also been key for my project. And finally,
I can even generate turnkey apps customized for my eBox 2300SX."
VFX Code Generator
MPE's VFX Forth products have consistently proven themselves to be the fastest Forth systems available. The benchmarks to prove it are on our web site. The v4 release includes many detailed changes to the code generator making v4 even faster than before with no increase in code size.
VFX Forth's VFX code generator generates native code with optimisation and inlining. Using mainstream compiler techniques the VFX optimiser can merge many Forth words and reduce memory access to a minimum.
Users of previous threaded code systems such as ProForth for DOS should note that applications can be expected to run over ten times faster, and that writing CODE definitions is now unnecessary.
GTK+ Cross Platform GUI
We have settled on GTK+ as a suitable cross-platform GUI library. Now that we have VFX Forth for Windows, Mac OS X and Linux, it was time to take the prototype Linux interface more seriously. At the same time, we were being strongly urged by a client to give him back a graphics interface similar to his dearly beloved Borland BGI system from the old days of DOS. With a bit of effort, we found that it is possible to have portable graphics with a cross platform GUI.
|
|
|
The three pictures are from Windows, Mac OS X and Linux. All three were produced by compiling the same source code with no changes. The library interface file contains a small amount of conditional compilation for library file names, but that's all that changes between operating systems.
The GUI is designed using the Glade GUI designer, which produces an XML description of the GUI. The XML description is loaded into the program by the Builder. The example code below shows a callback (an action needed when an event happens) and the code that produces the display.
2 0 CCBproc: on_about1_activate \ *widget *user -- ; -- entry \ *G Callback to run the About dialog. 2drop MainAbout runDlg drop ;
The code above produces a callback in the form needed by applications such as GTK that use a C calling convention. The name of the callback was also defined to Glade. A callback in the Builder associates the Glade name with a Forth callback name. In this case, when the "Help -> About" button is clicked, the About dialog is run.
: showGraphics3 \ -- \ *G Test word to read a Glade Builder XML file and run the \ ** GUI it describes. initGTK +gtimer \ start GTK and timer z" gdemo3bld.ui" loadBuilderXML \ load GTK builder design 0= abort" Can't load builder file" z" window1" builderObject to window1 \ get handles z" drawingarea1" builderObject to DrawingArea1 z" aboutdialog1" builderObject to MainAbout freeBuilder window1 gtk_widget_show_all \ show design DrawingArea1 win2 initGWin \ initialise graphics area win2 enable-graphics win2 onto dirty black cleardevice \ drawing commands white 50 circle green 200 100 line red 30 30 at 70 30 filled rectangle 80 70 at 100 40 blue filled ellipse ;
Minos and Theseus
Minos is an OOP-based GUI display system and widget library written by Bernd Paysan, ported to VFX Forth and released under an LGPL license. It is dependent only on the presence of the X-Windows libraries and the OpenGL libraries for graphics displays. As a consequence, it uses little RAM and can be used on low-powered systems.
Theseus is the GUI designer component, also by Bernd Paysan and released under LGPL. The screenshot below shows it in use constructing a prototype GUI front-end for VFX Forth.
LGPL exemptions and technical support contracts for Minos and Theseus are available separately. Minos and Theseus are supplied with all editions of VFX Forth for Linux.
Theseus
INI file system
IniParser is a configuration file system that can be used with source compatibility under both Linux and Windows operating systems. The generated files are compatible with Window INI files. Apart from being usable in your applications, it is the basis of the VFX Forth for Linux and Windows configuration system.
PDF help system
The new help system allows you to type
HELP <name>
from the console to access the correct page of the PDF manual.
You can select which PDF viewer to use.
The Linux constants library now contains several thousand Linux
constants extracted from C header files. Used with the "cut and paste"
Extern: mechanism for shared library interfacing,
interactive access to Linux has never been easier.
Local Variables
Modern programming regularly requires the use of temporary buffers and variables. VFX Forth incorporates MPE's extended local variable syntax as well as the default ANS syntax. Of course these are fully optimised by the VFX code generator. The following example is taken from the DOS environment string handler. Var$ and Dest$ are named inputs and temp$[ is a local buffer.
: GetEnvVar \ var$ dest$ --
\ *G Extract the environment variable *\i{var$} and place its
\ ** string value at *\i{dest$}. Both strings are counted strings, e.g.
\ *E c" COMSPEC=" root-buff GetEnvVar
\ ** root-buff count type
{ var$ dest$ | temp$[ #256 ] -- }
...
;
Robust Exception Handling
VFX Forth uses the ANS Forth CATCH
and THROW mechanism for
nested exception handling. Exceptions generated by Linux signals,
e.g. divide by zero, can be routed to generate a
Forth THROWs
Source Management
VFX Forth includes a cross reference tool that allows you to find
out and display where words are used, and also to find out which words
are unused for final code reduction. Just type
LOCATE <name> and
the source code for <name> is there on the
screen for viewing or editing. XREF <name>
will tell you where the word is used, and
XREF-UNUSED
will tell you which words in your application have not been used.
Examples and Libraries
VFX Forth comes with a wide range of application examples.
Libraries include multitasking, floating point, serial and socket-based communications, benchmarks, BNF parsers, binary overlays, full file system support, and more than a dozen application-oriented examples to get you off to a flying start.
DocGen Documentation and Help Generator
Built into VFX Forth, the DocGen system can produce documentation for code while it is being compiled. DocGen processes formal comments in your source code, extracts them, and formats them into word processor files in HTML, PDF, TEX or user definable formats. Now your source code can include an up to date manual for your project! The VFX Forth manual is itself built this way. The following example is part of the source code for selector chains.
: exec-chain? \ i*x n addr -- j*x true | n FALSE \ *G Run through a given chain using TOS as a selector. If a match is \ ** made execute the relevant code block and return TRUE otherwise \ ** the initial selector and a FALSE flag is returned. ... ;
The result is the automatic generation of the glossary entry for this word in the manual. DocGen allows multiple files and sections, table of contents, titlepage generation, several levels of headings, special facilities for examples, and a choice of public or internal release documentation.
Internationalisation
The file LIB\INTERNATIONAL.FTH permits full internationalisation of applications according to the ANS draft standard for internationalisation.
You can define text messages to be internationalised. A simple set of hooks allow you to export text for translation and later reloading at run time.
Rapid Development
Conventional programming requires you to use an editor, language compiler, resource compiler, and finally a linker before even a small change can be tested. With VFX Forth, you just make your change using your favourite editor and recompile directly into executable form in seconds.
VFX Forth includes all the tools you need to create bound turnkey DOS applications.
System Resources Give You Full Control
VFX Forth provides a complete set of system resources and development tools to give you maximum control over your application. These include:
- Binary overlays
- Dynamic heap management
- 80386/387 assemblers
- Turnkey application generator
VFX Forth includes all tools required to compile, test and create bound versions of your applications for distribution.
System Requirements
- Any version of x86 Linux with 32 bit libraries, e.g. any Red Hat or Debian distribution or derivative.
- A maths co-processor is required for floating-point maths.
Compatible with other MPE Products
The VFX Forth kernel is source-code compatible with MPE's Forth cross compilers, and compatibility for other versions of VFX Forth for Windows or Mac OS X has been made simple.
Ordering
VFX Forth for Linux is available in four editions, which differ in the level of source code provided:
- Evaluation: Free download from this website. The full system with no timeout, no kernel sources, no cross compiler, no PowerNet and minimal technical support.
- Standard: Full system with turnkey application generation, full kernel sources except for the VFX code generator but no cross compiler or tool source code. No PowerNet. One year of tech support and upgrades.
- Professional: Full system with the PowerNet web server, all kernel sources and the MPE Forth 7 VFX 386+ cross compiler. With this system you can modify and extend the VFX Forth system. Requires a Non-Disclosure Agreement to be signed. One year of tech support and upgrades.
- Mission: Full system with all sources and cross compiler, and full source for all support tools, including the cross compiler and shared libraries. Requires a Non-Disclosure Agreement to be signed.
Note that educational users can obtain all the VFX Forth editions at a 50% discount.
Upgrades are available from one version to another.
Support Services
MPE has been supporting professional Forth users since 1981. We offer the following services:
Standard Support
Fax and email hotline technical support on the use of VFX Forth. Within 3 months of purchase any updates are provided free of charge.
Extended Technical support
- All upgrades as they are released from development, usually four times per year
- Direct access to the development team
- Involvement in the development cycle
- Annual fee
Advanced Technical Support
- Forth Programming Courses
- Custom Application Design
- Programming Services
Go to the pricelist page.
Return to Top
Return to HomePage