@@ -202,6 +202,11 @@ flag limit-build-mem
202 manual: True
202 manual: True
203 default: False
203 default: False
206+ description: Build only the core modules
205-------------------------------------------------------------------------------
210-------------------------------------------------------------------------------
206-- Common stanzas
211-- Common stanzas
207-------------------------------------------------------------------------------
212-------------------------------------------------------------------------------
@@ -330,84 +335,45 @@ library
331 if os(windows)
336 if os(windows)
332 c-sources: src/Streamly/Internal/Data/Time/Clock/Windows.c
337 c-sources: src/Streamly/Internal/Data/Time/Clock/Windows.c
333− exposed-modules: Streamly.Internal.FileSystem.Event.Windows
334− build-depends: Win32 >= 2.6 && < 2.13
336 if os(darwin)
339 if os(darwin)
338 include-dirs: src/Streamly/Internal
340 include-dirs: src/Streamly/Internal
339 c-sources: src/Streamly/Internal/Data/Time/Clock/Darwin.c
341 c-sources: src/Streamly/Internal/Data/Time/Clock/Darwin.c
340− , src/Streamly/Internal/FileSystem/Event/Darwin.m
342− Streamly.Internal.FileSystem.Event.Darwin
345− exposed-modules: Streamly.Internal.FileSystem.Event.Linux
347− if os(linux) || os(darwin) || os(windows)
348− exposed-modules: Streamly.Internal.FileSystem.Event
350 hs-source-dirs: src
343 hs-source-dirs: src
353− , Streamly.Data.Prim.Array
354− , Streamly.Data.SmallArray
356 exposed-modules:
344 exposed-modules:
358− , Streamly.Data.Unfold
359− , Streamly.Data.Fold
360− , Streamly.Data.Fold.Tee
361− , Streamly.Data.Array.Foreign
364− , Streamly.Unicode.Stream
367− , Streamly.FileSystem.Handle
368− , Streamly.Console.Stdio
371− , Streamly.Network.Socket
372− , Streamly.Network.Inet.TCP
376− , Streamly.Data.Unicode.Stream
377− , Streamly.Memory.Array
379− -- Internal modules, listed roughly in dependency order
345+ -- Internal modules, listed roughly in bottom up
380− -- To view dependency graph:
346+ -- dependency order To view dependency graph:
381 -- graphmod | dot -Tps > deps.ps
347 -- graphmod | dot -Tps > deps.ps
383 -- streamly-base
349 -- streamly-base
384− , Streamly.Internal.BaseCompat
350+ Streamly.Internal.BaseCompat
385 , Streamly.Internal.Control.Exception
351 , Streamly.Internal.Control.Exception
386 , Streamly.Internal.Control.Monad
352 , Streamly.Internal.Control.Monad
387 , Streamly.Internal.Control.ForkIO
353 , Streamly.Internal.Control.ForkIO
388− , Streamly.Internal.Control.ForkLifted
389− , Streamly.Internal.Control.Concurrent
390 , Streamly.Internal.Data.Cont
354 , Streamly.Internal.Data.Cont
355+ , Streamly.Internal.Foreign.Malloc
356+ , Streamly.Internal.System.IO
358+ -- streamly-strict-data
391 , Streamly.Internal.Data.Tuple.Strict
359 , Streamly.Internal.Data.Tuple.Strict
392 , Streamly.Internal.Data.Maybe.Strict
360 , Streamly.Internal.Data.Maybe.Strict
393 , Streamly.Internal.Data.Either.Strict
361 , Streamly.Internal.Data.Either.Strict
363+ -- XXX Depends on monad-control
394− , Streamly.Internal.Foreign.Malloc
364+ , Streamly.Internal.Control.Concurrent
395− , Streamly.Internal.Data.Atomics
365+ , Streamly.Internal.Control.ForkLifted
396 , Streamly.Internal.Data.IOFinalizer
366 , Streamly.Internal.Data.IOFinalizer
397 , Streamly.Internal.Data.Time
369 , Streamly.Internal.Data.Time
398 , Streamly.Internal.Data.Time.TimeSpec
370 , Streamly.Internal.Data.Time.TimeSpec
399 , Streamly.Internal.Data.Time.Units
371 , Streamly.Internal.Data.Time.Units
400 , Streamly.Internal.Data.Time.Clock.Type
372 , Streamly.Internal.Data.Time.Clock.Type
401 , Streamly.Internal.Data.Time.Clock
373 , Streamly.Internal.Data.Time.Clock
402− , Streamly.Internal.System.IO
403− , Streamly.Internal.System.IOVec.Type
405− -- streamly-core-stream
375+ -- streamly-core-stream-types
406 , Streamly.Internal.Data.SVar.Type
376 , Streamly.Internal.Data.SVar.Type
407− , Streamly.Internal.Data.SVar.Worker
408− , Streamly.Internal.Data.SVar.Dispatch
409− , Streamly.Internal.Data.SVar.Pull
410− , Streamly.Internal.Data.SVar
411 , Streamly.Internal.Data.Stream.StreamK.Type
377 , Streamly.Internal.Data.Stream.StreamK.Type
412 , Streamly.Internal.Data.Fold.Step
378 , Streamly.Internal.Data.Fold.Step
413 , Streamly.Internal.Data.Refold.Type
379 , Streamly.Internal.Data.Refold.Type
@@ -424,23 +390,18 @@ library
424 , Streamly.Internal.Data.Parser.ParserD.Type
390 , Streamly.Internal.Data.Parser.ParserD.Type
425 , Streamly.Internal.Data.Pipe.Type
391 , Streamly.Internal.Data.Pipe.Type
393+ -- streamly-core-array-types
427 -- Unboxed IORef
394 -- Unboxed IORef
395+ -- XXX Depends on primitive
428 , Streamly.Internal.Data.IORef.Prim
396 , Streamly.Internal.Data.IORef.Prim
430− -- streamly-core-array
431 -- May depend on streamly-core-stream
397 -- May depend on streamly-core-stream
432 , Streamly.Internal.Data.Array.Foreign.Mut.Type
398 , Streamly.Internal.Data.Array.Foreign.Mut.Type
433 , Streamly.Internal.Data.Array.Foreign.Mut
399 , Streamly.Internal.Data.Array.Foreign.Mut
434 , Streamly.Internal.Data.Array.Foreign.Type
400 , Streamly.Internal.Data.Array.Foreign.Type
435− , Streamly.Internal.Data.Array.Prim.Mut.Type
436− , Streamly.Internal.Data.Array.Prim.Type
437− , Streamly.Internal.Data.Array.Prim.Pinned.Mut.Type
438− , Streamly.Internal.Data.Array.Prim.Pinned.Type
439 , Streamly.Internal.Data.Array.Mut.Type
401 , Streamly.Internal.Data.Array.Mut.Type
440− , Streamly.Internal.Data.SmallArray.Type
442− -- streamly-base-streams
403+ -- streamly-core-streams
443− -- StreamD depends on streamly-core-array
404+ -- StreamD depends on streamly-array-types
444 , Streamly.Internal.Data.Stream.StreamD.Generate
405 , Streamly.Internal.Data.Stream.StreamD.Generate
445 , Streamly.Internal.Data.Stream.StreamD.Eliminate
406 , Streamly.Internal.Data.Stream.StreamD.Eliminate
446 , Streamly.Internal.Data.Stream.StreamD.Nesting
407 , Streamly.Internal.Data.Stream.StreamD.Nesting
@@ -454,27 +415,70 @@ library
454 , Streamly.Internal.Data.Parser.ParserD.Tee
415 , Streamly.Internal.Data.Parser.ParserD.Tee
455 , Streamly.Internal.Data.Parser.ParserD
416 , Streamly.Internal.Data.Parser.ParserD
457− -- streamly-core
418+ -- streamly-core-data
458 , Streamly.Internal.Data.Unfold
419 , Streamly.Internal.Data.Unfold
459− , Streamly.Internal.Data.Unfold.SVar
460 , Streamly.Internal.Data.Unfold.Enumeration
420 , Streamly.Internal.Data.Unfold.Enumeration
461 , Streamly.Internal.Data.Fold.Tee
421 , Streamly.Internal.Data.Fold.Tee
462 , Streamly.Internal.Data.Fold
422 , Streamly.Internal.Data.Fold
463− , Streamly.Internal.Data.Fold.SVar
464− , Streamly.Internal.Data.Fold.Async
465 , Streamly.Internal.Data.Sink
423 , Streamly.Internal.Data.Sink
466 , Streamly.Internal.Data.Parser
424 , Streamly.Internal.Data.Parser
467 , Streamly.Internal.Data.Pipe
425 , Streamly.Internal.Data.Pipe
426+ , Streamly.Internal.Data.Stream.Serial
427+ , Streamly.Internal.Data.Stream.Zip
428+ , Streamly.Internal.Data.List
430+ -- streamly-core-data-arrays
431+ -- XXX Depends on primitive
432+ , Streamly.Internal.Data.Array
433+ , Streamly.Internal.Data.Array.Foreign
434+ , Streamly.Internal.Data.Array.Stream.Mut.Foreign
435+ , Streamly.Internal.Data.Array.Stream.Fold.Foreign
438+ , Streamly.Internal.Data.Ring.Foreign
439+ -- XXX Depends on primitive
440+ , Streamly.Internal.Data.Ring
442+ -- Only used for benchmarks
443+ , Streamly.Internal.Data.Stream.StreamK
445+ -- streamly-core exposed modules
446+ , Streamly.Data.Fold
447+ , Streamly.Data.Fold.Tee
448+ , Streamly.Data.Array.Foreign
450+ if !flag(streamly-core)
452+ -- XXX To be moved to streamly-core
453+ Streamly.Data.Unfold
455+ -- XXX To be removed or put under dev flag
456+ , Streamly.Internal.Data.Array.Prim.Mut.Type
457+ , Streamly.Internal.Data.Array.Prim.Type
458+ , Streamly.Internal.Data.Array.Prim.Pinned.Mut.Type
459+ , Streamly.Internal.Data.Array.Prim.Pinned.Type
460+ , Streamly.Internal.Data.SmallArray.Type
461+ , Streamly.Internal.Data.Array.Prim
462+ , Streamly.Internal.Data.Array.Prim.Pinned
463+ , Streamly.Internal.Data.SmallArray
465+ -- streamly-concurrent
466+ , Streamly.Internal.Data.Atomics
467+ , Streamly.Internal.Data.SVar.Worker
468+ , Streamly.Internal.Data.SVar.Dispatch
469+ , Streamly.Internal.Data.SVar.Pull
470+ , Streamly.Internal.Data.SVar
472+ , Streamly.Internal.Data.Unfold.SVar
473+ , Streamly.Internal.Data.Fold.SVar
474+ , Streamly.Internal.Data.Fold.Async
469 , Streamly.Internal.Data.Stream.SVar.Generate
475 , Streamly.Internal.Data.Stream.SVar.Generate
470 , Streamly.Internal.Data.Stream.SVar.Eliminate
476 , Streamly.Internal.Data.Stream.SVar.Eliminate
471− , Streamly.Internal.Data.Stream.Serial
477+
472 , Streamly.Internal.Data.Stream.Async
478 , Streamly.Internal.Data.Stream.Async
473 , Streamly.Internal.Data.Stream.Parallel
479 , Streamly.Internal.Data.Stream.Parallel
474 , Streamly.Internal.Data.Stream.Ahead
480 , Streamly.Internal.Data.Stream.Ahead
475− , Streamly.Internal.Data.Stream.Zip
476 , Streamly.Internal.Data.Stream.ZipAsync
481 , Streamly.Internal.Data.Stream.ZipAsync
477− , Streamly.Internal.Data.List
479 , Streamly.Internal.Data.Stream.IsStream.Type
483 , Streamly.Internal.Data.Stream.IsStream.Type
480 , Streamly.Internal.Data.Stream.IsStream.Combinators
484 , Streamly.Internal.Data.Stream.IsStream.Combinators
@@ -490,23 +494,10 @@ library
490 , Streamly.Internal.Data.Stream.IsStream.Top
494 , Streamly.Internal.Data.Stream.IsStream.Top
491 , Streamly.Internal.Data.Stream.IsStream
495 , Streamly.Internal.Data.Stream.IsStream
494− -- May depend on streamly-core
495− , Streamly.Internal.Data.Array
496− , Streamly.Internal.Data.Array.Foreign
497− , Streamly.Internal.Data.Array.Prim
498− , Streamly.Internal.Data.Array.Prim.Pinned
499− , Streamly.Internal.Data.SmallArray
500− , Streamly.Internal.Data.Array.Stream.Mut.Foreign
501 , Streamly.Internal.Data.Array.Stream.Foreign
497 , Streamly.Internal.Data.Array.Stream.Foreign
502− , Streamly.Internal.Data.Array.Stream.Fold.Foreign
505− , Streamly.Internal.Data.Ring.Foreign
506− , Streamly.Internal.Data.Ring
508− -- IOVec (depends on arrays/streams)
499+ -- streamly-serde
509− , Streamly.Internal.System.IOVec
500+ , Streamly.Internal.Data.Binary.Decode
511 -- streamly-unicode
502 -- streamly-unicode
512 , Streamly.Internal.Unicode.Stream
503 , Streamly.Internal.Unicode.Stream
@@ -516,10 +507,9 @@ library
516 , Streamly.Internal.Unicode.Array.Char
507 , Streamly.Internal.Unicode.Array.Char
517 , Streamly.Internal.Unicode.Array.Prim.Pinned
508 , Streamly.Internal.Unicode.Array.Prim.Pinned
520− , Streamly.Internal.Data.Binary.Decode
522 -- streamly-filesystem
510 -- streamly-filesystem
511+ , Streamly.Internal.System.IOVec.Type
512+ , Streamly.Internal.System.IOVec
523 , Streamly.Internal.FileSystem.Handle
513 , Streamly.Internal.FileSystem.Handle
524 , Streamly.Internal.FileSystem.Dir
514 , Streamly.Internal.FileSystem.Dir
525 , Streamly.Internal.FileSystem.File
515 , Streamly.Internal.FileSystem.File
@@ -533,8 +523,42 @@ library
533 , Streamly.Internal.Network.Socket
523 , Streamly.Internal.Network.Socket
534 , Streamly.Internal.Network.Inet.TCP
524 , Streamly.Internal.Network.Inet.TCP
536− -- Only used for benchmarks
526+ -- Exposed modules
537− , Streamly.Internal.Data.Stream.StreamK
527+ , Streamly.Prelude
530+ , Streamly.Unicode.Stream
533+ , Streamly.FileSystem.Handle
534+ , Streamly.Console.Stdio
537+ , Streamly.Network.Socket
538+ , Streamly.Network.Inet.TCP
542+ , Streamly.Data.Unicode.Stream
543+ , Streamly.Memory.Array
547+ , Streamly.Data.Prim.Array
548+ , Streamly.Data.SmallArray
551+ exposed-modules: Streamly.Internal.FileSystem.Event.Windows
554+ c-sources: src/Streamly/Internal/FileSystem/Event/Darwin.m
555+ exposed-modules: Streamly.Internal.FileSystem.Event.Darwin
558+ exposed-modules: Streamly.Internal.FileSystem.Event.Linux
560+ if os(linux) || os(darwin) || os(windows)
561+ exposed-modules: Streamly.Internal.FileSystem.Event
539 build-depends:
563 build-depends:
540 -- Core libraries shipped with ghc, the min and max
564 -- Core libraries shipped with ghc, the min and max
@@ -550,26 +574,33 @@ library
550 , exceptions >= 0.8 && < 0.11
574 , exceptions >= 0.8 && < 0.11
551 , ghc-prim >= 0.2 && < 0.9
575 , ghc-prim >= 0.2 && < 0.9
552 , mtl >= 2.2 && < 2.3
576 , mtl >= 2.2 && < 2.3
553− , primitive >= 0.5.4 && < 0.8
554 , transformers >= 0.4 && < 0.7
577 , transformers >= 0.4 && < 0.7
578+ , filepath >= 1.2.0.0 && < 1.5
580+ , fusion-plugin-types >= 0.1 && < 0.2
581+ , monad-control >= 1.0 && < 1.1
583+ -- XXX to be removed
584+ , transformers-base >= 0.4 && < 0.5
585+ , primitive >= 0.5.4 && < 0.8
556 , heaps >= 0.3 && < 0.5
586 , heaps >= 0.3 && < 0.5
557− , filepath >= 1.2.0.0 && < 1.5
588+ if !flag(streamly-core)
559 -- concurrency
590 -- concurrency
560 , atomic-primops >= 0.8 && < 0.9
591 , atomic-primops >= 0.8 && < 0.9
561 , lockfree-queue >= 0.2.3 && < 0.3
592 , lockfree-queue >= 0.2.3 && < 0.3
564− , monad-control >= 1.0 && < 1.1
565− , transformers-base >= 0.4 && < 0.5
567− , fusion-plugin-types >= 0.1 && < 0.2
568 , unicode-data >= 0.1 && < 0.4
594 , unicode-data >= 0.1 && < 0.4
570 -- Network
596 -- Network
571 , network >= 2.6 && < 3.2
597 , network >= 2.6 && < 3.2
600+ build-depends: Win32 >= 2.6 && < 2.13
574 if flag(inspection)
605 if flag(inspection)
575 build-depends: template-haskell >= 2.14 && < 2.17
606 build-depends: template-haskell >= 2.14 && < 2.17