/[eiffelstudio]/trunk/Delivery/newdocs/tools/eiffelstudio/reference/30_compiler/60_version_history/04_54_release/00_53_to_54_changes.html
ViewVC logotype

Contents of /trunk/Delivery/newdocs/tools/eiffelstudio/reference/30_compiler/60_version_history/04_54_release/00_53_to_54_changes.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 39087 - (show annotations)
Tue Sep 16 23:56:45 2003 UTC (16 years, 5 months ago) by manus
File MIME type: text/html
File size: 6708 byte(s)
Added changes about static access on externals.

1 <!DOCTYPE HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
2
3 <HTML>
4 <HEAD>
5 <TITLE>Major changes between ISE Eiffel 5.2 and ISE Eiffel 5.3:</TITLE>
6 <LINK REL=StyleSheet HREF="../../../../../../default.css">
7 </HEAD>
8
9
10
11 <BODY>
12
13
14
15 <H1>Changes between ISE Eiffel 5.3 and ISE Eiffel 5.4:</H1>
16
17
18
19 <p>&nbsp;</p>
20
21
22
23 <H2>What's new</H2>
24
25 <ul>
26 <li>Limited support for new <span class="ekeyword">convert</span> keyword
27 (only on argument passing and assignments. Not supported when used
28 with infix routines).</li>
29 <li>Support for assertion checking on external routines.</li>
30 <li>Removed limitation about implementing or redefining a non-external
31 routine by an external one and vice versa.</li>
32 <li>Support for new C/C++ inline specification.</li>
33 <li>For .NET, allow calling of overloaded features for a .NET classes
34 to be called without using disambiguated names. Disambiguated names
35 are still needed when redefining inherited features from .NET classes.</li>
36 <li>Support for inclusion of .NET resources within Eiffel assemblies.</li>
37 </ul>
38
39 <H2>Improvements</H2>
40
41
42 <ul>
43 <li>Improved speed of compilation by about 20-30%</li>
44 <li>Improved run-time memory allocation speed and footprint so that it
45 has a 15%-20% faster allocation scheme and takes less memory than
46 before.</li>
47 <li>Reduced waiting time at the end of the degree 6 when performing a
48 compilation from scratch (reduced to about 50% or more of the time it
49 used to take)</li>
50 <li>Improved speed of <span class="eclass">TUPLE</span> creation and <span class="eclass">TUPLE</span> access
51 which generates more compact C code.</li>
52 <li>Improved speed of agent calls by a factor of 2 to 3.</li>
53 <li>Improved speed of Eiffel calls from C (CECIL and use of $ operator
54 on routines). It also makes generated
55 executables smaller (about 1-5% smaller depending on number of
56 routines used in this context)</li>
57 </ul>
58
59
60 <h2>Changes</h2>
61
62
63 <ul>
64 <li>Changed the way we generate calls to C/C++ external routines. It
65 is possible that because of this change, code that used to C compile,
66 will not compile anymore. This happens mostly when mixing C and C++
67 code and the C call being made is incorrect but was not previously
68 checked against the C header files if provided.</li>
69 <li>In multithreaded mode, all C externals that could potentially
70 block the execution of the system should be marked `blocking' as in:<br>
71 <pre><span class="efeature">sleep</span> (m: <span class="eclass">INTEGER</span>) <span class="ekeyword">is</span>
72 <span class="ekeyword">external</span>
73 &quot;C blocking&quot;
74 <span class="ekeyword">end</span></pre>Not doing it could generate dead-lock during the execution of a multithreaded system.</li>
75 <li>Static access on externals is now only authorized when external is
76 a frozen external without assertions.</li>
77 </ul>
78
79
80 <h2>Bug fixes</h2>
81
82
83 <h3>Language issues</h3>
84
85
86 <ul>
87 <li>Now checks for valid export status in agent creation. Meaning that
88 in class <span class="eclass">MY_CLASS</span>, the following agent creation
89 <span class="ekeyword">agent</span> <span class="efeature">target</span>.<span class="efeature">call</span> is valid if and
90 only if <span class="efeature">call</span> is exported to <span class="eclass">MY_CLASS</span>.</li>
91 <li>Allowed type specification for open operands in agent creation,
92 i.e. one can now write: <span class="ekeyword">agent</span> <span class="efeature">f</span> ({<span class="eclass">A</span>}).</li>
93 <li>Fixed bug which allowed compiler to accept the following incorrect
94 code: <span class="efeature">char</span>: <span class="eclass">CHARACTER</span> <span class="ekeyword">is</span> <span class="estring">&quot;rdsf&quot;</span></li>
95 <li>Fixed bug in error reporting for incompatible <span class="eclass">BIT</span> types
96 involving bit manifest constants. It would
97 always report <span class="eclass">BIT 0</span>, instead of the actual number of bits in the bit
98 manifest constant.</li>
99 </ul>
100
101
102 <h3>Compiler issues</h3>
103 <ul>
104 <li>Fixed non-detection of changes when changing code from
105 <span class="ekeyword">agent</span> <span class="efeature">call </span>to
106 <span class="ekeyword">agent</span> <span class="ekeyword">Current</span>.<span class="efeature">call</span>.
107 Which should check for the validity of export of <span class="efeature">call </span>
108 to current class.</li>
109 </ul>
110
111
112 <h3>Runtime/code generation issues</h3>
113
114
115 <ul>
116 <li>Fixed issue when shared library definition file did not exist or
117 was invalid. Now it will not produce any C compilation errors.</li>
118 <li>Fixed bug in recoverable storable when there is a mismatch. The
119 first assignment attempt in
120 <span class="efeature">internal_correct_mismatch</span> from <span class="eclass">ANY</span> would crash.</li>
121 <li>Fixed issues when using agents in a multithreaded application,
122 they will sometimes disable the garbage collector and the application
123 might quickly run out of memory.</li>
124 <li>Fixed random crashes when EIF_MEMORY_CHUNK, EIF_MEMORY_SCAVENGE
125 and EIF_STACK_CHUNK environment variables had an incorrect value.
126 Instead the runtime will now fix the value to an appropriate one.</li>
127 </ul>
128
129
130 <h3>.NET issues</h3>
131
132
133 <ul>
134 <li>Fixed bug in code generation with following statement:<br>
135 <pre> l_time: <span class="eclass">TIME_SPAN</span>
136
137 <span class="efeature">print</span> (l_time.<span class="efeature">total_milliseconds</span>.<span class="efeature">out</span>)
138 </pre>
139 </li>
140 <li>&nbsp;</li>
141 </ul>
142
143
144 <h3>Store/Retrieve issues</h3>
145
146
147 <ul>
148 <li>Fixed memory corruption bug with recoverable storable when a
149 mismatch was detected</li>
150 <li>Fixed issue where mismatch was not detected if attributes were
151 dropped</li>
152 </ul>
153
154
155 </BODY>
156
157
158
159 </HTML>

Properties

Name Value
svn:eol-style native
svn:keywords Author Date Id Revision

  ViewVC Help
Powered by ViewVC 1.1.23