Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Shayne Fletcher
Glasgow Haskell Compiler
Commits
5aebbfce
Commit
5aebbfce
authored
May 04, 1999
by
sof
Browse files
[project @ 1999-05-04 08:31:51 by sof]
Updated _casm_ example
parent
765a2637
Changes
3
Hide whitespace changes
Inline
Side-by-side
ghc/docs/users_guide/4-03-notes.vsgml
View file @
5aebbfce
...
...
@@ -17,6 +17,9 @@ computations on small integers. The performance of <tt/Integer/ is now
only slightly slower than <tt/Int/ for values between <tt/minBound :: Int/
and <tt/maxBound :: Int/.
<item> On Win32 platforms, added support for using (and producing) dynamic
link libraries (DLLs) containing ghc-compiled code.
<item> Added @-funbox-strict-fields@ for unboxing/unpacking strict
constructor fields.
...
...
ghc/docs/users_guide/glasgow_exts.vsgml
View file @
5aebbfce
%
% $Id: glasgow_exts.vsgml,v 1.
9
1999/0
4/29 12:2
1:5
0
s
imonpj
Exp $
% $Id: glasgow_exts.vsgml,v 1.
10
1999/0
5/04 08:3
1:5
2
s
of
Exp $
%
% GHC Language Extensions.
%
...
...
@@ -234,13 +234,16 @@ may be just the ticket (NB: <em>no chance</em> of such code going
through a native-code generator):
<tscreen><verb>
import Addr
import CString
oldGetEnv name
= _casm_ ``%r = getenv((char *) %0);'' name >>= \ litstring
@(A# str#)
->
= _casm_ ``%r = getenv((char *) %0);'' name >>= \ litstring ->
return (
if (litstring ==
``NULL''
) then
if (litstring ==
nullAddr
) then
Left ("Fail:oldGetEnv:"++name)
else
Right (unpackCString
# str#
)
Right (unpackCString
litstring
)
)
</verb></tscreen>
...
...
@@ -1545,10 +1548,10 @@ assertion was made,
assert pred val ==> assertError "Main.hs|15" pred val
</verb></tscreen>
The rewrite is only performed by the compiler when
applications of
<tt>Exception.assert</tt>
are spotted
, so you can still define and
use
your own versions of <tt/assert/, should you so wish. If not,
import
<tt/Exception/ to make use <tt/assert/ in your code.
The rewrite is only performed by the compiler when
it spots
applications of
<tt>Exception.assert</tt>, so you can still define and
use
your own versions of <tt/assert/, should you so wish. If not,
import
<tt/Exception/ to make use <tt/assert/ in your code.
To have the compiler ignore uses of assert, use the compiler option
@-fignore-asserts@. <nidx>-fignore-asserts option</nidx> That is,
...
...
ghc/docs/users_guide/users_guide.vsgml
View file @
5aebbfce
...
...
@@ -17,6 +17,7 @@
<!ENTITY utils SYSTEM "utils.sgml" >
<!ENTITY mutablearray SYSTEM "MutableArray.sgml">
<!ENTITY bytearray SYSTEM "ByteArray.sgml">
<!ENTITY win32-dll SYSTEM "win32-dlls.sgml">
]>
<article>
...
...
@@ -41,5 +42,6 @@ Email: @glasgow-haskell-{bugs,users}-request@@haskell.org@
&libmisc
&wrong
&utils
&win32-dll
</article>
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment