bait-lang / bait

Simple yet powerful programming language for building reliable software. Work in progress.
MIT License
19 stars 5 forks source link
bait compiler language programming-language self-hosted

Bait programming language

[![CI][ci-badge]][gh-actions] [![Discord][discord-badge]][discord-invite]

Introduction

This repository contains the compiler, cli, standard library and documentation for Bait.

fun main() {
    println('hello world')
}

Key Features

Status: Bait is in active development. It is stable for personal use, but please be prepared for possible breaking changes and evolving features (🚧).

Documentation

A dedicated website, comprehensive language documentation and a documentation generator are work in progress.
The language specification will be formalized and released during the beta phase.

The Language Overview provides a brief introduction to the syntax and features.

Examples

Some basic example programs can be found in the examples directory.

For a much larger list of examples, check out the Rosetta Code solutions.

Installation

Right now Bait has to be compiled from source. Precompiled binaries will be available in the future.

Building from source

Required dependencies: git and NodeJS >= 18

Linux:

git clone https://github.com/bait-lang/bait
cd bait
./make.sh
sudo ./bait symlink

Windows:

git clone https://github.com/bait-lang/bait
cd bait
./make.bat

# In admin shell:
./bait.bat symlink

Now you should have Bait compiled to JS at <repo>/bait.js.

Thanks to the symlinked wrapper script, you can use the compiler with a simple command like bait run examples/hello_world.bt.

Upgrading to the latest version

To update Bait to the latest commit, run bait up.

Contributing

Your contributions are always welcome and highly appreciated! To get started, please take a look at CONTRIBUTING.md.

Community

For progress updates, discussions and support, join the official Discord server.

License

Bait is provided under the MIT License.