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
* 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 **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 **20070422163350] =
[Some people (e.g. binary) are using the stg_ names, so revert the change t=
o hs_
Ian Lynagh **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 **20070405083758
fixes cg026
] =
[Convert some fd's to CInts on Windows
Ian Lynagh **20070404235132] =
[stg_* -> hs_*
Ian Lynagh **20070405000723] =
[HsByteArray doesn't exist
Ian Lynagh **20070404234642] =
[Don't use Fd/FD in foreign decls
Ian Lynagh **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 **20070404155748] =
[MERGED: Fix C/Haskell type mismatches
Ian Lynagh **20070404144220] =
[MERGED: Fix type mismatches between foreign imports and HsBase.h
Ian Lynagh **20070404135908] =
[Function crossMapP for fixing desugaring of comprehensions
Manuel M T Chakravarty **20070402082906
=
Merge into 6.6 branch.
] =
[Fix the type of wgencat
Ian Lynagh **20070329164223] =
[fix strictness of foldr/build rule for take, see #1219
Simon Marlow **20070327103941] =
[Prevent duplication of unsafePerformIO on a multiprocessor
Simon Marlow **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 **20070222032405
- Thanks to Audrey Tang for the bug report
] =
[GHC.PArr: add bounds checking
Manuel M T Chakravarty **20070302053224] =
[PArr: fixed permutations
Manuel M T Chakravarty **20070305055807] =
[copyBytes copies bytes, not elements; fixes trac #1203
Ian Lynagh **20070312113555] =
[fix race condition in prodServiceThread
Simon Marlow **20070307134330
See #1187
] =
[MERGED: Keep the same FD in both halves of a duplex handle when dup'ing
Ian Lynagh **20070220141712
Tue Feb 20 14:10:39 GMT 2007 Ian Lynagh
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 **20070215094304
=
] =
[fix to getUSecOfDay(): arithmetic was overflowing
Simon Marlow **20070214161719] =
[The Windows counterpart to 'wrapround of thread delays'
Ian Lynagh **20070209173510] =
[wrapround of thread delays
Neil Davies **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 **20061204095439] =
[fix threadDelay
Simon Marlow **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 **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 **20070202110931
=
Could be applied to STABLE.
] =
[Don't require GHC/Prim.hs when booting from HC files
Ian Lynagh **20070119135114] =
[Added examples, more detailed documentation to Data.List Extracting sublis=
ts functions
Andriy Palamarchuk **20061204164710] =
[Fix crash with (minBound :: Int*) `div (-1) as result is maxBound + 1.
Ian Lynagh **20070115142005] =
[update section on "blocking"
Simon Marlow **20070116124328] =
[don't try to compile this on Unix
Simon Marlow **20061204095427] =
[Add support for the IO manager thread on Windows
Simon Marlow **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 **20061205154927
merge to 6.6
] =
[Fix missing comma in Fractional documentation
Alec Berryman **20061201173237] =
[Make sure the threaded threadDelay sleeps at least as long as it is asked =
to
Ian Lynagh **20061128204807] =
[Update documentation for hWaitForInput
Simon Marlow **20061107111430
See #972
Merge to 6.6 branch.
] =
[`par` should be infixr 0
Simon Marlow **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 **20061011124740] =
Patch bundle hash:
a39cd956fcc335af2e2f0189a76096cb6db538b8
--=_--
.