7b1b39bd2c
Clean up runtime error string handling.
2014-01-20 22:55:11 -08:00
95d239cd21
Lots of work on docs.
2014-01-20 21:44:51 -08:00
90d1ed6aa6
Make null falsey.
2014-01-20 18:12:55 -08:00
8c5ef693d0
Remove some stale TODOs.
2014-01-20 13:57:44 -08:00
232eb9fab5
Clean up a bit of VM code.
2014-01-20 13:54:14 -08:00
ce2b45de53
Use for loop in binary_trees benchmark.
2014-01-20 13:46:37 -08:00
d16e68b208
Use for loop in List.toString.
2014-01-20 13:43:22 -08:00
46c1ba9249
Fix #2 . Finish implementing Range.
...
Covers error and edge cases and fully tested now.
2014-01-20 13:20:22 -08:00
97bf314f4b
Make Range a native object type.
...
Still need to implement better semantics, but this is an
important first step. It's much faster now too, which is good.
2014-01-20 08:45:15 -08:00
d40d04f0c5
Include numeric loop in for benchmark.
2014-01-20 08:43:10 -08:00
83b5968340
Get static methods fully working.
...
They are compiled as local variables defined in an implicit
scope surrounding the class. This has the right semantics and,
better, means that there's no VM support needed for them.
They're purely syntax sugar.
2014-01-19 13:01:51 -08:00
2a68c8ee1d
Reorganize code for tracking enclosing class.
2014-01-18 14:03:52 -08:00
8027143381
Static field tokens.
2014-01-18 09:33:18 -08:00
e8791b6bab
Don't inherit metaclasses.
...
Also disallow super() in static methods. It won't do anything
useful (it always just delegates to Class) anyway.
2014-01-17 17:29:10 -08:00
1d808cf49c
Include function name in assertion message.
2014-01-17 17:21:38 -08:00
f163afb865
Don’t allow fields in static methods.
2014-01-16 07:09:43 -08:00
e493ac7cf4
Check for number of field overflow.
2014-01-15 07:59:10 -08:00
eb1c0284dd
Handle references to fields with inheritance in closures.
2014-01-15 07:03:24 -08:00
9e30fa67ed
Fix a few typos in the docs.
2014-01-13 20:23:11 -08:00
7580c05013
Merge pull request #1 from b01dface/master
...
Minor typos and documentation updates.
2014-01-13 20:22:10 -08:00
d8378aceed
Fix an error message.
2014-01-13 20:21:25 -05:00
ce1646317b
Update IO print calls and a few typos.
2014-01-13 20:18:42 -05:00
788762c970
Add LuaJIT to benchmark.
2014-01-13 07:29:47 -08:00
4b8b676ffe
Handle errors with fiber usage.
2014-01-13 06:58:27 -08:00
52a6d6d69c
Free GC objects when VM is freed.
2014-01-13 06:48:53 -08:00
8e8bb4b9b9
Allow returns without an explicit value.
2014-01-12 19:37:11 -08:00
cf623844c4
Other escape codes.
2014-01-12 19:24:30 -08:00
f3a1f7e677
Fibers!
...
Still have some edge cases to implement but the basics are in
place and working now.
2014-01-12 11:02:07 -08:00
86d93296ab
Fix doc.
2014-01-12 10:58:13 -08:00
a8b51f6c8b
Fill in some more mathematical functions.
2014-01-08 07:47:14 -08:00
9645ddcb26
Add a little ASCII art Mandelbrot example.
2014-01-07 23:04:30 -08:00
8f316f39f8
Support longer jumps.
2014-01-07 23:03:38 -08:00
074c016c89
Num.floor.
2014-01-07 23:03:25 -08:00
e64d8ace9a
Ensure upvalue value is initialized.
...
Avoids a crash if a GC happens before the upvalue is closed.
2014-01-07 23:03:15 -08:00
3be059a137
Fix scoping and break statements.
...
Variables declared in the loop were not properly disposed of
when you broke out of the loop.
2014-01-06 08:01:04 -08:00
90a769b6d1
Correctly terminate debug function name.
2014-01-06 07:54:00 -08:00
46e1e7f069
Make string buffer for converting number to string large enough.
2014-01-06 07:53:41 -08:00
b979272305
Clean up text handling a bit:
...
- Rename IO.write -> IO.print.
- Make IO.write not print a newline.
- Support \u Unicode escapes in strings.
2014-01-05 12:27:12 -08:00
870f3b8b93
Allow more than 256 methods and constants.
...
Class symbol tables now grow on demand, and the relevant
instructions take 16-bit arguments. There's a small perf hit
for this, but only a few percent, which is good.
2014-01-04 11:08:31 -08:00
f82a034b57
Add time to GC tracing.
2014-01-03 13:17:14 -08:00
058c2606b0
Better argument validation for core methods.
2014-01-03 10:47:26 -08:00
a89386b4e8
Better argument validation for some list methods.
2014-01-02 07:32:00 -08:00
a0c32f2e6e
Clean up compiler initialization a bit.
2014-01-02 07:31:31 -08:00
e46b4b30b9
Make Buffer "generic".
...
This lets us make a growable line-number buffer.
2014-01-01 22:23:03 -08:00
a6fd0b2dd2
Move SymbolTable to wren_utils.
2014-01-01 20:57:58 -08:00
b750ece08b
Move object freeing over to wren_value.
...
That's where allocation is, so it makes sense.
2014-01-01 13:31:19 -08:00
48db3a9620
Start adding support for runtime errors:
...
- Primitives can now signal an error.
- An error prints a callstack and ends the current (and right
now only) fiber.
- Arithmetic operators error if the operand is not a number.
- Real error for method not found.
- Associate source file name, and method names with functions.
- Debug line number info for functions.
Unfortunately, this regresses perf on fib about 15%, mostly
because of the better checking in arithmetic ops.
There's still a bunch of clean up to do, but this is a big step
in the right direction.
2014-01-01 13:25:24 -08:00
45456733aa
Fix a few GC bugs.
...
Adding a to a symbol table can trigger a GC, so we need to make
sure we don't do that while sitting on an unpinned object.
2013-12-30 07:30:50 -08:00
c8fe27d6c4
Allow empty blocks.
2013-12-29 10:46:21 -08:00
a9323376ec
"native" -> "foreign".
2013-12-29 10:14:38 -08:00