seed Descripción general

seed es un lenguaje de sistemas orientado a expresiones, imperativo y de tipado estático. Su objetivo es una legibilidad sencilla similar a la de Python siempre que sea posible, manteniendo al mismo tiempo el control C/Rust-class sobre el diseño, la ejecución, la vinculación y el acceso al hardware de bajo nivel.

El lenguaje no tiene GC, sintaxis de por vida, desenredado de excepciones, tiempo de ejecución asíncrono oculto ni libc obligatoria. Los costos como la asignación, la clonación profunda, la retención del recuento de referencias, el bloqueo, las llamadas al sistema y la carga dinámica son explícitos.

Identidad actual

Modelo central

Pequeño núcleo y ecosistema.

Los archivos, las redes, los procesos, la serialización, el formateo, las colecciones y la sincronización se encuentran en bibliotecas compiladas por separado. Las bibliotecas alojadas se comparten dinámicamente de forma predeterminada; El enlace estático es explícito. Los programas independientes, de kernel, de controlador y de arranque utilizan el mismo lenguaje en perfiles de tiempo de ejecución restringidos.

Límites actuales

El compilador limpio implementa cadenas f de fase 1 y 2 para texto, bool, enteros, flotantes IEEE-754, especificadores de formato y estáticos. display/debug rasgos. No implementa legado type-ADT basados en nombres nominales en minúsculas, ret, elif, # comentarios, incorporados chan<t>/send/recv, generación separada, macros o un identificador de nivel de idioma devuelto directamente por spawn. La biblioteca de tareas proporciona resultados estructurados escritos. Paquetes reproducibles, LSP, doc/lint, y los artefactos incrementales exactos son implementados por Gate 15 herramientas.

Gate 14 portabilidades están cerradas para sus filas registradas: Windows x86-64 pasa bajo el vino requerido, y macOS x86-64 cerrado por la ejecución nativa de Intel requerida. La matriz canónica es compiler/llvm/tests/GATE14_TARGET_MATRIX.tsv, cuyo macOS La fila arm64 permanece cross-link-only; esa línea de base establece que no debe presentarse como ejecutado hasta que un corredor arm64 de confianza pase la suite. La compatibilidad con objetos no es lo mismo que la compatibilidad con ejecutables alojados.

Empieza aquí