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
- nombre del idioma:
seed - extensión de fuente:
.sd - codificación fuente: UTF-8
- texto: propiedad
stringy prestadostr, ambos válidos UTF-8 - identificadores: ASCII en minúscula serpiente, incluidos los nombres de tipo
- constantes: ASCII mayúscula serpiente
- compilador: compilador operativo limpio LLVM bajo
compiler/llvm
Modelo central
- copiar escalares;
- mover recursos propios;
- pedir prestado vistas de sólo lectura sin asignación;
- clonar explícitamente;
- limpiar valores administrados en vivo exactamente una vez en salidas estructuradas;
- utilice
linear tpara obligaciones de una sola vez; - use
unsafesolo alrededor de operaciones sin procesar auditadas; - utilizar ADT,
result/opción, exhaustivamatch, y?para caudal recuperable; - Utilice bibliotecas estructuradas
spawny task/channel ordinarias en lugar de async/await.
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 enum, nombres nominales en mayúscula, return, # 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 aún están en progreso: Windows x86-64 ha requerido pruebas de ejecución de Wine; macOS x86-64 espera ejecución nativa de Intel y macOS arm64 sigue siendo explícitamente de solo enlaces cruzados.