Commit Graph

1133 Commits

Author SHA1 Message Date
eaaaca7cd2 Enable POSIX extensions when compiling stuff that uses libuv. 2015-08-08 08:57:57 -07:00
8d90e093ea Try to get libuv working on Linux (again).
It seems to want to build to a different output directory on Mac and
Linux. I can't fix that, so just make our Makefile accommodate.
2015-08-08 07:40:27 -07:00
bb7485d46b Use the same libuv build directory on Linux. 2015-08-08 07:20:07 -07:00
9845ed5126 Tests for Timer.sleep(). 2015-08-08 07:17:30 -07:00
d4acbe8a70 A vertical slice of real libuv integration.
This adds a "timer" module to the CLI that provides a Timer class with
a static sleep() method. Not the most exciting functionality in the
world, but it requires the full hunk of libuv integration:

- The CLI sets up libuv and runs the event loop.
- Added a new directory src/module for CLI modules.
- Updated all the make scripts to handle it.
- Reorganized some other CLI code.
2015-08-07 08:10:55 -07:00
254729d067 Merge branch 'master' into libuv 2015-08-07 07:57:32 -07:00
56d4d3e671 Allow passing WrenValues to wrenCall(). 2015-08-07 07:57:23 -07:00
07615ed1f2 Merge branch 'master' into libuv 2015-08-06 23:15:55 -07:00
0b97b27cf4 Add an API for storing handles to values outside of the VM.
It's pretty bare bones now, but it lets you get a reference to an object
from a foreign call and then return it later.
2015-08-06 22:24:15 -07:00
59ff15d26a Merge branch 'master' into libuv 2015-08-06 21:37:13 -07:00
a1424f8371 Be more explicit about fulling initializing Signature structs.
Thanks, Michel!
2015-08-06 07:34:19 -07:00
d18ee3068a Make wrenFindVariable() also take a module.
Thanks, Michel!
2015-08-06 07:13:11 -07:00
0631f3b109 Fix deadlock bug in map insertion. 2015-08-06 06:55:30 -07:00
d995dc894c Set working directory for Linux libuv compile. 2015-08-02 10:58:27 -07:00
30752b26be First pass at compiling libuv on Linux. 2015-08-02 10:56:44 -07:00
4a6d7e0428 Integrate libuv into Wren.
- Add a script that downloads and compiles libuv.
- Hook that up to the Makefile so it pulls down libuv on build.
- Add a separate "vm" target that just builds the VM library and skips
  libuv.
- Link to libuv when compiling the CLI.
- Update the XCode project to link to libuv too.

Linux and Windows support isn't done yet, but it should be pretty
straightforward to add to the Python script.
2015-08-02 10:43:38 -07:00
71ab3ca887 Use "construct" instead of "this" to define constructors. 2015-07-21 07:24:53 -07:00
ed8ec262e4 Fix example in README. 2015-07-20 07:34:30 -07:00
bc822cd4c7 Merge branch 'master' into constructor-methods 2015-07-19 12:49:23 -07:00
6ece2c173b More test runner fixes. 2015-07-19 10:31:55 -07:00
71eda0e427 Make an inline function for getting the fn for a call frame.
Thanks, Michel!
2015-07-19 10:16:54 -07:00
e42893fe4c Clean up macros and fix non-nan-tagged and non-computed-goto modes. 2015-07-19 10:16:27 -07:00
1b27d556e0 Fix bug in test runner. 2015-07-19 09:33:00 -07:00
214794db67 Fix a tiny typo. 2015-07-19 09:10:42 -07:00
fd637e46bc Fix a couple of style nits. 2015-07-18 14:17:39 -07:00
d91c06d18b Tweak IO library a bit:
- Reword some docs.
- Make IO.printAll() public.
- Require () on read.
2015-07-18 14:09:00 -07:00
ea2bad3272 Merge pull request #286 from BarabasGitHub/string_equals-py
Added string_equals.py to benchmarks
2015-07-18 11:21:49 -07:00
c095b72976 Reorganize community docs a bit. 2015-07-18 11:19:52 -07:00
f7d3c85329 added links on the community page to 'wrenjs' and 'wren-nest' 2015-07-15 17:40:12 -05:00
df6b5cfde1 Added string_equals.py 2015-07-10 19:40:10 +02:00
18165db204 Update Travis config to allow container-based builds. 2015-07-10 10:35:25 -07:00
861d906fc2 Ensure signature type is correctly initialized. 2015-07-10 10:27:32 -07:00
a389fdea67 Fix implicit conversion. 2015-07-10 09:22:04 -07:00
5fb6186d7d Make constructors just methods.
* Eliminate "new" reserved word.
* Allow "this" before a method definition to define a constructor.
* Only create a default constructor for classes that don't define one.
2015-07-10 09:18:22 -07:00
0ddaa2517c Merge branch 'fix-tests' 2015-07-09 08:09:19 -07:00
fa8ac84a8b Fix broken test runner (!).
If a test expected an error and found at least one, it would not fail
on any other expected errors that didn't occur.

Also, some tests were expecting a compile time error message even though
the test script doesn't validate those (yet).

The test function was getting monolithic, so I went ahead and split it
into a separate little class.
2015-07-09 08:06:33 -07:00
8b445447e4 Merge pull request #281 from sbrl/master
Add myself to the AUTHORS and correct a small typo
2015-07-01 16:07:51 -07:00
31c761ecbd Add myself to the AUTHORS and correct a small typo 2015-07-01 18:48:04 +01:00
a44e07deba Some minor doc cleanups and tweaks. 2015-07-01 08:11:10 -07:00
70cc371379 Merge pull request #275 from sbrl/master
Document the IO class
2015-07-01 06:44:27 -07:00
2387d4dc31 Grow the call frame array dynamically.
Previously, fibers had a hard-coded limit to how big their stack size
is. This limit exists in two forms: the number of distinct call frames
(basically the maximum call depth), and the number of unique stack
slots.

This fixes the first half of this by dynamically allocating the call
frame array and growing it as needed. This makes new fibers smallers
since they can start with a very small array. Checking and growing as
needed doesn't noticeably regress the perf on the other benchmarks, and
it makes a new fiber benchmark about 45% faster.

The stack array is still hardcoded, but that will be in another commit.
2015-07-01 00:00:25 -07:00
18dcd3ce3d Reuse primitive for returning this.
Thanks, Michel!
2015-06-30 07:39:43 -07:00
4a15653c66 Add isEmpty to Sequence.
Thanks, Michel and Thorbjørn!
2015-06-30 06:52:29 -07:00
ed6d7c5084 Implement toString directly on Class.
Thanks, Michel!
2015-06-28 15:33:37 -07:00
70d6753374 Renamed temporary filename to actual filename 2015-06-28 19:45:55 +01:00
ffddc579fd Fixed IO title and renamed file to temporary name 2015-06-28 19:45:08 +01:00
1a87f52e9d Eliminate duplication between CODE_CALL and CODE_SUPER handling.
Also improves perf:

binary_trees - wren            106.96% relative to baseline
delta_blue - wren               99.84% relative to baseline
fib - wren                     114.97% relative to baseline
for - wren                     123.32% relative to baseline
method_call - wren             112.80% relative to baseline
map_numeric - wren             111.36% relative to baseline
map_string - wren               93.73% relative to baseline
string_equals - wren           106.15% relative to baseline
2015-06-28 10:58:48 -07:00
080514cffb Tweak arguments to runInterpreter().
Thanks, Michel!
2015-06-27 08:56:52 -07:00
aa37bdc780 Include method name in block argument debug name. 2015-06-27 08:36:20 -07:00
bf730bb953 More tests for invalid code points. 2015-06-27 08:11:58 -07:00