[ Home Page ] [ Eiffel Archive ] [ Tools for Eiffel Developers ]
Eon Eiffel v3122p4 betaWritten by Ian Leonard.
eon3122p4.zip (1,087,399 bytes) -
DOS version
eon3122p3.linux.taz (535,647
bytes) - Linux version
eon.faq (11,351 bytes) - Eon Eiffel FAQ
ftp://ftp.demon.co.uk/pub/eiffel/eon-eiffel/
(for downloads)
http://hepunx.rl.ac.uk/atlas/oo/eiffel/eon_compiler.html
(for information)
Unzip the distribution into a convenient directory, for example c:\eon.
If you use a directory other than c:\eon, edit your autoexec.bat file to add the line
set EON=drive:\directory\eon
and reboot.
Select a C++ compiler. You may set up a compiler by either:
Add "\eon\bin" to your PATH environment variable.
Make sure that you have at least 50 files set in your CONFIG.SYS file.
You may want to set the USER environment variable. This allows the compiler to add an identifier to database records. For example:
set USER=ANAME
Change to the "eon\demos\hello" and build the database with the command
eon -v1 hello
If all goes well you will build a program called "hello.exe". When you run "hello.exe" you should get a greeting message. This indicates that the system is ready to use.
Change to /usr directory and run the following command:
gzip -r -c | tar xvf -
This will create a directory called "eon31XX" in your "/usr" directory.
If you want to place the "eon" directory elsewhere, do so, and then add the EON variable to your environment. For example, to put "eon31XX" in /u/compilers:
cd to /u/compilers
gzip -r -c | tar xvf -
EON=/u/compilers/eon31XX ; export EON (Bourne shell)
Select a C++ compiler. You may set up a compiler by either:
Add "$EON/bin" to your PATH environment variable.
Change to the "$EON/demos/hello" and build the database with the command
eon -v1 hello
If all goes well you will build a program called "hello". When you run "hello" you should get a greeting message. This indicates that the system is ready to use.
MSDOS systems are limited to 506 classes. This odd limit is imposed by problems implementing Unique constants on a machines with a 16 bit integer size. It is a compromise figure that may change in the future.
There is a limitation on the number of Unique constants on MSDOS systems. This is due to the 16 bit integer size. You are limited to 65 Unique constants per class.
Eon/Eiffel differs from the standard described in only a few small ways. However a number of features have not yet been implemented. These are described in the README file.
It is only possible to have one class per file.
The %U, NUL special character doesn't work. This is because the C printf() used by Eon/Eiffel cannot output a \0.
Strip only includes ancestors up to ANY. This keeps the size of the generated C++ code down.
The currently supported version of DJGPP does not support C signal(). Until a ^C handler is included temporary files will not be tidied up after a keyboard interrupt.
This has been seen to occur on a machine with limited memory and has
"SHARE" installed. Share allocates buffers which consume a large
amount of memory. Either use the /F:xxxx switch to allocate a different
amount of memory or, if possible, don't use it at all.NOTE. Microsoft recommend running "SHARE" with /F:5100 and /L:512
This has been observed a number of times. Removing "SHARE" from the system can cure the problem.
NOTE. Microsoft recommend running "SHARE" with /F:5100 and /L:512
This has been seen when running a machine without EMM386 loaded. Add DEVICE=C:\DOS\EMM386.exe 4096 to your config.sys file. Vary the number 4096 according to how much memory you have.
The browser should use the CFTIME environment variable but this is only supported in Unix at the moment. CFTIME is used to set the format of the time and date when displayed.
If the EON environment variable is set to a different name to that produced by C's getcwd() function, problems will occur.
You will see a message complaining about duplicate classes. One of the path names printed will *not* be that of the EON variable, note this down.
Take the following action:
- Change to $EON
- delete the database with "rm -r class.edb"
- set EON to point to the path name you noted
- Change to the "hello" directory
- Rebuild the database with "eon -v1 hello"
This problem will be corrected in a later release
Re-run "eon" specifying the -R flag.
When classes are being compiled, the C++ compiler may complain about prototype inconsistencies. Eon generates C++ prototypes based on Eiffel's "external" declaration. There is no way that these can be guaranteed to match those in a compilers header files.
The most common problem seems to be the addition of the "const" declaration.
eg. for atoi() Eon generates atoi (char *).
gcc expects atoi(const char *).Currently the only way to resolve this is to change the compilers header file or to make a call to a matching C function call which can act as a wrapper.
This is due to a new C++ type called "bool". By default Eon/Eiffel assumes that this is implemented in you compiler. This message will result if this is not the case.
You should add:
#define NEEDS_BOOL to "eon/bibt/ert.H
If you are using a gcc compiler with a version number of less than 2.6.0, you will need to do this.
This is the reverse of the above "bool" type problem. Your compiler supports the "bool" type but you still have NEEDS_BOOL defined. You should track down the offending "#define NEEDS_BOOL" line in "eon/bibt/ert.H" and remove it.
The shareware version of Eon/Eiffel comes with no warranty and no obligatory support.
Run the program "vdoc". Use CURSOR UP/DOWN and PAGE UP/DOWN to browse or CURSOR LEFT/RIGHT followed by ENTER to select a topic.
There is a help facility and a hardcopy print option.
[ Home Page ] [ Eiffel Archive ] [ Tools for Eiffel Developers ]