--- Title: Stack Language Specification Prev: Next: --- # Stack Language Specification **Version**: 0.8.1 **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 ---