Frequently Asked Questions



Table of contents

Q01: Why the name SmallEiffel The GNU Eiffel Compiler? 
Q02: What's the matter with version numbering? 
Q03: Is it possible to have the complete Eiffel source code of SmallEiffel? 
Q04: Is it possible to use SmallEiffel for large/commercial applications? 
Q05: Is it possible to do incremental compilation with SmallEiffel? 
Q06: Is there a SmallEiffel mailing list? 
Q07: What about the Guru section? 
Q08: Is it difficult to switch from ISE to SmallEiffel? 
Q09: Are there mirror FTP sites for SmallEiffel? 
Q10: Is it possible to use the Boehm-Demers-Weiser garbage collector with SmallEiffel? 
Q11: Why don't you post more messages in newsgroups and/or mailing lists? 
Q12: It is possible to create applets with compile_t_jvm? 
Q13: Where do I send bug reports? 
Q14: Is there a mechanism to precompile libraries? 
Q15: How is SmallEiffel compiled? 
Q16: How do I keep informed about SmallEiffel? 
Q17:
 
What documentation is provided with SmallEiffel?
Where can I find Eiffel documentation?
 

Questions and answers

Q01: Why the name SmallEiffel The GNU Eiffel Compiler? 
A01: SmallEiffel comes from the mixing of the names Smalltalk and Eiffel. Our aim is to offer an Eiffel development environment as easy to use as Smalltalk and as safe as Eiffel. Since version -0.82, SmallEiffel has been promoted by the Free Software Foundation the official GNU Eiffel Compiler.
 
Q02: What's the matter with version numbering
A02: Version numbering uses negative numbers. The first distributed version was numbered -0.99, the second one -0.98, the third -0.97, and so on. Version number -0.0 should correspond to the very best Eiffel compiler on this planet :-) 
 
Q03: Is it possible to have the complete Eiffel source code of SmallEiffel
A03: Since it is the GNU Eiffel Compiler, the complete source code of SmallEiffel is of course in the distribution. The source code for additional libraries is also provided.
 
Q04: Is it possible to use SmallEiffel for large/commercial applications
A04: It is very possible to use SmallEiffel for a large application. An Eiffel compiler is a really big project and SmallEiffel itself is fully written in Eiffel. SmallEiffel is completely free and any private compagny can use SmallEiffel freely, and distribute freely the products made with it. They do not have to pay royalties. However, SmallEiffel doesn't come with any warranty (please read the COPYING file in the distribution). For extended support as well as consulting, see here
 
Q05: Is it possible to do incremental compilation with SmallEiffel? 
A05: Before release -0.91 the answer was no. The answer is now YES. Because of the SmallEiffel type inference mechanism, SmallEiffel always produces all needed C files from scratch. As old C files are automatically saved, only modified C files are recompiled. See man/compile for details. 
 
Q06: Is there a SmallEiffel mailing list?
A06: Yes! SmallEiffel users and developpers can share their experiences and ideas by subscribing to the SmallEiffel official mailing list.
 
Q07: What about the Guru section
A07: Some feature section of the SmallEiffel library are labelled with : 
     feature -- The Guru section :  
If you really need your software to be portable on other Eiffel compilers, do not use those features. 
 
Q08: Is it difficult to switch from ISE to SmallEiffel
A08: If your original ISE software only uses simple types like INTEGER, STRING, ARRAY, BOOLEAN, CHARACTER and DOUBLE, it is usually very simple. It is a little bit difficult for simple input/output (used with predefined `io') because some features have different names. If your original software heavily relies on the EiffelBase library, it may be very difficult. For example, one must keep in mind that SmallEiffel.ARRAY inherit SmallEiffel.COLLECTION and that ISE library also have a class COLLECTION. By the way, subclasses of ISE.COLLECTION cannot be used. The ISE.LINKED_LIST can be used in conjunction with SmallEiffel.ARRAY because ISE.LINKED_LIST do not inherit ISE.COLLECTION (no clash). 
 
Q09: Are there mirror FTP sites for SmallEiffel? 
A09: Australia ftp://ftp.progsoc.uts.edu.au/pub/Eiffel/SmallEiffel/ 
Austria http://gd.tuwien.ac.at/pub/languages/SmallEiffel/ 
USA ftp://ftp.cs.rit.edu/pub/mirrors/SmallEiffel/ 
 
Q10: Is it possible to use the Boehm-Demers-Weiser garbage collector with SmallEiffel? 
A10: Yes.
You just have to disable the generation of the GC by SmallEiffel (option -no_gc) and replace it by the BDW library. Note that the BDW GC can be easily added because SmallEiffel only uses malloc/realloc/calloc/free.
You can download the BDW library from : 
http://reality.sgi.com/boehm_mti/gc_source 
How to integrate the Boehm-Demers-Weiser garbage collector with SmallEiffel (from a message of Dietmar Wolz) : 
  1. Make the gc.a file from the BDW package. Then move this gc.a file to /usr/lib/libgc.a.  
  2. Move gc.h the to working directory and add the following lines: 

  3. #define malloc(n) GC_malloc(n) 
    #define calloc(m,n) GC_malloc((m)*(n)) 
    #define realloc(p,n) GC_realloc((p),(n)) 
    #define free(p) GC_free(p) 
  4. instead of calling 

  5.     "compile -o executable -boost -O root" 
    now call  
        "compile -o executable -boost -O root -no_gc -lgc -include gc.h 
 
Q11: Why don't you post more messages in newsgroups and/or mailing lists?
A11: First, because we strongly believe that too much information kills information. Scientists call this "cognitive overload". :)
Second, because we don't have the time. It takes an awful amount of time to follow discussions, whichever their quality. We try to do that. But it's even more time-consuming to be part of them. So, we often have too choose betwen posting/mailing, and working directly on SmallEiffel. Since our mailboxes tend to overflood, we generally choose the latter :)
 
Q12: It is possible to create applets with compile_t_jvm?
A12: Not yet. SmallEiffel was designed to compile Eiffel applications to C code or Java bytecode, but not applets.
 
Q13: Where do I send bug reports?
A13: You can send them either to Dominique.Colnet@loria.fr and Olivier.Zendra@loria.fr, or to the SmallEiffel mailing-list.
Don't worry if you don't get an ack: we don't send them because it takes time, but we store all the bug reports we receive. And we even try to fix them ASAP! :)
 
Q14: Is there a mechanism to precompile libraries?
A14: No, there is no such mechanism in SmallEiffel. But if you're concerned about speed, don't worry, precomputed libraries are not the only way to be fast ! Just try SmallEiffel, and you'll see :)
 
Q15: How is SmallEiffel compiled?
A15: With Eiffel optimization options -boost and -no_gc. The garbage collector is indeed useless on the SmallEiffel commands: since SmallEiffel did not include a GC in its first versions, we were very careful about memory when we developped it.
With C compilation optimizations turned on (it depends on the C compiler used; we generally use GCC).
The resulting executables are stripped.
 
Q16: How do I keep well informed about SmallEiffel?
A16: The best way is to keep an eye on our web pages, more especially on the What's New? page and the History of Changes.
People who want detailed information may also decide to stay tuned to the SmallEiffel mailing-list.
 
Q17:
 
What documentation is provided with SmallEiffel?
Where can I find Eiffel documentation?
A17: The documentation provided with SmallEiffel is a transcript of what you can find on the original SmallEiffel Web site, at http://SmallEiffel.loria.fr. It is related only to the use and internals of SmallEiffel (yes, we know we still have to improve it ;) ).
For information and documentation about the Eiffel language, check the links on our Internet resources page. Note that we are not aware of any complete Eiffel language manual freely available on the Web (yet?).

[Line]
Copyright © Dominique COLNET and Suzanne COLLIN - <colnet@loria.fr>
Last update: 14 May 1999, by OZ.