aboutsummaryrefslogtreecommitdiff

jai-modules

Modules for the language being developed by Thekla, Inc.

Available at https://github.com/gudinoff/jai-modules

Saturation

This module provides basic integer saturation arithmetic procedures: add, sub, mul, and div.
These procedures accept any of the built-in integer types and adjust the output accordingly, e.g., adding an u8 with an s16 results in an s16;
All procedures return a flag signaling if the result is saturated and, additionally, the division procedure returns the remainder;
Branch-free procedures are included for the x64 architecture. These may be used by setting the PREFER_BRANCH_FREE_CODE module argument, or by setting prefer_branch_free_code on each function call. These should speed things up, specially when using signed values. Some benchmarks are included on the tests file.

TUI

A simple terminal user interface module that provides basic functionalities similar to the ncurses library.
Usefull for creating simple terminal-based apps that require user input.
View snake.jai for an example.
It has been tested on the following terminal emulators: - GNOME Terminal - kitty - Konsole - Linux console - xterm - Windows Terminal

UTF8

Basic operations over UTF8 encoded strings.

License

Licensed under MIT or ISC.

SPDX-License-Identifier: MIT OR ISC