Skip to content

Latest commit

 

History

History
60 lines (48 loc) · 3.21 KB

README_en.md

File metadata and controls

60 lines (48 loc) · 3.21 KB
Logo

Riddle Language

Simplified Chinese | English

Static Badge Static Badge

A lightweight, flexible, and modern programming language.

Riddle Language is a memory-safe programming language designed to address the shortcomings of C/C++.

Features

  • Memory Safety: Riddle Language ensures memory safety at compile time, eliminating common programming errors such as null pointer dereferencing and buffer overflows. This guarantees the robustness and security of software.
  • High Performance: Riddle Language combines safety with high-performance execution, making it suitable for resource-intensive applications. This is achieved through advanced optimizations and a meticulously designed runtime system.
  • Simplicity and Expressiveness: Riddle Language offers a concise and expressive syntax that promotes code readability and maintainability. It provides modern language constructs, powerful abstractions, and a rich set of libraries to simplify the development process.
  • Concurrency and Parallelism: Riddle Language has built-in support for concurrent and parallel programming. It offers lightweight threads, asynchronous programming models, and synchronization primitives, simplifying the development of scalable and efficient applications.
  • Interoperability: Riddle Language seamlessly integrates with existing codebases and libraries written in other languages. It provides straightforward bindings with C and C++ and supports interoperability with popular frameworks and ecosystems.

Tech Stack 🚀

License

This project is open-sourced under the Apache License 2.0. This license requires that the original copyright notice, license notice, and disclaimer be retained when modifying and distributing the software; it allows users to freely use, modify, copy, and distribute software licensed under Apache for both commercial and non-commercial purposes. Users are allowed to release modified products or derivatives under different licenses, provided that the portions not modified retain the Apache License; the Apache License does not provide any form of warranty, and users are entirely responsible for any damages caused by using the software.

Getting Executables

1. Download a Release

You can obtain the executables from the releases page on GitHub (not yet available).

2. Build from Source

Requirements

  • CMake version 3.28 or higher
  • A compiler that supports C++20 features
    • GCC version 14 or higher
    • Clang version 18 or higher
    • MSVC 2022 or higher
  • LLVM version 18 or higher
  • TermColor
  • Antlr version 4.13 or higher

Configuration

mkdir build
cd build
cmake ..

Compilation

cmake --build . --config Release