Commit Graph
100 Commits
Author SHA1 Message Date
Bob Nystrom 0f9e15833f Unify argument parsing. Fix #24. 2015-02-22 10:42:49 -08:00
Bob Nystrom a8a5805895 Fix test script. 2015-02-22 10:42:21 -08:00
Bob Nystrom bd97c244a5 Document removeAt() return value. Fix #176. 2015-02-22 10:26:31 -08:00
Bob Nystrom d6ec8c114e Don't crash if script path has no path separator. Fix #181. 2015-02-22 10:22:21 -08:00
Bob Nystrom 037a2bdb66 Massive Makefile clean up!
- "make all" builds all combinations of configurations
- Binaries are built to "bin"
- (For convenience, the release interpreter also goes in the top level dir)
- Libraries are built to "lib"

This will also make it easier to support building and testing other
configurations like Nan tagging versus union, computed goto, etc.
2015-02-22 10:19:23 -08:00
Bob Nystrom 3802609644 Store benchmark baseline file in benchmark/. 2015-02-21 13:49:02 -08:00
Bob Nystrom b45d3689de Clean up some comments. 2015-02-21 00:09:55 -08:00
Bob Nystrom 44c547176b Fix quotes in module docs. 2015-02-20 06:54:03 -08:00
Bob Nystrom a4fa3027c0 Fix cyclic import docs. 2015-02-19 06:38:13 -08:00
Bob Nystrom bdb8634743 Tweak style. 2015-02-19 06:32:46 -08:00
Bob Nystrom ae88ee539d Merge branch 'master' of https://github.com/munificent/wren 2015-02-18 07:55:38 -08:00
Bob Nystrom ca14dffab4 First pass at docs for modules. 2015-02-18 07:55:09 -08:00
Bob Nystrom 8ec89740c5 Merge pull request #172 from MarcoLizza/more_bitwise
More bitwise operands
2015-02-18 06:51:13 -08:00
Bob Nystrom b2ca4c0381 Allow zero or multiple imported names. 2015-02-17 07:32:33 -08:00
Bob Nystrom 31304ac2bb Merge branch 'master' into modules 2015-02-17 07:22:21 -08:00
Bob Nystrom c6043d3c81 Use bytecode to import variable, instead of builtin function. 2015-02-17 07:21:51 -08:00
Bob Nystrom 314c39e430 Use a native bytecode to load a module, instead of a weird builtin function on String. 2015-02-16 22:45:58 -08:00
Bob Nystrom c2c576b27c Get rid of builtin function for importing. 2015-02-16 10:21:29 -08:00
Bob Nystrom 5b1447882b Move running the module fiber into C. 2015-02-16 10:16:42 -08:00
Bob Nystrom 36d100b8e4 Move module load failure into C. 2015-02-16 10:12:41 -08:00
Bob Nystrom cbd0217072 Merge pull request #174 from MarcoLizza/IO_time
IO.time
2015-02-16 10:01:56 -08:00
Bob Nystrom 032c650e1f Get rid of hash constants for singleton values. 2015-02-16 09:33:07 -08:00
Bob Nystrom a44d479643 Basic import syntax. 2015-02-14 16:46:00 -08:00
Bob Nystrom ffc770b4a7 Also clean Mac .dylibs. 2015-02-12 09:07:41 -08:00
Bob Nystrom 6ada5e0b24 Merge branch 'patch-1' of git://github.com/Phyllostachys/wren into Phyllostachys-patch-1 2015-02-12 09:06:37 -08:00
Bob Nystrom b7cd8c755f Make map deletion not soul-crushingly slow.
In cases where the hashtable had a large cluster (which can happen with lots of sequential numeric keys),
deletion would regress to near O(n).

Instead, this deletes by leaving a tombstone entry, similar to what Python, Lua, et. al. do.
2015-02-11 22:43:39 -08:00
Bob Nystrom 911d5e374f Add benchmark for string map keys. 2015-02-11 22:41:59 -08:00
Bob Nystrom 2bad33fbc8 Rename a couple of things in the benchmark script. 2015-02-11 19:48:39 -08:00
Bob Nystrom bc5a793c41 Split out the core and main modules.
- Implicitly import everything in core into every imported module.
- Test cyclic imports.
2015-02-11 10:06:45 -08:00
Bob Nystrom 2005e1e0a2 Add ".wren" to modules in the embedder. 2015-02-06 11:52:05 -08:00
Bob Nystrom bb647d4247 Start getting module loading working.
Right now, it uses a weird "import_" method on String which
should either be replaced or at least hidden behind some syntax.

But it does roughly the right thing. Still lots of corner cases to
clean up and stuff to fix. In particular:

- Need to handle compilation errors in imported modules.
- Need to implicitly import all core and IO types into imported module.
- Need to handle circular imports.
  (Just need to give entry module the right name for this to work.)
2015-02-06 07:01:15 -08:00
Bob Nystrom 30a5284338 Merge branch 'master' into modules
Conflicts:
	src/wren_debug.c
	src/wren_value.c
	src/wren_value.h
2015-02-05 12:07:25 -08:00
Bob Nystrom 02600e2cb1 Get rid of main module field in WrenVM.
Instead, the main module is stored in the module map.
2015-02-05 12:03:19 -08:00
Bob Nystrom 4a19050416 Merge branch 'uint32_string' of git://github.com/MarcoLizza/wren into MarcoLizza-uint32_string 2015-02-04 20:28:27 -08:00
Bob Nystrom 55caae343b Add "." to comments. :) 2015-02-04 20:26:29 -08:00
Bob Nystrom ddd20c687e Merge branch 'master' into MarcoLizza-8_bit_strings_tests 2015-02-04 20:25:12 -08:00
Bob Nystrom 878be6fb6b Clean up wrenStringFind() a bit. 2015-02-04 20:23:50 -08:00
Bob Nystrom ba4760331e Merge branch 'replacing_strstr' of git://github.com/MarcoLizza/wren into MarcoLizza-replacing_strstr 2015-02-04 17:56:29 -08:00
Bob Nystrom aa9cfffb34 Keep code within 80 columns. 2015-02-04 08:15:35 -08:00
Bob Nystrom 8f313bf4ec Merge branch 'fixing_string_concatenation' of git://github.com/MarcoLizza/wren into MarcoLizza-fixing_string_concatenation 2015-02-04 08:12:50 -08:00
Bob Nystrom ef84995598 Merge branch '8_bit_strings_tests' of git://github.com/MarcoLizza/wren into MarcoLizza-8_bit_strings_tests 2015-02-04 06:59:57 -08:00
Bob Nystrom ed534b8165 Merge pull request #159 from MarcoLizza/null_char_escape
Adding '\0' escape sequence for null characters.
2015-02-04 06:57:42 -08:00
Bob Nystrom 6f26f542ea Merge pull request #163 from MarcoLizza/memcpy_for_strings
Getting rid of "strcpy()/strncpy()" in favour of "memcpy()".
2015-02-04 06:57:17 -08:00
Bob Nystrom 74289d8e7f Merge pull request #165 from MarcoLizza/gcc_constant_warning
Getting rid of constant unsigned error when compiling for C++ on GCC.
2015-02-04 06:55:44 -08:00
Bob Nystrom abc43f18bc Merge branch 'master' into shared-lib-makefile 2015-02-01 21:47:43 -08:00
Bob Nystrom 9917c16876 Fix un-Nan-tagging mode. Thanks, Michel Hermier! 2015-02-01 15:26:33 -08:00
Bob Nystrom 593e5c8b35 Clean up how flex arrays are allocated. 2015-02-01 15:12:37 -08:00
Bob Nystrom 98df1b2bd1 Add cast. 2015-01-31 10:54:27 -08:00
Bob Nystrom 970093299a Merge branch 'symbol_table_optimization' of git://github.com/MarcoLizza/wren into MarcoLizza-symbol_table_optimization 2015-01-31 10:49:41 -08:00
Bob Nystrom 2ba8da7418 Merge branch 'master' into modules 2015-01-30 07:21:41 -08:00
Bob Nystrom 8e25aa646e Remove unneeded conversion. Fix #148. 2015-01-29 20:44:46 -08:00
Bob Nystrom 3bed04e0b9 Support clang/OS X shared libraries in the Makefile. 2015-01-28 19:50:53 -08:00
Bob Nystrom f10058a704 Merge branch 'master' of https://github.com/munificent/wren 2015-01-28 19:19:19 -08:00
Bob Nystrom 0aa4d7c2bd Fix crash when doing a lookup on an empty map. 2015-01-28 19:19:04 -08:00
Bob Nystrom 1101823666 Turn Module into an Obj. 2015-01-27 07:11:45 -08:00
Bob Nystrom 81dd7a7412 Merge pull request #143 from MarcoLizza/dropped_bitfields_usage
Bitfields usage
2015-01-27 07:06:18 -08:00
Bob Nystrom 83ad9abd73 Merge branch 'master' into modules
Conflicts:
	src/wren_core.c
2015-01-26 21:55:41 -08:00
Bob Nystrom 699b453805 Fix ambiguous sequence point in dup. 2015-01-26 21:23:54 -08:00
Bob Nystrom b3f556adba Move globals out of VM and into a Module struct.
Functions store a reference to the module where they were
defined and load "module" variables from there.

Right now there's only one "main" module, but this is a step
in the right direction. Perf is down, though. :(

binary_trees - wren            ..........  3026  0.33s   88.28% relative to baseline
delta_blue - wren              ..........  7248  0.14s   94.32% relative to baseline
fib - wren                     ..........  2414  0.41s   88.08% relative to baseline
for - wren                     ..........  6753  0.15s   78.79% relative to baseline
method_call - wren             ..........  6624  0.15s  100.03% relative to baseline
2015-01-26 07:45:21 -08:00
Bob Nystrom b93ad5fae4 Merge branch 'range-equality' of git://github.com/gsmaverick/wren into gsmaverick-range-equality 2015-01-26 07:01:15 -08:00
Bob Nystrom ed8e595f54 Get rid of bytecodes for list literals.
Just compile them to:

new List
.add(...)
.add(...)
...

Gets rid of some code in the interpreter loop, which is always good.
Also addresses the old limitation where a list literal could only have
255 elements.
2015-01-25 22:49:30 -08:00
Bob Nystrom a9bd864c6b More docs for maps. 2015-01-25 21:39:22 -08:00
Bob Nystrom 44db50e7ef Don't rely on fallthrough. 2015-01-25 17:51:50 -08:00
Bob Nystrom 41d9ba9b3d Merge branch 'hex-literals' of git://github.com/gsmaverick/wren into gsmaverick-hex-literals 2015-01-25 17:49:05 -08:00
Bob Nystrom 4579171afa Add remove() to Map. 2015-01-25 17:42:36 -08:00
Bob Nystrom 0e6a90443e Add containsKey() to Map, and validate key types. 2015-01-25 12:39:19 -08:00
Bob Nystrom 3061bdde7f Start documenting maps and work on some other docs a bit. 2015-01-25 11:08:13 -08:00
Bob Nystrom 492c730e6f Key and value iteration for maps. Also toString. 2015-01-25 10:27:38 -08:00
Bob Nystrom 251b623c65 Map "clear" method. 2015-01-25 08:39:44 -08:00
Bob Nystrom e740a4c95a Map literals! 2015-01-24 23:21:50 -08:00
Bob Nystrom abe80e6d4b Initial map implementation.
Still lots of methods missing and clean up and tests to do.
Also still no literal syntax.

But the core hash table code is there and working. The supported
key types are all, uh, supported.
2015-01-24 22:27:35 -08:00
Bob Nystrom cff08f989b Rename a couple of tests. 2015-01-24 14:42:25 -08:00
Bob Nystrom 438e7bae3f Merge branch 'list-join' of git://github.com/gsmaverick/wren into gsmaverick-list-join 2015-01-24 14:39:45 -08:00
Bob Nystrom efd161cea2 Add "arity" getter to Fn. 2015-01-23 20:33:05 -08:00
Bob Nystrom c3a858a2c7 Update doc on VS project. 2015-01-23 10:41:11 -08:00
Bob Nystrom 94080a0e96 Be a bit more explicit about uses of the struct hack. 2015-01-23 10:38:12 -08:00
Bob Nystrom cda727a18d Merge branch 'msvc-project-and-compatibility' of git://github.com/MarcoLizza/wren into MarcoLizza-msvc-project-and-compatibility 2015-01-23 10:12:12 -08:00
Bob Nystrom eb424f5c1a Make strings iterable over their code points.
I'm not sure why, but this also regresses perf:

binary_trees - wren            ..........  3290  0.30s   96.68% relative to baseline
delta_blue - wren              ..........  7948  0.13s   99.06% relative to baseline
fib - wren                     ..........  3165  0.32s   95.90% relative to baseline
for - wren                     ..........  8242  0.12s   96.00% relative to baseline
method_call - wren             ..........  5417  0.18s   78.74% relative to baseline

Need to investigate.
2015-01-22 20:58:22 -08:00
Bob Nystrom a5b00cebe7 Clarify how string subscripting handles UTF-8. 2015-01-22 16:38:03 -08:00
Bob Nystrom a92e58c804 Add tests for string methods that support UTF-8 already. 2015-01-22 15:28:54 -08:00
Bob Nystrom c5e67953b8 Allow non-ASCII UTF-8 characters in string literals. 2015-01-22 15:18:30 -08:00
Bob Nystrom 2cee4c83bd Clean up and improve docs in embedder API. Fix #133. 2015-01-22 07:05:55 -08:00
Bob Nystrom 8ce58ec3c4 Reorganize files in XCode project. 2015-01-22 07:05:32 -08:00
Bob Nystrom b05e5f9c73 Merge pull request #132 from edsrzf/fix-mod-precedence
Fix precedence of % operator
2015-01-21 13:50:09 -08:00
Bob Nystrom bdc3439a71 Remove old "pinned" terminology. 2015-01-21 08:02:18 -08:00
Bob Nystrom 1d0f6a5033 Get rid of totally broken WREN_PIN. Fix #128. 2015-01-21 07:56:06 -08:00
Bob Nystrom 9453acf1e6 User-defined subscript operators. 2015-01-20 18:25:54 -08:00
Bob Nystrom 311bec5b03 Mention authors on the footer! 2015-01-20 17:47:17 -08:00
Bob Nystrom 879d9d725e Add links to mailing list. 2015-01-20 17:46:52 -08:00
Bob Nystrom b6443f0301 Move XCode project under project/. 2015-01-20 17:14:30 -08:00
Bob Nystrom c63b027210 More explicit casting between Value and Obj* to satisfy 32-bit MinGW.
Fix #111.
2015-01-20 17:06:39 -08:00
Bob Nystrom d7ae2bbc4c Turn CalculatedRange into output params. 2015-01-20 15:33:21 -08:00
Bob Nystrom b55eb7de7a Merge branch 'string-range-subscript' of git://github.com/gsmaverick/wren into gsmaverick-string-range-subscript 2015-01-20 15:01:14 -08:00
Bob Nystrom d894fc3dec Tighten numeric types in intepreter:
binary_trees - wren            ..........  3563  0.28s  101.26% relative to baseline
delta_blue - wren              ..........  8162  0.12s  106.05% relative to baseline
fib - wren                     ..........  3310  0.30s  103.39% relative to baseline
for - wren                     ..........  8576  0.12s  102.16% relative to baseline
method_call - wren             ..........  6946  0.14s  107.08% relative to baseline
2015-01-20 14:41:09 -08:00
Bob Nystrom 721db7564b Remove unused return value from consume() and consumeLine(). 2015-01-20 14:40:34 -08:00
Bob Nystrom 363dff2ffd Reorganize a bit. 2015-01-20 14:00:03 -08:00
Bob Nystrom 8c3759a457 Merge branch 'feature-wrenGetArgumentBool' of git://github.com/hazbo/wren into hazbo-feature-wrenGetArgumentBool 2015-01-20 13:58:36 -08:00
Bob Nystrom eb4e50a500 Don't use -fPIC on Windows (cygwin, mingw32). 2015-01-20 13:42:46 -08:00
Bob Nystrom 2a4804bbc9 Reorganize core library docs. 2015-01-18 15:36:36 -08:00
Bob Nystrom 50c0cbe8c3 Merge branch 'master' of https://github.com/munificent/wren 2015-01-18 10:20:29 -08:00