7c68092a55
fix: correct typos in documentation and fix error message in compiler
Bob Nystrom2014-01-14 04:22:10 +00:00
d15c36ee89
fix: correct error message token from '}' to '{' in class definition parser
b01dface2014-01-14 01:21:25 +00:00
b458bb436a
fix: correct receiver-less call examples to use IO.print and fix parameter names
b01dface2014-01-14 01:18:42 +00:00
1933956323
feat: add LuaJIT benchmark entries and refactor language command construction
Bob Nystrom2014-01-13 15:29:47 +00:00
8abfb4ec7d
feat: add fiber.isDone property and runtime error checks for finished fiber operations
Bob Nystrom2014-01-13 14:58:27 +00:00
8cee1f62bd
fix: free GC objects in linked list when VM is freed
Bob Nystrom2014-01-13 14:48:53 +00:00
08c38f92cb
feat: allow implicit null return when return statement has no value
Bob Nystrom2014-01-13 03:37:11 +00:00
2e34a5c42b
feat: add support for escape sequences \a, \b, \f, \r, \v in string parsing
Bob Nystrom2014-01-13 03:24:30 +00:00
fc4880774e
feat: implement fiber primitives with create, run, yield and caller tracking
Bob Nystrom2014-01-12 19:02:07 +00:00
d0d92971d8
fix: correct example code in site index to use IO.print instead of io.write
Bob Nystrom2014-01-12 18:58:13 +00:00
193e4e30ab
feat: add ceil, cos, sin, sqrt, isNan native methods and division-by-zero tests
Bob Nystrom2014-01-08 15:47:14 +00:00
693ab1c340
feat: add ASCII Mandelbrot fractal example with 80x24 character grid
Bob Nystrom2014-01-08 07:04:30 +00:00
33b0fae6f6
feat: extend jump offsets from 8-bit to 16-bit in compiler and VM
Bob Nystrom2014-01-08 07:03:38 +00:00
ce2e227683
feat: add floor method to Num class for rounding down to nearest integer
Bob Nystrom2014-01-08 07:03:25 +00:00
88c8984549
fix: initialize upvalue closed field to NULL_VAL to prevent GC crash
Bob Nystrom2014-01-08 07:03:15 +00:00
0ba6456214
fix: properly dispose loop-scoped variables and exit scopes on break
Bob Nystrom2014-01-06 16:01:04 +00:00
488dd3521f
fix: ensure null-termination of debug function name after strncpy copy
Bob Nystrom2014-01-06 15:54:00 +00:00
01cc6538ef
fix: increase number-to-string buffer size from 21 to 24 for double precision
Bob Nystrom2014-01-06 15:53:41 +00:00
c72db7d594
feat: rename IO.write to IO.print and add Unicode escape support in strings
Bob Nystrom2014-01-05 20:27:12 +00:00
e23e0ce6a3
feat: remove hardcoded 256 symbol limit and switch to dynamic symbol table with 16-bit instruction arguments
Bob Nystrom2014-01-04 19:08:31 +00:00
64dab4db78
feat: add WREN_TRACE_GC flag and timing instrumentation to garbage collection
Bob Nystrom2014-01-03 21:17:14 +00:00
53884b1332
feat: replace validateIndexOld with validateIndex and add validateString for core methods
Bob Nystrom2014-01-03 18:47:26 +00:00
6fb8804c9e
feat: add validateNum/validateInt helpers and runtime type checks for list methods
Bob Nystrom2014-01-02 15:32:00 +00:00
003d4f77f4
refactor: reorder and document fields in Compiler struct for clarity
Bob Nystrom2014-01-02 15:31:31 +00:00
720b1b5d76
refactor: replace monolithic Buffer struct with generic macro-generated ByteBuffer and IntBuffer types
Bob Nystrom2014-01-02 06:23:03 +00:00
b93bd62623
refactor: extract SymbolTable into dedicated wren_utils module with prefixed API
Bob Nystrom2014-01-02 04:57:58 +00:00
1b605162ef
refactor: move object freeing logic from wren_vm.c to wren_value.c alongside allocation code
Bob Nystrom2014-01-01 21:31:19 +00:00
547107a086
feat: add runtime error support with source paths, line info, and stack traces
Bob Nystrom2014-01-01 21:25:24 +00:00
8a09c03cdd
fix: reorder symbol table insertion before object allocation to prevent GC crashes
Bob Nystrom2013-12-30 15:30:50 +00:00
4f215f6531
feat: allow empty blocks in parser and fix native call slot assertion
Bob Nystrom2013-12-29 18:46:21 +00:00
5570f7f46c
refactor: rename nativeCallSlot and nativeCallNumArgs to foreignCallSlot and foreignCallNumArgs in WrenVM
Bob Nystrom2013-12-29 18:14:38 +00:00
b1e8d3f81e
feat: add foreign method interface with native call support and argument passing
Bob Nystrom2013-12-29 18:06:35 +00:00
4026878ac6
docs: add branching, looping, classes, method calls, and Q&A documentation with updated navigation
Bob Nystrom2013-12-28 17:37:41 +00:00
6dd270d7ef
refactor: replace explicit free/malloc calls with wrenReallocate in symbol table functions
Bob Nystrom2013-12-27 17:07:35 +00:00
08f043caba
feat: replace fixed-size arrays with growable Buffer struct for bytecode and string storage
Bob Nystrom2013-12-27 15:22:43 +00:00
e055360616
refactor: pass constants and bytecode directly to wrenNewFunction instead of post-assignment
Bob Nystrom2013-12-27 01:28:33 +00:00
ce60209fcc
refactor: replace hardcoded ObjFn arrays with growable buffers in compiler
Bob Nystrom2013-12-27 00:58:03 +00:00
d972a6a696
refactor: replace unsigned char with uint8_t across debug, value, and vm modules
Bob Nystrom2013-12-26 00:31:30 +00:00
dfe53d945c
feat: inline bytecode array into ObjFn struct to eliminate separate heap allocation
Bob Nystrom2013-12-26 00:19:35 +00:00
d6e4d6bcf7
refactor: change CallFrame and Method fn fields from Value to Obj*
Bob Nystrom2013-12-26 00:12:07 +00:00
cce83b67e0
docs: change heading markers from double to single hash in benchmark README
Bob Nystrom2013-12-25 23:03:17 +00:00
6c61df3ed7
feat: add range operators and iterator protocol for numeric for loops
Bob Nystrom2013-12-25 23:01:45 +00:00
b72a42eedd
refactor: replace manual instruction argument counting with getNumArguments() in wrenBindMethod
Bob Nystrom2013-12-25 06:10:30 +00:00
ad559eabd3
feat: implement for-in loop syntax with iterate/iteratorValue protocol and break support
Bob Nystrom2013-12-25 05:04:11 +00:00
c58f15fc87
feat: allow statement bodies for flow control in compiler and add return tests
Bob Nystrom2013-12-24 18:27:48 +00:00
1a456738f6
feat: add break statement support with loop tracking and error handling
Bob Nystrom2013-12-24 18:15:50 +00:00
b081f2622d
chore: remove resolved TODO comments and fix buffer size in num_toString
Bob Nystrom2013-12-23 23:38:00 +00:00
f8e5351cf3
feat: add MAX_CONSTANTS limit and overflow check with deduplication in wren_compiler.c
Bob Nystrom2013-12-23 23:08:47 +00:00
4fc948f2ca
fix: add lexError function and fix line counting for unterminated block comments
Bob Nystrom2013-12-23 22:51:06 +00:00
0067070804
refactor: remove unused CODE_DUP instruction and clean up interpreter dispatch
Bob Nystrom2013-12-23 19:37:47 +00:00
64fdc1876a
feat: add optimized field load/store instructions for direct method access
Bob Nystrom2013-12-23 19:17:40 +00:00
a7e29fc967
refactor: replace ResolvedName enum with direct Code instruction in resolveName
Bob Nystrom2013-12-23 04:53:35 +00:00
634e9fbb11
feat: add superclass call support inside closures in wren compiler
Bob Nystrom2013-12-23 04:46:12 +00:00
75d9a39040
feat: allow variable declarations without explicit initializers
Bob Nystrom2013-12-23 02:47:58 +00:00
8c13258ef6
feat: promote Fiber from raw struct to heap-allocated ObjFiber with GC support
Bob Nystrom2013-12-22 22:31:33 +00:00
54c4f231ee
fix: change ip from integer index to direct pointer in CallFrame and interpreter loop
Bob Nystrom2013-12-22 21:46:13 +00:00
7e8edd68ea
feat: make IO.write call toString on argument and add corelib with List.toString
Bob Nystrom2013-12-22 19:50:00 +00:00
91873b3a90
refactor: split class creation into raw single-class and superclass binding phases
Bob Nystrom2013-12-22 04:44:37 +00:00
8bb1a94a25
refactor: convert IO from singleton instance to static class with metaclass native methods
Bob Nystrom2013-12-22 03:25:09 +00:00
1a77a43fa0
feat: implement closure over "this" in methods and fix upvalue closing order
Bob Nystrom2013-12-21 23:55:08 +00:00
b1243ac532
feat: add list subscript setter and refactor parameter validation
Bob Nystrom2013-12-21 17:37:59 +00:00
14b6eb04d2
docs: expand method-calls documentation with setters and operator sections, add is operator note to syntax page
Bob Nystrom2013-12-21 17:15:30 +00:00
d9255666f4
fix: add list newline handling and resolve multiple test TODOs across compiler and test suite
Bob Nystrom2013-12-20 20:42:11 +00:00
46f53e4421
feat: add configurable heap growth, initial, and minimum heap size to WrenVM
Bob Nystrom2013-12-20 15:41:35 +00:00
517844fbda
feat: implement setter syntax and assignment in named method calls
Bob Nystrom2013-12-20 15:05:31 +00:00
7d12f64af4
feat: increase default GC heap threshold from 10MB to 100MB
Bob Nystrom2013-12-20 15:05:13 +00:00
278f84a745
feat: convert benchmark runner from time-based stats to score-based comparison
Bob Nystrom2013-12-20 15:04:04 +00:00
1cf8f2d999
feat: add test for infix class expression after constructor call
Bob Nystrom2013-12-19 17:10:45 +00:00
0e70d98169
refactor: replace Foo.new constructor syntax with new Foo and simplify superclass constructor calls
Bob Nystrom2013-12-19 15:02:27 +00:00
f5a61e4241
fix: expand TODO comments for superclass constructor resolution edge cases
Bob Nystrom2013-12-18 15:39:46 +00:00
7ac04b9e3d
feat: refactor method_call benchmark to use inheritance and fix constructor binding
Bob Nystrom2013-12-18 15:37:41 +00:00
e26afd7de3
docs: add method-calls and variables pages, update sidebar links, revise statement-terminator and performance docs
Bob Nystrom2013-12-17 17:39:26 +00:00
656238f286
feat: implement superclass constructor calls and metaclass inheritance chain
Bob Nystrom2013-12-17 17:39:05 +00:00
93cf4e6b87
feat: add compile-time error for 'super' used outside method context
Bob Nystrom2013-12-16 06:08:40 +00:00
7638dd2ee2
refactor: embed upvalue array directly in ObjClosure using flexible array member
Bob Nystrom2013-12-16 06:02:22 +00:00
55041f4640
feat: replace int-based booleans with stdbool.h bool type across core source files
Bob Nystrom2013-12-15 07:41:23 +00:00
c92ba58f5f
test: add scope edge case tests for variable initialization and shadowing
Bob Nystrom2013-12-15 00:36:19 +00:00
34db2b2b9f
chore: remove author attribution from TODO comments across multiple source files
Bob Nystrom2013-12-14 23:28:18 +00:00
07c3dff92f
fix: track live memory via bytesAllocated instead of subtracting freed sizes
Bob Nystrom2013-12-14 22:17:16 +00:00
78f6e3b96d
perf: inline wrenObjectToValue and switch Xcode project to C99 for speed bump
Bob Nystrom2013-12-14 19:34:49 +00:00
fc3ebb924c
refactor: replace raw #ifdef NAN_TAGGING with WREN_NAN_TAGGING flag and add WREN_COMPUTED_GOTO, WREN_DEBUG_GC_STRESS, WREN_TRACE_MEMORY configurable defines
Bob Nystrom2013-12-14 19:06:54 +00:00
d7a0063f4b
feat: replace constructor method special-casing with dedicated CODE_NEW instruction
Bob Nystrom2013-12-13 19:32:47 +00:00
42b32acef4
feat: implement superclass method dispatch with new SUPER bytecodes and named call compiler
Bob Nystrom2013-12-13 16:37:49 +00:00
a7dbdc4cba
perf: reorder opcode switch cases to move less frequent CODE_LIST and CODE_CLOSURE lower
Bob Nystrom2013-12-13 14:47:34 +00:00
8842efbab7
feat: remove JS benchmarks and reduce depth for faster binary_trees/fib runs
Bob Nystrom2013-12-13 00:59:57 +00:00
5e62b5856e
perf: reorder MethodType enum and switch cases to improve branch prediction
Bob Nystrom2013-12-12 15:39:27 +00:00
c107d26c93
feat: generate default constructors at compile time and reorder interpret loop for branch alignment
Bob Nystrom2013-12-12 15:34:16 +00:00
1737b649a4
feat: add TOKEN_SUPER enum and keyword recognition to wren compiler
Bob Nystrom2013-12-11 16:02:17 +00:00
eb97920905
docs: expand TODO comment on default constructor performance tradeoff in wren_vm.c
Bob Nystrom2013-12-11 16:00:25 +00:00
e97ec653e6
feat: add --language flag to filter benchmarks by language in run_bench
Bob Nystrom2013-12-11 07:02:24 +00:00
51dffa8c02
feat: add test verifying default constructor behavior for classes without explicit constructors
Bob Nystrom2013-12-11 05:58:02 +00:00
813cbbc5a2
docs: add initial performance documentation covering Wren's speed and value representation
Bob Nystrom2013-12-11 05:51:58 +00:00
d8c31a4391
feat: add wrenBindMethod to patch field indices and superclass dispatch in inherited methods
Bob Nystrom2013-12-11 00:13:25 +00:00
6695580df4
feat: add baseline comparison tracking to benchmark script with color-coded regression/improvement output
Bob Nystrom2013-12-08 06:14:56 +00:00
e910186f51
fix: remove stack pop for loop body in LOOP opcode since bodies are now statements
Bob Nystrom2013-12-08 02:47:40 +00:00
6ba77ea2cd
fix: add explicit return statements in benchmark functions and add method_call benchmark suite
Bob Nystrom2013-12-08 02:43:39 +00:00
ffc58724d7
feat: enforce maximum method name length of 64 characters in compiler
Bob Nystrom2013-12-07 04:09:43 +00:00
071239aa35
feat: add bitwise NOT operator (~) with token, parser, and native implementation
Bob Nystrom2013-12-05 06:09:31 +00:00
d076abc8b1
docs: add script file format and reserved words sections to syntax docs
Bob Nystrom2013-12-05 05:51:23 +00:00
6451c86b28
feat: treat semicolons as line tokens in wren compiler lexer
Bob Nystrom2013-12-05 03:12:21 +00:00