3987db35f7
feat: prevent subclassing of built-in types with runtime error in class creation
Peter Reijnders2015-02-25 19:13:37 +00:00
8fb17b57f1
feat: split monolithic PREC_BITWISE into separate precedence levels for |, ^, &, and << >> in wren_compiler.c
Bob Nystrom2015-02-25 15:14:31 +00:00
3aa82e7960
fix: reject trailing non-number characters in Num.fromString parsing
Bob Nystrom2015-02-25 15:07:54 +00:00
e09d8c9b9e
fix: raise '&&' precedence above '||' in wren compiler's operator precedence table
Marco Lizza2015-02-25 15:04:02 +00:00
5ff3e291da
fix: adjust bitwise operator precedence between comparison and range in compiler enum
Marco Lizza2015-02-25 15:02:29 +00:00
c6c934f552
chore: move bitwise_precedence.wren to test/ root and add precedence comments
Marco Lizza2015-02-25 15:00:53 +00:00
f0a73b6ce2
feat: add Num.fromString static method to parse decimal strings into numbers
Bob Nystrom2015-02-25 14:53:12 +00:00
766d9792a4
fix: correct missing closing parenthesis in removeAt example code
Bob Nystrom2015-02-25 14:49:42 +00:00
8278701635
test: add edge-case tests for Num.fromString with whitespace, prefix, and non-string args
Gavin Schulz2015-02-25 07:44:03 +00:00
d57319e80a
fix: use BENCHMARK_DIR constant for baseline file path in benchmark script
Bob Nystrom2015-02-25 06:08:57 +00:00
c9f0dcde66
fix: convert signed integer types to unsigned in core and value modules to eliminate -Wsign-compare warnings
Bob Nystrom2015-02-25 05:56:33 +00:00
fca963cb48
fix: ensure UINT32_MAX is available in gcc C++ builds by defining __STDC_LIMIT_MACROS before including stdint.h in wren_common.h
Bob Nystrom2015-02-25 05:09:04 +00:00
29e8708812
fix: add missing stdint.h include for UINT32_MAX in wren_core.c
Bob Nystrom2015-02-25 04:26:39 +00:00
6396151732
fix: install gcc-multilib for 32-bit compilation support on 64-bit Travis CI VMs
Bob Nystrom2015-02-25 04:26:24 +00:00
f940f2d9d2
fix: use BENCHMARK_DIR constant for baseline file path in read and write operations
Bob Nystrom2015-02-25 03:49:29 +00:00
6596537e87
refactor: replace platform-specific getcwd with empty root directory for relative imports
Bob Nystrom2015-02-25 03:47:17 +00:00
9d700df1cd
fix: replace dynamic allocation with static buffer for rootDirectory in main.c
Bob Nystrom2015-02-25 03:43:12 +00:00
77148c2db6
chore: switch travis build script from make to make all for full configs
Bob Nystrom2015-02-25 03:32:46 +00:00
1e0f4aefbd
feat: add bitwise operator precedence test file with shift and logical combinations
Marco Lizza2015-02-23 16:29:31 +00:00
4f45d18150
fix: split monolithic PREC_BITWISE into separate precedence levels for | ^ & << >> operators
Marco Lizza2015-02-23 16:28:43 +00:00
8022c2b3c2
feat: allow multiple wrenInterpret calls to share module state for REPL
Bob Nystrom2015-02-23 15:02:27 +00:00
4b37134bfa
feat: set REPL module root to current working directory via getcwd
Marco Lizza2015-02-23 12:57:56 +00:00
3b28ac8435
fix: replace malloc with stack buffer for rootDirectory to fix memory leak and GCC warnings
Marco Lizza2015-02-23 12:57:20 +00:00
2fa5964321
fix: use BENCHMARK_DIR constant for baseline file path in read and write operations
Marco Lizza2015-02-23 09:01:57 +00:00
708b883e1f
fix: correct typos in Fn class documentation for parameter name and grammar
Bob Nystrom2015-02-22 20:34:32 +00:00
f51847e9f4
refactor: extract call method helpers and clean up comment formatting in wren_compiler.c
Bob Nystrom2015-02-22 19:04:43 +00:00
c1fc6adcb4
feat: extract argument list parsing into finishArgumentList helper
Bob Nystrom2015-02-22 18:42:49 +00:00
609082b3ba
fix: correct wrend binary path in test script from root to bin subdirectory
Bob Nystrom2015-02-22 18:42:21 +00:00
9016d6e12d
docs: document removeAt() return value and update list examples
Bob Nystrom2015-02-22 18:26:31 +00:00
ad7318d101
fix: guard against null pointer when script path lacks directory separator
Bob Nystrom2015-02-22 18:22:21 +00:00
2cdc57dda8
feat: restructure Makefile to delegate builds to script/wren.mk and output to bin/ and lib/ directories
Bob Nystrom2015-02-22 18:19:23 +00:00
42b4236b8d
feat: move baseline file path from root to benchmark/ directory
Bob Nystrom2015-02-21 21:49:02 +00:00
b3ea90f333
docs: correct comments in classDefinition, WREN_NAN_TAGGING define, and fix typo in collectGarbage
Bob Nystrom2015-02-21 08:09:55 +00:00
325f39d7c4
fix: rewrap long lines in modules documentation to fix quote formatting
Bob Nystrom2015-02-20 14:54:03 +00:00
7771a1a1cf
docs: clarify cyclic import resolution with step-by-step execution trace in modules.markdown
Bob Nystrom2015-02-19 14:38:13 +00:00
6187f7c3d8
style: convert Cthulu and Lovecraft class methods to single-line expression bodies
Bob Nystrom2015-02-19 14:32:46 +00:00
4e73f997a4
feat: add example demonstrating module import with Cthulu and Lovecraft classes
Paul Woolcock2015-02-18 16:39:31 +00:00
7afbcd142d
feat: add bitwise XOR, left shift, and right shift operators to Wren language
Bob Nystrom2015-02-18 15:55:38 +00:00
e564621bd5
docs: add initial modules documentation and update error/variable terminology
Bob Nystrom2015-02-18 15:55:09 +00:00
00d18e5885
feat: add bitwise XOR, left shift, and right shift operators to compiler and runtime
Bob Nystrom2015-02-18 14:51:13 +00:00
0d3eae5269
feat: allow zero or multiple imported names in import statement
Bob Nystrom2015-02-17 15:32:33 +00:00
d96fc0a381
feat: add map numeric/string benchmarks, IO.time, and refine Makefile clean targets
Bob Nystrom2015-02-17 15:22:21 +00:00
4f471203fa
feat: replace string import method with dedicated bytecode instruction for module variable loading
Bob Nystrom2015-02-17 15:21:51 +00:00
e64e2c01e1
feat: replace string-based module loading with dedicated CODE_LOAD_MODULE bytecode instruction
Bob Nystrom2015-02-17 06:45:58 +00:00
cc38b6f35a
refactor: rename num_bitwiseLsh and num_bitwiseRsh to num_bitwiseLeftShift and num_bitwiseRightShift for clarity
Marco Lizza2015-02-16 21:29:30 +00:00
668df8d1af
fix: rename TOKEN_LEFT_SHIFT and TOKEN_RIGHT_SHIFT to TOKEN_LTLT and TOKEN_GTGT
Marco Lizza2015-02-16 21:26:54 +00:00
d5149f9a74
refactor: remove builtin import_ method from String class and inline module loading in compiler
Bob Nystrom2015-02-16 18:21:29 +00:00
2082b64454
feat: move fiber execution of loaded modules from Wren to C runtime
Bob Nystrom2015-02-16 18:16:42 +00:00
f2424f029e
refactor: move module load failure handling from Wren to C with error string return
Bob Nystrom2015-02-16 18:12:41 +00:00
3845ed2c52
feat: add IO.time static method returning current Unix timestamp via time(NULL)
Bob Nystrom2015-02-16 18:01:56 +00:00
5db1f6778f
refactor: remove HASH_* constants and inline singleton hash values in hashValue
Bob Nystrom2015-02-16 17:33:07 +00:00
cbaeef8469
feat: add static IO.time method returning current Unix timestamp via time(NULL)
Marco Lizza2015-02-16 11:04:56 +00:00
ef891e8da9
feat: add bitwise left shift, right shift, and xor operand tests
Marco Lizza2015-02-16 10:30:15 +00:00
8c8a059dda
feat: add bitwise XOR, left-shift, and right-shift primitives for numbers
Marco Lizza2015-02-16 10:29:14 +00:00
a9b9c483cc
feat: add bitwise shift and XOR operators to compiler tokenizer and parser
Marco Lizza2015-02-16 10:28:34 +00:00
ea958deeef
feat: add import keyword token and parser support with updated test syntax
Bob Nystrom2015-02-15 00:46:00 +00:00
53da84b870
chore: add cleanup of Mac .dylib files to Makefile clean target
Bob Nystrom2015-02-12 17:07:41 +00:00
da2002e7e1
fix: remove only build artifacts in clean target instead of all generated files
Bob Nystrom2015-02-12 17:06:37 +00:00
502000043e
chore: split clean target into separate rm commands for build, release, and debug artifacts
Jacob Shaffer2015-02-12 15:23:13 +00:00
dc58f2aa06
feat: replace O(n) map deletion with tombstone-based open addressing
Bob Nystrom2015-02-12 06:43:39 +00:00
aff3ce54db
feat: add string-key map benchmark across lua, py, rb, wren with 1M entries
Bob Nystrom2015-02-12 06:41:59 +00:00
25b9cbf9a1
refactor: rename HOME_DIR to WREN_DIR and script file from run_bench.py to benchmark.py
Bob Nystrom2015-02-12 03:48:39 +00:00
91efd0d0cc
feat: split core module from main and add implicit core imports for all modules
Bob Nystrom2015-02-11 18:06:45 +00:00
16c13765de
feat: add map benchmark scripts for lua, python, ruby, and wren
Marco Lizza2015-02-09 10:51:09 +00:00
f5def0e3ca
chore: move run_bench script to script folder and update path references
Marco Lizza2015-02-09 10:49:06 +00:00
deca7c716b
fix: extend make clean to remove libwren.a and libwren.so artifacts
Jacob Shaffer2015-02-06 20:15:41 +00:00
6cce3433a5
feat: append ".wren" extension to module paths in readModule and update test imports
Bob Nystrom2015-02-06 19:52:05 +00:00
70191aa022
feat: add module loading with String.import_ and embedder-provided loadModuleFn
Bob Nystrom2015-02-06 15:01:15 +00:00
7cba07a322
feat: add shared library builds and fix string buffer type in symbol table
Bob Nystrom2015-02-05 20:07:25 +00:00
1fd8308f50
refactor: remove dedicated main module field from WrenVM struct
Bob Nystrom2015-02-05 20:03:19 +00:00
9ed0bdac95
fix: cast index to uint32_t before comparing with string length in string_iterate
Bob Nystrom2015-02-05 04:28:27 +00:00
c6d8ad2844
chore: add trailing period to "8-bit clean" comments across string test files
Bob Nystrom2015-02-05 04:26:29 +00:00
66c9c1ad4b
feat: add length parameters to wrenStringConcat and implement Boyer-Moore-Horspool string search
Bob Nystrom2015-02-05 04:25:12 +00:00
8fa4f9c1bb
refactor: change wrenStringFind to return UINT32_MAX instead of haystack->length for not-found
Bob Nystrom2015-02-05 04:23:50 +00:00
84e1b78a7a
feat: replace strstr with Boyer-Moore-Horspool string search in core string operations
Bob Nystrom2015-02-05 01:56:29 +00:00
00226268c3
style: reformat string concat calls to 80 cols and fix comment typo
Bob Nystrom2015-02-04 16:15:35 +00:00
80815a279b
fix: add explicit length parameters to wrenStringConcat calls in validation and class creation
Bob Nystrom2015-02-04 16:12:50 +00:00
daf0728b12
test: add 8-bit clean string tests for concatenation, contains, count, ends_with, equality, index_of, iterate, iterator_value, join, starts_with, subscript, and to_string
Bob Nystrom2015-02-04 14:59:57 +00:00
8eecc5abe3
feat: add '\0' escape sequence support for null characters in string parsing
Bob Nystrom2015-02-04 14:57:42 +00:00
69e10c11bc
refactor: replace strcpy/strncpy with memcpy and explicit null-termination across compiler, core, utils, value, and vm modules
Bob Nystrom2015-02-04 14:57:17 +00:00
4f66bb2a84
fix: add unsigned suffix to FNV-1a hash constant for GCC C++ compilation
Bob Nystrom2015-02-04 14:55:44 +00:00
4f16886150
fix: add unsigned suffix to FNV-1a hash constant to suppress GCC C++ compilation warning
Marco Lizza2015-02-04 12:59:53 +00:00
269ed9a152
feat: add 8-bit string test cases across concatenation, contains, count, ends_with, equality, index_of, iterate, iterator_value, join, starts_with, subscript, and to_string
Marco Lizza2015-02-04 12:58:16 +00:00
a7ad4ead70
fix: handle empty search string in string_contains by checking search length only
Marco Lizza2015-02-04 12:53:59 +00:00
23dcd3feb3
refactor: replace strcpy/strncpy with memcpy for safer string handling across compiler, core, utils, value, and vm modules
Marco Lizza2015-02-04 12:51:54 +00:00
7127012cf7
fix: cast index to uint32_t in string_iterate to suppress signed comparison warning
Marco Lizza2015-02-04 12:47:09 +00:00
81a1a5a72f
fix: add explicit length parameters to wrenStringConcat for null-containing string support
Marco Lizza2015-02-04 12:44:39 +00:00
b43788a221
feat: replace strstr with wrenStringFind using Boyer-Moore-Horspool for 8-bit string support
Marco Lizza2015-02-04 12:38:15 +00:00
f5942f0123
fix: change ObjString length field type from int to uint32_t
Marco Lizza2015-02-04 12:29:15 +00:00
ed38494eba
feat: add '\0' escape sequence support in string literal parsing
Marco Lizza2015-02-04 12:25:25 +00:00
a02e359a40
feat: add String struct with length tracking and refactor symbol table to use it
Bob Nystrom2015-02-02 05:47:43 +00:00
dcc4bf5487
fix: ensure NaN-tagged values are properly handled in hashValue and Value struct
Bob Nystrom2015-02-01 23:26:33 +00:00
50e10efa89
refactor: change ALLOCATE_FLEX macro to accept element type and count instead of raw byte size
Bob Nystrom2015-02-01 23:12:37 +00:00
e6949ffd1b
fix: cast length to int in wrenSymbolTableAdd to suppress implicit conversion warning
Bob Nystrom2015-01-31 18:54:27 +00:00
3533a4b0bd
fix: update symbol table to store String struct with length instead of raw char*
Bob Nystrom2015-01-31 18:49:41 +00:00
6858db260a
fix: replace bitfield flags with bool marked and fix empty map lookup crash
Bob Nystrom2015-01-30 15:21:41 +00:00
9329503ea7
perf: replace strncmp with memcmp in wrenSymbolTableFind for length-known string comparison
Marco Lizza2015-01-30 08:24:10 +00:00
2108cb39be
fix: align pointer asterisk to type in String struct declaration
Marco Lizza2015-01-30 08:23:30 +00:00
cdfad0a7eb
fix: remove redundant OBJ_VAL wrapper in validateKey error string assignment
Bob Nystrom2015-01-30 04:44:46 +00:00