Created
October 14, 2009 22:16
-
-
Save enolan/210453 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Tue Oct 6 16:59:24 PDT 2009 Echo Nolan <[email protected]> | |
* Fix Iter.take delaying actions one step. | |
It was broken in two maddeninly subtle ways. The first: using joinIM delayed | |
all actions associated with take's parameter iteratee one step. The second: | |
it always returned Cont when the length of the chunk was <= the requested | |
length and non-null. Thus, the values returned were one step delayed if the | |
amount to take was equal to the length of the chunk passed. | |
New patches: | |
[Fix Iter.take delaying actions one step. | |
Echo Nolan <[email protected]>**20091006235924 | |
Ignore-this: 2aa35f357f778727c2cc6c90e9cabd62 | |
It was broken in two maddeninly subtle ways. The first: using joinIM delayed | |
all actions associated with take's parameter iteratee one step. The second: | |
it always returned Cont when the length of the chunk was <= the requested | |
length and non-null. Thus, the values returned were one step delayed if the | |
amount to take was equal to the length of the chunk passed. | |
] hunk ./src/Data/Iteratee/Base.hs 477 | |
where | |
step n chk@(Chunk str) | |
| SC.null str = return $ Cont (take n iter) Nothing | |
- | SC.length str <= n = return $ Cont (joinIM inner) Nothing | |
+ | SC.length str < n = liftM (flip Cont Nothing) inner | |
where inner = liftM (check (n - SC.length str)) (runIter iter chk) | |
step n (Chunk str) = done (Chunk s1) (Chunk s2) | |
where (s1, s2) = SC.splitAt n str | |
Context: | |
[add sum and product. | |
[email protected]**20090921230901 | |
Ignore-this: 1dd15d532931955e938f887264682ac0 | |
] | |
[enumFd: change buffer size to 4096 | |
[email protected]**20090919233300 | |
Ignore-this: 7225a88ede05df15f802244fade199b7 | |
] | |
[Base.foldl': inline and minor changes. | |
[email protected]**20090919233227 | |
Ignore-this: acd6f55b932070c526f1000f9d3e5edd | |
] | |
[improve comments in Examples/headers.hs | |
[email protected]**20090916165655 | |
Ignore-this: d5e5018b6007508e81b9f571787c70dc | |
] | |
[Base.hs: new foldl definition increases sharing | |
[email protected]**20090818170143 | |
Ignore-this: 623756a91e7cf5d28e528494434afcf1 | |
Measurably more efficient for general use. | |
] | |
[add rigidMap and looseMap | |
[email protected]**20090811220245 | |
Ignore-this: 89152bccaea378dcd813a8278e6ab845 | |
] | |
[StreamChunk.hs -- fix type of cMap | |
[email protected]**20090806100223 | |
Ignore-this: f45233ed959ebc8ea8ceb67b6d518e97 | |
] | |
[make the default fileDrivers polymorphic over monads | |
[email protected]**20090731182923 | |
Ignore-this: b5807b6b8a52b9d4a72408b21b292d81 | |
] | |
[update IO.Fd to use the new enum* design | |
[email protected]**20090731182842 | |
Ignore-this: d2c8d0e4f0d85e6591d71fb06de4967 | |
] | |
[minor code cleanup | |
[email protected]**20090731131856 | |
Ignore-this: 66d6f3c327a79b5c5354e818d1cf62ac | |
] | |
[new implementation of Handle enumerators | |
[email protected]**20090731131456 | |
Ignore-this: 8f788394c268d0ff785dee4ae6d5b110 | |
Previously, Handle enumerators would only work in the IO monad. This | |
required users to frequently re-implement handle-based enumerators. | |
The new design is polymorphic over any MonadIO intance, allowing for | |
much greater flexibility. Performance is generally similar to the | |
old implementation. In addition to passing the test suite, this | |
implementation works properly for the iter-audio driver, which requires | |
both random IO and StateT monad stack. | |
] | |
[add utilities to build the hpc-enabled test suite. | |
[email protected]**20090731130035 | |
Ignore-this: 111e1c5c0aedd74248d25741952e693f | |
] | |
[minor extra documentation/commments | |
[email protected]**20090731124149 | |
Ignore-this: 3ccf212799c0a4b8aafd734fe52fa662 | |
] | |
[update exported modules | |
[email protected]**20090731124048 | |
Ignore-this: 48c7f4936bbb71c1134cc1f0fe0a306c | |
Export IO.Windows on Windows | |
Export IO.Posix and IO.Fd on POSIX | |
Export IO.Handle everywhere | |
Hide IO.Base everywhere | |
] | |
[add stream2stream | |
[email protected]**20090724101654 | |
Ignore-this: 8a4ce39eb233aabed574dafcb22ffe7e | |
] | |
[add liftInner | |
[email protected]**20090724101536 | |
Ignore-this: b8b9f3458de60ea92d7c306520828913 | |
] | |
[add dropWhile | |
[email protected]**20090719215128 | |
Ignore-this: a14b062f56842b75a0071b447a654524 | |
] | |
[take hlint suggestions | |
[email protected]**20090704133531 | |
Ignore-this: b4653c55d683305987ee3416e161eed4 | |
] | |
[update WrappedByteString to lesson dependency on Base. | |
[email protected]**20090701225018 | |
Ignore-this: 73e9c95ab1386dd83a10883b3b9c9dc | |
] | |
[update CONTRIBUTORS | |
[email protected]**20090625182015 | |
Ignore-this: 2ac411b93b70ac2afdd02caf77c47724 | |
] | |
[fix conflicts from merging reformat of .cabal | |
[email protected]**20090625181948 | |
Ignore-this: d5f2eb5b0d66050a1901563fead411cc | |
] | |
[Replaced Setup.lhs with Setup.hs. | |
Brian Lewis <[email protected]>**20090625132654 | |
Ignore-this: 18827dd404c1c1b89118b7324f24c089 | |
] | |
[Took some hlint suggestions. | |
Brian Lewis <[email protected]>**20090625132323 | |
Ignore-this: a7f6d36592926f30d16612320de439de | |
] | |
[Cleaned up iteratee.cabal. | |
Brian Lewis <[email protected]>**20090625125537 | |
Ignore-this: f4bad79d1ed57a1d45e2a3eb6ccd6925 | |
] | |
[Fixed various whitespace issues. | |
Brian Lewis <[email protected]>**20090625122212 | |
Ignore-this: 78936ed222825a00a1eadad9e2dd8f40 | |
Deleted trailing whitespace and blank lines at the ends of files. Replaced tabs with spaces. | |
] | |
[add enumPair combinator | |
[email protected]**20090623135615 | |
Ignore-this: 4962dd3941eda193e2dc1af0baf121ba | |
] | |
[TAG 0.2.4 | |
[email protected]**20090625112940 | |
Ignore-this: d4fd71e044cf92d5ace7edff39dca38 | |
] | |
Patch bundle hash: | |
d1dd857cac6291fef3d312876811bc3e78bb4aef |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment