Related articles |
---|
The Eiffel Compiler tecomp version 0.23 released helmut.brandl@gmx.net (Helmut) (2010-09-17) |
From: | Helmut <helmut.brandl@gmx.net> |
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 |
documentation: http://tecomp.sourceforge.net
download: http://www.sourceforge.net/projects/tecomp
== 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
`/usr/local/bin'.
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
[[http://tecomp.sourceforge.net]] -> 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
[[http://tecomp.sourceforge.net]] -> 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
introduced.
=== 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
file.
The root class is not necessary any more, only the root
procedure.
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
do
print("Hello world.%N")
end
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" ...]
"do"
Compound
"end"
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
EiffelStudio
Return to the
comp.compilers page.
Search the
comp.compilers archives again.