23
I Use This!
Very Low Activity

News

Analyzed about 18 hours ago. based on code collected about 18 hours ago.
Posted about 18 years ago by manus_eiffel
A new feature of the 6.1 release of EiffelStudio appears in the Console tool. Basically in addition of what you could do before, you can also insert the following: {A} @{A} {A}.f where A is an Eiffel class and f a feature of A. ... [More] The meanings are: {A}: location of a file containing a copy of the text of class A. @{A}: location of a file containing a copy of the selected text of class A in the editor, an empty file if nothing is selected or if A is not open in the editor. {A}.f: location of a file containing a copy of the text of feature {A}.f. With this you can do very interesting stuff such as comparing features. Let's use your favorite diff tool being it windiff, diff, gvim -d, .... Now you can simply type: diff {STRING_32}.copy {STRING_8}.copy and see that they are identical, or : diff {STRING_32}.fill_character {STRING_8}.fill_character and see they only differ in the type of the argument. With the @ feature, you can refactor some code, compare portion of the code with some other portions and see the differences to make sure they are what you expect them to be. Of course, you are free to invent other usage for this feature and if you do, please post a comment here. And as a bonus, you also get code completion for the name of classes and features. [Less]
Posted about 18 years ago by manus_eiffel
When you have a performance problem, profiling an application will help you figure out where the bottleneck is. However, most profiling tool have a tendency to slow down the execution by a significant factor and EiffelStudio is unfortunately no ... [More] different. Nevertheless, we have added a neat class called PROFILING_SETTING that will enable you to enable/disable the profiler on only some parts of an execution. To make sure you are using this class properly you should know the following: Profiling should be enabled in the project settings First executed instruction should be a call to {PROFILING_SETTING}.stop_profiling Last executed instruction should be a call to {PROFILING_SETTING}.start_profiling When profiling a section of code the calls start_profiling and stop_profiling, they should appear in the same routine, as otherwise the profiler will be confused With EiffelStudio 6.0, there is also a very handy feature that comes for free with the new project settings structure with libraries. By default libraries do not inherit the `profiling' setting and are therefore excluded from the profiling (thus speeding up the profiling). It simply means that you won't know how much time is spent in a routine from a library, but the time is still accounted for the callers of that routine. If you want to profile a library, you simply need to mark it so in your project configuration. I've showed that you can profile a certain portion of code, but you can also disable profiling a certain portion too. We use it when profiling the compiler for not tracking the time spent in the parser. Here is an example: f is     local         l_prof_setting: PROFILING_SETTING         l_is_profiling: BOOLEAN         retried: BOOLEAN     do         if not retried then             create l_prof_setting.make             l_is_profiling := l_prof_setting.is_profiling             l_prof_setting.stop_profiling                     -- Your code here             ...         end         if l_is_profiling then             check l_prof_setting_not_void: l_prof_setting /= Void end             l_prof_setting.start_profiling         end     rescue         retried := True         retry     end Ok, it looks a little bit more complicated than what you expected. If you do not care about correctness then you know that you can remove: the rescue clause if you do not anticipate exceptions the `l_is_profiling' local variable if nothing else is enabling/disabling the profiler Enjoy Eiffel and profiling! [Less]
Posted about 18 years ago by manus_eiffel
Have you heard about the One Laptop Per Child initiative (also known as the $100 laptop). If not, check out http://www.laptop.org for more information. The reason why I'm mentioning it is simple, EiffelStudio is running on it. We received our test ... [More] laptop last week and installed the standard delivery of EiffelStudio 6.0 for Linux-x86. See below for a picture of the laptop with EiffelStudio: The only thing that we had to do was to use another window manager (twm in place of the sugar one which truncates the visible screen a little bit too much to see the whole EiffelStudio environment) and have our own .gtkrc-2.0 file to use a smaller font than the default for GTK. Note that to execute your systems, you also need to install a C compiler (tcc or gcc) as the laptop does not come with one. But you do not have to develop on the laptop, you can do like us, develop on Linux-x86 and simply copy the binary over the laptop. The specs of the laptop are 1GB of flash memory for the hard-drive and 256MB of RAM which is good enough for compiling some relatively large projects (1000 or more classes). Happy Eiffeling, Manu [Less]
Posted over 18 years ago by manus_eiffel
Paul suggested a very nice tip with the wild card completion (new feature of 5.7). I'd like to show that there is an even older feature that is pretty much unknown to many users. It is the routine argument filling facility. When you complete a ... [More] routine via the completion dialog, the name of the routine as well as its full signature is inserted in the code. Some complained to us that it was annoying because you ended up having to remove the extra information. But actually there is a very nice thing to do, simply press the Tab key and it automatically selects the first argument, type whatever you want and then press the Tab key to go to the next argument and so on. When you reach the last argument, pressing Tab again will go after the closing parenthesis, pressing it one more will select the whole line and one more time will go back to the first argument. [Less]
Posted over 18 years ago by manus_eiffel
I wanted to give an update on the Mono support. As of version 1.2.5 of Mono (version soon to be released) we can say that Eiffel assemblies will work smoothly with Mono. Our last regression test for the compiler targeting Mono is only failing 20 ... [More] tests that the Microsoft .NET runtime is accepting (over 1350 tests). We have yet to find why those tests are failing, but they are a good indication that Mono is ready to be used with Eiffel assemblies. Happy Eiffeling and Happy .NET [Less]
Posted over 18 years ago by manus_eiffel
During the work to support MinGW as a backend C compiler for EiffelStudio on Windows, we found MSYS which is a subset of what is needed to run a configure script on Windows. The side effect of this subset is that it contains most of the UNIX commands ... [More] we have all been used to (ls, rm, touch, tail, tar, ....). MSYS is also very compact with less than 6MB uncompressed. We are now using a subset of MSYS to compile the Eiffel runtime on Windows (before we required bash from cygwin but not all version of bash worked out of the box). Thus simplifying the steps for compiling the runtime on Windows to: Choose your C compiler and possibly configure it (not needed with MinGW or Borland since we use the one that will be in the EiffelStudio delivery). Compile the runtime using the Configure.bat script. For more details see Compiling EiffelStudio [Less]
Posted over 18 years ago by manus_eiffel
This week we added a new backend C compiler for EiffelStudio. We chose MinGW (gcc based) as it is made to target Windows and its Win32 API. Surprisingly, it was fairly easy to do. Indeed we have tried to do this in the past but without too much ... [More] success. In 1996, we tried but quickly failed because the Windows API support was really not ready. In 1999, it got better and we did some ground work to make our tools support gcc. But unfortunately they were some limitations in the toolchain and it would not compile large application (as they often say in this case it was a limitation in the binutils, see the Cygwin mailing list archive). Regardless of this, some of the issues we had were: Directory separator convention: / instead of \ The difference between .lib/.obj and .o/.a, and more precisely the correct usage of ar rc vs. ld -r -o. Ordering of libraries for linking. In 2002, we tested it again with gcc coming from the cygwin distribution. It worked great but not for compiling Windows application. We simply used cygwin as if we were on a Unix platform and compiled everything as on Unix. The command line compiler was up and running but no way to generate a graphical application unless using GTK. We choose MinGW because they have started to do a 64-bit version and once we have the 32-bit version up and running it should be straightforward to support 64-bit. We are unsure when the 64-bit version will be available, but the 32-bit version will be a very good replacement for the Borland C compiler which is starting to get a little bit too old. Like Borland, MinGW does not require any user configuration, it will be properly configured at install time. The result today is that we have compiled the default Vision2 application out of the box. The good news is that what we have done could work with 6.0 as long as you copy the necessary files over, but the target is the next release of EiffelStudio in November. Anyone interested in testing this should wait the first intermediate release of 6.1 in the next couple of weeks. [Less]
Posted over 18 years ago by manus_eiffel
In mid-April, Eiffel Software announced a changed in its release cycle by having two EiffelStudio releases per year (one in mid-May and one in mid-November). This would really start this Fall (i.e Fall in the northern hemisphere) since for this ... [More] Spring, it was decided to have a release by mid-June. I'm happy to report that we have been on time and released EiffelStudio 6.0 on June 19th. You can read the 6.0 release notes on our documentation website. For those who cannot wait to see what's new, here are some highlights: New docking facilities which let you control the layout of tools in EiffelStudio. One can also lock the layout to prevent unwanted changes. New tabbed editor. Added configurable pick and drop which lets you choose between traditional context menu or pick and drop for a mouse right click operation. EiffelStudio is now internationalized, it supports English, Chinese and German. A partial translation for French and Russian is provided. New ISO/ECMA Eiffel standard mechanisms (multi-constraint, octal and binary notation for integers). Shortcuts can now be customized. Added dependency view so supplier/client dependency of a group/folder/class can be investigated. Feature calls are included in dependency view. Debugger enhancement: added new kind of breakpoints (to print messages, hit count for condtitions), evaluation of commands in addition of queries, new ways of looking at objects. I would also like to thank all the early users of 6.0 as well as all the testers who have helped us the past two months in making this release better in many ways. Happy Eiffeling, Manu [Less]
Posted over 18 years ago by manus_eiffel
This week-end, I was at the Hotel Del Coronado in San Diego for the ACM Awards Banquet where the various ACM awards are given, including the ACM Turing Award (given for the first time to a woman, Frances Allen) and, of interest to me, the Software ... [More] System Award given to Eiffel and Bertrand Meyer. It started with a cocktail on Saturday evening: Then we went to the official banquet room for the dinner. We began with some appetizers while the awards were given. I've taken some pictures of Bertrand when it was his turn to go on stage. He is surrounded by Stuart Feldman (ACM president, author of make), John White (ACM CEO) and an IBM representative (since IBM is sponsoring the Software System Award): I'm sure there will be more pictures on the ACM site when their June release is out. A few other interesting highlights of the evening: Yi-Ren Ng who received the Doctoral Dissertation Award' for his PhD Digital Light Field Photography. In other words, equipping digital cameras with an after the fact refocusing engine, i.e. no more blurry pictures!!! Many awards received for people working on text analysis and search. Google increased sponsorships of new talents. The winners of the 2007 Annual ACM International Collegiate Programming Contest World Finals from Warsaw University were on stage for further recognition from the ACM. They solved the first problem of the competition 13 minutes after receiving the list of problems. [Less]
Posted over 18 years ago by manus_eiffel
As you may have noticed we are bringing significant changes to the software process at Eiffel Software, reflecting the new nature of the development, our commitment to addressing user needs quickly and effectively, and the growing involvement of ... [More] open-source contributors. In particular, we have switched to a two-release-a-year schedule: the June release (May starting in 2008) and the November release. This makes it possible for users to plan their developments and their upgrades. A release plan, regularly updated, appears at: http://eiffelsoftware.origo.ethz.ch/index.php/Roadmap (General EiffelStudio road map) http://eiffelsoftware.origo.ethz.ch/index.php/Language_road_map (Language road map) http://eiffelsoftware.origo.ethz.ch/index.php/ECMA_Implementation (ECMA implementation) The last six weeks of the release are devoted entirely to testing. You can find details of the testing process here with a description of the procedures and forms (TCS, Test Case Specification; TRR, Test Run Report) and access to the TCSs and TRRs developed so far. These are all our internal documents; we live in a glass house now and you are welcome to examine our process and its results. You are also welcome to participate; there is still time to contribute your own tests and test runs. Just follow the instructions. 6.0 feedback has been excellent; although we still have many bugs to fix, we are very excited about this major new release and eager to bring it to completion. Thank you very much for your participation in this process. [Less]