Difference between revisions of "EiffelStudio 15.08 Releases"

m (Changed headers to list 15.08 instead of 15.05.)
m (Manus moved page EiffelStudio 15.05 Releases to EiffelStudio 15.08 Releases: We renumbered the release)
(No difference)

Revision as of 09:39, 27 August 2015

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 15.08.x Releases

Beta download: https://ftp.eiffel.com/pub/beta/15.08/

15.08.x.x

New features

  • EiffelStudio: Supported a new inline separate instruction that allows making feature calls on uncontrolled separate targets inline rather than calling dedicated routines:
separate
   some_expression_of_separate_type as x,
   other_expression_of_separate_type as y
do
   x.foo
   y.bar
end
  • EiffelStudio: Supported creation of passive regions in SCOOP that execute all logged calls on caller's processors:
create <NONE> foo.make -- Creation instruction.
bar := create <NONE> {separate BAZ}.make -- Creation expression.
A side effect is that all calls on passive regions are synchronous.

Improvements

  • runtime: Improved memory management by performing O(log N) lookups when looking for a large block of memory instead of O(N). This would occur after allocating many large objects whose size is greater than 512 bytes (on 32-bit platform) and 1024 bytes on 64-bit platform and then freeing all those objects. Next time you look for a large object it might have to go through all those large objects without finding one that is large enough.
  • code generation: Made code slightly more compact (2 to 6% size reduction on some platform)

Feature removed

Bug fixes

  • runtime: The SCOOP runtime is now fully written in C to avoid portability issues.
  • compiler: Corrected access to tuple fields in SCOOP mode that now follow the validity rules and the semantics of ordinary attributes of a class.
  • compiler: test#scoop034 - Fixed a code generation bug in finalized mode for a generic derivation with an actual generic of a basic type.
  • compiler: test#term216 - Fixed a crash when processing conversion queries defined as constant attributes.

User changes

Developer changes

15.05.9.7047 (April 9th 2015)

New features

  • eiffelstudio: Added ability to control the behavior of dropping a class stone on a tab by either replacing it, always creating a new tab or creating a new tab if the current tab had some edits.

Improvements

  • compiler: Changed agent creation rules for separate targets. This change makes it possible to introduce library features that help users to avoid writing small little wrapper features in SCOOP to control an object. It is now possible to create agents on separate, uncontrolled target. The newly created agent object is placed on the same processor as the target, and it inherits the 'is_controlled' status.
  • library: bug#19045 - cleaned up comments in NATURAL_nn_REF classes.

Feature removed

Bug fixes

  • compiler: Fixed eweasel test#final122 and bug#19028 where we would incorrectly optimize `expr and False' or `expr and then False' into just `expr' which is wrong if `expr' is True (as the whole expression would be True and not False).
  • compiler: Optimized `expr and False' and `expr and then False' to just False if `expr' is a local, a argument, Result, Current, an attribute access or if it is the `and' boolean op.
  • eiffelstudio: Fixed issue introduced in version 7.3 of EiffelStudio where .NET classes would not appear in tree view.
  • eiffelstudio: Improved tooltip of assemblies by separating the assembly name from the namespace with ": ".
  • eiffelstudio: Fixed tooltip of referenced assemblies to show assembly information instead of just the path to the assembly.
  • library: Fixed a bug in {STRING_8}.trim and {STRING_32}.trim that caused a postcondition violation in this procedure.

User changes

Developer changes