on master help sign in
Compile core package under streamly-core flag
7f4bc10Harendra Kumar
streamly.cabal+127−96
@@ -202,6 +202,11 @@ flag limit-build-mem
202 manual: True
202 manual: True
203 default: False
203 default: False
204
204
205+flag streamly-core
206+ description: Build only the core modules
207+ manual: True
208+ default: False
209+
205-------------------------------------------------------------------------------
210-------------------------------------------------------------------------------
206-- Common stanzas
211-- Common stanzas
207-------------------------------------------------------------------------------
212-------------------------------------------------------------------------------
@@ -330,84 +335,45 @@ library
330
335
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
335
338
336 if os(darwin)
339 if os(darwin)
337− frameworks: Cocoa
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
341− exposed-modules:
342− Streamly.Internal.FileSystem.Event.Darwin
343−
344− if os(linux)
345− exposed-modules: Streamly.Internal.FileSystem.Event.Linux
346−
347− if os(linux) || os(darwin) || os(windows)
348− exposed-modules: Streamly.Internal.FileSystem.Event
349
342
350 hs-source-dirs: src
343 hs-source-dirs: src
351− other-modules:
352− Streamly.Data.Array
353− , Streamly.Data.Prim.Array
354− , Streamly.Data.SmallArray
355−
356 exposed-modules:
344 exposed-modules:
357− Streamly.Prelude
358− , Streamly.Data.Unfold
359− , Streamly.Data.Fold
360− , Streamly.Data.Fold.Tee
361− , Streamly.Data.Array.Foreign
362−
363− -- Text Processing
364− , Streamly.Unicode.Stream
365−
366− -- Filesystem/IO
367− , Streamly.FileSystem.Handle
368− , Streamly.Console.Stdio
369−
370− -- Network/IO
371− , Streamly.Network.Socket
372− , Streamly.Network.Inet.TCP
373−
374− -- Deprecated
375− , Streamly
376− , Streamly.Data.Unicode.Stream
377− , Streamly.Memory.Array
378−
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
382
348
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
357+
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
362+
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
367+
368+ -- streamly-time
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
404
374
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
426
392
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
429−
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
441
402
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
456
417
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
429+
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
436+
437+ -- Ring Arrays
438+ , Streamly.Internal.Data.Ring.Foreign
439+ -- XXX Depends on primitive
440+ , Streamly.Internal.Data.Ring
441+
442+ -- Only used for benchmarks
443+ , Streamly.Internal.Data.Stream.StreamK
444+
445+ -- streamly-core exposed modules
446+ , Streamly.Data.Fold
447+ , Streamly.Data.Fold.Tee
448+ , Streamly.Data.Array.Foreign
449+
450+ if !flag(streamly-core)
451+ exposed-modules:
452+ -- XXX To be moved to streamly-core
453+ Streamly.Data.Unfold
454+
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
464+
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
468
471
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
478
482
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
492
496
493− -- streamly-arrays
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
503−
504− -- Memory storage
505− , Streamly.Internal.Data.Ring.Foreign
506− , Streamly.Internal.Data.Ring
507
498
508− -- IOVec (depends on arrays/streams)
499+ -- streamly-serde
509− , Streamly.Internal.System.IOVec
500+ , Streamly.Internal.Data.Binary.Decode
510
501
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
518
509
519− -- streamly-serde
520− , Streamly.Internal.Data.Binary.Decode
521−
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
535
525
536− -- Only used for benchmarks
526+ -- Exposed modules
537− , Streamly.Internal.Data.Stream.StreamK
527+ , Streamly.Prelude
528+
529+ -- Text Processing
530+ , Streamly.Unicode.Stream
531+
532+ -- Filesystem/IO
533+ , Streamly.FileSystem.Handle
534+ , Streamly.Console.Stdio
535+
536+ -- Network/IO
537+ , Streamly.Network.Socket
538+ , Streamly.Network.Inet.TCP
539+
540+ -- Deprecated
541+ , Streamly
542+ , Streamly.Data.Unicode.Stream
543+ , Streamly.Memory.Array
544+
545+ other-modules:
546+ Streamly.Data.Array
547+ , Streamly.Data.Prim.Array
548+ , Streamly.Data.SmallArray
549+
550+ if os(windows)
551+ exposed-modules: Streamly.Internal.FileSystem.Event.Windows
552+
553+ if os(darwin)
554+ c-sources: src/Streamly/Internal/FileSystem/Event/Darwin.m
555+ exposed-modules: Streamly.Internal.FileSystem.Event.Darwin
556+
557+ if os(linux)
558+ exposed-modules: Streamly.Internal.FileSystem.Event.Linux
559+
560+ if os(linux) || os(darwin) || os(windows)
561+ exposed-modules: Streamly.Internal.FileSystem.Event
538
562
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
555
579
580+ , fusion-plugin-types >= 0.1 && < 0.2
581+ , monad-control >= 1.0 && < 1.1
582+
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
558
587
588+ if !flag(streamly-core)
589+ build-depends:
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
562
593
563− -- transfomers
564− , monad-control >= 1.0 && < 1.1
565− , transformers-base >= 0.4 && < 0.5
566−
567− , fusion-plugin-types >= 0.1 && < 0.2
568 , unicode-data >= 0.1 && < 0.4
594 , unicode-data >= 0.1 && < 0.4
569
595
570 -- Network
596 -- Network
571 , network >= 2.6 && < 3.2
597 , network >= 2.6 && < 3.2
572
598
599+ if os(windows)
600+ build-depends: Win32 >= 2.6 && < 2.13
601+
602+ if os(darwin)
603+ frameworks: Cocoa
573
604
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