Freeode 0.4.0

Have a working compiler with the new architecture; and update the website.

Milestone information

Project:
Freeode
Series:
trunk
Version:
0.4.0
Released:
2010-07-07  
Registrant:
Eike
Release registered:
2010-07-07
Active:
No. Drivers cannot target bugs and blueprints to this milestone.  

Download RDF metadata

Activities

Assigned to you:
No blueprints or bugs assigned to you.
Assignees:
22 Eike
Blueprints:
3 Implemented, 2 Informational
Bugs:
1 Won't Fix, 16 Fix Released

Download files for this release

After you've downloaded a file, you can verify its authenticity using its MD5 sum or signature. (How do I verify a download?)

File Description Downloads
download icon freeode-0.4.0.linux-x86_64.exe (md5) Windows installer, built on Linux (untested) 58
last downloaded 12 weeks ago
download icon freeode-0.4.0-1.noarch.rpm (md5) RPM created on openSuse 11.2 25
last downloaded 50 weeks ago
download icon freeode-0.4.0.zip (md5) Source Windows style 24
last downloaded 17 weeks ago
download icon freeode-0.4.0.tar.gz (md5) Source Linux style 9
last downloaded 50 weeks ago
Total downloads: 116

Release notes 

This release brings a new architecture: Siml is now a real object oriented language, with static typing. The syntax is now whitespace sensitive: indentation creates blocks, like in Python.

The release brings no real new features, but it is a good base for further development.

The code execution at compile time, is now considered to be macro execution, similar to Scheme or D. At compile time Siml classes are now Python classes. This implies that Siml instances are now regular Python objects. This makes the code more simple but somewhat quirky, because more advanced features of Python have to be used. (Siml functions, for example, have to be descriptors.)

A program is still compiled into an imperative style Python program, with only floating point numbers, strings, and booleans.

The compiler is still beta quality, it can quite easily be tricked into erroneous behavior.

Changelog 

View the full changelog

- New whitespace sensitive syntax: Indentation now creates blocks like in Python. The "end" keyword has been removed.

- Dedicated macro features "ifc" and "printc"
    - The "ifc" statement is a conditional statement that executes at compile time.
    - The "printc" function executes at compile time and prints the contents of variables.
      It can display unknown variables and unevaluated expressions.
    - Simplified semantics of "if" and "print": Both features are now always executed at run
      time.

- Debug areas: "print" and "printc" functions now have an argument "area:String", that limits their output. Text is printed only when the debug area is set by the command line option "--debug-areas=area,...." which is present in both the compiler and the generated program.

- New architecture that makes the introduction of new built in types more simple. (Important for units and distributions.)

5 blueprints and 17 bugs targeted

Blueprint Priority Assignee Delivery
Use More of Python's Infrastructure Use More of Python's Infrastructure Informational 4 High Eike  12 Informational
Add Compile Time 'if' Statement to Language Add Compile Time 'if' Statement to Language 3 Medium Eike  11 Implemented
New ASCII Art Tree Subsystem New ASCII Art Tree Subsystem 3 Medium Eike  11 Implemented
Unify how calls and operators are represented in the AST. Unify how calls and operators are represented in the AST. 3 Medium Eike  11 Implemented
Specify the behavior of the "final" function Specify the behavior of the "final" function Informational 3 Medium Eike  12 Informational
Bug report Importance Assignee Status
391869 #391869 return from inside 'if' statement fails 6 Wishlist Eike  4 Won't Fix
389924 #389924 infinite recursion in parser 2 Critical Eike  10 Fix Released
381894 #381894 Generated code does not work 3 High Eike  10 Fix Released
598632 #598632 "time" is always nan. Only autonomous ODE is possible. 3 High Eike  10 Fix Released
598651 #598651 Write testcases for the example progams 3 High Eike  10 Fix Released
598838 #598838 Implement simple attribute checking 3 High Eike  10 Fix Released
600786 #600786 Treatment of local variables in the semantic checking code is broken. 3 High Eike  10 Fix Released
601484 #601484 Implement argument area="debug-area" also in runtime print 3 High Eike  10 Fix Released
391386 #391386 method definitions can not use class-name for type specifications 4 Medium Eike  10 Fix Released
598841 #598841 Update website 4 Medium Eike  10 Fix Released
598968 #598968 The Siml compiler does not work with pypy 5 Low Eike  10 Fix Released
599552 #599552 Put license information into each example program 5 Low Eike  10 Fix Released
572247 #572247 Implement print and cprint functions 6 Wishlist Eike  10 Fix Released
572256 #572256 Implement if and cif statements 6 Wishlist Eike  10 Fix Released
599737 #599737 Use debug areas instead of debug levels 6 Wishlist Eike  10 Fix Released
600436 #600436 Change cif to ifc 6 Wishlist Eike  10 Fix Released
601346 #601346 Remove calling float64 for each number 6 Wishlist Eike  10 Fix Released
This milestone contains Public information
Everyone can see this information.