23
I Use This!
Very Low Activity

News

Analyzed about 6 hours ago. based on code collected about 17 hours ago.
Posted over 12 years ago by manus_eiffel
In the 7.0 release, we have changed the hierarchy structure used by EiffelStudio to store either private settings or user settings. In previous revisions, we had the following depending on your platform. Platform Private Settings User Settings ... [More] Unix $HOME/.es/68/ $HOME/.es68/ Windows  %LOCALAPPDATA%\Eiffel Software\eiffel68\  %USERPROFILE%\Documents\Eiffel 6.8 User Files\ Mac OS X $HOME/.es/68/ $HOME/Eiffel 6.8 User Files In the newly released 7.0 the paths are now: Platform Private Settings User Settings Unix $HOME/.es/7.0/ $HOME/.es/eiffel_user_files/7.0/ Windows  %LOCALAPPDATA%\Eiffel Software\.es\7.0\  %USERPROFILE%\Documents\Eiffel User Files\7.0\ Mac OS X $HOME/.es/7.0/ $HOME/Eiffel User Files/7.0 As you can see the private settings are more consistent apart from their root location which is the same on Unix/Mac but different on Windows. Same for user settings which only differ by their root location and the name of `Eiffel User Files' which is in lower case and without spaces for Unix. Using this simplified layout, there is another change introduced in the 7.0 release. The location of the precompiled libraries. By default, they used to be in $ISE_EIFFEL/precomp/spec/$ISE_PLATFORM for both Windows and Unix. Unfortunately if EiffelStudio is installed as an administrator, you most likely don't have permission to write in that location. In 7.0, the precompilation directory has changed to point to the precomp sub-directory of the user settings location (see above). For platforms that provided some installation packages (e.g. Windows or Debian based Linux), it also means that there is no more precompilation step during installation. From now on, the precompilations will be built the first time they are needed. If the location is not of your liking, you can override it by defining the ISE_PRECOMP environment variable to point to a different location. Some other minor changes in the hierarchy of EiffelStudio is the introduction of a contrib and unstable directory that follows the library categorization structure described at http://dev.eiffel.com/Library_Categorization. This categorization makes it easier to find libraries by basing the search on a particular domain. The contrib directory includes external contributions made by Eiffel users for Eiffel users. The unstable directory includes some Eiffel Software specific work which is not yet ready for prime time which nevertheless might be of interest for experienced users who are not afraid of getting their hands dirty. If you have libraries that you feel would fit nicely in the contrib directory, let me know, we will be happy to include them. [Less]
Posted over 12 years ago by manus_eiffel
In the 7.0 release, we have changed the hierarchy structure used by EiffelStudio to store either private settings or user settings. In previous revisions, we had the following depending on your platform. Platform Private Settings User ... [More] Settings Unix $HOME/.es/68/ $HOME/.es68/ Windows  %LOCALAPPDATA%\Eiffel Software\eiffel68\  %USERPROFILE%\Documents\Eiffel 6.8 User Files\ Mac OS X $HOME/.es/68/ $HOME/Eiffel 6.8 User Files In the newly released 7.0 the paths are now: Platform Private Settings User Settings Unix $HOME/.es/7.0/ $HOME/.es/eiffel_user_files/7.0/ Windows  %LOCALAPPDATA%\Eiffel Software\.es\7.0\  %USERPROFILE%\Documents\Eiffel User Files\7.0\ Mac OS X $HOME/.es/7.0/ $HOME/Eiffel User Files/7.0 As you can see the private settings are more consistent apart from their root location which is the same on Unix/Mac but different on Windows. Same for user settings which only differ by their root location and the name of `Eiffel User Files' which is in lower case and without spaces for Unix. Using this simplified layout, there is another change introduced in the 7.0 release. The location of the precompiled libraries. By default, they used to be in $ISE_EIFFEL/precomp/spec/$ISE_PLATFORM for both Windows and Unix. Unfortunately if EiffelStudio is installed as an administrator, you most likely don't have permission to write in that location. In 7.0, the precompilation directory has changed to point to the precomp sub-directory of the user settings location (see above). For platforms that provided some installation packages (e.g. Windows or Debian based Linux), it also means that there is no more precompilation step during installation. From now on, the precompilations will be built the first time they are needed. If the location is not of your liking, you can override it by defining the ISE_PRECOMP environment variable to point to a different location. Some other minor changes in the hierarchy of EiffelStudio is the introduction of a contrib and unstable directory that follows the library categorization structure described at http://dev.eiffel.com/Library_Categorization. This categorization makes it easier to find libraries by basing the search on a particular domain. The contrib directory includes external contributions made by Eiffel users for Eiffel users. The unstable directory includes some Eiffel Software specific work which is not yet ready for prime time which nevertheless might be of interest for experienced users who are not afraid of getting their hands dirty. If you have libraries that you feel would fit nicely in the contrib directory, let me know, we will be happy to include them. [Less]
Posted over 12 years ago by manus_eiffel
Coming up on December 3rd and 4th in Zurich, Switzerland, we will be hosting the second Eiffel Design Feast solely focused on the Web solution(s) for Eiffel. The first event back in June was a real success and we hope to achieve the same kind of ... [More] results. This time around we will be checking the results of the work since last time. It will mostly focus on the status of the Eiffel Web Framework (EWF) and Eiffel Web Server Gateway Interface (EWSGI). We will gather some of the community feedback on those projects, take some design decisions, provide some concrete demos and get our hands dirty by producing some code. We will also setup some work and goals for the next coming months to ensure that we will soon be getting the best web framework for Eiffel. Join us for this great event by contacting me directly if you are interested. Happy Eiffeling! [Less]
Posted over 12 years ago by manus_eiffel
Coming up on December 3rd and 4th in Zurich, Switzerland, we will be hosting the second Eiffel Design Feast solely focused on the Web solution(s) for Eiffel. The first event back in June was a real success and we hope to achieve the same kind of ... [More] results. This time around we will be checking the results of the work since last time. It will mostly focus on the status of the Eiffel Web Framework (EWF) and Eiffel Web Server Gateway Interface (EWSGI). We will gather some of the community feedback on those projects, take some design decisions, provide some concrete demos and get our hands dirty by producing some code. We will also setup some work and goals for the next coming months to ensure that we will soon be getting the best web framework for Eiffel. Join us for this great event by contacting me directly if you are interested. Happy Eiffeling! [Less]
Posted over 12 years ago by manus_eiffel
We are pleased to announce the availability of EiffelStudio 7.0. It can be downloaded at . The release notes are available at . This release is the achievement of various efforts that have been ongoing the past several years, namely: void-safety ... [More] concurrency using SCOOP This release improve on those as well as in many other areas. In addition, this is the first release to include explicitly external contributions under the contrib directory. The libraries making their debut in EiffelStudio 7.0 are: DECIMAL from York University Eiffel Arbitrary Precision Mathematics Library from Colin LeMahieu Eiffel Encryption Library from Colin LeMahieu eJSON from several contributors ESPEC from York University Tell me more about your experience using EiffelStudio 7.0 and what you are planning on doing with it. In the meantime, Happy Eiffeling! Manu [Less]
Posted over 12 years ago by manus_eiffel
We are pleased to announce the availability of EiffelStudio 7.0. It can be downloaded at http://www.eiffel.com/downloads. The release notes are available at http://docs.eiffel.com/book/eiffelstudio/release-notes-eiffelstudio-70. This release is the ... [More] achievement of various efforts that have been ongoing the past several years, namely: void-safety concurrency using SCOOP This release improve on those as well as in many other areas. In addition, this is the first release to include explicitly external contributions under the contrib directory. The libraries making their debut in EiffelStudio 7.0 are: DECIMAL from York University Eiffel Arbitrary Precision Mathematics Library from Colin LeMahieu Eiffel Encryption Library from Colin LeMahieu eJSON from several contributors ESPEC from York University Tell me more about your experience using EiffelStudio 7.0 and what you are planning on doing with it. In the meantime, Happy Eiffeling! Manu [Less]
Posted over 12 years ago by manus_eiffel
We are pleased to announce the availability of EiffelStudio 7.0. It can be downloaded at http://www.eiffel.com/downloads. The release notes are available at http://docs.eiffel.com/book/eiffelstudio/release-notes-eiffelstudio-70. This release is the ... [More] achievement of various efforts that have been ongoing the past several years, namely: void-safety concurrency using SCOOP This release improve on those as well as in many other areas. In addition, this is the first release to include explicitly external contributions under the contrib directory. The libraries making their debut in EiffelStudio 7.0 are: DECIMAL from York University Eiffel Arbitrary Precision Mathematics Library from Colin LeMahieu Eiffel Encryption Library from Colin LeMahieu eJSON from several contributors ESPEC from York University Tell me more about your experience using EiffelStudio 7.0 and what you are planning on doing with it. In the meantime, Happy Eiffeling! Manu [Less]
Posted almost 14 years ago by manus_eiffel
We are pleased to announce the availability of EiffelStudio 6.6. It can be downloaded at http://www.eiffel.com/downloads. The release notes are available at http://docs.eiffel.com/book/eiffelstudio/release-notes-eiffelstudio-66. To me this release ... [More] brings even more stability and some new language features which I'll highlight below: Some incremental bugs that usually affects large and complex recompilation have been addressed. Our multithreaded runtime has been rewritten to be even more portable and to guarantee the same behavior of mutexes across platforms (before mutexes were recursive on Windows but not on our other platforms, now it is always recursive). We have introduced once per object and the new once syntax (once ("PROCESS") or once ("THREAD") or once ("OBJECT")). We have introduced the new check instructions to simplify the writing of void-safe code: check attached expression as e then e.do_something end when clearly something should be attached but the context is not strong enough for the compiler to guarantee it. If at runtime this was not true a check violation will be raised. We have introduced this not yet adopted feature of the ECMA specification that has been requested by some Eiffel users for many years. The name is not yet decided, so far we have two attempted names: RAT (Remote Anchorted Types) or QAT (Qualified Anchored Types). It basically let you write a type declaration using like with not just a feature name but with an expression, that is to say like a.b.c. This is very practical to reduce the number of copy/paste in types and let you evolve your software easily by only changing a type at one place, instead of at many places (think of changing all your declarations of LINKED_LIST into ARRAYED_LIST in your code). Tell me more about your experience using EiffelStudio 6.6 and what you are planning on doing with it. In the meantime, Happy Eiffeling! Manu [Less]
Posted about 14 years ago by manus_eiffel
I've recently been toying with the idea of ephemeral classes. An ephemeral class is a class which does not have attributes. The immediate benefits of such classes is that their features can be used for objectless calls, the same way we can access ... [More] constants or external features. For those not familiar to Eiffel, the features of ephemeral classes can be seen as static methods. For example: ephemeral class A feature objectless_feature do ... end end   class TEST feature g do {A}.objectless_feature end end Another benefit of such classes is that their features can be directly used for callbacks by some external C/C++ code without having the need for creating a C wrapper for calling back the Eiffel code. The concept is not yet implemented in EiffelStudio as it is not just a matter of checking the absence of attributes but also to adapt the code generation not to rely on a Current object. This is something that will most likely be submitted for adoption for the ECMA Eiffel language specification. But before that, I'd like to hear what you think about this! Happy Eiffeling, Manu [Less]
Posted about 14 years ago by manus_eiffel
Introduction Originally Eiffel Software's object serialization was written in C and was proposing the following alternative: basic: the same version of the executable on a particular platform can store and retrieve objects. general: different ... [More] versions of the executable on a particular platform can store and retrieve objects. independent: different versions of the executable running on different platforms can store and retrieve objects. Initially you could only retrieve an object if and only if the storing and retrieving system where exactly the same (i.e. same number of attributes and same types for all of them). A couple of years ago, we added to the independent version a mechanism to fix mismatches (i.e. object of the same type but the type had its number of attributes changed, or the type of attributes have changed). The mechanism is known as correct_mismatch and you can benefit from it by redefining the correct_mismatch routine from MISMATCH_CORRECTOR whenever you change the content of a class. Unfortunately this code was written in C and was not much compatible with object layouts in .NET. This is what prompted us to write a pure Eiffel version of our C storable mechanism. This mechanism is known as SED (SErialization-Deserialization). Thanks to SED, one could serialize objects from and to .NET as long as they had the same content. Contrary to the C version, SED is proposing the following alternatives: session: the same running version of the executable can store and retrieve objects basic: same as the C version independent: same as the C version What is missing is the general alternative which was deemed useless over the years as independent made more sense, especially with the extended facility such as correct_mismatch. However SED has some limitations: it cannot handle properly user defined expanded types. it does not implement correct_mismatch For the 6.6 release, we hope to solve the first limitation. Versioning Is correct_mismatch the best way to solve mismatch? Not quite because even if you have the same number and same kind of attributes there could be a mismatch. An example is in the ELKS class HASH_TABLE where from one implementation to the next of HASH_TABLE we decided that the deleted_marks array should have one more entry. To solve that problem, we forced a mismatch by adding a fake attribute to HASH_TABLE which in turn would trigger a mismatch. But this solution was really a workaround and the penalty is that fake added attribute. For 6.6, we are planning on adding a storable_version note clause to a class that will be used upon retrieval to find out if there is a mismatch or not. The content of storable_version would be user defined and will be used by the storable mechanism to perform a quick check upon retrieval. If they are different then we trigger a mismatch, otherwise we proceed like today. Currently the storable_version value is not inherited, so if you had an attribute to an ancestor class, you would need to change all its descendants. Feel free to comment for discussing this further Happy Eiffeling, Manu [Less]