packages feed

crackNum 3.8 → 3.9

raw patch · 3 files changed

+12/−6 lines, 3 files

Files

CHANGES.md view
@@ -1,9 +1,13 @@ * Hackage: <http://hackage.haskell.org/package/crackNum> * GitHub:  <http://github.com/LeventErkok/crackNum/> -* Latest Hackage released version: 3.7, 2024-02-15+* Latest Hackage released version: 3.9, 2024-02-23 -### Version 3.8, Not yet released+### Version 3.9, 2024-02-23+  +  * Fix verilog input format parsing++### Version 3.8, 2024-02-21    * Add support for FP8 formats, as decribed in: https://arxiv.org/pdf/2209.05433.pdf       - E5M2: Which is essentially a synonym for f5+3
crackNum.cabal view
@@ -1,6 +1,6 @@ Cabal-version      : 2.2 Name               : crackNum-Version            : 3.8+Version            : 3.9 Synopsis           : Crack various integer and floating-point data formats Description        : Crack IEEE-754 float formats and arbitrary sized words and integers, showing the layout.                      .
src/CrackNum/Main.hs view
@@ -349,14 +349,16 @@ parseToBits inp = do      let isSkippable c = c `elem` "_-" || isSpace c -     (mbPadTo, isHex, stream) <- case map toLower (filter (not . isSkippable) inp) of+         cleanInput = map toLower (filter (not . isSkippable) inp)++     (mbPadTo, isHex, stream) <- case cleanInput of                                    '0':'x':rest -> pure (Nothing, True,  rest)                                    '0':'b':rest -> pure (Nothing, False, rest)                                    _            ->-                                     case break (`elem` "'h") inp of+                                     case break (`elem` "'h") cleanInput of                                        (pre@(_:_), '\'' : 'h' : rest) | all isDigit pre -> pure (Just (read pre), True, rest)                                        _  -> die [ "Input string must start with 0b, 0x, or N'h for decoding."-                                                 , "Received prefix: " ++ show (take 2 inp)+                                                 , "Received prefix: " ++ show (take 2 cleanInput)                                                  ]       let cvtBin '1' = pure [True]