@@ -214,8 +214,8 @@ Executable project-m36-server
214 Build-Depends: ghc >= 8.2 && < 8.11
214 Build-Depends: ghc >= 8.2 && < 8.11
215 Build-Depends: base,
215 Build-Depends: base,
216 ghc-paths,
216 ghc-paths,
218 transformers,
217 transformers,
219 temporary,
219 temporary,
220 data-interval,
220 data-interval,
@@ -319,48 +319,33 @@ Test-Suite test-relation-import-csv
319 main-is: test/Relation/Import/CSV.hs
319 main-is: test/Relation/Import/CSV.hs
321Test-Suite test-tutoriald-import-tutoriald
321Test-Suite test-tutoriald-import-tutoriald
322− Default-Language: Haskell2010
322+ import: commontest
323− Default-Extensions: OverloadedStrings
324 type: exitcode-stdio-1.0
323 type: exitcode-stdio-1.0
325 main-is: test/TutorialD/Interpreter/Import/TutorialD.hs
324 main-is: test/TutorialD/Interpreter/Import/TutorialD.hs
326− Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics,parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, stm-containers, project-m36, random, MonadRandom, semigroups, parser-combinators
327 Other-Modules: TutorialD.Interpreter.Base, TutorialD.Interpreter.Import.Base, TutorialD.Interpreter.Import.TutorialD, TutorialD.Interpreter.RelationalExpr, TutorialD.Interpreter.Types, TutorialD.Interpreter.DatabaseContextExpr, TutorialD.Interpreter.Import.BasicExamples
325 Other-Modules: TutorialD.Interpreter.Base, TutorialD.Interpreter.Import.Base, TutorialD.Interpreter.Import.TutorialD, TutorialD.Interpreter.RelationalExpr, TutorialD.Interpreter.Types, TutorialD.Interpreter.DatabaseContextExpr, TutorialD.Interpreter.Import.BasicExamples
328− GHC-Options: -Wall -threaded
326+
329− Hs-Source-Dirs: ., ./src/bin
331Test-Suite test-relation-export-csv
328Test-Suite test-relation-export-csv
332− Default-Language: Haskell2010
329+ import: commontest
333− Default-Extensions: OverloadedStrings
334 type: exitcode-stdio-1.0
330 type: exitcode-stdio-1.0
335 main-is: test/Relation/Export/CSV.hs
331 main-is: test/Relation/Export/CSV.hs
336− Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics,parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, stm-containers, project-m36
337− GHC-Options: -Wall -threaded
339Test-Suite test-transactiongraph-merge
333Test-Suite test-transactiongraph-merge
340− Default-Language: Haskell2010
334+ import: commontest
341− Default-Extensions: OverloadedStrings
342 type: exitcode-stdio-1.0
335 type: exitcode-stdio-1.0
343 main-is: test/TransactionGraph/Merge.hs
336 main-is: test/TransactionGraph/Merge.hs
344− Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics,parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, template-haskell, transformers, aeson, conduit, either, path-pieces, http-api-data, stm-containers, list-t, project-m36
337+
345− GHC-Options: -Wall -threaded
347benchmark bench
339benchmark bench
348− Default-Language: Haskell2010
340+ import: commontest
349− Default-Extensions: OverloadedStrings
350 type: exitcode-stdio-1.0
341 type: exitcode-stdio-1.0
351 main-is: benchmark/Relation.hs
342 main-is: benchmark/Relation.hs
352− Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics,parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, criterion, stm-containers, project-m36
353− GHC-Options: -Wall -rtsopts -threaded
354− Hs-Source-Dirs: ./src/bin
356Test-Suite test-server
344Test-Suite test-server
357− Default-Language: Haskell2010
345+ import: commontest
358− Default-Extensions: OverloadedStrings
359 type: exitcode-stdio-1.0
346 type: exitcode-stdio-1.0
360 main-is: test/Server/Main.hs
347 main-is: test/Server/Main.hs
361− Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, network-transport-tcp, uuid, stm, deepseq, deepseq-generics,parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, transformers, stm-containers, list-t, project-m36, network-transport, semigroups
348+
362− HS-Source-Dirs: ., ./src/bin
363− GHC-Options: -Wall -threaded
365Executable Example-SimpleClient
350Executable Example-SimpleClient
366 Default-Language: Haskell2010
351 Default-Language: Haskell2010
@@ -408,14 +393,10 @@ Executable Example-DerivingCustomTupleable
408 GHC-Options: -Wall -threaded
393 GHC-Options: -Wall -threaded
410Test-Suite test-scripts
395Test-Suite test-scripts
411− Default-Language: Haskell2010
396+ import: commontest
412− Default-Extensions: OverloadedStrings
413 type: exitcode-stdio-1.0
397 type: exitcode-stdio-1.0
414 main-is: test/scripts.hs
398 main-is: test/scripts.hs
415− Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, network-transport-tcp, uuid, stm, deepseq, deepseq-generics,parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, transformers, stm-containers, list-t, project-m36, random, MonadRandom, semigroups, parser-combinators
416 Other-Modules: TutorialD.Interpreter.Base, TutorialD.Interpreter.DatabaseContextExpr, TutorialD.Interpreter.Import.Base, TutorialD.Interpreter.Import.TutorialD, TutorialD.Interpreter.RelationalExpr, TutorialD.Interpreter.Types, TutorialD.Interpreter.Import.BasicExamples
399 Other-Modules: TutorialD.Interpreter.Base, TutorialD.Interpreter.DatabaseContextExpr, TutorialD.Interpreter.Import.Base, TutorialD.Interpreter.Import.TutorialD, TutorialD.Interpreter.RelationalExpr, TutorialD.Interpreter.Types, TutorialD.Interpreter.Import.BasicExamples
417− GHC-Options: -Wall -threaded
418− Hs-Source-Dirs: ., ./src/bin
420Executable project-m36-websocket-server
401Executable project-m36-websocket-server
421 Default-Language: Haskell2010
402 Default-Language: Haskell2010
@@ -427,70 +408,42 @@ Executable project-m36-websocket-server
427 Default-Extensions: OverloadedStrings
408 Default-Extensions: OverloadedStrings
429Test-Suite test-websocket-server
410Test-Suite test-websocket-server
430− Default-Language: Haskell2010
411+ import: commontest
431 type: exitcode-stdio-1.0
412 type: exitcode-stdio-1.0
432 main-is: test/Server/WebSocket.hs
413 main-is: test/Server/WebSocket.hs
433− Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics,parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, transformers, stm-containers, list-t, websockets, optparse-applicative, network, aeson, project-m36, random, MonadRandom, network-transport-tcp, semigroups, parser-combinators
434 Other-Modules: TutorialD.Interpreter.Export.Base, TutorialD.Interpreter.Export.CSV, TutorialD.Interpreter.Import.BasicExamples, TutorialD.Interpreter.Import.CSV, TutorialD.Interpreter.InformationOperator, TutorialD.Interpreter.RODatabaseContextOperator, TutorialD.Interpreter.TransactionGraphOperator, ProjectM36.Client.Json, ProjectM36.Server.RemoteCallTypes.Json, ProjectM36.Server.WebSocket, TutorialD.Interpreter, TutorialD.Interpreter.Base, TutorialD.Interpreter.DatabaseContextExpr, TutorialD.Interpreter.Import.Base, TutorialD.Interpreter.Import.TutorialD, TutorialD.Interpreter.RelationalExpr, TutorialD.Interpreter.Types, TutorialD.Interpreter.DatabaseContextIOOperator, TutorialD.Interpreter.TransGraphRelationalOperator, TutorialD.Interpreter.SchemaOperator
414 Other-Modules: TutorialD.Interpreter.Export.Base, TutorialD.Interpreter.Export.CSV, TutorialD.Interpreter.Import.BasicExamples, TutorialD.Interpreter.Import.CSV, TutorialD.Interpreter.InformationOperator, TutorialD.Interpreter.RODatabaseContextOperator, TutorialD.Interpreter.TransactionGraphOperator, ProjectM36.Client.Json, ProjectM36.Server.RemoteCallTypes.Json, ProjectM36.Server.WebSocket, TutorialD.Interpreter, TutorialD.Interpreter.Base, TutorialD.Interpreter.DatabaseContextExpr, TutorialD.Interpreter.Import.Base, TutorialD.Interpreter.Import.TutorialD, TutorialD.Interpreter.RelationalExpr, TutorialD.Interpreter.Types, TutorialD.Interpreter.DatabaseContextIOOperator, TutorialD.Interpreter.TransGraphRelationalOperator, TutorialD.Interpreter.SchemaOperator
435− Default-Extensions: OverloadedStrings
436− GHC-Options: -Wall -threaded
437− Hs-Source-Dirs: ./src/bin, .
439Test-Suite test-isomorphic-schemas
416Test-Suite test-isomorphic-schemas
440− Default-Language: Haskell2010
417+ import: commontest
441 type: exitcode-stdio-1.0
418 type: exitcode-stdio-1.0
442 main-is: test/IsomorphicSchema.hs
419 main-is: test/IsomorphicSchema.hs
443− Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics,parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, transformers, stm-containers, list-t, websockets, optparse-applicative, network, aeson, project-m36
444− Default-Extensions: OverloadedStrings
445− GHC-Options: -Wall -threaded
446− Hs-Source-Dirs: ./src/bin, .
448Test-Suite test-atomable
421Test-Suite test-atomable
449− Default-Language: Haskell2010
422+ import: commontest
450 type: exitcode-stdio-1.0
423 type: exitcode-stdio-1.0
451 main-is: test/Relation/Atomable.hs
424 main-is: test/Relation/Atomable.hs
452− Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics,parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, transformers, stm-containers, list-t, websockets, optparse-applicative, network, aeson, project-m36, random, MonadRandom, semigroups, parser-combinators, winery
453 Other-Modules: TutorialD.Interpreter, TutorialD.Interpreter.Base, TutorialD.Interpreter.DatabaseContextExpr, TutorialD.Interpreter.DatabaseContextIOOperator, TutorialD.Interpreter.Export.Base, TutorialD.Interpreter.Export.CSV, TutorialD.Interpreter.Import.Base, TutorialD.Interpreter.Import.BasicExamples, TutorialD.Interpreter.Import.CSV, TutorialD.Interpreter.Import.TutorialD, TutorialD.Interpreter.InformationOperator, TutorialD.Interpreter.RODatabaseContextOperator, TutorialD.Interpreter.RelationalExpr, TutorialD.Interpreter.SchemaOperator, TutorialD.Interpreter.TestBase, TutorialD.Interpreter.TransGraphRelationalOperator, TutorialD.Interpreter.TransactionGraphOperator, TutorialD.Interpreter.Types
425 Other-Modules: TutorialD.Interpreter, TutorialD.Interpreter.Base, TutorialD.Interpreter.DatabaseContextExpr, TutorialD.Interpreter.DatabaseContextIOOperator, TutorialD.Interpreter.Export.Base, TutorialD.Interpreter.Export.CSV, TutorialD.Interpreter.Import.Base, TutorialD.Interpreter.Import.BasicExamples, TutorialD.Interpreter.Import.CSV, TutorialD.Interpreter.Import.TutorialD, TutorialD.Interpreter.InformationOperator, TutorialD.Interpreter.RODatabaseContextOperator, TutorialD.Interpreter.RelationalExpr, TutorialD.Interpreter.SchemaOperator, TutorialD.Interpreter.TestBase, TutorialD.Interpreter.TransGraphRelationalOperator, TutorialD.Interpreter.TransactionGraphOperator, TutorialD.Interpreter.Types
454− Default-Extensions: OverloadedStrings
455− GHC-Options: -Wall -threaded
456− Hs-Source-Dirs: ./src/bin, ., test/
458Test-Suite test-multiprocess-access
427Test-Suite test-multiprocess-access
459− Default-Language: Haskell2010
428+ import: commontest
460 type: exitcode-stdio-1.0
429 type: exitcode-stdio-1.0
461 main-is: test/MultiProcessDatabaseAccess.hs
430 main-is: test/MultiProcessDatabaseAccess.hs
462− Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics,parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, transformers, stm-containers, list-t, websockets, optparse-applicative, network, aeson, project-m36, random, MonadRandom
463− Default-Extensions: OverloadedStrings
464− GHC-Options: -Wall -threaded
465− Hs-Source-Dirs: ./src/bin, ., test/
467Test-Suite test-transactiongraph-automerge
432Test-Suite test-transactiongraph-automerge
468− Default-Language: Haskell2010
433+ import: commontest
469 type: exitcode-stdio-1.0
434 type: exitcode-stdio-1.0
470 main-is: test/TransactionGraph/Automerge.hs
435 main-is: test/TransactionGraph/Automerge.hs
471− Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics,parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, transformers, stm-containers, list-t, websockets, optparse-applicative, network, aeson, project-m36, random, MonadRandom, semigroups, parser-combinators
472 Other-Modules: TutorialD.Interpreter, TutorialD.Interpreter.Base, TutorialD.Interpreter.DatabaseContextExpr, TutorialD.Interpreter.DatabaseContextIOOperator, TutorialD.Interpreter.Export.Base, TutorialD.Interpreter.Export.CSV, TutorialD.Interpreter.Import.Base, TutorialD.Interpreter.Import.BasicExamples, TutorialD.Interpreter.Import.CSV, TutorialD.Interpreter.Import.TutorialD, TutorialD.Interpreter.InformationOperator, TutorialD.Interpreter.RODatabaseContextOperator, TutorialD.Interpreter.RelationalExpr, TutorialD.Interpreter.SchemaOperator, TutorialD.Interpreter.TestBase, TutorialD.Interpreter.TransGraphRelationalOperator, TutorialD.Interpreter.TransactionGraphOperator, TutorialD.Interpreter.Types
436 Other-Modules: TutorialD.Interpreter, TutorialD.Interpreter.Base, TutorialD.Interpreter.DatabaseContextExpr, TutorialD.Interpreter.DatabaseContextIOOperator, TutorialD.Interpreter.Export.Base, TutorialD.Interpreter.Export.CSV, TutorialD.Interpreter.Import.Base, TutorialD.Interpreter.Import.BasicExamples, TutorialD.Interpreter.Import.CSV, TutorialD.Interpreter.Import.TutorialD, TutorialD.Interpreter.InformationOperator, TutorialD.Interpreter.RODatabaseContextOperator, TutorialD.Interpreter.RelationalExpr, TutorialD.Interpreter.SchemaOperator, TutorialD.Interpreter.TestBase, TutorialD.Interpreter.TransGraphRelationalOperator, TutorialD.Interpreter.TransactionGraphOperator, TutorialD.Interpreter.Types
473− Default-Extensions: OverloadedStrings
474− GHC-Options: -Wall -threaded
475− Hs-Source-Dirs: ./src/bin, ., test/
477Test-Suite test-tupleable
438Test-Suite test-tupleable
478− Default-Language: Haskell2010
439+ import: commontest
479 type: exitcode-stdio-1.0
440 type: exitcode-stdio-1.0
480 main-is: test/Relation/Tupleable.hs
441 main-is: test/Relation/Tupleable.hs
481− Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics,parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, transformers, stm-containers, list-t, websockets, optparse-applicative, network, aeson, project-m36, random, MonadRandom, semigroups
482− Default-Extensions: OverloadedStrings
483− GHC-Options: -Wall -threaded
484− Hs-Source-Dirs: ./src/bin, ., test/
486Test-Suite test-client-simple
443Test-Suite test-client-simple
487− Default-Language: Haskell2010
444+ import: commontest
488 Main-Is: test/Client/Simple.hs
445 Main-Is: test/Client/Simple.hs
489 type: exitcode-stdio-1.0
446 type: exitcode-stdio-1.0
490− Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics,parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, transformers, stm-containers, list-t, websockets, optparse-applicative, network, aeson, project-m36, random, MonadRandom, semigroups
491− Default-Extensions: OverloadedStrings
492− GHC-Options: -Wall -threaded
493− Hs-Source-Dirs: ./src/bin, ., test/
495-- test for file handle leaks
448-- test for file handle leaks
496Executable handles
449Executable handles