1
0
forked from Mirror/wren
Commit Graph

132 Commits

Author SHA1 Message Date
42b04c6c90 Fix bug in loops.
It was still popping the stack for the body even though loop
bodies are statements now.
2013-12-07 18:47:40 -08:00
eb1e5b48d6 Fix up benchmarks and add method call one. 2013-12-07 18:43:39 -08:00
3f24515496 Don't allow method names to overflow. 2013-12-06 20:09:43 -08:00
6a0d550562 Bitwise ~ operator. 2013-12-04 22:09:31 -08:00
7355dd3dc7 Fill in some more basic syntax docs. 2013-12-04 21:51:23 -08:00
c91fcd12cc Treat ";" like newlines. 2013-12-04 19:12:21 -08:00
8521d5ad79 Bunch more work on docs. 2013-12-04 07:46:41 -08:00
047cfacede Include "include" directory in source code metrics. 2013-12-04 07:46:23 -08:00
157944aa27 Get closures working!
In the process, I had to change the grammar. There is now a strong
separation between statements and expressions. The code was just wrong
before when it popped locals at the end of a block scope because there
could be temporaries on the stack if the block was in expression
position. This fixes that.

Still need to implement closing over `this`.
2013-12-04 07:43:50 -08:00
c14b115c02 Use char* instead of offsets for tokens.
Simplifies a bunch of code that works with token strings.
2013-12-01 15:22:24 -08:00
e4043d69b4 Unify code for ending compiler.
There's now a single code path for the end of a chunk of bytecode, so
we can eventually put code there for capturing closures.
2013-12-01 14:59:56 -08:00
19811143a0 Always use provided allocator for allocation. 2013-12-01 10:22:32 -08:00
9188c00bc0 Start adding navigation to the docs. 2013-12-01 09:54:51 -08:00
d2e82d8967 Clean up parsing a bit. 2013-12-01 00:04:46 -08:00
60c97b5c2f Make sure we don't go over the maximum number of locals. 2013-11-30 18:51:27 -08:00
88852960ca Handle local variable shadowing. 2013-11-30 18:28:01 -08:00
74c414937c Add JS version of binary tree benchmark. 2013-11-29 20:25:00 -08:00
f6c9848706 Ignore scratch script. 2013-11-29 16:20:44 -08:00
edb9032052 Get binary_trees benchmark working.
Wren is actually doing well in it:

wren      mean: 1.9441 median: 1.9428 std_dev: 0.0260
lua       mean: 3.5992 median: 3.6033 std_dev: 0.0156
python    mean: 3.6667 median: 3.7097 std_dev: 0.1340
ruby      mean: 1.3941 median: 1.3914 std_dev: 0.0091
2013-11-29 16:19:13 -08:00
ce89dd9c2f Fix compiling constructors. 2013-11-29 16:17:43 -08:00
8c9ce024ee Move debug code into separate module. 2013-11-29 16:17:33 -08:00
b390bdf604 Clean up constructor tests. 2013-11-29 15:21:36 -08:00
325bb281a5 Allow 16 arguments, and handle going over that correctly. 2013-11-29 15:08:27 -08:00
5f1d5cfa85 Do not allow fields outside of classes. 2013-11-29 10:53:56 -08:00
1b353e9380 Make pinned list a linked list instead of hardcoded array. 2013-11-29 09:18:13 -08:00
715fecdc7c Rename files and add some docs. 2013-11-28 08:11:50 -08:00
9d9f9c11ca Clean up "primitive" code. 2013-11-28 08:00:55 -08:00
1fc9fe131d Clean up value code. 2013-11-27 20:00:03 -08:00
c2f4345af4 Remove stale TODO. 2013-11-27 11:34:35 -08:00
1bfa252a70 List.removeAt(). 2013-11-27 10:20:32 -08:00
f8ded27376 List.clear and List.insert(). 2013-11-26 23:11:11 -08:00
56449cdbef Reorganize tests. 2013-11-26 22:52:00 -08:00
897a396599 List.add() method. 2013-11-26 18:02:10 -08:00
eaeec01dc6 Get inheritance and core classes more correctly wired up. 2013-11-26 07:52:37 -08:00
af694053a5 Add JavaScript to benchmark runner. 2013-11-26 07:50:12 -08:00
af6b73208c Start defining actual API for embedding Wren. 2013-11-25 07:47:02 -08:00
f9b2aed4dd Unify to a single reallocation function. 2013-11-25 07:14:51 -08:00
ece3f3b83b Add optional support for computed gotos.
In my benchmark, this gives like a 5% speed boost. But I'm not sure
it's taking full advantage of it. The XCode project is using LLVM,
which has support for it, but may not optimize it as much as GCC.

There are also some GCC flags I may need to set (-fno-gcse?) to get the
best perf on GCC. Needs more investigation.
2013-11-24 21:48:47 -08:00
c99f4d7834 Subscript operator for lists. 2013-11-24 19:08:46 -08:00
7a343f2ecf List literals. 2013-11-24 13:38:31 -08:00
f9b008e283 Subscript operators! 2013-11-24 10:45:07 -08:00
e3e1f7f3d4 Start working on string escapes. 2013-11-23 21:00:47 -08:00
acf9cc024f Remove some unneeded casts. 2013-11-23 17:35:11 -08:00
a5bbe81280 Start to get instance fields working. 2013-11-23 14:55:05 -08:00
ba676f1231 Work on docs a little bit. 2013-11-23 14:52:50 -08:00
e4b5613780 ASCII art graph of benchmark results! 2013-11-22 09:17:45 -08:00
b30c30e1e3 Get a basic benchmark runner going. 2013-11-22 08:55:22 -08:00
d19f9f1b9b Add a license. 2013-11-21 21:41:44 -08:00
d332eed048 Start hacking on web site. 2013-11-21 21:38:36 -08:00
359481f260 More thinking about calls. 2013-11-21 21:38:21 -08:00