packages feed

llvm-pretty-bc-parser 0.5.0.0 → 0.5.1.0

raw patch · 5 files changed

+22/−13 lines, 5 filesdep −binarydep −monadLibdep ~containersnew-uploaderPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependencies removed: binary, monadLib

Dependency ranges changed: containers

API changes (from Hackage documentation)

- Data.LLVM.Internal: type PGlobalAttachments = Map Symbol (Map KindMd PValMd)
+ Data.LLVM.Internal: type PGlobalAttachments = Map Symbol Map KindMd PValMd

Files

CHANGELOG.md view
@@ -1,5 +1,10 @@ # Revision history for llvm-pretty-bc-parser +## 0.5.1.0 (October 2025)++* Support parsing data layout strings that specify function pointer alignment.+* Implement `CST_CODE_STRING`, allowing the parsing of bitcode files containing strings without null terminators (as may be generated by languages other than C).+ ## 0.5.0.0 (March 2025)  * `Data.LLVM.BitCode` now defines funtions (whose names all end with
README.md view
@@ -59,9 +59,9 @@ the developers' documentation for more details and a rationale: [doc/developing.md](./doc/developing.md). Currently supported: -- GHC 9.4.5-- GHC 9.6.2-- GHC 9.8.1+- GHC 9.6.6+- GHC 9.8.4+- GHC 9.10.1  [fuzz-workflow]: https://github.com/GaloisInc/llvm-pretty-bc-parser/blob/master/.github/workflows/llvm-quick-fuzz.yml [llvm13]: https://github.com/GaloisInc/llvm-pretty-bc-parser/issues?q=is%3Aopen+is%3Aissue+label%3Allvm%2F13.0
llvm-pretty-bc-parser.cabal view
@@ -1,6 +1,6 @@ cabal-version:       2.4 Name:                llvm-pretty-bc-parser-Version:             0.5.0.0+Version:             0.5.1.0 License:             BSD-3-Clause License-file:        LICENSE Author:              Trevor Elliott <trevor@galois.com>@@ -10,7 +10,7 @@ Category:            Text Build-type:          Simple Synopsis:            LLVM bitcode parsing library-Tested-with:         GHC==9.4, GHC==9.6, GHC==9.8+Tested-with:         GHC==9.6, GHC==9.8, GHC==9.10  Description:   A parser for the LLVM bitcode file format, yielding a Module from the@@ -71,7 +71,6 @@    Build-depends:       array       >= 0.3,                        base        >= 4.8 && < 5,-                       binary      >= 0.8,                        bytestring  >= 0.10,                        containers  >= 0.4,                        fgl         >= 5.5,@@ -89,16 +88,12 @@                        -O2                        -funbox-strict-fields   Hs-source-dirs:      llvm-disasm-  Build-depends:       array                 >= 0.3,-                       base,-                       binary                >= 0.8,+  Build-depends:       base,                        bytestring,-                       containers            >= 0.4,                        fgl                   >= 5.5,                        fgl-visualize         >= 0.1,                        llvm-pretty-bc-parser,                        llvm-pretty,-                       monadLib              >= 3.7.2,                        pretty                >= 1.0.1,                        pretty-show           >= 1.6 
src/Data/LLVM/BitCode/IR/Constants.hs view
@@ -6,6 +6,7 @@  module Data.LLVM.BitCode.IR.Constants where +import           Control.Applicative ( (<|>) ) import qualified Data.LLVM.BitCode.Assert as Assert import           Data.LLVM.BitCode.Bitstream import           Data.LLVM.BitCode.Match@@ -205,6 +206,9 @@                    -> Parse (Parse Type, [Typed PValue])  parseConstantEntry t (getTy,cs) (fromEntry -> Just r) =+ let parseCString = parseField r 0 (fieldArray (fieldChar6 ||| char))+                    `mplus` parseFields r 0 (fieldChar6 ||| char)+ in  label "CONSTANTS_BLOCK" $ case recordCode r of    1 -> label "CST_CODE_SETTYPE" $ do@@ -280,13 +284,17 @@     let field = parseField r     ty     <- getTy     values <- field 0 (fieldArray char)+              <|>+              -- CST_CODE_STRING changed to be identical to CST_CODE_CSTRING in+              -- llvm commit bb8278a (4 Feb 2012, released in llvmorg-3.1.0-rc1+              -- in 18 Apr 2012) with the exception of adding a trailing null.+              parseCString     return (getTy, Typed ty (ValString values):cs)    -- [values]   9 -> label "CST_CODE_CSTRING" $ do     ty     <- getTy-    values <- parseField r 0 (fieldArray (fieldChar6 ||| char))-        `mplus` parseFields r 0 (fieldChar6 ||| char)+    values <- parseCString     return (getTy, Typed ty (ValString (values ++ [0])):cs)    -- [opcode,opval,opval]
unit-test/Tests/Instances.hs view
@@ -29,6 +29,7 @@ instance Arbitrary UnnamedMd where arbitrary = genericArbitrary uniform instance Arbitrary GlobalAlias where arbitrary = genericArbitrary uniform instance Arbitrary LayoutSpec where arbitrary = genericArbitrary uniform+instance Arbitrary FunctionPointerAlignType where arbitrary = genericArbitrary uniform instance Arbitrary Mangling where arbitrary = genericArbitrary uniform instance Arbitrary SelectionKind where arbitrary = genericArbitrary uniform instance Arbitrary lab => Arbitrary (NullResult lab) where arbitrary = genericArbitrary uniform