profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/harendra-kumar/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.
Harendra Kumar harendra-kumar @composewell Bengaluru https://twitter.com/hk_hooda High performance, safe and modular software

commercialhaskell/stack 3601

The Haskell Tool Stack

composewell/streamly 633

Dataflow programming and declarative concurrency

commercialhaskell/path 114

Typed filepath

composewell/streaming-benchmarks 94

Benchmarks to compare Haskell streaming library performance

composewell/packcheck 91

Universal build and CI testing for Haskell packages

composewell/unicode-transforms 38

Fast Unicode normalization in Haskell

harendra-kumar/concise-haskell 12

Concise Haskell reference

harendra-kumar/ghc-perf 2

GHC performance issue - O0 is faster than O2, runghc is fastest

harendra-kumar/config-vim 1

vim configuration - deployed with vcsh (git)

issue closedcomposewell/streamly

Mutable arrays: length should be monadic

As the mutable arrays may grow after creation, the length and byteLength functions should be monadic.

closed time in 2 days

harendra-kumar

issue commentcomposewell/streamly

Mutable arrays: length should be monadic

Scratch that. Any length changing operations will also change the array, so its ok.

harendra-kumar

comment created time in 2 days

issue openedcomposewell/streamly

Mutable arrays: length should be monadic

As the mutable arrays may grow after creation, the length and byteLength functions should be monadic.

created time in 2 days

issue openedcomposewell/streamly

Write IsList, IsString, Eq, Ord, Show, Read, Foldable, Traversable instances for "Unfold Identity"

See these instances: https://github.com/composewell/streamly/blob/f08d73afa1df976765f9796e843fba2e943f1450/src/Streamly/Internal/Data/Stream/Instances.hs#L69

We can write similar ones for Unfolds as well. That will make Unfolds more convenient to use with Identity monad.

created time in 2 days

create barnchcomposewell/streamly

branch : wc-simd

created branch time in 2 days

Pull request review commentcomposewell/streamly

Update doctests of the Generate module

 fromFoldable :: (IsStream t, Foldable f) => f a -> t m a fromFoldable = fromStream . K.fromFoldable  -- |--- @--- fromFoldableM = 'Prelude.foldr' 'consM' 'K.nil'--- @+-- >>> fromFoldableM = Prelude.foldr Stream.consM Stream.nil -- -- Construct a stream from a 'Foldable' containing monadic actions. ----- @--- drain $ fromSerial $ S.fromFoldableM $ replicateM 10 (threadDelay 1000000 >> print 1)--- drain $ fromAsync  $ S.fromFoldableM $ replicateM 10 (threadDelay 1000000 >> print 1)--- @+-- >>> pr n = threadDelay 1000000 >> print n

The problem is that if we define it at one place then the name has to be intuitive to know what it is doing. By redefining readers know immediately from the definition. I think we have defined it as "delay" in other modules but the problem is that we have another "delay" in prelude.

harendra-kumar

comment created time in 3 days

PullRequestReviewEvent

Pull request review commentcomposewell/streamly

Update doctests of the Generate module

 iterateMSerial step = fromStreamS . S.iterateM step -- represents the tuple @(x,y)@ returned by it in a given iteration. We define -- the first element of the tuple in terms of the second. ----- @--- import Streamly.Internal.Data.Stream.IsStream as Stream--- import System.IO.Unsafe (unsafeInterleaveIO)------ main = do---     Stream.mapM_ print $ Stream.mfix f+-- >>> import Streamly.Internal.Data.Stream.IsStream as Stream+-- >>> import System.IO.Unsafe (unsafeInterleaveIO)

First one can go but the second one is very specific to this code so better placed here. The setup section is usually not visible to users which makes those imports a bit obscure.

harendra-kumar

comment created time in 3 days

PullRequestReviewEvent

push eventcomposewell/fusion-plugin

Harendra Kumar

commit sha 4870a2324f2ff6b5c80d856e71ce23cdb7aa85a0

Add logging support for ghc 9.0

view details

Harendra Kumar

commit sha 2c515ea5bd60bde3465719c05c54c198e6c28df8

Bump "ghc" version bound for ghc-head version

view details

push time in 3 days

create barnchcomposewell/fusion-plugin

branch : dump-core

created branch time in 3 days

CommitCommentEvent
CommitCommentEvent
PullRequestReviewEvent

Pull request review commentcomposewell/streamly-lz4

Byte order + Block size restriction

 data BlockSize =     | BlockMax1MB     | BlockMax4MB +blockSizeToInt :: BlockSize -> Int+blockSizeToInt BlockHasSize = maxBound

If this function is used by multiple modules then it makes sense to keep it in a common module. Otherwise I like to keep a function close to where it is used. Closely related code goes together.

adithyaov

comment created time in 3 days

Pull request review commentcomposewell/streamly-lz4

Byte order + Block size restriction

 import Streamly.Internal.LZ4.Config #define INLINE_NORMAL INLINE [1] #define INLINE_LATE   INLINE [0] +--------------------------------------------------------------------------------+-- Endianess+--------------------------------------------------------------------------------++{-# NOINLINE isLittleEndianMachine #-}+isLittleEndianMachine :: Bool+isLittleEndianMachine = unsafePerformIO $ do+    let arr = Array.fromList [1 :: Word32]+    Array.unsafeAsPtr arr+        $ \src -> do+              b0 <- peek (castPtr src :: Ptr Word8)+              return $ b0 == 0

It should matter, we will end up using big-endian numbers in the header instead of little-endian.

adithyaov

comment created time in 3 days

PullRequestReviewEvent

delete branch composewell/streamly

delete branch : issue_1225

delete time in 3 days

delete branch composewell/streamly

delete branch : streamly-core

delete time in 3 days

PR opened composewell/streamly

Reviewers
Update doctests of the Generate module
+87 -74

0 comment

1 changed file

pr created time in 3 days

create barnchcomposewell/streamly

branch : generate-docs

created branch time in 3 days

issue closedcomposewell/streamly

Add readChunksFromToWith in the FileSystem.File module

This would just use the underlying FileSystem.Handle combinator.

closed time in 3 days

harendra-kumar

PR merged composewell/streamly

Implement readChunksFromToWith

Fix #1225

+27 -0

0 comment

1 changed file

rnjtranjan

pr closed time in 3 days

push eventcomposewell/streamly

Ranjeet Kumar Ranjan

commit sha f08d73afa1df976765f9796e843fba2e943f1450

Implement readChunksFromToWith

view details

push time in 3 days

push eventcomposewell/streamly

Sanchayan Maity

commit sha bc39dfea9d39c8e47e305a690a9ade06d36316dd

Cleanup hlint warnings

view details

Harendra Kumar

commit sha dcabd3a70c1c3647d15247e151b68add270d4f76

Use proper quoting, add "--flag dev" for dev-build

view details

Adithya Kumar

commit sha 7e8ba7bef6297a4cbfdd4f38f19de6c4f80cb5bf

Fix the coverage build temporarily

view details

Adithya Kumar

commit sha 705d2cf79f685f0169fd8ecd3c80b30a1e32947d

Move test:Unicode.Char into dev build

view details

Adithya Kumar

commit sha 62675bf52902ae2e13f8b4ac01d49772718b48ed

Fix test:Unicode.Char static path for bin/test.sh

view details

Harendra Kumar

commit sha d8bc53b7abc938f98f0bf8b3315438838bf8fa92

Remove dependency on the IsStream.Enumeration module

view details

Harendra Kumar

commit sha 70e7f94691d93073f8e22d47ec0f0fe05ed50c84

Move IsStream definition out of low level modules The IsStream type class contains MonadAsync type in the consM method. This refactor allows lifting MonadAsync, therefore, dependency on monad-control out of the low level modules.

view details

Harendra Kumar

commit sha 9d7bd5293aff7a4bf06d32bb0fe4a398d5330b48

Make the test more reliable and add diag info

view details

Harendra Kumar

commit sha ea50a6cb50d9d2202d1640e02ab22a90bc1d71e9

Add use-large-mem flag To include tests that require large amounts of RAM

view details

Harendra Kumar

commit sha b82985820efb48adf63583fa00336fbfb0261b66

Disable rate tests taking too much memory

view details

Harendra Kumar

commit sha f6b88dc488786d75d2652f972dea2aa21bb3308b

Add a flag for flaky tests

view details

Ranjeet Kumar Ranjan

commit sha f08d73afa1df976765f9796e843fba2e943f1450

Implement readChunksFromToWith

view details

push time in 3 days

PR opened composewell/streamly

Reviewers
Add a FAQ for common example snippets
+59 -0

0 comment

1 changed file

pr created time in 3 days

push eventcomposewell/streamly

Harendra Kumar

commit sha 5829e62ec0c4a50dbb19787f94c1c09470a05a51

Add a FAQ for common example snippets

view details

push time in 3 days

PullRequestReviewEvent

Pull request review commentcomposewell/streamly

Make sequence concurrent

 concurrentOps constr desc eq t = do         concurrentMapM constr eq $ \n mv stream ->             t $ S.mapM (mvarSequenceOp mv n) stream +    prop1 (desc <> " sequence") $+        concurrentMapM constr eq $ \n mv stream ->+            t $ S.sequence $ S.map (mvarSequenceOp mv n) stream+

That's a failure, its fine.

rnjtranjan

comment created time in 3 days

create barnchcomposewell/streamly

branch : faq

created branch time in 3 days