Formula One Compiler Release Notes

Release 42A, October 6, 2009


System Requirements

What's New

Getting Started

Known Issues

Reporting Bugs

Latest Release



System Requirements

OS
The compiler requires the one of the following platforms: Windows 2000, Windows XP, Vista or Windows 7. The compiler can run with certain limitation under Linux using Wine.

Display
It is recommended to run the IDE on systems supporting more than 256 colors, using resolution 1024x768 or better.

CPU
As there is a high probability you will end up running programs that are very CPU intensive, installing a GMP library that matches your CPU is essential. The GMP libraries should be upwards compatible (i.e. you can use GMP compiled for Pentium 2 on Pentium 4 etc.) but the performance may not be optimal.
The Setup programs detects several popular CPUs manufactured by Intel and AMD, however there are several other CPU vendors which the Setup does not recognize and will most likely mislabel. In this case it is the responsibility of the end user to manually select the best CPU match. Beware that selecting an incorrect library may generate invalid instructions. If everything fails, as the last resort, try installing the "generic" GMP library. If you can build and successfully run the sample Test Samples.f1 (as described in Getting Started) you have installed the correct GMP library.


What's New


IDE
Some issues with locking/unlocking files caused by deadlock on multi-core systems were fixed.
Improved tooltips dealing with the runtime libray.
Online help for runtime library API directly from the "Modules" tab.
Ability to sort project symbols either alphabetically or by symbol types.

Runtime Library
Displaying of results performance improvemets, notably when displaying a large number of results while the results window is minimized. This is often the case when logging a large number of results in a file.
Two new user APIs RtlIsPowerOf2 and RtlSquareRoot:

RtlIsPowerOf2

Test if number is a perfect square.

Syntax:

    proc RtlIsPowerOf2(number:<L)
The routine succseeds if the number is a perfect square, fails otherwise. For example, the query
    all x:>[0..100] & RtlIsPowerOf2(x)
will generate the following solutions:
x = 0
___ Solution: 1 __________________________________

x = 1
___ Solution: 2 __________________________________

x = 4
___ Solution: 3 __________________________________

x = 9
___ Solution: 4 __________________________________

x = 16
___ Solution: 5 __________________________________

x = 25
___ Solution: 6 __________________________________

x = 36
___ Solution: 7 __________________________________

x = 49
___ Solution: 8 __________________________________

x = 64
___ Solution: 9 __________________________________

x = 81
___ Solution: 10 __________________________________

x = 100
___ Solution: 11 __________________________________

Number of solutions: 11   Number of backtracks: 90
Elapsed time: 00:00:00     
RtlSquareRoot

Calculate square root of an integer.

Syntax:

    proc RtlSquareRoot(number:<L, root:>L)
The routine will fail if number is not a perfect square. For example, the query
    all x:>[0..50] & RtlSquareRoot(x,y)
will generate the following solutions:
x = 0
y = 0
___ Solution: 1 __________________________________

x = 1
y = 1
___ Solution: 2 __________________________________

x = 4
y = 2
___ Solution: 3 __________________________________

x = 9
y = 3
___ Solution: 4 __________________________________

x = 16
y = 4
___ Solution: 5 __________________________________

x = 25
y = 5
___ Solution: 6 __________________________________

x = 36
y = 6
___ Solution: 7 __________________________________

x = 49
y = 7
___ Solution: 8 __________________________________

Number of solutions: 8   Number of backtracks: 43
Elapsed time: 00:00:00

Getting Started

This is the recommended way to get started. After the FormulaOne IDE has been installed, follow these steps (We assume the sample code has been installed) :
Note the Test Samples does not test all of the samples, in particular the sample Anagram123 needs to be build separately. Anagram123 uses the module AllAnagramWords, which is quite large (over 200000 lines of code), so once again be patient as it will take a while to compile.


Known Issues


Reporting Bugs

In the "About" box there is a bug report button. This is the preferred method of bug reporting, as it reports all installed Formula One components, OS and CPU type. To report bugs manually, use the e-mail address bugs@f1compiler.com .
If you have any other problems, feedback or a nifty program you would like to submit to our sample code web page, submit them at support@f1compiler.com.


Latest Release

For the latest release of the Formula One compiler and other news, frequently check the home page at http://www.f1compiler.com/downloads/downloads.html