⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣀⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣿⣿⡟⠋⢻⣷⣄⡀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣤⣾⣿⣷⣿⣿⣿⣿⣿⣶⣾⣿⣿⠿⠿⠿⠶⠄⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠉⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⡟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣿⣿⣿⣿⣿⣿⠟⠻⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⣿⣿⣿⣿⣿⣆⣤⠿⢶⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⣿⣿⣿⣿⣿⣿⣿⡀⠀⠀⠀⠑⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠸⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠙⠛⠋⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀Carrion Programming Language is a modern, dynamically typed, interpreted language designed for both beginners and experienced developers. Inspired by Python and built in Go, Carrion offers a unique combination of readability, flexibility, and performance. Its engaging crow-themed aesthetic and innovative syntax enhancements set it apart as a fun, educational, and efficient language for rapid prototyping and software development.
Experience the benefits of runtime type checking and an interpreter that supports a rapid development cycle.
- Familiar programming constructs with unique modifications
- Crow-themed keywords:
spell(function),grim(class - short for grimoire/spellbook) - Enhanced loop control:
skip(continue) andstop(break) - Powerful error handling:
attempt/ensnare/resolve
- Leverages Go's robustness and efficiency
- Tree-walking interpreter with planned JIT compilation
- Fast execution and minimal resource usage
- Named after Odin's raven, representing memory
- Built-in modules for arrays, strings, math, OS operations, and more
- Embedded directly into the language runtime
- Full OOP with classes (grimoires), inheritance, and encapsulation
- Abstract classes with
arcane grim - Private (
_) and protected (__) methods - Method overriding and polymorphism
# Clone the repository
git clone https://github.com/javanhut/TheCarrionLanguage.git
cd TheCarrionLanguage
# Install Carrion Language, Sindri Testing Framework, Mimir Documentation Tool, and Bifrost package manager (auto-detects OS)
make installNote: Installing Carrion automatically installs the Sindri Testing Framework, Mimir Documentation Tool, and Bifrost Package Manager (v1.0.0) as well. All tools are installed together and can be uninstalled with make uninstall.
- Ensure Go 1.19+ is installed
- Clone the repository
- Run
make buildorgo build -o carrion src/main.go - Add the binary to your PATH
# Build the Docker image
docker build -t carrion .
# Run Carrion in a container
docker run -it carrionOnce installed, Carrion can update itself in place.
carrion update # Prompts before installing the latest tagged release
carrion update --check # Report status without installing
carrion update -y # Skip the confirmation promptcarrion update fetches the latest release from GitHub, downloads the prebuilt asset for your OS/arch when available (carrion_linux_amd64.tar.gz, carrion_darwin_amd64.tar.gz, carrion_windows_amd64.zip), and falls back to a source build at the release tag if no asset is present. Stable updates always take precedence over experimental builds.
carrion update --experimental # Prompts before building from source
carrion update --experimental --check # Report status without installingExperimental updates track the main branch: Carrion fetches the latest commit SHA, clones the source, and rebuilds with the commit hash baked into the version string. Requires git and a Go 1.24+ toolchain in PATH.
carrion --version
# Carrion Language version v0.1.10 — tagged release
# Carrion Language version v0.1.10-a1b2c3d — experimental (main@a1b2c3d)Stable releases show plain v{major}.{minor}.{patch}; experimental builds append -{short-sha} so you always know exactly what's running.
If Carrion is installed in a system directory like /usr/local/bin, carrion update will tell you to re-run with sudo. The binary is replaced atomically — no downtime for long-running processes that already have it open.
The Makefile exposes the following targets for contributors:
make build— Build the Carrion binary for the host platformmake install— Install Carrion, Sindri, Mimir, and Bifrost to the systemmake uninstall— Remove installed binariesmake build-linux/make build-linux-arm64— Cross-compile a Linux amd64/arm64 binary tarballmake build-windows— Cross-compile a Windows amd64 binary zipmake build-mac(build-mac-amd64,build-mac-arm64) — Cross-compile macOS tarballsmake build-release— Build every release artifact in one shotmake build-source— Produce a source tarballmake test— Run the full Go test suite (go test ./src/...)make bench— Run evaluator benchmarks with memory profilingmake sync-version— Rewrite version references in docs fromsrc/version/version.gomake version-check— Report whether any docs are out of sync (exits 1 if so; CI-friendly)make tidy— Rungo mod tidyacross all modulesmake bifrost-update— Initialize and update the Bifrost git submodule
Carrion integrates with Bifrost, the official package manager, for seamless dependency management. Bifrost is automatically installed when you install Carrion.
# Initialize a new Carrion package
bifrost init
# Install packages for your project
bifrost install json-utils
bifrost install --global http-client
# Use installed packages in Carrion
import "json-utils/parser"
import "http-client/request"For detailed Bifrost documentation, see the Bifrost Repository and Bifrost Documentation.
Carrion automatically resolves imports from multiple locations:
- Local files (current directory)
- Project packages (
./carrion_modules/) - User packages (
~/.carrion/packages/) - Global packages (
/usr/local/share/carrion/lib/) - Standard library (Munin)
See Modules Documentation for detailed import and package management information.
- Language Documentation - Comprehensive guide to Carrion syntax and features
- Language Overview - High-level introduction to Carrion's design principles
- Language Reference - Complete language specification and reference
- Control Flow - Loops, conditionals, and flow control structures
- Error Handling - Exception handling with attempt/ensnare/resolve
- Enhanced Error System - Detailed error messages with suggestions
- Operators - Arithmetic, logical, and comparison operators
- Modules - Import system and module organization
- Type System - Type hints and static type checking
- Indentation - Indentation rules and best practices
- Grimoires (Classes) - Object-oriented programming with grimoires
- Standard Library (Munin) - Built-in functions and modules
- Builtin Functions - Core functions available in every program
- Data Structures - Stack, Queue, Heap, and Binary Search Tree
- Concurrency - Goroutines with converge/diverge patterns
- HTTP Server - Building web applications and REST APIs
- Time Functions - Date, time, and duration operations
- Interactive Help - REPL and interactive development features
- Sindri Testing Framework - Comprehensive testing and benchmarking tool
- Mimir Documentation Tool - Interactive documentation and help system
- Examples - Sample programs demonstrating various language features
- Changelog - Version history and updates
// Hello World in Carrion
print("Hello, World!")
// Define a function (spell)
spell greet(name):
return f"Hello, {name}!"
// Create a class (grimoire)
grim Crow:
init(name):
self.name = name
spell caw():
print(f"{self.name} says: Caw!")
// Use the class
my_crow = Crow("Munin")
my_crow.caw()Carrion source code files use the .crl extension, making it simple to identify and manage your projects.
Carrion is an evolving language with exciting future updates planned:
- List Comprehensions: Simplify collection processing with Python-like concise syntax
- JIT Compiler & Virtual Machine: Enhance runtime performance with just-in-time compilation
- Generic Functions & Abstract Data Types: Improve code reuse and flexibility
- Enhanced Standard Library: Expand built-in functionalities with a richer set of tools
- Improved Type System: Optional static type checking for better code safety
- Async/Await Support: Modern concurrency patterns
- Language Interoperability: Integrate with other programming languages
- Current Version: 0.1.9
- Standard Library (Munin): 0.1.0
- Status: Active Development
Carrion was created by Javan Hutchinson, a dedicated developer committed to exploring innovative programming paradigms and enhancing developer experiences.
We welcome contributions! Please:
- Fork the repository
- Create a feature branch
- Submit a pull request
- Email: javanhut@carrionlang.com
- Issues: GitHub Issues
- Discussions: Join our community discussions on GitHub
Your feedback and contributions help shape the future of Carrion!
Note: While Carrion embraces a playful crow theme, it's a serious programming language built on Go's robust foundation, designed for real-world applications and educational purposes.
Carrion is open-source software. See the LICENSE file for details.