DarcsURL: http://darcs.haskell.org/ghc-6.6/packages/base
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=_"

--=_
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable

Wed Apr 25 01:35:54 =93=8C=8B=9E (=95W=8F=80=8E=9E) 2007  shelarcy@gmail.co=
m
  * Use "Wide" API if System has it to support "wide" character's FilePath

Wed Apr 25 13:08:43 =93=8C=8B=9E (=95W=8F=80=8E=9E) 2007  shelarcy <shelarc=
y@gmail.com>
  * fix typo in "Wide" API support

--=_
Content-Type: text/x-darcs-patch; name="use-_wide_-api-if-system-has-it-to-support-_wide_-character_s-filepath.dpatch"
Content-Transfer-Encoding: quoted-printable
Content-Description: A darcs patch for your repository!


New patches:

[Use "Wide" API if System has it to support "wide" character's FilePath
shelarcy@gmail.com**20070424163554] {
hunk ./GHC/Handle.hs 787
+#if defined(mingw32_HOST_OS) || HAVE_WOPEN
+  withCWString filepath $ \ f ->
+#else
hunk ./GHC/Handle.hs 791
+#endif
hunk ./GHC/Handle.hs 871
+#if defined(mingw32_HOST_OS) || HAVE_WOPEN
+      fd <- withCWString filepath $ \ f ->
+#else
hunk ./GHC/Handle.hs 875
+#endif
hunk ./System/Directory.hs 156
+#if defined(mingw32_HOST_OS) || HAVE_WACESS
+  withCWString name $ \s -> do
+#else
hunk ./System/Directory.hs 160
+#endif
hunk ./System/Directory.hs 190
+#if defined(mingw32_HOST_OS) || HAVE_WCHMOD
+  withCWString name $ \p_name -> do
+#else
hunk ./System/Directory.hs 194
+#endif
hunk ./System/Directory.hs 212
+#if defined(mingw32_HOST_OS) || HAVE_WCHMOD
+  withCWString source $ \p_source -> do
+  withCWString dest $ \p_dest -> do
+#else
hunk ./System/Directory.hs 218
+#endif
hunk ./System/Directory.hs 266
+#if defined(mingw32_HOST_OS) || HAVE_WMKDIR
+    withCWString path $ \s -> do
+#else
hunk ./System/Directory.hs 270
+#endif
hunk ./System/Directory.hs 341
+#if defined(mingw32_HOST_OS) || HAVE_WRMDIR
+    withCWString path $ \s ->
+#else
hunk ./System/Directory.hs 345
+#endif
hunk ./System/Directory.hs 405
+#if defined(mingw32_HOST_OS) || HAVE_WUNLINK
+    withCWString path $ \s ->
+#else
hunk ./System/Directory.hs 409
+#endif
hunk ./System/Directory.hs 469
-
+#if defined(mingw32_HOST_OS) || HAVE_WRENAME
+   withCWString opath $ \s1 ->
+     withCWString npath $ \s2 ->
+#else
hunk ./System/Directory.hs 474
-     withCString npath $ \s2 ->
+    withCString npath $ \s2 ->
+#endif
hunk ./System/Directory.hs 530
-
+#if  defined(mingw32_HOST_OS) || HAVE_WRENAME
+    withCWString opath $ \s1 ->
+      withCWString npath $ \s2 ->
+#else
hunk ./System/Directory.hs 535
-      withCString npath $ \s2 ->
+     withCString npath $ \s2 ->
+#endif
hunk ./System/Directory.hs 610
+#if defined(mingw32_HOST_OS) || HAVE_WREALPATH
+  withCWString fpath $ \pInPath ->
+#else
hunk ./System/Directory.hs 614
+#endif
hunk ./System/Directory.hs 622
+#if defined(mingw32_HOST_OS) || HAVE_WREALPATH
+       peekCWString pOutPath
+#else
hunk ./System/Directory.hs 626
+#endif
hunk ./System/Directory.hs 629
-foreign import stdcall unsafe "GetFullPathNameA"
-            c_GetFullPathName :: CString
+foreign import stdcall unsafe "GetFullPathNameW"
+            c_GetFullPathName :: CWString
hunk ./System/Directory.hs 632
-                              -> CString
-                              -> Ptr CString
+                              -> CWString
+                              -> Ptr CWString
hunk ./System/Directory.hs 635
+#elif HAVE_WREALPATH
+foreign import ccall unsafe "wrealpath"
+                   c_realpath :: CWString
+                              -> CWString
+                              -> IO CWString
hunk ./System/Directory.hs 660
-  withCString binary $ \c_binary ->
-  withCString ('.':exeExtension) $ \c_ext ->
+  withCWString binary $ \c_binary ->
+  withCWString ('.':exeExtension) $ \c_ext ->
hunk ./System/Directory.hs 666
-      then do fpath <- peekCString pOutPath
+      then do fpath <- peekCWString pOutPath
hunk ./System/Directory.hs 670
-foreign import stdcall unsafe "SearchPathA"
-            c_SearchPath :: CString
-                         -> CString
-                         -> CString
+foreign import stdcall unsafe "SearchPathW"
+            c_SearchPath :: CWString
+                         -> CWString
+                         -> CWString
hunk ./System/Directory.hs 675
-                         -> CString
-                         -> Ptr CString
+                         -> CWString
+                         -> Ptr CWString
hunk ./System/Directory.hs 736
-	(withCString path $ \s -> =

+#if defined(mingw32_HOST_OS) || HAVE_WOPENDIR
+	(withCWString path $ \s -> =

+#else
+        (withCString path $ \s ->
+#endif
hunk ./System/Directory.hs 757
+#if defined(mingw32_HOST_OS) || HAVE_WREADDIR
+	 	    entry   <- (d_name dEnt >>=3D peekCWString)
+#else
hunk ./System/Directory.hs 761
+#endif
hunk ./System/Directory.hs 807
+#if defined(mingw32_HOST_OS) || HAVE_WGETCWD
+	     then do s <- peekCWString p'
+#else
hunk ./System/Directory.hs 811
+#endif
hunk ./System/Directory.hs 856
+#if defined(mingw32_HOST_OS) || HAVE_WCHDIR
+    withCWString path $ \s -> =

+#else
hunk ./System/Directory.hs 860
+#endif
hunk ./System/Directory.hs 905
+#if defined(mingw32_HOST_OS) || HAVE_WSTAT
+      withCWString (fileNameEndClean name) $ \s -> do
+#else
hunk ./System/Directory.hs 909
+#endif
hunk ./System/Directory.hs 917
+#if defined(mingw32_HOST_OS) || HAVE_WLSTAT || HAVE_WSTAT
+      withCWString name $ \s -> do
+#else
hunk ./System/Directory.hs 921
+#endif
hunk ./System/Directory.hs 990
-     peekCString pPath
+     peekCWString pPath
hunk ./System/Directory.hs 1028
-     s <- peekCString pPath
+     s <- peekCWString pPath
hunk ./System/Directory.hs 1062
-     peekCString pPath
+     peekCWString pPath
hunk ./System/Directory.hs 1098
-     peekCString pPath
+     peekCWString pPath
hunk ./System/Directory.hs 1109
-                              -> CString =

+                              -> CWString =

hunk ./System/Directory.hs 1116
-foreign import stdcall unsafe "GetTempPathA" c_GetTempPath :: CInt -> CStr=
ing -> IO CInt
+foreign import stdcall unsafe "GetTempPathW" c_GetTempPath :: CInt -> CWSt=
ring -> IO CInt
hunk ./System/Posix/Internals.hs 93
+#if (defined(mingw32_HOST_OS) || defined(__MINGW32__)) || HAVE_WSTAT
+  withCWString file $ \p_file -> do
+#else
hunk ./System/Posix/Internals.hs 97
+#endif
hunk ./System/Posix/Internals.hs 314
+#if defined(mingw32_HOST_OS) || defined(__MINGW32__)
+foreign import ccall unsafe "HsBase.h _waccess"
+#elif HAVE_WACCESS
+foreign import ccall unsafe "HsBase.h waccess"
+#else
hunk ./System/Posix/Internals.hs 320
+#endif
+#if defined(mingw32_HOST_OS) || defined(__MINGW32__) || HAVE_WACCESS
+   c_access :: CWString -> CInt -> IO CInt
+#else
hunk ./System/Posix/Internals.hs 325
+#endif
hunk ./System/Posix/Internals.hs 327
+#if defined(mingw32_HOST_OS) || defined(__MINGW32__)
+foreign import ccall unsafe "HsBase.h _wchmod"
+#elif HAVE_WCHMOD
+foreign import ccall unsafe "HsBase.h wchmod"
+#else
hunk ./System/Posix/Internals.hs 333
+#endif
+#if defined(mingw32_HOST_OS) || defined(__MINGW32__) || HAVE_WCHMOD
+   c_chmod :: CWString -> CMode -> IO CInt
+#else
hunk ./System/Posix/Internals.hs 338
+#endif
hunk ./System/Posix/Internals.hs 340
+#if defined(mingw32_HOST_OS) || defined(__MINGW32__)
+foreign import ccall unsafe "HsBase.h _wchdir"
+#elif HAVE_WCHDIR
+foreign import ccall unsafe "HsBase.h wchdir"
+#else
hunk ./System/Posix/Internals.hs 346
+#endif
+#if defined(mingw32_HOST_OS) || defined(__MINGW32__) || HAVE_WCHDIR
+   c_chdir :: CWString -> IO CInt
+#else
hunk ./System/Posix/Internals.hs 351
+#endif
hunk ./System/Posix/Internals.hs 356
-foreign import ccall unsafe "HsBase.h closedir" =

+#if defined(mingw32_HOST_OS) || defined(__MINGW32__)
+foreign import ccall unsafe "HsBase.h _wclosedir"
+#elif HAVE_WCLOSEDIR
+foreign import ccall unsafe "HsBase.h wclosedir"
+#else
+foreign import ccall unsafe "HsBase.h closedir"
+#endif
hunk ./System/Posix/Internals.hs 377
+#if defined(mingw32_HOST_OS) || defined(__MINGW32__)
+foreign import ccall unsafe "HsBase.h _wgetcwd"
+#elif HAVE_WGETCWD
+foreign import ccall unsafe "HsBase.h wgetcwd"
+#else
hunk ./System/Posix/Internals.hs 383
+#endif
+#if defined(mingw32_HOST_OS) || defined(__MINGW32__) || HAVE_WGETCWD
+   c_getcwd   :: Ptr CWchar -> CSize -> IO (Ptr CWchar)
+#else
hunk ./System/Posix/Internals.hs 388
+#endif
hunk ./System/Posix/Internals.hs 397
+#if defined(mingw32_HOST_OS) || defined(__MINGW32__) || HAVE_WLSTAT || HAV=
E_WSTAT
+   lstat :: CWString -> Ptr CStat -> IO CInt
+#else
hunk ./System/Posix/Internals.hs 401
+#endif
hunk ./System/Posix/Internals.hs 404
+#if defined(mingw32_HOST_OS) || defined(__MINGW32__) || HAVE_WOPEN
+   c_open :: CWString -> CInt -> CMode -> IO CInt
+#else
hunk ./System/Posix/Internals.hs 408
+#endif
hunk ./System/Posix/Internals.hs 410
-foreign import ccall unsafe "HsBase.h opendir" =

-   c_opendir :: CString  -> IO (Ptr CDir)
+#if defined(mingw32_HOST_OS) || defined(__MINGW32__)
+foreign import ccall unsafe "HsBase.h _wopendir"
+#elif HAVE_WOPENDIR
+foreign import ccall unsafe "HsBase.h wopendir"
+#else
+foreign import ccall unsafe "HsBase.h opendir"
+#endif
+#if defined(mingw32_HOST_OS) || defined(__MINGW32__) || HAVE_WOPENDIR
+   c_opendir :: CWString -> IO (Ptr CDir)
+#else
+   c_opendir :: CString -> IO (Ptr CDir)
+#endif
hunk ./System/Posix/Internals.hs 424
+#if defined(mingw32_HOST_OS) || defined(__MINGW32__) || HAVE_WMKDIR
+   mkdir :: CWString -> CInt -> IO CInt
+#else
hunk ./System/Posix/Internals.hs 428
+#endif
hunk ./System/Posix/Internals.hs 434
+#if defined(mingw32_HOST_OS) || defined(__MINGW32__) || HAVE_WRENAME
+   c_rename :: CWString -> CWString -> IO CInt
+#else
hunk ./System/Posix/Internals.hs 438
+#endif
hunk ./System/Posix/Internals.hs 443
+#if defined(mingw32_HOST_OS) || defined(__MINGW32__)
+foreign import ccall unsafe "HsBase.h _wrmdir"
+#elif HAVE_WRMDIR
+foreign import ccall unsafe "HsBase.h wrmdir"
+#else
hunk ./System/Posix/Internals.hs 449
+#endif
+#if defined(mingw32_HOST_OS) || defined(__MINGW32__) || HAVE_WRMDIR
+   c_rmdir :: CWString -> IO CInt
+#else
hunk ./System/Posix/Internals.hs 454
+#endif
hunk ./System/Posix/Internals.hs 457
+#if defined(mingw32_HOST_OS) || defined(__MINGW32__) || HAVE_WSTAT
+   c_stat :: CWString -> Ptr CStat -> IO CInt
+#else
hunk ./System/Posix/Internals.hs 461
+#endif
hunk ./System/Posix/Internals.hs 472
+#if defined(mingw32_HOST_OS) || defined(__MINGW32__)
+foreign import ccall unsafe "HsBase.h _wunlink"
+#elif HACE_WUNLINK
+foreign import ccall unsafe "HsBase.h wunlink"
+#else
hunk ./System/Posix/Internals.hs 478
+#endif
+#if defined(mingw32_HOST_OS) || defined(__MINGW32__) || HAVE_WUNLINK
+   c_unlink :: CWString -> IO CInt
+#else
hunk ./System/Posix/Internals.hs 483
+#endif
hunk ./System/Posix/Internals.hs 501
-foreign import ccall unsafe "HsBase.h link"
+#if HAVE_WLINK
+foreign import ccall unsafe "HsBase.h wlink"
+   c_link :: CWString -> CWString -> IO CInt
+#else
+foreign import ccall unsafe "HsBase.h wlink"
hunk ./System/Posix/Internals.hs 507
+#endif
hunk ./System/Posix/Internals.hs 558
+#if defined(mingw32_HOST_OS) || HAVE_WREAD_DIR
+  d_name :: Ptr CDirent -> IO CWString
+#else
hunk ./System/Posix/Internals.hs 562
+#endif
hunk ./System/Process/Internals.hs 239
-     maybeWith withCString      mb_cwd $ \pWorkDir -> do
+     maybeWith withCWString      mb_cwd $ \pWorkDir -> do
hunk ./System/Process/Internals.hs 243
-       withCString cmdline $ \pcmdline -> do
+       withCWString cmdline $ \pcmdline -> do
hunk ./System/Process/Internals.hs 251
-        :: CString
-        -> CString
+        :: CWString
+        -> CWString
hunk ./System/Process/Internals.hs 427
-  in withCString env' (act . castPtr)
+  in withCWString env' (act . castPtr)
hunk ./System/Process.hs 193
-     withCString cmdline $ \pcmdline ->
+     withCWString cmdline $ \pcmdline ->
hunk ./System/Process.hs 198
-      maybeWith withCString workDir $ \pWorkDir -> do
+      maybeWith withCWString workDir $ \pWorkDir -> do
hunk ./System/Process.hs 210
-        :: CString =

-        -> CString
+        :: CWString =

+        -> CWString
hunk ./cbits/dirUtils.c 63
-#if HAVE_READDIR_R
+#if HAVE_READDIR_R || HAVE_WREADDIR_R
+#if defined(_MSC_VER) || defined(__MINGW32__) || defined(_WIN32)
+  struct _wdirent* p;
+#elif HAVE_WDIRENT
+  struct wdirent* p;
+#else
hunk ./cbits/dirUtils.c 70
+#endif
hunk ./cbits/dirUtils.c 86
+#if defined(_MSC_VER) || defined(__MINGW32__) || defined(_WIN32)
+  p =3D (struct _wdirent*)malloc(sizeof(struct _wdirent) + nm_max);
+#elif HAVE_WREADDIR
+  P =3D (struct wdirent*)malloc(sizeof(struct wdirent) + nm_max);
+#else
hunk ./cbits/dirUtils.c 92
+#endif
hunk ./cbits/dirUtils.c 94
+#if defined(_MSC_VER) || defined(__MINGW32__) || defined(_WIN32)
+  res =3D _wreaddir_r(dirPtr, p, pDirEnt);
+#elif HAVE_WREADDIR_R
+  res =3D wreaddir_r(dirPtr, p, pDirEnt);
+#else
hunk ./cbits/dirUtils.c 100
+#endif
hunk ./cbits/dirUtils.c 116
+#if defined(_MSC_VER) || defined(__MINGW32__) || defined(_WIN32)
+  *pDirEnt =3D _wreaddir(dirPtr);
+#elif HAVE_WREADDIR
+  *pDirEnt =3D wreaddir(dirPtr);
+#else
hunk ./cbits/dirUtils.c 122
+#endif
hunk ./cbits/dirUtils.c 141
+#if defined(_MSC_VER) || defined(__MINGW32__) || defined(_WIN32) || HAVE_W=
RENAME
+__hscore_renameFile( wchar_t *src, wchar_t *dest)
+#else
hunk ./cbits/dirUtils.c 145
+#endif
hunk ./cbits/dirUtils.c 151
-    if (MoveFileA(src, dest)) {
+    if (MoveFileW(src, dest)) {
hunk ./cbits/dirUtils.c 158
-    if ( !GetFileAttributes(dest) ) {
+    if ( !GetFileAttributesW(dest) ) {
hunk ./cbits/dirUtils.c 176
-	if ( MoveFileExA(src, dest, MOVEFILE_REPLACE_EXISTING) ) {
+	if ( MoveFileExW(src, dest, MOVEFILE_REPLACE_EXISTING) ) {
hunk ./cbits/dirUtils.c 186
-    if (DeleteFileA(dest)) {
-	if (MoveFileA(src,dest)) {
+    if (DeleteFileW(dest)) {
+	if (MoveFileW(src,dest)) {
hunk ./cbits/dirUtils.c 197
+#elif HAVE_WRENAME
+    return wrename(src,dest);
hunk ./cbits/dirUtils.c 212
-typedef HRESULT (*HSCORE_GETAPPFOLDERFUNTY)(HWND,int,HANDLE,DWORD,char*);
+typedef HRESULT (*HSCORE_GETAPPFOLDERFUNTY)(HWND,int,HANDLE,DWORD,wchar_t*=
);
hunk ./cbits/dirUtils.c 218
-		       char*  pszPath)
+		       wchar_t*  pszPath)
hunk ./cbits/runProcess.c 311
-runProcess (char *cmd, char *workingDirectory, void *environment,
+runProcess (wchar_t *cmd, wchar_t *workingDirectory, void *environment,
hunk ./cbits/runProcess.c 341
-	if (!CreateProcess(NULL, cmd, NULL, NULL, TRUE, flags, environment, worki=
ngDirectory, &sInfo, &pInfo))
+	if (!CreateProcessW(NULL, cmd, NULL, NULL, TRUE, flags, environment, work=
ingDirectory, &sInfo, &pInfo))
hunk ./cbits/runProcess.c 352
-runInteractiveProcess (char *cmd, char *workingDirectory, void *environmen=
t,
+runInteractiveProcess (wchar_t *cmd, wchar_t *workingDirectory, void *envi=
ronment,
hunk ./cbits/runProcess.c 387
-	if (!CreateProcess(NULL, cmd, NULL, NULL, TRUE, CREATE_NO_WINDOW, environ=
ment, workingDirectory, &sInfo, &pInfo))
+	if (!CreateProcessW(NULL, cmd, NULL, NULL, TRUE, CREATE_NO_WINDOW, enviro=
nment, workingDirectory, &sInfo, &pInfo))
hunk ./configure.ac 31
+
+dnl Unixs systems have just partial "wide" api insted of all "wide" api.
+dnl But Windows (MinGW) has that.
+AC_CHECK_FUNCS([wlstat wstat wopen wrename wmkdir wreaddir wreaddir_r wrea=
lpath waccess wchmod wchdir wclosedir wgetcwd wcopendir wrmdir wunlink wlin=
k])
+AC_CHECK_TYPES([wdirent])
hunk ./include/HsBase.h 465
+#if defined(_MSC_VER) || defined(__MINGW32__) || defined(_WIN32) || HAVE_W=
MKDIR
+__hscore_mkdir( wchar_t *pathName, int mode )
+#else
hunk ./include/HsBase.h 469
+#endif
hunk ./include/HsBase.h 472
-  return mkdir(pathName);
+  return _wmkdir(pathName);
+#elif HAVE_WMKDIR
+  return wmkdir(pathName,mode);
hunk ./include/HsBase.h 481
+#if defined(_MSC_VER) || defined(__MINGW32__) || defined(_WIN32) || HAVE_W=
STAT || HAVE_WLSTAT
+__hscore_lstat( const wchar_t *fname, struct stat *st )
+#else
hunk ./include/HsBase.h 485
+#endif
hunk ./include/HsBase.h 488
+#if HAVE_WLSTAT
+  return wlstat(fname, st);
+#else
hunk ./include/HsBase.h 492
+#endif
+#else
+#if defined(_MSC_VER) || defined(__MINGW32__) || defined(_WIN32)
+  return _wstat(fname, st);
+#elif HAVE_WSTAT
+  return wstat(fname, st);
hunk ./include/HsBase.h 501
+#endif
hunk ./include/HsBase.h 534
+#if defined(_MSC_VER) || defined(__MINGW32__) || defined(_WIN32)
+INLINE wchar_t *
+__hscore_d_name( struct _wdirent* d  )
+#elif HAVE_WDIRENT
+INLINE wchar_t *
+__hscore_d_name( struct wdirent* d )
+#else
hunk ./include/HsBase.h 543
+#endif
hunk ./include/HsBase.h 706
+#if defined(__MINGW32__) || HAVE_WOPEN
+INLINE int __hscore_open(wchar_t *file, int how, mode_t mode) {
+#else
hunk ./include/HsBase.h 710
+#endif
hunk ./include/HsBase.h 713
-	  return _sopen(file,how,_SH_DENYRW,mode);
+	  return _wsopen(file,how,_SH_DENYRW,mode);
hunk ./include/HsBase.h 715
-	  return _sopen(file,how,_SH_DENYWR,mode);
+	  return _wsopen(file,how,_SH_DENYWR,mode);
+#elif HAVE_WOPEN
+	return wopen(file,how,mode);
hunk ./include/HsBase.h 731
+#if defined(_MSC_VER) || defined(__MINGW32__) || defined(_WIN32) || HAVE_W=
STAT
+INLINE int __hscore_stat(wchar_t *file, struct stat *buf) {
+#if defined(_MSC_VER) || defined(__MINGW32__) || defined(_WIN32)
+	return (_wstat(file,buf));
+#else
+	return (wstat(file,buf));
+#endif
+}
+#else
hunk ./include/HsBase.h 743
+#endif
hunk ./include/dirUtils.h 10
+#if defined(_MSC_VER) || defined(__MINGW32__) || defined(_WIN32) || HAVE_W=
RENAME
+extern int __hscore_renameFile(wchar_t *src, wchar_t *dest);
+#else
hunk ./include/dirUtils.h 14
+#endif
hunk ./include/dirUtils.h 21
-				  char*  pszPath);
+				  wchar_t*  pszPath);
hunk ./include/runProcess.h 31
-extern ProcHandle runProcess( char *cmd, =

-			      char *workingDirectory, void *environment, =

+extern ProcHandle runProcess( wchar_t *cmd, =

+			      wchar_t *workingDirectory, void *environment, =

hunk ./include/runProcess.h 35
-extern ProcHandle runInteractiveProcess( char *cmd, =

-					 char *workingDirectory, =

+extern ProcHandle runInteractiveProcess( wchar_t *cmd, =

+					 wchar_t *workingDirectory, =

}

[fix typo in "Wide" API support
shelarcy <shelarcy@gmail.com>**20070425040843] {
hunk ./System/Posix/Internals.hs 505
-foreign import ccall unsafe "HsBase.h wlink"
+foreign import ccall unsafe "HsBase.h link"
}

Context:

[Bump version number to 2.1.1
Ian Lynagh <igloo@earth.li>**20070422163350] =

[Some people (e.g. binary) are using the stg_ names, so revert the change t=
o hs_
Ian Lynagh <igloo@earth.li>**20070422162751
 They probably shouldn't be, but it's simplest not to change them for now.
] =

[fix ugly uses of memcpy foreign import inside ST
Simon Marlow <simonmar@microsoft.com>**20070405083758
 fixes cg026
] =

[Convert some fd's to CInts on Windows
Ian Lynagh <igloo@earth.li>**20070404235132] =

[stg_* -> hs_*
Ian Lynagh <igloo@earth.li>**20070405000723] =

[HsByteArray doesn't exist
Ian Lynagh <igloo@earth.li>**20070404234642] =

[Don't use Fd/FD in foreign decls
Ian Lynagh <igloo@earth.li>**20070404164305
 Using CInt makes it much easier to verify that it is right, and we won't
 get caught out by possible newtype switches between CInt/Int.
] =

[HsByteArray doesn't exist
Ian Lynagh <igloo@earth.li>**20070404155748] =

[MERGED: Fix C/Haskell type mismatches
Ian Lynagh <igloo@earth.li>**20070404144220] =

[MERGED: Fix type mismatches between foreign imports and HsBase.h
Ian Lynagh <igloo@earth.li>**20070404135908] =

[Function crossMapP for fixing desugaring of comprehensions
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070402082906
 =

 Merge into 6.6 branch.
] =

[Fix the type of wgencat
Ian Lynagh <igloo@earth.li>**20070329164223] =

[fix strictness of foldr/build rule for take, see #1219
Simon Marlow <simonmar@microsoft.com>**20070327103941] =

[Prevent duplication of unsafePerformIO on a multiprocessor
Simon Marlow <simonmar@microsoft.com>**20070306145424
 Fixes #986.  The idea is to add a new operation
 =

   noDuplicate :: IO ()
 =

 it is guaranteed that if two threads have executed noDuplicate, then
 they are not duplicating any computation.
 =

 We now provide two new unsafe operations:
 =

 unsafeDupablePerformIO    :: IO a -> a
 unsafeDupableInterleaveIO :: IO a -> IO a
 =

 which are equivalent to the old unsafePerformIO and unsafeInterleaveIO
 respectively.  The new versions of these functions are defined as:
 =

 unsafePerformIO    m =3D unsafeDupablePerformIO (noDuplicate >> m)
 unsafeInterleaveIO m =3D unsafeDupableInterleaveIO (noDuplicate >> m)
] =

[Fixed PArr.dropP
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070222032405
 - Thanks to Audrey Tang for the bug report
] =

[GHC.PArr: add bounds checking
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070302053224] =

[PArr: fixed permutations
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070305055807] =

[copyBytes copies bytes, not elements; fixes trac #1203
Ian Lynagh <igloo@earth.li>**20070312113555] =

[fix race condition in prodServiceThread
Simon Marlow <simonmar@microsoft.com>**20070307134330
 See #1187
] =

[MERGED: Keep the same FD in both halves of a duplex handle when dup'ing
Ian Lynagh <igloo@earth.li>**20070220141712
 Tue Feb 20 14:10:39 GMT 2007  Ian Lynagh <igloo@earth.li>
   Otherwise we only close one of the FDs when closing the handle.
   Fixes trac #1149.
] =

[fix for hashString, from Jan-Willem Maessen (see #1137)
Simon Marlow <simonmar@microsoft.com>**20070215094304
 =

] =

[fix to getUSecOfDay(): arithmetic was overflowing
Simon Marlow <simonmar@microsoft.com>**20070214161719] =

[The Windows counterpart to 'wrapround of thread delays'
Ian Lynagh <igloo@earth.li>**20070209173510] =

[wrapround of thread delays
Neil Davies <SemanticPhilosopher@gmail.com>**20070129160519
 =

   * made the wrapround of the underlying O/S occur before the wrapround
     of the delayed threads by making threads delay in microseconds since
     O/S epoch (1970 - Unix, 1601 - Windows) stored in Word64.
   * removed redundant calls reading O/S realtime clock
   * removed rounding to 1/50th of sec for timers
   * Only for Unix version of scheduler.
] =

[dos2unix
Simon Marlow <simonmar@microsoft.com>**20061204095439] =

[fix threadDelay
Simon Marlow <simonmar@microsoft.com>**20070117091702
 In "Add support for the IO manager thread" I accidentally spammed part
 of "Make sure the threaded threadDelay sleeps at least as long as it
 is asked", which is why the ThreadDelay001 test has been failing.
] =

[Use static inline rather than extern inline/inline
Ian Lynagh <igloo@earth.li>**20070205203628
 I understand this is more portable, and it also fixes warnings when
 C things we are wrapping are themselves static inlines (which FD_ISSET
 is on ppc OS X).
] =

[add doc pointers to Foldable
Ross Paterson <ross@soi.city.ac.uk>**20070202110931
 =

 Could be applied to STABLE.
] =

[Don't require GHC/Prim.hs when booting from HC files
Ian Lynagh <igloo@earth.li>**20070119135114] =

[Added examples, more detailed documentation to Data.List Extracting sublis=
ts functions
Andriy Palamarchuk <apa3a@yahoo.com>**20061204164710] =

[Fix crash with   (minBound :: Int*) `div (-1)   as result is maxBound + 1.
Ian Lynagh <igloo@earth.li>**20070115142005] =

[update section on "blocking"
Simon Marlow <simonmar@microsoft.com>**20070116124328] =

[don't try to compile this on Unix
Simon Marlow <simonmar@microsoft.com>**20061204095427] =

[Add support for the IO manager thread on Windows
Simon Marlow <simonmar@microsoft.com>**20061201152042
 Fixes #637.  The test program in that report now works for me with
 -threaded, but it doesn't work without -threaded (I don't know if
 that's new behaviour or not, though).
] =

[documentation for installHandler
Simon Marlow <simonmar@microsoft.com>**20061205154927
 merge to 6.6
] =

[Fix missing comma in Fractional documentation
Alec Berryman <alec@thened.net>**20061201173237] =

[Make sure the threaded threadDelay sleeps at least as long as it is asked =
to
Ian Lynagh <igloo@earth.li>**20061128204807] =

[Update documentation for hWaitForInput
Simon Marlow <simonmar@microsoft.com>**20061107111430
 See #972
 Merge to 6.6 branch.
] =

[`par` should be infixr 0
Simon Marlow <simonmar@microsoft.com>**20061027130800
 Alas, I didn't spot this due to lack of testing, and the symptom is
 that an expression like x `par` y `seq z will have exactly the wrong
 parallelism properties.  The workaround is to add parantheses.
 =

 I think we could push this to the 6.6 branch.
] =

[TAG 6.6 release
Ian Lynagh <igloo@earth.li>**20061011124740] =

Patch bundle hash:
a39cd956fcc335af2e2f0189a76096cb6db538b8

--=_--

.


