Banner oficial de Thrust

Thrust Programming Language

Un lenguaje de sistemas, estático y tipado, para escribir código verboso, preciso y rápido.

Filosofia

Thrust expone operaciones de memoria, disposición de datos, alineación de memoria explícita, convenciones de llamada e información del objetivo en el código fuente, al mismo tiempo que ofrece abstracciones de alto nivel de costo cero con simplicidad.

Thrust mantiene la gestión de memoria directa y simple. El programador controla la asignación, la validez de los punteros, el ciclo de vida de los recursos y el punto exacto en que se libera la memoria, como en C.

Descargas

Gestor de paquetes

Compilador

Inicio Rapido

torio toolchain install
torio new fibonacci
torio run
// content: main.thrust
import std::io;

fn fibonacci [T] (n: T) T @public {
    if n <= 0 { return 0; }
    if n == 1 { return 1; }

    var a: T = 0;
    var b: T = 1;
    var i: T = 2;
    var result: T = 0;

    while i <= n {
        result = a + b;
        a = b;
        b = result;
        i++;
    }

    return result;
}

fn main() s32 @public {
    var result: s32 = fibonacci[s32](10);
    // Expected result: fib(10) = 55
    io::print("fib(%d) = %d\n", 10, result);
    return 0;
}

Claridad C-Style

Un modelo mental cercano a C, con control explicito.

Generics en Compile-Time

Funciones y estructuras genericas, especializadas en compile-time.

Interoperabilidad con C

Integracion directa con C mediante @extern y @convention("C").

Condicionales en Compile-Time

Usa @if, @elif y @else para elegir codigo por plataforma al compilar.

Imports Utiles

Combina modulos de std::, aliases e imports selectivos.

Builtins Utiles

Builtins de tipos/layout como sizeOf, alignOf e isSameType.

Ownership por Scope

Liberacion automatica al salir del scope, sin tracking en runtime. La memoria se libera exactamente al terminar el scope.

AOT y JIT

Binarios nativos por adelantado, o ejecucion mediante el JIT.

Abstracciones de Costo Cero

Los generics se especializan y las ramas muertas se eliminan en compile-time.

Control Explicito de Memoria y Target

Control directo de layout, alineacion, convenciones de llamada y targets.