chore: Updated readme

Signed-off-by: erick-alcachofa <erick@artichoke.dev>
This commit is contained in:
erick-alcachofa 2025-10-01 23:39:32 -06:00
parent e024c03134
commit bce60cfef8
Signed by: me
GPG Key ID: 6FA5F8643444BAFA

View File

@ -1,7 +1,80 @@
# artichoke
> :warning: WIP Highly Experimental Project
> * The language, compiler, and tools are under active development and may be
> very unstable.
> * There will likely be breaking changes and periods where no work is done on
> the project.
> [!note] WIP
> Highly experimental and in development
# The `artichoke` Programming Language
A programming language created to satisfy my personal preferences and
requirements for programming.
`artichoke` is a modern, statically-typed programming language designed to
satisfy my personal preferences and requirements for programming, combining the
low-level control and powerful modern features like a robust type system,
generics, integrated error handling, and a clean, ergonomic syntax.
The goal of `artichoke` is to provide a language that is simple, safe, and
productive for programming, eliminating common pitfalls without sacrificing
performance or control.
For a detailed guide to the language, please see the
[project wiki](git.artichoke.dev/me/artichoke-lang/wiki).
## Core Philosophy & Features
`artichoke` is built around a few core principles to create a safer, more
productive programming experience:
* **Explicitness:** Type conversions and error handling are explicit.
* **Safety:** Non-nullable pointers, a robust type system, and deterministic
resource management are prioritized.
* **Modern Ergonomics:** Features like generics, defer, and a clean module
system reduce boilerplate and improve readability.
The language includes a powerful **generic type system**, first-class **error
handling**, a full suite of **control flow** statements (including match), a
true **module system**, and **compile-time reflection**.
## Project Status
`artichoke` is currently in the ***design and grammar-specification phase***. The
grammar is stable, and the next step is the implementation of a compiler
(parser, semantic analyzer, and code generator).
## Building from Source
```bash
# Get the source code
git clone https://git.artichoke.dev/me/artichoke-lang.git
# Configure cmake
cmake -DCMAKE_BUILD_TYPE=Release -S . -B build
# Build the project
cmake --build build
# Run the binary
./build/frontend/artichoke-c
# Install if wanted
cmake --install build --prefix=/usr/local
# Run the installed binary
arti-c
```
## Contributing
The `artichoke` project is hosted on a personal, self-hosted Gitea instance. If
you are interested in contributing, you have two options:
1. **Request an Account:** Please contact support@artichoke.dev to request an
account on the Gitea instance.
2. **Submit Patches:** Alternatively, you can send patches or diffs directly to
the same email address.
In all cases, proper attribution will be given for your contributions in the
source files and/or the project wiki.
## License
This project is licensed under the **GNU Affero General Public License v3.0**.
The full license text can be found in the LICENSE file in this repository.