From: Eric B. <er...@go...> - 2001-11-25 20:00:29
|
Hello, Two or three weeks ago I said that I would look at the portability of the Eiffel construct "$feature_name" with the different Eiffel compilers. I finally found time to do it this weekend. This Eiffel construct is indeed portable. So, while I was replacing the existing code (using Cecil calls to implement the Expat callbacks) I had a closer look at the remaining C code in $GOBO/library/xml/impl/expat/spec/c and realized that this C glue was not needed and that we could call the Expat API directly from Eiffel without the need for extra C code. Of course this was not as easy to remove that C code as it might seem at first when reading this message (I had to check with all Eiffel compilers on both Windows and Linux), but in the end I managed to remove that C code. This implies two good news: (1) the C glue was only written for SmallEiffel and ISE Eiffel,but the new code works with the other Eiffel compilers as well; and most importantly: (2) there is no C code in the current CVS version of Gobo anymore. This means that the Gobo code in CVS is now fully compilable with all Eiffel compilers (one of the main goals of Gobo), and the Gobo installation if currently very easy since there is no extra C code to compile (and as a consequence no need for Makefiles, no need to compile this C code in different flavor depending on the Eiffel compiler to be used and/or on the underlying platform, etc.). I have tested the Expat XML parser in 'geant' and 'gexace' by running the bootstrap and the test suite as follows: Under Windows NT 4.0 (Service Pack 6): C compiler: Visual C++ 6.0 Expat: 1.95.2 Gobo test suite in debug mode Eiffel compilers: ISE Eiffel 5.0.35 Halstenback 4.0 Visual Eiffel 4.0 SmallEiffel -0.74b11 Under Linux RedHat 7.1 (kernel 2.4.9): C compiler: gcc 2.96 Expat: 1.95.1 Gobo test suite in optimized mode Eiffel compilers: ISE Eiffel 5.1.5 Halstenback 4.0 Visual Eiffel 4.0 SmallEiffel -0.74b11 (Note that under Linux with Visual Eiffel 4.0 you should replace: if handle /= Void then by: if handle /= default_pointer then in feature DIRECTORY_INPUT_STREAM.make.) If you also want to try 'geant' and 'gexace' with the Expat XML parser and see by yourself, you just have to set the environment variable $GOBO_XML_PARSER and then run the command "geant compile_<compiler>" in the corresponding source directories to recompile these two tools (of course you need to have Expat installed on your computer). 'geant' will detect the environment variable and instruct 'gexace' to include the expat clusters of the Gobo XML library for the compilation of the corresponding tool. -- Eric Bezault mailto:er...@go... http://www.gobosoft.com |