Files
eiffel-org/documentation/current/solutions/concurrent-computing/concurrent-eiffel-scoop/scoop-practical-matters.wiki
vwheeler 0671888cc9 Author:manus
Date:2014-03-03T19:11:30.000000Z


git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@1274 abb3cda0-5349-4a8f-a601-0c33ac3a8c38
2014-03-21 20:52:25 +00:00

53 lines
3.6 KiB
Plaintext

[[Property:title|SCOOP practical matters]]
[[Property:weight|-1]]
[[Property:uuid|87f78898-2bbb-b134-0128-e55401a61a05]]
=Introduction=
''SCOOP practical matters'' is a collection of advice for using SCOOP effectively. Here you will find practical information that supplements the rules and definitions of the basic [[Concurrent Eiffel with SCOOP|SCOOP model]], or that is unique to the implementation of SCOOP in EiffelStudio.
=SCOOP project settings=
SCOOP adds only a single keyword to the Eiffel programming language: <code>separate</code>. In any case in which SCOOP is not enabled, the <code>separate</code> keyword is ignored, and the SCOOP-specific validity rules are not applied.
In order to enable SCOOP processing in your project, you use the project settings. Actually, there's just one mandatory setting: ''Concurrency'', and the value you need is ''SCOOP'', as shown in the section of the Project Settings dialog below. Still, in addition to the ''Concurrency'' project setting, remember that it is recommended that for new projects you use [[Creating a new void-safe project#Project settings for void-safe projects|the settings that guarantee void-safety]].
[[Image: SCOOP project setting]]
{{note|The ''Concurrency'' setting requires a [[Clean compile|clean compile]] to be done in order for a change of value to take effect. }}
==A SCOOP project from the new project wizard==
If you create a project using the EiffelStudio new project wizard (for example, selecting "Basic application" from the choices under "Create project" when EiffelStudio opens), the created project will have neither void-safety nor SCOOP enabled. [This is true in EiffelStudio versions 6.8 and 7.0, but may change in future versions.] So, to enable void-safety and SCOOP in such a default project, you'll have to do some work on the project settings.
===Void-safety settings===
As mentioned above, you'll need to enable the [[Creating a new void-safe project#Project settings for void-safe projects|the settings that guarantee void-safety]].
===Libraries and precompiled libraries===
Notice in the note in [[Creating a new void-safe project#Project settings for void-safe projects|that section of the documentation]], that for a period of transition, you should select the "''libraryname''-safe.ecf" version of libraries for void-safe projects. There is no special SCOOP version of libraries, so if you are not using a precompiled library, then selecting "base-safe.ecf" should be sufficient.
However, there is a special version of the precompiled EiffelBase library for SCOOP. So, if you are using precompiled EiffelBase, you should remove the precompile that the wizard included, and add the precompile with file name "base-scoop-safe.ecf".
{{note|When you use a precompiled library, the ''Concurrency'' setting for that library trumps whatever ''Concurrency'' value you have set for the project. So, if you use the "base-safe.ecf" precompiled library, your project will not be SCOOP-enabled regardless of the setting of ''Concurrency'' in the Target. Likewise, using the "base-scoop-safe.ecf" precompiled library always produces a SCOOP-enabled project, even if the Target ''Concurrency'' setting is ''No concurrency''.}}
===The SCOOP Concurrency setting===
Then, you should select ''SCOOP'' as a value for the ''Concurrency'' setting for your project.
===Clean compile===
Changing the ''Concurrency'' setting, the ''Void-safety'' setting, and precompiled libraries each would cause you to have to do a [[Clean compile|clean compile]] of your system in order to become effective. So, next you should do a clean compile. At this point, your project should be void-safe and SCOOP enabled.