Commit Graph

38 Commits

Author SHA1 Message Date
a09892de32 Use a fiber for a finalizer's foreign stack. 2015-12-27 21:43:08 -08:00
01e8f9053e Add a benchmark to test the Wren C API.
I've got some ideas on how to tweak the embedding API, but I want to
see what performance impact they have first, so this adds a little
benchmark that just calls a foreign method a ton of times.
2015-12-15 16:02:13 -08:00
36f7d74183 Unify "script" and "project" under "util". 2015-09-22 07:45:58 -07:00
f36a795534 Automatically update the string constants when a builtin module changes. 2015-09-13 10:03:02 -07:00
b4deb30a02 Reorganize build scripts for libuv.
- Create separate libs for each architecture. OS X doesn't need this
  (we just build a universal binary), but it will help Linux.
- Move the libuv build stuff into wren.mk where the actual dependency
  on the lib is.
- Download libuv to deps/ instead of build/. That way "make clean"
  doesn't blow it away.
- Don't redownload libuv unless needed.
2015-08-28 19:31:03 -07:00
0ae59be11a Use the same libuv output directory on Mac and Linux. 2015-08-27 07:55:12 -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
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
7084d6bfd5 Add infrastructure to test embedding API. 2015-05-24 09:23:30 -07:00
3be0a396c4 Remove unneeded line from Makefile. 2015-05-19 07:00:44 -07:00
bead9a3406 Output amalgamation into build/. 2015-04-25 08:38:45 -07:00
796639e371 Fix amalgamation to work with X Macro files 2015-04-16 14:45:22 +02:00
9bcf31e14d Add amalgamation generation script 2015-04-16 14:45:22 +02:00
e2a72282a1 Move gh-pages directory under build/. 2015-03-14 12:19:03 -07:00
037a2bdb66 Massive Makefile clean up!
- "make all" builds all combinations of configurations
- Binaries are built to "bin"
- (For convenience, the release interpreter also goes in the top level dir)
- Libraries are built to "lib"

This will also make it easier to support building and testing other
configurations like Nan tagging versus union, computed goto, etc.
2015-02-22 10:19:23 -08:00
ffc770b4a7 Also clean Mac .dylibs. 2015-02-12 09:07:41 -08:00
e4caeb2a7c made ``make clean`` more explicit 2015-02-12 10:23:13 -05:00
5b348e61d7 ``make clean`` now removes the libraries
```make clean``` now removes ```libwren.a``` and ```libwren.so``` where it only removed ```build```` and ```wren```
2015-02-06 15:15:41 -05:00
3bed04e0b9 Support clang/OS X shared libraries in the Makefile. 2015-01-28 19:50:53 -08:00
2f97ef57d3 Change Makefile to differentiate between static and shared library
Previously, just the static libraries (libwren*.a) were created. In the Makefile documentation these were mentioned in the comments as shared.
Now both variants will be created.
2015-01-27 15:05:53 +01:00
eb4e50a500 Don't use -fPIC on Windows (cygwin, mingw32). 2015-01-20 13:42:46 -08:00
9fcaddaa07 Make prep Phony 2015-01-17 20:20:05 -06:00
6e369fc639 Finish making Wren compile as C++98.
- Get Value, the hard part, compiling as C++.
- Add some rudimentary C++ support to the makefile, mainly for testing.
2015-01-15 21:12:51 -08:00
d74e11b80e Allow better debugging
This will ensure that we have better output when running `wren` under
{g,ll}db.
2015-01-12 10:01:34 -05:00
728cb2cbca Gitignore shared libraries and comment makefile a bit. 2015-01-04 10:02:50 -08:00
7cb77b7729 First try at building separate lib + binary 2015-01-02 15:24:07 -05:00
23ba46a9f9 Move the -lm after the list of object files
Fixes linking through `gcc`, doesn't affect `clang`.

Closes #43
2015-01-02 09:32:30 -05:00
d65bd1382b Add gh-pages build step. 2015-01-01 20:58: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
83c2013dfb Fixes to make GCC happier. 2014-11-26 14:03:05 -08:00
acceea2206 Clean up makefile a bit. 2014-04-26 08:07:03 -07:00
28021dc63e Redo site design. 2014-04-05 15:39:02 -07:00
36df70dba1 Move IO into a separate module. 2014-02-04 08:44:59 -08:00
7e850637f9 Allow passing a suite to make test. 2014-02-02 10:30:58 -08:00
66f0b57bf3 Allow ranges in list subscript operator. 2014-01-30 09:12:44 -08:00
f2aeb30b31 Hack on the docs a bit. 2014-01-30 06:51:52 -08:00
96d728cc5d Reorganize makefile and scripts. 2014-01-23 23:29:50 -08:00
0334cb3367 init Makefile 2014-01-21 10:24:33 -06:00