SmartEiffel 2 has, at the time of writing, some bugs which prevent the use of the compiler with some Eiffel libraries, such as that of the Gobo project. It may be useful to anyone with code that needs to be portable to other Eiffel compilers, or whose code depends on the bugs patched.
This patch set provides fixes and workarounds for these problems with SmartEiffel. All of the problems patched so far are documented in SmartEiffel's bug database, and will be referred to here by their number in the database.
The aim is to get the problems fixed so that this patch set is no longer necessary in the future. Unfortunately, most patches are ugly workarounds rather than proper fixes, and so not acceptable for integration in the compiler.
Feedback can be sent via email. Feedback about the SE bugs themselves can be sent to the SE mailing list.
An installed copy of the corresponding version of SmartEiffel is needed.
From a unix shell, this translates to:
You may want to keep a copy of the old executable.
Current patch (2005-01-08): fa1.
SE version | Patch version | Bugs patched | Description |
---|---|---|---|
2.1beta5 | fa1 | 392, 431 | New SE version. 395 fixed in SE. 430 worked around in Gobo, but problem still there. |
2.1beta2 | fa1 | 392, 395, 430, 431 | Port to new SE version, 433 removed |
2.1beta1 | fa2 | 392, 395, 430, 431, 433 | Fixed <<1>> and added basic_flush patch |
2.1beta1 | fa1 | 392, 395, 430, 431 | First patch |
This list the bugs that are patched by this patch sed. Accepted means that the SmartEiffel authors have accepted that this is a bug, and so are likely to fix it properly in the future. Bugs that are not accepted as bugs will not be fixed by them, and you are welcome to ask them to reconsider if you agree the issue is worth fixing.
Smartzilla number | Title | Accepted | Comments |
---|---|---|---|
392 | ANY.same_type | no | ELKS-non compliance, regression from SE1, replacement routine is a catall. Patch does type name comparison which is not optimal. |
430 | manifest ARRAY[INTEGER] | no | Patch should be quite safe. Refused by SE because it's legacy. There is no known way to write manifest integer arrays that compile with SE and another Eiffel compiler. |
431 | export merging | yes | The patch removes all export checking, so this must be checked with another compiler, e.g. SE1. |
These SE bugs were included in previous versions of the patch set but have now been fixed.
Smartzilla number | Title | Comments |
---|---|---|
395 | Precursor called twice | Workaround patch, proper patch would require that the collection of Precursor calls does not add duplicates in the list of precursor routines. |
433 | missing basic_flush | The patch only adds an empty function so that the compilation works, so files will not really be flushed. |