1
0
forked from Mirror/wren
Commit Graph

1371 Commits

Author SHA1 Message Date
57f34fab95 Fix assignment test. 2016-10-08 10:51:19 -07:00
e7cabbb5e4 Reset the API stack after a foreign constructor returns. 2016-08-28 08:23:27 -07:00
d331cbf43d Ensure macro parameter is parenthesized. 2016-08-27 21:44:39 -07:00
b59eeaf2d1 Support "--version" in the CLI to print the version. 2016-08-27 17:38:14 -07:00
09ef904d32 Use DBL_MIN instead of DBL_EPSILON for Num.smallest. 2016-08-27 17:25:32 -07:00
b8b0f36521 Merge branch 'num-properties' of https://github.com/Nelarius/wren into Nelarius-num-properties 2016-08-27 17:18:21 -07:00
0a4f1b370c Revise embedding docs a bit. 2016-08-26 07:11:50 -07:00
a8cf1c9d71 Const correct a couple of functions.
Thanks, Michel!
2016-08-16 07:43:54 -07:00
febb1b0437 Use a map to check for constant collisions.
Doing an O(n) lookup was too slow.
2016-08-16 07:43:34 -07:00
08eceb7382 Check for duplicates when adding constants.
This saves a little memory, but, more importantly, allows us to support
functions with large numbers of repeated constants.
2016-08-16 07:24:04 -07:00
6ee1743429 Update Num class doc 2016-08-04 21:17:45 +03:00
50fa77356e Add largest, smallest properties to Num class 2016-08-04 21:15:55 +03:00
500c7b0426 Add List constructors to docs. 2016-08-04 06:28:41 -07:00
3666eae013 Tweak new list constructors.
- Remove List.new(_). I was convinced by the issue discussion that
  using it is probably a bad idea. We don't want to encourage more nulls
  in the world than there are already are. So let's see if we can live
  without it and just have List.filled(). That way users think about
  what they're creating a list *of*.
- Added some more tests.
- Correctly handle being given a negative size.
2016-08-03 22:42:31 -07:00
3de394e8a1 Merge branch 'new-list-constructors' of https://github.com/mooxen/wren into mooxen-new-list-constructors 2016-08-03 22:34:08 -07:00
6845328661 Tweak String.indexOf(_,_) a bit.
- Simplify the arithmetic a little in wrenStringFind().
- Allow the start to be negative.
- Even more tests.
- Docs.
2016-08-03 22:19:34 -07:00
e5dce527ac Merge branch 'string-indexof-startindex' of https://github.com/underscorediscovery/wren into underscorediscovery-string-indexof-startindex 2016-08-03 21:51:46 -07:00
83bb043327 Merge branch 'forgotten-bytecode' of https://github.com/minirop/wren into minirop-forgotten-bytecode 2016-08-03 21:45:09 -07:00
60a0353a27 Tweak list C API:
- Rename "size" -> "count" to be consistent with other usage.
- Remove "Slot" from the function names, since that's implicit.
- Make the getListElement() just move the element to another slot. This
  matches other APIs where we distinguish accessing a value and
  converting it to some specific type.
2016-07-28 08:06:36 -07:00
b8675e2d91 Merge branch 'get_slot_list_values' of https://github.com/dradtke/wren into dradtke-get_slot_list_values 2016-07-28 07:53:19 -07:00
244faa5700 renamed filler constructor in list to match issue 2016-07-17 12:24:19 +10:00
45d9794476 added extra arguments to list constructors for default size/ value 2016-07-17 12:01:50 +10:00
1f84a10f44 Implement String indexOf(needle, startIndex) 2016-07-14 01:23:01 -02:30
193d102952 missed bytecode name refactoring 2016-07-12 22:59:02 +02:00
d192a9a02d Add doc mention of new Num properties 2016-07-10 23:26:23 +03:00
817a5650fe Add highest, lowest, epsilon properties to Num class 2016-07-10 22:54:34 +03:00
5418e4f8f3 Add MapEntry to core to let maps be directly iterated.
Fix #372.
2016-07-06 07:17:07 -07:00
fcfb053dc1 Merge branch 'verbose-make' of https://github.com/bfontaine/wren into bfontaine-verbose-make 2016-07-06 06:51:12 -07:00
d7524898dc Merge pull request #376 from paulsapps/master
Fix build, return false instead of NULL
2016-07-06 06:46:35 -07:00
5468d6d033 Fix build, return false instead of NULL 2016-07-02 12:40:00 +01:00
b41a0f7c07 Allow builds to be verbose
It’s impossible to disable @s in Makefiles to get a verbose build.
Adding them conditionally using a variable lets users choose if they
want a verbose build by using the VERBOSE variable.

Normal build:

    make

Verbose build:

    make VERBOSE=1
2016-07-02 11:21:47 +02:00
0837917307 Use a hash function for numbers that doesn't tend to zero low bits.
Just pulling the raw words out of a double means integers often map to
hashes with zero low bits. Then when we map that to an entry in the map,
all small integers end up in entry zero, leading to tons of collisions.

This mixes the bits around some like Java does to fix that.

Makes the map_numeric benchmark about 18% faster on my machine. On a
contrived benchmark that just uses keys up to 1000, this makes it 52x
(yes, *times) faster.
2016-06-27 08:13:45 -07:00
4e94195f26 Properly handle tombstones when inserting items into a map.
Previously, you could get into a state where a key was present in the
map, but after a tombstone in the probe sequence. If they key was added
again, it stopped at the first tombstone and added it there, resulting
in the key being in the map multiple times.

Fix #373.
2016-06-27 07:14:52 -07:00
bc29f43bbd Allow hosts with no module loader to still load optional modules.
If the host doesn't set a loadModuleFn at all in the config, it should
still be able to load random, meta, etc.
2016-06-27 07:08:08 -07:00
9c3163d533 Only reset the TTY if we created the stdin stream. 2016-06-09 19:16:41 -07:00
6ece314863 Reset the TTY before closing the underlying stdin stream. 2016-06-09 19:16:41 -07:00
33cf8f7b31 Fall back to a simpler REPL if it seems like ANSI escapes won't work. 2016-06-09 19:16:41 -07:00
f47e128978 Tab-completion in REPL based on module variables. 2016-06-09 19:16:41 -07:00
98514188b0 More shortcuts:
- Ctrl-B: Move cursor left.
- Ctrl-F: Move cursor right.
- Ctrl-K: Delete everything after cursor.
- Ctrl-L: Clear screen.
- Ctrl-U: Clear line.
- Ctrl-N: Next in history.
- Ctrl-P: Previous in history.
2016-06-09 19:16:41 -07:00
2ba264bc29 Add history to REPL. 2016-06-09 19:16:41 -07:00
bc7f1de758 Execute input in the REPL.
Guesses whether the input is an expression or statement and handles it
appropriately. Finally, after over a year, the Wren REPL automatically
prints "3" if you type in "1 + 2". \o/
2016-06-09 19:16:41 -07:00
689cd42269 Start writing the REPL in Wren.
It doesn't actually execute code yet, but it:

- Supports left and right arrow keys for moving the cursor.
- Ctrl-C, Ctrl-D, Ctrl-A, and Ctrl-E for navigating.
- Syntax highlights the line (!).

The next step is to do a rough parse so that we can tell if the line
is an expression, statement, or needs more input. That will tell us
whether we need to interpret it at the top level (statement) and not
worry about a result, evaluate it as an expression and print the result,
or read more lines.
2016-06-09 19:16:41 -07:00
59e9eb127e Add wrenAbortFiber().
Thanks, @underscorediscovery!
2016-06-09 19:14:21 -07:00
8657a42c21 Merge pull request #366 from underscorediscovery/patch-2
fix range docs to introduction
2016-05-27 07:23:41 -07:00
78deace9a4 Merge pull request #365 from underscorediscovery/patch-1
docs; iterator protocol link relative to core/ not modules/
2016-05-27 07:23:07 -07:00
2b0878ec6d Platform.isWindows. 2016-05-21 12:53:21 -07:00
6002cc4d65 Add Stdin.isTerminal. 2016-05-21 12:51:11 -07:00
06731f66d4 Add a Platform class.
- Rename the "process" module to "os".
- Add Platform to it.
- Static "name" method.
- Static "isPosix" method.
- Docs and tests!
2016-05-21 12:44:17 -07:00
6bcc64eb61 Wren 0.1.0!
There's nothing new in this "release", but now is as good a time as any
to start versioning. Going forward, I plan to do periodic releases and
update the changelog so users can see what's going on.
0.1.0
2016-05-21 10:53:05 -07:00
0a060a9678 WrenValue -> WrenHandle. 2016-05-20 20:55:28 -07:00