mirror of
https://github.com/EiffelSoftware/eiffel-org.git
synced 2025-12-08 07:42:33 +01:00
Author:admin
Date:2008-09-19T07:55:09.000000Z git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@27 abb3cda0-5349-4a8f-a601-0c33ac3a8c38
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Error wizard]]
|
||||
[[Property:weight|2]]
|
||||
[[Property:uuid|0c9686a0-2b9b-291f-4f01-930d9017810b]]
|
||||
More often than wanted, Eiffel compilations are not successful. The good point is that when an error is detected by the compiler, it will not be a problem at run-time. The bad point is that you have to fix compilation errors before being able to launch and debug your system.
|
||||
|
||||
When an error occurs during an Eiffel compilation in EiffelStudio, the '''Output''' tab of the context tool displays a description of the error and its location, which looks more or less like this:
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|External commands editor dialog]]
|
||||
[[Property:weight|4]]
|
||||
[[Property:uuid|9f8de904-3d17-7ce2-1df8-f4824fab5ae3]]
|
||||
From EiffelStudio, you can define up to 10 external commands. Those commands will have their output redirected in the output pane of the context tool. You can execute them through the Tools menu. A typical usage is to use those external commands to integrate with your source control management solution (e.g. CVS, Visual SourceSafe,...)
|
||||
|
||||
To define your own command, select "External commands..." in the Tools menu. Then the following dialog will appear:
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Dialogs]]
|
||||
[[Property:weight|1]]
|
||||
[[Property:uuid|5d543cd3-8e54-e090-44d4-ee3b51009fe6]]
|
||||
* [[New feature dialog|New feature dialog]]
|
||||
* [[Error descriptor|Error descriptor]]
|
||||
* [[External commands editor dialog|External commands editor]]
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|New feature dialog]]
|
||||
[[Property:weight|0]]
|
||||
[[Property:uuid|deb4901a-7b5a-f669-802e-de1efefcc1a0]]
|
||||
* [[New feature dialog: Introduction|Introduction]]
|
||||
* [[New feature dialog overview|Overview]]
|
||||
* [[New procedure layout|Procedure layout]]
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|New attribute layout]]
|
||||
[[Property:weight|4]]
|
||||
[[Property:uuid|b13c9004-c8a0-6628-5c70-42c3e2617c10]]
|
||||
<div> [[Image:feature-wizard-attribute]] </div>
|
||||
When clicking '''Attribute''', the window changes to the attribute layout. It has the following components:
|
||||
* [[Feature clauses|Feature clause selection]]
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Argument list]]
|
||||
[[Property:weight|2]]
|
||||
[[Property:uuid|f2d63c29-6be2-b3d9-a735-b18e08c5a678]]
|
||||
For functions and procedures, you can build a formal argument list. You can do this by clicking on the '''New argument''' button as many times as you need arguments.
|
||||
|
||||
{{note| '''Note''': Even though this dialog always shows parentheses, they are not generated if the list is empty (Eiffel's command-query separation (CQS) principle). }}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Feature body]]
|
||||
[[Property:weight|6]]
|
||||
[[Property:uuid|8f9f0b70-e884-73f1-e270-f1b51ef672c6]]
|
||||
What goes into the feature body field is dependent on what kind of feature you wish to generate.
|
||||
* '''do''': this is the normal procedure type. Enter in the field below '''do''' a body for your feature.
|
||||
<code>
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Feature clauses]]
|
||||
[[Property:weight|0]]
|
||||
[[Property:uuid|019ea318-e0e0-dae9-a818-e12232aa8431]]
|
||||
The feature you create will be inserted in the feature clause you specified. If the feature clause was not already in your class, or not in the right place, EiffelStudio adds the feature clause to the class text based on the feature clause order specified in the [[Preferences Reference|preferences]] . By default, this is the order used by the Eiffel Software libraries, such as EiffelBase.
|
||||
==Export status==
|
||||
The export status is the class the feature is accessible for. Usually, this is <eiffel>ANY</eiffel> for public features, or <eiffel>NONE</eiffel> for implementation features, but you can specify any class here.
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Header comment]]
|
||||
[[Property:weight|3]]
|
||||
[[Property:uuid|45ecda88-003d-fe59-5d4c-3a84d488b6a2]]
|
||||
In the header comment field you can type a description of the feature. For style guidelines in writing a header comment, see: [http://www.eiffel.com/doc/oosc/ Object-Oriented Software Construction, Second Edition] , paragraph 26.4. The description should be informative, clear and terse.
|
||||
|
||||
For example, suppose you have an attribute <eiffel>count</eiffel>. You can enter the following header comment:
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|New feature dialog: feature properties modification]]
|
||||
[[Property:weight|5]]
|
||||
[[Property:uuid|60825ef4-7bc2-d472-8b09-25769689bb34]]
|
||||
* [[Feature clauses|Feature clauses]]
|
||||
* [[Name field|Name field]]
|
||||
* [[Argument list|Argument list]]
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Invariant field]]
|
||||
[[Property:weight|9]]
|
||||
[[Property:uuid|9f7ec967-0a45-4ad6-4393-521097467192]]
|
||||
When creating an attribute, you can optionally enter or select an invariant for that feature. That invariant will be added to the end of the existing invariant clause. If the invariant clause did not exist before, it is now created.
|
||||
<div> [[Image:feature-wizard-invariant]] </div>
|
||||
If the attribute is of a reference type, you may select the invariant that the attribute may never be void. If it is of a basic expanded type, some other standard options may be chosen. For example, for <eiffel>INTEGER</eiffel> you may select that it should always be positive.
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Local variable]]
|
||||
[[Property:weight|5]]
|
||||
[[Property:uuid|423aa67d-99f4-0f81-3709-161a6be43af9]]
|
||||
Enter a local variable in the <code> local </code> field. A local variable clause will be added to the feature:
|
||||
<code>
|
||||
...
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Name field]]
|
||||
[[Property:weight|1]]
|
||||
[[Property:uuid|850bd867-5cbf-34d0-f94c-97a75bfa244b]]
|
||||
The feature name field is a text box that lets you enter a name for the feature. For help on how to choose the right name for a feature, see: [http://www.eiffel.com/doc/oosc/ Object-Oriented Software Construction, Second Edition] , paragraph 26.2.
|
||||
|
||||
{{warning| '''Warning''': EiffelStudio performs no validation on the name you choose. For example if you type a space in it, it will generate the code, and detect a syntax error only when compiling. }}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Postcondition]]
|
||||
[[Property:weight|7]]
|
||||
[[Property:uuid|b8196d6c-2a0f-c06e-855f-d9fe23cbe950]]
|
||||
Enter a postcondition in the <code> ensure </code> field. A postcondition clause will be added to the feature:
|
||||
<code>...
|
||||
ensure
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Precondition]]
|
||||
[[Property:weight|4]]
|
||||
[[Property:uuid|29b32f9e-799d-de91-d62d-79bdb509144b]]
|
||||
Enter a precondition in the <code> require </code> field. A precondition clause will be added to the feature:
|
||||
<code>
|
||||
...
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Set-procedure]]
|
||||
[[Property:weight|10]]
|
||||
[[Property:uuid|46b84038-099b-070c-15d7-2b7884a50e01]]
|
||||
When creating an attribute, it is common that you will also need a set-procedure for it. For example, for attribute <eiffel>property</eiffel> you need a procedure <eiffel>set_property</eiffel> to set it. This feature takes one argument of the same type as <eiffel>property</eiffel> or is anchored to it. The only thing you have to do with the feature wizard is check the button '''Generate set procedure'''.
|
||||
<div> [[Image:feature-wizard-setprocedure]] </div>
|
||||
The feature that is generated in addition to the attribute itself is placed in feature clause <code> Element change </code> and is exported to all classes. If you have selected or entered an invariant, the precondition will protect this invariant. Example of a generated set-procedure:
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Type selection]]
|
||||
[[Property:weight|8]]
|
||||
[[Property:uuid|b2bd8280-a738-dae4-73aa-c1e232245022]]
|
||||
Whenever you need to give a type of something in the dialog, the type selection component is used. The type selection lets you type any class name or you can pick one from the list.
|
||||
<div> [[Image:feature-wizard-typeselection]] </div>
|
||||
When you select a class that is in the system and has formal generic parameters, the type selection component lets you specify an actual generic parameter in another type selection.
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|New feature dialog overview]]
|
||||
[[Property:weight|1]]
|
||||
[[Property:uuid|c0708842-e5e0-5d5c-5746-0507d1709a3e]]
|
||||
There are two parts in the window. The upper part allows you to choose what type of feature you want to create, a procedure, a function or an attribute.
|
||||
[[Image:feature-wizard]]
|
||||
The rest of the window is used to set the characteristics of the new feature. Information you will be asked depends on the type you chose. For more information, click on one of the links below:
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|New function layout]]
|
||||
[[Property:weight|3]]
|
||||
[[Property:uuid|ae292b6e-7274-47a5-59f1-0f625493474f]]
|
||||
<div> [[Image:feature-wizard-function]] </div>
|
||||
When clicking '''Function''', the dialog changes to the function layout. It has the following components:
|
||||
* [[Feature clauses|Feature clause selection]]
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|New procedure layout]]
|
||||
[[Property:weight|2]]
|
||||
[[Property:uuid|586fd664-1be4-f588-5350-c7c703145c11]]
|
||||
<div> [[Image:feature-wizard-procedure]] </div>
|
||||
When clicking '''Procedure''', the window changes to the procedure layout. It has the following components:
|
||||
* [[Feature clauses|Feature clause selection]]
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Wizards and dialogs]]
|
||||
[[Property:weight|0]]
|
||||
[[Property:uuid|b216d12e-20a4-5479-18d2-02e622db5322]]
|
||||
* [[Profiler Wizard|Profiler Wizard]]
|
||||
* [[Dialogs|Dialogs]]
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Profiler Wizard]]
|
||||
[[Property:weight|0]]
|
||||
[[Property:uuid|f3509b1b-8ff1-c385-3bc1-4e800195f8a4]]
|
||||
* [[Profiler wizard: Introduction|Introduction]]
|
||||
* [[Profiler wizard guided tour|Profiler wizard guided tour]]
|
||||
* [[Profiler How To's|Profiler How To's]]
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|How to set up a Profiler Configuration File]]
|
||||
[[Property:weight|0]]
|
||||
[[Property:uuid|0cf0f7bc-1932-fe42-e62d-b37e2e0c424e]]
|
||||
Once executing an instrumented system has generated the proper file, you must have a profile converter process it in order to produce the Execution Profile. The need for the converter comes from the various formats that profilers use to record run-time information during an execution; a simple Profiler Configuration File enables you to describe the format used by any particular profiler.
|
||||
|
||||
The Profiler Configuration File is a file found in the directory $ISE_EIFFEL/studio/profiler where $ISE_EIFFEL is the location of the Eiffel installation. The name of the Profiler Configuration File in that directory is Eiffel for internal profiling and, for external profiling, the name of the profiler tool as specified in the profiler option. EiffelStudio comes with 3 preconfigured external profilers:
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Profiler How To's]]
|
||||
[[Property:weight|2]]
|
||||
[[Property:uuid|f488bd8f-6d05-0487-a4c6-2e26a9a185ad]]
|
||||
* [[How to set up a Profiler Configuration File|How to setup a Profiler Configuration File]]
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Profiler wizard guided tour]]
|
||||
[[Property:weight|1]]
|
||||
[[Property:uuid|e6166282-aa91-e4a9-9951-819f32d50b88]]
|
||||
# [[Select the Compilation mode|'''First step:''' Select which version of your system you ran using the profiler: Workbench or Finalized]] .
|
||||
# [[Reuse or Generate an Execution Profile| '''Second step (only appears when an ''' ''Execution Profile'' '''has already been generated for this system)''': Select an existing ''Execution Profile'' or choose to generate a new ''Execution Profile'' from a ''Run-time information record''. ]]
|
||||
# [[Select a Run-time information record to generate the Execution Profile| '''Third step (only appears when generating a new ''' ''Execution Profile''''')''': Generate a new ''Execution Profile'' from a ''Run-time information record''. ]]
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Profile query window]]
|
||||
[[Property:weight|4]]
|
||||
[[Property:uuid|1158eeb3-ccf5-8f29-3551-4e511258fa80]]
|
||||
The profile query window displays the results of the query you have formulated in the [[Select the information you need and formulate your query|Final state]] of the Profiler wizard. It also lets you change the sub queries of the current query.
|
||||
|
||||
To add a new sub query to the current query, fill in the text field labeled '''Define new sub query''' (type in ''calls <20'' for example) and click the '''And''' or '''Or''' button. To display the results of the new query click on the '''Update''' button.
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Reuse or Generate an Execution Profile]]
|
||||
[[Property:weight|1]]
|
||||
[[Property:uuid|caa8ac1d-b17d-6b5b-1b16-7420a8d4404c]]
|
||||
The second screen of the wizard lets you reuse a previously generated ''Execution Profile'' or generate a new ''Execution Profile'' from a ''Run-time information record''.
|
||||
|
||||
The profiler wizard has detected that one or more ''Execution Profiles'' have already been generated for this system in this compilation mode. If you have executed your system after the generation of the existing profile, select '''Generate a profile from Run-time information record''' to create a new ''Execution Profile'' for the newly produced ''Run-time information record''.
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Select the Compilation mode]]
|
||||
[[Property:weight|0]]
|
||||
[[Property:uuid|b43f018b-b924-234b-727f-8d80c1d18fb4]]
|
||||
The first screen of the wizard lets you specify the mode in which the profiled system was compiled.
|
||||
|
||||
If you have run a finalized system under the control of the profiler then select '''Finalized mode''' and click '''Next'''. On the contrary if you have executed the system in Workbench mode then select '''Workbench mode''' and click '''Next'''.
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Select the information you need and formulate your query]]
|
||||
[[Property:weight|3]]
|
||||
[[Property:uuid|708f745d-11af-4d3d-e857-159dad4bdeec]]
|
||||
The final screen of the wizard lets you select the information you want to be displayed in the profile query window.
|
||||
|
||||
==Select the information you need==
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Select a Run-time information record to generate the Execution Profile]]
|
||||
[[Property:weight|2]]
|
||||
[[Property:uuid|c3f3e068-2313-ff14-2a33-8bf5297b9779]]
|
||||
The third screen of the wizard lets you generate an ''Execution Profile'' from a ''Run-time information record''. You should provide the ''Run-time information record'' produced by the profiler in the text field labeled '''Run-time information record'''. If the file provided by default is not the desired one change it by clicking on the '''Browse''' button or by directly entering it in the text field.
|
||||
|
||||
Then, in the combo box labeled '''Profiler used to produce the above record''', select the profiler that has been used to produce the ''Run-time information record'' you have entered. If the profiler used to execute the system does not appear in the combo box, you have to add it. See [[How to set up a Profiler Configuration File|How to set up a Profiler Configuration File]] for more details on how to do so.
|
||||
|
||||
Reference in New Issue
Block a user