Major additions and improvements across the Bob language ecosystem:
Core Language Features:
- Add comprehensive dictionary support with full CRUD operations
- Implement built-in functions: keys(), values(), has() for dictionaries
- Add string multiplication operator (string * number)
- Enhance error reporting with detailed context and call stacks
- Add ternary operator support (condition ? true_expr : false_expr)
- Implement do-while loops with break/continue support
- Add array increment/decrement operators (++, --)
- Add cross-type comparison operators with proper type coercion
- Implement toInt() function for float-to-integer conversion
- Add float array index auto-truncation (like JavaScript/Lua)
Code Quality & Linter Fixes:
- Remove all "using namespace std;" statements (best practice)
- Add proper std:: prefixes throughout codebase
- Fix const correctness in helper functions
- Resolve class/struct declaration mismatches
- Fix sign comparison warnings in array indexing
- Remove unused lambda captures in built-in functions
- Fix brace initialization warnings in parser
Documentation & Tooling:
- Significantly expand BOB_LANGUAGE_REFERENCE.md with new features
- Update VS Code extension with enhanced syntax highlighting
- Add comprehensive code snippets for new language features
- Update version information and package metadata
Test Suite:
- Add extensive dictionary functionality tests
- Add tests for new operators and built-in functions
- Add comprehensive copy behavior tests (by value vs by reference)
- Add performance and edge case testing
Architecture Improvements:
- Enhance Value system with proper move semantics
- Improve memory management with shared_ptr for complex types
- Add trampoline-based tail call optimization
- Implement proper error context propagation
This represents a major milestone in Bob language development with production-ready dictionary support, comprehensive testing, and significantly improved code quality.
- Replace Object* with Value tagged union for better performance
- Fix bug where "true"/"false" strings were treated as booleans
- Add isBoolean field to LiteralExpr to distinguish string vs boolean literals
- Implement fast function calls with g_returnContext instead of exceptions
- Add functions vector to prevent dangling pointers
- Remove try-catch blocks from execute() for 50x performance improvement
- Clean up test files, keep only main test suite and fib benchmark
- All 38 tests passing, fib(30) still ~848ms
- Add function declarations, calls, and return statements
- Implement lexical scoping with Environment class and closures
- Convert print from statement to standard library function
- Add assert() function to standard library for testing
- Add time() function for microsecond precision benchmarking
- Create StdLib class and BuiltinFunction wrapper for standard library
- Implement first-class functions and higher-order functions
- Add function parameter support (tested up to 100 parameters)
- Support alphanumeric identifiers in variable and function names
- Add underscore support in variable names and identifiers
- Implement string + number and number + string concatenation
- Add boolean + string and string + boolean concatenation
- Support string multiplication (string * number)
- Fix decimal truncation issue by using std::stod for all number parsing
- Add comprehensive number formatting with proper precision handling
- Support huge numbers (epoch timestamps) without integer overflow
- Clean number display (no trailing zeros on integers)
- Add basic error handling with program termination on errors
- Add comprehensive test suite covering all features
- Add escape sequence support (\n, \t, \", \\)
- Add comprehensive documentation and language reference
- Update development roadmap with completed features