on master help sign in
update docs for cross-platform installation using stack

resolves #15

commitfdd6728583126b9574dee683c7a8a3d21a9429fb authorAgentM <agentm@themactionfaction.com> dateThu 21 Jul 2016, 14:25 (10 years ago) parent65f949b
1 file changed+19−13
docs/introduction_to_projectm36.markdown+19−13
docs/introduction_to_projectm36.markdown+19−13
@@ -13,23 +13,34 @@ The relational algebra is the mathematical model underpinning Project:M36. When
1313* more opportunities for interesting optimizations
1414* elimination of odd and easy-to-forget corner cases (such as found when dealing with SQL's NULL)
1515
16−## Software Dependencies & Installation
16+## Binary Releases
17+
18+### Windows
19+Project:M36 now provides binary installations for Windows. Check the (releases page)[https://github.com/agentm/project-m36/releases] for downloads.
20+
21+### MacOS X
22+
23+Binary releases are not yet available for MacOS X, but compiling from source is easy.
24+
25+### Linux
26+
27+The currently-preferred method of installation is from source. A future enhancement would be installation from deb or rpm.
28+
29+## Source Installation
1730
1831Requirements:
1932
2033* [GHC 7.10 or greater](https://www.haskell.org/downloads)
21−* cabal-install 1.20 or greater (normally part of the Haskell installation
22−* POSIX filesystem
34+* [Haskell stack](https://docs.haskellstack.org/en/stable/README/)
35+* Linux, MacOS X, or Windows OS
2336
2437Compilation steps:
2538
2639* ```git clone https://github.com/agentm/project-m36```
2740* ```cd project-m36```
28−* ```cabal sandbox init``` (optional but recommended)
29−* ```cabal install```
30−
31−At this point, the TutorialD interactive interpreter can be run using ```cabal run tutd```.
41+* ```stack build```
3242
43+At this point, the TutorialD interactive interpreter can be run using ```stack exec tutd```.
3344
3445## Accessing Project:M36 Databases
3546
@@ -47,7 +58,7 @@ In addition to being a relational algebra engine, Project:M36 supports features
4758
4859### Transaction Graph
4960
50−Most DBMSs provide a way to allow the user to specify atomic database state changes. These changes are often wrapped up as "transactions" which, when applied to the database state, offer the illusion of sequential and grouped, atomic changes applied to the databases. Often the only state which can be queried is the snapshot at the time the transaction is opened.
61+Most DBMSs provide a way to allow the user to specify atomic database state changes. These changes are often wrapped up as "transactions" which, when applied to the database state, offer the illusion of sequential and grouped, atomic changes applied to the databases. Often the only state which can be queried is the snapshot at the time the transaction is opened.
5162
5263Project:M36 extends this transaction model with the "transaction graph". This feture can be adequately described as version control for transactions. In the legacy DBMS model, the transactions are added to a linear transaction stream where each client is contending over the "head" of the stream- the latest transactions. In the transaction graph model, clients can add named branches and add transactions to the branches, then merge changes back, if necessary.
5364
@@ -94,8 +105,3 @@ Though the CSV ("comma-separated values") format cannot represent all possible r
94105### Relations as Plots
95106
96107N-attributed relations can be visualized as plots where each tuple represents a point in the plot. Project:M36 can generate gnuplot graphs from 2- and 3-attributed relations.
97−
98−
99−
100−
101−