Re: Problems porting Gobo to SmartEiffel

Eric Bezault <ericb-D6Qt/9opevxWk0Htik3J/[email protected]> Tue, 14 Aug 2007 19:37:37 +0200
Newsgroups gmane.comp.lang.eiffel.gobo.general
Message-ID <[email protected]>
Chris Saunders wrote:
> This is a question for Eric Bezault regarding a post that you made to
> es-devel regarding the difficulty of porting Gobo to SmartEiffel.  I was
> asked to post the same question here so here goes.
> 
>  
> 
> I'm curious Eric about the difficulties you encountered while trying to port
> Gobo. Just something which could give me a general idea - I had no idea that
> their changes were that drastic.  A few people posted expressing an interest
> in this.

It has always been a big effort to try to maintain and develop
the Gobo library classes with the various Eiffel compilers when
these compilers agreed that they were implementing the same language.
Now we clearly have two languages (even if the syntax is very similar),
so it's even more difficult. The main problem with SE, as was already
reported by other people, is that they don't pay that much attention
about backward compatibility. They are always looking forward without
realizing that they are breaking existing code. I just had enough
spending most of my time trying to find impossible ways to compile
my code with those various compilers. Even when compilers are
implementing an evolving language, if they don't support most of
the previous versions of the language between releases, it's very
hard to find ways to have code that can compile with this new
Eiffel compiler and also with the other older Eiffel compilers.

Among other things, SE has just removed or changed the semantics
of kernel features (instead of using the obsolete mechanism as
done by other compilers). They don't use the convert mechanism
which is so handy during language transition periods as shown
by EiffelStudio. Their syntax and semantics for very basic
things such as manifest constants is different. Their conformance
rules is different, which makes interoperability difficult not
only for polymorphism but also for multiple inheritance where
the feature adaptation clauses of the parents that compile with
one Eiffel compiler will not compile with the other. I can probably
continue the list, but if I dropped the support for SE in Gobo it's
because I didn't want to waste anymore time on this topic.

-- 
Eric Bezault
mailto:ericb-D6Qt/9opevxWk0Htik3J/[email protected]
http://www.gobosoft.com