From cc0fa9d046427020a62f63d53abcabcd3b64fa0f Mon Sep 17 00:00:00 2001 From: halw Date: Wed, 12 Oct 2011 18:13:06 +0000 Subject: [PATCH] Author:halw Date:2011-10-11T19:31:54.000000Z git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@995 abb3cda0-5349-4a8f-a601-0c33ac3a8c38 --- ...ing-void-safe-and-void-unsafe-software.wiki | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/documentation/current/method/void-safe-programming-eiffel/converting-existing-software-void-safety/mixing-void-safe-and-void-unsafe-software.wiki b/documentation/current/method/void-safe-programming-eiffel/converting-existing-software-void-safety/mixing-void-safe-and-void-unsafe-software.wiki index aff9ae81..f7e449c4 100644 --- a/documentation/current/method/void-safe-programming-eiffel/converting-existing-software-void-safety/mixing-void-safe-and-void-unsafe-software.wiki +++ b/documentation/current/method/void-safe-programming-eiffel/converting-existing-software-void-safety/mixing-void-safe-and-void-unsafe-software.wiki @@ -6,9 +6,23 @@ =Introduction= -Under some circumstances it is possible and even helpful to mix void-safe and void-unsafe libraries. During conversion, for example, it can be helpful to compile and test a void-unsafe system with void-safe versions of the libraries it depends upon. +Eiffel Software recommends that any new development efforts be implemented using Eiffel's void-safe approach, thus eliminating one more common type of runtime failure. It is also recommended that existing software be converted to void-safety at the earliest opportunity. -=Rules for mixing void-safety modes= +Under some circumstances it is possible and even helpful to mix void-safe and void-unsafe libraries. During conversion to void-safety, for example, it can be helpful to compile and test a void-unsafe system with void-safe versions of the libraries it depends upon. + +=Rule for mixing void-safety modes= + +The rule for using void-safe and void-unsafe software together are fairly simple. + + +{{Rule|name=Mixing void-safe and void-unsafe software|text=
+1) A class that is void-unsafe may depend upon other classes (as suppliers or ancestors) which are either void-safe or void-unsafe.
+2) A class that is void-safe may depend only upon other classes that are void-safe.}} + + +This means that if the root class of system is void-safe, then every other class in the system must also be void-safe. + +However, if you are converting a system to void-safety, it's likely that your root class and the classes in the closely related clusters will be void-unsafe. The rule allows you to mix the void-safe versions of the Eiffel Software library classes from the EiffelStudio distribution with your void-unsafe system during conversion.