You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Mech is a language for developing**data-driven**, **reactive** systems like animations, games, and robots. It makes**composing**, **transforming**, and **distributing** data easy, allowing you to focus on the essential complexity of your project.
5
+
**Mech** is a language designed for building**data-driven** and **reactive** systems like robots, games, user interfaces, and more. It simplifies**composing**, **transforming**, and **distributing** data, so you can focus on the core complexities of your project.
6
6
7
-
[Try](https://mech-lang.org/try/)Mech online in your browser, or follow our progress on our [blog](https://mech-lang.org/blog/).
7
+
[Try Mech](https://mech-lang.org/try/) online in your browser or stay updated through our [blog](https://mech-lang.org/blog/).
8
8
9
-
## Documentation
9
+
## 📚 Documentation
10
10
11
-
If this is your first time with Mech, read[Learn Mech in Fifteen Minutes](https://gitlab.com/mech-lang/docs/-/raw/v0.2-beta/III.guides/MechFifteen.mec).
11
+
New to Mech? Start with [Learn Mech in Fifteen Minutes](https://gitlab.com/mech-lang/docs/-/raw/v0.2-beta/III.guides/MechFifteen.mec).
12
12
13
-
Documentation is hosted online at [mech-lang.org](https://mech-lang.org/docs), and is opensourced on [GitHub](http://github.com/mech-lang/docs).
13
+
Comprehensive documentation is available at [mech-lang.org](https://mech-lang.org/docs) and open-sourced on [GitHub](http://github.com/mech-lang/docs).
14
14
15
-
## Installation
15
+
## 📂 Download and Install
16
16
17
-
### Binary
17
+
### 💾 From Binary
18
18
19
-
You can download the latest release for your platform [here](https://github.com/mech-lang/mech/releases).
19
+
Download the latest release for your platform [here](https://github.com/mech-lang/mech/releases).
20
20
21
-
### Source
21
+
### 🔨 From Source
22
22
23
-
You will need to install [Rust](https://www.rust-lang.org/learn/get-started)on a recent nightly release. Follow these instructions to build the Mech language toolchain, which is packaged in a single executable called "mech":
23
+
To build Mech from source, you’ll need to install [Rust](https://www.rust-lang.org/learn/get-started)(nightly version). Follow the instructions below to compile the Mech toolchain, bundled in a single executable called `mech`:
24
24
25
25
```bash
26
26
git clone https://gitlab.com/mech-lang/mech
27
27
cd mech
28
28
cargo build --bin mech --release
29
29
```
30
30
31
-
## Project Roadmap
31
+
## 🚧 Project Roadmap
32
32
33
-
Mech is undergoing a redesign to incorporate state machines into the language.
33
+
Mech is being redesigned to integrate state machines into the language, with development happening in the v0.2-beta branch.
34
34
35
-
This work is happening in the v0.2-beta branch of the repository.
35
+
The v0.2 release is planned for October 2024. For more details, check out the [ROADMAP.mec](ROADMAP.mec).
36
36
37
-
The current target for the release of v0.2 is October 2024.
37
+
## ⚖️ License
38
38
39
-
See [ROADMAP.mec](ROADMAP.mec) for more.
40
-
41
-
## License
42
-
43
-
Apache 2.0
39
+
Licensed under [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0).
Mech is a language for developing **data-driven**, **reactive** systems like robots, games, and animations. It makes **composing**, **transforming**, and **distributing** data easy, allowing you to focus on the essential complexity of your project.
5
+
Mech is a language for developing **data-driven**, **reactive** systems like animations, games, and robots. It makes **composing**, **transforming**, and **distributing** data easy, allowing you to focus on the essential complexity of your project.
6
6
7
-
You can try Mech online at [https://mech-lang.org/try](https://mech-lang.org/try).
8
-
9
-
Usage and installation instructions can be found in the [documentation](https://mech-lang.org/#/docs/index.mec) or the [main Mech repository](https://github.com/mech-lang/mech).
10
-
11
-
Be sure to follow our [blog](https://mech-lang.org/blog/)([RSS](https://mech-lang.org/feed.xml))!
7
+
[Try](https://mech-lang.org/try/) Mech online in your browser, or follow our progress on our [blog](https://mech-lang.org/blog/).
12
8
13
9
# Core
14
10
15
11
The language runtime. It's a small dataflow engine that accepts transactions of changes, and applies them to a compute network.
16
12
17
13
## Contents
18
14
19
-
-**block** - defines a `Block`, which is the ubiquitous unit of code in Mech. A block is comprised of transformations on input tables. These transformations can either modify existing tables or create new tables.
20
-
-**table** - defines a `Table`, the core data structure of Mech. A table is a 2D array of values.
21
-
-**column** - defines a `Column`, which is a vector of values.
22
-
-**value** - defines a `Value`, a unified datatype for Mech. A value can be empty, a boolean, a string, a reference to another table, a number literal.
23
-
-**database** - defines a `Database` of tables. Databases accept `Transactions`, which are sets of `Changes` to the database.
24
-
-**function** - defines the standard library for Mech, including basic indexing, mathematical, comparison, and logic functions.
25
-
-**error** - defines an `MechError`, which holds the information necessary to track and render error messages.
15
+
-**interpreter** - The Mech interpreter, which executes Mech bytecode.
16
+
-**value** - Defines `Value`, a unified datatype
17
+
-**kind** - Defines `Kind`, which is used to annotate the kind of each varible
18
+
-**error** - Define `MechError`, an error type that is used throughout the Mech system.
19
+
-**functions** - User defined functions
20
+
-**matrix** - Mech `Matrix` wraps NDArray for fast matrix computations
21
+
-**nodes** - Defines various nodes which comprise the Mech AST.
22
+
-**types** - Defines various types used by the Rust implementation of the Mech compiler.
0 commit comments