Skip to content
Snippets Groups Projects
Commit f21f0517 authored by sof's avatar sof
Browse files

[project @ 1998-02-03 22:47:48 by sof]

Added entry for assertions
parent 82c39e15
No related merge requests found
......@@ -16,4 +16,34 @@ Changes made since 3.00:
<item> imported HBC's quick-sort algorithm from @QSort@ into @List@.
<item> added support for assertions. Conceptually, a new function has
been added to the Prelude with the following type:
<tscreen> <verb>
assert :: Bool -> a -> a
</verb> </tscreen>
which has the following behaviour:
<tscreen> <verb>
assert pred v
| pred = v
| otherwise = error "assertion failed"
</verb> </tscreen>
However in this form, the practical use of assertions is
limited as no indication is given as to what assertion failed.
So to help out here, ghc will rewrite any uses of <tt/assert/
to instead invoke the function <tt/assert__/ :
<tscreen> <verb>
assert__ :: String -> Bool -> a -> a
</verb> </tscreen>
where the first argument to <tt/assert__/ is a compiler generated string
which encodes the source location of the original <tt/assert/.
Assertions are a Glasgow extension, so -fglasgow-exts is
needed to use them.
</itemize>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment