packages feed

http2 1.4.4 → 1.4.5

raw patch · 7 files changed

+24/−24 lines, 7 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

ChangeLog.md view
@@ -1,3 +1,7 @@+## 1.4.5++* Removing zero reset from priority queues.+ ## 1.4.4  * Fixing a bug of reverse index.
Network/HPACK/HeaderBlock/From.hs view
@@ -63,7 +63,7 @@ decodeStep (!dyntbl,!builder,_) (Literal Add naming v) = do     k <- fromNaming naming dyntbl     let h = (k,v)-        e = toEntry (k,v)+        e = toEntry h         b = builder << h     dyntbl' <- insertEntry e dyntbl     return (dyntbl',b,False)
Network/HPACK/Table/Dynamic.hs view
@@ -73,7 +73,7 @@   -- | The size of the array   , maxNumOfEntries :: !Int   -- | The current dynamic table size (defined in HPACK)-  , headerTableSize :: !Size+  , dynamicTableSize :: !Size   -- | The max dynamic table size (defined in HPACK)   , maxDynamicTableSize :: !Size   -- | The value informed by SETTINGS_HEADER_TABLE_SIZE.@@ -100,7 +100,7 @@     es <- mapM (readArray circularTable . adj maxNumOfEntries) [beg .. end]     let ts = zip [1..] es     mapM_ printEntry ts-    putStrLn $ "      Table size: " ++ show headerTableSize ++ "/" ++ show maxDynamicTableSize+    putStrLn $ "      Table size: " ++ show dynamicTableSize ++ "/" ++ show maxDynamicTableSize     print reverseIndex   where     beg = offset + 1@@ -168,7 +168,7 @@       , offset = end       , numOfEntries = 0       , circularTable = tbl-      , headerTableSize = 0+      , dynamicTableSize = 0       , maxDynamicTableSize = maxsiz       , limitForEncoding = lim       , limitForDecoding = dlim@@ -200,7 +200,7 @@ copyEntries :: DynamicTable -> [Entry] -> IO DynamicTable copyEntries dyntbl                 [] = return dyntbl copyEntries dyntbl@DynamicTable{..} (e:es)-  | headerTableSize + entrySize e <= maxDynamicTableSize = do+  | dynamicTableSize + entrySize e <= maxDynamicTableSize = do       dyntbl' <- insertEnd e dyntbl       copyEntries dyntbl' es   | otherwise = return dyntbl@@ -229,12 +229,12 @@     return $ dyntbl {         offset = offset'       , numOfEntries = numOfEntries + 1-      , headerTableSize = headerTableSize'+      , dynamicTableSize = dynamicTableSize'       , reverseIndex = reverseIndex'       }   where     i = offset-    headerTableSize' = headerTableSize + entrySize e+    dynamicTableSize' = dynamicTableSize + entrySize e     offset' = adj maxNumOfEntries (offset - 1)     reverseIndex' = case reverseIndex of         Nothing  -> Nothing@@ -245,7 +245,7 @@  adjust :: DynamicTable -> [Header] -> IO (DynamicTable, [Header]) adjust dyntbl@DynamicTable{..} hs-  | headerTableSize <= maxDynamicTableSize = return (dyntbl, hs)+  | dynamicTableSize <= maxDynamicTableSize = return (dyntbl, hs)   | otherwise         = do       (dyntbl', h) <- removeEnd dyntbl       adjust dyntbl' (h:hs)@@ -257,12 +257,12 @@     writeArray circularTable i e     return $ dyntbl {         numOfEntries = numOfEntries + 1-      , headerTableSize = headerTableSize'+      , dynamicTableSize = dynamicTableSize'       , reverseIndex = reverseIndex'       }   where     i = adj maxNumOfEntries (offset + numOfEntries + 1)-    headerTableSize' = headerTableSize + entrySize e+    dynamicTableSize' = dynamicTableSize + entrySize e     reverseIndex' = case reverseIndex of         Nothing  -> Nothing         Just rev -> Just $ insertDynamic (entryHeader e) (DIndex i) rev@@ -274,11 +274,11 @@     let i = adj maxNumOfEntries (offset + numOfEntries)     e <- readArray circularTable i     writeArray circularTable i dummyEntry -- let the entry GCed-    let tsize = headerTableSize - entrySize e+    let tsize = dynamicTableSize - entrySize e         h = entryHeader e         dyntbl' = dyntbl {             numOfEntries = numOfEntries - 1-          , headerTableSize = tsize+          , dynamicTableSize = tsize           }     return (dyntbl', h) 
Network/HTTP2/Priority/PSQ.hs view
@@ -111,11 +111,9 @@  dequeue :: PriorityQueue a -> Maybe (Key, Precedence, a, PriorityQueue a) dequeue PriorityQueue{..} = case P.minView queue of-    Nothing           -> Nothing-    Just (k, p, v, queue')-      | P.null queue' -> Just (k, p, v, empty)-      | otherwise     -> let !base = deficit p-                         in Just (k, p, v, PriorityQueue base queue')+    Nothing                -> Nothing+    Just (k, p, v, queue') -> let !base = deficit p+                              in Just (k, p, v, PriorityQueue base queue')  delete :: Key -> PriorityQueue a -> (Maybe a, PriorityQueue a) delete k q@PriorityQueue{..} = case P.alter f k queue of
bench-priority/Heap.hs view
@@ -99,10 +99,8 @@  dequeue :: PriorityQueue a -> Maybe (Key, Precedence, a, PriorityQueue a) dequeue (PriorityQueue _ heap) = case H.uncons heap of-    Nothing                     -> Nothing-    Just (Entry k p v, heap')-      | H.null heap' -> Just (k, p, v, empty) -- reset the deficit base-      | otherwise    -> Just (k, p, v, PriorityQueue (deficit p) heap')+    Nothing                   -> Nothing+    Just (Entry k p v, heap') -> Just (k, p, v, PriorityQueue (deficit p) heap')  delete :: Key -> PriorityQueue a -> (Maybe a, PriorityQueue a) delete k (PriorityQueue base heap) = (mv, PriorityQueue base' heap')
http2.cabal view
@@ -1,5 +1,5 @@ Name:                   http2-Version:                1.4.4+Version:                1.4.5 Author:                 Kazu Yamamoto <kazu@iij.ad.jp> Maintainer:             Kazu Yamamoto <kazu@iij.ad.jp> License:                BSD3
test-hpack/JSON.hs view
@@ -79,7 +79,7 @@ instance ToJSON HeaderList where     toJSON hs = toJSON $ map toJSON hs -instance FromJSON Header where+instance {-# OVERLAPPING #-} FromJSON Header where     parseJSON (Array a)  = pure (toKey (a ! 0), toValue (a ! 1)) -- old       where         toKey = toValue@@ -88,7 +88,7 @@         (k,v) = head $ H.toList o     parseJSON _          = mzero -instance ToJSON Header where+instance {-# OVERLAPPING #-} ToJSON Header where     toJSON (k,v) = object [ byteStringToText k .= byteStringToText v ]  textToByteString :: Text -> ByteString