https://github.com/alinalihassan/lesma
The Lesma Programming Language
https://github.com/alinalihassan/lesma
compiler language llvm programming-language
Last synced: 6 days ago
JSON representation
The Lesma Programming Language
- Host: GitHub
- URL: https://github.com/alinalihassan/lesma
- Owner: alinalihassan
- License: mit
- Created: 2022-02-22T21:43:51.000Z (almost 4 years ago)
- Default Branch: dev
- Last Pushed: 2023-07-11T02:02:56.000Z (over 2 years ago)
- Last Synced: 2023-08-02T07:11:37.825Z (over 2 years ago)
- Topics: compiler, language, llvm, programming-language
- Language: C++
- Homepage: https://lesma.org
- Size: 6.19 MB
- Stars: 15
- Watchers: 1
- Forks: 1
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.txt
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
Lesma
[](https://github.com/alinalihassan/Lesma/blob/main/LICENSE.txt)
[](https://github.com/alinalihassan/Lesma/releases)
[](https://github.com/alinalihassan/Lesma/releases)
[](https://github.com/alinalihassan/Lesma/actions/workflows/ci.yaml)
**Lesma** is a compiled, statically typed, imperative, and object-oriented programming language with a focus on
expressiveness, elegance, and simplicity without sacrificing performance.
## 📝 Features
- 🚀 Fast Compilation: compiling at a rate of ≈230k
loc/s, [because waiting for code to compile is a thing of the past](https://xkcd.com/303/)
- ⚡ Blazing Fast Execution: because it should be, it's as fast as C, using LLVM's state-of-the-art optimizations, but it
won't ever oblige you to make an extra effort just for the sake of performance
- 🔬 Statically Typed: because IDE completion is like heaven, while unknown behaviour and runtime exceptions are like
hell
- 🧑🎨 Simple: because the code should be easily readable, and it shouldn't make you guess what it does or take long to
learn
## ✍️ Example

## 📖 Documentation
- [Official Documentation](https://lesma.org/)
- [Examples](https://github.com/alinalihassan/Lesma/blob/main/tests/lesma)
## Installation
Every Lesma release contains archives with the binary and standard library which you can grab. Alternatively, you can
use the installer script to do all the work for you. The [get-lesma.sh](scripts/get-lesma.sh) script downloads and
installs the latest release.
Run the following in your terminal:
```bash
bash -c "$(curl -fsSL https://raw.githubusercontent.com/alinalihassan/Lesma/main/scripts/get-lesma.sh)"
```
## 🔧 Build
In order to build Lesma, you need Clang and LLVM 15 installed. It's currently only supported on Linux and macOS.
For a more comprehensive guide, and more information on how to install the prerequisites,
read the documentation on [Getting Started](https://lesma.org/docs/introduction/getting-started)
1. Clone the repository
```bash
git clone https://github.com/alinalihassan/Lesma
```
2. Run CMake to configure the build
```bash
cmake . -Bbuild
cmake --build build
```
## 💬 Contributing
Pull requests are welcome. For major changes, please open an issue to discuss your proposal and what you'd like to
change.
- To keep updated with releases, consider starring the project.
- Check the [code of conduct](CODE_OF_CONDUCT.md) and [contributing guidelines](CONTRIBUTING.md)
## 📎 License
This software is licensed under the [MIT](https://github.com/alinalihassan/Lesma/blob/main/LICENSE.txt)
© [Alin Ali Hassan](https://github.com/alinalihassan).