Commit Graph

1250 Commits

Author SHA1 Message Date
ef3aa07d84 Add API to get the type of object in a slot. 2016-02-19 07:18:00 -08:00
fa0a507b48 Error on jump distance overflow. 2016-02-19 06:57:38 -08:00
5b7cd12e76 Don't run the skynet example from the tests.
It's too slow on the Travis bots and times out.
2016-02-14 22:28:14 -08:00
b8e85c83a8 Fix test and add skynet example. 2016-02-14 22:21:50 -08:00
d823896136 Merge branch 'master' of https://github.com/munificent/wren 2016-02-14 22:18:53 -08:00
1a6d3703d2 Merge pull request #320 from 4d47/small-doc-update
Fix two small code samples in doc
2016-02-12 10:35:40 -08:00
edbffc9a95 Simplify method() and defineMethod().
Passing along a Variable lets us get rid of some duplicate code around
loading the class.
2016-02-12 07:43:44 -08:00
68f801a525 Unnecessary strncmp -> memcmp. 2016-02-12 07:27:42 -08:00
5b5c258f55 Make a little Variable struct.
Gets rid of the slightly ugly loadInstruction output parameter that
gets passed around. Now a reference to a variable is a first-class
concept in the compiler.
2016-02-12 07:16:41 -08:00
ff69b12c2c Fix sample in doc/site/error-handling
Add missing constructor.
2016-02-11 18:06:51 -05:00
a2e03279e2 Fix abs code sample in doc/site/modules/core/num
-123.abs returns -123 because the dot has higher precedence so it's
 really -(123.abs).
2016-02-11 17:58:09 -05:00
68ab4e88c0 Merge branch 'master' of https://github.com/munificent/wren 2016-02-09 07:24:55 -08:00
8b36e2f00b Add sample(_) and sample(_,_) to Random. 2016-02-09 07:24:45 -08:00
895136b78c Merge pull request #319 from 4d47/small-doc-update
Update wrenInterpret doc/site/embedding-api
2016-02-08 17:43:05 -08:00
82307232cc Update wrenInterpret doc/site/embedding-api 2016-02-08 08:34:56 -05:00
d4a4b26203 Add Random.shuffle(). 2016-02-07 10:38:39 -08:00
79558d95e5 Move File.stat() -> Stat.path().
Thanks, Michel!
2016-02-07 09:56:16 -08:00
ffb5ada9fb Move the community docs to the wiki. 2016-01-24 15:39:35 -08:00
fde6cfc142 Generate wrenAllocateForeign() to match the other setSlot methods.
Thanks, Michel!
2016-01-24 09:25:04 -08:00
71e2458a6c Add API for accessing command-line arguments.
- Add process module with Process class.
- Add "arguments" and "allArguments" methods.
- Docs for same.
- Support passing additional arguments to command line.
- Add "--help" support to command line.
2016-01-22 07:57:26 -08:00
860220869a Oops. Completely disable lto. 2016-01-22 07:01:56 -08:00
f19888d328 Merge branch 'master' of https://github.com/munificent/wren 2016-01-22 06:42:16 -08:00
7e8bc2a89a Disable link-time-optimization for now.
It's failing when building with clang on Travis. The underlying problem
seems to be something broken with how LLVM is looking for the gold
linker, and working around that is outside of my skillset.

To learn more, Google: "LLVMgold.so: error loading plugin" lto
2016-01-22 06:42:01 -08:00
056ae61493 Tweak some docs. 2016-01-21 21:38:27 -08:00
46a03e3a2d Merge pull request #318 from pra85/patch-1
Update license year range to 2016
2016-01-21 15:20:58 -08:00
39b29ee07a Enable link time optimization in the CLI.
One little compiler flag makes a surprisingly large difference:

api_call - wren            0.05s 0.0017 130.52% relative to baseline
api_foreign_method - wren  0.24s 0.0017 144.54% relative to baseline
binary_trees - wren        0.21s 0.0032 112.27% relative to baseline
binary_trees_gc - wren     0.75s 0.0288 115.02% relative to baseline
delta_blue - wren          0.13s 0.0031 103.24% relative to baseline
fib - wren                 0.20s 0.0036 120.56% relative to baseline
fibers - wren              0.04s 0.0007 108.52% relative to baseline
for - wren                 0.07s 0.0009 124.45% relative to baseline
method_call - wren         0.12s 0.0010  95.58% relative to baseline
map_numeric - wren         0.30s 0.0031 110.11% relative to baseline
map_string - wren          0.11s 0.0098 111.38% relative to baseline
string_equals - wren       0.19s 0.0064 115.49% relative to baseline
2016-01-20 07:47:00 -08:00
205661713a Update license year range to 2016 2016-01-17 23:28:25 +05:30
f9d1e9954a Make File.stat() directory test less file system sensitive. 2016-01-05 07:32:51 -08:00
94208647ab Test File.stat() on a directory. 2016-01-01 10:05:31 -08:00
5cd8a06fa0 File.stat(). 2016-01-01 09:58:44 -08:00
b054526df8 Add an optional offset to File.readBytes(). 2015-12-30 08:13:19 -08:00
6e2ec92e0d Fix parameter format in docs. 2015-12-29 22:35:14 -08:00
452cc88082 Fix a few typos in the docs. 2015-12-29 22:29:13 -08:00
8854dfb07e Docs for the io module! 2015-12-29 21:56:44 -08:00
678251a00c Fix type for fileFinalizer(). 2015-12-29 21:07:26 -08:00
2c31985e54 Make Directory.list() create and return a list from C. 2015-12-29 08:37:47 -08:00
e0ac88c22a Revamp wrenCall to work with slots.
Now, you call wrenEnsureSlots() and then wrenSetSlot___() to set up the
receiver and arguments before the call. Then wrenCall() is passed a
handle to the stub function that makes the call. After that, you can
get the result using wrenGetSlot___().

This is a little more verbose to use, but it's more flexible, simpler,
and much faster in the VM. The call benchmark is 185% of the previous
speed.
2015-12-29 07:58:47 -08:00
ed6fad6153 Get rid of fiber for finalizers.
Instead, finalizers just get access to the foreign object's raw bytes.
This is deliberately limiting, since it discourages the user from
interacting with the VM in the middle of a GC.
2015-12-28 08:06:29 -08:00
a447b66380 Make slots available to the API outside of foreign methods.
At any point in time, the user can call wrenEnsureSlots() which will
implicitly create a fiber and point to its stack if needed.
2015-12-28 07:49:47 -08:00
a09892de32 Use a fiber for a finalizer's foreign stack. 2015-12-27 21:43:08 -08:00
9512ce74c3 Merge branch 'master' into api
# Conflicts:
#	src/module/io.c
2015-12-26 20:42:53 -08:00
fbc76cdc05 Fix C++ compile error in Directory.list(). 2015-12-26 20:26:05 -08:00
5b90896fa8 Print object type for unknown object error.
Thanks, Michel!
2015-12-26 20:15:00 -08:00
a5dc5e8390 Sort cases alphabetically.
Thanks, Michel!
2015-12-26 20:13:39 -08:00
4ad4953196 Fix typo.
Thanks, Michel!
2015-12-26 20:12:35 -08:00
8ab329ff91 Make wren.mk log wren_to_c_string.
Thanks, Michel!
2015-12-26 20:11:48 -08:00
8203baf7bd Initialize match in the test script.
Thanks, Michel!
2015-12-26 20:08:20 -08:00
1d16e85a85 Add an API to load a top-level variable into a slot. 2015-12-26 10:53:14 -08:00
0ac793d4f8 Add Directory.list() to io. 2015-12-24 10:12:12 -08:00
15043b897f Add a benchmark for wrenCall(). 2015-12-23 17:29:53 -08:00