Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

LORIA ANNOUNCES RELEASE -0.74 OF SMALLEIFFEL, THE GNU EIFFEL COMPILER

0 views
Skip to first unread message

GNU Eiffel press agent

unread,
May 10, 2002, 11:12:24 AM5/10/02
to
FOR IMMEDIATE RELEASE

Contact: small...@loria.fr

LORIA ANNOUNCES RELEASE -0.74 OF SMALLEIFFEL, THE GNU EIFFEL COMPILER

France -- May 10, 2002 -- Loria, a leading research laboratory in
information technology, is pleased to announce release -0.74 of
SmallEiffel, the GNU Eiffel compiler.

The most significant improvement in this new release is support for
agents, which are similar to closures in functional languages. Agents
allow a programmer to specify part or all of a computation for later
evaluation. The agent mechanism has applications in everything from
number crunching to user interface design, and provides a type-safe
callback mechanism.

Among the many other improvements in release -0.74:

* Support for the latest standards on interfacing to C and C++ source
code. This allows most if not all of the glue code between Eiffel and
C or C++ to be written in Eiffel.

* Added agent-based features in class COLLECTION, ARRAY, FIXED_ARRAY,
LINKED_LIST, TWO_WAY_LINKED_LIST, DICTIONARY, and SET. Names and
signatures comes from ETL: do_all, for_all and exists.

* The new create instruction/expression is now fully implemented and
correctly pretty-printed. The new default_create feature mechanism is
also implemented.

* The new manifest string notation for a verbatim manifest string is
now implemented.

* Added examples for the new TUPLE type in directory tutorial/tuple.

* Added many new features in class MEMORY to tune the garbage
collector. Those features may be useful for embedded applications.
(See tutorial/memory for examples.)

* Added flag -high_memory_compiler to compile_to_c. On machines with
ample RAM, this option can significantly increase compilation speed.


Dr. Bertrand Meyer invented Eiffel in the 1980's. Designed from the
ground up to be an efficient, statically typed object-oriented
language, Eiffel is unique in its support for "Design by Contract
(DbC)" -- sophisticated assertion mechanisms that aid the design,
development and documentation of Eiffel software.

Dr. Dominique Colnet began the SmallEiffel project in 1994. "I do not
believe in the future of languages such as Java or C++. I do not claim
that Eiffel is the language of the future (if any), but I think that
Eiffel is probably the best current tool for safe software production
in the context of large teams. Another important point is the
SmallEiffel compilation strategy, which demonstrates that Eiffel code
can run as fast as plain C code."

The ELJ project is actively developing SmallEiffel bindings to various
databases and GUI libraries. Geoff Eldridge, who founded ELJ, likes
Eiffel for it's clear syntax and semantics, and the self-documenting
aspects of Eiffel contracts that reduces his need for reference
materials. "So I am self-contained in my code development and hence
have more time to think about the problem and its solution." Geoff
also believes that DbC "is just brilliant. Once you have experienced
DbC you feel exposed with other languages without the facility." Geoff
also finds Eiffel to be very malleable, even though it is a statically
typed language.

Uwe Sander, the workhorse of the ELJ project who is currently writing
much of the code, agrees. "Design and development are closely related
when working with Eiffel, not strictly separated foes." Uwe also
appreciates SmallEiffel's support for interfacing to C and C++. "The
integration with existing C code is now much better than it is in any
other language I know, including C++. You can easily mess up a C++
project and let the old C style rule the project. Such a thing will
never happen in an Eiffel project. It is always clear which language
contains the top level logic."

Links

To download release -0.74, visit
http://smalleiffel.loria.fr/general/download.html

For more information about SmallEiffel, visit
http://smalleiffel.loria.fr

The SmallEiffel team is fond of receiving postcards. They are a nice
motivator.
http://SmallEiffel.loria.fr/support/support.html

Subscribe to the SmallEiffel mailing list at:
http://smalleiffel.loria.fr/support/mailing-list.html

Details about the agent mechanism can be found here:
http://www.eiffel.com/doc/manuals/language/agent/page.html
Or after downloading SmallEiffel, see the examples in the directory
tutorial/agent.


The home page for the ELJ project is here:
http://elj.sourceforge.net/

For more information on Eiffel in general, visit one of these sites:
http://eiffel.com
http://www.cetus-links.org/oo_eiffel.html

Victor B. Putz

unread,
May 10, 2002, 12:01:03 PM5/10/02
to
gnu_eiffe...@yahoo.com (GNU Eiffel press agent) writes:

> * Support for the latest standards on interfacing to C and C++ source
> code. This allows most if not all of the glue code between Eiffel and
> C or C++ to be written in Eiffel.

OH this will be nice.

> * Added many new features in class MEMORY to tune the garbage
> collector. Those features may be useful for embedded applications.
> (See tutorial/memory for examples.)

You know, this may actually get me interested in my ePalm project
again. These added features plus the ability to use agents sound really
great; fantastic work from the SE team!

-->VPutz

Ulrich Windl

unread,
May 13, 2002, 9:59:22 AM5/13/02
to
However there are several incompatibilities as well: "lib_std" has
been split into lib/kernel and lib/base (and more). Classes
STD_FILE_READ and ARGUMENTS no longer exist, etc. I found no way to
compile a class with both releases of the compiler. And the
documentation only refers to examples, where one can guess how to use
the features. I#d really wish it were documented a little better.

Ulrich

gnu_eiffe...@yahoo.com (GNU Eiffel press agent) writes:

Greg C

unread,
May 13, 2002, 6:32:21 PM5/13/02
to
Ulrich Windl <wiu0...@rcips2.cip.uni-regensburg.de> wrote in message news:<snf1ycg...@rcips2.cip.uni-regensburg.de>...

> However there are several incompatibilities as well: "lib_std" has
> been split into lib/kernel and lib/base (and more). Classes
> STD_FILE_READ and ARGUMENTS no longer exist, etc. I found no way to
> compile a class with both releases of the compiler. And the
> documentation only refers to examples, where one can guess how to use
> the features. I#d really wish it were documented a little better.
>
> Ulrich
>

Ulrich, I'm confused here. With my release version I can run "short"
and see all the classes you mention. STD_FILE_READ is obsolete, but
still available. You should just get annoying warning messages.

It might be (and this is a real shot in the dark) that you are having
problems because the release was installed on top of an older version.
In this case, the load paths or something else may be messed up.
Reinstalling to an empty directory might take care of it.

Greg C

Frank Mitchell

unread,
May 17, 2002, 1:59:07 AM5/17/02
to
If I may chime in:

What really interested me about the new release was the addition of
Agents. However, running 'short' on ROUTINE, FUNCTION, PREDICATE, and
TUPLE gives me the following:

class interface FUNCTION
end of FUNCTION

class interface ROUTINE
end of ROUTINE

class interface PREDICATE
end of PREDICATE

class interface TUPLE
end of TUPLE

From the code samples and library code, ROUTINE et al. implement `call'
and `item' ... but it would be nice if 'short' provided a little more
information.

[Yes, I know I can just trawl through the docs on www.eiffel.com, and
try a few test programs. I just like docs.]

--
Frank Mitchell (fra...@bayarea.net)

Please avoid sending me Word or PowerPoint attachments.
See http://www.fsf.org/philosophy/no-word-attachments.html

Greg C

unread,
May 17, 2002, 12:46:14 PM5/17/02
to
Frank Mitchell <fra...@bayarea.net> wrote in message news:<3CE49C2B...@bayarea.net>...

> If I may chime in:
>
> What really interested me about the new release was the addition of
> Agents. However, running 'short' on ROUTINE, FUNCTION, PREDICATE, and
> TUPLE gives me the following:
>
> class interface FUNCTION
> end of FUNCTION
>
> class interface ROUTINE
> end of ROUTINE
>
> class interface PREDICATE
> end of PREDICATE
>
> class interface TUPLE
> end of TUPLE
>
> From the code samples and library code, ROUTINE et al. implement `call'
> and `item' ... but it would be nice if 'short' provided a little more
> information.

Yeah, that one's been kicked around the Smalleiffel mailing list. It
turns out that a lot of the classes used to implement agents are
generated automagically by the compiler and don't have a real class
definition in the library. So if you don't want to wade through the
ETL3 drafts at eiffel.com then your best bet is to examine the
examples in the tutorial\agent and tuple subdirectories. But since
those examples aren't exactly thorough, you're probably still going to
have to wade through PDF drafts.



> [Yes, I know I can just trawl through the docs on www.eiffel.com, and
> try a few test programs. I just like docs.]

Sorry :-(

Greg C

0 new messages