Skip to content
View DevCheckOG's full-sized avatar
🥽
🥽

Block or report DevCheckOG

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
DevCheckOG/README.md

Hello, I'm Kevin Benavides!

I'm a self-taught programmer with over 7 years of experience, starting at age 10 with a bash script on Ubuntu. I specialize in designing compilers and programming languages like C, Rust, and C++ using LLVM, QBE, or GCC, and building scalable web, app, and API backends.

Currently, I'm developing my own LLVM-powered programming language. I'm passionate about tackling complex low-level systems, diving into hardware-software interactions, and pushing system architecture and optimization to new heights.

I’m always eager to innovate, blending creativity with technical precision to craft robust, efficient solutions. I'm constantly open to learning and deepening my understanding of new technologies and concepts. I'm a native Spanish speaker with B2-level English proficiency (CEFR).


Critical Systems/Compilers Development

Rust C LLVM GCC

Web/App/APIs Development

Frontend Languages/Technologies

JS
HTML5 CSS3 Streamlit

Backend Languages/Technologies

Rust Python Java JS TypeScript
FastAPI Fastify Scrapy Socket.io Gunicorn Aiohttp Bun DenoJS NodeJS npm Cloudflare Firabase Supabase JWT

Databases

MongoDB MySQL

Testing

Jasmine Selenium Swagger PyTest

Operating Systems

Linux Windows MacOS

Tools

Intellij PyCharm Visual Studio Code Microsoft Office GNU Bash Netlify Github Pages Markdown Windows Terminal Notion Git Render Inkscape Figma Vercel Gradle Pypy The Onion Routing Gitlab Postman


Main Projects

logo

Thrush Programming Language

The Thrush Programming Language. A system programming language that revolutionizes low-level control, intuitive abstraction for beginners, and limitless IR low-level control for experts.

Inspiration

  • The language is largely based on the syntax of its source language, Rust.
  • Its name is Thrush, reminiscent of the thrush bird, a relative of the Turdidae family. Its pronunciation differs from the bird's name; it's actually T.. Rush, not Thrush.

Philosophy

The problem

Systems languages like C, C++, and Rust have yet to fully explore low-level programming potential, particularly in explicit manipulation of intermediate representations (IRs). Direct IR control empowers developers with seamless, high-level orchestration of assembly-like operations from source code, eliminating the need to resort to raw assembly.

The Thrush solution

Thrush empowers developers by enabling IR manipulation through language-integrated Low-Level Instructions (LLI), a high-level, streamlined interface for GCC and LLVM intrinsic instructions, while prioritizing beginners with a future memory-safe abstraction layer built atop its powerful, low-level system.

Why Thrush over C, C++ or Rust?

Thrush holds immense promise for bare-metal and embedded systems development through its innovative low-level instructional concepts, particularly its language-integrated Low-Level Instructions (LLI) for seamless IR manipulation with GCC and LLVM intrinsics. While prioritizing simplicity, Thrush will layer a memory-safe abstraction atop its powerful low-level system, making it beginner-friendly. Depending on your needs, you might still choose C, C++, or Rust, but Thrush offers a unique blend of control and accessibility.

Low Level Control

  • Thrush empowers developers to compile low-level instructions directly to a specified target from source code, enabling precise, architecture-specific optimization with unparalleled ease.
compile @target("armv7e-m") @output("example.s") @asm {
  instr allocated_u8: ptr[u8] = alloc stack!, { u8, @align(4) };
  write allocated_u8, u8 8;
};
  • Thrush enables seamless integration of low-level instructions alongside their high-level counterparts, allowing developers to fluidly switch between abstraction levels within the same codebase.
fn main() {
    local number: u8 = 0;

    // Low-level instruction for direct memory access.
    instr loaded_value: u8 = load u8, number;
}
  • Thrush enables seamless embedding of linear assembler within the compilation process, offering direct, streamlined control over architecture-specific code generation.
asmfn invoke_exit_syscall() void {
    "mov $$60, %rax",
    "mov $$1, %rdi",
    "syscall"
} { 
    "~{rax}~{rdi}"
}

fn main() {
   invoke_exit_syscall();
}
  • Thrush enables seamless compile-time code execution, empowering developers to perform computations and optimizations directly during compilation with a simple, intuitive syntax.
fn comptime_sum(a: u8, a: u8) u16 @compiletime {
  // Non-explicit cast is allowed.
  return a + b;
}

fn main() {
   comptime_sum(15, 15);
}
  • And many more unique features when the language base is finished! ~ Kevin Benavides

Pinned Loading

  1. thrushlang/thrushc thrushlang/thrushc Public

    The Thrush Programming Language. A system programming language that revolutionizes low-level control, intuitive abstraction for beginners, and limitless IR low-level control for experts.

    Rust 21 4

  2. thrushlang/thorium thrushlang/thorium Public

    The package manager for Thrush Programming Language.

    Rust 1

  3. thrushlang/toolchains thrushlang/toolchains Public

    LLVM C API & Clang to be embedded within the Thrush Compiler.

    Shell 1

  4. LLVMIRCourse LLVMIRCourse Public

    Basic course on the LLVM intermediate language (LLVM IR) as an introduction to code generation for AOT compilers, JIT compilers, and for creating production-ready programming languages.

    3

  5. lltsc-idea lltsc-idea Public

    The idea of ​​a modern compiler that compiles all TypeScript to machine code with support for JS. Using AOT or JIT compilation with LLVM out of the box.

    3

  6. heapsort heapsort Public

    Hand-written implementation of HeapSort in LLVM IR.

    LLVM 1