/[eiffelstudio]/trunk/Documentation/xmldoc/tools/eiffelstudio/reference/30_compiler/60_version_history/10_62_release/index.xml
ViewVC logotype

Contents of /trunk/Documentation/xmldoc/tools/eiffelstudio/reference/30_compiler/60_version_history/10_62_release/index.xml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 73725 - (show annotations)
Tue May 27 13:30:03 2008 UTC (11 years, 7 months ago) by alexk
File MIME type: text/xml
File size: 5418 byte(s)
Added notes about changes related to attached types and void safety.
1 <document title="Major changes between ISE Eiffel 6.1 and ISE Eiffel 6.2">
2 <meta_data>
3 <help>
4 <toc>
5 <envision_location>EiffelEnvision\Introduction to EiffelEnvision\History and Known Issues\Compiler History</envision_location>
6 </toc>
7 </help>
8 </meta_data>
9 <paragraph>
10 <heading><size>2</size>What's new</heading>
11 <seealso>See also: <link><label>Differences between standard ECMA-367 and Eiffel Software implementation</label><url>../../10_ise_eiffel_specific/ecma.xml</url></link></seealso>
12 <list ordered="false">
13 <item>Exceptions are objets are now implemented.</item>
14 <item>Added support for new ~ operator which can compare 2 objects safely regardless of their type.</item>
15 <item>Added detection of harmful catcall at runtime (harmless one are currently ignored).</item>
16 <item>Added support for `note' keyword with a migration path in case `note' is being used as an identifier in your code.</item>
17 <item>Added `-gc_stats' option to get some information on how much CPU time is spent in GC during an Eiffel compilation.</item>
18 <item>Introduced several new much more powerful CAPs that now can be applied not only to read-only entities, but also to local variables (including <code><reserved_word>Result</reserved_word></code>), and can take into account execution paths as well as some obvious void-safe patterns.</item>
19 </list>
20 <heading><size>2</size>Improvements</heading>
21 <list ordered="false">
22 <item>Improved speed of compiler by a significant factor for large system.</item>
23 <item>Generated code is about 3-4% faster with a size reduction of about 2-3%.</item>
24 <item>Improved number of dynamic to static bindings in finalized code. Improved quality of inlined code for reducing even more of the dynamic calls.</item>
25 <item>Reduced the size of the AST stored in memory during a compilation by 20/25% which results in a memory usage reduction for EiffelStudio of about 15%. For example when compiling EiffelStudio on Windows 64-bit, it was taking 920MB with the previous version, and now it would be 800MB.</item>
26 <item>Fixed performance issue with {<class_name>SPECIAL</class_name>}.<feature_name>clear_all</feature_name> when handling a special of reference.</item>
27 <item>Removed <code><compiler_error>VUOT(2)</compiler_error></code> that required that the type of an object test local is attached.</item>
28 </list>
29 <heading><size>2</size>Changes</heading>
30 <list ordered="false">
31 <item>Protected several calls to `eif_wean' on the same EIF_OBJECT. This will prevent a memory corruption for people using it incorrectly with a minor slow down since in a typical application there should not be too many protected objects.</item>
32 <item>Removed <code><compiler_error>VFAV(4)</compiler_error></code> validity error that is no longer specified in the standard.</item>
33 <item>Due to new meaning of ~, the old syntax for agents is not being supported anymore. If you still have some code using the old agent syntax, compile it with 6.1 with syntax warning enabled to fix your code before upgrading to 6.2.</item>
34 </list>
35 <heading><size>2</size>Bug fixes</heading>
36 <heading><size>3</size>Language issues</heading>
37 <list ordered="false">
38 <item>Fixed various limitations with support of attached types in 6.1, including support for
39 <list ordered="false">
40 <item>attachment marks for tuple types and formal generics</item>
41 <item>object tests in class invariants</item>
42 </list></item>
43 </list>
44 <heading><size>3</size>Compiler issues</heading>
45 <list ordered="false">
46 <item>Fixed eweasel test#final046 by avoiding useless creation of temporary objects during dynamic dispatch. It can also dramatically speed up certain kind of code; on the compiler itself, the speed up is about 8-10%. In the worst case scenario it is 400% or more. Note this bug was introduced in version 6.0. Compared to 5.7, in 6.2 the worst case scenario is still about 10% slower.</item>
47 <item>Fixed an incorrect code generation for `is_equal' in ANY when exception trace is off which could cause a memory corruption.</item>
48 <item>Fixed various issues with compiler when inlining is enabled.</item>
49 <item>Fixed compiler crash when compiling a class where a type used in a signature of a feature has the wrong number of generic parameters. Fixed eweasel test#incr285.</item>
50 <item>Fixed an incorrect code generation for the dynamic binding of routines defined in generic classes and attribute access in general. Fixed eweasel test#exec272 and test#final039.</item>
51 <item>Fixed eweasel test#melt081 where having a redefined routine involving an anchor to a non-existing feature would crash the compiler instead of reporting a VEEN error.</item>
52 <item>Various bug fixes with respect of handling of expanded generic classes used in generic classes.</item>
53 </list>
54 <heading><size>3</size>Runtime/code generation issues</heading>
55 <list ordered="false">
56 <item>Changed the usage of `eif_adopt', `eif_protect', `eif_wean', `eif_freeze' and `eif_unfreeze' so that they can be used in concurrent thread. Meaning that it is safe to use them as long as the argument is different in various threads.</item>
57 </list>
58 <heading><size>3</size>Store/Retrieve issues</heading>
59 <list ordered="false">
60 <item>Fixed some issues with the storing or retrieving of generic expanded types.</item>
61 </list>
62 </paragraph>
63 </document>

Properties

Name Value
svn:eol-style native

  ViewVC Help
Powered by ViewVC 1.1.23