Entry points and projects
This page describes the current checkout, including unreleased work. Status and evidence policy applies to every entry.
main(args: Array<String>) argument contract
Status: Supported.
The argument-bearing entry point receives one owned array whose strings preserve their exact UTF-16 code units.
Evidence:
MinimalScriptLoweringTest,
test string array entry lowers deterministically for vm argv conformance, and
kotlin_writer.rs,
test k2_string_array_entry_executes_exact_utf16_arguments.
Two legal main forms
Status: Supported.
fun main() and fun main(args: Array<String>) lower with explicit entry tags.
Evidence:
MinimalScriptLoweringTest,
test both legal main forms lower deterministically with an explicit entry contract.
Invalid entry points are rejected
Status: Supported.
Duplicate entries, missing entries, unsupported parameters, nullable argument arrays, and non-Unit results
produce no artifact.
Evidence:
MinimalScriptLoweringTest,
tests entry policy rejects duplicate and invalid main functions and entry policy rejects a project without
main.
Multi-file projects
Status: Partial.
Cross-file top-level calls share one K2 session and lower deterministically, while the in-computer kotlinc
command still accepts exactly one source file.
Evidence:
K2CompilerAdapterTest,
test cross-file reference participates in one K2 session before bounded lowering, and
MinimalScriptLoweringTest,
tests multi-file terminal program lowers through trusted symbols and kotlinc command line rejects ambiguous
or unsupported arguments.
Related work: not scheduled
Project manifests and modules
Status: Partial.
compukter.toml selects a portable native platform module graph by identity, while compukter.lock records
exact resolved versions and hashes for the IDE, analyzer, and compiler. Compiler output is still one
application artifact rather than an independently distributable Kotlin module ecosystem.
Related work: not scheduled