YREA-SLS/docs/changes.md

4.6 KiB

Title Prev Next
Stack Language Specification

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