mirror of
https://github.com/EiffelSoftware/eiffel-org.git
synced 2026-04-04 09:09:22 +02:00
Replace occurrences of ..' by ..` (backtick+text+quote replaced by backtick+text+backtick).
git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@1597 abb3cda0-5349-4a8f-a601-0c33ac3a8c38
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
In order to launch a compilation without user intervention you need to specify the `-batch` switch in the '''ec''' command line, otherwise the Eiffel compilation will be blocked. We will present below a typical example of batch processing on both Unix and Windows platforms where we want to compile a project in both frozen and finalized mode, then to launch the C compilations. At the same time we want to save the output of '''ec''' and the C compilations.
|
||||
|
||||
===Unix===
|
||||
In a file called `launch_ec' you can have the following:
|
||||
In a file called `launch_ec` you can have the following:
|
||||
<code lang=text>
|
||||
#!/bin/sh
|
||||
output_file="/output_path/OUTPUT"
|
||||
@@ -26,7 +26,7 @@ It will go the directory where your project is located and compile your Eiffel c
|
||||
{{note|All output from '''ec''' are going to the error output, so do not forget to redirect the error output when you want to see the result. }}
|
||||
|
||||
===Windows===
|
||||
In a file called `launched_ec.bat' you can have the following:
|
||||
In a file called `launched_ec.bat` you can have the following:
|
||||
<code lang=text>
|
||||
rem Launch Eiffel compilation
|
||||
ec -batch -config config.ecf -finalize -c_compile > c:\output_path\OUTPUT
|
||||
|
||||
@@ -23,18 +23,18 @@ 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).
|
||||
* 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.
|
||||
* 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.
|
||||
|
||||
==Changes==
|
||||
|
||||
==Bug fixes==
|
||||
|
||||
===Compiler issues===
|
||||
* 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).
|
||||
* 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).
|
||||
|
||||
===SCOOP issues===
|
||||
* The SCOOP runtime is now fully written in C to avoid portability issues.
|
||||
* Corrected access to tuple fields in SCOOP mode that now follow the validity rules and the semantics of ordinary attributes of a class.
|
||||
* test#scoop034 - Fixed a code generation bug in finalized mode for a generic derivation with an actual generic of a basic type.
|
||||
* test#term216 - Fixed a crash when processing conversion queries defined as constant attributes.
|
||||
* 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.
|
||||
* 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.
|
||||
|
||||
@@ -5,11 +5,11 @@
|
||||
* Implementation of new external syntax.
|
||||
* Implementation of verbatim strings.
|
||||
* Implementation of agents.
|
||||
* Implementation of agent creations on `Result' and `Current' object.
|
||||
* Implementation of agent creations on `Result` and `Current` object.
|
||||
* Improved incrementality of the C compilation: fewer directories will have their C files changed after a freeze.
|
||||
* New MSIL generation.
|
||||
* Introduction of 4 new basic classes: INTEGER_8, INTEGER_16, INTEGER_64, WIDE_CHARACTER.
|
||||
* Changed the storable mechanism so that we do not store POINTER objects with their value, instead we store a NULL value. As a consequence it is safe to store on disk objects that have references to C objects. Upon retrieval those references will be equal to `default_pointer'. This is now the default behavior, if someone wants to have the previous behavior, simply call `set_keep_pointer_value' from STORABLE.
|
||||
* Changed the storable mechanism so that we do not store POINTER objects with their value, instead we store a NULL value. As a consequence it is safe to store on disk objects that have references to C objects. Upon retrieval those references will be equal to `default_pointer`. This is now the default behavior, if someone wants to have the previous behavior, simply call `set_keep_pointer_value` from STORABLE.
|
||||
|
||||
==Improvements==
|
||||
* New run-time speed improvement (between 30 to 100% faster than the 4.5 release).
|
||||
@@ -24,7 +24,7 @@
|
||||
* CHARACTER has been extended to support the extended ASCII which means that the following expressions are now True instead of being False as it was in our previous version:
|
||||
** '%/127/' < '%/128/'
|
||||
** '%/127/' < '%/128/'
|
||||
** When using `independent_store', in case of retrieval error due to a name change in one of the class attributes we will display the original attribute name that was used to make the storable file. This will help when managing many storable files.
|
||||
** When using `independent_store`, in case of retrieval error due to a name change in one of the class attributes we will display the original attribute name that was used to make the storable file. This will help when managing many storable files.
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -13,12 +13,12 @@
|
||||
|
||||
And the following limitations:
|
||||
** Eiffel classes cannot inherit from non-Eiffel .NET classes (but they can be clients).
|
||||
** No support for `expanded' keyword.
|
||||
** No support for `expanded` keyword.
|
||||
|
||||
|
||||
* .NET generation now supports assembly signing in enterprise edition.
|
||||
* .NET generation now supports precompiled libraries.
|
||||
* Supports for manifest integer constants of different sizes, i.e. you can now assign for example the value `8` to a location of type <eiffel>INTEGER_8</eiffel>, <eiffel>INTEGER_16</eiffel>, <eiffel>INTEGER</eiffel> or <eiffel>INTEGER_64</eiffel>, however you can only assign the value `254' to a location of type <eiffel>INTEGER_16</eiffel>, <eiffel>INTEGER</eiffel> or <eiffel>INTEGER_64</eiffel>.
|
||||
* Supports for manifest integer constants of different sizes, i.e. you can now assign for example the value `8` to a location of type <eiffel>INTEGER_8</eiffel>, <eiffel>INTEGER_16</eiffel>, <eiffel>INTEGER</eiffel> or <eiffel>INTEGER_64</eiffel>, however you can only assign the value `254` to a location of type <eiffel>INTEGER_16</eiffel>, <eiffel>INTEGER</eiffel> or <eiffel>INTEGER_64</eiffel>.
|
||||
|
||||
==Improvements==
|
||||
* Compiler that is about 20% faster than 5.1.
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
* For .NET, allow calling of overloaded features for a .NET classes to be called without using disambiguated names. Disambiguated names are still needed when redefining inherited features from .NET classes.
|
||||
* Support for inclusion of .NET resources within Eiffel assemblies.
|
||||
* Launch C compilation when needed if "-c_compile" option is specified on the "ec" command line.
|
||||
* Added ability to define custom attributes on assembly. One as to define custom attributes under the new `assembly_metadata' index clause of the root class.
|
||||
* Added ability to define custom attributes on assembly. One as to define custom attributes under the new `assembly_metadata` index clause of the root class.
|
||||
* Limited support for new <code> convert </code> keyword (only on argument passing and assignments. Not supported when used with infix routines).
|
||||
|
||||
==Improvements==
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
==Changes==
|
||||
* Changed the way we generate calls to C/C++ external routines. It is possible that because of this change, code that used to C compile, will not compile anymore. This happens mostly when mixing C and C++ code and the C call being made is incorrect but was not previously checked against the C header files if provided.
|
||||
* In multithreaded mode, all C externals that could potentially block the execution of the system should be marked `blocking' as in: <br/>
|
||||
* In multithreaded mode, all C externals that could potentially block the execution of the system should be marked `blocking` as in: <br/>
|
||||
<code> sleep (m: INTEGER) is
|
||||
external
|
||||
"C blocking"
|
||||
@@ -36,7 +36,7 @@ ti: TUPLE [INTEGER]
|
||||
td := ti</code>
|
||||
The warning will help you correct code using this pattern, because in the next release this will be rejected in order to conform to the Eiffel programming language specification.
|
||||
* Now we do not generate by default the .NET attribute <eiffel>ComVisibleAttribute</eiffel> with a False value. If needed it has to be done through the new compiler functionality to add custom attributes on assembly.
|
||||
* Changed indexing clause tag for specifying custom attributes for .NET systems. Now `attribute' is replaced by `metadata'. Now you can have:
|
||||
* Changed indexing clause tag for specifying custom attributes for .NET systems. Now `attribute` is replaced by `metadata`. Now you can have:
|
||||
** metadata: generated for both interface and implementation classes
|
||||
** assembly_metadata: generated for assembly only when specified in root class of system
|
||||
** class_metadata: generated only for implementation class
|
||||
|
||||
@@ -21,7 +21,7 @@ to say that the valid actual generic parameters for <eiffel>A</eiffel> are alway
|
||||
==Changes==
|
||||
* Compiler is now checking that you cannot redeclare a formal generic parameter into a reference type unless the formal generic parameter is being constraint to be always a reference type (See the '''What's new''' section above).
|
||||
* Removed obsolete <eiffel>eifcid</eiffel>, <eiffel>eif_expand</eiffel> and <eiffel>eifexp</eiffel>from the CECIL interface, one has to use <eiffel>eif_type_id</eiffel>instead.
|
||||
* In .NET, changed the naming conventions of resources included in an assembly. The extension `.resources' is appended for resources that are originally provided as `.resx' or `.txt' files. Other files are embedded as is in the assembly and the name of the resource is the name of the file.
|
||||
* In .NET, changed the naming conventions of resources included in an assembly. The extension `.resources` is appended for resources that are originally provided as `.resx` or `.txt` files. Other files are embedded as is in the assembly and the name of the resource is the name of the file.
|
||||
* In .NET, now all classes inherit from <eiffel>ANY</eiffel>. Before all classes inherited from <eiffel>SYSTEM_OBJECT</eiffel>. The consequences are:
|
||||
** You can write an Eiffel generic classes where the actual generic parameter is a .NET class.
|
||||
** If you used to inherit from .NET classes and Eiffel classes you can replace the inheritance clause below:
|
||||
@@ -139,7 +139,7 @@ instead of
|
||||
|
||||
===.NET issues===
|
||||
* Fixed incorrect code generation of native arrays which would cause the code to be rejected in newer version of the .NET Framework.
|
||||
* Fixed incorrect computation of `max_stack' for a routine body which could make the generated code not verifiable.
|
||||
* Fixed incorrect computation of `max_stack` for a routine body which could make the generated code not verifiable.
|
||||
|
||||
===Store/Retrieve issues===
|
||||
* Fix some issues related to the use of recoverable storable when manipulating generic types.
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
* No freeze is required when adding an agent, saving you time since C compilation can be long for very large project.
|
||||
* Reduced the required disk space for a workbench compilation in classic mode (went from 1.8 GB to 1GB for a very large project).
|
||||
* Improved speed of agent calls in classic mode.
|
||||
* Support use of IL enumerations with underlying integer types different from System.Int32. In particular, the built-in features `to_integer' and `from_integer' now use the underlying type rather than System.Int32.
|
||||
* Support use of IL enumerations with underlying integer types different from System.Int32. In particular, the built-in features `to_integer` and `from_integer` now use the underlying type rather than System.Int32.
|
||||
* Support generation of IL properties as well as custom attributes for them.
|
||||
* Support the new syntax without the <code>is</code> keyword in the feature declaration.
|
||||
* Allowed bracket expressions to be used as a target of a qualified feature call (this is an extension to ECMA standard that does not permit this syntax at the moment).
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
* Exceptions as objects are now implemented.
|
||||
* Added support for new ~ operator which can compare 2 objects safely regardless of their type.
|
||||
* Added detection of harmful catcall at runtime (harmless ones are currently ignored).
|
||||
* Added support for `note' keyword with a migration path in case `note' is being used as an identifier in your code.
|
||||
* Added `-gc_stats' option to get some information on how much CPU time is spent in GC during an Eiffel compilation.
|
||||
* Added support for `note` keyword with a migration path in case `note` is being used as an identifier in your code.
|
||||
* Added `-gc_stats` option to get some information on how much CPU time is spent in GC during an Eiffel compilation.
|
||||
* 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>Result</code>), and can take into account execution paths as well as some obvious void-safe patterns.
|
||||
|
||||
==Improvements==
|
||||
@@ -21,7 +21,7 @@
|
||||
* Removed <code>VUOT(2)</code> that required that the type of an object test local is attached.
|
||||
|
||||
==Changes==
|
||||
* 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.
|
||||
* 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.
|
||||
* Removed <code>VFAV(4)</code> validity error that is no longer specified in the standard.
|
||||
* 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.
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
|
||||
===Compiler issues===
|
||||
* Fixed eweasel test#final046 by avoiding useless creation of temporary objects during dynamic dispatch. It can also dramatically speed up certain kinds 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.
|
||||
* Fixed an incorrect code generation for `is_equal' in ANY when exception trace is off which could cause a memory corruption.
|
||||
* Fixed an incorrect code generation for `is_equal` in ANY when exception trace is off which could cause a memory corruption.
|
||||
* Fixed various issues with compiler when inlining is enabled.
|
||||
* 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.
|
||||
* 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.
|
||||
@@ -43,7 +43,7 @@
|
||||
* Various bug fixes with respect of handling of expanded generic classes used in generic classes.
|
||||
|
||||
===Runtime/code generation issues===
|
||||
* 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.
|
||||
* 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.
|
||||
|
||||
===Store/Retrieve issues===
|
||||
* Fixed some issues with the storing or retrieving of generic expanded types.
|
||||
|
||||
@@ -27,15 +27,15 @@
|
||||
* Fixed compiler issues with handling of attached types.
|
||||
|
||||
===Compiler issues===
|
||||
* Renamed `eif_com.h' from the compiler delivery into `eif_com_exception.h' as it conflicts with `eif_com.h' from the EiffelCOM library.
|
||||
* Renamed `eif_com.h` from the compiler delivery into `eif_com_exception.h` as it conflicts with `eif_com.h` from the EiffelCOM library.
|
||||
* Fixed eweasel test#final061 and test#final063 where some kind of code could cause a crash of the compiler during degree -3 with inlining enabled.
|
||||
* Fixed eweasel test#final063 which caused a C compiler error when your code uses an inline agent in an assertion and the routine in which it is defined is deferred.
|
||||
* Fixed Makefile code generation issue on machine with many cores which could cause a C compilation error because some dependencies are missing in the Makefile targets.
|
||||
* Fixed bug#13881 where if you have a VKCN error when using a routine whose return type is a like argument then it would crash instead of reporting the VKCN error. Improved VKCN error reporting by providing the instruction or expression which causes the problem.
|
||||
* Fixed eweasel test#rdtp001 and test#term158 where if TUPLE is not written using upper case characters, then the compiler will crash when trying to analyze the type.
|
||||
* Fixed the issue found with GCC 4.x series where an assignment of the form *(a + x) = f() would first evaluate (a+x) and then `f' which could cause a memory corruption if `f' triggers a GC cycle. As far as we could tell, this kind of code generation was only done when `f' would return a basic type. See eweasel test#runtime007.
|
||||
* Fixed eweasel test#ccomp076 where C/C++ inlines did not get the protected object if any, but only the unprotected one which could cause some issue if the C/C++ inline code uses `eif_access' or `eif_adopt'.
|
||||
* Fixed various issues with the `full class checking' option that would not work for inherited code involving conversion or labeled tuples (see eweasel test#svalid001, test#svalid007, test#svalid009 and test#svalid010).
|
||||
* Fixed the issue found with GCC 4.x series where an assignment of the form *(a + x) = f() would first evaluate (a+x) and then `f` which could cause a memory corruption if `f` triggers a GC cycle. As far as we could tell, this kind of code generation was only done when `f` would return a basic type. See eweasel test#runtime007.
|
||||
* Fixed eweasel test#ccomp076 where C/C++ inlines did not get the protected object if any, but only the unprotected one which could cause some issue if the C/C++ inline code uses `eif_access` or `eif_adopt`.
|
||||
* Fixed various issues with the `full class checking` option that would not work for inherited code involving conversion or labeled tuples (see eweasel test#svalid001, test#svalid007, test#svalid009 and test#svalid010).
|
||||
* Fixed bug#14856 and test#final064 where if before generating the agent call/item routine we generated a call to a deferred routine without implementation we would not generate the arguments of the agent causing a C compilation error in finalized mode.
|
||||
* Fixed improper runtime semantics for creation of manifest tuples, arrays and agents (see eweasel test#tuple011, test#tuple014 and test#agent006)
|
||||
* Fixed eweasel test#term159 where the compiler would crash if there is a conversion for one of the closed argument of an agent creation.
|
||||
@@ -50,7 +50,7 @@
|
||||
* When registering externally created threads, make sure that the runtime does not exit them when no more Eiffel code needs to be run as it must be done by the code that created it. Also made sure that the runtime per thread data are reset to 0 to ensure that we can register/unregister the external thread as many times as needed.
|
||||
* Fixed a buffer overflow that would occur on some Unix platforms when a signal was received by the application.
|
||||
* Fixed eweasel test#thread006 where if many threads allocate small objects which are quickly dying then we could break the runtime synchronization and cause a crash.
|
||||
* Added a cast to ensure that `eif_globals' can compile properly in C++ mode.
|
||||
* Added a cast to ensure that `eif_globals` can compile properly in C++ mode.
|
||||
* Fixed eweasel test#runtime008 where we have a leak on each created thread if invariants are monitored.
|
||||
* Fixed eweasel test#runtime009 where a reallocation of a SPECIAL object could cause a memory corruption.
|
||||
* Fixed various issues with exceptions (performance, failure when reporting invariant, added I/O reason to exception object, extended stack traces up to the root class, rather than stopping at the first rescue clause).
|
||||
|
||||
@@ -28,7 +28,7 @@ a: detachable MY_TYPE note option: stable attribute end
|
||||
* Removed usage of infix/prefix in most of the libraries. To ease transition, added a compatibility option that allows existing code using the infix/prefix notation to continue to compile.
|
||||
* Attachment status of formal generic constraints are now taken into account when checking conformance and detecting VUTA errors when target type is a formal generic. '''Important''': default attachment status of the constraints follows the "attached-by-default" setting, so the code might need to be updated by adding a detachable mark in front of the formal generic constraints if the actual generic parameters can be detachable types.
|
||||
* The compiler does not produce the class progress output in batch mode. The old behavior is available by using the '''-verbose''' option.
|
||||
* Fixed incorrect display of NATURAL_32 attributes when calling `out' (fixes eweasel test#exec298 and bug#13862.)
|
||||
* Fixed incorrect display of NATURAL_32 attributes when calling `out` (fixes eweasel test#exec298 and bug#13862.)
|
||||
|
||||
==Bug fixes==
|
||||
|
||||
@@ -50,13 +50,13 @@ a: detachable MY_TYPE note option: stable attribute end
|
||||
* Fixed eweasel test#melt085 and test#melt086 where using Precursor in a manifest array, manifest tuple or expression of an object test would cause a crash at runtime.
|
||||
* Fixed multiple issues with validity checks involving multi-constraint formal generics and "like Current" types.
|
||||
* Fixed system validity errors which were not previously detected or on the other hand rejected when it was correct. Fixes eweasel tests test#svalid019, test#svalid020 and test#multicon051.
|
||||
* Fixed eweasel test#exec310 and bug#14477 where if you have a class name that is longer than 512 bytes or an attribute name longer than 512 bytes and you call `out' it would cause a buffer overflow.
|
||||
* Fixed eweasel test#exec310 and bug#14477 where if you have a class name that is longer than 512 bytes or an attribute name longer than 512 bytes and you call `out` it would cause a buffer overflow.
|
||||
|
||||
===Runtime/code generation issues===
|
||||
* Fixed broken generation of single threaded DLL.
|
||||
* Fixed a bug on Windows where including some Eiffel multithreaded code in a DLL would cause a crash. This was due to the way we compiled our Thread Local Storage using a Microsoft optimization that only works for normal binaries, not DLLs.
|
||||
* Fixed some interpreter crashes when handling manifest strings or agent expressions.
|
||||
* Fixed eweasel test#final077 where the arguments passed to a creation expression where not properly processed when analyzing expressions. This caused the following instruction: "l_x := x.y.z (create .make (l_x))" to override the value of `l_x' with the value of `x.y' which is wrong.
|
||||
* Fixed eweasel test#final077 where the arguments passed to a creation expression where not properly processed when analyzing expressions. This caused the following instruction: "l_x := x.y.z (create .make (l_x))" to override the value of `l_x` with the value of `x.y` which is wrong.
|
||||
* Fixed eweasel test#incr321 when if you finalize after removing a class from the system, then execution of workbench code fails.
|
||||
* Fixed eweasel test#attach047 where type of array of string passed as argument to the creation procedure of the root class should have an attached actual argument type.
|
||||
* Fixed eweasel test#expanded008 and bug#15693 where if you had an expanded with references attributes then the garbage collector would not update the internal references of the expanded and cause some memory corruption.
|
||||
|
||||
@@ -23,7 +23,7 @@ No major improvements in 6.5 as this release was mostly focused on quality impro
|
||||
===Compiler issues===
|
||||
* Fixed eweasel test#incr313, test#incr317 and test#incr318 where removal of a convert clause was not taken into account by the compiler.
|
||||
* Fixed eweasel test#svalid022 where conversion to a target of a detachable type was not accepted, and also now the compiler will verify that the source of the conversion is always attached. Ensured that the source or the target type mentioned in a convert clause is attached.
|
||||
* Fixed eweasel test#svalid024 where using an inspect clause with static constant access would failed to compile in a descendant class when `full class checking' is enabled.
|
||||
* Fixed eweasel test#svalid024 where using an inspect clause with static constant access would failed to compile in a descendant class when `full class checking` is enabled.
|
||||
* Fixed eweasel test#term156 and test#svalid025 where compiler would crash while compiling code that needs to be regenerated in descendant classes (e.g. code from precondition) involving anchors or formal generic parameters.
|
||||
* Supported tracking changes made to a shared library definition file to trigger freeze automatically when there are any modifications to this file.
|
||||
* Fixed bug on Unix platforms where spaces in project/installation paths failed to create the necessary symbolic links, when using precompiles.
|
||||
@@ -44,6 +44,6 @@ No major improvements in 6.5 as this release was mostly focused on quality impro
|
||||
|
||||
|
||||
===Store/Retrieve issues===
|
||||
* Fixed bug#16395 and eweasel test#store026 to avoid mismatch if the metadata stored in `eskelet' is simplified or not (i.e. for class A[G] feature g: B[G], and then having A [INTEGER] could either describe `g' as either `B[G]' or `B[INTEGER]', even though different they are the same type and should not yield a mismatch).
|
||||
* Fixed bug#16395 and eweasel test#store026 to avoid mismatch if the metadata stored in `eskelet` is simplified or not (i.e. for class A[G] feature g: B[G], and then having A [INTEGER] could either describe `g` as either `B[G]` or `B[INTEGER]`, even though different they are the same type and should not yield a mismatch).
|
||||
* Fixed eweasel test#store028 where retrieving an object whose type involves a TUPLE type without a TUPLE instance could corrupt the retrieval system.
|
||||
|
||||
|
||||
@@ -10,14 +10,14 @@
|
||||
* The Eiffel Configuration Files accept C compiler and linker flags. Former ECFs using a workaround to specify those flags as part of the external includes or external objects sections are automatically updated to the new specification.
|
||||
* Report invalid Unicode code point for STRING_8 manifest.
|
||||
* Ensured you can switch C compilers after compiling with one on Windows.
|
||||
* Speed up C compilation with Visual Studio by using `#pragma once' on our header files (bug#17092).
|
||||
* Speed up C compilation with Visual Studio by using `#pragma once` on our header files (bug#17092).
|
||||
* Speed up execution of expanded comparison using ~ when types are known to be different at compile time.
|
||||
* Optimized code generation of <e>{CHARACTER_32}.is_character_8</e>.
|
||||
* Optimized code generation of boolean expressions that are known to be False or True at compile time in both workbench and finalized mode.
|
||||
|
||||
==Changes==
|
||||
* Breaking change of generating Unicode code point for STRING_8 manifest written in UTF-8 source code. (Written UTF-8 bytes was generated). Unlike previous versions, what you see will be what you get at runtime, i.e. the character codes are the same.
|
||||
* In the `on-demand' void-safety mode, the compiler will not report a VD88 error when you are using a non-void safe library. This should help migrating existing code to full void-safety.
|
||||
* In the `on-demand` void-safety mode, the compiler will not report a VD88 error when you are using a non-void safe library. This should help migrating existing code to full void-safety.
|
||||
* Removed support for type qualifier for strings used in obsolete messages.
|
||||
* Removed type qualifiers from manifest constants to follow the changes in the language rules that now prevent from using them in constant attribute declarations.
|
||||
* VWEQ warnings will only be triggered for immediate code, not inherited code.
|
||||
@@ -48,10 +48,10 @@
|
||||
|
||||
===Runtime/code generation issues===
|
||||
* Fixed code generation in melted mode when you declare a CHARACTER_32 constant feature such as <e>x: CHARACTER_32 = '%/027/'</e>.
|
||||
* Prevented a deadlock situation after a fork is performed on Unix platforms when using the `eif_thread_fork' (bug#18094).
|
||||
* Prevented a deadlock situation after a fork is performed on Unix platforms when using the `eif_thread_fork` (bug#18094).
|
||||
* Fixed a traitor situation where a multi-dot chain involving a separate target are treated as separate calls rather than normal calls (test#scoop024).
|
||||
* Fixed code generation of object test on basic types that was failing on .NET (test#dotnet113).
|
||||
* Fixed some definitions conflicts with `complex.h' which occurs on some platforms.
|
||||
* Fixed some definitions conflicts with `complex.h` which occurs on some platforms.
|
||||
* Ensured that on Windows using any Microsoft C++ compiler only 2 digits are displayed for exponents that can be represented on 2 digits and three otherwise.
|
||||
* Fixed a potential memory leak of thread context when a parent and a child are exiting at about the same time.
|
||||
* Fixed an incorrect handling of <e>detachable NONE</e> at runtime (test#melt088, test#valid154).
|
||||
|
||||
@@ -31,6 +31,6 @@ N/A
|
||||
* Fixed a bug where the TYPE instance of a new generic derivation in the running system would be corrupted.
|
||||
|
||||
===Store/Retrieve issues===
|
||||
* Fixed a bug in .NET where using the Eiffel serialization or marking objects would trigger computation of `hash_code' on Eiffel objects and thus changing their state.
|
||||
* Fixed a bug in .NET where using the Eiffel serialization or marking objects would trigger computation of `hash_code` on Eiffel objects and thus changing their state.
|
||||
|
||||
|
||||
|
||||
@@ -88,7 +88,7 @@ The previous call is valid, if and only if:
|
||||
|
||||
==Added external support==
|
||||
|
||||
Look at the page for [[C externals|C]] and [[C++ Externals|C++]] with the introduction of `struct' and C++ external features encapsulation.
|
||||
Look at the page for [[C externals|C]] and [[C++ Externals|C++]] with the introduction of `struct` and C++ external features encapsulation.
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -3,8 +3,7 @@
|
||||
[[Property:uuid|4d4a70fa-b6da-cecb-83e0-dcc18d6ed54a]]
|
||||
==Unix/Linux Users:==
|
||||
|
||||
EiffelStudio supports `gcc' on most platforms and the native`cc' compiler if it is an ANSI C compiler.
|
||||
|
||||
EiffelStudio supports `gcc` on most platforms and the native`cc' compiler if it is an ANSI C compiler.
|
||||
|
||||
|
||||
==Microsoft Windows Users==
|
||||
@@ -13,7 +12,7 @@ EiffelStudio supports Microsoft and MinGW compilers on Microsoft Windows.
|
||||
|
||||
===Microsoft Visual C++ Users===
|
||||
|
||||
By default the installation program will set in the registry keys the ISE_C_COMPILER key to `msc'.
|
||||
By default the installation program will set in the registry keys the ISE_C_COMPILER key to `msc`.
|
||||
|
||||
EiffelStudio supports only version 14.0 and higher of the Microsoft Visual C++ environment. This is available in Visual Studio 2005 or higher revision, or in version of the Windows SDK 6.1 or higher.
|
||||
|
||||
@@ -21,7 +20,7 @@ EiffelStudio will automatically detect the location of the C compiler.
|
||||
|
||||
===MinGW Users:===
|
||||
|
||||
By default the installation program will set in the registry keys the ISE_C_COMPILER key to `mingw'.
|
||||
By default the installation program will set in the registry keys the ISE_C_COMPILER key to `mingw`.
|
||||
|
||||
In versions as late as 6.6, there is a [[EiffelCOM Wizard Guided Tour|restriction]] that prevents the use of EiffelCOM with the MinGW compiler.
|
||||
|
||||
@@ -29,9 +28,9 @@ In versions as late as 6.6, there is a [[EiffelCOM Wizard Guided Tour|restrictio
|
||||
|
||||
You can do it in either of two different ways.
|
||||
|
||||
You can manually edit the registry key HKLM\Software\ISE\Eiffel''nn'' and change the value of the ISE_C_COMPILER string key to either `msc' or `mingw' depending upon the effect you desire.
|
||||
You can manually edit the registry key HKLM\Software\ISE\Eiffel''nn'' and change the value of the ISE_C_COMPILER string key to either `msc` or `mingw` depending upon the effect you desire.
|
||||
|
||||
Alternatively, you can set the environment variable ISE_C_COMPILER to either `msc' or `mingw'.
|
||||
Alternatively, you can set the environment variable ISE_C_COMPILER to either `msc` or `mingw`.
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user