4.6 KiB
4.6 KiB
| Title | Prev | Next |
|---|---|---|
| Stack Language Specification |
Stack Language Specification
Version: 0.8.1
Status: Draft Specification
Changes:
- 0.5 (AI)
- Escape sequences - Added a complete list of escape sequences for string literals
- Type Tuples - Defined them as function signatures representing stack effects
- Control flow TokenStrings - Clarified that
if,while,match, etc. use TokenStrings - Generic constructs - Clarified that generics need trait constraints when operations are performed
- Stack manipulation traits - Combined into a single
Stackabletrait - Size trait - Added proper definition inheriting from
Addable,Comparable, andConvertible - Empty traits - Clarified that traits can be empty (especially when used with inheritance)
- Trait inheritance - Fixed syntax to require both
inherandtraitdeclarations - Array combinators - Clarified that the functions inside parse their TokenStrings
::in TokenStrings - Clarified it should NOT be used in trait/impl contexts
- 0.5.1 (Human)
- Created TODOs
- Made various corrections (not everything was corrected)
- Reviewed and corrected some code blocks
- Made a few adjustments manually
- 0.6 (AI)
- Operator descriptions - Added natural language descriptions for all built-in operators
- Operators vs Functions - Clarified distinction and naming rules
- Generic trait syntax - Documented
<>syntax for generic traits - Generic trait inheritance - Clarified rules for inheriting from generic traits
- Code block types - Distinguished actual language definitions from examples
- Trait appendix - Created comprehensive trait definitions appendix
- TokenString contexts - Listed all control flow operators and their parsing behavior
- Lambda operator - Added specification for lambda operator
- Type parameter enforcement - Documented current parsing behavior
- Identifier literal requirements - Specified
::rules for different contexts - Trait implementation rules - Clarified implementation semantics
- Type conversions - Changed to explicit conversion functions
- Memory management - Moved to appendix as future feature
- Module system - Added appendix entry for future imports
- Examples section - Moved to appendix
- Syntax summary - Moved to appendix and expanded
- 0.6.1 (AI)
- Variadic arguments - Decision: Use array syntax for variable arguments (no special variadic syntax yet)
- Inheritance before trait - Decision: Yes, inheritance declarations must come before trait definition
inheroperator - Decision: No, merge inheritance into trait operator (removedinher)- Separate
inhervsimpl- Decision: Keep them separate (impl is for implementations only)
- 0.6.2 (Human)
- Created TODOs
- Made various corrections (not everything was corrected)
- Reviewed and corrected some code blocks
- Made a few adjustments manually
- Reversed removing
inher
- 0.7 (AI)
- Operator definition - Clarified that operators can be user/library defined via trait implementation
- Generic function syntax - Fixed to use trait constraints in type tuple, not generic parameters
- Variable arguments with Iterable - Changed array syntax to Iterable trait for variable args
- Example classifications - Cleaned up "Actual Language Definitions" vs examples distinction
- Struct field access - Clarified that get and set consume their arguments
- Section 6 rename - Renamed "Operators (Postfix)" to "Built-in Operators"
- Module syntax - Added
::prefix for module imports - Module alias options - Added multiple alias syntax options
- 0.7.1 (Human)
- Formatting changes
- 0.7.2 (Human)
- Removed AI editing restrictions of reviewed code blocks
- 0.8 (AI)
- Document reorganization - Restructured for user-focused learning
- Section consolidation - Moved implementation details to appendices
- Minimal duplication - Added cross-references instead of repeating content
- Shorter sections - Split large sections into focused subsections
- New appendices - Added Standard Library and Operator references
- Tutorial content - Added beginner tutorials to Appendix G
- Trait reference - Consolidated all trait definitions in Appendix B
- Grammar simplification - Referenced Implementable trait instead of repeating
- 0.8.1 (Human)
- Added links