mirror of
https://github.com/EiffelSoftware/eiffel-org.git
synced 2025-12-06 23:02:28 +01:00
Replaced many <code>abc</code>' to abc`.
Reverted a few `text with < and so on` to <code>text with < and so on</code> due to a potential issue in wikitext parser. git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@1592 abb3cda0-5349-4a8f-a601-0c33ac3a8c38
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
[[Property:title|Batch compilation]]
|
||||
[[Property:weight|2]]
|
||||
[[Property:uuid|18958db6-dafc-57b7-cdef-aca01bc13661]]
|
||||
In order to launch a compilation without user intervention you need to specify the `<code>-batch</code>' 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.
|
||||
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"
|
||||
@@ -21,12 +21,12 @@ cd EIFGENs/target_name/W_code
|
||||
finish_freezing > $output_file</code>
|
||||
|
||||
|
||||
It will go the directory where your project is located and compile your Eiffel code using the `<code>config.ecf</code>' file located in your project directory and compile automatically the C code. All outputs will be stored in the file `<code>/output_path/OUTPUT</code>'.
|
||||
It will go the directory where your project is located and compile your Eiffel code using the `config.ecf` file located in your project directory and compile automatically the C code. All outputs will be stored in the file `/output_path/OUTPUT`.
|
||||
|
||||
{{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
|
||||
@@ -37,7 +37,7 @@ cd EIFGENs\target_name\W_code
|
||||
finish_freezing > c:\output_path\OUTPUT</code>
|
||||
|
||||
|
||||
It will go the directory where your project is located and compile your Eiffel code using the `<code>config.ecf</code>' file located in your project directory and compile automatically the C code. All outputs will be stored in the file `<code>c:\output_path/OUTPUT</code>'.
|
||||
It will go the directory where your project is located and compile your Eiffel code using the `config.ecf` file located in your project directory and compile automatically the C code. All outputs will be stored in the file `c:\output_path/OUTPUT`.
|
||||
|
||||
{{seealso|<br/>
|
||||
[[EiffelStudio: Using command line options|Using command line compiler options]] }}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
[[Property:weight|4]]
|
||||
[[Property:uuid|be1dc034-2bca-3d3a-5dfc-8597b2cc7051]]
|
||||
[[Image:advanced-options|Advanced dialog]]
|
||||
* Address Expression: lets you pass `<code>$(s.to_c)</code>' to a feature instead of declaring `<code>a</code>' of type <code>ANY</code>, and then assigning `<code>s.to_c</code>' to `<code>a</code>' and passing `<code>$a</code>'.
|
||||
* Address Expression: lets you pass `$(s.to_c)` to a feature instead of declaring `a` of type <code>ANY</code>, and then assigning `s.to_c` to `a` and passing `$a`.
|
||||
{{Caution|Turn this option on only if you have advanced knowledge of the garbage collector internals, because using this syntax in some situations could lead to bugs that are very hard to trace. }}
|
||||
* Automatic Backup: generate a backup of the class and configuration files during recompilation?
|
||||
* Check VAPE: Enforce <code> VAPE </code> validity constraint: lets you disable type checking for <code> VAPE </code> errors in preconditions, which correspond to insufficiently exported features used in preconditions (ETL 2nd edition page 122).
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
[[Property:title|Batch compilation]]
|
||||
[[Property:weight|2]]
|
||||
[[Property:uuid|18958db6-dafc-57b7-cdef-aca01bc13661]]
|
||||
In order to launch a compilation without user intervention you need to specify the `<code>-batch</code>' 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.
|
||||
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:
|
||||
@@ -21,7 +21,7 @@ cd EIFGENs/target_name/W_code
|
||||
finish_freezing > $output_file</code>
|
||||
|
||||
|
||||
It will go the directory where your project is located and compile your Eiffel code using the `<code>config.ecf</code>' file located in your project directory and compile automatically the C code. All outputs will be stored in the file `<code>/output_path/OUTPUT</code>'.
|
||||
It will go the directory where your project is located and compile your Eiffel code using the `config.ecf` file located in your project directory and compile automatically the C code. All outputs will be stored in the file `/output_path/OUTPUT`.
|
||||
|
||||
{{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. }}
|
||||
|
||||
@@ -37,7 +37,7 @@ cd EIFGENs\target_name\W_code
|
||||
finish_freezing > c:\output_path\OUTPUT</code>
|
||||
|
||||
|
||||
It will go the directory where your project is located and compile your Eiffel code using the `<code>config.ecf</code>' file located in your project directory and compile automatically the C code. All outputs will be stored in the file `<code>c:\output_path/OUTPUT</code>'.
|
||||
It will go the directory where your project is located and compile your Eiffel code using the `config.ecf` file located in your project directory and compile automatically the C code. All outputs will be stored in the file `c:\output_path/OUTPUT`.
|
||||
|
||||
{{seealso|<br/>
|
||||
[[EiffelStudio: Using command line options|Using command line compiler options]] }}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
[[Property:weight|4]]
|
||||
[[Property:uuid|be1dc034-2bca-3d3a-5dfc-8597b2cc7051]]
|
||||
[[Image:advanced-options|Advanced dialog]]
|
||||
* Address Expression: lets you pass `<code>$(s.to_c)</code>' to a feature instead of declaring `<code>a</code>' of type <code>ANY</code>, and then assigning `<code>s.to_c</code>' to `<code>a</code>' and passing `<code>$a</code>'.
|
||||
* Address Expression: lets you pass `$(s.to_c)` to a feature instead of declaring `a` of type <code>ANY</code>, and then assigning `s.to_c` to `a` and passing `$a`.
|
||||
{{Caution|Turn this option on only if you have advanced knowledge of the garbage collector internals, because using this syntax in some situations could lead to bugs that are very hard to trace. }}
|
||||
* Automatic Backup: generate a backup of the class and configuration files during recompilation?
|
||||
* Check VAPE: Enforce <code> VAPE </code> validity constraint: lets you disable type checking for <code> VAPE </code> errors in preconditions, which correspond to insufficiently exported features used in preconditions (ETL 2nd edition page 122).
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
[[Property:title|Batch compilation]]
|
||||
[[Property:weight|2]]
|
||||
[[Property:uuid|18958db6-dafc-57b7-cdef-aca01bc13661]]
|
||||
In order to launch a compilation without user intervention you need to specify the `<code>-batch</code>' 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.
|
||||
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:
|
||||
@@ -21,7 +21,7 @@ cd EIFGENs/target_name/W_code
|
||||
finish_freezing > $output_file</code>
|
||||
|
||||
|
||||
It will go the directory where your project is located and compile your Eiffel code using the `<code>config.ecf</code>' file located in your project directory and compile automatically the C code. All outputs will be stored in the file `<code>/output_path/OUTPUT</code>'.
|
||||
It will go the directory where your project is located and compile your Eiffel code using the `config.ecf` file located in your project directory and compile automatically the C code. All outputs will be stored in the file `/output_path/OUTPUT`.
|
||||
|
||||
{{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. }}
|
||||
|
||||
@@ -37,7 +37,7 @@ cd EIFGENs\target_name\W_code
|
||||
finish_freezing > c:\output_path\OUTPUT</code>
|
||||
|
||||
|
||||
It will go the directory where your project is located and compile your Eiffel code using the `<code>config.ecf</code>' file located in your project directory and compile automatically the C code. All outputs will be stored in the file `<code>c:\output_path/OUTPUT</code>'.
|
||||
It will go the directory where your project is located and compile your Eiffel code using the `config.ecf` file located in your project directory and compile automatically the C code. All outputs will be stored in the file `c:\output_path/OUTPUT`.
|
||||
|
||||
{{seealso|<br/>
|
||||
[[EiffelStudio: Using command line options|Using command line compiler options]] }}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
[[Property:weight|4]]
|
||||
[[Property:uuid|be1dc034-2bca-3d3a-5dfc-8597b2cc7051]]
|
||||
[[Image:advanced-options|Advanced dialog]]
|
||||
* Address Expression: lets you pass `<code>$(s.to_c)</code>' to a feature instead of declaring `<code>a</code>' of type <code>ANY</code>, and then assigning `<code>s.to_c</code>' to `<code>a</code>' and passing `<code>$a</code>'.
|
||||
* Address Expression: lets you pass `$(s.to_c)` to a feature instead of declaring `a` of type <code>ANY</code>, and then assigning `s.to_c` to `a` and passing `$a`.
|
||||
{{Caution|Turn this option on only if you have advanced knowledge of the garbage collector internals, because using this syntax in some situations could lead to bugs that are very hard to trace. }}
|
||||
* Automatic Backup: generate a backup of the class and configuration files during recompilation?
|
||||
* Check VAPE: Enforce <code> VAPE </code> validity constraint: lets you disable type checking for <code> VAPE </code> errors in preconditions, which correspond to insufficiently exported features used in preconditions (ETL 2nd edition page 122).
|
||||
|
||||
@@ -353,9 +353,9 @@ Some deferred classes describe a structural property, useful to the description
|
||||
|
||||
`NUMERIC` describes objects on which arithmetic operations `+, -, *, /` are available, with the properties of a ring (associativity, distributivity, zero elements etc.). Kernel Library classes such as `INTEGER` and `REAL` -- but not, for example, `STRING` -- are descendants of `NUMERIC`. An application that defines a class `MATRIX` may also make it a descendant of `NUMERIC`.
|
||||
|
||||
`COMPARABLE` describes objects on which comparison operations `<, <=, >, >=` are available, with the properties of a total preorder (transitivity, irreflexivity). Kernel Library classes such as `CHARACTER`, `STRING` and `INTEGER` -- but not our `MATRIX` example -- are descendants of `COMPARABLE`.
|
||||
`COMPARABLE` describes objects on which comparison operations <code><, <=, >, >=</code> are available, with the properties of a total preorder (transitivity, irreflexivity). Kernel Library classes such as `CHARACTER`, `STRING` and `INTEGER` -- but not our `MATRIX` example -- are descendants of `COMPARABLE`.
|
||||
|
||||
For such classes it is again essential to permit effective features in a deferred class, and to include assertions. For example class `COMPARABLE` declares `infix "<"` as deferred, and expresses `>, >=` and `<=` effectively in terms of it.
|
||||
For such classes it is again essential to permit effective features in a deferred class, and to include assertions. For example class `COMPARABLE` declares <code>infix "<"</code> as deferred, and expresses `>, >=` and <code><=</code> effectively in terms of it.
|
||||
|
||||
|
||||
{{note|The type `like Current` will be explained in [[ET: Inheritance#Covariance, anchored declarations, and "catcalls"|"Covariance, anchored declarations, and "catcalls""]] ; you may understand it, in the following class, as equivalent to `COMPARABLE`. }}
|
||||
@@ -703,7 +703,7 @@ Eiffel's inheritance mechanism has an important application to extending the fle
|
||||
<code>
|
||||
if item (i) < item (j) then ...
|
||||
</code>
|
||||
where `item (i)` and `item (j)` are of type `G`. But this requires the availability of a feature `infix "<"` in all types that may serve as actual generic parameters corresponding to `G`. Using the type `SORTABLE_ARRAY [INTEGER]` should be permitted, because `INTEGER` has such a feature; but not `SORTABLE_ARRAY [COMPLEX]` if there is no total order relation on `COMPLEX`.
|
||||
where `item (i)` and `item (j)` are of type `G`. But this requires the availability of a feature <code>infix "<"</code> in all types that may serve as actual generic parameters corresponding to `G`. Using the type `SORTABLE_ARRAY [INTEGER]` should be permitted, because `INTEGER` has such a feature; but not `SORTABLE_ARRAY [COMPLEX]` if there is no total order relation on `COMPLEX`.
|
||||
|
||||
To cover such cases, declare the class as
|
||||
<code>
|
||||
@@ -711,7 +711,7 @@ class SORTABLE_ARRAY [G -> COMPARABLE]
|
||||
</code>
|
||||
making it '''constrained generic'''. The symbol `->` recalls the arrow of inheritance diagrams; what follows it is a type, known as the generic constraint. Such a declaration means that:
|
||||
|
||||
Within the class, you may apply the features of the generic constraint -- here the features of `COMPARABLE`: `infix "<"`, `infix ">"` etc. -- to expressions of type `G`.
|
||||
Within the class, you may apply the features of the generic constraint -- here the features of `COMPARABLE`: <code>infix "<"</code>, `infix ">"` etc. -- to expressions of type `G`.
|
||||
|
||||
A generic derivation is only valid if the chosen actual generic parameter conforms to the constraint. Here you can use `SORTABLE_ARRAY [INTEGER]` since `INTEGER` inherits from `COMPARABLE`, but not `SORTABLE_ARRAY [COMPLEX]` if `COMPLEX` is not a descendant of `COMPARABLE`.
|
||||
|
||||
@@ -889,7 +889,7 @@ It is possible to use `Current` as anchor; the declaration `like Current` denote
|
||||
is_less alias "<" (other: like Current): BOOLEAN ...
|
||||
</code>
|
||||
|
||||
since we only want to compare two comparable elements of compatible types -- but not, for example, integer and strings, even if both types conform to `COMPARABLE`. (A "balancing rule" makes it possible, however, to mix the various arithmetic types, consistently with mathematical traditions, in arithmetic expressions such as `3 + 45.82` or boolean expressions such as `3 < 45.82`.)
|
||||
since we only want to compare two comparable elements of compatible types -- but not, for example, integer and strings, even if both types conform to `COMPARABLE`. (A "balancing rule" makes it possible, however, to mix the various arithmetic types, consistently with mathematical traditions, in arithmetic expressions such as `3 + 45.82` or boolean expressions such as <code>3 < 45.82</code>.)
|
||||
|
||||
Similarly, class `ANY` declares procedure `copy` as
|
||||
<code>
|
||||
@@ -906,7 +906,7 @@ The anchored types shown above specify anchors which are either:
|
||||
* The name of a query of the class in which the anchored declaration appears
|
||||
** as in the case of: `set_owner (h: like owner)` or
|
||||
* `Current`
|
||||
** as in the case of: `is_less alias "<" (other: like Current): BOOLEAN`.
|
||||
** as in the case of: <code>is_less alias "<" (other: like Current): BOOLEAN</code>.
|
||||
|
||||
Declarations can also use '''qualified''' anchored types. Consider this possible feature of `ACCOUNT`:
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
[[Property:title|Batch compilation]]
|
||||
[[Property:weight|2]]
|
||||
[[Property:uuid|18958db6-dafc-57b7-cdef-aca01bc13661]]
|
||||
In order to launch a compilation without user intervention you need to specify the `<code>-batch</code>' 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.
|
||||
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:
|
||||
@@ -21,7 +21,7 @@ cd EIFGENs/target_name/W_code
|
||||
finish_freezing > $output_file</code>
|
||||
|
||||
|
||||
It will go the directory where your project is located and compile your Eiffel code using the `<code>config.ecf</code>' file located in your project directory and compile automatically the C code. All outputs will be stored in the file `<code>/output_path/OUTPUT</code>'.
|
||||
It will go the directory where your project is located and compile your Eiffel code using the `config.ecf` file located in your project directory and compile automatically the C code. All outputs will be stored in the file `/output_path/OUTPUT`.
|
||||
|
||||
{{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. }}
|
||||
|
||||
@@ -37,7 +37,7 @@ cd EIFGENs\target_name\W_code
|
||||
finish_freezing > c:\output_path\OUTPUT</code>
|
||||
|
||||
|
||||
It will go the directory where your project is located and compile your Eiffel code using the `<code>config.ecf</code>' file located in your project directory and compile automatically the C code. All outputs will be stored in the file `<code>c:\output_path/OUTPUT</code>'.
|
||||
It will go the directory where your project is located and compile your Eiffel code using the `config.ecf` file located in your project directory and compile automatically the C code. All outputs will be stored in the file `c:\output_path/OUTPUT`.
|
||||
|
||||
{{seealso|<br/>
|
||||
[[EiffelStudio: Using command line options|Using command line compiler options]] }}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
[[Property:weight|4]]
|
||||
[[Property:uuid|be1dc034-2bca-3d3a-5dfc-8597b2cc7051]]
|
||||
[[Image:advanced-options|Advanced dialog]]
|
||||
* Address Expression: lets you pass `<code>$(s.to_c)</code>' to a feature instead of declaring `<code>a</code>' of type <code>ANY</code>, and then assigning `<code>s.to_c</code>' to `<code>a</code>' and passing `<code>$a</code>'.
|
||||
* Address Expression: lets you pass `$(s.to_c)` to a feature instead of declaring `a` of type <code>ANY</code>, and then assigning `s.to_c` to `a` and passing `$a`.
|
||||
{{Caution|Turn this option on only if you have advanced knowledge of the garbage collector internals, because using this syntax in some situations could lead to bugs that are very hard to trace. }}
|
||||
* Automatic Backup: generate a backup of the class and configuration files during recompilation?
|
||||
* Check VAPE: Enforce <code> VAPE </code> validity constraint: lets you disable type checking for <code> VAPE </code> errors in preconditions, which correspond to insufficiently exported features used in preconditions (ETL 2nd edition page 122).
|
||||
|
||||
Reference in New Issue
Block a user