Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
a71cd59
Use latest bench-report commit
harendra-kumar Dec 3, 2025
955b085
Add a ghc-make script to directly compile a single module
harendra-kumar Dec 3, 2025
d7ff545
Use ghc-9.10.3 instead of 9.10.1 in CI
harendra-kumar Dec 3, 2025
3afb0b5
Arrange parser benchmarks in the export list order
harendra-kumar Dec 1, 2025
94c714b
Split parser benchmark module into smaller modules
harendra-kumar Dec 1, 2025
cbccefb
Fix hlint for benchmarks
harendra-kumar Dec 3, 2025
7470b4c
Split stream benchmarks
harendra-kumar Dec 2, 2025
b5d2d11
Split the Stream.Nesting module into two modules
harendra-kumar Dec 3, 2025
1fd1252
Split Unicode module into encode/decode modules
harendra-kumar Dec 3, 2025
cfa099a
Reduce upper limit for heap memory in benchmarks
harendra-kumar Dec 3, 2025
924fb12
Reduce heap memory upper limit for library build
harendra-kumar Dec 3, 2025
d376b4b
Reduce "streamly" build memory limit
harendra-kumar Dec 4, 2025
2b4d97b
Move deprecated tests under dev flag
harendra-kumar Dec 4, 2025
b7c24db
Put deprecated (to be removed) modules under dev flag
harendra-kumar Dec 4, 2025
cc96aa7
Annotate benchmarks requiring -fspec-constr-recursive=16
harendra-kumar Dec 4, 2025
0693f32
Update benchmark targets
harendra-kumar Dec 4, 2025
26812ec
Keep benchmarks in alphabetical order
harendra-kumar Dec 4, 2025
3f3be12
Update benchmark targets in the regression CI
harendra-kumar Dec 4, 2025
4cd2363
Update paths in hie.yaml
harendra-kumar Dec 4, 2025
d1f7518
Use single threaded build for debugging heap overflow issues
harendra-kumar Dec 3, 2025
09988d7
Build one benchmark at a time in bench-runner
harendra-kumar Dec 5, 2025
e91cf98
Use GHC 9.10.3 for regression CI
harendra-kumar Dec 6, 2025
3b28471
Use fusion-plugin in GHC 9.12 build
harendra-kumar Dec 6, 2025
f3d98de
Upgarde ghcup version to 0.1.50.2
harendra-kumar Dec 6, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions .github/workflows/haskell.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
LC_ALL: C.UTF-8
BUILD: ${{ matrix.build }}
# For updating see: https://downloads.haskell.org/~ghcup/
GHCUP_VERSION: 0.1.20.0
GHCUP_VERSION: 0.1.50.2
DOCSPEC_URL: https://github.com/phadej/cabal-extras/releases/download/cabal-docspec-0.0.0.20210111/cabal-docspec-0.0.0.20210111.xz
DOCSPEC_OPTIONS: "--timeout 60 --check-properties --property-variables xs"
GHCUP_GHC_OPTIONS: ${{ matrix.ghcup_ghc_options }}
Expand Down Expand Up @@ -68,7 +68,7 @@ jobs:
matrix:
# The order is important to optimize fail-fast.
name:
- 9.10.1-Werror
- 9.10.3-Werror
# - 9.8.1-docspec
# - 8.10.7-coverage

Expand Down Expand Up @@ -99,32 +99,32 @@ jobs:
ghc_version: 9.12.1
runner: ubuntu-latest
build: cabal
cabal_build_options: "--flag limit-build-mem"
cabal_build_options: "--flag limit-build-mem --flag fusion-plugin"
cabal_version: 3.12.1.0
disable_sdist_build: "y"
cabal_project: cabal.project
ignore_error: false
# Note: use linux for warning build for convenient dev testing
- name: 9.10.1-Werror
ghc_version: 9.10.1
- name: 9.10.3-Werror
ghc_version: 9.10.3
runner: ubuntu-latest
build: cabal
cabal_build_options: "--flag limit-build-mem"
cabal_version: 3.12.1.0
disable_sdist_build: "y"
cabal_project: cabal.project.Werror
ignore_error: false
- name: 9.10.1-macos
ghc_version: 9.10.1
- name: 9.10.3-macos
ghc_version: 9.10.3
runner: macos-latest
build: cabal
cabal_build_options: "--flag limit-build-mem"
cabal_version: 3.12.1.0
disable_sdist_build: "y"
cabal_project: cabal.project
ignore_error: false
- name: 9.10.1-fusion-inspection
ghc_version: 9.10.1
- name: 9.10.3-fusion-inspection
ghc_version: 9.10.3
runner: ubuntu-latest
build: cabal
cabal_version: 3.12.1.0
Expand Down
10 changes: 7 additions & 3 deletions .github/workflows/regression-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,17 +33,21 @@ jobs:
Data.ParserK.Chunked
Data.ParserK.Chunked.Generic
Data.RingArray
Data.Scanl
Data.Scanl.Concurrent
Data.Scanl.Window
Data.Serialize
Data.Stream
Data.Stream.Concurrent
Data.Stream.ConcurrentEager
Data.Stream.ConcurrentInterleaved
Data.Stream.ConcurrentOrdered
Data.Stream.Prelude
Data.StreamK:6
Data.Unbox
Data.Unbox.Derive.TH
Data.Unfold
Data.Unfold.Prelude
FileSystem.DirIO
FileSystem.Handle
Unicode.Parser
Expand All @@ -67,10 +71,10 @@ jobs:

- name: Download ghc
run: |
GHCUP_VER=0.1.18.0
GHCUP_VER=0.1.50.2
curl -sL -o ./ghcup https://downloads.haskell.org/~ghcup/$GHCUP_VER/x86_64-linux-ghcup-$GHCUP_VER
chmod +x ./ghcup
GHCVER=9.6.6
GHCVER=9.10.3
./ghcup install ghc $GHCVER
./ghcup set ghc $GHCVER
cabal update
Expand Down Expand Up @@ -135,7 +139,7 @@ jobs:

- name: Run benchmarks and append
run: |
./bench-runner --package-name streamly-benchmarks --package-version 0.0.0 --targets "$CI_BENCHMARKS" --raw --append
./bench-runner --package-name streamly-benchmarks --package-version 0.0.0 --cabal-build-options "-j1" --targets "$CI_BENCHMARKS" --raw --append

# -----------------------------------------------------------------
# -- Compare
Expand Down
12 changes: 1 addition & 11 deletions .hlint.ignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
core/src/Streamly/Internal/Data/StreamK/Type.hs
core/src/Streamly/Internal/Data/Pipe/Type.hs
core/src/Streamly/Internal/Unicode/Stream.hs
core/src/Streamly/Internal/Unicode/Encode.hs
src/Streamly/Internal/Data/SmallArray/Type.hs
src/Streamly/Internal/Data/Stream/IsStream/Eliminate.hs
src/Streamly/Internal/Data/Stream/Serial.hs
Expand All @@ -22,19 +22,9 @@ test/Streamly/Test/Unicode/Stream.hs
test/Streamly/Test/Data/Unbox.hs
benchmark/lib/Streamly/Benchmark/Common.hs
benchmark/lib/Streamly/Benchmark/Common/Handle.hs
benchmark/lib/Streamly/Benchmark/Prelude.hs
benchmark/NanoBenchmarks.hs
benchmark/Streamly/Benchmark/Data/Array.hs
benchmark/Streamly/Benchmark/Data/Parser.hs
benchmark/Streamly/Benchmark/Data/ParserK.hs
benchmark/Streamly/Benchmark/Data/Stream/StreamK.hs
benchmark/Streamly/Benchmark/Data/Unfold.hs
benchmark/Streamly/Benchmark/FileSystem/Handle.hs
benchmark/Streamly/Benchmark/Prelude/Async.hs
benchmark/Streamly/Benchmark/Prelude/Concurrent.hs
benchmark/Streamly/Benchmark/Prelude/Merge.hs
benchmark/Streamly/Benchmark/Prelude/Parallel.hs
benchmark/Streamly/Benchmark/Prelude/Rate.hs
benchmark/Streamly/Benchmark/Prelude/WAsync.hs
benchmark/Streamly/Benchmark/Prelude/ZipAsync.hs
benchmark/Streamly/Benchmark/Prelude/ZipSerial.hs
1 change: 1 addition & 0 deletions .packcheck.ignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ benchmark/bench-runner/flake.lock
benchmark/bench-runner/flake.nix
benchmark/bench-runner/sources.nix
bin/ghc.sh
bin/ghc-make.sh
bin/repl
bin/run-ci.sh
bin/run-repl-quick.sh
Expand Down
1 change: 1 addition & 0 deletions benchmark/Streamly/Benchmark/Data/Array/Stream.hs
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,7 @@ inspect $ 'copyChunksSplitInterposeSuffix `hasNoType` ''Step
copyChunksSplitInterpose :: Handle -> Handle -> IO ()
copyChunksSplitInterpose inh outh =
Stream.fold (Handle.write outh)
-- XXX requires @-fspec-constr-recursive=12@.
-- XXX this is not correct word splitting combinator
$ Array.concatSepBy 32 . Array.compactSepByByte_ 32
$ Handle.readChunks inh
Expand Down
2 changes: 2 additions & 0 deletions benchmark/Streamly/Benchmark/Data/Fold.hs
Original file line number Diff line number Diff line change
Expand Up @@ -355,6 +355,8 @@ o_1_space_reduce_read_split env =
-- | Infix split on a character sequence.
splitOnSeqUtf8 :: String -> Handle -> IO Int
splitOnSeqUtf8 str inh =
-- XXX requires @-fspec-constr-recursive=12@. Maybe due to
-- decodeUtf8.
Stream.fold Fold.length
$ Stream.foldManyPost (Fold.takeEndBySeq_ (Array.fromList str) Fold.drain)
$ Unicode.decodeUtf8Chunks
Expand Down
Loading
Loading