Hello community,

here is the log from the commit of package ghc-split for openSUSE:Factory 
checked in at 2013-08-01 15:33:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-split (Old)
 and      /work/SRC/openSUSE:Factory/.ghc-split.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ghc-split"

Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-split/ghc-split.changes      2013-01-01 
11:59:48.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-split.new/ghc-split.changes 2013-08-01 
15:33:30.000000000 +0200
@@ -1,0 +2,10 @@
+Mon May  6 09:44:27 UTC 2013 - [email protected]
+
+- update to 0.2.2 from upstream
+* make splitting lazier (patch from Daniel Wagner)
+* allow base library version 4.7
+* new dropInnerBlanks combinator
+- update is part of Haskell Platform 2013.2
+- more transparent packaging (fewer macros) 
+
+-------------------------------------------------------------------

Old:
----
  split-0.2.1.1.tar.gz

New:
----
  split-0.2.2.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ghc-split.spec ++++++
--- /var/tmp/diff_new_pack.ldQ7UB/_old  2013-08-01 15:33:31.000000000 +0200
+++ /var/tmp/diff_new_pack.ldQ7UB/_new  2013-08-01 15:33:31.000000000 +0200
@@ -1,8 +1,7 @@
 #
-# spec file for ghc-split
+# spec file for package ghc-split
 #
-
-# Copyright (c) 2012 Herbert Graeber <[email protected]>
+# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -16,6 +15,7 @@
 # Please submit bugfixes or comments via http://bugs.opensuse.org/
 #
 
+
 %global pkg_name split
 
 %global common_summary Haskell combinator library for splitting lists
@@ -23,47 +23,56 @@
 %global common_description Combinator library and utility functions for 
splitting lists for Haskell.
 
 Name:           ghc-split
-Version:        0.2.1.1
-Release:        1
+Version:        0.2.2
+Release:        0
 Summary:        %{common_summary}
-
-Group:          System/Libraries
 License:        BSD-3-Clause
+Group:          System/Libraries
+
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 # BEGIN cabal2spec
-URL:            http://hackage.haskell.org/package/%{pkg_name}
+Url:            http://hackage.haskell.org/package/%{pkg_name}
 Source0:        
http://hackage.haskell.org/packages/archive/%{pkg_name}/%{version}/%{pkg_name}-%{version}.tar.gz
 ExclusiveArch:  %{ix86} x86_64 %{ghc_arches}
 BuildRequires:  ghc-Cabal-devel
-BuildRequires:  ghc-rpm-macros %{!?without_hscolour:hscolour}
+BuildRequires:  ghc-rpm-macros
 # END cabal2spec
 
 %description
 %{common_description}
 
+%package devel
+Summary:        Haskell %{pkg_name} library development files
+Group:          Development/Languages/Other
+Requires:       ghc-compiler
+Requires(post): ghc-compiler
+Requires(postun): ghc-compiler
+Requires:       %{name} = %{version}-%{release}
+
+%description devel
+%{common_description}
+This package contains the development files.
 
 %prep
 %setup -q -n %{pkg_name}-%{version}
 
-
 %build
 %ghc_lib_build
 
-
 %install
 %ghc_lib_install
 
+%post devel
+%ghc_pkg_recache
 
-# devel subpackage
-%ghc_devel_package
-
-%ghc_devel_description
-
-
-%ghc_devel_post_postun
-
+%postun devel
+%ghc_pkg_recache
 
-%ghc_files LICENSE
+%files -f %{name}.files
+%defattr(-,root,root,-)
+%doc LICENSE CHANGES README
 
+%files devel -f %{name}-devel.files
+%defattr(-,root,root,-)
 
 %changelog

++++++ split-0.2.1.1.tar.gz -> split-0.2.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/split-0.2.1.1/CHANGES new/split-0.2.2/CHANGES
--- old/split-0.2.1.1/CHANGES   2012-09-24 18:56:03.000000000 +0200
+++ new/split-0.2.2/CHANGES     2013-04-14 20:47:17.000000000 +0200
@@ -1,3 +1,19 @@
+* 0.2.2 (14 April 2013)
+
+  - Add 'dropInnerBlanks' combinator for dropping blank chunks between
+    consecutive delimiters while still keeping the delimiters separate.
+
+* 0.2.1.3 (28 March 2013)
+
+  - bump upper bound to allow base-4.7
+
+* 0.2.1.2 (28 January 2013)
+
+  - Patch from Daniel Wagner to make splitting lazier when using
+    keepDelimsR.  Previously nothing was output until encountering a
+    delimiter; now it can start outputting a Text chunk before
+    reaching a delimiter.
+
 * 0.2.1.1 (24 September 2012)
 
   - Update this CHANGES file with details from the past two releases.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/split-0.2.1.1/README new/split-0.2.2/README
--- old/split-0.2.1.1/README    2012-09-24 18:56:03.000000000 +0200
+++ new/split-0.2.2/README      2013-04-14 20:47:17.000000000 +0200
@@ -26,3 +26,7 @@
 
   Once the documentation has been built, you can access it by 
   pointing your browser to dist/doc/html/split/index.html.
+
+Running the tests:
+
+  cabal configure --enable-tests && cabal build && cabal test
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/split-0.2.1.1/split.cabal new/split-0.2.2/split.cabal
--- old/split-0.2.1.1/split.cabal       2012-09-24 18:56:03.000000000 +0200
+++ new/split-0.2.2/split.cabal 2013-04-14 20:47:17.000000000 +0200
@@ -1,5 +1,5 @@
 Name:                split
-Version:             0.2.1.1
+Version:             0.2.2
 Stability:           stable
 
 Description:         A collection of various methods for splitting
@@ -51,7 +51,7 @@
 
 Library
   ghc-options:       -Wall
-  build-depends:     base <4.7
+  build-depends:     base <4.8
   exposed-modules:   Data.List.Split, Data.List.Split.Internals
   default-language:  Haskell2010
   Hs-source-dirs:    src
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/split-0.2.1.1/src/Data/List/Split/Internals.hs 
new/split-0.2.2/src/Data/List/Split/Internals.hs
--- old/split-0.2.1.1/src/Data/List/Split/Internals.hs  2012-09-24 
18:56:02.000000000 +0200
+++ new/split-0.2.2/src/Data/List/Split/Internals.hs    2013-04-14 
20:47:17.000000000 +0200
@@ -89,6 +89,10 @@
 
 -- | What to do with multiple consecutive delimiters?
 data CondensePolicy = Condense         -- ^ Condense into a single delimiter.
+                    | DropBlankFields  -- ^ Keep consecutive
+                                       --   delimiters separate, but
+                                       --   don't insert blank chunks in
+                                       --   between them.
                     | KeepBlankFields  -- ^ Insert blank chunks
                                        --   between consecutive
                                        --   delimiters.
@@ -143,7 +147,6 @@
   toSplitList (Just ([],r:rs))    = Delim [] : Text [r] : splitInternal d rs
   toSplitList (Just (delim,rest)) = Delim delim : splitInternal d rest
 
--- |
 breakDelim :: Delimiter a -> [a] -> ([a],Maybe ([a],[a]))
 breakDelim (Delimiter []) xs         = ([],Just ([],xs))
 breakDelim _              []         = ([],Nothing)
@@ -161,7 +164,7 @@
               . dropInitial (initBlankPolicy s)
               . doMerge (delimPolicy s)
               . doDrop (delimPolicy s)
-              . insertBlanks
+              . insertBlanks (condensePolicy s)
               . doCondense (condensePolicy s)
 
 -- | Drop delimiters if the 'DelimPolicy' is 'Drop'.
@@ -172,27 +175,30 @@
 -- | Condense multiple consecutive delimiters into one if the
 --   'CondensePolicy' is 'Condense'.
 doCondense :: CondensePolicy -> SplitList a -> SplitList a
-doCondense KeepBlankFields ls = ls
 doCondense Condense ls = condense' ls
   where condense' [] = []
         condense' (c@(Text _) : l) = c : condense' l
         condense' l = (Delim $ concatMap fromElem ds) : condense' rest
           where (ds,rest) = span isDelim l
+doCondense _ ls = ls
 
--- | Insert blank chunks between any remaining consecutive delimiters,
---   and at the beginning or end if the first or last element is a
---   delimiter.
-insertBlanks :: SplitList a -> SplitList a
-insertBlanks [] = [Text []]
-insertBlanks (d@(Delim _) : l) = Text [] : insertBlanks' (d:l)
-insertBlanks l = insertBlanks' l
+-- | Insert blank chunks between any remaining consecutive delimiters
+--   (unless the condense policy is 'DropBlankFields'), and at the
+--   beginning or end if the first or last element is a delimiter.
+insertBlanks :: CondensePolicy -> SplitList a -> SplitList a
+insertBlanks _ [] = [Text []]
+insertBlanks cp (d@(Delim _) : l) = Text [] : insertBlanks' cp (d:l)
+insertBlanks cp l = insertBlanks' cp l
 
 -- | Insert blank chunks between consecutive delimiters.
-insertBlanks' :: SplitList a -> SplitList a
-insertBlanks' [] = []
-insertBlanks' (d1@(Delim _) : d2@(Delim _) : l) = d1 : Text [] : insertBlanks' 
(d2:l)
-insertBlanks' [d@(Delim _)] = [d, Text []]
-insertBlanks' (c : l) = c : insertBlanks' l
+insertBlanks' :: CondensePolicy -> SplitList a -> SplitList a
+insertBlanks' _ [] = []
+insertBlanks' cp@DropBlankFields (d1@(Delim _) : d2@(Delim _) : l)
+  = d1           : insertBlanks' cp (d2:l)
+insertBlanks' cp (d1@(Delim _) : d2@(Delim _) : l)
+  = d1 : Text [] : insertBlanks' cp (d2:l)
+insertBlanks' _ [d@(Delim _)] = [d, Text []]
+insertBlanks' cp (c : l) = c : insertBlanks' cp l
 
 -- | Merge delimiters into adjacent chunks according to the 'DelimPolicy'.
 doMerge :: DelimPolicy -> SplitList a -> SplitList a
@@ -211,7 +217,13 @@
 -- | Merge delimiters with adjacent chunks to the left.
 mergeRight :: SplitList a -> SplitList a
 mergeRight [] = []
-mergeRight ((Text c) : (Delim d) : l) = Text (c++d) : mergeRight l
+-- below fanciness is with the goal of laziness: we want to start returning
+-- stuff before we've necessarily discovered a delimiter, in case we're
+-- processing some infinite list with no delimiter
+mergeRight ((Text c) : l) = Text (c++d) : mergeRight lTail
+  where (d, lTail) = case l of
+                     Delim d' : l' -> (d', l')
+                     _ -> ([], l)
 mergeRight (c : l) = c : mergeRight l
 
 -- | Drop an initial blank chunk according to the given 'EndPolicy'.
@@ -320,10 +332,19 @@
 dropFinalBlank :: Splitter a -> Splitter a
 dropFinalBlank s = s { finalBlankPolicy = DropBlank }
 
+-- | Don't generate blank chunks between consecutive delimiters.
+--   For example:
+--
+-- > split (oneOf ":") "::b:::a" == ["",":","",":","b",":","",":","",":","a"]
+-- > split (dropInnerBlanks $ oneOf ":") "::b:::a" == ["", 
":",":","b",":",":",":","a"]
+dropInnerBlanks :: Splitter a -> Splitter a
+dropInnerBlanks s = s { condensePolicy = DropBlankFields }
+
 -- ** Derived combinators
 
--- | Drop all blank chunks from the output.  Equivalent to
---   @'dropInitBlank' . 'dropFinalBlank' . 'condense'@.  For example:
+-- | Drop all blank chunks from the output, and condense consecutive
+--   delimiters into one.  Equivalent to @'dropInitBlank'
+--   . 'dropFinalBlank' . 'condense'@.  For example:
 --
 -- > split (oneOf ":") "::b:::a" == ["",":","",":","b",":","",":","",":","a"]
 -- > split (dropBlanks $ oneOf ":") "::b:::a" == ["::","b",":::","a"]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/split-0.2.1.1/src/Data/List/Split.hs 
new/split-0.2.2/src/Data/List/Split.hs
--- old/split-0.2.1.1/src/Data/List/Split.hs    2012-09-24 18:56:02.000000000 
+0200
+++ new/split-0.2.2/src/Data/List/Split.hs      2013-04-14 20:47:17.000000000 
+0200
@@ -68,6 +68,7 @@
                        , condense
                        , dropInitBlank
                        , dropFinalBlank
+                       , dropInnerBlanks
 
                        -- ** Derived combinators
                        -- $derived
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/split-0.2.1.1/test/Properties.hs 
new/split-0.2.2/test/Properties.hs
--- old/split-0.2.1.1/test/Properties.hs        2012-09-24 18:56:03.000000000 
+0200
+++ new/split-0.2.2/test/Properties.hs  2013-04-14 20:47:17.000000000 +0200
@@ -12,8 +12,9 @@
 
 import           Data.Char
 import           Data.Functor
-import           Data.List                 (genericTake, group, intercalate, 
isInfixOf, isPrefixOf,
- isSuffixOf, tails)
+import           Data.List                 (genericTake, group, intercalate,
+                                            isInfixOf, isPrefixOf, isSuffixOf,
+                                            tails)
 import           Data.Maybe                (isJust)
 
 newtype Elt = Elt { unElt :: Char }
@@ -159,19 +160,19 @@
 prop_doCondense_no_consec_delims l = noConsecDelims $ doCondense Condense l
 
 prop_insBlanks_no_consec_delims :: SplitList Elt -> Bool
-prop_insBlanks_no_consec_delims l = noConsecDelims $ insertBlanks l
+prop_insBlanks_no_consec_delims l = noConsecDelims $ insertBlanks Condense l
 
 prop_insBlanks_fl_not_delim :: SplitList Elt -> Bool
 prop_insBlanks_fl_not_delim l =
-    case insertBlanks l of
+    case insertBlanks Condense l of
       [] -> True
       xs -> (not . isDelim $ head xs) && (not . isDelim $ last xs)
 
 prop_mergeL_no_delims :: SplitList Elt -> Bool
-prop_mergeL_no_delims = all (not . isDelim) . mergeLeft . insertBlanks
+prop_mergeL_no_delims = all (not . isDelim) . mergeLeft . insertBlanks Condense
 
 prop_mergeR_no_delims :: SplitList Elt -> Bool
-prop_mergeR_no_delims = all (not . isDelim) . mergeRight . insertBlanks
+prop_mergeR_no_delims = all (not . isDelim) . mergeRight . insertBlanks 
Condense
 
 getDelims :: Splitter Elt -> [Elt] -> [[Elt]]
 getDelims s l = [ d | Delim d <- splitInternal (delimiter s) l ]

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to