be0032cc40
Merge branch 'segfault_on_top_level_super_with_no_args' of git://github.com/zeckalpha/wren into zeckalpha-segfault_on_top_level_super_with_no_args
2015-01-11 19:42:26 -08:00
bc29e0929e
Rename a couple of files and tweak some docs.
2015-01-11 19:13:15 -08:00
7557c91b3c
Adds some common methods to strings.
2015-01-11 16:06:56 -08:00
c376d88e61
super at top level: Allow the compiler to continue compilation after erroring. Added two more tests.
2015-01-11 17:44:10 -06:00
3490c8d2f3
Segfault when calling super at top-level with no arguments.
...
If enclosingClass is null, we can't proceed with compilation since we don't have its name.
2015-01-09 15:14:06 -06:00
3116bf97de
Use correct buffer size in string subscript operator.
2015-01-09 07:12:25 -08:00
bcf052436f
Merge pull request #94 from edsrzf/fix-neg-number
...
Don't treat negative numbers as literals
2015-01-09 07:00:12 -08:00
75d28c083c
Don't treat negative numbers as literals
...
Fixes #93 .
Previously, "1 -1" was lexed as two number tokens: a positive literal and
a negative literal. This caused problems when it came to parsing.
Now the '-' and the second number are separate tokens.
Note this is a breaking change, since `-16.sqrt` is now parsed as `-(16.sqrt)`,
as opposed to `(-16).sqrt`.
There is a small bit of overhead to doing it this way, but it might be possible
to optimize that out in the compiler at some point in the future.
2015-01-09 20:17:40 +13:00
efabf20fee
Make a few changes to methodNotFound():
...
- Move closer to other runtime error code.
- Make it static since it's private to wren_vm.h.
- Allocate a managed ObjString* for the message so the GC can handle it.
That's how it ends up anyway, so this cuts out the middle man.
- Use a width specifier in sprintf() to print the canonical method name.
2015-01-08 22:29:37 -08:00
a9f1d52ef7
Merge branch 'improve-debugging' of git://github.com/gsmaverick/wren into gsmaverick-improve-debugging
2015-01-08 21:49:20 -08:00
15da548f48
Code review changes.
2015-01-08 21:30:47 -08:00
15b0d8777c
Handle toString not returning a string in IO.print and IO.write.
...
Fix #67 .
2015-01-08 07:53:37 -08:00
a9a676d706
Merge branch 'master' of https://github.com/munificent/wren
2015-01-08 07:41:49 -08:00
1a7f849c42
Store string length as an int instead of size_t.
...
Saves a few bits, and avoids some signed/unsigned conversions.
It's also consistent with other places string lengths are stored in the VM.
2015-01-08 07:41:30 -08:00
1e6241a7df
Merge pull request #81 from edsrzf/sprintf-return
...
Use the return value of sprintf to avoid strlen calls
2015-01-08 07:01:21 -08:00
648ee727a1
Fix style nits
2015-01-08 19:34:58 +13:00
68adc3f511
Use the return value of sprintf to avoid strlen calls
2015-01-08 13:46:33 +13:00
5261ef498f
Optimize string methods for stored length
...
wrenStringConcat could still make use of this info, but that's a more involved
change.
2015-01-08 11:09:11 +13:00
3fd348e6c1
Store string length
...
Strings are still null-terminated so that they can be treated as C strings.
2015-01-08 10:05:51 +13:00
b30f8446f8
Merge branch 'string-flexible-array' of git://github.com/edsrzf/wren into edsrzf-string-flexible-array
2015-01-07 07:20:12 -08:00
6adf8c40e1
Don't use printf() to format NaNs since the output isn't fully specified. Fix #65 .
2015-01-06 07:09:45 -08:00
e3b5206ca8
Use a flexible array for strings
2015-01-06 19:08:42 +13:00
52bd38f3bd
Don't double report lexer errors.
2015-01-04 13:10:46 -08:00
09bb28735c
Merge branch 'feature-shebang-support' of git://github.com/mauvm/wren into mauvm-feature-shebang-support
2015-01-04 13:02:42 -08:00
a9bb2387a1
Handle empty (or comment-only) files. Fix #57 .
2015-01-04 13:00:53 -08:00
7f90485cff
Let the user know the arity of a missing method in the error message.
2015-01-04 14:42:11 -05:00
6c549e0cc5
Use lexError() and add test for invalid shebang.
2015-01-04 19:56:16 +01:00
dfb381e43b
Remove duplicate comment. Oops.
2015-01-04 08:52:40 +01:00
e46d2e479b
Merge pull request #55 from gsmaverick/repl-newline
...
Don't try to run an empty line in the REPL.
2015-01-03 23:40:20 -08:00
fa96fb0a8e
Let compiler ignore shebang on first line.
2015-01-03 20:53:12 +01:00
e3e358fb61
Don't try to run an empty line in the REPL.
2015-01-03 14:25:10 -05:00
c25cfca18b
Eliminate semicolons entirely.
2015-01-03 10:02:45 -08:00
b33dcf0da5
Name the anonymous union since strict C99 doesn't allow it.
2015-01-02 20:17:10 -08:00
f028544b53
CamelCase.
2015-01-02 07:31:02 -08:00
25b31a206a
Check the return value of getline
...
Otherwise, `gcc` warns, which causes the build to fail
2015-01-02 09:32:29 -05:00
42816c46ee
Add TODO for arity getter.
2015-01-01 18:49:10 -08:00
c967439ead
Add Fiber.abort() method.
2015-01-01 10:40:14 -08:00
93ced56a7a
Clean up corner case for empty list range.
2014-12-31 10:34:44 -08:00
46733391c1
User pointer for stack top instead of array index.
...
Cleans up a bunch of stack calculation.
2014-12-31 10:34:27 -08:00
2656487f71
Store the start of the current frame's stack in a local.
...
binary_trees - wren .......... 3337 0.30s 99.03% relative to baseline
delta_blue - wren .......... 6989 0.14s 97.90% relative to baseline
fib - wren .......... 2985 0.33s 121.72% relative to baseline
for - wren .......... 8530 0.12s 99.06% relative to baseline
method_call - wren .......... 5047 0.20s 98.74% relative to baseline
2014-12-08 06:57:36 -08:00
8417fadc2f
Make all heap objects store a reference to their class and inline class lookup.
...
This is redundant, but significantly optimizes method dispatch:
binary_trees - wren .......... 3347 0.30s 110.30% relative to baseline
delta_blue - wren .......... 7161 0.14s 110.39% relative to baseline
fib - wren .......... 2445 0.41s 112.78% relative to baseline
for - wren .......... 8600 0.12s 143.00% relative to baseline
method_call - wren .......... 5112 0.20s 114.15% relative to baseline
2014-12-07 14:29:50 -08:00
ac67386208
Add specialized instructions for loading some locals.
...
Not having to decode a separate arg byte improves some benchmarks:
binary_trees - wren .......... 3094 0.32s 101.95% relative to baseline
delta_blue - wren .......... 6555 0.15s 101.05% relative to baseline
fib - wren .......... 2326 0.43s 107.32% relative to baseline
for - wren .......... 6183 0.16s 102.81% relative to baseline
method_call - wren .......... 4746 0.21s 105.97% relative to baseline
2014-12-06 19:59:11 -08:00
da7aca5dd2
Don't create uninitialized string objects from "" string literals.
2014-12-06 10:04:46 -08:00
e3cf80127b
Ensure functions always have a return even in release builds.
2014-12-01 21:36:06 -08:00
c001042276
More tweaks to hopefully please GCC.
2014-11-28 11:21:01 -08:00
d1a07460c9
Fix compiling break statements.
...
Had the wrong instruction size, which caused later code walking to wander into arguments.
2014-11-26 18:33:54 -08:00
83c2013dfb
Fixes to make GCC happier.
2014-11-26 14:03:05 -08:00
f6cbb6ad75
Add Fiber.try().
2014-10-15 06:36:42 -07:00
feb9f7cb53
Fix crash bug in closure capturing.
2014-04-24 17:52:53 -07:00
80a4eb8c9c
Better error message on too many inherited fields.
2014-04-22 07:06:26 -07:00