Difference between revisions of "EiffelStudio 6.7 Releases"
m (→Bug fixes: Add a note on fixing bug#16901) |
(→Bug fixes) |
||
(72 intermediate revisions by 6 users not shown) | |||
Line 5: | Line 5: | ||
==6.7.x== | ==6.7.x== | ||
Placeholder for new stuff since last intermediate release. | Placeholder for new stuff since last intermediate release. | ||
+ | ===New features=== | ||
+ | ===Improvements=== | ||
+ | * compiler: Allowed unknown tags in ECF instead of reporting an internal XML parsing error. | ||
+ | |||
+ | ===Feature removed=== | ||
+ | ===Bug fixes=== | ||
+ | ===User changes=== | ||
+ | ===Developer changes=== | ||
+ | |||
+ | ==6.7.8.5123 (Final Release, December 15th 2010)== | ||
+ | ===New features=== | ||
+ | ===Improvements=== | ||
+ | ===Feature removed=== | ||
+ | ===Bug fixes=== | ||
+ | * studio: Fixed bug#17193 where displaying the short error caused EiffelStudio to crash. | ||
+ | * compiler: Fixed eweasel test#final093. | ||
+ | * compiler: Fixed some issues with the delivery of GCC for Windows 32-bit. | ||
+ | |||
+ | ===User changes=== | ||
+ | ===Developer changes=== | ||
+ | |||
+ | ==6.7.8.5049 (Release Candidate, December 5th 2010)== | ||
+ | ===Bug fixes=== | ||
+ | * debugger: Fixed bug #17175: Feature call on void target in {DEBUGGER_AST_SERVER}. | ||
+ | * debugger: Fixed bug#17177: Pick and drop on output tool as no effect | ||
+ | * runtime: When running an Eiffel system on Windows without assertion monitoring and you try to write a file that is not yet open, it will trigger an exception instead of silently exiting. | ||
+ | * studio: Fixed bug#17210 where formatting of across loops triggered some errors. | ||
+ | * compiler: Fixed some incrementality issues when adding / removing types in a system. Mostly visible when one includes the testing library required by AutoTest. | ||
+ | * studio: Fixed saving of diagram into PNG which was doing nothing instead of saving. | ||
+ | |||
+ | ===User changes=== | ||
+ | * studio: Allow to filter C_COMPILER_WARNING in the Error and Warning tool | ||
+ | * studio: now accept license.lic and licence.lic for automatic "note/copyright/license" generation | ||
+ | |||
+ | ===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=== | ||
+ | * {{Red|base: Initial implementation of the WEAK_REFERENCE class. It only works with references and in this current version is only implemented for classic Eiffel.}} | ||
+ | * {{Red|compiler: Taken separate status of a type into account when checking for conformance.}} | ||
+ | * {{Red|compiler: Changed default formal generic constraint from <e>detachable ANY</e> to <e>detachable separate ANY</e>.}} | ||
+ | * {{Red|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=== | ||
+ | *compiler: Fixed incorrect output of generic constraints that involve the same formal generic recursively (bug#16948). | ||
+ | *compiler: Fixed bug#16949 when the particular order of formal generic constraints might cause incorrect compiler error report (test#multicon054). | ||
+ | *compiler: Fixed a compiler crash when QAT refers to the recursively defined formal generic (bug#16950, test#multicon055). | ||
+ | *compiler: Fixed bug#16743 that caused a compiler crash when a particular set of keywords is allowed to be used as identifiers under some conditions (test#term186). | ||
+ | *compiler: Fixed many issues related to once per object (test#once001, test#once002, test#once003, test#once004, test#once005, test#once006, test#once007, test#once008, test#once009, test#once010, test#once011, test#incr366, test#incr376, test#incr384) | ||
+ | |||
+ | ===User changes=== | ||
+ | * {{Red|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=== | ||
+ | * {{Red|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=== | ||
+ | * {{Red|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=== | ===New features=== | ||
*{{Red|compiler: Added support for gcc on Windows 64-bit, thus removing the need for Microsoft Visual Studio for most type of projects.}} | *{{Red|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=== | ===Improvements=== | ||
+ | * {{Red|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=== | ===Feature removed=== | ||
===Bug fixes=== | ===Bug fixes=== | ||
− | *compiler: Fixed various crashes and incorrect or missing bug reports related to qualified anchored types (bug#16791 (test#anchor011), bug#16792 (test#incr352), bug#16793 (test#incr353), bug#16797 (test#anchor012), bug#16798 (test#anchor013), bug#16799 (test#anchor014), bug#16800 (test#anchor015), bug#16803 (test#anchor016), bug#16804 (test#anchor017), test#anchor018, bug#16819 (test#anchor019), bug#16821 (test#incr354), test#anchor020, test#anchor021, bug#16824 (test#anchor022), test#anchor023, bug#16839 (test#anchor024), test#anchor026, bug#16848 (test#anchor027), bug#16849, bug#16850 (test#attach030), bug#16855 (test#final089), bug#16849, bug#16867 (test#anchor028), bug#16868 (test#anchor029), bug#16876 (test#anchor031), bug#16878 (test#incr356), bug#16883 (test#anchor034), bug#16884 (test#anchor035), bug#16887 (test#anchor038), bug#16890 (test#anchor040), bug#16893 (test#incr359), bug#16897 (test#anchor041), bug#16901 (test#incr364), bug#16902 (test#anchor043)). | + | *compiler: Fixed various crashes and incorrect or missing bug reports related to qualified anchored types (bug#16791 (test#anchor011), bug#16792 (test#incr352), bug#16793 (test#incr353), bug#16797 (test#anchor012), bug#16798 (test#anchor013), bug#16799 (test#anchor014), bug#16800 (test#anchor015), bug#16803 (test#anchor016), bug#16804 (test#anchor017), test#anchor018, bug#16819 (test#anchor019), bug#16821 (test#incr354), test#anchor020, test#anchor021, bug#16824 (test#anchor022), test#anchor023, bug#16839 (test#anchor024), test#anchor026, bug#16848 (test#anchor027), bug#16849, bug#16850 (test#attach030), bug#16855 (test#final089), bug#16849, bug#16867 (test#anchor028), bug#16868 (test#anchor029), bug#16876 (test#anchor031), bug#16878 (test#incr356), bug#16879 (test#anchor033), bug#16883 (test#anchor034), bug#16884 (test#anchor035), bug#16885 (test#anchor036), bug#16886 (test#anchor037), bug#16887 (test#anchor038), bug#16889 (test#incr358), bug#16890 (test#anchor040), bug#16893 (test#incr359), bug#16897 (test#anchor041), bug#16899 (test#incr362), bug#16900 (test#incr363), bug#16901 (test#incr364), bug#16902 (test#anchor043), bug#16943 (test#anchor047), bug#16944 (test#anchor048), bug#16945 (test#anchor049), bug#16959 (test#anchor052)). |
*compiler: Fixed eweasel test#exec327 where evaluation an assertion the code being executed encounter the new check ... then ... end instruction it would reset some internal flags causing assertion within assertions to be checked when they should not. | *compiler: Fixed eweasel test#exec327 where evaluation an assertion the code being executed encounter the new check ... then ... end instruction it would reset some internal flags causing assertion within assertions to be checked when they should not. | ||
*compiler: Prevented a failure in the case of a directory containing Eiffel classes is abruptly removed from disk while being processed at degree 6. | *compiler: Prevented a failure in the case of a directory containing Eiffel classes is abruptly removed from disk while being processed at degree 6. | ||
*compiler: Fixed bug#16815: Feature call on void target in {CLASS_C}.inline-agent#1 of has_stable_attribute in EiffelStudio. | *compiler: Fixed bug#16815: Feature call on void target in {CLASS_C}.inline-agent#1 of has_stable_attribute in EiffelStudio. | ||
− | *compiler: | + | *compiler: Fixed bug#16795: No error or warning for unknown once key. |
− | *debugger: | + | *debugger: Fixed bug#16838: User can bring up multiple breakpoint dialogs on same breakpoint. |
*studio: fixed bug#16831: Picking and dropping class from Features window into Editor tab clears Features window. | *studio: fixed bug#16831: Picking and dropping class from Features window into Editor tab clears Features window. | ||
− | *compiler: | + | *compiler: Fixed incremental bugs that involve types anchored to expanded ones (bug#16882 (test#incr357), bug#15825 (test#incr329)). |
− | *compiler: | + | *compiler: Fixed bug#16921 that resulted in VEVI error for an attribute of a formal generic type, constrained to an expanded type (see test#attach073). |
+ | *compiler: Fixed issues with conformance checks for formal generics constrained to other formal generics, including conformance to expanded types (see test#conform009, test#conform010, test#valid114). | ||
+ | *compiler: Disallowed incorrectly accepted empty contraint types that also fixes some related crashes (bug#15197 (test#term171), bug#16133 (test#multicon052), bug#16908 (test#syntax061)). | ||
+ | *compiler: Fixed bug#16912: Executing many inherited once-per-object routines crashes in finalized system | ||
+ | *compiler: Fixed an issue that may cause a compiler crash when a formal generic constraint lists a generic derivation that is never created during system execution (see test#term185). | ||
+ | *compiler: Fixed bug#16970 that caused incorrect code to be generated when using target type NONE in object test with the source of an expanded type (see test#attach076). | ||
+ | *store: Fixed bug#16946 and eweasel test#store032 where `cid_array' was not properly initialized in a different thread than the main thread. | ||
+ | *encoding: Fixed bug#16820: Endianness issue on big endian machine. | ||
+ | *encoding: Fixed bug#16836: Unexpected BOM apperance, caused by inconsistent behavior of iconv on Solaris 9 Sparc and Solaris 10 Sparc. | ||
+ | *Vision2: Fixed bug#16892: Context menu in editor gone since 6.5!!!! | ||
===User changes=== | ===User changes=== | ||
===Developer changes=== | ===Developer changes=== |
Latest revision as of 09:52, 14 January 2011
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
- compiler: Allowed unknown tags in ECF instead of reporting an internal XML parsing error.
Feature removed
Bug fixes
User changes
Developer changes
6.7.8.5123 (Final Release, December 15th 2010)
New features
Improvements
Feature removed
Bug fixes
- studio: Fixed bug#17193 where displaying the short error caused EiffelStudio to crash.
- compiler: Fixed eweasel test#final093.
- compiler: Fixed some issues with the delivery of GCC for Windows 32-bit.
User changes
Developer changes
6.7.8.5049 (Release Candidate, December 5th 2010)
Bug fixes
- debugger: Fixed bug #17175: Feature call on void target in {DEBUGGER_AST_SERVER}.
- debugger: Fixed bug#17177: Pick and drop on output tool as no effect
- runtime: When running an Eiffel system on Windows without assertion monitoring and you try to write a file that is not yet open, it will trigger an exception instead of silently exiting.
- studio: Fixed bug#17210 where formatting of across loops triggered some errors.
- compiler: Fixed some incrementality issues when adding / removing types in a system. Mostly visible when one includes the testing library required by AutoTest.
- studio: Fixed saving of diagram into PNG which was doing nothing instead of saving.
User changes
- studio: Allow to filter C_COMPILER_WARNING in the Error and Warning tool
- studio: now accept license.lic and licence.lic for automatic "note/copyright/license" generation
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
todetachable 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
- compiler: Fixed incorrect output of generic constraints that involve the same formal generic recursively (bug#16948).
- compiler: Fixed bug#16949 when the particular order of formal generic constraints might cause incorrect compiler error report (test#multicon054).
- compiler: Fixed a compiler crash when QAT refers to the recursively defined formal generic (bug#16950, test#multicon055).
- compiler: Fixed bug#16743 that caused a compiler crash when a particular set of keywords is allowed to be used as identifiers under some conditions (test#term186).
- compiler: Fixed many issues related to once per object (test#once001, test#once002, test#once003, test#once004, test#once005, test#once006, test#once007, test#once008, test#once009, test#once010, test#once011, test#incr366, test#incr376, test#incr384)
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
- compiler: Fixed various crashes and incorrect or missing bug reports related to qualified anchored types (bug#16791 (test#anchor011), bug#16792 (test#incr352), bug#16793 (test#incr353), bug#16797 (test#anchor012), bug#16798 (test#anchor013), bug#16799 (test#anchor014), bug#16800 (test#anchor015), bug#16803 (test#anchor016), bug#16804 (test#anchor017), test#anchor018, bug#16819 (test#anchor019), bug#16821 (test#incr354), test#anchor020, test#anchor021, bug#16824 (test#anchor022), test#anchor023, bug#16839 (test#anchor024), test#anchor026, bug#16848 (test#anchor027), bug#16849, bug#16850 (test#attach030), bug#16855 (test#final089), bug#16849, bug#16867 (test#anchor028), bug#16868 (test#anchor029), bug#16876 (test#anchor031), bug#16878 (test#incr356), bug#16879 (test#anchor033), bug#16883 (test#anchor034), bug#16884 (test#anchor035), bug#16885 (test#anchor036), bug#16886 (test#anchor037), bug#16887 (test#anchor038), bug#16889 (test#incr358), bug#16890 (test#anchor040), bug#16893 (test#incr359), bug#16897 (test#anchor041), bug#16899 (test#incr362), bug#16900 (test#incr363), bug#16901 (test#incr364), bug#16902 (test#anchor043), bug#16943 (test#anchor047), bug#16944 (test#anchor048), bug#16945 (test#anchor049), bug#16959 (test#anchor052)).
- compiler: Fixed eweasel test#exec327 where evaluation an assertion the code being executed encounter the new check ... then ... end instruction it would reset some internal flags causing assertion within assertions to be checked when they should not.
- compiler: Prevented a failure in the case of a directory containing Eiffel classes is abruptly removed from disk while being processed at degree 6.
- compiler: Fixed bug#16815: Feature call on void target in {CLASS_C}.inline-agent#1 of has_stable_attribute in EiffelStudio.
- compiler: Fixed bug#16795: No error or warning for unknown once key.
- debugger: Fixed bug#16838: User can bring up multiple breakpoint dialogs on same breakpoint.
- studio: fixed bug#16831: Picking and dropping class from Features window into Editor tab clears Features window.
- compiler: Fixed incremental bugs that involve types anchored to expanded ones (bug#16882 (test#incr357), bug#15825 (test#incr329)).
- compiler: Fixed bug#16921 that resulted in VEVI error for an attribute of a formal generic type, constrained to an expanded type (see test#attach073).
- compiler: Fixed issues with conformance checks for formal generics constrained to other formal generics, including conformance to expanded types (see test#conform009, test#conform010, test#valid114).
- compiler: Disallowed incorrectly accepted empty contraint types that also fixes some related crashes (bug#15197 (test#term171), bug#16133 (test#multicon052), bug#16908 (test#syntax061)).
- compiler: Fixed bug#16912: Executing many inherited once-per-object routines crashes in finalized system
- compiler: Fixed an issue that may cause a compiler crash when a formal generic constraint lists a generic derivation that is never created during system execution (see test#term185).
- compiler: Fixed bug#16970 that caused incorrect code to be generated when using target type NONE in object test with the source of an expanded type (see test#attach076).
- store: Fixed bug#16946 and eweasel test#store032 where `cid_array' was not properly initialized in a different thread than the main thread.
- encoding: Fixed bug#16820: Endianness issue on big endian machine.
- encoding: Fixed bug#16836: Unexpected BOM apperance, caused by inconsistent behavior of iconv on Solaris 9 Sparc and Solaris 10 Sparc.
- Vision2: Fixed bug#16892: Context menu in editor gone since 6.5!!!!