diff --git a/documentation/current/eiffelstudio/_images/Advanced_Options_main.png b/documentation/current/eiffelstudio/_images/Advanced_Options_main.png new file mode 100644 index 00000000..7bd4ae4f Binary files /dev/null and b/documentation/current/eiffelstudio/_images/Advanced_Options_main.png differ diff --git a/documentation/current/eiffelstudio/_images/Advanced_Options_main.png.data b/documentation/current/eiffelstudio/_images/Advanced_Options_main.png.data new file mode 100644 index 00000000..347fe5b6 --- /dev/null +++ b/documentation/current/eiffelstudio/_images/Advanced_Options_main.png.data @@ -0,0 +1,3 @@ +title=advanced-options +author=halw +path=content/advanced-options diff --git a/documentation/current/eiffelstudio/eiffelstudio-reference/eiffelstudio-project-settings-window/general-target-options/advanced-options/index.wiki b/documentation/current/eiffelstudio/eiffelstudio-reference/eiffelstudio-project-settings-window/general-target-options/advanced-options/index.wiki index 2f247963..27d08ac4 100644 --- a/documentation/current/eiffelstudio/eiffelstudio-reference/eiffelstudio-project-settings-window/general-target-options/advanced-options/index.wiki +++ b/documentation/current/eiffelstudio/eiffelstudio-reference/eiffelstudio-project-settings-window/general-target-options/advanced-options/index.wiki @@ -6,6 +6,7 @@ {{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 VAPE validity constraint: lets you disable type checking for VAPE errors in preconditions, which correspond to insufficiently exported features used in preconditions (ETL 2nd edition page 122). +* Check for Void target: Should "Feature call on Void target" exceptions be raised? * Console Application: has no effect on Unix systems. It lets Windows users choose between creating a console application or a GUI application (in which case a console will be created if needed, instead of using the console the program was launched from). * Dead Code Removal: should unused code be removed? (C code generation mode only) * Dynamic Runtime: makes the generated executable use a shared library version of the runtime on both Windows (DLL) and Unix platforms (.so) that supports shared libraries.(C code generation mode only) @@ -14,10 +15,9 @@ * Enforce unique class names: enforce all class names to be system wide unique? * Exception Trace: makes it possible to see a complete exception trace in a finalized application. Because it is adding some code to remember where the application was during the crash it can slow down the performance of your application by a factor of 5% to 30% depending of your platform. (C code generation mode only) * Inlining, Inlining Size: enables inlining on Eiffel features that can be inlined, i.e. whose size is less or equal to the specified size in the combo box. The size value given in parameter corresponds to the number of instructions as seen by the Eiffel compiler (for example a := b.f corresponds to 2 instructions). The inlining is very powerful since it can inline a function in all your Eiffel code, without scope limitation as found in C or C++ compilers. (C code generation mode only) -* Multithreaded: generates a multithreaded application. This option cannot be changed during the development of your project and has to be set correctly at the first compilation of your system. (C code generation mode only) -* Old Verbatim Strings: Use the old format for verbatim strings * Platform: override platform value used for checking conditions, useful for cross compilation * Shared Library Definition: lets you specify a `file_name.def' as the file where the Eiffel compiler will look when it tries to generate the exported functions of the shared library you are developing (C code generation mode only). To have more information concerning definition files, see the [[Dynamic library generation]] . +* Total Order on REALs: Allow a total order on REAL data types? Allows NaN (Not a Number) equal NaN, and NaN to be the smallest number of all. * Library Root: Absolute path to use as base for relative paths. If this is not defined, the path to the configuration file will be used. ==.NET Options== diff --git a/documentation/current/eiffelstudio/eiffelstudio-reference/eiffelstudio-project-settings-window/general-target-options/group-options.wiki b/documentation/current/eiffelstudio/eiffelstudio-reference/eiffelstudio-project-settings-window/general-target-options/group-options.wiki index 362da196..a7735496 100644 --- a/documentation/current/eiffelstudio/eiffelstudio-reference/eiffelstudio-project-settings-window/general-target-options/group-options.wiki +++ b/documentation/current/eiffelstudio/eiffelstudio-reference/eiffelstudio-project-settings-window/general-target-options/group-options.wiki @@ -5,7 +5,7 @@ This is where you can configure the groups of your project. A group is a contain * Cluster: represents a directory or directory structure on the disk with class files in it * Override cluster: similar to cluster but overrides classes in other clusters with the same name, can only appear in an application, never in a library * Library: a configuration of a library is included, all classes in clusters are accessible -* Precompile: a precompile is similar to a library, but the contents of the library have already been compiled and therefore compilation is faster. There can be only one precompile per project. +* Precompile: a [[Melting Ice Technology#Precompiling|precompile]] is similar to a library, but the contents of the library or libraries that make up the precompile have already been compiled and therefore the compilation of your project is faster. There can be only one precompile per project. * Assembly: classes in an assembly (.NET code generation mode only) To add a new group, choose the corresponding add group button or context menu entry and enter a name and location or choose from a list (for assemblies and libraries). @@ -22,12 +22,12 @@ To add a new group, choose the corresponding add group button or context menu en * .NET Namespace: specify the namespace for this group (.NET code generation mode only) * Assertions: [[Assertion Options|assertion level]] for this group * Warning: [[Warning Options|warnings]] for this group -* Debug: [[Debug Options|debugs]] for this group +* Debug: [[Debug Options|debugs]] for this group ===Advanced=== * Condition: group nodes can be [[General Target Options|conditioned]] to only be used under certain conditions. -* Prefix: name prefix for classes in this group (see [[Group Options| Renaming]] ) -* Renaming: renamings for classes in this group (see [[Group Options| Renaming]] ) +* Prefix: name prefix for classes in this group (see [[#Renaming|Renaming]] ) +* Renaming: renamings for classes in this group (see [[#Renaming|Renaming]] ) * Class Options: options specific for certain classes ==(Override) Cluster Options== @@ -37,14 +37,14 @@ Clusters can be added as a sub clusters of other clusters, just select the paren * Exclude Rules: [[General Target Options#file_pattern|exclude rules]] for this group * Dependencies: specify which groups are checked for classes if the class cannot be found in the group itself * Type Mapping: [[Type mapping|mapping]] of types, e.g. STRING is mapped to STRING_32 -* Visible Classes: visible classes (see [[Group Options| Visible Classes]] ) +* Visible Classes: visible classes (see [[#Visible classes|Visible classes]] ) ==Override Cluster Options== * Overrides: which groups are overridden by this override (default to all). ==Library/Precompile Options== If a library is not read only, the configuration can be directly edited by clicking on the edit library button. -* Visible Classes: visible classes (see [[Group Options| Visible Classes]] ) +* Visible Classes: visible classes (see [[#Visible classes|Visible classes]] ) * Use Application Options: Should this library use options from the application instead of from the library? ==Assembly Options== @@ -55,18 +55,20 @@ It is possible (but not recommended) to specify an assembly only with GAC inform * Assembly Public Key Token: Public key token that identifies the asssembly. ==Resolving Conflicts== -There are multiple ways to resolve conflicts between different classes with the same name. + +There are multiple ways to resolve conflicts between different classes with the same name. + ===Renaming=== A class can be renamed with a renaming or a group can have a name prefix which will get added to every class. Outside of this group, the class can then be reached by the renamed name. - + ===Dependencies=== It is possible to specify which other groups will be searched if a class cannot be found in the current group. - + ==Visible classes== -If a feature needs to be reachable from CECIL, but is not called anywhere in the Eiffel code, then it must be made ''visible'', because otherwise it will be removed by the dead code optimizer. This is done by using the '''Visible Classes''' option. In addition it is also possible (but rarely necessary) to rename a class or a feature. In most cases it suffices to make a class completely visible and renaming is unnecessary. +If a feature needs to be reachable from [[CECIL]], but the feature is not called from any Eiffel code, then it must be forced to be ''visible'', otherwise it will be removed by the dead code optimizer. This is done by using the ''Visible Classes'' option. In addition it is also possible, but rarely necessary, to rename a class or a feature. In most cases it suffices to make a class completely visible and renaming is unnecessary. [[Image:visible-dialog|Visible dialog]]