@@ -67,6 +67,7 @@ Library
6767 ,distributed-process
6868 ,stm-containers
6969 ,list-t
70+ ,optparse-applicative
7071 Exposed-Modules: ProjectM36.Error,
7172 ProjectM36.Transaction,
7273 ProjectM36.TransactionGraph,
@@ -105,6 +106,10 @@ Library
105106 ProjectM36.MiscUtils,
106107 ProjectM36.Notifications,
107108 ProjectM36.Relation,
109+ ProjectM36.Server,
110+ ProjectM36.Server.Config,
111+ ProjectM36.Server.EntryPoints,
112+ ProjectM36.Server.ParseArgs,
108113 ProjectM36.Server.RemoteCallTypes,
109114 ProjectM36.Session,
110115 ProjectM36.Sessions,
@@ -128,7 +133,7 @@ Executable tutd
128133 Build-Depends: base >=4.8 && <4.9,
129134 ghc >= 7.8 && <= 8.0.1,
130135 ghc-paths,
131− project-m36,
136+ project-m36 == 0.1,
132137 containers,
133138 unordered-containers,
134139 hashable,
@@ -201,6 +206,7 @@ Executable project-m36-server
201206 Build-Depends: base,
202207 ghc >= 7.8 && <= 8.0.1,
203208 ghc-paths,
209+ project-m36 == 0.1,
204210 distributed-process-client-server,
205211 distributed-process-extras,
206212 distributed-process-async,
@@ -234,126 +240,37 @@ Executable project-m36-server
234240 stm-containers,
235241 list-t,
236242 base64-bytestring
237− Main-Is: ProjectM36/Server/project-m36-server.hs
243+ Main-Is: ./src/bin/ProjectM36/Server/project-m36-server.hs
238244 CPP-Options: -DPROJECTM36_VERSION="v0.1"
239245 GHC-Options: -Wall -threaded -rtsopts
240246 GHC-Prof-Options: -fprof-auto -rtsopts -threaded -Wall
241247 Default-Language: Haskell2010
242248 Default-Extensions: OverloadedStrings
243− Other-Modules: ProjectM36.Atom,
244− ProjectM36.AtomFunction,
245− ProjectM36.AtomFunctions.Basic,
246− ProjectM36.AtomFunctions.Primitive,
247− ProjectM36.AtomType,
248− ProjectM36.Attribute,
249− ProjectM36.AttributeNames,
250− ProjectM36.Base,
251− ProjectM36.Client,
252− ProjectM36.ConcreteTypeRep,
253− ProjectM36.DataConstructorDef,
254− ProjectM36.DataTypes.Basic,
255− ProjectM36.DataTypes.Day,
256− ProjectM36.DataTypes.Either,
257− ProjectM36.DataTypes.Maybe,
258− ProjectM36.DataTypes.Primitive,
259− ProjectM36.DatabaseContext,
260− ProjectM36.Error,
261− ProjectM36.MiscUtils,
262− ProjectM36.Notifications,
263− ProjectM36.Persist,
264− ProjectM36.Relation,
265− ProjectM36.RelationalExpression,
266− ProjectM36.Server,
267− ProjectM36.Server.Config,
268− ProjectM36.Server.EntryPoints,
269− ProjectM36.Server.ParseArgs,
270− ProjectM36.Server.RemoteCallTypes,
271− ProjectM36.Session,
272− ProjectM36.Sessions,
273− ProjectM36.StaticOptimizer,
274− ProjectM36.Transaction,
275− ProjectM36.Transaction.Persist,
276− ProjectM36.TransactionGraph,
277− ProjectM36.TransactionGraph.Persist,
278− ProjectM36.TransactionGraph.Merge,
279− ProjectM36.Tuple,
280− ProjectM36.TupleSet,
281− ProjectM36.TypeConstructor,
282− ProjectM36.TypeConstructorDef
283− if os(windows)
284− Build-Depends: Win32 >= 2.3 && < 2.4
285− Other-Modules: ProjectM36.Win32Handle
286− else
287− C-sources: ProjectM36/DirectoryFsync.c
288− Build-Depends: unix
289−
290249
291250Executable bigrel
292251 Default-Language: Haskell2010
293252 Default-Extensions: OverloadedStrings
294− 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, ghc, ghc-paths, transformers
295− Other-Modules: ProjectM36.Base,
296− ProjectM36.Relation
297− ProjectM36.Tuple,
298− ProjectM36.Error,
299− ProjectM36.Relation.Show.CSV,
300− ProjectM36.Atom,
301− ProjectM36.AtomFunction,
302− ProjectM36.AtomFunctions.Basic,
303− ProjectM36.AtomFunctions.Primitive,
304− ProjectM36.AtomType,
305− ProjectM36.Attribute,
306− ProjectM36.AttributeNames,
307− ProjectM36.ConcreteTypeRep,
308− ProjectM36.DataConstructorDef,
309− ProjectM36.DataTypes.Basic,
310− ProjectM36.DataTypes.Day,
311− ProjectM36.Relation.Show.Term,
312− ProjectM36.DataTypes.Either,
313− ProjectM36.DataTypes.Maybe,
314− ProjectM36.DataTypes.Primitive,
315− ProjectM36.DatabaseContext,
316− ProjectM36.DateExamples,
317− ProjectM36.Key,
318− ProjectM36.MiscUtils,
319− ProjectM36.Relation.Show.HTML,
320− ProjectM36.RelationalExpression,
321− ProjectM36.StaticOptimizer,
322− ProjectM36.TupleSet,
323− ProjectM36.TypeConstructor,
324− ProjectM36.TypeConstructorDef,
325− TutorialD.Interpreter.Base,
253+ 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, ghc, ghc-paths, transformers, project-m36 == 0.1
254+ Other-Modules: TutorialD.Interpreter.Base,
326255 TutorialD.Interpreter.DatabaseContextExpr,
327256 TutorialD.Interpreter.RelationalExpr,
328257 TutorialD.Interpreter.Types
329258 main-is: benchmark/bigrel.hs
330259 GHC-Options: -Wall -threaded -rtsopts
331260 CPP-Options: -DPROJECTM36_VERSION="v0.1"
261+ HS-Source-Dirs: ./src/bin
332262 GHC-Prof-Options: -fprof-auto -rtsopts -threaded -Wall
333− if os(windows)
334− Build-Depends: Win32 >= 2.3 && < 2.4
335− Other-Modules: ProjectM36.Win32Handle
336− else
337− C-sources: ProjectM36/DirectoryFsync.c
338− Build-Depends: unix
339−
340263
341264Test-Suite test-tutoriald
342265 Default-Language: Haskell2010
343266 Default-Extensions: OverloadedStrings
344267 type: exitcode-stdio-1.0
345268 main-is: test/TutorialD/Interpreter.hs
346− 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
347− Other-Modules: ProjectM36.Atom, ProjectM36.AtomFunction, ProjectM36.AtomFunctions.Basic, ProjectM36.AtomFunctions.Primitive, ProjectM36.AtomType, ProjectM36.Attribute, ProjectM36.AttributeNames, ProjectM36.Base, ProjectM36.Client, ProjectM36.ConcreteTypeRep, ProjectM36.DataConstructorDef, ProjectM36.DataTypes.Basic, ProjectM36.DataTypes.Day, ProjectM36.DataTypes.Either, ProjectM36.DataTypes.Maybe, ProjectM36.DataTypes.Primitive, ProjectM36.DatabaseContext, ProjectM36.DateExamples, ProjectM36.Error, ProjectM36.Key, ProjectM36.MiscUtils, ProjectM36.Notifications, ProjectM36.Persist, ProjectM36.Relation, ProjectM36.Relation.Parse.CSV, ProjectM36.Relation.Show.CSV, ProjectM36.Relation.Show.Gnuplot, ProjectM36.Relation.Show.Term, ProjectM36.RelationalExpression, ProjectM36.Server.RemoteCallTypes, ProjectM36.Session, ProjectM36.Sessions, ProjectM36.StaticOptimizer, ProjectM36.Transaction, ProjectM36.Transaction.Persist, ProjectM36.TransactionGraph, ProjectM36.TransactionGraph.Persist, ProjectM36.TransactionGraph.Merge, ProjectM36.Tuple, ProjectM36.TupleSet, ProjectM36.TypeConstructor, ProjectM36.TypeConstructorDef, TutorialD.Interpreter, TutorialD.Interpreter.Base, TutorialD.Interpreter.Export.Base, TutorialD.Interpreter.Export.CSV, TutorialD.Interpreter.Import.Base, TutorialD.Interpreter.Import.CSV, TutorialD.Interpreter.Import.TutorialD, TutorialD.Interpreter.RODatabaseContextOperator, TutorialD.Interpreter.RelationalExpr, TutorialD.Interpreter.TransactionGraphOperator, TutorialD.Interpreter.Types, TutorialD.Interpreter.DatabaseContextExpr, TutorialD.Interpreter.InformationOperator, TutorialD.Interpreter.Import.BasicExamples
269+ 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, project-m36 == 0.1
270+ Other-Modules: TutorialD.Interpreter, TutorialD.Interpreter.Base, TutorialD.Interpreter.Export.Base, TutorialD.Interpreter.Export.CSV, TutorialD.Interpreter.Import.Base, TutorialD.Interpreter.Import.CSV, TutorialD.Interpreter.Import.TutorialD, TutorialD.Interpreter.RODatabaseContextOperator, TutorialD.Interpreter.RelationalExpr, TutorialD.Interpreter.TransactionGraphOperator, TutorialD.Interpreter.Types, TutorialD.Interpreter.DatabaseContextExpr, TutorialD.Interpreter.InformationOperator, TutorialD.Interpreter.Import.BasicExamples
348271 GHC-Options: -Wall
272+ Hs-Source-Dirs: ./src/bin, .
349273 CPP-Options: -DPROJECTM36_VERSION="v0.1"
350− if os(windows)
351− Build-Depends: Win32 >= 2.3 && < 2.4
352− Other-Modules: ProjectM36.Win32Handle
353− else
354− C-sources: ProjectM36/DirectoryFsync.c
355− Build-Depends: unix
356−
357274
358275Test-Suite test-relation
359276 Default-Language: Haskell2010
@@ -363,6 +280,7 @@ Test-Suite test-relation
363280 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
364281 Other-Modules: ProjectM36.Atom, ProjectM36.AtomFunction, ProjectM36.AtomFunctions.Basic, ProjectM36.AtomFunctions.Primitive, ProjectM36.AtomType, ProjectM36.Attribute, ProjectM36.AttributeNames, ProjectM36.Base, ProjectM36.ConcreteTypeRep, ProjectM36.DataConstructorDef, ProjectM36.DataTypes.Basic, ProjectM36.DataTypes.Day, ProjectM36.DataTypes.Either, ProjectM36.DataTypes.Maybe, ProjectM36.DataTypes.Primitive, ProjectM36.DatabaseContext, ProjectM36.DateExamples, ProjectM36.Error, ProjectM36.Key, ProjectM36.MiscUtils, ProjectM36.Relation, ProjectM36.Tuple, ProjectM36.TupleSet, ProjectM36.TypeConstructor, ProjectM36.TypeConstructorDef, ProjectM36.RelationalExpression
365282 GHC-Options: -Wall
283+ Hs-Source-Dirs: ./src/bin
366284 CPP-Options: -DPROJECTM36_VERSION="v0.1"
367285
368286Test-Suite test-static-optimizer
@@ -483,106 +401,19 @@ Test-Suite test-server
483401Executable Example-SimpleClient
484402 Default-Language: Haskell2010
485403 Default-Extensions: OverloadedStrings
486− 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, ghc, ghc-paths
404+ 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, ghc, ghc-paths, project-m36 == 0.1
487405 Main-Is: examples/SimpleClient.hs
488406 GHC-Options: -Wall
489− CPP-Options: -DPROJECTM36_VERSION="v0.1"
490− Other-Modules: ProjectM36.Atom,
491− ProjectM36.AtomFunction,
492− ProjectM36.AtomFunctions.Basic,
493− ProjectM36.AtomFunctions.Primitive,
494− ProjectM36.AtomType,
495− ProjectM36.Attribute,
496− ProjectM36.AttributeNames,
497− ProjectM36.Base,
498− ProjectM36.Client,
499− ProjectM36.ConcreteTypeRep,
500− ProjectM36.DataConstructorDef,
501− ProjectM36.DataTypes.Basic,
502− ProjectM36.DataTypes.Day,
503− ProjectM36.DataTypes.Either,
504− ProjectM36.DataTypes.Maybe,
505− ProjectM36.DataTypes.Primitive,
506− ProjectM36.DatabaseContext,
507− ProjectM36.Error,
508− ProjectM36.MiscUtils,
509− ProjectM36.Notifications,
510− ProjectM36.Persist,
511− ProjectM36.Relation,
512− ProjectM36.Relation.Show.Term,
513− ProjectM36.RelationalExpression,
514− ProjectM36.Server.RemoteCallTypes,
515− ProjectM36.Session,
516− ProjectM36.Sessions,
517− ProjectM36.StaticOptimizer,
518− ProjectM36.Transaction,
519− ProjectM36.Transaction.Persist,
520− ProjectM36.TransactionGraph,
521− ProjectM36.TransactionGraph.Persist,
522− ProjectM36.TransactionGraph.Merge,
523− ProjectM36.Tuple,
524− ProjectM36.TupleSet,
525− ProjectM36.TypeConstructor,
526− ProjectM36.TypeConstructorDef
527− if os(windows)
528− Build-Depends: Win32 >= 2.3 && < 2.4
529− Other-Modules: ProjectM36.Win32Handle
530− else
531− C-sources: ProjectM36/DirectoryFsync.c
532− Build-Depends: unix
533−
534−
535407
536408Executable Example-PersistClient
537409 Default-Language: Haskell2010
538410 Default-Extensions: OverloadedStrings
539− 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, ghc, ghc-paths
411+ 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, ghc, ghc-paths, project-m36 == 0.1
540412 Main-Is: examples/PersistClient.hs
541413 GHC-Options: -Wall
542414 CPP-Options: -DPROJECTM36_VERSION="v0.1"
543− Other-Modules: Database.Persist.ProjectM36,
544− ProjectM36.Atom,
545− ProjectM36.AtomFunction,
546− ProjectM36.AtomFunctions.Basic,
547− ProjectM36.AtomFunctions.Primitive,
548− ProjectM36.AtomType,
549− ProjectM36.Attribute,
550− ProjectM36.AttributeNames,
551− ProjectM36.Base,
552− ProjectM36.Client,
553− ProjectM36.ConcreteTypeRep,
554− ProjectM36.DataConstructorDef,
555− ProjectM36.DataTypes.Basic,
556− ProjectM36.DataTypes.Day,
557− ProjectM36.DataTypes.Either,
558− ProjectM36.DataTypes.Maybe,
559− ProjectM36.DataTypes.Primitive,
560− ProjectM36.DatabaseContext,
561− ProjectM36.Error,
562− ProjectM36.MiscUtils,
563− ProjectM36.Notifications,
564− ProjectM36.Persist,
565− ProjectM36.Relation,
566− ProjectM36.RelationalExpression,
567− ProjectM36.Server.RemoteCallTypes,
568− ProjectM36.Session,
569− ProjectM36.Sessions,
570− ProjectM36.StaticOptimizer,
571− ProjectM36.Transaction,
572− ProjectM36.Transaction.Persist,
573− ProjectM36.TransactionGraph,
574− ProjectM36.TransactionGraph.Persist,
575− ProjectM36.TransactionGraph.Merge,
576− ProjectM36.Tuple,
577− ProjectM36.TupleSet,
578− ProjectM36.TypeConstructor,
579− ProjectM36.TypeConstructorDef
580− if os(windows)
581− Build-Depends: Win32 >= 2.3 && < 2.4
582− Other-Modules: ProjectM36.Win32Handle
583− else
584− C-sources: ProjectM36/DirectoryFsync.c
585− Build-Depends: unix
415+ Other-Modules: Database.Persist.ProjectM36
416+ Hs-Source-Dirs: ./src/persistent, .
586417
587418Test-Suite test-scripts
588419 Default-Language: Haskell2010
@@ -602,18 +433,12 @@ Test-Suite test-scripts
602433
603434Executable project-m36-websocket-server
604435 Default-Language: Haskell2010
605− 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, websockets, aeson, uuid-aeson, optparse-applicative, ghc, ghc-paths
606− Other-Modules: ProjectM36.Atom, ProjectM36.AtomFunction, ProjectM36.AtomFunctions.Basic, ProjectM36.AtomFunctions.Primitive, ProjectM36.AtomType, ProjectM36.Attribute, ProjectM36.AttributeNames, ProjectM36.Base, ProjectM36.Client, ProjectM36.Client.Json, ProjectM36.ConcreteTypeRep, ProjectM36.DataConstructorDef, ProjectM36.DataTypes.Basic, ProjectM36.DataTypes.Day, ProjectM36.DataTypes.Either, ProjectM36.DataTypes.Maybe, ProjectM36.DataTypes.Primitive, ProjectM36.DatabaseContext, ProjectM36.DateExamples, ProjectM36.Error, ProjectM36.Key, ProjectM36.MiscUtils, ProjectM36.Notifications, ProjectM36.Persist, ProjectM36.Relation, ProjectM36.Relation.Parse.CSV, ProjectM36.Relation.Show.CSV, ProjectM36.Relation.Show.Gnuplot, ProjectM36.Relation.Show.Term, ProjectM36.RelationalExpression, ProjectM36.Server, ProjectM36.Server.Config, ProjectM36.Server.EntryPoints, ProjectM36.Server.ParseArgs, ProjectM36.Server.RemoteCallTypes, ProjectM36.Server.RemoteCallTypes.Json, ProjectM36.Server.WebSocket, ProjectM36.Session, ProjectM36.Sessions, ProjectM36.StaticOptimizer, ProjectM36.Transaction, ProjectM36.Transaction.Persist, ProjectM36.TransactionGraph, ProjectM36.TransactionGraph.Merge, ProjectM36.TransactionGraph.Persist, ProjectM36.Tuple, ProjectM36.TupleSet, ProjectM36.TypeConstructor, ProjectM36.TypeConstructorDef, TutorialD.Interpreter, TutorialD.Interpreter.Base, TutorialD.Interpreter.DatabaseContextExpr, 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.TransactionGraphOperator, TutorialD.Interpreter.Types
607− Main-Is: ProjectM36/Server/WebSocket/Main.hs
436+ Build-Depends: base, aeson, path-pieces, either, conduit, http-api-data, template-haskell, persistent-template, websockets, aeson, uuid-aeson, optparse-applicative, project-m36 == 0.1, containers, bytestring, text, vector, uuid, parsec, haskeline, mtl, directory, base64-bytestring
437+ Main-Is: ProjectM36/Server/WebSocket/websocket-server.hs
608438 GHC-Options: -Wall
609439 CPP-Options: -DPROJECTM36_VERSION="v0.1"
440+ Hs-Source-Dirs: src/bin
610441 Default-Extensions: OverloadedStrings
611− if os(windows)
612− Build-Depends: Win32 >= 2.3 && < 2.4
613− Other-Modules: ProjectM36.Win32Handle
614− else
615− C-sources: ProjectM36/DirectoryFsync.c
616− Build-Depends: unix
617442
618443Test-Suite test-websocket-server
619444 Default-Language: Haskell2010