Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package ghc-language-c for openSUSE:Factory checked in at 2024-02-01 18:05:11 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ghc-language-c (Old) and /work/SRC/openSUSE:Factory/.ghc-language-c.new.1815 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-language-c" Thu Feb 1 18:05:11 2024 rev:10 rq:1143197 version:0.9.3 Changes: -------- --- /work/SRC/openSUSE:Factory/ghc-language-c/ghc-language-c.changes 2023-11-23 21:43:08.268993343 +0100 +++ /work/SRC/openSUSE:Factory/.ghc-language-c.new.1815/ghc-language-c.changes 2024-02-01 18:05:51.220102227 +0100 @@ -1,0 +2,8 @@ +Sat Jan 20 15:44:41 UTC 2024 - Peter Simons <[email protected]> + +- Update language-c to version 0.9.3. + Upstream has renamed and modified the change log file(s) in this + release. Unfortunately, the automatic updater cannot reliable + determine relevant entries for this release. + +------------------------------------------------------------------- Old: ---- language-c-0.9.2.tar.gz language-c.cabal New: ---- language-c-0.9.3.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ghc-language-c.spec ++++++ --- /var/tmp/diff_new_pack.VsmnUC/_old 2024-02-01 18:05:51.828124253 +0100 +++ /var/tmp/diff_new_pack.VsmnUC/_new 2024-02-01 18:05:51.828124253 +0100 @@ -1,7 +1,7 @@ # # spec file for package ghc-language-c # -# Copyright (c) 2023 SUSE LLC +# Copyright (c) 2024 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -20,13 +20,12 @@ %global pkgver %{pkg_name}-%{version} %bcond_with tests Name: ghc-%{pkg_name} -Version: 0.9.2 +Version: 0.9.3 Release: 0 Summary: Analysis and generation of C code License: BSD-3-Clause URL: https://hackage.haskell.org/package/%{pkg_name} Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{version}.tar.gz -Source1: https://hackage.haskell.org/package/%{pkg_name}-%{version}/revision/1.cabal#/%{pkg_name}.cabal BuildRequires: alex BuildRequires: ghc-Cabal-devel BuildRequires: ghc-array-devel @@ -86,7 +85,6 @@ %prep %autosetup -n %{pkg_name}-%{version} -cp -p %{SOURCE1} %{pkg_name}.cabal %build %ghc_lib_build @@ -107,7 +105,7 @@ %license LICENSE %files devel -f %{name}-devel.files -%doc AUTHORS AUTHORS.c2hs ChangeLog README +%doc AUTHORS AUTHORS.c2hs ChangeLog.md README.md %files -n ghc-%{pkg_name}-doc -f ghc-%{pkg_name}-doc.files %license LICENSE ++++++ language-c-0.9.2.tar.gz -> language-c-0.9.3.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/language-c-0.9.2/ChangeLog new/language-c-0.9.3/ChangeLog --- old/language-c-0.9.2/ChangeLog 2023-01-10 14:47:01.000000000 +0100 +++ new/language-c-0.9.3/ChangeLog 1970-01-01 01:00:00.000000000 +0100 @@ -1,173 +0,0 @@ -# Changelog - -## WIP - -## 0.9.2 - -- Add support for 128 bit builtin integer types - -## 0.9.1 - - - Support parsing an empty list of clobbers after a colon in `asm` statements - -## 0.9.0.2 - - - Correct lower bound on GHC - -## 0.9.0.1 - - - Scrap dependency on syb - -Thanks to @vmchale - -## 0.9 - - Make `Trav` a monad transformer - - Add `runTravTWithTravState` - - Tests now use Cabal-3 - - Implement alignment calculation and correct size calculation - - Add `Show` instance for `Type` - - Add machine descriptions for x86_64 and armv7l - - Small correction in output of prettyprinter - - Allow zeros as line numbers in preprocessed directives - -Thanks to @aweinstock314, @ersran9, @expipiplus1, @jkoppel, @trofi and @visq - -Changes since 0.7.0 -========================================================================== - -Wed May 23 07:08:02 2018 +0200 - Support IEC 60559 types and literals. Closes #52. - -Wed May 16 07:08:15 2018 +0200 - introduce flag for optional IEC 60559 type support (see #43) - -Wed May 16 06:36:04 2018 +0200 - WIP: towards a complete Export (#51) - -Thu Feb 22 13:22:50 2018 -0500 - [syntax] GHC.Generics.Generic and Control.DeepSeq.NFData instances (#49) - (.cabal) drop splitBase flag - -Tue Feb 20 08:34:39 2018 +0300 - Selectively hide Prelude.<>: GHC 8.4 compat (#45) - -Tue Feb 20 00:09:16 2018 -0500 - (Analysis) Minimal support for __float128 (#47) - -Sat Nov 25 08:59:59 2017 +0100 - Consider builtin_convertvector from #34 for pretty printing - -Sat Nov 25 00:46:33 2017 -0600 - add support for _Float128 (#41) - -Changes since 0.6.0 -========================================================================== -Mon Jul 31 2017 - Improve TypeCheck output (#31) - -Sun Jul 30 2017 - * Add `__float128` (fixes #33) - -Mon Maz 22 2017 - * Support clangâs __builtin_convertvector (Fixes #34) - -Wed Mar 8 2017 - * Move file and parent information to new datatype FilePosition for performance reasons - -Changes since 0.5.0 -========================================================================== -Thu Feb 23 2017 - * Make gccParseCPPArgs grab the arg to -MF -MT and -MQ -Wed Feb 15 2017 - * In enums, allow multiple attribute specifiers per enumerator -Tue Feb 21 2017 - * Allow typedef redefinition if it denotes the same type -Tue Feb 21 2017 - * Change TypeDefRef to store Type, not Maybe Type -Tue Feb 14 2017 - * Parse (and ignore) Clang __attribute__((availability(id=major.minor.rev))) -Sun Sep 11 2016 - * Add __builtin_bswap32/64. -Wed Jun 22 2016 - * Add '_Alignof' to Lexer.x (fixes #7) -Mon Jun 27 2016 - * Updates for C11 (part 1) - * _Nullable and _Nonnull support as well as Warnings/lint fixes provided by Anthony Cowley (https://github.com/acowley) -Wed Mar 16 2016 - * Consider storage specifier "ThreadSpec" for global and local declarations -Tue Mar 15 2016 - * Support C11 _NoReturn, genearlize is_inline to FunSpecs (Syntax) / FunAttrs (SemRep) - -Changes since 0.4.3 -========================================================================== -Wed Mar 2 2016 - * Add direct base type BaseInt128 (complements previous __int128 patch) - [email protected] -Sun Feb 28 2016 - * Parse gcc-specific __int128 type -Thu Dec 4 2014 - * Scott Kovach <[email protected]>: added derived Eq,Ord instances to NodeInfo - -Changes since 0.4.2 -========================================================================== -Sat Jan 11 2014 - * Allow unicode characters in string/char literals and filenames -Mon Oct 27 2014 - * macos-attributes -Tue Aug 13 2013 - * Do not derive Error instances for newtypes (type parameter has non-parametric role) -Mon Aug 12 2013 - * Fix bug caused by applying posFile to nopos (reported by Mikhail Sosonkin) - -Changes since 0.4.1 -========================================================================== -Tue Mar 19 2013 - * TypeCheck: Return Left str instead of fail str (do not rely on MonadError instance of Either) - * Improve printing of SUERefs and Ident -Thu Feb 28 2013 - * Fix parsing and printing of octal character escapes. -Tue Jun 12 2012 - * Export Annotated type class from AST module -Wed Aug 24 2012 - * Patch for alex-3.0 - -Changes 0.3.1 - 0.4.1 -========================================================================== -Tue Aug 16 2011: - * Port to ghc-7.2 -Fr April 15 2011: Alexander Bernauer <[email protected]> - * Show instances (popular request) for AST types, DumpAst demo - -Changes 0.3 - 0.3.1 -========================================================================== -Thu Aug 21 [email protected] - * add aliases for exposed parsers, in order to document them - -Fri Aug 15 [email protected] - * Remove NameMap from Data.Name. We will do this right when neccessary. - * Parser public API: expose parsers and the Parser Monad - * ParserMonad: Return updated name supply when executing parser - * Parser: Expose expression, statement, declaration and file parsers - * Data: Add newNameSupply ~ (namesStartingFrom 0) - -Thu Aug 14 17:13:29 CEST 2008 [email protected] - * Add a utility function to create a "blank" set of cpp arguments. - * Make that analysis traversal monad abstract. - * Export the type synonym "Register" (and bump version) - -Wed Aug 13 12:00:57 CEST 2008 [email protected] - * add Data.Position: internalIdentAt - - -Old Changes -========================================================================== - -Mon Jun 9 23:12:46 CEST 2008 [email protected] - * License switched to 3-clause BSD - $ -- In accordance with the original authors, Language.C is now licensed as BSD-3. - See: - http://haskell.org/pipermail/c2hs/2008-June/000833.html - http://haskell.org/pipermail/c2hs/2008-June/000834.html - http://haskell.org/pipermail/c2hs/2008-June/000835.html - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/language-c-0.9.2/ChangeLog.md new/language-c-0.9.3/ChangeLog.md --- old/language-c-0.9.2/ChangeLog.md 1970-01-01 01:00:00.000000000 +0100 +++ new/language-c-0.9.3/ChangeLog.md 2001-09-09 03:46:40.000000000 +0200 @@ -0,0 +1,192 @@ +# Changelog + +## 0.9.3 + +- Add support for `__builtin_bit_cast` to support clang toolchain, + enabling builds with GHC 9.4+ on Windows. + +## 0.9.2 + +- Add support for 128 bit builtin integer types + +## 0.9.1 + +- Support parsing an empty list of clobbers after a colon in `asm` statements + +## 0.9.0.2 + +- Correct lower bound on GHC + +## 0.9.0.1 + +- Scrap dependency on syb + +Thanks to @vmchale + +## 0.9 + +- Make `Trav` a monad transformer +- Add `runTravTWithTravState` +- Tests now use Cabal-3 +- Implement alignment calculation and correct size calculation +- Add `Show` instance for `Type` +- Add machine descriptions for x86_64 and armv7l +- Small correction in output of prettyprinter +- Allow zeros as line numbers in preprocessed directives + +Thanks to @aweinstock314, @ersran9, @expipiplus1, @jkoppel, @trofi and @visq + +## Changes since 0.7.0 + +Wed May 23 07:08:02 2018 +0200 + * Support IEC 60559 types and literals. Closes #52. + +Wed May 16 07:08:15 2018 +0200 + * introduce flag for optional IEC 60559 type support (see #43) + +Wed May 16 06:36:04 2018 +0200 + * WIP: towards a complete Export (#51) + +Thu Feb 22 13:22:50 2018 -0500 + * [syntax] GHC.Generics.Generic and Control.DeepSeq.NFData instances (#49) + (.cabal) drop splitBase flag + +Tue Feb 20 08:34:39 2018 +0300 + * Selectively hide Prelude.<>: GHC 8.4 compat (#45) + +Tue Feb 20 00:09:16 2018 -0500 + * (Analysis) Minimal support for `__float128` (#47) + +Sat Nov 25 08:59:59 2017 +0100 + * Consider builtin_convertvector from #34 for pretty printing + +Sat Nov 25 00:46:33 2017 -0600 + * add support for `_Float128` (#41) + +## Changes since 0.6.0 + +Mon Jul 31 2017 + * Improve TypeCheck output (#31) + +Sun Jul 30 2017 + * Add `__float128` (fixes #33) + +Mon Maz 22 2017 + * Support clangâs `__builtin_convertvector` (Fixes #34) + +Wed Mar 8 2017 + * Move file and parent information to new datatype FilePosition for performance reasons + +## Changes since 0.5.0 + +Thu Feb 23 2017 + * Make gccParseCPPArgs grab the arg to -MF -MT and -MQ + +Wed Feb 15 2017 + * In enums, allow multiple attribute specifiers per enumerator + +Tue Feb 21 2017 + * Allow typedef redefinition if it denotes the same type + +Tue Feb 21 2017 + * Change TypeDefRef to store Type, not Maybe Type + +Tue Feb 14 2017 + * Parse (and ignore) Clang __attribute__((availability(id=major.minor.rev))) + +Sun Sep 11 2016 + * Add `__builtin_bswap32/64`. + +Wed Jun 22 2016 + * Add `_Alignof` to Lexer.x (fixes #7) + +Mon Jun 27 2016 + * Updates for C11 (part 1) + * `_Nullable` and `_Nonnull` support as well as Warnings/lint fixes provided by Anthony Cowley (https://github.com/acowley) + +Wed Mar 16 2016 + * Consider storage specifier "ThreadSpec" for global and local declarations + +Tue Mar 15 2016 + * Support C11 `_NoReturn`, genearlize is_inline to FunSpecs (Syntax) / FunAttrs (SemRep) + +## Changes since 0.4.3 + +Wed Mar 2 2016 + * Add direct base type BaseInt128 (complements previous `__int128` patch) + [email protected] + +Sun Feb 28 2016 + * Parse gcc-specific `__int128` type + +Thu Dec 4 2014 + * Scott Kovach <[email protected]>: added derived Eq,Ord instances to NodeInfo + +## Changes since 0.4.2 + +Sat Jan 11 2014 + * Allow unicode characters in string/char literals and filenames + +Mon Oct 27 2014 + * macos-attributes + +Tue Aug 13 2013 + * Do not derive Error instances for newtypes (type parameter has non-parametric role) + +Mon Aug 12 2013 + * Fix bug caused by applying posFile to nopos (reported by Mikhail Sosonkin) + +## Changes since 0.4.1 + +Tue Mar 19 2013 + * TypeCheck: Return Left str instead of fail str (do not rely on MonadError instance of Either) + * Improve printing of SUERefs and Ident + +Thu Feb 28 2013 + * Fix parsing and printing of octal character escapes. + +Tue Jun 12 2012 + * Export Annotated type class from AST module + +Wed Aug 24 2012 + * Patch for alex-3.0 + +## Changes 0.3.1 - 0.4.1 + +Tue Aug 16 2011: + * Port to ghc-7.2 + +Fri Apr 15 2011: Alexander Bernauer <[email protected]> + * Show instances (popular request) for AST types, DumpAst demo + +## Changes 0.3 - 0.3.1 + +Thu Aug 21 [email protected] + * add aliases for exposed parsers, in order to document them + +Fri Aug 15 [email protected] + * Remove NameMap from Data.Name. We will do this right when neccessary. + * Parser public API: expose parsers and the Parser Monad + * ParserMonad: Return updated name supply when executing parser + * Parser: Expose expression, statement, declaration and file parsers + * Data: Add newNameSupply ~ (namesStartingFrom 0) + +Thu Aug 14 17:13:29 CEST 2008 [email protected] + * Add a utility function to create a "blank" set of cpp arguments. + * Make that analysis traversal monad abstract. + * Export the type synonym "Register" (and bump version) + +Wed Aug 13 12:00:57 CEST 2008 [email protected] + * add Data.Position: internalIdentAt + +## Old Changes + +Mon Jun 9 23:12:46 CEST 2008 [email protected] + * License switched to 3-clause BSD + $ +- In accordance with the original authors, Language.C is now licensed as BSD-3. + See: + http://haskell.org/pipermail/c2hs/2008-June/000833.html + http://haskell.org/pipermail/c2hs/2008-June/000834.html + http://haskell.org/pipermail/c2hs/2008-June/000835.html + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/language-c-0.9.2/README new/language-c-0.9.3/README --- old/language-c-0.9.2/README 2023-01-10 14:47:01.000000000 +0100 +++ new/language-c-0.9.3/README 1970-01-01 01:00:00.000000000 +0100 @@ -1,66 +0,0 @@ -= Language.C = - -Language.C is a parser and pretty-printer framework for C11 and the extensions of gcc. - -See http://visq.github.io/language-c/ - -== Build and Install == - -cabal install - --- or -- - -runhaskell Setup.hs configure FLAGS -runhaskell Setup.hs build -runhaskell Setup.hs install - -Provide the set of flags passing - --flags="<flags-seperated-by-space>" -to configure. - -== Compatibility == - -Tested with GHC 8.0, 8.2, 8.4, 8.6, 8.8 and 8.10 - -It is recommended to use the most recent platform release: http://hackage.haskell.org/platform/. - -== C Language Compatibility == - -Currently unsupported C11 constructs: - - static assertion 6.7.10 (_Static_assert) - - generic selection 6.5.1.1 (_Generic) - - _Atomic, _Alignas, _Thread_local - - Universal character names - -Currently unsupported GNU C extensions: - - __auto_type - - __builtin_offsetof - char a[__builtin_offsetof (struct S, sa->f) - - _Decimal32 - - Extended assembler - __asm__ __volatile__ ("" : : : ); - __asm__ goto ("" : : : : label); - - __attribute__((packed)): types featuring this attribute may have an - incorrect size or alignment calculated. - -IEC 60559: - Since language-c-0.8, extended floating point types are supported (gcc 7 feature). Package maintainers may decide to disable these types (flag iecFpExtension) to work around the fact that the _Float128 type is redefined by glibc >= 2.26 if gcc < 7 is used for preprocessing: - /* The type _Float128 exists only since GCC 7.0. */ - # if !__GNUC_PREREQ (7, 0) || defined __cplusplus - typedef __float128 _Float128; - # endif - -== Sources == - -see src/README - -== Examples == - -A couple of small examples are available in /examples - -== Testing == - -A couple of regression tests can be run via -> cd test/harness; make - -For more tests, see test/README. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/language-c-0.9.2/README.md new/language-c-0.9.3/README.md --- old/language-c-0.9.2/README.md 1970-01-01 01:00:00.000000000 +0100 +++ new/language-c-0.9.3/README.md 2001-09-09 03:46:40.000000000 +0200 @@ -0,0 +1,43 @@ +# Language.C + +Language.C is a parser and pretty-printer framework for C11 and the extensions of gcc. + +See http://visq.github.io/language-c/ + +## C Language Compatibility + +Currently unsupported C11 constructs: + - static assertion 6.7.10 (`_Static_assert`) + - generic selection 6.5.1.1 (`_Generic`) + - `_Atomic`, `_Alignas`, `_Thread_local` + - Universal character names + +Currently unsupported GNU C extensions: + - `__auto_type` + - `__builtin_offsetof` + `char a[__builtin_offsetof (struct S, sa->f)` + - `_Decimal32` + - Extended assembler + `__asm__ __volatile__ ("" : : : )`; + `__asm__ goto ("" : : : : label)`; + - `__attribute__((packed))`: types featuring this attribute may have an + incorrect size or alignment calculated. + +### IEC 60559: + +Since `language-c-0.8`, extended floating point types are supported (gcc 7 feature). Package maintainers may decide to disable these types (flag `iecFpExtension`) to work around the fact that the `_Float128` type is redefined by glibc >= 2.26 if gcc < 7 is used for preprocessing: + +``` + /* The type _Float128 exists only since GCC 7.0. */ + # if !__GNUC_PREREQ (7, 0) || defined __cplusplus + typedef __float128 _Float128; + # endif +``` + +## Examples + +A couple of small examples are available in `examples`. + +## Testing + +See `test/README`. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/language-c-0.9.2/language-c.cabal new/language-c-0.9.3/language-c.cabal --- old/language-c-0.9.2/language-c.cabal 2023-01-10 14:47:01.000000000 +0100 +++ new/language-c-0.9.3/language-c.cabal 2001-09-09 03:46:40.000000000 +0200 @@ -1,123 +1,132 @@ -Name: language-c -Version: 0.9.2 -Cabal-Version: >= 1.10 -Build-Type: Simple -License: BSD3 -License-File: LICENSE -Copyright: LICENSE -Author: AUTHORS -Maintainer: [email protected] -Stability: experimental -Homepage: http://visq.github.io/language-c/ -Bug-reports: https://github.com/visq/language-c/issues/ - -Synopsis: Analysis and generation of C code -Description: Language C is a haskell library for the analysis and generation of C code. - It features a complete, well tested parser and pretty printer for all of C99 and a large - set of C11 and clang/GNU extensions. -Category: Language -Tested-With: GHC == 8.4.*, GHC == 8.6.*, GHC == 8.8.*, GHC == 8.10.*, GHC == 9.0.*, GHC == 9.2.* - -Extra-Source-Files: AUTHORS AUTHORS.c2hs ChangeLog README - src/Language/C/Parser/Lexer.x - src/Language/C/Parser/Parser.y - -Source-Repository head - type: git - location: https://github.com/visq/language-c.git - -Flag useByteStrings - Description: Use ByteString as InputStream datatype - Default: True -Flag allWarnings - Description: Turn on all warnings for building (development) - Default: False -Flag iecFpExtension - Description: Support IEC 60559 floating point extension (defines _Float128) - Default: True -Library - default-extensions: CPP, DeriveDataTypeable, DeriveGeneric, PatternGuards, BangPatterns, ExistentialQuantification, GeneralizedNewtypeDeriving, ScopedTypeVariables - Build-Depends: base >= 4.8 && < 5, - array, - containers >= 0.3, - deepseq >= 1.4.0.0 && < 1.5, - directory, - filepath, - mtl, - pretty < 1.2.0, - process - if flag(allWarnings) - if impl(ghc >= 8.0) - ghc-options: -Wall -Wno-redundant-constraints +cabal-version: 2.2 +name: language-c +version: 0.9.3 +license: BSD-3-Clause +license-file: LICENSE +copyright: LICENSE +maintainer: [email protected] +author: AUTHORS +tested-with: + ghc ==9.8.1 ghc ==9.6.4 ghc ==9.4.8 ghc ==9.2.8 ghc ==9.0.2 + ghc ==8.10.7 ghc ==8.8.4 ghc ==8.6.5 ghc ==8.4.4 ghc ==8.2.2 + ghc ==8.0.2 ghc ==7.10.3 + +homepage: https://visq.github.io/language-c/ +bug-reports: https://github.com/visq/language-c/issues/ +synopsis: Analysis and generation of C code +description: + Language C is a haskell library for the analysis and generation of C code. + It features a complete, well tested parser and pretty printer for all of C99 and a large + set of C11 and clang/GNU extensions. + +category: Language +build-type: Simple +extra-doc-files: + ChangeLog.md + README.md + AUTHORS + AUTHORS.c2hs + +source-repository head + type: git + location: https://github.com/visq/language-c.git + +flag usebytestrings + description: Use ByteString as InputStream datatype + +flag allwarnings + description: Turn on all warnings for building (development) + default: False + +flag iecfpextension + description: + Support IEC 60559 floating point extension (defines _Float128) + +library + exposed-modules: + Language.C + Language.C.Data + Language.C.Data.Position + Language.C.Data.Ident + Language.C.Data.Error + Language.C.Data.Name + Language.C.Data.Node + Language.C.Data.InputStream + Language.C.Syntax + Language.C.Syntax.AST + Language.C.Syntax.Constants + Language.C.Syntax.Ops + Language.C.Syntax.Utils + Language.C.Parser + Language.C.Pretty + Language.C.System.Preprocess + Language.C.System.GCC + Language.C.Analysis + Language.C.Analysis.ConstEval + Language.C.Analysis.Builtins + Language.C.Analysis.SemError + Language.C.Analysis.SemRep + Language.C.Analysis.DefTable + Language.C.Analysis.TravMonad + Language.C.Analysis.AstAnalysis + Language.C.Analysis.DeclAnalysis + Language.C.Analysis.Debug + Language.C.Analysis.TypeCheck + Language.C.Analysis.TypeConversions + Language.C.Analysis.TypeUtils + Language.C.Analysis.NameSpaceMap + Language.C.Analysis.MachineDescs + Language.C.Analysis.Export + + build-tool-depends: happy:happy, alex:alex + hs-source-dirs: src + other-modules: + Language.C.Data.RList + Language.C.Parser.Builtin + Language.C.Parser.Lexer + Language.C.Parser.ParserMonad + Language.C.Parser.Tokens + Language.C.Parser.Parser + + default-language: Haskell2010 + default-extensions: + CPP DeriveDataTypeable DeriveGeneric PatternGuards BangPatterns + ExistentialQuantification GeneralizedNewtypeDeriving + ScopedTypeVariables + + build-depends: + base >=4.8 && <5, + array <0.6, + containers >=0.3 && <0.8, + deepseq >=1.4.0.0 && <1.6, + directory <1.4, + filepath <1.6, + mtl <2.4, + pretty <1.2.0, + process <1.7 + + if flag(allwarnings) + if impl(ghc >=8.0) + ghc-options: -Wall -Wno-redundant-constraints + else - ghc-options: -Wall + ghc-options: -Wall + + if flag(usebytestrings) + build-depends: bytestring >=0.9.0 && <0.13 - if flag(useByteStrings) - Build-Depends: bytestring >= 0.9.0 else cpp-options: -DNO_BYTESTRING - if flag(iecFpExtension) + if flag(iecfpextension) cpp-options: -DIEC_60559_TYPES_EXT - Build-Tools: happy, alex - - Hs-Source-Dirs: src - Exposed-Modules: - -- top-level - Language.C - -- data - Language.C.Data - Language.C.Data.Position - Language.C.Data.Ident - Language.C.Data.Error - Language.C.Data.Name - Language.C.Data.Node - Language.C.Data.InputStream - -- syntax - Language.C.Syntax - Language.C.Syntax.AST - Language.C.Syntax.Constants - Language.C.Syntax.Ops - Language.C.Syntax.Utils - -- parser - Language.C.Parser - -- pretty printer - Language.C.Pretty - -- system - Language.C.System.Preprocess - Language.C.System.GCC - -- analysis [experimental] - Language.C.Analysis - Language.C.Analysis.ConstEval - Language.C.Analysis.Builtins - Language.C.Analysis.SemError - Language.C.Analysis.SemRep - Language.C.Analysis.DefTable - Language.C.Analysis.TravMonad - Language.C.Analysis.AstAnalysis - Language.C.Analysis.DeclAnalysis - Language.C.Analysis.Debug - Language.C.Analysis.TypeCheck - Language.C.Analysis.TypeConversions - Language.C.Analysis.TypeUtils - Language.C.Analysis.NameSpaceMap - Language.C.Analysis.MachineDescs - -- semrep -> code [alpha] - Language.C.Analysis.Export - Other-Modules: - Language.C.Data.RList - -- parser implementation - Language.C.Parser.Builtin - Language.C.Parser.Lexer - Language.C.Parser.ParserMonad - Language.C.Parser.Tokens - Language.C.Parser.Parser - default-language: Haskell2010 - --- test description -Test-Suite language-c-harness - type: exitcode-stdio-1.0 - main-is: test/harness/run-harness.hs - build-depends: base, directory, process, filepath +test-suite language-c-harness + type: exitcode-stdio-1.0 + main-is: test/harness/run-harness.hs default-language: Haskell2010 + build-depends: + base <5, + directory, + process, + filepath diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/language-c-0.9.2/src/Language/C/Analysis/AstAnalysis.hs new/language-c-0.9.3/src/Language/C/Analysis/AstAnalysis.hs --- old/language-c-0.9.2/src/Language/C/Analysis/AstAnalysis.hs 2023-01-10 14:47:01.000000000 +0100 +++ new/language-c-0.9.3/src/Language/C/Analysis/AstAnalysis.hs 2001-09-09 03:46:40.000000000 +0200 @@ -766,6 +766,7 @@ builtinType (CBuiltinOffsetOf _ _ _) = return size_tType builtinType (CBuiltinTypesCompatible _ _ _) = return boolType builtinType (CBuiltinConvertVector _expr ty _) = analyseTypeDecl ty +builtinType (CBuiltinBitCast ty _expr _) = analyseTypeDecl ty -- return @Just declspecs@ without @CTypedef@ if the declaration specifier contain @typedef@ hasTypeDef :: [CDeclSpec] -> Maybe [CDeclSpec] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/language-c-0.9.2/src/Language/C/Parser/Lexer.x new/language-c-0.9.3/src/Language/C/Parser/Lexer.x --- old/language-c-0.9.2/src/Language/C/Parser/Lexer.x 2023-01-10 14:47:01.000000000 +0100 +++ new/language-c-0.9.3/src/Language/C/Parser/Lexer.x 2001-09-09 03:46:40.000000000 +0200 @@ -323,10 +323,11 @@ (CTokGnuC GnuCVaArg) __builtin_va_arg (CTokGnuC GnuCOffsetof) __builtin_offsetof (CTokGnuC GnuCTyCompat) __builtin_types_compatible_p +(CTokGnuC GnuBitCast) __builtin_bit_cast (flip CTokClangC ClangBuiltinConvertVector) __builtin_convertvector -} --- Tokens: _Alignas _Alignof __alignof alignof __alignof__ __asm asm __asm__ _Atomic auto break _Bool case char __const const __const__ continue _Complex __complex__ default do double else enum extern float for _Generic goto if __inline inline __inline__ int __int128 __int128_t long _Noreturn _Nullable __nullable _Nonnull __nonnull register __restrict restrict __restrict__ return short __signed signed __signed__ sizeof static _Static_assert struct switch typedef __typeof typeof __typeof__ __thread _Thread_local __uint128 __uint128_t union unsigned void __volatile volatile __volatile__ while __label__ _Float32 _Float32x _Float64 _Float64x _Float128 __float128 _Float128x __attribute __attribute__ __extension__ __real __real__ __imag __imag__ __builtin_va_arg __builtin_offsetof __builtin_types_compatible_p __builtin_convertvector +-- Tokens: _Alignas _Alignof __alignof alignof __alignof__ __asm asm __asm__ _Atomic auto break _Bool case char __const const __const__ continue _Complex __complex__ default do double else enum extern float for _Generic goto if __inline inline __inline__ int __int128_t long _Noreturn _Nullable __nullable _Nonnull __nonnull register __restrict restrict __restrict__ return short __signed signed __signed__ sizeof static _Static_assert struct switch typedef __typeof typeof __typeof__ __thread _Thread_local __uint128 __uint128_t union unsigned void __volatile volatile __volatile__ while __label__ _Float32 _Float32x _Float64 _Float64x _Float128 __float128 _Float128x __attribute __attribute__ __extension__ __real __real__ __imag __imag__ __builtin_va_arg __builtin_offsetof __builtin_types_compatible_p __builtin_bit_cast __builtin_convertvector idkwtok ('_' : 'A' : 'l' : 'i' : 'g' : 'n' : 'a' : 's' : []) = tok 8 CTokAlignas idkwtok ('_' : 'A' : 'l' : 'i' : 'g' : 'n' : 'o' : 'f' : []) = tok 8 CTokAlignof idkwtok ('_' : 'A' : 't' : 'o' : 'm' : 'i' : 'c' : []) = tok 7 CTokAtomic @@ -356,6 +357,7 @@ idkwtok ('_' : '_' : 'a' : 't' : 't' : 'r' : 'i' : 'b' : 'u' : 't' : 'e' : '_' : '_' : []) = tok 13 (CTokGnuC GnuCAttrTok) idkwtok ('a' : 'u' : 't' : 'o' : []) = tok 4 CTokAuto idkwtok ('b' : 'r' : 'e' : 'a' : 'k' : []) = tok 5 CTokBreak +idkwtok ('_' : '_' : 'b' : 'u' : 'i' : 'l' : 't' : 'i' : 'n' : '_' : 'b' : 'i' : 't' : '_' : 'c' : 'a' : 's' : 't' : []) = tok 18 (flip CTokClangC ClangCBitCast) idkwtok ('_' : '_' : 'b' : 'u' : 'i' : 'l' : 't' : 'i' : 'n' : '_' : 'c' : 'o' : 'n' : 'v' : 'e' : 'r' : 't' : 'v' : 'e' : 'c' : 't' : 'o' : 'r' : []) = tok 23 (flip CTokClangC ClangBuiltinConvertVector) idkwtok ('_' : '_' : 'b' : 'u' : 'i' : 'l' : 't' : 'i' : 'n' : '_' : 'o' : 'f' : 'f' : 's' : 'e' : 't' : 'o' : 'f' : []) = tok 18 (CTokGnuC GnuCOffsetof) idkwtok ('_' : '_' : 'b' : 'u' : 'i' : 'l' : 't' : 'i' : 'n' : '_' : 't' : 'y' : 'p' : 'e' : 's' : '_' : 'c' : 'o' : 'm' : 'p' : 'a' : 't' : 'i' : 'b' : 'l' : 'e' : '_' : 'p' : []) = tok 28 (CTokGnuC GnuCTyCompat) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/language-c-0.9.2/src/Language/C/Parser/Parser.y new/language-c-0.9.3/src/Language/C/Parser/Parser.y --- old/language-c-0.9.2/src/Language/C/Parser/Parser.y 2023-01-10 14:47:01.000000000 +0100 +++ new/language-c-0.9.3/src/Language/C/Parser/Parser.y 2001-09-09 03:46:40.000000000 +0200 @@ -257,6 +257,7 @@ "__builtin_types_compatible_p" { CTokGnuC GnuCTyCompat _ } "__builtin_convertvector" { CTokClangC _ ClangBuiltinConvertVector } clangcversion { CTokClangC _ (ClangCVersionTok $$) } -- Clang version literal +"__builtin_bit_cast" { CTokClangC _ ClangCBitCast } "__kernel" { CTokClKernel _ } -- OpenCL kernel function "__read_only" { CTokClRdOnly _ } -- OpenCL read only qualifier "__write_only" { CTokClWrOnly _ } -- OpenCL write only qualifier @@ -1770,7 +1771,10 @@ {% withNodeInfo $1 $ CBuiltinExpr . CBuiltinTypesCompatible $3 $5 } | "__builtin_convertvector" '(' assignment_expression ',' type_name ')' - {% withNodeInfo $1 $ CBuiltinExpr . CBuiltinConvertVector $3 $5 } + {% withNodeInfo $1 $ CBuiltinExpr . CBuiltinConvertVector $3 $5 } + + | "__builtin_bit_cast" '(' type_name ',' assignment_expression ')' + {% withNodeInfo $1 $ CBuiltinExpr . CBuiltinBitCast $3 $5 } -- Generic Selection association list (C11 6.5.1.1) -- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/language-c-0.9.2/src/Language/C/Parser/Tokens.hs new/language-c-0.9.3/src/Language/C/Parser/Tokens.hs --- old/language-c-0.9.2/src/Language/C/Parser/Tokens.hs 2023-01-10 14:47:01.000000000 +0100 +++ new/language-c-0.9.3/src/Language/C/Parser/Tokens.hs 2001-09-09 03:46:40.000000000 +0200 @@ -163,6 +163,7 @@ data ClangCTok = ClangCVersionTok !ClangCVersion -- version constant from 'availability' attribute | ClangBuiltinConvertVector + | ClangCBitCast -- `__builtin_bit_cast` instance Pos CToken where posOf = fst . posLenOfTok @@ -395,6 +396,7 @@ showsPrec _ (CTokGnuC GnuCTyCompat _) = showString "__builtin_types_compatible_p" showsPrec _ (CTokClangC _ (ClangCVersionTok v)) = shows v showsPrec _ (CTokClangC _ ClangBuiltinConvertVector) = showString "__builtin_convertvector" + showsPrec _ (CTokClangC _ ClangCBitCast) = showString "__builtin_bit_cast" showsPrec _ (CTokClKernel _ ) = showString "__kernel" showsPrec _ (CTokClRdOnly _ ) = showString "__read_only" showsPrec _ (CTokClWrOnly _ ) = showString "__write_only" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/language-c-0.9.2/src/Language/C/Pretty.hs new/language-c-0.9.3/src/Language/C/Pretty.hs --- old/language-c-0.9.2/src/Language/C/Pretty.hs 2023-01-10 14:47:01.000000000 +0100 +++ new/language-c-0.9.3/src/Language/C/Pretty.hs 2001-09-09 03:46:40.000000000 +0200 @@ -473,6 +473,9 @@ pretty (CBuiltinConvertVector expr ty _) = text "__builtin_convertvector" <+> parens (pretty expr <> comma <+> pretty ty) + pretty (CBuiltinBitCast ty expr _) = + text "__builtin_bit_cast" <+> + parens (pretty ty <> comma <+> pretty expr) instance Pretty CAssignOp where pretty op = text $ case op of diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/language-c-0.9.2/src/Language/C/Syntax/AST.hs new/language-c-0.9.3/src/Language/C/Syntax/AST.hs --- old/language-c-0.9.2/src/Language/C/Syntax/AST.hs 2023-01-10 14:47:01.000000000 +0100 +++ new/language-c-0.9.3/src/Language/C/Syntax/AST.hs 2001-09-09 03:46:40.000000000 +0200 @@ -763,6 +763,7 @@ | CBuiltinOffsetOf (CDeclaration a) [CPartDesignator a] a -- ^ @(type, designator-list)@ | CBuiltinTypesCompatible (CDeclaration a) (CDeclaration a) a -- ^ @(type,type)@ | CBuiltinConvertVector (CExpression a) (CDeclaration a) a -- ^ @(expr, type)@ + | CBuiltinBitCast (CDeclaration a) (CExpression a) a -- ^ @(type, expr)@ deriving (Show, Data,Typeable, Generic {-! ,CNode ,Functor ,Annotated !-}) instance NFData a => NFData (CBuiltinThing a) @@ -1397,6 +1398,7 @@ nodeInfo (CBuiltinOffsetOf _ _ n) = nodeInfo n nodeInfo (CBuiltinTypesCompatible _ _ n) = nodeInfo n nodeInfo (CBuiltinConvertVector _ _ n) = nodeInfo n + nodeInfo (CBuiltinBitCast _ _ n) = nodeInfo n instance CNode t1 => Pos (CBuiltinThing t1) where posOf x = posOf (nodeInfo x) @@ -1409,12 +1411,15 @@ = CBuiltinTypesCompatible (fmap _f a1) (fmap _f a2) (_f a3) fmap _f (CBuiltinConvertVector a1 a2 a3) = CBuiltinConvertVector (fmap _f a1) (fmap _f a2) (_f a3) + fmap _f (CBuiltinBitCast a1 a2 a3) + = CBuiltinBitCast (fmap _f a1) (fmap _f a2) (_f a3) instance Annotated CBuiltinThing where annotation (CBuiltinVaArg _ _ n) = n annotation (CBuiltinOffsetOf _ _ n) = n annotation (CBuiltinTypesCompatible _ _ n) = n annotation (CBuiltinConvertVector _ _ n) = n + annotation (CBuiltinBitCast _ _ n) = n amap f (CBuiltinVaArg a_1 a_2 a_3) = CBuiltinVaArg a_1 a_2 (f a_3) amap f (CBuiltinOffsetOf a_1 a_2 a_3) = CBuiltinOffsetOf a_1 a_2 (f a_3) @@ -1422,6 +1427,8 @@ = CBuiltinTypesCompatible a_1 a_2 (f a_3) amap f (CBuiltinConvertVector a_1 a_2 a_3) = CBuiltinConvertVector a_1 a_2 (f a_3) + amap f (CBuiltinBitCast a_1 a_2 a_3) = + CBuiltinBitCast a_1 a_2 (f a_3) instance CNode t1 => CNode (CConstant t1) where nodeInfo (CIntConst _ n) = nodeInfo n
