unicode-data-scripts 0.2.0 → 0.2.0.1
raw patch · 5 files changed
+25/−10 lines, 5 filesdep ~base
Dependency ranges changed: base
Files
- Changelog.md +4/−0
- lib/Unicode/Char/General/Scripts.hs +5/−3
- test/Main.hs +10/−1
- test/Unicode/Char/General/ScriptsSpec.hs +5/−3
- unicode-data-scripts.cabal +1/−3
Changelog.md view
@@ -1,5 +1,9 @@ # Changelog +## 0.2.0.1 (December 2022)++- Fix [Unicode scripts handling on big-endian architectures](https://github.com/composewell/unicode-data/issues/97).+ ## 0.2.0 (September 2022) - Update to [Unicode 15.0.0](https://www.unicode.org/versions/Unicode15.0.0/).
lib/Unicode/Char/General/Scripts.hs view
@@ -20,6 +20,8 @@ ) where +#include "MachDeps.h"+ import Data.Char (chr) import Data.List.NonEmpty (NonEmpty) import GHC.Exts@@ -30,7 +32,7 @@ import GHC.Exts (word32ToWord#) #endif #ifdef WORDS_BIGENDIAN-import GHC.Exts (byteSwap32#)+import GHC.Exts (byteSwap32#, narrow32Word#) #endif import qualified Unicode.Internal.Char.Scripts as S@@ -62,9 +64,9 @@ getRawCodePoint k# = #ifdef WORDS_BIGENDIAN #if MIN_VERSION_base(4,16,0)- byteSwap32# (word32ToWord# (indexWord32OffAddr# addr# k#));+ narrow32Word# (byteSwap32# (word32ToWord# (indexWord32OffAddr# addr# k#))); #else- byteSwap32# (indexWord32OffAddr# addr# k#);+ narrow32Word# (byteSwap32# (indexWord32OffAddr# addr# k#)); #endif #elif MIN_VERSION_base(4,16,0) word32ToWord# (indexWord32OffAddr# addr# k#);
test/Main.hs view
@@ -1,1 +1,10 @@-{-# OPTIONS_GHC -F -pgmF hspec-discover #-}+module Main where++import Test.Hspec+import qualified Unicode.Char.General.ScriptsSpec as Scripts++main :: IO ()+main = hspec spec++spec :: Spec+spec = describe "Unicode.Char.General.Scripts" Scripts.spec
test/Unicode/Char/General/ScriptsSpec.hs view
@@ -4,6 +4,8 @@ ( spec ) where +#include "MachDeps.h"+ import Data.Foldable (traverse_) import Test.Hspec import qualified Unicode.Char.General.Scripts as UScripts@@ -19,7 +21,7 @@ import GHC.Exts (word32ToWord#) #endif #ifdef WORDS_BIGENDIAN-import GHC.Exts (byteSwap32#)+import GHC.Exts (byteSwap32#, narrow32Word#) #endif {- [NOTE]@@ -177,9 +179,9 @@ getRawCodePoint k# = #ifdef WORDS_BIGENDIAN #if MIN_VERSION_base(4,16,0)- byteSwap32# (word32ToWord# (indexWord32OffAddr# addr# k#));+ narrow32Word# (byteSwap32# (word32ToWord# (indexWord32OffAddr# addr# k#))); #else- byteSwap32# (indexWord32OffAddr# addr# k#);+ narrow32Word# (byteSwap32# (indexWord32OffAddr# addr# k#)); #endif #elif MIN_VERSION_base(4,16,0) word32ToWord# (indexWord32OffAddr# addr# k#);
unicode-data-scripts.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.2 name: unicode-data-scripts-version: 0.2.0+version: 0.2.0.1 synopsis: Unicode characters scripts description: @unicode-data-scripts@ provides Haskell APIs to access the Unicode@@ -94,8 +94,6 @@ , hspec >= 2.0 && < 2.11 , unicode-data , unicode-data-scripts- build-tool-depends:- hspec-discover:hspec-discover >= 2.0 && < 2.11 default-language: Haskell2010 benchmark bench