Fantom language documentation


Structure pod::type.slot program structure
Literals syntax for literal types
Expressions syntax for expressions
Statements syntax for statements
Exceptions exception handling
Type System
TypeSystem static type system with bit of dynamic thrown in
CompilationUnits organization of source code
Pods creating pods
Classes creating class types
Mixins creating mixin types
Enums creating enum types
Slots slot model
Methods deep dive into method slots
Fields deep dive into field slots
Inheritance rules for slot inheritance
Facets annotating types and slots with metadata
Functions functional programming
Closures deep dive into closures
JavaFFI Java foreign function interface
Natives implementing methods and fields in Java and C# code
JavaScript compiling to JavaScript
Deployment how to deploy pods and applications
Env customizing the Fantom environment
Serialization reading/writing objects
Concurrency model for sharing data between threads
Actors message passing concurrency
Naming URI naming system
Logging logging APIs
Localization localization APIs
DSLs domain specific language and compiler plugins
DateTime date and time APIs
Appendix additional detailed notes
Conventions coding conventions we use
Grammar formal BNF syntax grammar