The Eiffel Compiler tecomp version 0.23 released

Helmut <>
Fri, 17 Sep 2010 13:15:49 -0700 (PDT)

          From comp.compilers

Related articles
The Eiffel Compiler tecomp version 0.23 released (Helmut) (2010-09-17)
| List of all articles for this month |

From: Helmut <>
Newsgroups: comp.compilers
Date: Fri, 17 Sep 2010 13:15:49 -0700 (PDT)
Organization: Compilers Central
Keywords: Eiffel, available
Posted-Date: 18 Sep 2010 20:10:27 EDT


== Incompatible changes ==

- The keyword `assertions' has been renamed to `assertion' in
    order to be compatible with the usual style (`feature' and not
    `features', `cluster' and not `clusters', etc.).

== New features ==

=== Gnu build system introduced ===

The Eiffel compiler is now built with the GNU build system in
order to be more robust for different environments. Therefore the
building and installing of tecomp is now different. Please read
"doc/tecomp/installation.txt" to build tecomp.

=== Compilier binary and standard libraries are now installed ===

The Eiffel compiler will be installed by `make install'. The
location can be chosen by `configure'. The default location is

The libraries which come with `tecomp' will be installed (default
location `usr/local/lib/eiffel', but location can be configured
with `configure --prefix=xxxx') and tecomp is preconfigured to
search for the libraries at the proper location. The kernel
library is now implicitely included.

=== New cluster concept implemented ===

The new cluster concept described in the white paper at
[[]] -> white papers -> language
discussion has been implemented. It restricts visibility of
classes and allows resolution of class name clashes.

An introduction to the new concept including the simplification
of the ace files can be found on
[[]] -> tecomp -> ace file as well.

With the new cluster concept, libraries can have their own ace
file describing all needed other libraries. The Eiffel classes
uses by a library are not visible within the main program (unless
explicitly mentioned there).

Each library has an own view of the classes. Duplicate class
names are possible as long as there is only one class with the
same name in a view.

A rename facility to avoid the remaining name clashes has been

=== Small Eiffel programs simplified significantly ===

Small Eiffel programs don't need an ace file any more. All
classes needed by the program can be included in one main eiffel

The root class is not necessary any more, only the root

In the main Eiffel file a standard unix method of

      #! /usr/bin/env tecomp

as first line can be added to make the file executable (don't
forget the chmod!!).

With that the smallest executable Eiffel program looks like

    #! /usr/bin/env tecomp
          print("Hello world.%N")

The main eiffel file has the syntax

      Main_eiffel_file: [Ace_section] {Eiffel_class ... }+

      Eiffel_class: Normal_eiffel_class | Implicit_root_class

      Normal_eiffel_class: "class" ... "end"

      Implicit_root_class: ["feature" ... "end"]
                                                ["local" ...]

      Rule: Only one implicit root class is possible

=== Kernel library ===

- kernel library: added {FILE}.remove to delete a file

== Bugfixes ==

- overriding of a deferred feature by an effective feature
    inherited from different parents now correct

== Others ==

- reintroduced {SPECIAL}.make_empty for compatibility with

Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.