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 && < 4.9
16 ,ghc >= 7.8 && <= 8.0.1
24 --critical uuid bug in lesser versions https://www.reddit.com/r/haskell/comments/4myot5/psa_make_sure_to_use_uuid_1312/
39 ,vector-binary-instances
51--required for persistent db driver
52 ,persistent >= 2.2 && < 2.3
59--needed for remote access
60 ,distributed-process-client-server
61 ,distributed-process-extras
62 ,distributed-process-async
64 ,network-transport-tcp
71 Exposed-Modules: ProjectM36.Error,
72 ProjectM36.Transaction,
73 ProjectM36.TransactionGraph,
74 ProjectM36.TransactionGraph.Show,
75 ProjectM36.TransactionGraph.Persist,
78 ProjectM36.AttributeNames,
82 ProjectM36.AtomFunction,
84 ProjectM36.DatabaseContext,
85 ProjectM36.DateExamples,
86 ProjectM36.AtomFunctionBody,
87 ProjectM36.RelationalExpression,
88 ProjectM36.Relation.Show.HTML,
89 ProjectM36.StaticOptimizer,
90 ProjectM36.Relation.Show.Term,
91 ProjectM36.Relation.Show.CSV,
92 ProjectM36.Relation.Show.Gnuplot,
93 ProjectM36.Relation.Parse.CSV,
97 ProjectM36.AtomFunctions.Basic,
98 ProjectM36.AtomFunctions.Primitive,
99 ProjectM36.ConcreteTypeRep,
100 ProjectM36.DataConstructorDef,
101 ProjectM36.DataTypes.Basic,
102 ProjectM36.DataTypes.Day,
103 ProjectM36.DataTypes.Either,
104 ProjectM36.DataTypes.Maybe,
105 ProjectM36.DataTypes.Primitive,
106 ProjectM36.MiscUtils,
107 ProjectM36.Notifications,
110 ProjectM36.Server.Config,
111 ProjectM36.Server.EntryPoints,
112 ProjectM36.Server.ParseArgs,
113 ProjectM36.Server.RemoteCallTypes,
116 ProjectM36.Transaction.Persist,
117 ProjectM36.TypeConstructor,
118 ProjectM36.TypeConstructorDef,
119 ProjectM36.TransactionGraph.Merge
120 GHC-Options: -Wall -rtsopts
122 Build-Depends: Win32 >= 2.3 && < 2.4
123 Other-Modules: ProjectM36.Win32Handle
125 C-sources: cbits/DirectoryFsync.c
128 Hs-Source-Dirs: ./src/lib
129 Default-Language: Haskell2010
130 Default-Extensions: OverloadedStrings
133 Build-Depends: base >=4.8 && <4.9,
134 ghc >= 7.8 && <= 8.0.1,
138 unordered-containers,
146 vector-binary-instances,
150 distributed-process-client-server,
151 distributed-process-extras,
152 distributed-process-async,
154 network-transport-tcp,
170 optparse-applicative,
174 Other-Modules: TutorialD.Interpreter,
175 TutorialD.Interpreter.Base,
176 TutorialD.Interpreter.DatabaseContextExpr,
177 TutorialD.Interpreter.RODatabaseContextOperator,
178 TutorialD.Interpreter.TransactionGraphOperator,
179 TutorialD.Interpreter.DataTypes.Interval,
180 TutorialD.Interpreter.DataTypes.DateTime,
181 TutorialD.Interpreter.Import.BasicExamples,
182 TutorialD.Interpreter.InformationOperator,
183 TutorialD.Interpreter.Export.Base,
184 TutorialD.Interpreter.Export.CSV,
185 TutorialD.Interpreter.DatabaseContextIOOperator,
186 TutorialD.Interpreter.Import.Base,
187 TutorialD.Interpreter.Import.CSV,
188 TutorialD.Interpreter.Import.TutorialD,
189 TutorialD.Interpreter.RelationalExpr,
190 TutorialD.Interpreter.Types
191 main-is: TutorialD/tutd.hs
192 CPP-Options: -DPROJECTM36_VERSION="v0.1"
195 Hs-Source-Dirs: ./src/bin
196 Default-Language: Haskell2010
197 Default-Extensions: OverloadedStrings
199-- Build-Depends: Win32 >= 2.3 && < 2.4
200-- Other-Modules: ProjectM36.Win32Handle
202-- C-sources: ProjectM36/DirectoryFsync.c
203-- Build-Depends: unix
206Executable project-m36-server
208 ghc >= 7.8 && <= 8.0.1,
211 distributed-process-client-server,
212 distributed-process-extras,
213 distributed-process-async,
215 network-transport-tcp,
229 optparse-applicative,
232 vector-binary-instances,
238 unordered-containers,
244 Main-Is: ./src/bin/ProjectM36/Server/project-m36-server.hs
245 CPP-Options: -DPROJECTM36_VERSION="v0.1"
246 GHC-Options: -Wall -threaded -rtsopts
247 GHC-Prof-Options: -fprof-auto -rtsopts -threaded -Wall
248 Default-Language: Haskell2010
249 Default-Extensions: OverloadedStrings
252 Default-Language: Haskell2010
253 Default-Extensions: OverloadedStrings
254 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, megaparsec, text, base64-bytestring, data-interval, filepath, optparse-applicative, stm-containers, list-t, ghc, ghc-paths, transformers, project-m36 == 0.1
255 Other-Modules: TutorialD.Interpreter.Base,
256 TutorialD.Interpreter.DatabaseContextExpr,
257 TutorialD.Interpreter.RelationalExpr,
258 TutorialD.Interpreter.Types
259 main-is: benchmark/bigrel.hs
260 GHC-Options: -Wall -threaded -rtsopts
261 CPP-Options: -DPROJECTM36_VERSION="v0.1"
262 HS-Source-Dirs: ./src/bin
263 GHC-Prof-Options: -fprof-auto -rtsopts -threaded -Wall
265Test-Suite test-tutoriald
266 Default-Language: Haskell2010
267 Default-Extensions: OverloadedStrings
268 type: exitcode-stdio-1.0
269 main-is: test/TutorialD/Interpreter.hs
270 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, megaparsec, text, base64-bytestring, data-interval, filepath, stm-containers, list-t, project-m36 == 0.1
271 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
273 Hs-Source-Dirs: ./src/bin, ., test
274 CPP-Options: -DPROJECTM36_VERSION="v0.1"
276Test-Suite test-tutoriald-atomfunctionscript
277 Default-Language: Haskell2010
278 Default-Extensions: OverloadedStrings
279 type: exitcode-stdio-1.0
280 main-is: test/TutorialD/Interpreter/AtomFunctionScript.hs
281 Build-Depends: base, HUnit, project-m36 == 0.1, uuid, containers, megaparsec, text, vector, directory, bytestring, mtl, haskeline
283 Hs-Source-Dirs: ./src/bin, ./test, .
284 CPP-Options: -DPROJECTM36_VERSION="v0.1"
286Test-Suite test-relation
287 Default-Language: Haskell2010
288 Default-Extensions: OverloadedStrings
289 type: exitcode-stdio-1.0
290 main-is: test/Relation/Basic.hs
291 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, megaparsec, text, base64-bytestring, data-interval, filepath, stm-containers, project-m36 == 0.1
294Test-Suite test-static-optimizer
295 Default-Language: Haskell2010
296 Default-Extensions: OverloadedStrings
297 type: exitcode-stdio-1.0
298 main-is: test/Relation/StaticOptimizer.hs
299 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, megaparsec, text, base64-bytestring, data-interval, filepath, stm-containers, project-m36 == 0.1
301 CPP-Options: -DPROJECTM36_VERSION="v0.1"
303Test-Suite test-transactiongraph-persist
304 Default-Language: Haskell2010
305 Default-Extensions: OverloadedStrings
306 type: exitcode-stdio-1.0
307 main-is: test/TransactionGraph/Persist.hs
308 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, megaparsec, text, base64-bytestring, data-interval, filepath, stm-containers, project-m36 == 0.1
309 Other-Modules: TutorialD.Interpreter.Base, TutorialD.Interpreter.RelationalExpr, TutorialD.Interpreter.Types, TutorialD.Interpreter.DatabaseContextExpr, TutorialD.Interpreter.Import.BasicExamples
310 Hs-Source-Dirs: ., ./src/bin
313Test-Suite test-relation-import-csv
314 Default-Language: Haskell2010
315 Default-Extensions: OverloadedStrings
316 type: exitcode-stdio-1.0
317 main-is: test/Relation/Import/CSV.hs
318 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, megaparsec, text, base64-bytestring, data-interval, filepath, stm-containers, project-m36 == 0.1
320 CPP-Options: -DPROJECTM36_VERSION="v0.1"
322Test-Suite test-tutoriald-import-tutoriald
323 Default-Language: Haskell2010
324 Default-Extensions: OverloadedStrings
325 type: exitcode-stdio-1.0
326 main-is: test/TutorialD/Interpreter/Import/TutorialD.hs
327 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, megaparsec, text, base64-bytestring, data-interval, filepath, stm-containers, project-m36 == 0.1
328 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
330 Hs-Source-Dirs: ., ./src/bin
332Test-Suite test-relation-export-csv
333 Default-Language: Haskell2010
334 Default-Extensions: OverloadedStrings
335 type: exitcode-stdio-1.0
336 main-is: test/Relation/Export/CSV.hs
337 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, megaparsec, text, base64-bytestring, data-interval, filepath, stm-containers, project-m36 == 0.1
340Test-Suite test-persistent-driver
341 Default-Language: Haskell2010
342 Default-Extensions: OverloadedStrings
343 type: exitcode-stdio-1.0
344 main-is: test/persistent-driver/test.hs
345 Other-Modules: Database.Persist.ProjectM36
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, megaparsec, 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, project-m36 == 0.1
347 Hs-Source-Dirs: ., src/persistent
350Test-Suite test-transactiongraph-merge
351 Default-Language: Haskell2010
352 Default-Extensions: OverloadedStrings
353 type: exitcode-stdio-1.0
354 main-is: test/TransactionGraph/Merge.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, parallel, cassava, attoparsec, gnuplot, directory, temporary, haskeline, megaparsec, text, base64-bytestring, data-interval, filepath, template-haskell, transformers, aeson, persistent-template, conduit, persistent, either, path-pieces, http-api-data, stm-containers, list-t, project-m36 == 0.1
359 Default-Language: Haskell2010
360 Default-Extensions: OverloadedStrings
361 type: exitcode-stdio-1.0
362 main-is: benchmark/Relation.hs
363 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, megaparsec, text, base64-bytestring, data-interval, filepath, criterion, stm-containers, project-m36 == 0.1
364 GHC-Options: -Wall -rtsopts
365 Hs-Source-Dirs: ./src/bin
367Test-Suite test-server
368 Default-Language: Haskell2010
369 Default-Extensions: OverloadedStrings
370 type: exitcode-stdio-1.0
371 main-is: test/Server/Main.hs
372 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, megaparsec, text, base64-bytestring, data-interval, filepath, transformers, stm-containers, list-t, project-m36 == 0.1
373 HS-Source-Dirs: ., ./src/bin
376Executable Example-SimpleClient
377 Default-Language: Haskell2010
378 Default-Extensions: OverloadedStrings
379 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, megaparsec, text, base64-bytestring, data-interval, filepath, transformers, stm-containers, list-t, ghc, ghc-paths, project-m36 == 0.1
380 Main-Is: examples/SimpleClient.hs
383Executable Example-PersistClient
384 Default-Language: Haskell2010
385 Default-Extensions: OverloadedStrings
386 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, megaparsec, 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
387 Main-Is: examples/PersistClient.hs
389 CPP-Options: -DPROJECTM36_VERSION="v0.1"
390 Other-Modules: Database.Persist.ProjectM36
391 Hs-Source-Dirs: ./src/persistent, .
393Test-Suite test-scripts
394 Default-Language: Haskell2010
395 Default-Extensions: OverloadedStrings
396 type: exitcode-stdio-1.0
397 main-is: test/scripts.hs
398 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, megaparsec, text, base64-bytestring, data-interval, filepath, transformers, stm-containers, list-t, project-m36 == 0.1
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
401 Hs-Source-Dirs: ., ./src/bin
403Executable project-m36-websocket-server
404 Default-Language: Haskell2010
405 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, megaparsec, haskeline, mtl, directory, base64-bytestring
406 Main-Is: ProjectM36/Server/WebSocket/websocket-server.hs
407 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
409 CPP-Options: -DPROJECTM36_VERSION="v0.1"
410 Hs-Source-Dirs: ./src/bin
411 Default-Extensions: OverloadedStrings
413Test-Suite test-websocket-server
414 Default-Language: Haskell2010
415 type: exitcode-stdio-1.0
416 main-is: test/Server/WebSocket.hs
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, megaparsec, text, base64-bytestring, data-interval, filepath, transformers, stm-containers, list-t, websockets, optparse-applicative, network, aeson, uuid-aeson, project-m36 == 0.1
418 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
419 Default-Extensions: OverloadedStrings
421 Hs-Source-Dirs: ./src/bin, .
422 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