- Added super support for class inheritance (not just extensions)
- Added constructor super calls (super.init())
- Added method super calls (super.methodName())
- Added deep inheritance chain testing (3+ levels)
- Added method chaining with super
- Added complex expressions with super
- Added string contexts with super
- Added empty derived class testing
- Expanded test coverage from 22 to 121 lines
- Added 5 comprehensive test categories:
1. Class inheritance with super
2. Deep inheritance with super
3. Super in extensions (preserved original)
4. Super edge cases
5. Empty derived classes
All tests pass and are integrated into main test suite.
Runtime: add method dispatch for array/string/dict/number (.len, .push, .pop, .keys, .values, .has, .toInt)
Stdlib: delete global len/push/pop/keys/values/has
Tests/docs/examples: migrate to method style; add tests/test_builtin_methods_style.bob
All tests pass
Breaking: global len/push/pop/keys/values/has removed; use methods instead
Parser/AST: add class/extends/extension/super, field initializers
Runtime: shared methods with this injection; classParents/classTemplates; super resolution; ownerClass/currentClass; extension lookup order
Builtins: method dispatch for array/string/dict/number (.len/.push/.pop/.keys/.values/.has/.toInt); remove global forms
Tests/docs/examples: add/refresh for classes, inheritance, super, polymorphism; migrate to method style; all tests pass
VS Code extension: update grammar/readme/snippets for new features
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.
- Add while, for, and do-while loops with break/continue
- Implement assignment statements (prevents if(x=10) bugs)
- Keep assignment expressions only for for-loop clauses
- Fix critical memory management bug (dangling pointers in cleanup)
- Add automatic memory cleanup with conservative reference counting
- Consolidate documentation into single reference file
- Add comprehensive test coverage for all loop types and edge cases
- VSCode extension for bob highlighting and snippets
- Add none value handling to Value::operator+ for string concatenation
- Replace direct string concatenations with Value::operator+ calls in Interpreter
- Add missing string+none and none+string type combinations
- Standardize token literal generation in Lexer
- Add ExecutionContext support across visitor pattern
- Enhance error reporting integration
- Add new standard library functions
- 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