Stack Language Specification¶
Version: 0.8.2
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
-
0.8.2 (AI)
- Constants - Added constant definition syntax and semantics
- Enhanced literals - Added underscore separators, character literals, octal syntax
- Mathematical functions - Added sqrt, abs, trig functions, rounding, min/max
- Randomness - Added rand and seed operators
- Array enhancements - Added typed array syntax and arrays of structs
- Collection functions - Added zip, enumerate, sum, mean, foldl, foldr
- String utilities - Added replace, trim, find, starts_with, ends_with, format
- Testing support - Added assert operator for inline testing
- Reflection operators - Added type_of and implements for runtime introspection
- Compiler directives - Added mention of implementation-specific directives
- Type reference - Added Appendix H with complete type reference
- Math trait - Added comprehensive Math trait to Appendix B
- Overflow behavior - Documented integer wrap and float IEEE behavior
- Grammar updates - Expanded Appendix D with new syntax forms
- Cross-references - Updated all references to include new operators and functions