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
25 --critical uuid bug in lesser versions https://www.reddit.com/r/haskell/comments/4myot5/psa_make_sure_to_use_uuid_1312/
40 ,vector-binary-instances
52--required for persistent db driver
53 ,persistent >= 2.2 && < 2.3
60--needed for remote access
61 ,distributed-process-client-server
62 ,distributed-process-extras
63 ,distributed-process-async
65 ,network-transport-tcp
72 Exposed-Modules: ProjectM36.Error,
73 ProjectM36.Transaction,
74 ProjectM36.TransactionGraph,
75 ProjectM36.TransactionGraph.Show,
76 ProjectM36.TransactionGraph.Persist,
79 ProjectM36.AttributeNames,
83 ProjectM36.AtomFunction,
85 ProjectM36.DatabaseContext,
86 ProjectM36.DateExamples,
87 ProjectM36.AtomFunctionBody,
88 ProjectM36.RelationalExpression,
89 ProjectM36.Relation.Show.HTML,
90 ProjectM36.StaticOptimizer,
91 ProjectM36.Relation.Show.Term,
92 ProjectM36.Relation.Show.CSV,
93 ProjectM36.Relation.Show.Gnuplot,
94 ProjectM36.Relation.Parse.CSV,
98 ProjectM36.AtomFunctions.Basic,
99 ProjectM36.AtomFunctions.Primitive,
100 ProjectM36.ConcreteTypeRep,
101 ProjectM36.DataConstructorDef,
102 ProjectM36.DataTypes.Basic,
103 ProjectM36.DataTypes.Day,
104 ProjectM36.DataTypes.Either,
105 ProjectM36.DataTypes.Maybe,
106 ProjectM36.DataTypes.Primitive,
107 ProjectM36.MiscUtils,
108 ProjectM36.Notifications,
111 ProjectM36.Server.Config,
112 ProjectM36.Server.EntryPoints,
113 ProjectM36.Server.ParseArgs,
114 ProjectM36.Server.RemoteCallTypes,
117 ProjectM36.Transaction.Persist,
118 ProjectM36.TypeConstructor,
119 ProjectM36.TypeConstructorDef,
120 ProjectM36.TransactionGraph.Merge
121 GHC-Options: -Wall -rtsopts
123 Build-Depends: Win32 >= 2.3 && < 2.4
124 Other-Modules: ProjectM36.Win32Handle
126 C-sources: cbits/DirectoryFsync.c
129 Hs-Source-Dirs: ./src/lib
130 Default-Language: Haskell2010
131 Default-Extensions: OverloadedStrings
134 Build-Depends: base >=4.8 && <4.9,
135 ghc >= 7.8 && <= 8.0.1,
139 unordered-containers,
147 vector-binary-instances,
151 distributed-process-client-server,
152 distributed-process-extras,
153 distributed-process-async,
155 network-transport-tcp,
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 main-is: TutorialD/tutd.hs
193 CPP-Options: -DPROJECTM36_VERSION="v0.1"
196 Hs-Source-Dirs: ./src/bin
197 Default-Language: Haskell2010
198 Default-Extensions: OverloadedStrings
200-- Build-Depends: Win32 >= 2.3 && < 2.4
201-- Other-Modules: ProjectM36.Win32Handle
203-- C-sources: ProjectM36/DirectoryFsync.c
204-- Build-Depends: unix
207Executable project-m36-server
209 ghc >= 7.8 && <= 8.0.1,
212 distributed-process-client-server,
213 distributed-process-extras,
214 distributed-process-async,
216 network-transport-tcp,
230 optparse-applicative,
233 vector-binary-instances,
239 unordered-containers,
245 Main-Is: ./src/bin/ProjectM36/Server/project-m36-server.hs
246 CPP-Options: -DPROJECTM36_VERSION="v0.1"
247 GHC-Options: -Wall -threaded -rtsopts
248 GHC-Prof-Options: -fprof-auto -rtsopts -threaded -Wall
249 Default-Language: Haskell2010
250 Default-Extensions: OverloadedStrings
253 Default-Language: Haskell2010
254 Default-Extensions: OverloadedStrings
255 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
256 Other-Modules: TutorialD.Interpreter.Base,
257 TutorialD.Interpreter.DatabaseContextExpr,
258 TutorialD.Interpreter.RelationalExpr,
259 TutorialD.Interpreter.Types
260 main-is: benchmark/bigrel.hs
261 GHC-Options: -Wall -threaded -rtsopts
262 CPP-Options: -DPROJECTM36_VERSION="v0.1"
263 HS-Source-Dirs: ./src/bin
264 GHC-Prof-Options: -fprof-auto -rtsopts -threaded -Wall
266Test-Suite test-tutoriald
267 Default-Language: Haskell2010
268 Default-Extensions: OverloadedStrings
269 type: exitcode-stdio-1.0
270 main-is: test/TutorialD/Interpreter.hs
271 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
272 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
274 Hs-Source-Dirs: ./src/bin, ., test
275 CPP-Options: -DPROJECTM36_VERSION="v0.1"
277Test-Suite test-tutoriald-atomfunctionscript
278 Default-Language: Haskell2010
279 Default-Extensions: OverloadedStrings
280 type: exitcode-stdio-1.0
281 main-is: test/TutorialD/Interpreter/AtomFunctionScript.hs
282 Build-Depends: base, HUnit, project-m36 == 0.1, uuid, containers, parsec, text, vector, directory, bytestring, mtl, haskeline
284 Hs-Source-Dirs: ./src/bin, ./test, .
285 CPP-Options: -DPROJECTM36_VERSION="v0.1"
287Test-Suite test-relation
288 Default-Language: Haskell2010
289 Default-Extensions: OverloadedStrings
290 type: exitcode-stdio-1.0
291 main-is: test/Relation/Basic.hs
292 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, project-m36 == 0.1
295Test-Suite test-static-optimizer
296 Default-Language: Haskell2010
297 Default-Extensions: OverloadedStrings
298 type: exitcode-stdio-1.0
299 main-is: test/Relation/StaticOptimizer.hs
300 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, project-m36 == 0.1
302 CPP-Options: -DPROJECTM36_VERSION="v0.1"
304Test-Suite test-transactiongraph-persist
305 Default-Language: Haskell2010
306 Default-Extensions: OverloadedStrings
307 type: exitcode-stdio-1.0
308 main-is: test/TransactionGraph/Persist.hs
309 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, project-m36 == 0.1
310 Other-Modules: TutorialD.Interpreter.Base, TutorialD.Interpreter.RelationalExpr, TutorialD.Interpreter.Types, TutorialD.Interpreter.DatabaseContextExpr, TutorialD.Interpreter.Import.BasicExamples
311 Hs-Source-Dirs: ., ./src/bin
314Test-Suite test-relation-import-csv
315 Default-Language: Haskell2010
316 Default-Extensions: OverloadedStrings
317 type: exitcode-stdio-1.0
318 main-is: test/Relation/Import/CSV.hs
319 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, project-m36 == 0.1
321 CPP-Options: -DPROJECTM36_VERSION="v0.1"
323Test-Suite test-tutoriald-import-tutoriald
324 Default-Language: Haskell2010
325 Default-Extensions: OverloadedStrings
326 type: exitcode-stdio-1.0
327 main-is: test/TutorialD/Interpreter/Import/TutorialD.hs
328 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, project-m36 == 0.1
329 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
331 Hs-Source-Dirs: ., ./src/bin
333Test-Suite test-relation-export-csv
334 Default-Language: Haskell2010
335 Default-Extensions: OverloadedStrings
336 type: exitcode-stdio-1.0
337 main-is: test/Relation/Export/CSV.hs
338 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, project-m36 == 0.1
341Test-Suite test-persistent-driver
342 Default-Language: Haskell2010
343 Default-Extensions: OverloadedStrings
344 type: exitcode-stdio-1.0
345 main-is: test/persistent-driver/test.hs
346 Other-Modules: Database.Persist.ProjectM36
347 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, project-m36 == 0.1
348 Hs-Source-Dirs: ., src/persistent
351Test-Suite test-transactiongraph-merge
352 Default-Language: Haskell2010
353 Default-Extensions: OverloadedStrings
354 type: exitcode-stdio-1.0
355 main-is: test/TransactionGraph/Merge.hs
356 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, either, path-pieces, http-api-data, stm-containers, list-t, project-m36 == 0.1
360 Default-Language: Haskell2010
361 Default-Extensions: OverloadedStrings
362 type: exitcode-stdio-1.0
363 main-is: benchmark/Relation.hs
364 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, project-m36 == 0.1
365 GHC-Options: -Wall -rtsopts
366 Hs-Source-Dirs: ./src/bin
368Test-Suite test-server
369 Default-Language: Haskell2010
370 Default-Extensions: OverloadedStrings
371 type: exitcode-stdio-1.0
372 main-is: test/Server/Main.hs
373 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, project-m36 == 0.1
374 HS-Source-Dirs: ., ./src/bin
377Executable Example-SimpleClient
378 Default-Language: Haskell2010
379 Default-Extensions: OverloadedStrings
380 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
381 Main-Is: examples/SimpleClient.hs
384Executable Example-PersistClient
385 Default-Language: Haskell2010
386 Default-Extensions: OverloadedStrings
387 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
388 Main-Is: examples/PersistClient.hs
390 CPP-Options: -DPROJECTM36_VERSION="v0.1"
391 Other-Modules: Database.Persist.ProjectM36
392 Hs-Source-Dirs: ./src/persistent, .
394Test-Suite test-scripts
395 Default-Language: Haskell2010
396 Default-Extensions: OverloadedStrings
397 type: exitcode-stdio-1.0
398 main-is: test/scripts.hs
399 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, project-m36 == 0.1
400 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
402 Hs-Source-Dirs: ., ./src/bin
404Executable project-m36-websocket-server
405 Default-Language: Haskell2010
406 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
407 Main-Is: ProjectM36/Server/WebSocket/websocket-server.hs
408 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
410 CPP-Options: -DPROJECTM36_VERSION="v0.1"
411 Hs-Source-Dirs: ./src/bin
412 Default-Extensions: OverloadedStrings
414Test-Suite test-websocket-server
415 Default-Language: Haskell2010
416 type: exitcode-stdio-1.0
417 main-is: test/Server/WebSocket.hs
418 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, websockets, optparse-applicative, network, aeson, uuid-aeson, project-m36 == 0.1
419 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
420 Default-Extensions: OverloadedStrings
422 Hs-Source-Dirs: ./src/bin, .
423 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