EiffelStudio 6.7 Releases

Revision as of 05:53, 4 November 2010 by Jfiat (Talk | contribs) (6.7.8.4760 (October 31st 2010 - Beta Release))

Below are not the release notes of EiffelStudio. It is the change log of EiffelStudio intermediate releases and the most important changes are highlighted in green or in red (for breaking changes). The release notes of EiffelStudio can be found at the following URL. You can also download the latest revision here. Information about other version can be found under Category:Releases.

EiffelStudio 6.7.x Releases

6.7.x

Placeholder for new stuff since last intermediate release.

New features

Improvements

Feature removed

Bug fixes

User changes

Developer changes

6.7.8.4760 (October 31st 2010 - Beta Release)

Improvements

Feature removed

Bug fixes

  • compiler: Fixed incrementality issues corresponding to eweasel test#incr382 and test#incr387. It also fixed incr#399.
  • compiler: Fixed a crash when adding some classes to a system and then compiling that system (bug#17154 and bug#17155)
  • compiler: Fixed eweasel test#exec333 which prevents the tracing mechanism to be executed when executing an external routine call because this routine may involve objects that are passed via the $ operator and the Eiffel tracing could trigger a GC cycle which would render that pointer invalid.
  • compiler: Fixed eweasel test#incr380 by adding a check that when we are starting a compilation we verify that there is a root element specified in the ECF file.
  • compiler: Fixed eweasel test#final076 by not inlining features implemented as attribute if the attributes have an initialization body.
  • compiler: Move cleaning of instantiator from SYSTEM_I to DEGREE_4 after we have verified the validity of constraints. This fixes eweasel test#incr386.
  • compiler: Fixed eweasel test#incr388 by removing TEST [G#1] if the constraint for TEST becomes expanded in which case the G#1 (i.e. the reference version) is

useless and it is actually causing some crashes since a generic derivation such as TYPE [TEST [G#1]] is not to be found in the universe, only TYPE [TEST [EXP]].

  • compiler: Fixed eweasel test#incr379 where if you have 2 targets test and test1 and test extends test1, then you swap the content so that now test1 extends test.

The group have to marked inequivalent because it is quite a big change to change the hierarchy of targets.

  • runtime: Fixed eweasel test#thread016 where we forget to protect arguments used for catcall checking.
  • debugger: Fixed a bug when using the new check instruction `check bool_expr then .... end', in melted we were generating a breakpoints on `check' and in

`bool_expr' and both were also displayed in EiffelStudio. However in frozen mode the only one breakpoint on `bool_expr' is generated. Thus you had a mismatch. Because the breakpoint on check was not needed, we have removed its generation and display.

User changes

  • compiler: Changed the multithreaded option from true/false choice to a new option concurrency option with multiple choice: none, thread, scoop. The later is

not operational yet.


Developer changes

  • runtime: disabled tracing during GC cycle.

6.7.8.4500 (October 5th 2010)

New features

  • base: Initial implementation of the WEAK_REFERENCE class. It only works with references and in this current version is only implemented for classic Eiffel.
  • compiler: Taken separate status of a type into account when checking for conformance.
  • compiler: Changed default formal generic constraint from detachable ANY to detachable separate ANY.
  • compiler: Added a check for the new validity rule VUTA(3) that the target of a separate call should be controlled (i.e. be executed on a processor of one of the feature arguments). In particular this affects calls on the expressions of unconstrained formal generics types since they are potentially separate.

Improvements

  • compiler: Improved code generation for SPECIAL.force and SPECIAL.fill_with. `force' would be slightly faster, but `fill_with' is dramatically faster in workbench mode since there are no more function calls to `put' or `extend'.
  • compiler: We are now using the same version of gcc on Windows 32-bit and Windows 64-bit (i.e. 4.4.5)

Feature removed

Bug fixes

  • compiler: Fixed gcc support for 64-bit which could indeed compile but not link due to missing libraries in the delivery.
  • compiler: Fixed eweasel test#incr232 by forcing descendants of a class that has its `frozen', `deferred' or `generics' changed to be rechecked at degree 4 for validating the inheritance clauses.
  • compiler: Fixed eweasel test#rdtp001 by also resetting the `external' keyword.
  • installation: Made sure to remove the Start menu entry when uninstalling EiffelStudio. Before it would only do it if you had only one version of EiffelStudio installed.
  • compiler: Fixed known issues related to once per object: test#once012 test#once013 test#incr391 test#incr392 test#incr393 test#incr396 test#incr397 test#term192.
  • compiler: Fixed building of shared libraries of CECIL system which failed on Windows.
  • store: Fixed some issues with incorrect header files in mysql Clib.
  • vision2: Fixed catcall in vision2 implementation on Unix due to wrong signature of `set_parent_imp' in EV_CONTAINER_IMP.

User changes

Developer changes

6.7.8.4243 (August 23rd 2010)

New features

Improvements

  • compiler: Allowed for a qualified anchored type that has a stand-alone type qualifier to be used as a type of a once function (bug#17035, test#anchor058).
  • AutoTest: test classes in a system are automatically detected and compiled. Executing tests therefore no longer requires a separate compilation.

Feature removed

Bug fixes

User changes

  • AutoTest library: changes to {EQA_TEST_SET} make it simpler to define a custom `asserter' or `file_system'. Removed {EQA_TEST_SET}.run_test which has previously been used by the tool to execute a test routine.

Developer changes

6.7.8.4178 (August 16th 2010)

New features

Improvements

  • compiler: Allowed for a qualified anchored type that has a standalone type qualifier to be used as a type of a once function (bug#16947, test#anchor050).

Feature removed

Bug fixes

  • compiler: Fixed eweasel test#incr366 when an expanded generic type is being used and its expandness status is removed. It completes the fix for test#incr315.
  • compiler: Fixed test#attach077 when VEVI was not properly reported in some cases for uninitialized attributes passed as arguments.
  • compiler: Fixed eweasel test#incr378 for a bug added at the previous intermediate release which would break execution of code when touching/modifying some generic classes used in the system.

User changes

Developer changes

6.7.8.4135 (August 10th 2010)

New features

  • compiler: New tracing facility in Eiffel code. Currently tracing is done at the runtime level by writing some text in the standard output. This new tracing facility let you execute some user defined Eiffel code at entry and exit of all routine calls. That way you can better track what is going on without endless search in the output.

Improvements

Feature removed

Bug fixes

  • compiler: Fixed eweasel test#ccomp085. Now the compiler ensures that if you have a C external with a specific includes order, it will be respected at compile time.
  • compiler: Fixed eweasel test#exec326. Now the compiler properly generates the REAL_32 values for {REAL_32}.min_value and {REAL_32}.max_value.
  • compiler: Fixed eweasel test#valid243, test#svalid028, test#svalid029, test#tuple004, test#freez032 and test#multicon058. The issue was that when we performed the type checking of inherited routines using prefix/infix we were not using the new name of the prefix/infix operator but still the old one. Thus if it was renamed it would cause a spurious compilation error instead of accepting the code.
  • compiler: Fixed eweasel test#multicon056 and test#multicon057 which prevented usage of objectless call on formal generic parameter using multiconstraints.
  • compiler: Fixed eweasel test#freez032 showing that the inlining of `.hash_code' was incorrect for .NET and C code generation. Melted was OK because no inlining was done and the Eiffel code was executed.
  • compiler: Fixed the following eweasel tests: test#incr295 test#incr302 test#incr307 test#incr309 test#incr324 test#incr331 test#incr332 test#incr346 test#incr372 test#incr373 test#incr374. The main problem was that we did not properly cleaned the TYPE_LIST and the FILTER_LISTs of the compiler when types do not satisfy their constraint anymore. The other issue was with `pattern_id' where when removing an entry from PATTERN_TABLE we only removed it from `info_array' but not from Current, causing `insert' to misbehave.
  • compiler: Fixed test#incr315 where we did not rebuild the parent list of a class when one of the inheritance clause had its type changed from expanded to non-expanded or vice-versa.
  • compiler: Fixed test#incr345, when you remove the invariant containing an inline agent and you have an error in that class, the inline agent was preserved instead of being removed.

User changes

  • base: Made {ARRAY}.make obsolete. Now one has to use `make_empty' or `make_filled'.

Developer changes

6.7.8.3946 (July 20th 2010)

New features

  • compiler: Added support for gcc on Windows 64-bit, thus removing the need for Microsoft Visual Studio for most type of projects.
  • compiler: UTF-8 source code parser
  • compiler: Unicode (STRING_32) manifest string
  • compiler: Unicode free operator
  • encoding: BOM encoding detector for UTF-8
  • encoding: New localized printer which prints Unicode according to the console encoding.

Improvements

  • store: Prevent C storable to block all threads while waiting from data to be read in retrieved. Now we would wait for the storable type first before blocking all the other runtime threads. This fixes bug#16859.

Feature removed

Bug fixes

User changes

Developer changes