tecomp-user Mailing List for tecomp: The Eiffel Compiler (Page 4)
Status: Beta
Brought to you by:
helmut_brandl
You can subscribe to this list here.
2008 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(10) |
Sep
(12) |
Oct
|
Nov
(2) |
Dec
(9) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2009 |
Jan
(17) |
Feb
(9) |
Mar
(6) |
Apr
(3) |
May
(1) |
Jun
(2) |
Jul
|
Aug
|
Sep
(5) |
Oct
|
Nov
(11) |
Dec
(1) |
2010 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
(1) |
Oct
(2) |
Nov
|
Dec
|
2011 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Helmut B. <hel...@gm...> - 2008-09-29 21:54:23
|
Eric Bezault wrote: > Helmut Brandl wrote: > >> Checkout the new version 0.4 and try it. It is fun to program in a clean >> object oriented language like Eiffel. >> > > Does that mean that you will implement tecomp in Eiffel from now on? > > Hello Eric, before I answer your question: You subscribed to the list with a different name than you posted. Therefore as an administrator, I had to let your message through explicitely. To your question: The implementation language of tecomp is currently C++. The reason is simple: I want to make source distributions which anyone can compile with tools which are or can be made available on nearly all machines. And that tool is the gnu C/C++ compiler gcc. In order to have tecomp on your machine you just need the gnu C++ compiler and make. With that you can compile tecomp without any problems. If I wrote tecomp in Eiffel (which I would love to do) I would pose the restriction on any user that he has an installed Eiffel compiler on his machine. Unfortunately this is not yet the case with 99.999% of SW developers (let us try to change that!). Distributing tecomp in Eiffel would severely limit potential users. So it is an hen and egg problem. But the long term goal is to transcribe tecomp to Eiffel. Before that the following steps have to be done: - Implementation of the full Eiffel language (expected by the end of the year). - Implement the possibility to compile to C. That done, the distribution problem will be solved. Then I can add a compiled to C version of the tecomp source code to the distribution and anyone will be able to bootstrap tecomp with standard tools. I know that you don't like Eiffel compilers not written in Eiffel. But if you have any suggestions to resolve the distribution problem, go ahead and tell me. Maybe I overlooked some possibility. Regards Helmut The Eiffel Compiler/Interpreter: http://tecomp.sourceforge.net Download: http://www.sourceforge.net/projects/tecomp |
From: Eric B. <er...@us...> - 2008-09-29 20:58:18
|
Helmut Brandl wrote: > Checkout the new version 0.4 and try it. It is fun to program in a clean > object oriented language like Eiffel. Does that mean that you will implement tecomp in Eiffel from now on? -- Eric Bezault mailto:er...@go... http://www.gobosoft.com |
From: Helmut B. <hel...@gm...> - 2008-09-29 20:34:40
|
Hello all, there has been an outage of the mailing list at sourceforge. If you have posted any messages, they have been lost. The mailing list now is working again, so you can post messages if needed. Regards Helmut |
From: Helmut B. <hel...@gm...> - 2008-09-29 20:28:47
|
The Eiffel Compiler/Interpreter tecomp version 0.4 has been released. Version 0.4 makes void safety, attached/detachable types, void tests and object tests available. Furthermore old expressions are fully supported as well. With version 0.4 tecomp is again one step closer in implementing full standard Eiffel. Version 1.0 (Standard Eiffel compliance) will be reached by the end of the year. In the meantime one release per month can be expected (releases up to now: june: 0.1.1, 0.1.2; july: 0.2; august: 0.3; september: 0.4). Checkout the new version 0.4 and try it. It is fun to program in a clean object oriented language like Eiffel. Because tecomp runs the Eiffel code in its virtual machine the edit-compile-run cycle is very fast. >From a user point of view tecomp works like an interpreter. The tutorial has been updated as well to reflect to new implemented features. Regards Helmut The Eiffel Compiler: http://tecomp.sourceforge.net Download: http://www.sourceforge.net/projects/tecomp |
From: Helmut B. <hel...@gm...> - 2008-09-28 02:37:14
|
The Eiffel Compiler/Interpreter tecomp version 0.4 has been released. Version 0.4 makes void safety, attached/detachable types, void tests and object tests available. Furthermore old expressions are fully supported as well. With version 0.4 tecomp is again one step closer in implementing full standard Eiffel. Version 1.0 (Standard Eiffel compliance) will be reached by the end of the year. In the meantime one release per month can be expected (releases up to now: june: 0.1.1, 0.1.2; july: 0.2; august: 0.3; september: 0.4). Checkout the new version 0.4 and try it. It is fun to program in a clean object oriented language like Eiffel. Because tecomp runs the Eiffel code in its virtual machine the edit-compile-run cycle is very fast. >From a user point of view tecomp works like an interpreter. The tutorial has been updated as well to reflect to new implemented features. Regards Helmut The Eiffel Compiler: http://tecomp.sourceforge.net Download: http://www.sourceforge.net/projects/tecomp |
From: Helmut B. <hel...@gm...> - 2008-09-25 19:02:48
|
The Eiffel Compiler/Interpreter tecomp version 0.4 has been released. Version 0.4 makes void safety, attached/detachable types, void tests and object tests available. Furthermore old expressions are fully supported as well. With version 0.4 tecomp is again one step closer in implementing full standard Eiffel. Version 1.0 (Standard Eiffel compliance) will be reached by the end of the year. In the meantime one release per month can be expected (releases up to now: june: 0.1.1, 0.1.2; july: 0.2; august: 0.3; september: 0.4). Checkout the new version 0.4 and try it. It is fun to program in a clean object oriented language like Eiffel. Because tecomp runs the Eiffel code in its virtual machine the edit-compile-run cycle is very fast. From a user point of view tecomp works like an interpreter. The tutorial has been updated as well to reflect to new implemented features. Regards Helmut The Eiffel Compiler: http://tecomp.sourceforge.net Download: http://www.sourceforge.net/projects/tecomp |
From: Helmut B. <hel...@gm...> - 2008-09-16 19:21:40
|
Hello Greg, I discovered today that there exists the "mono" project which makes .NET available on the Unix world. That changes the picture a lot. So I am considering now of having a .NET backend for tecomp in the future. On the mono site I have found that a version of gcc is available which generates .NET il-code. Since I am considering making a variant of tecomp which can act as language frontend for gcc, the .NET il-code generation might come for free. I will publish a roadmap paper for tecomp soon on the tecomp website. Regards Helmut The Eiffel Compiler: http://tecomp.sourceforge.net Download: http://www.sourceforge.net/projects/tecomp Helmut Brandl wrote: > Hello Greg, > > thank you for your interest in tecomp. I was interesting for me to > read that I am not the only one, who is unhappy with the available > Eiffel compilers. I don't know if we are unhappy for the same reasons. > I am happy to tell you my basic thoughts which drove me towards the > development of tecomp. > > First of all I am convinced that Eiffel is one of the best programming > languages of the imperative kind around. Allthough existing for more > than 20 years now I was wondering whether it has not yet had the > success it deserves. > > I have tried different compilers for Eiffel. The first one was > SmartEiffel. SmartEiffel is a pretty good Eiffel compiler which > generates high performance code. It has the classical architecture of > compiling first to C and then to native. The thing which did not > convince me was the mindset of the SmartEiffel team of trying to > establish their own dialect of Eiffel and the fact that being a > research project might not attract any professional software > developing companies (they are looking for standards and a reliable > toolsets). > > The next thing I tried was EiffelStudio. But after the installation I > was horrified by the 500 MBytes installed size and by the huge files > needed even to compile miniprojects like e.g. a simple "Hello, > world!"-program. > > The good thing is that the Eiffel language is now standardized, so a > stable base for developing an Eiffel compiler and using Eiffel in a > professional context is given. > > I decided to write my own Eiffel compiler which compiles standard > Eiffel. But I didn't want to just copy the compiling strategy of the > other available compilers. Since in the classical Eiffel compilers > (which compile to native via C) the bottleneck is the C compiler. So I > decided to compile to an internal representation and as a first step > interpret the internal representation in a virtual machine. The result > is amazing. Compilation to internal represetation is pretty fast and > running the code tecomp's virtual machine has reasonable runtime > performance (clearly not comparable to native code, but comparable to > other virtual execution engines without a JIT). > > The internal representation can be used as a base for other backends. > Clearly tecomp will be able to compile to C, so that any valid C > compiler can convert the code into high performance native code. I am > also thinking about integrating tecomp into gcc or combine it with the > "low level virtual machine" (llvm). But that has not yet been decided > because the first goal is to reach compliance with the Eiffel standard > by the end of the year. And there is still a lot to be done (garbage > collection, exception handling, void safety, etc.). > > As parser I use bison/flex which are the gnu versions of yacc/lex. I > used bison/flex because I know them well. But anyhow, the parser/lexer > are just a minor part of an Eiffel compiler and bison/flex do a good > job and have a suberb performance. > > I want tecomp to be able to run on all unices and on windows so I > don't want to concentrate on anything that is just available on one of > the operating systems (e.g. I don't know of any versions of .NET on > unix). > > If you want to discuss tecomp or Eiffel issues further I would like to > invite you to the tecomp maling list > (http://sourceforge.net/mail/?group_id=208120), so that the other > tecomp users can benefit from the discussion. Any > thoughts/remarks/suggestions/critique are welcome. > > Regards > Helmut > > > Greg Compestine wrote: >> Message body follows: >> >> Hello Mr. Brandl, >> >> I was pleasantly surprised to see a recent post in >> comp.lang.eiffel about the tecomp project. I'd been thinking >> for a while of taking a stab at writing my own compiler, >> since I've been pretty unhappy with the implementations I've >> encountered to date. >> >> I'm interested in finding out about your reasons for >> undertaking this project, and what sets tecomp apart from >> the other Eiffel compilers. >> >> My own notion for a compiler was to use Antlr to create the >> parser, and .Net for the virtual machine. Antler, because >> I've done a bunch of bottom up parsers in the past, and this >> looks different. And .Net to eliminate the problems with >> integrating Eiffel to third party libraries. (I've recently >> gone through a nightmare experience of wrapping a C++ >> library in Eiffel. The available facilities are terribly >> inadequate, and I could have accomplished the same thing in >> .Net in a few minutes, instead of a few months.) >> >> Thanks, >> >> Greg C >> >> > |
From: Katharina B. <kat...@gm...> - 2008-09-14 14:55:28
|
Hello, I installed tecomp 0.3 on archlinux with linux kernel 2.6.26 - it works fine. Kathi Brandl |
From: Helmut B. <hel...@gm...> - 2008-09-12 20:12:45
|
The next release (0.4) of tecomp is currently in preparation. It is planned to be released within september 2008 and will probably contain the major points - void safety (i.e. valitiation of proper initialization) - object test locals (i.e. detachable types and test of the attachment status) - old expressions and some other improvements in the area of the kernel library (file open/close, etc.). Any comments/recommendations/wishes are welcome. Regards Helmut |
From: Helmut B. <hel...@gm...> - 2008-08-31 16:32:25
|
A package with compiled binaries for Windows has been released. If you don't have cygwin installed on your machine, download the file tecomp_0_3_windows.zip, unzip it and you will find the binaries tecomp.exe (tecomp compiler) and atecomp.exe (asserted version of tecomp) in the directory tecomp\gen_dir\bin. Have fun. Regard Helmut http://www.sourceforge.net/projects/tecomp |
From: Helmut B. <hel...@gm...> - 2008-08-30 02:36:28
|
Version 0.3 of "The Eiffel Compiler" tecomp has been released. The Eiffel Compiler works on Unix and Windows environments. Tecomp is a command line compiler for the Eiffel language. It compiles the Eiffel source code into an internal representation and executes it in its virtual machine. In its simplest configuration it works like an Eiffel interpreter. Version 0.3 already implements a considerable subset of the Eiffel language. Tecomp is expected to accept the full Eiffel language by the end of 2008. Precompilied binaries for Windows will be released in the next days. Without the precompiled binaries you need an installation of cygwin (see http://www.cygwin.com) to compile tecomp for Windows. See the release notes or the README for differences to the previous version and for installation. Regards Helmut Brandl The Eiffel Compiler: http://www.sourceforge.net/projects/tecomp Documentation: http://tecomp.sourceforge.net |
From: Helmut B. <hel...@gm...> - 2008-08-27 13:10:36
|
Hello David, just another remark. If you will run into another segfault, try to execute your code with the asserted version of the compiler. You get the asserted version by running make atecomp in the tecomp directory. This makes the executable atecomp into gen_dir/bin. If you have already run the examples, it should be there. The asserted version gives much more information in case of an unexpected runtime error of tecomp. I have executed your code with atecomp and immediately discovered what went wrong. Since atecomp executes slower than tecomp (many assertions are checked) this is recommendable only in case of strange runtime errors. Regards Helmut Helmut Brandl wrote: > Come David wrote: > >> When I compile with tecomp application.ace, I get a segfault. >> If i remove all occurence of TEST in the first file, all is ok. >> >> >> > Multiple source files are supported. > > But you have used selective export (feature {ANY}) which is not yet > implemented. Unfortunately I have not yet checked properly in tecomp > that you try to use this not yet implemented feature. > > If you change the line > > feature {ANY} > > to > > feature > > your code compiles well. > > > Anyhow, feature {ANY} is not the recommended style, because export to > ANY means export to all. > > By the way, as soon as you run your program, you will find out, that you > did not create the array. > > A create a.with_capacity(200) is missing. But that error will be > reported properly by tecomp. > > The bug with the segfault will be corrected in the next release. For the > time being better don't use selective export. Either export to all > (feature) or to none (feature{NONE}). > > Regards > Helmut > > |
From: Helmut B. <hel...@gm...> - 2008-08-27 13:03:41
|
Come David wrote: > When I compile with tecomp application.ace, I get a segfault. > If i remove all occurence of TEST in the first file, all is ok. > > Multiple source files are supported. But you have used selective export (feature {ANY}) which is not yet implemented. Unfortunately I have not yet checked properly in tecomp that you try to use this not yet implemented feature. If you change the line feature {ANY} to feature your code compiles well. Anyhow, feature {ANY} is not the recommended style, because export to ANY means export to all. By the way, as soon as you run your program, you will find out, that you did not create the array. A create a.with_capacity(200) is missing. But that error will be reported properly by tecomp. The bug with the segfault will be corrected in the next release. For the time being better don't use selective export. Either export to all (feature) or to none (feature{NONE}). Regards Helmut |
From: Come D. <dav...@wa...> - 2008-08-27 12:28:57
|
Hello. I'm discovering tecomp and I'm trying to compile a simple project with 2 source files. File 1: --APPLICATION.e class APPLICATION create make feature -- Initialization make -- Run application. do create t.make io.put_string("Hellow Word ") io.put_new_line t.add(42);t.add(21) t.affiche end feature {NONE} t : TEST end -- class APPLICATION file 2: -- test.e class TEST create make feature -- Initialization make -- Run application. do io.put_string("Test ") io.put_new_line -- create a.make(0,10) i:=0 end add (v: INTEGER) do a.put(v,i) i := i+1 end affiche require not_empty : a.count /= 0 local it : INTEGER do from it:=0 until it >= i loop io.put_integer(a.item(it)); io.put_string(" ") it := it +1 end end feature {ANY} i : INTEGER a : ARRAY[INTEGER] end -- class APPLICATION and the ace file: root APPLICATION.make cluster "./" "/home/david/eiffel/tecomp/library/kernel" end When I compile with tecomp application.ace, I get a segfault. If i remove all occurence of TEST in the first file, all is ok. Any idea ? Thanks. |
From: Helmut B. <hel...@gm...> - 2008-08-26 00:49:11
|
Hello David, I have "googled" a little bit and found http://en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B which says that "&&" has higher precedence than "||". So I don't understand, why gcc 4.3.1 complains about missing parentheses. Regards Helmut |
From: Helmut B. <hel...@gm...> - 2008-08-25 13:19:40
|
Hello David, the debian installation of gcc seems to have less implicit includes than the gcc installation on other unices. Another user has already reported the problem. The fix is easy. Just add #include <memory> #include <algorithm> in the corresponding files (inheritance.h, generic.h, body.h) as the last #includes. The error in class_collection.h at line 305: The first argument has to be named a like clients_t combined(const clients_t& a, const clients_t& b) const; It is a typo, but my gcc does not complain. The errors are already fixed in the code, which will go into the next release coming soon. The warnings your compiler complains about I do not understand. From my knowledge of C/C++ the "&&" operator has higher precedence than the "||" operator. Parentheses should not be necessary. Try to add the #includes and I am pretty shure that gcc will compile tecomp. Hope this resolves the problem. Regards Helmut Come David wrote: > Hello. > > I'm trying to compile tecomp on Debian Sid with g++ 4.3.1. > When I compile I've got a lot of errors. > > david@debian:~/eiffel/tecomp$ make tecomp > In file included from class_include.h:12, > from class.cpp:6: > feature_name.h: In member function ‘bool feature_name_t::class_invariant() > const’: > feature_name.h:95: warning: suggest parentheses around && within || > feature_name.h:97: warning: suggest parentheses around && within || > feature_name.h:99: warning: suggest parentheses around && within || > In file included from ../../cal/src/container/char_string.h:9, > from type.h:16, > from class_include.h:17, > from class.cpp:6: > ../../cal/src/container/char_string_buffer.h: In member function ‘bool > char_string_buffer_t::class_invariant() const’: > ../../cal/src/container/char_string_buffer.h:40: warning: suggest > parentheses around && within || > In file included from class_include.h:20, > from class.cpp:6: > inheritance.h: In member function ‘void > parent_parts_t::extend(source_type_t)’: > inheritance.h:231: error: ‘auto_ptr’ is not a member of ‘std’ > inheritance.h:231: error: expected primary-expression before ‘>’ token > inheritance.h:231: error: ‘ap’ was not declared in this scope > In file included from class_include.h:23, > from class.cpp:6: > body.h: In member function ‘uint declaration_group_t::index(const > feature_name_t&) const’: > body.h:336: error: ‘find’ was not declared in this scope > In file included from class_include.h:26, > from class.cpp:6: > generic.h: In member function ‘bool formal_generics_t::has(const > std::string&) const’: > generic.h:96: error: ‘find’ is not a member of ‘std’ > generic.h: In member function ‘uint formal_generics_t::index(const > std::string&) const’: > generic.h:113: error: ‘find’ is not a member of ‘std’ > generic.h: In member function ‘uint generic_substitutions_t::index(const > generic_substitution_t&) const’: > generic.h:268: error: ‘find’ is not a member of ‘std’ > In file included from class_include.h:28, > from class.cpp:6: > class.h: In member function ‘bool > class_t::is_valid_feature(feature_number_t) const’: > class.h:444: warning: suggest parentheses around && within || > In file included from class_include.h:31, > from class.cpp:6: > class_collection.h: At global scope: > class_collection.h:305: error: multiple parameters named ‘b’ > > Does it's my configuration or the code/makefile ? > Thanks. > > > ------------------------------------------------------------------------- > This SF.Net email is sponsored by the Moblin Your Move Developer's challenge > Build the coolest Linux based applications with Moblin SDK & win great prizes > Grand prize is a trip for two to an Open Source event anywhere in the world > http://moblin-contest.org/redirect.php?banner_id=100&url=/ > _______________________________________________ > Tecomp-user mailing list > Tec...@li... > https://lists.sourceforge.net/lists/listinfo/tecomp-user > |
From: Come D. <dav...@wa...> - 2008-08-25 12:23:13
|
Hello. I'm trying to compile tecomp on Debian Sid with g++ 4.3.1. When I compile I've got a lot of errors. david@debian:~/eiffel/tecomp$ make tecomp In file included from class_include.h:12, from class.cpp:6: feature_name.h: In member function ‘bool feature_name_t::class_invariant() const’: feature_name.h:95: warning: suggest parentheses around && within || feature_name.h:97: warning: suggest parentheses around && within || feature_name.h:99: warning: suggest parentheses around && within || In file included from ../../cal/src/container/char_string.h:9, from type.h:16, from class_include.h:17, from class.cpp:6: ../../cal/src/container/char_string_buffer.h: In member function ‘bool char_string_buffer_t::class_invariant() const’: ../../cal/src/container/char_string_buffer.h:40: warning: suggest parentheses around && within || In file included from class_include.h:20, from class.cpp:6: inheritance.h: In member function ‘void parent_parts_t::extend(source_type_t)’: inheritance.h:231: error: ‘auto_ptr’ is not a member of ‘std’ inheritance.h:231: error: expected primary-expression before ‘>’ token inheritance.h:231: error: ‘ap’ was not declared in this scope In file included from class_include.h:23, from class.cpp:6: body.h: In member function ‘uint declaration_group_t::index(const feature_name_t&) const’: body.h:336: error: ‘find’ was not declared in this scope In file included from class_include.h:26, from class.cpp:6: generic.h: In member function ‘bool formal_generics_t::has(const std::string&) const’: generic.h:96: error: ‘find’ is not a member of ‘std’ generic.h: In member function ‘uint formal_generics_t::index(const std::string&) const’: generic.h:113: error: ‘find’ is not a member of ‘std’ generic.h: In member function ‘uint generic_substitutions_t::index(const generic_substitution_t&) const’: generic.h:268: error: ‘find’ is not a member of ‘std’ In file included from class_include.h:28, from class.cpp:6: class.h: In member function ‘bool class_t::is_valid_feature(feature_number_t) const’: class.h:444: warning: suggest parentheses around && within || In file included from class_include.h:31, from class.cpp:6: class_collection.h: At global scope: class_collection.h:305: error: multiple parameters named ‘b’ Does it's my configuration or the code/makefile ? Thanks. |
From: Helmut B. <hel...@gm...> - 2008-08-18 16:15:13
|
The next release of tecomp is nearly ready to be released. The main focus is to get nearly all features of the class ANY for having the full spectrum of equality and cloning (deep_* features probably have to wait one more version) and the features "print" and "out" for easy output of objects. Automatic boxing and creation expressions will be available as well. Regards Helmut |
From: Helmut B. <hel...@gm...> - 2008-08-06 22:57:37
|
Welcome to the mailing list of tecomp. Any questions, discussions concerning tecomp can be posted here. Regards Helmut |