[project @ 1999-05-04 08:31:51 by sof]
authorsof <unknown>
Tue, 4 May 1999 08:31:53 +0000 (08:31 +0000)
committersof <unknown>
Tue, 4 May 1999 08:31:53 +0000 (08:31 +0000)
Updated _casm_ example

ghc/docs/users_guide/4-03-notes.vsgml
ghc/docs/users_guide/glasgow_exts.vsgml
ghc/docs/users_guide/users_guide.vsgml

index 1430b37..a402be8 100644 (file)
@@ -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.
 
index 99eaf5d..e54d9f8 100644 (file)
@@ -1,5 +1,5 @@
 % 
-% $Id: glasgow_exts.vsgml,v 1.9 1999/04/29 12:21:50 simonpj Exp $
+% $Id: glasgow_exts.vsgml,v 1.10 1999/05/04 08:31:52 sof 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,
index ad3563b..86759d4 100644 (file)
@@ -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>