mirror of
https://github.com/EiffelSoftware/eiffel-org.git
synced 2025-12-06 23:02:28 +01:00
merged from 19.05
git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@2228 abb3cda0-5349-4a8f-a601-0c33ac3a8c38
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
[[Property:modification_date|Wed, 18 Sep 2019 08:06:58 GMT]]
|
||||
[[Property:publication_date|Wed, 18 Sep 2019 08:06:58 GMT]]
|
||||
[[Property:title|Manual identification and copyright]]
|
||||
[[Property:weight|7]]
|
||||
[[Property:uuid|c581a81b-fc9b-99bd-e73a-f290f6051a45]]
|
||||
@@ -5,7 +7,7 @@ Title: ''EiffelStudio: A Guided Tour'', Eiffel Software Technical Report TR-EI-6
|
||||
|
||||
===Publication history===
|
||||
|
||||
First published 1993 as ''First Steps with EiffelBench'' (TR-EI-38/EB) and revised as a chapter of ''Eiffel: The Environment'' [http://www.eiffel.com/doc/ (TR-EI-39/IE), also available as] <span>An Object-Oriented Environment</span> (Prentice Hall, 1994, ISBN 0-13-245-507-2.
|
||||
First published 1993 as ''First Steps with EiffelBench'' (TR-EI-38/EB) and revised as a chapter of ''Eiffel: The Environment'' (TR-EI-39/IE), also available as <span>An Object-Oriented Environment</span> (Prentice Hall, 1994, ISBN 0-13-245-507-2.
|
||||
|
||||
Version 3.3.8, 1995.
|
||||
|
||||
@@ -35,39 +37,5 @@ Any third-party products mentioned in this document are hereby acknowledged as t
|
||||
|
||||
===Special duplication permission for educational institutions===
|
||||
|
||||
Degree-granting educational institutions using EiffelStudio teaching purposes as part of the <span> [http://www.eiffel.com/educators/resources.html Eiffel University Partnership Program] </span> may be permitted under certain conditions to copy specific parts of this book. Contact Eiffel Software for details.
|
||||
{|
|
||||
|-
|
||||
| <center>'''About Eiffel Software ''' </center>
|
||||
|-
|
||||
|
|
||||
Eiffel Software (Interactive Software Engineering) helps you produce software better, faster and cheaper.
|
||||
|
||||
Eiffel Software provides a wide range of products and services based on object technology, including EiffelStudio, a complete development environment for the full system lifecycle. Eiffel Software's training courses, available worldwide, cover key management and technical topics. Eiffel Software's consultants are available to address your project needs at all levels.
|
||||
|
||||
Eiffel Software's TOOLS (Technology of Object-Oriented Languages and Systems) conferences, [http://www.tools-conferences.com http://www.tools-conferences.com] , are the meeting point for anyone interested in the software technologies of the future.
|
||||
|
||||
Eiffel Software originated one of the earliest .NET products and offers a full range of .NET services and training at [http://www.dotnetexperts.com http://www.dotnetexperts.com] .
|
||||
|
||||
For more information <br/>
|
||||
<br/>
|
||||
Interactive Software Engineering Inc.<br/>
|
||||
Eiffel Software Building, 360 Storke Road<br/>
|
||||
Goleta, CA 93117 USA<br/>
|
||||
Telephone 805-685-1006, Fax 805-685-6869 <br/>
|
||||
<br/>
|
||||
Internet and e-mail
|
||||
|
||||
Eiffel Software maintains a rich source of information at [http://www.eiffel.com http://www.eiffel.com] , with more than 1200 Web pages including online documentation, downloadable files, product descriptions, links to Eiffel Software partners, University Partnership program, mailing list archives, announcements, press coverage, Frequently Asked Questions, Support pages, and much more.
|
||||
|
||||
Visit [http://www.eiffel.com/general/contact_details.html http://www.eiffel.com/general/contact_details.html] to request information about products and services. To subscribe to the Eiffel Software user list, go to[http://groups.eiffel.com/join http://groups.eiffel.com/join] .
|
||||
|
||||
Support programs
|
||||
|
||||
Eiffel Software offers a variety of support options tailored to the diverse needs of its customers. See [http://support.eiffel.com http://support.eiffel.com] for details.
|
||||
|
||||
|}
|
||||
|
||||
|
||||
|
||||
Degree-granting educational institutions using EiffelStudio teaching purposes as part of the <span> Eiffel University Partnership Program </span> may be permitted under certain conditions to copy specific parts of this book. Contact [https://www.eiffel.com Eiffel Software] for details.
|
||||
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
[[Property:modification_date|Wed, 11 Sep 2019 02:15:25 GMT]]
|
||||
[[Property:publication_date|Wed, 11 Sep 2019 02:15:25 GMT]]
|
||||
[[Property:title|Starting To Browse]]
|
||||
[[Property:weight|-10]]
|
||||
[[Property:uuid|cb6c2e52-d238-9b55-0b78-ab3af9568550]]
|
||||
@@ -64,7 +66,7 @@ The most extensive subcluster of the EiffelBase library is <code>structures</cod
|
||||
|
||||
{{note|If you initially don't see as many details as shown on this figure, you may get them by resizing the window, moving the vertical pane boundary, and/or scrolling.}}
|
||||
|
||||
The EiffelBase Data Structure library and its subclusters are described in the book [http://www.eiffel.com/services/training/books.html Reusable Software]. Let's go to one of the most frequently used subclusters, <code>list</code>, containing implementations of list structures. Expand the subcluster <code>list</code>. This time, since list is a terminal cluster, it's not subclusters you'll see, but '''classes''', identified by small ellipses ([[Image:class-normal-icon]]):
|
||||
The EiffelBase Data Structure library and its subclusters are described in the book [[Reusable_Software-_The_Base_Object-Oriented_Component_Libraries|"Reusable Software: The Base Object-Oriented Component Libraries" ]] . Let's go to one of the most frequently used subclusters, <code>list</code>, containing implementations of list structures. Expand the subcluster <code>list</code>. This time, since list is a terminal cluster, it's not subclusters you'll see, but '''classes''', identified by small ellipses ([[Image:class-normal-icon]]):
|
||||
|
||||
[[Image:es gt groups tool 03]]
|
||||
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
[[Property:modification_date|Tue, 12 Nov 2019 13:31:36 GMT]]
|
||||
[[Property:publication_date|Tue, 12 Nov 2019 13:20:00 GMT]]
|
||||
[[Property:title|Compiler History]]
|
||||
[[Property:weight|-8]]
|
||||
[[Property:uuid|359395e7-4933-bb74-4397-353c8b6955cd]]
|
||||
==Compiler version history==
|
||||
|
||||
|
||||
{{Warning|This page as not been maintained}}
|
||||
|
||||
{{Note|Please check the -> [[EiffelStudio_release_notes|EiffelStudio Release Notes]]}}
|
||||
@@ -1,3 +1,5 @@
|
||||
[[Property:modification_date|Mon, 29 Jul 2019 05:54:09 GMT]]
|
||||
[[Property:publication_date|Tue, 09 Jul 2019 08:25:22 GMT]]
|
||||
[[Property:title|Differences between ETL 2nd printing and Eiffel Software implementation]]
|
||||
[[Property:link_title|ETL 2nd printing vs implementation]]
|
||||
[[Property:weight|-9]]
|
||||
@@ -7,68 +9,46 @@
|
||||
"ETL 2nd printing" refers to the book "Eiffel: The Language" (2nd printing), published by Prentice Hall.
|
||||
|
||||
==Added classes==
|
||||
* New basic classes have been added: <eiffel>INTEGER_8</eiffel>, <eiffel>INTEGER_16</eiffel>, <eiffel>INTEGER_64</eiffel> and <eiffel>WIDE_CHARACTER</eiffel>.{{seealso|[[Differences between standard ECMA-367 and Eiffel Software implementation|Differences between standard ECMA-367 and Eiffel Software implementation]] }}
|
||||
|
||||
==Added classes==
|
||||
* New basic classes have been added: <eiffel>INTEGER_8</eiffel>, <eiffel>INTEGER_16</eiffel>, <eiffel>INTEGER_64</eiffel> and <eiffel>WIDE_CHARACTER</eiffel>. <eiffel>INTEGER</eiffel> is now specified as having a 32 bits representation
|
||||
* New <eiffel>TUPLE</eiffel>, <eiffel>ROUTINE</eiffel>, <eiffel>PROCEDURE</eiffel> and <eiffel>FUNCTION</eiffel> classes required by the agent mechanism.
|
||||
* New basic classes have been added: <eiffel>INTEGER_8</eiffel>, <eiffel>INTEGER_16</eiffel>, <eiffel>INTEGER_64</eiffel>, <eiffel>CHARACTER_32</eiffel>. <eiffel>INTEGER</eiffel>, <eiffel>CHARACTER</eiffel>, <eiffel>REAL</eiffel>, <eiffel>DOUBLE</eiffel> are aliases to <eiffel>INTEGER_32</eiffel>, <eiffel>CHARACTER_8</eiffel>, <eiffel>REAL_32</eiffel>, <eiffel>REAL_64</eiffel>. {{seealso|[[Differences between standard ECMA-367 and Eiffel Software implementation|Differences between standard ECMA-367 and Eiffel Software implementation]]}}
|
||||
* New <eiffel>TUPLE</eiffel>, <eiffel>ROUTINE</eiffel>, <eiffel>PROCEDURE</eiffel>, <eiffel>FUNCTION</eiffel>, <eiffel>PREDICATE</eiffel> classes required by the agent mechanism.
|
||||
|
||||
==Added keywords==
|
||||
* <code>Precursor</code>
|
||||
* <code>reference</code>: new keyword to specify that a type is used as a reference type.
|
||||
* <code> agent</code>: new keyword used by the agent mechanism.
|
||||
* <code>create</code>: Instead of using the famous exclamation mark to create an instance of a class, you can use the keyword <code>create</code>. Below you will find a correspondence table between the old and the new syntaxes. The old syntax is still valid, but at some points Eiffel Software will remove it from its implementation:
|
||||
{|
|
||||
|-
|
||||
| Old syntax
|
||||
| New syntax
|
||||
|-
|
||||
| !! a
|
||||
| <code>create</code> a
|
||||
|-
|
||||
| !! a.make
|
||||
| <code>create</code> a.make
|
||||
|-
|
||||
| !<eiffel>B</eiffel>! a
|
||||
| <code>create</code> {<eiffel>B</eiffel>} a
|
||||
|-
|
||||
| !<eiffel>B</eiffel>! a.make
|
||||
| <code>create</code> {<eiffel>B</eiffel>} a.make
|
||||
|}
|
||||
* <code>note</code>: replacement for the keyword <code>indexing</code>.
|
||||
* <code>attribute</code>: new keyword to declare attribute body.
|
||||
* <code>attached</code>: new keyword to specify attached types and object tests.
|
||||
* <code>detachable</code>: new keyword to specify detachable types.
|
||||
* <eiffel>Precursor</eiffel>
|
||||
* <eiffel>reference</eiffel> (now obsolete): a keyword to specify that a type is used as a reference type.
|
||||
* <eiffel>agent</eiffel>: a keyword used by the agent mechanism.
|
||||
* <eiffel>create</eiffel>: Instead of using the famous exclamation mark to create an instance of a class, you can use the keyword <eiffel>create</eiffel>. Below you will find a correspondence table between the old and the new syntaxes. The old syntax is still valid, but at some points Eiffel Software will remove it from its implementation:
|
||||
|
||||
** Old syntax `!! a` => new syntax `create a`
|
||||
** Old syntax `!! a.make` => new syntax `create a.make`
|
||||
** Old syntax `!B! a` => new syntax `create {B} a`
|
||||
** Old syntax `!B! a.make` => new syntax `create {B} a.make`
|
||||
|
||||
* <eiffel>note</eiffel>: replacement for the keyword <code>indexing</code>.
|
||||
* <eiffel>attribute</eiffel>: a keyword to declare attribute body.
|
||||
* <eiffel>attached</eiffel>: a keyword to specify attached types and object tests.
|
||||
* <eiffel>detachable</eiffel>: a keyword to specify detachable types.
|
||||
|
||||
==Added semantics==
|
||||
* [[ET: Genericity and Arrays|Generic creation]]
|
||||
* Expression creation: you can now create an object within an expression. For example, you want to create an object and pass it as an argument to a function. Whereas you had to create a local variable, create the object and pass it to the function, you now simply need to pass to the function the creation expression. Here is a small example:
|
||||
{|
|
||||
|-
|
||||
| Old method
|
||||
| New method
|
||||
|-
|
||||
|
|
||||
** Old method:
|
||||
<code>
|
||||
local
|
||||
a: STRING
|
||||
do
|
||||
!! a.make (10)
|
||||
‼ a.make (10)
|
||||
f (a)
|
||||
end
|
||||
</code>
|
||||
|
||||
|
|
||||
** 'New method:
|
||||
<code>
|
||||
do
|
||||
f (create {STRING}.make (10))
|
||||
end
|
||||
</code>
|
||||
|
||||
|}
|
||||
This is also very useful since it can improve the power of assertions.
|
||||
* Mutually recursive constraints: one can now write class A [H, G->H] or class B [H -> C, G -> ARRAY [H]]. As a result, the declaration A [D, E] is valid only if E is a descendant of D. Similarly, the declaration B [E, ARRAY [D]] is not valid, if E is a descendant of D.
|
||||
* Mutually recursive constraints: one can now write class `A [H, G->H]` or class `B [H -> C, G -> ARRAY [H]]`. As a result, the declaration `A [D, E]` is valid only if `E` is a descendant of `D`. Similarly, the declaration `B [E, ARRAY [D]]` is not valid, if `E` is a descendant of `D`.
|
||||
* [[ET: Other Mechanisms|Tuples]]
|
||||
* [[ET: Agents|Agents]]
|
||||
* Feature access: <br/>
|
||||
@@ -83,13 +63,11 @@ end
|
||||
The previous call is valid, if and only if:
|
||||
** <eiffel>value</eiffel> is a feature representing a constant of a basic type (<eiffel>INTEGER</eiffel>, <eiffel>DOUBLE</eiffel> or <eiffel>CHARACTER</eiffel>)
|
||||
** <eiffel>value</eiffel> is a C/C++/DLL external feature
|
||||
** <eiffel>value</eiffel> is an IL static external feature
|
||||
** <eiffel>value</eiffel> is an IL static external feature
|
||||
|
||||
==Obsolete constructs==
|
||||
* Explicit values should be used to specify constant attributes instead of keyword `unique`.
|
||||
|
||||
==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.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
[[Property:modification_date|Tue, 09 Jul 2019 09:52:07 GMT]]
|
||||
[[Property:publication_date|Tue, 09 Jul 2019 09:46:53 GMT]]
|
||||
[[Property:title|Differences between standard ECMA-367 and Eiffel Software implementation]]
|
||||
[[Property:link_title|ECMA-367 vs implementation]]
|
||||
[[Property:weight|-10]]
|
||||
@@ -116,10 +118,10 @@ for free operator names
|
||||
| Yes
|
||||
|-
|
||||
| Bang-bang syntax
|
||||
| <code>!! a</code><br/>
|
||||
<code>!! a.make</code><br/>
|
||||
<code>!B! a</code><br/>
|
||||
<code>!B! a.make</code>
|
||||
| !! a<br/>
|
||||
!! a.make<br/>
|
||||
!B! a<br/>
|
||||
!B! a.make
|
||||
| Yes
|
||||
| No
|
||||
| Yes, marked as obsolete
|
||||
@@ -196,13 +198,13 @@ reattachment
|
||||
| Yes
|
||||
|-
|
||||
| Assigner call
|
||||
| <code>x</code> <code>[</code><code>i</code><code>]</code> <code>:=</code> <code>x</code> <code>[</code><code>i</code><code>]</code> <code>+</code> <code>1</code>
|
||||
| <eiffel>x [i] := x [i] + 1</eiffel>
|
||||
| No
|
||||
| Yes
|
||||
| Yes
|
||||
|-
|
||||
| Bracket expression as call target
|
||||
| <code>x</code> <code>[</code><code>i</code><code>]</code><code>.</code><eiffel>update</eiffel>
|
||||
| <eiffel>x [i].update</eiffel>
|
||||
| No
|
||||
| No
|
||||
| Yes
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
[[Property:modification_date|Mon, 11 Nov 2019 19:13:26 GMT]]
|
||||
[[Property:publication_date|Mon, 11 Nov 2019 19:13:26 GMT]]
|
||||
[[Property:title|Supported C compilers]]
|
||||
[[Property:weight|-14]]
|
||||
[[Property:uuid|4d4a70fa-b6da-cecb-83e0-dcc18d6ed54a]]
|
||||
@@ -52,7 +54,22 @@ Alternatively, you can set the environment variable <code lang="text">ISE_C_COMP
|
||||
| Microsoft Visual Studio C++ 2015 (v14.0)
|
||||
| `msc_vc140`
|
||||
|-
|
||||
| Microsoft Visual Studio C++ 2017 (v15.0)
|
||||
| Microsoft Visual Studio C++ 2017 (v14.1)
|
||||
| `msc_vc140`
|
||||
|-
|
||||
| Microsoft Visual Studio C++ 2019 (v14.2)
|
||||
| `msc_vc140`
|
||||
|-
|
||||
|}
|
||||
|
||||
===Availability of free compilers===
|
||||
|
||||
'' Microsoft ''
|
||||
|
||||
Download the free [https://visualstudio.microsoft.com/vs/community/|Visual Studio Community Edition]
|
||||
|
||||
If required download [https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads|Microsoft Visual C++ Redistributable for Visual Studio 2015, 2017 and 2019].
|
||||
|
||||
'' MinGW ''
|
||||
|
||||
Copy included with the Eiffel Software distribution.
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
[[Property:modification_date|Mon, 02 Sep 2019 08:02:24 GMT]]
|
||||
[[Property:publication_date|Mon, 02 Sep 2019 08:02:24 GMT]]
|
||||
[[Property:uuid|7CCF602E-0B79-49C2-93FE-39C90CBE4E35]]
|
||||
[[Property:link_title|Code Templates]]
|
||||
[[Property:title|Code Templates]]
|
||||
@@ -98,7 +100,7 @@ It is very easy to define a template. It is all done in Eiffel, of course. You s
|
||||
To offer templates as part of code completion, EiffelStudio looks in two locations:
|
||||
* Standard templates, found in:
|
||||
** Linux: <code>$ISE_EIFFEL/studio/templates/code</code>
|
||||
** Eiffel: <code>%ISE_EIFFEL%/studio/templates/code</code>
|
||||
** Windows: <code>%ISE_EIFFEL%/studio/templates/code</code>
|
||||
* User-defined templates, which you can add at:
|
||||
** Linux: <code> ~/.es/eiffel_user_files/16.11/templates/code</code>
|
||||
** Windows: <code>C:/Users/your_user_name/Documents/Eiffel User Files/16.11/templates/code</code>
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
[[Property:modification_date|Tue, 02 Jul 2019 11:08:53 GMT]]
|
||||
[[Property:publication_date|Tue, 02 Jul 2019 10:53:22 GMT]]
|
||||
[[Property:title|Windows]]
|
||||
[[Property:weight|9]]
|
||||
[[Property:uuid|d177e0bc-63e6-63b3-7fdb-5e7136945e21]]
|
||||
@@ -49,6 +51,29 @@ You may receive the following dialog when launching EiffelStudio:
|
||||
|
||||
This probably means that EiffelStudio was not properly installed using the '''setup.exe''' program. Uninstall EiffelStudio and rerun the installation procedure by making sure to launch '''setup.exe''' and enter your '''Username''' and '''CD Key'''.
|
||||
|
||||
== Installing EiffelStudio from the .7z archive ==
|
||||
Installing the GPL version using the 7z archive is an alternative, even if the recommended solution remains using the MSI installer.
|
||||
The procedure is quite similar to Linux, see [[Linux#Setting_up_EiffelStudio]]:
|
||||
* Extract the .7z archive in a folder
|
||||
* set the `ISE_EIFFEL` variable to the location of the extracted Eiffel_X.Y folder
|
||||
* set the `ISE_PLATFORM` variable to `win64` or `windows`
|
||||
* set the `ISE_C_COMPILER` variable to `msc_vc140` , or `msc` if you use VisualStudio 2012 or before
|
||||
* And add to your PATH variable the values:
|
||||
** `%ISE_EIFFEL%\studio\spec\%ISE_PLATFORM%\bin`
|
||||
** `%ISE_EIFFEL%\tools\spec\%ISE_PLATFORM%\bin`
|
||||
** `%ISE_EIFFEL%\library\gobo\spec\%ISE_PLATFORM%\bin`
|
||||
```text
|
||||
set PATH=%ISE_EIFFEL%\studio\spec\%ISE_PLATFORM%\bin;%ISE_EIFFEL%\tools\spec\%ISE_PLATFORM%\bin;%ISE_EIFFEL%\library\gobo\spec\%ISE_PLATFORM%\bin;%PATH%
|
||||
```
|
||||
|
||||
The environment variables can be set for your system, or for each DOS console, a simple way is to create a file "setup.bat", within the Eiffel_X.Y folder, with the following content:
|
||||
```text
|
||||
set ISE_EIFFEL=%~dp0
|
||||
set ISE_PLATFORM=win64
|
||||
set ISE_C_COMPILER=msc_vc140
|
||||
set PATH=%ISE_EIFFEL%\studio\spec\%ISE_PLATFORM%\bin;%ISE_EIFFEL%\tools\spec\%ISE_PLATFORM%\bin;%ISE_EIFFEL%\library\gobo\spec\%ISE_PLATFORM%\bin;%PATH%
|
||||
```
|
||||
|
||||
==.NET Support==
|
||||
|
||||
To enable .NET support in EiffelStudio, it is necessary to install the Microsoft .NET Framework prior to starting the installation of EiffelStudio. EiffelStudio currently supports all the versions of the .NET Framework up to 4.0.
|
||||
|
||||
Reference in New Issue
Block a user