Commit Graph
1296 Commits
Author SHA1 Message Date
Bob Nystrom 635d695083 Validate number comparison operand types. 2014-01-21 07:44:11 -08:00
Bob Nystrom 7b1b39bd2c Clean up runtime error string handling. 2014-01-20 22:55:11 -08:00
Bob Nystrom 95d239cd21 Lots of work on docs. 2014-01-20 21:44:51 -08:00
Bob Nystrom 90d1ed6aa6 Make null falsey. 2014-01-20 18:12:55 -08:00
Bob Nystrom 8c5ef693d0 Remove some stale TODOs. 2014-01-20 13:57:44 -08:00
Bob Nystrom 232eb9fab5 Clean up a bit of VM code. 2014-01-20 13:54:14 -08:00
Bob Nystrom ce2b45de53 Use for loop in binary_trees benchmark. 2014-01-20 13:46:37 -08:00
Bob Nystrom d16e68b208 Use for loop in List.toString. 2014-01-20 13:43:22 -08:00
Bob Nystrom 46c1ba9249 Fix #2. Finish implementing Range.
Covers error and edge cases and fully tested now.
2014-01-20 13:20:22 -08:00
Bob Nystrom 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
Bob Nystrom d40d04f0c5 Include numeric loop in for benchmark. 2014-01-20 08:43:10 -08:00
Bob Nystrom 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
Bob Nystrom 2a68c8ee1d Reorganize code for tracking enclosing class. 2014-01-18 14:03:52 -08:00
Bob Nystrom 8027143381 Static field tokens. 2014-01-18 09:33:18 -08:00
Bob Nystrom 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
Bob Nystrom 1d808cf49c Include function name in assertion message. 2014-01-17 17:21:38 -08:00
Bob Nystrom f163afb865 Don’t allow fields in static methods. 2014-01-16 07:09:43 -08:00
Bob Nystrom e493ac7cf4 Check for number of field overflow. 2014-01-15 07:59:10 -08:00
Bob Nystrom eb1c0284dd Handle references to fields with inheritance in closures. 2014-01-15 07:03:24 -08:00
Bob Nystrom 9e30fa67ed Fix a few typos in the docs. 2014-01-13 20:23:11 -08:00
Bob Nystrom 7580c05013 Merge pull request #1 from b01dface/master
Minor typos and documentation updates.
2014-01-13 20:22:10 -08:00
b01dface d8378aceed Fix an error message. 2014-01-13 20:21:25 -05:00
b01dface ce1646317b Update IO print calls and a few typos. 2014-01-13 20:18:42 -05:00
Bob Nystrom 788762c970 Add LuaJIT to benchmark. 2014-01-13 07:29:47 -08:00
Bob Nystrom 4b8b676ffe Handle errors with fiber usage. 2014-01-13 06:58:27 -08:00
Bob Nystrom 52a6d6d69c Free GC objects when VM is freed. 2014-01-13 06:48:53 -08:00
Bob Nystrom 8e8bb4b9b9 Allow returns without an explicit value. 2014-01-12 19:37:11 -08:00
Bob Nystrom cf623844c4 Other escape codes. 2014-01-12 19:24:30 -08:00
Bob Nystrom 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
Bob Nystrom 86d93296ab Fix doc. 2014-01-12 10:58:13 -08:00
Bob Nystrom a8b51f6c8b Fill in some more mathematical functions. 2014-01-08 07:47:14 -08:00
Bob Nystrom 9645ddcb26 Add a little ASCII art Mandelbrot example. 2014-01-07 23:04:30 -08:00
Bob Nystrom 8f316f39f8 Support longer jumps. 2014-01-07 23:03:38 -08:00
Bob Nystrom 074c016c89 Num.floor. 2014-01-07 23:03:25 -08:00
Bob Nystrom 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
Bob Nystrom 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
Bob Nystrom 90a769b6d1 Correctly terminate debug function name. 2014-01-06 07:54:00 -08:00
Bob Nystrom 46e1e7f069 Make string buffer for converting number to string large enough. 2014-01-06 07:53:41 -08:00
Bob Nystrom 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
Bob Nystrom 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
Bob Nystrom f82a034b57 Add time to GC tracing. 2014-01-03 13:17:14 -08:00
Bob Nystrom 058c2606b0 Better argument validation for core methods. 2014-01-03 10:47:26 -08:00
Bob Nystrom a89386b4e8 Better argument validation for some list methods. 2014-01-02 07:32:00 -08:00
Bob Nystrom a0c32f2e6e Clean up compiler initialization a bit. 2014-01-02 07:31:31 -08:00
Bob Nystrom e46b4b30b9 Make Buffer "generic".
This lets us make a growable line-number buffer.
2014-01-01 22:23:03 -08:00
Bob Nystrom a6fd0b2dd2 Move SymbolTable to wren_utils. 2014-01-01 20:57:58 -08:00
Bob Nystrom 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
Bob Nystrom 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
Bob Nystrom 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
Bob Nystrom c8fe27d6c4 Allow empty blocks. 2013-12-29 10:46:21 -08:00