Eon/Eiffel Frequently Asked Questions - 5th Jan 1995 By Ian Leonard. All updates, queries or additions to ian@eonsw.demon.co.uk Q1. What is Eon/Eiffel? Eon/Eiffel is an implementation of the Eiffel Language devised by Bertrand Meyer. It is a Shareware product for MSDOS and Linux and commercial for Unix machines. Eiffel is a pure Object Orientated language that promotes the idea of reliable software through reuse of existing code. Its objective is to allow large, high quality applications to be developed and maintained. An FAQ for Eiffel is available via comp.lang.eiffel Eon/Eiffel is available in a Shareware form Q2. What is the current state of Eon/Eiffel? At the time of writing the MSDOS version has been released in a Beta Test state. A number of problems are currently being addressed. The main class libraries are not complete and some of the tools are still under development. Q3. How does Eon implement Eiffel? The compiler scans Eiffel source code and converts it to C++. C++ is, therefore, used as an intermediate code. In addition to the output code generation, a database is built. This can be used by later compilations for validation and cross referencing. Q4. Why use an intermediate language? The obvious advantage is less development is needed. Supporting a language that can produce programs for a variety of operating systems and machines is a major undertaking. Some C++ compiler vendors do an excellent job so we can capitalise on their work. We also have the ability to interface cleanly to C++ classes. Taking this approach makes life a lot easier. Q5. Why use C++ rather than C? C++ has a similar structure to Eiffel in that it is based around classes and supports dynamic binding (to a limited extent). It is a simpler task to generate C++ code from Eiffel and anyone with a little C++ experience will be able to understand the generated code. C++ is becoming standardised and there will be little difficulty in supporting different C++ compilers (I didn't say *no* difficulty). New releases of C++ compilers may require different code generation. For that reason there will always be a recommended version for each supported C++ compiler. Q6. Is there a Shareware, freeware or public domain version? Eon/Eiffel is not available as freeware and it is not in the public domain. A Shareware version is available for MSDOS and Linux. The registration fee is GBP 30.00 (UK Stirling) or $45 (US dollars). Q7. Does the Shareware version have any restrictions? No, none at all. An unregistered version will print a message reminding you that you do not have a registration number. This will go away once you have entered a registration number. Q8. Why should I register? If you use the compiler you must adhere to the copyright restrictions by law. By registering you are supporting our efforts to produce a product that is available to anyone. Without your support we cannot continue developing and improving the compiler. Q9. Are there any license restrictions on the use of programs generated by the compiler? Is a runtime license required? No and No. You can do what you like with your programs. Q10. Do I need to buy a C++ compiler? The Gnu C compiler is supported for Unix and MSDOS (we currently use DJGPP). These compilers are free and if you are reading this you will probably know where to find them. If not, eMail me at the above address and I will help. If you already have a commercial compiler you may or may not be able to use it. See below. Q11. Can I develop programs under Microsoft Windows? Eon/Eiffel does not yet have a development environment (Windows based or otherwise) - it is command line driven. You can run the compiler from MSDOS or a DOS window. Q12. Can I produce MS Windows programs? Not as yet, however this facility is due to be developed soon. Q13. What about Unix? Eon/Eiffel will be available on a commercial basis for any Unix machine that can be easily supported. The prices are: Single user: GBP 99 Two users: GBP 180 Five users: GBP 450 Site license: GBP 600 Pricing is subject to change. Q14. Why is MSDOS Shareware and Unix commercial? For a project like this to succeed, the developers need some kind of income. Those who use Unix boxes are more likely to have access to funding whereas MSDOS users are more likely to be students or home users. This doesn't always follow of course, so a future scheme may be to provide some DOS/MS Windows tools on a commercial basis for professional users. Q15. I want the Unix version, is it available on my machine? Supporting all the diverse Unix machines can be a major problem for a software vendor. Experience has shown that new releases of software can be limited by the time taken for porting operation, not to mention all the things you could be doing while you are tracking down various computers. A commercial compiler with the price tag of Eon/Eiffel is not going to be viable without solving this problem. So a source code license will be available at the cost of GBP 70. This allows the compiler to be compiled by the user and will cover support and source code patches. In this way there will be no supply delays and bug fixes can be issued with ease. The user will be expected to complete a non-disclosures agreement. Q16. But Linux is Unix - why is it shareware? Linux is a Unix system but at the moment it is not used in the commercial world to any great extent. It does not seem reasonable to penalise someone for using Unix rather than MSDOS, in fact it should be encouraged. Q17. Is there support for X Windows? The situation is similar to that of MS Windows. Support will be added in future versions. Q18. What about other platforms such as OS/2 and the Mac? Quite a few people have expressed an interest in these (and other) systems. If there is the demand, we can look at them but currently there just isn't the time. Q19. What libraries are supported? Libraries are being provided by Roger Browne at Everything Eiffel, but are not yet complete. For more information, eMail rogerb@eiffel.demon.co.uk Q20. What C++ compilers are supported? Unix/Linux support Gcc, the GNU C compiler. MSDOS currently support Borland and DJGPP (GNU). More compilers will be added later. In theory any compiler that conforms to ANSI C++ will be usable. The interface between the two compilers is constructed via a configuration file. Anyone keen enough can write his own (or adapt an existing one). Q21. Can I use other Eiffel vendors libraries? This depends on the library. You will need source code and providing there are no calls made to vendor specific features it will be possible. The latter point is likely to rule out compilation of Kernel classes. Q22. What tools are available? Currently there is only a browser which allows access to the database. All details of the class interface are available via the browser. A version of short/flat will soon be available as will a program for viewing the documentation. Q23. Is it a full implementation of Eiffel 3? Yes. We have attempted to adhere to the specification laid out in Eiffel: The Language. There are a few minor deviations (which are documented) but the main areas currently lacking are: 1. No garbage collector, this is next on the development list 2. The "select" statement is currently unsupported 3. There is no LACE implementation. Instead systems are built via a LACE-ish description language. A better version will be developed later. Q24. What about technical support? There will be no official support for the Shareware product. If there is a problem with the compiler, a bug report via eMail will always be responded to. Difficulties with the language can be addressed to comp.lang.eiffel where some nice person (maybe even me) is sure to help. A policy for the commercial version has not yet been decided. Q25. Will it interface to my C++ classes? We hope to make interfacing to C++ classes a feature of Eon/Eiffel. Currently, C++ classes can be "hacked" in order to make them work but a proper interface scheme is in the pipeline. Q26. Is there any documentation available? Documentation on use of the compiler is included on disk. There will be a viewer and method of printing. There is no documentation on the language itself since this is covered in various books. Q27. Are any demo programs included? There are none at the moment (donations will be gratefully received and used with acknowledgments). Q28. I know nothing about C++, will I be able to use Eon/Eiffel? In theory, if you use a supported compiler everything should be quite straightforward. Any modifications to the compiler that may be required will be explained in the documentation. Q29. What sort of machine do I need for the DOS version? To a certain extent this is dictated by the C++ compiler you intend to use. We have a 25mz 486 with 4mb of RAM and although it is a bit on the slow side, it is quite usable. Eon/Eiffel is quite hungry when it comes to disk space. Each system you build will require about 1mb so it can quickly mount up. The answer is simply to keep things tidy until we find a way of keeping the disk usage down. Q30. How big is Eon/Eiffel? The current MSDOS Shareware version compresses down to about 1mb. Q31. My Linux version of Eon/Eiffel has ELF executables, can I use them on another version of Unix that supports ELF? No because the compiler checks to make sure it is running on a Linux system. Shame on you for even thinking about it. Q32. How can I get it? The Beta copy is available via ftp only from: site: ftp.demon.co.uk dir: /pub/eiffel/eon-eiffel Q33. How can I find out more about Eiffel? There is an Internet news group comp.lang.eiffel and an Eiffel FAQ. There are also several books: Eiffel: The Language. Prentice-Hall. Bertrand Meyer. ISBN, 0-13-247925-7 This provides a complete description of the Eiffel language. Eiffel: An Introduction Prentice-Hall. By Robert Switzer. ISBN 0-13-105909-2. This presents a brief overview of the language.