5Homepage: https://github.com/agentm/project-m36
6Bug-Reports: https://github.com/agentm/project-m36/issues
9Category: Relational Algebra
11Synopsis: Relational Algebra Engine
12Description: A relational algebra engine which can be used to persist and query Haskell data types.
15 Build-Depends: base>=4.8 && < 5.0
26 --critical uuid bug in lesser versions https://www.reddit.com/r/haskell/comments/4myot5/psa_make_sure_to_use_uuid_1312/
41 ,vector-binary-instances
58--needed for remote access
59 ,distributed-process-client-server
61 ,distributed-process-extras
62 ,distributed-process-async
63 ,network-transport-tcp
69 Exposed-Modules: ProjectM36.Error,
70 ProjectM36.Transaction,
71 ProjectM36.TransactionGraph,
72 ProjectM36.TransactionGraph.Show,
73 ProjectM36.TransactionGraph.Persist,
74 ProjectM36.TransactionGraph.Merge,
75 ProjectM36.TransGraphRelationalExpression,
78 ProjectM36.AttributeNames,
82 ProjectM36.AtomFunction,
84 ProjectM36.FunctionalDependency,
85 ProjectM36.DatabaseContext,
86 ProjectM36.DateExamples,
87 ProjectM36.DisconnectedTransaction,
88 ProjectM36.AtomFunctionBody,
89 ProjectM36.RelationalExpression,
90 ProjectM36.Relation.Show.HTML,
91 ProjectM36.StaticOptimizer,
92 ProjectM36.Relation.Show.Term,
93 ProjectM36.Relation.Show.CSV,
94 ProjectM36.Relation.Show.Gnuplot,
95 ProjectM36.Relation.Parse.CSV,
96 ProjectM36.IsomorphicSchema,
97 ProjectM36.InclusionDependency,
101 ProjectM36.AtomFunctions.Basic,
102 ProjectM36.AtomFunctions.Primitive,
103 ProjectM36.DataConstructorDef,
104 ProjectM36.DataTypes.Basic,
105 ProjectM36.DataTypes.Day,
106 ProjectM36.DataTypes.Either,
107 ProjectM36.DataTypes.Maybe,
108 ProjectM36.DataTypes.Primitive,
109 ProjectM36.MiscUtils,
110 ProjectM36.Notifications,
113 ProjectM36.Server.Config,
114 ProjectM36.Server.EntryPoints,
115 ProjectM36.Server.ParseArgs,
116 ProjectM36.Server.RemoteCallTypes,
119 ProjectM36.Transaction.Persist,
120 ProjectM36.TypeConstructor,
121 ProjectM36.TypeConstructorDef
124 Build-Depends: Win32 >= 2.3 && < 2.4
125 Other-Modules: ProjectM36.Win32Handle
127 C-sources: cbits/DirectoryFsync.c
130 Hs-Source-Dirs: ./src/lib
131 Default-Language: Haskell2010
132 Default-Extensions: OverloadedStrings, CPP
138 Build-Depends: base >=4.8 && <5.0,
139 ghc >= 7.8 && <= 8.1,
143 unordered-containers,
150 MonadRandom, MonadRandom,
153 vector-binary-instances,
167 megaparsec >= 5.2.0 && < 5.3,
171 optparse-applicative,
175 Other-Modules: TutorialD.Interpreter,
176 TutorialD.Interpreter.Base,
177 TutorialD.Interpreter.DatabaseContextExpr,
178 TutorialD.Interpreter.RODatabaseContextOperator,
179 TutorialD.Interpreter.TransactionGraphOperator,
180 TutorialD.Interpreter.DataTypes.Interval,
181 TutorialD.Interpreter.DataTypes.DateTime,
182 TutorialD.Interpreter.Import.BasicExamples,
183 TutorialD.Interpreter.InformationOperator,
184 TutorialD.Interpreter.Export.Base,
185 TutorialD.Interpreter.Export.CSV,
186 TutorialD.Interpreter.DatabaseContextIOOperator,
187 TutorialD.Interpreter.Import.Base,
188 TutorialD.Interpreter.Import.CSV,
189 TutorialD.Interpreter.Import.TutorialD,
190 TutorialD.Interpreter.RelationalExpr,
191 TutorialD.Interpreter.Types,
192 TutorialD.Interpreter.SchemaOperator,
193 TutorialD.Interpreter.TransGraphRelationalOperator,
194 TutorialD.Interpreter.SchemaOperator
195 main-is: TutorialD/tutd.hs
196 CPP-Options: -DPROJECTM36_VERSION="v0.1"
199 Hs-Source-Dirs: ./src/bin
200 Default-Language: Haskell2010
201 Default-Extensions: OverloadedStrings
203-- Build-Depends: Win32 >= 2.3 && < 2.4
204-- Other-Modules: ProjectM36.Win32Handle
206-- C-sources: ProjectM36/DirectoryFsync.c
207-- Build-Depends: unix
210Executable project-m36-server
212 ghc >= 7.8 && <= 8.1,
226 optparse-applicative,
229 vector-binary-instances,
235 unordered-containers,
241 Main-Is: ./src/bin/ProjectM36/Server/project-m36-server.hs
242 CPP-Options: -DPROJECTM36_VERSION="v0.1"
243 GHC-Options: -Wall -threaded -rtsopts
244 GHC-Prof-Options: -fprof-auto -rtsopts -threaded -Wall
245 Default-Language: Haskell2010
246 Default-Extensions: OverloadedStrings
249 Default-Language: Haskell2010
250 Default-Extensions: OverloadedStrings
251 Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, optparse-applicative, stm-containers, list-t, ghc, ghc-paths, transformers, project-m36 == 0.1, random, MonadRandom, semigroups
252 Other-Modules: TutorialD.Interpreter.Base,
253 TutorialD.Interpreter.DatabaseContextExpr,
254 TutorialD.Interpreter.RelationalExpr,
255 TutorialD.Interpreter.Types
256 main-is: benchmark/bigrel.hs
257 GHC-Options: -Wall -threaded -rtsopts
258 CPP-Options: -DPROJECTM36_VERSION="v0.1"
259 HS-Source-Dirs: ./src/bin
260 GHC-Prof-Options: -fprof-auto -rtsopts -threaded -Wall
262Test-Suite test-tutoriald
263 Default-Language: Haskell2010
264 Default-Extensions: OverloadedStrings
265 type: exitcode-stdio-1.0
266 main-is: test/TutorialD/Interpreter.hs
267 Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, stm-containers, list-t, project-m36 == 0.1, random, MonadRandom
268 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, TutorialD.Interpreter.DatabaseContextIOOperator, TutorialD.Interpreter.TestBase, TutorialD.Interpreter.TransGraphRelationalOperator, TutorialD.Interpreter.SchemaOperator
270 Hs-Source-Dirs: ./src/bin, ., test
271 CPP-Options: -DPROJECTM36_VERSION="v0.1"
273Test-Suite test-tutoriald-atomfunctionscript
274 Default-Language: Haskell2010
275 Default-Extensions: OverloadedStrings
276 type: exitcode-stdio-1.0
277 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.TestBase, TutorialD.Interpreter.TransGraphRelationalOperator, TutorialD.Interpreter.TransactionGraphOperator, TutorialD.Interpreter.Types, TutorialD.Interpreter.SchemaOperator
278 main-is: test/TutorialD/Interpreter/AtomFunctionScript.hs
279 Build-Depends: base, HUnit, project-m36 == 0.1, uuid, containers, megaparsec, text, vector, directory, bytestring, mtl, haskeline, random, MonadRandom
281 Hs-Source-Dirs: ./src/bin, ./test, .
282 CPP-Options: -DPROJECTM36_VERSION="v0.1"
284Test-Suite test-relation
285 Default-Language: Haskell2010
286 Default-Extensions: OverloadedStrings
287 type: exitcode-stdio-1.0
288 main-is: test/Relation/Basic.hs
289 Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, stm-containers, project-m36 == 0.1
292Test-Suite test-static-optimizer
293 Default-Language: Haskell2010
294 Default-Extensions: OverloadedStrings
295 type: exitcode-stdio-1.0
296 main-is: test/Relation/StaticOptimizer.hs
297 Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, stm-containers, project-m36 == 0.1
299 CPP-Options: -DPROJECTM36_VERSION="v0.1"
301Test-Suite test-transactiongraph-persist
302 Default-Language: Haskell2010
303 Default-Extensions: OverloadedStrings
304 type: exitcode-stdio-1.0
305 main-is: test/TransactionGraph/Persist.hs
306 Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, stm-containers, project-m36 == 0.1, random, MonadRandom
307 Other-Modules: TutorialD.Interpreter.Base, TutorialD.Interpreter.RelationalExpr, TutorialD.Interpreter.Types, TutorialD.Interpreter.DatabaseContextExpr, TutorialD.Interpreter.Import.BasicExamples
308 Hs-Source-Dirs: ., ./src/bin
311Test-Suite test-relation-import-csv
312 Default-Language: Haskell2010
313 Default-Extensions: OverloadedStrings
314 type: exitcode-stdio-1.0
315 main-is: test/Relation/Import/CSV.hs
316 Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, stm-containers, project-m36 == 0.1
318 CPP-Options: -DPROJECTM36_VERSION="v0.1"
320Test-Suite test-tutoriald-import-tutoriald
321 Default-Language: Haskell2010
322 Default-Extensions: OverloadedStrings
323 type: exitcode-stdio-1.0
324 main-is: test/TutorialD/Interpreter/Import/TutorialD.hs
325 Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, stm-containers, project-m36 == 0.1, random, MonadRandom
326 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 Hs-Source-Dirs: ., ./src/bin
330Test-Suite test-relation-export-csv
331 Default-Language: Haskell2010
332 Default-Extensions: OverloadedStrings
333 type: exitcode-stdio-1.0
334 main-is: test/Relation/Export/CSV.hs
335 Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, stm-containers, project-m36 == 0.1
338Test-Suite test-transactiongraph-merge
339 Default-Language: Haskell2010
340 Default-Extensions: OverloadedStrings
341 type: exitcode-stdio-1.0
342 main-is: test/TransactionGraph/Merge.hs
343 Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics, binary, 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 == 0.1
347 Default-Language: Haskell2010
348 Default-Extensions: OverloadedStrings
349 type: exitcode-stdio-1.0
350 main-is: benchmark/Relation.hs
351 Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, criterion, stm-containers, project-m36 == 0.1
352 GHC-Options: -Wall -rtsopts
353 Hs-Source-Dirs: ./src/bin
355Test-Suite test-server
356 Default-Language: Haskell2010
357 Default-Extensions: OverloadedStrings
358 type: exitcode-stdio-1.0
359 main-is: test/Server/Main.hs
360 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, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, transformers, stm-containers, list-t, project-m36 == 0.1, network-transport
361 HS-Source-Dirs: ., ./src/bin
364Executable Example-SimpleClient
365 Default-Language: Haskell2010
366 Default-Extensions: OverloadedStrings
367 Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, transformers, stm-containers, list-t, ghc, ghc-paths, project-m36 == 0.1, random, MonadRandom
368 Main-Is: examples/SimpleClient.hs
371Executable Example-OutOfTheTarpit
372 Default-Language: Haskell2010
373 Default-Extensions: OverloadedStrings
374 Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, transformers, stm-containers, list-t, aeson, path-pieces, either, conduit, http-api-data, template-haskell, ghc, ghc-paths, project-m36 == 0.1
375 Main-Is: examples/out_of_the_tarpit.hs
377 CPP-Options: -DPROJECTM36_VERSION="v0.1"
379Test-Suite test-scripts
380 Default-Language: Haskell2010
381 Default-Extensions: OverloadedStrings
382 type: exitcode-stdio-1.0
383 main-is: test/scripts.hs
384 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, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, transformers, stm-containers, list-t, project-m36 == 0.1, random, MonadRandom
385 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
387 Hs-Source-Dirs: ., ./src/bin
389Executable project-m36-websocket-server
390 Default-Language: Haskell2010
391 Build-Depends: base, aeson, path-pieces, either, conduit, http-api-data, template-haskell, websockets, aeson, uuid-aeson, optparse-applicative, project-m36 == 0.1, containers, bytestring, text, vector, uuid, megaparsec, haskeline, mtl, directory, base64-bytestring, random, MonadRandom, time, network-transport-tcp, semigroups
392 Main-Is: ProjectM36/Server/WebSocket/websocket-server.hs
393 Other-Modules: ProjectM36.Client.Json, ProjectM36.Server.RemoteCallTypes.Json, ProjectM36.Server.WebSocket, 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.TransactionGraphOperator, TutorialD.Interpreter.Types, TutorialD.Interpreter.TransGraphRelationalOperator, TutorialD.Interpreter.SchemaOperator
395 CPP-Options: -DPROJECTM36_VERSION="v0.1"
396 Hs-Source-Dirs: ./src/bin
397 Default-Extensions: OverloadedStrings
399Test-Suite test-websocket-server
400 Default-Language: Haskell2010
401 type: exitcode-stdio-1.0
402 main-is: test/Server/WebSocket.hs
403 Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, transformers, stm-containers, list-t, websockets, optparse-applicative, network, aeson, uuid-aeson, project-m36 == 0.1, random, MonadRandom, network-transport-tcp
404 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
405 Default-Extensions: OverloadedStrings
407 Hs-Source-Dirs: ./src/bin, .
408 CPP-Options: -DPROJECTM36_VERSION="v0.1"
410Test-Suite test-isomorphic-schemas
411 Default-Language: Haskell2010
412 type: exitcode-stdio-1.0
413 main-is: test/IsomorphicSchema.hs
414 Build-Depends: base, HUnit, Cabal, containers, hashable, unordered-containers, mtl, vector, vector-binary-instances, time, hashable-time, bytestring, uuid, stm, deepseq, deepseq-generics, binary, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, transformers, stm-containers, list-t, websockets, optparse-applicative, network, aeson, uuid-aeson, project-m36 == 0.1
415 Default-Extensions: OverloadedStrings
417 Hs-Source-Dirs: ./src/bin, .
418 CPP-Options: -DPROJECTM36_VERSION="v0.1"
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list