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; Los nombres de valores utilizan minúsculas, tipos nominales y las variantes usan UpperCamelCase
- 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 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.