From 5aebbfcee0f6ebd79e08e9a4e0a108023b59e5ae Mon Sep 17 00:00:00 2001 From: sof <unknown> Date: Tue, 4 May 1999 08:31:53 +0000 Subject: [PATCH] [project @ 1999-05-04 08:31:51 by sof] Updated _casm_ example --- ghc/docs/users_guide/4-03-notes.vsgml | 3 +++ ghc/docs/users_guide/glasgow_exts.vsgml | 19 +++++++++++-------- ghc/docs/users_guide/users_guide.vsgml | 2 ++ 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/ghc/docs/users_guide/4-03-notes.vsgml b/ghc/docs/users_guide/4-03-notes.vsgml index 1430b374ca9c..a402be8b9b66 100644 --- a/ghc/docs/users_guide/4-03-notes.vsgml +++ b/ghc/docs/users_guide/4-03-notes.vsgml @@ -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. diff --git a/ghc/docs/users_guide/glasgow_exts.vsgml b/ghc/docs/users_guide/glasgow_exts.vsgml index 99eaf5dc3594..e54d9f89c5d3 100644 --- a/ghc/docs/users_guide/glasgow_exts.vsgml +++ b/ghc/docs/users_guide/glasgow_exts.vsgml @@ -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, diff --git a/ghc/docs/users_guide/users_guide.vsgml b/ghc/docs/users_guide/users_guide.vsgml index ad3563b92119..86759d4e4436 100644 --- a/ghc/docs/users_guide/users_guide.vsgml +++ b/ghc/docs/users_guide/users_guide.vsgml @@ -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> -- GitLab