@@ -36,7 +36,6 @@ Library
3636 ,filepath
3737 ,directory
3838 ,vector-binary-instances
39− ,unix
4039 ,temporary
4140 ,stm
4241 ,time
@@ -49,7 +48,7 @@ Library
4948 ,extended-reals
5049 ,network-transport
5150--required for persistent db driver
52− ,persistent
51+ ,persistent >= 2.2 && < 2.3
5352 ,persistent-template
5453 ,aeson
5554 ,path-pieces
@@ -110,7 +109,12 @@ Library
110109 ProjectM36.TypeConstructorDef,
111110 Database.Persist.ProjectM36
112111 GHC-Options: -Wall -rtsopts
113− C-sources: ProjectM36/DirectoryFsync.c
112+ if os(windows)
113+ Build-Depends: Win32 >= 2.3 && < 2.4
114+ Other-Modules: ProjectM36.Win32Handle
115+ else
116+ C-sources: ProjectM36/DirectoryFsync.c
117+ Build-Depends: unix
114118 Default-Language: Haskell2010
115119
116120Executable tutd
@@ -138,7 +142,6 @@ Executable tutd
138142 deepseq,
139143 binary,
140144 data-interval,
141− unix,
142145 parallel,
143146 cassava,
144147 gnuplot,
@@ -207,9 +210,16 @@ Executable tutd
207210 TutorialD.Interpreter.RelationalExpr,
208211 TutorialD.Interpreter.Types
209212 main-is: TutorialD/tutd.hs
210− GHC-Options: -Wall
211− C-sources: ProjectM36/DirectoryFsync.c
213+ CPP-Options: -DPROJECTM36_VERSION="v0.1"
214+ GHC-Options: -Wall
212215 Default-Language: Haskell2010
216+ if os(windows)
217+ Build-Depends: Win32 >= 2.3 && < 2.4
218+ Other-Modules: ProjectM36.Win32Handle
219+ else
220+ C-sources: ProjectM36/DirectoryFsync.c
221+ Build-Depends: unix
222+
213223
214224Executable project-m36-server
215225 Build-Depends: base,
@@ -223,7 +233,6 @@ Executable project-m36-server
223233 binary,
224234 transformers,
225235 temporary,
226− unix,
227236 data-interval,
228237 deepseq,
229238 uuid,
@@ -250,7 +259,6 @@ Executable project-m36-server
250259 Main-Is: ProjectM36/Server/project-m36-server.hs
251260 GHC-Options: -Wall -threaded -rtsopts
252261 GHC-Prof-Options: -fprof-auto -rtsopts -threaded -Wall
253− C-sources: ProjectM36/DirectoryFsync.c
254262 Default-Language: Haskell2010
255263 Other-Modules: ProjectM36.Atom,
256264 ProjectM36.AtomFunction,
@@ -291,10 +299,17 @@ Executable project-m36-server
291299 ProjectM36.TupleSet,
292300 ProjectM36.TypeConstructor,
293301 ProjectM36.TypeConstructorDef
302+ if os(windows)
303+ Build-Depends: Win32 >= 2.3 && < 2.4
304+ Other-Modules: ProjectM36.Win32Handle
305+ else
306+ C-sources: ProjectM36/DirectoryFsync.c
307+ Build-Depends: unix
308+
294309
295310Executable bigrel
296311 Default-Language: Haskell2010
297− Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, network-transport-tcp, distributed-process, distributed-process-extras, distributed-process-client-server, uuid, stm, deepseq, deepseq-generics, binary, unix, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, parsec, text, base64-bytestring, data-interval, filepath, optparse-applicative, stm-containers, list-t
312+ Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, network-transport-tcp, distributed-process, distributed-process-extras, distributed-process-client-server, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, parsec, text, base64-bytestring, data-interval, filepath, optparse-applicative, stm-containers, list-t
298313 Other-Modules: ProjectM36.Base,
299314 ProjectM36.Relation
300315 ProjectM36.Tuple,
@@ -331,66 +346,91 @@ Executable bigrel
331346 main-is: benchmark/bigrel.hs
332347 GHC-Options: -Wall -threaded -rtsopts
333348 GHC-Prof-Options: -fprof-auto -rtsopts -threaded -Wall
334− C-sources: ProjectM36/DirectoryFsync.c
349+ if os(windows)
350+ Build-Depends: Win32 >= 2.3 && < 2.4
351+ Other-Modules: ProjectM36.Win32Handle
352+ else
353+ C-sources: ProjectM36/DirectoryFsync.c
354+ Build-Depends: unix
355+
335356
336357Test-Suite test-tutoriald
337358 Default-Language: Haskell2010
338359 type: exitcode-stdio-1.0
339360 main-is: test/TutorialD/Interpreter.hs
340− Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, network-transport-tcp, distributed-process, distributed-process-extras, distributed-process-client-server, uuid, stm, deepseq, deepseq-generics, binary, unix, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, parsec, text, base64-bytestring, data-interval, filepath, stm-containers, list-t
361+ Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, network-transport-tcp, distributed-process, distributed-process-extras, distributed-process-client-server, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, parsec, text, base64-bytestring, data-interval, filepath, stm-containers, list-t
341362 GHC-Options: -Wall
342− C-sources: ProjectM36/DirectoryFsync.c
363+ if os(windows)
364+ Build-Depends: Win32 >= 2.3 && < 2.4
365+ Other-Modules: ProjectM36.Win32Handle
366+ else
367+ C-sources: ProjectM36/DirectoryFsync.c
368+ Build-Depends: unix
369+
343370
344371Test-Suite test-relation
345372 Default-Language: Haskell2010
346373 type: exitcode-stdio-1.0
347374 main-is: test/Relation/Basic.hs
348− Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, network-transport-tcp, distributed-process, distributed-process-extras, distributed-process-client-server, uuid, stm, deepseq, deepseq-generics, binary, unix, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, parsec, text, base64-bytestring, data-interval, filepath, stm-containers
375+ Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, network-transport-tcp, distributed-process, distributed-process-extras, distributed-process-client-server, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, parsec, text, base64-bytestring, data-interval, filepath, stm-containers
349376 GHC-Options: -Wall
350377
351378Test-Suite test-static-optimizer
352379 Default-Language: Haskell2010
353380 type: exitcode-stdio-1.0
354381 main-is: test/Relation/StaticOptimizer.hs
355− Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, network-transport-tcp, distributed-process, distributed-process-extras, distributed-process-client-server, uuid, stm, deepseq, deepseq-generics, binary, unix, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, parsec, text, base64-bytestring, data-interval, filepath, stm-containers
382+ Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, network-transport-tcp, distributed-process, distributed-process-extras, distributed-process-client-server, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, parsec, text, base64-bytestring, data-interval, filepath, stm-containers
356383 GHC-Options: -Wall
357384
358385Test-Suite test-transactiongraph-persist
359386 Default-Language: Haskell2010
360387 type: exitcode-stdio-1.0
361388 main-is: test/TransactionGraph/Persist.hs
362− Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, network-transport-tcp, distributed-process, distributed-process-extras, distributed-process-client-server, uuid, stm, deepseq, deepseq-generics, binary, unix, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, parsec, text, base64-bytestring, data-interval, filepath, stm-containers
389+ Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, network-transport-tcp, distributed-process, distributed-process-extras, distributed-process-client-server, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, parsec, text, base64-bytestring, data-interval, filepath, stm-containers
363390 GHC-Options: -Wall
364− C-sources: ProjectM36/DirectoryFsync.c
391+ if os(windows)
392+ Build-Depends: Win32 >= 2.3 && < 2.4
393+ Other-Modules: ProjectM36.Win32Handle
394+ else
395+ C-sources: ProjectM36/DirectoryFsync.c
396+ Build-Depends: unix
397+
365398
366399Test-Suite test-relation-import-csv
367400 Default-Language: Haskell2010
368401 type: exitcode-stdio-1.0
369402 main-is: test/Relation/Import/CSV.hs
370− Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, network-transport-tcp, distributed-process, distributed-process-extras, distributed-process-client-server, uuid, stm, deepseq, deepseq-generics, binary, unix, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, parsec, text, base64-bytestring, data-interval, filepath, stm-containers
403+ Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, network-transport-tcp, distributed-process, distributed-process-extras, distributed-process-client-server, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, parsec, text, base64-bytestring, data-interval, filepath, stm-containers
371404 GHC-Options: -Wall
372405
373406Test-Suite test-tutoriald-import-tutoriald
374407 Default-Language: Haskell2010
375408 type: exitcode-stdio-1.0
376409 main-is: test/TutorialD/Interpreter/Import/TutorialD.hs
377− Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, network-transport-tcp, distributed-process, distributed-process-extras, distributed-process-client-server, uuid, stm, deepseq, deepseq-generics, binary, unix, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, parsec, text, base64-bytestring, data-interval, filepath, stm-containers
410+ Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, network-transport-tcp, distributed-process, distributed-process-extras, distributed-process-client-server, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, parsec, text, base64-bytestring, data-interval, filepath, stm-containers
378411 GHC-Options: -Wall
379412
380413Test-Suite test-relation-export-csv
381414 Default-Language: Haskell2010
382415 type: exitcode-stdio-1.0
383416 main-is: test/Relation/Export/CSV.hs
384− Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, network-transport-tcp, distributed-process, distributed-process-extras, distributed-process-client-server, uuid, stm, deepseq, deepseq-generics, binary, unix, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, parsec, text, base64-bytestring, data-interval, filepath, stm-containers
417+ Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, network-transport-tcp, distributed-process, distributed-process-extras, distributed-process-client-server, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, parsec, text, base64-bytestring, data-interval, filepath, stm-containers
385418 GHC-Options: -Wall
386419
387420Test-Suite test-persistent-driver
388421 Default-Language: Haskell2010
389422 type: exitcode-stdio-1.0
390423 main-is: test/persistent-driver/test.hs
391− Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, network-transport-tcp, distributed-process, distributed-process-extras, distributed-process-client-server, uuid, stm, deepseq, deepseq-generics, binary, unix, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, parsec, text, base64-bytestring, data-interval, filepath, template-haskell, transformers, aeson, persistent-template, conduit, persistent, either, path-pieces, http-api-data, stm-containers, list-t
424+ Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, network-transport-tcp, distributed-process, distributed-process-extras, distributed-process-client-server, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, parsec, text, base64-bytestring, data-interval, filepath, template-haskell, transformers, aeson, persistent-template, conduit, persistent >= 2.2 && < 2.3, either, path-pieces, http-api-data, stm-containers, list-t
392425 GHC-Options: -Wall
393− C-sources: ProjectM36/DirectoryFsync.c
426+ if os(windows)
427+ Build-Depends: Win32 >= 2.3 && < 2.4
428+ Other-Modules: ProjectM36.Win32Handle
429+ else
430+ C-sources: ProjectM36/DirectoryFsync.c
431+ Build-Depends: unix
432+
433+
394434
395435Test-Suite test-transactiongraph-merge
396436 Default-Language: Haskell2010
@@ -404,23 +444,29 @@ benchmark bench
404444 Default-Language: Haskell2010
405445 type: exitcode-stdio-1.0
406446 main-is: benchmark/Relation.hs
407− Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, network-transport-tcp, distributed-process, distributed-process-extras, distributed-process-client-server, uuid, stm, deepseq, deepseq-generics, binary, unix, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, parsec, text, base64-bytestring, data-interval, filepath, criterion, stm-containers
447+ Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, network-transport-tcp, distributed-process, distributed-process-extras, distributed-process-client-server, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, parsec, text, base64-bytestring, data-interval, filepath, criterion, stm-containers
408448 GHC-Options: -Wall -rtsopts
409449
410450Test-Suite test-server
411451 Default-Language: Haskell2010
412452 type: exitcode-stdio-1.0
413453 main-is: test/Server/Main.hs
414− Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, network-transport-tcp, distributed-process, distributed-process-extras, distributed-process-client-server, uuid, stm, deepseq, deepseq-generics, binary, unix, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, parsec, text, base64-bytestring, data-interval, filepath, transformers, stm-containers, list-t
454+ Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, network-transport-tcp, distributed-process, distributed-process-extras, distributed-process-client-server, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, parsec, text, base64-bytestring, data-interval, filepath, transformers, stm-containers, list-t
415455 GHC-Options: -Wall
416− C-sources: ProjectM36/DirectoryFsync.c
456+ if os(windows)
457+ Build-Depends: Win32 >= 2.3 && < 2.4
458+ Other-Modules: ProjectM36.Win32Handle
459+ else
460+ C-sources: ProjectM36/DirectoryFsync.c
461+ Build-Depends: unix
462+
463+
417464
418465Executable Example-SimpleClient
419466 Default-Language: Haskell2010
420− Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, network-transport-tcp, distributed-process, distributed-process-extras, distributed-process-client-server, uuid, stm, deepseq, deepseq-generics, binary, unix, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, parsec, text, base64-bytestring, data-interval, filepath, transformers, stm-containers, list-t
467+ Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, network-transport-tcp, distributed-process, distributed-process-extras, distributed-process-client-server, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, parsec, text, base64-bytestring, data-interval, filepath, transformers, stm-containers, list-t
421468 Main-Is: examples/SimpleClient.hs
422469 GHC-Options: -Wall
423− C-sources: ProjectM36/DirectoryFsync.c
424470 Other-Modules: ProjectM36.Atom,
425471 ProjectM36.AtomFunction,
426472 ProjectM36.AtomFunctions.Basic,
@@ -457,13 +503,20 @@ Executable Example-SimpleClient
457503 ProjectM36.TupleSet,
458504 ProjectM36.TypeConstructor,
459505 ProjectM36.TypeConstructorDef
506+ if os(windows)
507+ Build-Depends: Win32 >= 2.3 && < 2.4
508+ Other-Modules: ProjectM36.Win32Handle
509+ else
510+ C-sources: ProjectM36/DirectoryFsync.c
511+ Build-Depends: unix
512+
513+
460514
461515Executable Example-PersistClient
462516 Default-Language: Haskell2010
463− Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, network-transport-tcp, distributed-process, distributed-process-extras, distributed-process-client-server, uuid, stm, deepseq, deepseq-generics, binary, unix, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, parsec, text, base64-bytestring, data-interval, filepath, transformers, stm-containers, list-t, persistent, aeson, path-pieces, either, conduit, http-api-data, template-haskell, persistent-template
517+ Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, network-transport-tcp, distributed-process, distributed-process-extras, distributed-process-client-server, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, parsec, text, base64-bytestring, data-interval, filepath, transformers, stm-containers, list-t, persistent, aeson, path-pieces, either, conduit, http-api-data, template-haskell, persistent-template
464518 Main-Is: examples/PersistClient.hs
465519 GHC-Options: -Wall
466− C-sources: ProjectM36/DirectoryFsync.c
467520 Other-Modules: Database.Persist.ProjectM36,
468521 ProjectM36.Atom,
469522 ProjectM36.AtomFunction,
@@ -499,4 +552,12 @@ Executable Example-PersistClient
499552 ProjectM36.Tuple,
500553 ProjectM36.TupleSet,
501554 ProjectM36.TypeConstructor,
502− ProjectM36.TypeConstructorDef
555+ ProjectM36.TypeConstructorDef
556+ if os(windows)
557+ Build-Depends: Win32 >= 2.3 && < 2.4
558+ Other-Modules: ProjectM36.Win32Handle
559+ else
560+ C-sources: ProjectM36/DirectoryFsync.c
561+ Build-Depends: unix
562+
563+