67aea3f676
docs: add flow-control and values documentation pages with updated template and build script
Bob Nystrom2013-12-04 15:46:41 +00:00
398cede489
feat: include "include" directory in source code metrics glob
Bob Nystrom2013-12-04 15:46:23 +00:00
5b05c477c6
feat: implement closures with upvalue support and statement/expression separation
Bob Nystrom2013-12-04 15:43:50 +00:00
7e7a508096
refactor: replace integer offset fields with direct char* pointers in token and lexer structs
Bob Nystrom2013-12-01 23:22:24 +00:00
ed005573ad
refactor: unify compiler end-of-chunk code path into single endCompiler function
Bob Nystrom2013-12-01 22:59:56 +00:00
eaf69b892f
feat: replace direct malloc/free calls with user-provided allocator in VM
Bob Nystrom2013-12-01 18:22:32 +00:00
2cb7522812
feat: add sidebar navigation layout and restructure docs page template
Bob Nystrom2013-12-01 17:54:51 +00:00
0496b4e79d
refactor: rename MAX_METHOD_NAME to MAX_METHOD_SIGNATURE and extract copyName helper
Bob Nystrom2013-12-01 08:04:46 +00:00
d9ed245dd4
feat: enforce MAX_LOCALS limit of 256 in declareVariable and add test cases for boundary conditions
Bob Nystrom2013-12-01 02:51:27 +00:00
4240e46e05
feat: replace Scope stack with Local array to fix variable shadowing in nested blocks
Bob Nystrom2013-12-01 02:28:01 +00:00
2f37b99eef
feat: add JavaScript binary tree benchmark and update runner with trial count and graph improvements
Bob Nystrom2013-11-30 04:25:00 +00:00
f0db2cbacd
chore: add scratch.wren to gitignore for temporary Wren script testing
Bob Nystrom2013-11-30 00:20:44 +00:00
50b1a381e0
feat: add binary_trees benchmark suite and fix string escape for tab character
Bob Nystrom2013-11-30 00:19:13 +00:00
f0f74c6785
fix: correct compiler pointer in method constructor code emission
Bob Nystrom2013-11-30 00:17:43 +00:00
88f7444f0c
feat: extract bytecode dumpInstruction into new wren_debug module
Bob Nystrom2013-11-30 00:17:33 +00:00
fa92ce86ad
test: add constructor overload tests for Foo class with arity dispatch
Bob Nystrom2013-11-29 23:21:36 +00:00
230017a616
feat: raise max method parameters from 10 to 16 with proper error handling
Bob Nystrom2013-11-29 23:08:27 +00:00
1b3b50374f
feat: disallow field references outside class definitions with explicit error
Bob Nystrom2013-11-29 18:53:56 +00:00
fe7e9041d1
refactor: replace hardcoded pinned array with linked list in WrenVM GC root tracking
Bob Nystrom2013-11-29 17:14:19 +00:00
f9c534aef9
chore: rename source files to wren_ prefix and add module-level documentation headers
Bob Nystrom2013-11-28 16:11:50 +00:00
4091fe4911
refactor: rename primitives module to wren_core and update all references
Bob Nystrom2013-11-28 16:00:55 +00:00
f36118a451
refactor: rename internal value creation functions to wren-prefixed public API names
Bob Nystrom2013-11-28 04:00:03 +00:00
12d27a05b4
chore: remove stale TODO comment about capacity shrinking in list_removeAt
Bob Nystrom2013-11-27 19:34:35 +00:00
b17c2667c0
feat: implement list_removeAt primitive with capacity shrink and test suite
Bob Nystrom2013-11-27 18:20:32 +00:00
3c3fa2bfd9
feat: add list clear and insert primitives with capacity growth and index validation
Bob Nystrom2013-11-27 07:11:11 +00:00
91c675b28a
chore: reorganize test files into domain-specific subdirectories
Bob Nystrom2013-11-27 06:52:00 +00:00
cd1bd39ce1
feat: implement list.add() with dynamic growth and add wrenPrintValue helper
Bob Nystrom2013-11-27 02:02:10 +00:00
6996f5a48d
feat: replace per-type equality primitives with unified object_eqeq and wrenGetClass
Bob Nystrom2013-11-26 15:52:37 +00:00
4f73052934
feat: add JavaScript benchmark runner with fib(30) test and node integration
Bob Nystrom2013-11-26 15:50:12 +00:00
05eab7f82b
feat: add public C API header wren.h and refactor internal types to WrenVM prefix
Bob Nystrom2013-11-25 15:47:02 +00:00
b21c774891
feat: unify memory management into single reallocate function with GC triggers
Bob Nystrom2013-11-25 15:14:51 +00:00
4e87680dd1
feat: add optional computed gotos support for ~5% interpreter speedup
Bob Nystrom2013-11-25 05:48:27 +00:00
b098c60f7c
feat: implement subscript operator for lists with negative index and bounds checking
Bob Nystrom2013-11-25 03:08:46 +00:00
cc117912fa
feat: implement list literal syntax and List class with count property
Bob Nystrom2013-11-24 21:38:31 +00:00
2490e6a425
feat: add subscript operator for array indexing and string character access
Bob Nystrom2013-11-24 18:45:07 +00:00
cc55fd2a57
feat: implement string escape sequence parsing in lexer and add test coverage
Bob Nystrom2013-11-24 05:00:47 +00:00
56f0f1639b
refactor: remove redundant explicit casts to Value in string and primitives functions
Bob Nystrom2013-11-24 01:35:11 +00:00
f50453e24e
feat: add instance field support with lexer, compiler, and GC tracing
Bob Nystrom2013-11-23 22:55:05 +00:00
f4982f7b21
docs: add classes documentation content, usage page stub, and fix page title in template
Bob Nystrom2013-11-23 22:52:50 +00:00
65615f4aa8
feat: add ASCII art graph of benchmark results with configurable trial count
Bob Nystrom2013-11-22 17:17:45 +00:00
95faef89d5
feat: add benchmark runner with fib implementations and OS.clock primitive
Bob Nystrom2013-11-22 16:55:22 +00:00
4a9ea2f0b4
feat: add MIT license file for the Wren programming language project
Bob Nystrom2013-11-22 05:41:44 +00:00
67c9435b03
feat: add initial documentation site with markdown pages and build script
Bob Nystrom2013-11-22 05:38:36 +00:00
456c7e87e0
docs: document receiver-less call ambiguity in private getter vs field access
Bob Nystrom2013-11-22 05:38:21 +00:00
b9264e4c5a
feat: add named user-defined constructors with this keyword prefix in class bodies
Bob Nystrom2013-11-20 15:20:16 +00:00
ca400d725e
chore: disable DEBUG_GC_STRESS and refactor initCompiler with addConstant helper
Bob Nystrom2013-11-20 04:54:47 +00:00
36c3f0b704
refactor: extract twoCharToken helper and remove skipWhitespace from lexer
Bob Nystrom2013-11-20 04:19:02 +00:00
643a7c4f97
feat: add logical OR operator with short-circuit evaluation and token support
Bob Nystrom2013-11-20 02:24:58 +00:00
06be5808da
feat: add IS_FALSE macro for non-NaN-tag boolean false check in value.h
Bob Nystrom2013-11-19 15:36:59 +00:00
9e8eed6c29
feat: implement logical AND operator with short-circuit evaluation and new CODE_AND instruction
Bob Nystrom2013-11-19 15:35:25 +00:00
ed9f4ec9f3
feat: add block scope support with push/pop macros and scope tracking in compiler
Bob Nystrom2013-11-18 17:19:03 +00:00
dc2f053d76
feat: add while loop token, parser support, CODE_LOOP opcode, and patchJump helper
Bob Nystrom2013-11-18 06:38:59 +00:00
9c663aa13c
feat: implement NaN tagging for Value union and hoist bytecode/IP into locals in interpret loop
Bob Nystrom2013-11-17 22:20:15 +00:00
b3d5f3b4a0
fix: change String#contains return type from numeric to boolean
Bob Nystrom2013-11-17 18:04:02 +00:00
69744a3acc
refactor: replace call method primitives with fiber primitives and remove NO_VAL sentinel
Bob Nystrom2013-11-17 17:02:57 +00:00
4e9b4349d6
feat: replace placeholder conditionals with actual hello world output in example
Bob Nystrom2013-11-17 16:55:04 +00:00
a59289a0af
refactor: extract value type definitions and helpers from vm.h into new value.h/c files
Bob Nystrom2013-11-17 01:51:30 +00:00
7c54588c0d
chore: replace AS_STRING macro with AS_CSTRING and AS_STRING, refactor GC marking into type-specific functions
Bob Nystrom2013-11-17 01:41:09 +00:00
6c14050101
fix: remove VAL_NO_VALUE value type and replace with null object sentinel
Bob Nystrom2013-11-16 19:54:42 +00:00
21d600ebe5
fix: increase default GC heap threshold from 1MB to 10MB in newVM
Bob Nystrom2013-11-16 19:43:40 +00:00
ebbe5bb7cd
refactor: unbox numeric values by storing double directly in Value struct
Bob Nystrom2013-11-16 19:41:29 +00:00
5930aacb24
feat: replace boxed Obj bool/null with direct VAL_TRUE/FALSE_VAL/NULL_VAL macros
Bob Nystrom2013-11-16 19:35:59 +00:00
f6e13f2f4a
refactor: replace raw Obj* casts with Value struct in compiler, primitives, and vm
Bob Nystrom2013-11-16 19:26:32 +00:00
e98ee92efa
feat: add recursive fibonacci benchmark scripts in lua, python, wren and implicit fields design doc
Bob Nystrom2013-11-15 04:57:56 +00:00
f88fb3d9bb
feat: add parameter list parsing and up to 8 function call primitives
Bob Nystrom2013-11-15 02:25:28 +00:00
338dc2288f
feat: add user-defined operator methods with signature compilation
Bob Nystrom2013-11-14 18:27:33 +00:00
d56828b65b
fix: remove mixfix method call support from compiler
Bob Nystrom2013-11-14 17:21:58 +00:00
70218835f5
fix: improve nested block comment parsing and add error messages to consume function
Bob Nystrom2013-11-14 07:06:53 +00:00
c1f0688dae
docs: add design notes for inner method dispatch and receiver-less calls
Bob Nystrom2013-11-14 01:09:55 +00:00
c55150d9c4
feat: add skipBlockComment parser with nesting support and three test cases
Bob Nystrom2013-11-14 01:09:47 +00:00
ccbc2f8d4e
feat: implement class inheritance with 'is' keyword and superclass method copying
Bob Nystrom2013-11-13 19:05:03 +00:00
0850f389e1
chore: remove obsolete wren.1 man page and its Xcode project reference
Bob Nystrom2013-11-13 15:15:10 +00:00
7eabd40181
feat: add unary operators and variable assignment with precedence handling
Bob Nystrom2013-11-13 15:10:52 +00:00
944591339f
feat: implement mark-sweep garbage collector with object linked list and pinned roots
Bob Nystrom2013-11-12 16:32:35 +00:00
f8b27d63a3
refactor: replace direct casts with object conversion macros in vm.c and add AS_INSTANCE macro to vm.h
Bob Nystrom2013-11-10 22:21:14 +00:00
d0e0a776f4
feat: add static method support to class definitions with metaclass dispatch
Bob Nystrom2013-11-10 19:46:13 +00:00
d74b4deff3
feat: add test file metrics with expect pattern and separate source/test output
Bob Nystrom2013-11-10 19:12:38 +00:00
0ea34e00fe
feat: implement floating-point number literal parsing and arithmetic operations
Bob Nystrom2013-11-10 05:32:57 +00:00
c430056f70
feat: implement modulo operator for numbers with fmod and add test suite
Bob Nystrom2013-11-10 05:01:18 +00:00
98d6bbbcc1
feat: add this keyword support with method detection and error handling
Bob Nystrom2013-11-09 23:42:23 +00:00
04dda643d0
fix: correct local variable storage and remove premature local slot allocation in vm
Bob Nystrom2013-11-09 19:38:01 +00:00
d43a62e08c
refactor: rename symbols to methods and defineName to declareVariable in compiler and VM
Bob Nystrom2013-11-09 19:18:27 +00:00
266881994f
feat: add is operator for type checking and refactor primitives registration
Bob Nystrom2013-11-08 01:07:32 +00:00
769e604dd1
feat: restructure compiler to bottom-up order removing forward declarations
Bob Nystrom2013-11-07 15:04:25 +00:00
46977dceea
feat: replace block syntax with fn keyword for function literals across compiler and tests
Bob Nystrom2013-11-06 15:47:47 +00:00
cae70590d8
refactor: rename ObjBlock to ObjFn and replace block_call with fn_call across compiler, vm, and primitives
Bob Nystrom2013-11-06 14:52:28 +00:00
6aa4d4d041
fix: re-enable number and string toString tests after equality operator implementation
Bob Nystrom2013-11-06 04:38:16 +00:00
5341bdcbb3
feat: add null literal token and compiler support with keyword parsing and test cases
Bob Nystrom2013-11-06 02:22:22 +00:00
60d4c15be2
feat: add if/else expression parsing with jump bytecodes and null object support
Bob Nystrom2013-11-05 23:40:21 +00:00
8353c26596
feat: add == and != operators for bool, number, and string types with type-checking
Bob Nystrom2013-11-05 17:57:57 +00:00
c466c60434
fix: refactor metrics script to count code, comment, and empty lines separately
Bob Nystrom2013-11-05 15:57:18 +00:00
86158193b3
feat: replace special-cased block call method with primitive and remove source length parameter
Bob Nystrom2013-11-05 15:56:59 +00:00
074deebdfd
feat: add boolean literals and number comparison operators to compiler and VM
Bob Nystrom2013-11-04 05:38:58 +00:00
0fc8432442
feat: replace recursive descent parsing with Pratt parser for expression handling
Bob Nystrom2013-11-03 18:16:14 +00:00
ffc04e97f7
feat: add toString method for numbers and strings with AS_NUM/AS_STRING macros
Bob Nystrom2013-11-02 06:27:28 +00:00
8ff3684cbd
fix: allow files without trailing newline in block compilation
Bob Nystrom2013-11-01 13:57:21 +00:00
5a9330be0e
feat: add interactive REPL mode with line-by-line compilation and execution
Bob Nystrom2013-11-01 05:25:00 +00:00
ee0d2ad486
feat: add Python script to count files, lines, and TODO comments in src/*.[ch]
Bob Nystrom2013-11-01 04:54:04 +00:00
d3cffd521d
feat: add parentheses grouping support in expression parser
Bob Nystrom2013-11-01 04:49:15 +00:00
66961a3c1a
feat: replace fixed-size file buffer with dynamic allocation and add error handling
Bob Nystrom2013-10-31 21:39:41 +00:00