Loading documentation...
What’s new in Joss v3.6.7.2
This release consolidates the engine around verifiable guarantees: analysis before running, stable types after inferring them, autoloading without imports source and tooling that validates the generated projects.
Language and type system
$x = valorandvar $x = valorinfer a fixed type. A reassignment must keep it.let $x = valordeclares explicit dynamism usingmixed.- Implemented constants, nullable/union types and return types.
- Functions and methods use isolated lexical frames; direct recursion and Mutual works with a configurable limit of 1024 calls by default.
funcis the only function keyword.function,import,@import,useand source namespaces were removed.
Static analysis
joss analyzeloads the same project and native surface as the runtime.- Resolves top-level classes and functions in two passes, including references advances necessary for mutual recursion.
- Check symbols, scopes, known arity, operators, assignments, arguments, returns and reachable flow.
- Structured diagnostics include code, severity, file, range, explanation and suggestion; unknown information does not become a error without evidence.
Runtime, bytecode and plugins
- Execution frames prevent accidental dynamic scope and runtime protects the recursion limit.
- The main format
JOSSBC2Zcontains serialized and compressed AST. The runner continues to play him; It is not presented as machine code. - JP v2 packages contain manifest, symbol table, bytecode and signature Ed25519 verifiable.
- Python, Java, PHP and WASM backends depend on their actual hosts/protocols when applicable; no promise is made to remove external runtimes.
- Plugins declared in
joss.yamlor installed inplugins/are loaded automatically, without import statements in the Joss code.
CLI and generated projects
joss new web,console,packageandpluginproduce projects that pass parser, parsing and their representative execution/compilation flows.make:migrationnormalizes names likecreate_products_table, applies the migration and only reports success after registering the batch.make:crudvalidates the schema, distinguishes existing relationships, limits writable fields, avoids deletions by GET and does not duplicate routes or navigation.
Validation
The repository validates build, tests, analysis, language catalog and examples representative through CI. For the exact status and its limits consult Implementation status and the Technical audit.