diff --git a/documentation/current/eiffel/Technical_papers/void-safety-how-eiffel-removes-null-pointer-dereferencing.wiki b/documentation/current/eiffel/Technical_papers/void-safety-how-eiffel-removes-null-pointer-dereferencing.wiki
index effc78ac..7aa5432f 100644
--- a/documentation/current/eiffel/Technical_papers/void-safety-how-eiffel-removes-null-pointer-dereferencing.wiki
+++ b/documentation/current/eiffel/Technical_papers/void-safety-how-eiffel-removes-null-pointer-dereferencing.wiki
@@ -1,7 +1,7 @@
[[Property:title|Void-safety: how Eiffel removes null-pointer dereferencing]]
[[Property:weight|0]]
[[Property:uuid|d9380464-4312-b76e-9bfd-e57df0f59b4a]]
-This white paper (see [[file:void-safe-eiffel.pdf|"Attachment" link ]] below) presents the Eiffel void-safety mechanism, fully implemented in EiffelStudio 6.4.
+This white paper (see [[file:void-safe-eiffel.pdf|document as pdf]]) presents the Eiffel void-safety mechanism, fully implemented in EiffelStudio 6.4.
In almost every program running today there is a ticking time bomb: the risk of a "void call". A void call is possible in programs written in almost any programming language; its effect is usually to crash the program. Many unexplained program failures and other abnormal behaviors result from void calls.
@@ -9,21 +9,17 @@ While extensive testing can decrease the likelihood of a void call, it cannot
Professor C.A.R. Hoare from Microsoft Research, winner of the Turing Award and the Kyoto Prize, calls the presence of void calls in modern programming languages the "billion-dollar mistake":
-
"The invention of the null reference in 1965" [the source of void calls] "has led to innumerable errors, vulnerabilities, and system crashes, which have probably caused a billion dollars of pain and damage in the last forty years."
-
+:"The invention of the null reference in 1965" [the source of void calls] "has led to innumerable errors, vulnerabilities, and system crashes, which have probably caused a billion dollars of pain and damage in the last forty years."
-(Citation at: http://qconlondon.com/london-2009/presentation/Null+References:+The+Billion+Dollar+Mistake .)
+(Citation at: [http://qconlondon.com/london-2009/presentation/Null+References:+The+Billion+Dollar+Mistake] )
The Eiffel solution relies on a combination of language mechanisms:
--
-"Certified Attachment Patterns" are code schemes that the EiffelStudio compiler guarantees to be void-safe.
+*"Certified Attachment Patterns" are code schemes that the EiffelStudio compiler guarantees to be void-safe.
+*"Attached types" are types that are guaranteed to have non-void values.
+*The "Object Test" instruction lets programmers treat void values in a special way.
-
- "Attached types" are types that are guaranteed to have non-void values.
-
- The "Object Test" instruction lets programmers treat void values in a special way.
-
-
-The White Paper (see the link below) describes the theoretical and practical challenges of ensuring void-safety and presents the Eiffel mechanism.-
+The White Paper (see the link below) describes the theoretical and practical challenges of ensuring void-safety and presents the Eiffel mechanism.
diff --git a/documentation/current/eiffel/_files/void-safe-eiffel.pdf b/documentation/current/eiffel/_files/void-safe-eiffel.pdf
new file mode 100644
index 00000000..a736f52a
Binary files /dev/null and b/documentation/current/eiffel/_files/void-safe-eiffel.pdf differ