mirror of
https://github.com/EiffelSoftware/eiffel-org.git
synced 2025-12-07 23:32:42 +01:00
Author:halw
Date:2008-12-04T22:10:15.000000Z git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@118 abb3cda0-5349-4a8f-a601-0c33ac3a8c38
This commit is contained in:
@@ -6,6 +6,7 @@
|
|||||||
|
|
||||||
===What's new===
|
===What's new===
|
||||||
* Innovative testing tools let you automatically test your software, extract test cases from failed execution as well as manually creating your own test cases.
|
* Innovative testing tools let you automatically test your software, extract test cases from failed execution as well as manually creating your own test cases.
|
||||||
|
* Added brace matching in the editor.
|
||||||
* Added ability to automatically license your Eiffel classes each time you save a class.
|
* Added ability to automatically license your Eiffel classes each time you save a class.
|
||||||
* Added the '''argument_parser''' library which provides an easy way to manipulate command line arguments.
|
* Added the '''argument_parser''' library which provides an easy way to manipulate command line arguments.
|
||||||
* Added a new version of the EiffelNet library with IPv6 support. Because it has some breaking changes, the library is called '''net_ipv6''' and can be, in most cases, be used in place of the original EiffelNet library.
|
* Added a new version of the EiffelNet library with IPv6 support. Because it has some breaking changes, the library is called '''net_ipv6''' and can be, in most cases, be used in place of the original EiffelNet library.
|
||||||
@@ -13,11 +14,17 @@
|
|||||||
===Improvements===
|
===Improvements===
|
||||||
* Improved the library choice dialog which can also be customized to include your own locations.
|
* Improved the library choice dialog which can also be customized to include your own locations.
|
||||||
* Added support for <eiffel>note</eiffel> keyword and the updated <eiffel>variant</eiffel> keyword location in a loop through the environment.
|
* Added support for <eiffel>note</eiffel> keyword and the updated <eiffel>variant</eiffel> keyword location in a loop through the environment.
|
||||||
|
* You can remove errors from the Warning and Error list tool which is practical when fixing many errors at once.
|
||||||
|
* Improved the problem report submission dialog.
|
||||||
|
* Better messaging about the installed C/C++ compiler on Windows.
|
||||||
|
|
||||||
===Changes===
|
===Changes===
|
||||||
|
|
||||||
===Bug fixes===
|
===Bug fixes===
|
||||||
* Code completion works even if the <eiffel>is</eiffel> is missing.
|
* Code completion works even if the <eiffel>is</eiffel> is missing.
|
||||||
|
* Fixed an installation issue of the enterprise/evaluation release of EiffelStudio on Windows Vista.
|
||||||
|
* Properly refreshes the Feature tool after a save or a compilation.
|
||||||
|
* Fixed browsing of .NET classes in EiffelStudio
|
||||||
|
|
||||||
==Compiler==
|
==Compiler==
|
||||||
* Click [[Major changes between ISE Eiffel 6.2 and ISE Eiffel 6.3|here]] for the compiler release notes.
|
* Click [[Major changes between ISE Eiffel 6.2 and ISE Eiffel 6.3|here]] for the compiler release notes.
|
||||||
@@ -31,6 +38,14 @@
|
|||||||
==Libraries==
|
==Libraries==
|
||||||
|
|
||||||
===EiffelBase===
|
===EiffelBase===
|
||||||
|
* EiffelBase has been rewritten to be Void safe. To use the void safe version, one has to use the '''base-safe.ecf''' configuration file of EiffelBase. Not all libraries are void safe, so the void safe version can only be used for code that does not depend on other libraries.
|
||||||
|
* Added <eiffel>sleep</eiffel> to <eiffel>EXECUTION_ENVIRONMENT</eiffel> and made <eiffel>sleep</eiffel> from <eiffel>THREAD_CONTROL</eiffel> obsolete.
|
||||||
|
* Added <eiffel>read_xxx_thread_aware</eiffel> in <eiffel>IO_MEDIUM</eiffel> so that reading a file is not blocking in a multithreaded context.
|
||||||
|
* Added the notion of read-only and immutable strings (respectively <eiffel>READABLE_STRING_8/32</eiffel> and <eiffel>IMMUTABLE_STRING_8/32</eiffel>). Because <eiffel>READABLE_STRING_8</eiffel> is deferred, some code using expression of the form '''STRING + SYSTEM_STRING''' in .NET mode will not compile anymore. Instead one has to do '''STRING + create {STRING}.make_from_cil (SYSTEM_STRING)'''.
|
||||||
|
* Added <eiffel>{READABLE_STRING_GENERAL}.same_string</eiffel> to compare any kind of strings together.
|
||||||
|
* Added ability to stop and start the Eiffel tracing mechanism from code using the new <eiffel>TRACING_SETTING</eiffel> class.
|
||||||
|
* Changed the default assigner for <eiffel>{TABLE}.item</eiffel> from <eiffel>put</eiffel> to <eiffel>force</eiffel> a new feature of <eiffel>TABLE</eiffel>. This allows the bracket operator on <eiffel>HASH_TABLE</eiffel> to work properly, that is to say <eiffel>hash_table [i] := j</eiffel> will indeed insert 'j' at key 'i' even if key 'i' is already present. Before it was silently doing nothing since it was using <eiffel>put</eiffel>.
|
||||||
|
* Fixed eweasel test#list012 which showed an invariant violation after twining a <eiffel>SORTED_TWO_WAY_LIST</eiffel> and then modifying the copy by adding an element. This introduces a breaking change in all descendants of <eiffel>SORTED_TWO_WAY_LIST</eiffel>.
|
||||||
|
|
||||||
===EiffelNet===
|
===EiffelNet===
|
||||||
* EiffelNet can select on 256 ports at the same time
|
* EiffelNet can select on 256 ports at the same time
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ You can then access or modify [[ref:libraries/store/reference/db_table_flatshort
|
|||||||
<code>
|
<code>
|
||||||
tablerow: DB_TABLE
|
tablerow: DB_TABLE
|
||||||
...
|
...
|
||||||
display_attribute (code: INTEGER) is
|
display_attribute (code: INTEGER)
|
||||||
-- Display attribute with `code'.
|
-- Display attribute with `code'.
|
||||||
do
|
do
|
||||||
io.putstring (tablerow.table_description.attribute (code).out)
|
io.putstring (tablerow.table_description.attribute (code).out)
|
||||||
@@ -74,7 +74,7 @@ Basic database metadata is also available: the <eiffel>DB_SPECIFIC_TABLES_ACCESS
|
|||||||
<code>
|
<code>
|
||||||
tables: DB_SPECIFIC_TABLES_ACCESS
|
tables: DB_SPECIFIC_TABLES_ACCESS
|
||||||
...
|
...
|
||||||
new_object (code: INTEGER): DB_TABLE is
|
new_object (code: INTEGER): DB_TABLE
|
||||||
-- New object of table with `code'.
|
-- New object of table with `code'.
|
||||||
do
|
do
|
||||||
Result := tables.obj (code)
|
Result := tables.obj (code)
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ Every interface class inherits from the <eiffel>HANDLE_USE</eiffel> class and ca
|
|||||||
|
|
||||||
The creation procedure for a <eiffel>DB_CHANGE</eiffel> object is for instance:
|
The creation procedure for a <eiffel>DB_CHANGE</eiffel> object is for instance:
|
||||||
<code>
|
<code>
|
||||||
make is
|
make
|
||||||
-- Create an interface object to change active base.
|
-- Create an interface object to change active base.
|
||||||
do
|
do
|
||||||
implementation := handle.database.db_change
|
implementation := handle.database.db_change
|
||||||
@@ -68,7 +68,7 @@ The corresponding code looks like:
|
|||||||
session_status: DB_STATUS
|
session_status: DB_STATUS
|
||||||
-- A session management object reference.
|
-- A session management object reference.
|
||||||
...
|
...
|
||||||
set_base is
|
set_base
|
||||||
...
|
...
|
||||||
update_handle
|
update_handle
|
||||||
if session_status = Void then
|
if session_status = Void then
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ Using the table information, [[ref:/libraries/store/reference/db_repository_flat
|
|||||||
...
|
...
|
||||||
feature -- Settings
|
feature -- Settings
|
||||||
|
|
||||||
set_id (an_id: INTEGER) is
|
set_id (an_id: INTEGER)
|
||||||
-- Set an_id to id.
|
-- Set an_id to id.
|
||||||
do
|
do
|
||||||
id := an_id
|
id := an_id
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ Template queries are parsed to replace each variable by its bound value. To crea
|
|||||||
Variables syntax is simple: the ':' special character followed by the variable name.
|
Variables syntax is simple: the ':' special character followed by the variable name.
|
||||||
<code>
|
<code>
|
||||||
selection: DB_SELECTION
|
selection: DB_SELECTION
|
||||||
Bind_var: STRING is "firstname"
|
Bind_var: STRING = "firstname"
|
||||||
...
|
...
|
||||||
create selection.make
|
create selection.make
|
||||||
selection.set_query ("Select * from CONTACTS where Firstname = ':" + Bind_var + "'")
|
selection.set_query ("Select * from CONTACTS where Firstname = ':" + Bind_var + "'")
|
||||||
|
|||||||
@@ -55,12 +55,12 @@ To use DB_RESULT, process in 2 steps:
|
|||||||
execute, found
|
execute, found
|
||||||
end
|
end
|
||||||
...
|
...
|
||||||
execute is
|
execute
|
||||||
do
|
do
|
||||||
i := i + 1
|
i := i + 1
|
||||||
end
|
end
|
||||||
...
|
...
|
||||||
found: BOOLEAN is
|
found: BOOLEAN
|
||||||
do
|
do
|
||||||
Result := i >= Max_result
|
Result := i >= Max_result
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user