-
-
Notifications
You must be signed in to change notification settings - Fork 0
Modules And Imports
module App.Report
import Std.Json as Json
import Std.Option {map, unwrapOr}
Status: module discovery, imports, privacy, selected imports, cycles through declaration signatures, and interpreter linking are implemented. A project manifest and package manager are not.
The declaration at the top of a file names the module. A module name and source path must agree when the compiler discovers a program graph. Imported declarations preserve nominal identity: two types with the same spelling from different modules are different types.
import Std.Text
import Std.Text as Text
import Std.Text {trim, split}
Imports are explicit and do not re-export automatically. Resolution is deterministic and does not depend on import order. Ambiguous unqualified names are diagnostics.
The Core.Prelude import is implicit unless the module imports that same module explicitly.
Standard-library modules use the Std namespace and ship with the compiler.
Top-level declarations are private unless marked export. A module can use its private helpers;
importers cannot. Type and value namespaces are distinct.
pudu check, pudu run, the REPL loader, documentation commands, and the LSP use the same program
compiler. Imports are loaded transitively from source roots. Missing files and module/path
mismatches are structured diagnostics.
There is no manifest, lockfile, registry, dependency solver, or package build graph. Each CLI file argument is currently a root program.
- Modules And Imports
- Values, Bindings, And Blocks
- Types And Inference
- Records, Sums, And Tuples
- Functions Generics And Traits
- Pattern Language
- Control Flow And Patterns
- Iteration And Loops
- Failure And Propagation
- Numbers And Collections
- Sets Maps And Sequences
- Keyed Structures
- Trees And Hierarchies
- Standard Library
- Output Formatting And Testing
- Tasks And Scopes
- Compile-Time Evaluation
- Typed Macros
- References And Unsafe
- Worked Programs