--- Title: Stack Language Specification Prev: Next: --- # Stack Language Specification **Version**: 0.8.2 **Status**: Draft Specification **Changes**: - 0.5 (AI) 1. **Escape sequences** - Added a complete list of escape sequences for string literals 2. **Type Tuples** - Defined them as function signatures representing stack effects 3. **Control flow TokenStrings** - Clarified that `if`, `while`, `match`, etc. use TokenStrings 4. **Generic constructs** - Clarified that generics need trait constraints when operations are performed 5. **Stack manipulation traits** - Combined into a single `Stackable` trait 6. **Size trait** - Added proper definition inheriting from `Addable`, `Comparable`, and `Convertible` 7. **Empty traits** - Clarified that traits can be empty (especially when used with inheritance) 8. **Trait inheritance** - Fixed syntax to require both `inher` and `trait` declarations 9. **Array combinators** - Clarified that the functions inside parse their TokenStrings 10. **`::` in TokenStrings** - Clarified it should NOT be used in trait/impl contexts - 0.5.1 (Human) 1. Created TODOs 2. Made various corrections (not everything was corrected) 3. Reviewed and corrected some code blocks 4. Made a few adjustments manually - 0.6 (AI) 1. **Operator descriptions** - Added natural language descriptions for all built-in operators 2. **Operators vs Functions** - Clarified distinction and naming rules 3. **Generic trait syntax** - Documented `<>` syntax for generic traits 4. **Generic trait inheritance** - Clarified rules for inheriting from generic traits 5. **Code block types** - Distinguished actual language definitions from examples 6. **Trait appendix** - Created comprehensive trait definitions appendix 7. **TokenString contexts** - Listed all control flow operators and their parsing behavior 8. **Lambda operator** - Added specification for lambda operator 9. **Type parameter enforcement** - Documented current parsing behavior 10. **Identifier literal requirements** - Specified `::` rules for different contexts 11. **Trait implementation rules** - Clarified implementation semantics 12. **Type conversions** - Changed to explicit conversion functions 13. **Memory management** - Moved to appendix as future feature 14. **Module system** - Added appendix entry for future imports 15. **Examples section** - Moved to appendix 16. **Syntax summary** - Moved to appendix and expanded - 0.6.1 (AI) 1. **Variadic arguments** - Decision: Use array syntax for variable arguments (no special variadic syntax yet) 2. **Inheritance before trait** - Decision: Yes, inheritance declarations must come before trait definition 3. **`inher` operator** - Decision: No, merge inheritance into trait operator (removed `inher`) 4. **Separate `inher` vs `impl`** - Decision: Keep them separate (impl is for implementations only) - 0.6.2 (Human) 1. Created TODOs 2. Made various corrections (not everything was corrected) 3. Reviewed and corrected some code blocks 4. Made a few adjustments manually 5. Reversed removing `inher` - 0.7 (AI) 1. **Operator definition** - Clarified that operators can be user/library defined via trait implementation 2. **Generic function syntax** - Fixed to use trait constraints in type tuple, not generic parameters 3. **Variable arguments with Iterable** - Changed array syntax to Iterable trait for variable args 4. **Example classifications** - Cleaned up "Actual Language Definitions" vs examples distinction 5. **Struct field access** - Clarified that get and set consume their arguments 6. **Section 6 rename** - Renamed "Operators (Postfix)" to "Built-in Operators" 7. **Module syntax** - Added `::` prefix for module imports 8. **Module alias options** - Added multiple alias syntax options - 0.7.1 (Human) 1. Formatting changes - 0.7.2 (Human) 1. Removed AI editing restrictions of reviewed code blocks - 0.8 (AI) 1. **Document reorganization** - Restructured for user-focused learning 2. **Section consolidation** - Moved implementation details to appendices 3. **Minimal duplication** - Added cross-references instead of repeating content 4. **Shorter sections** - Split large sections into focused subsections 5. **New appendices** - Added Standard Library and Operator references 6. **Tutorial content** - Added beginner tutorials to Appendix G 7. **Trait reference** - Consolidated all trait definitions in Appendix B 8. **Grammar simplification** - Referenced Implementable trait instead of repeating - 0.8.1 (Human) 1. Added links - 0.8.2 (AI) 1. **Constants** - Added constant definition syntax and semantics 2. **Enhanced literals** - Added underscore separators, character literals, octal syntax 3. **Mathematical functions** - Added sqrt, abs, trig functions, rounding, min/max 4. **Randomness** - Added rand and seed operators 5. **Array enhancements** - Added typed array syntax and arrays of structs 6. **Collection functions** - Added zip, enumerate, sum, mean, foldl, foldr 7. **String utilities** - Added replace, trim, find, starts_with, ends_with, format 8. **Testing support** - Added assert operator for inline testing 9. **Reflection operators** - Added type_of and implements for runtime introspection 10. **Compiler directives** - Added mention of implementation-specific directives 11. **Type reference** - Added Appendix H with complete type reference 12. **Math trait** - Added comprehensive Math trait to Appendix B 13. **Overflow behavior** - Documented integer wrap and float IEEE behavior 14. **Grammar updates** - Expanded Appendix D with new syntax forms 15. **Cross-references** - Updated all references to include new operators and functions ---