Bob Nystrom
9661a5b999
Fix a couple of bugs in the REPL.
...
- Not sure what was going on, but fix #456 . It makes more sense for the
REPL to invoke the compiled code as a fiber than a function anyway.
- Flush stdout before reading from stdin since System.print() no longer
does that automatically.
2017-10-13 07:58:57 -07:00
Bob Nystrom
97b2e1c818
Add web server to doc generator.
2017-10-12 06:38:34 -07:00
Bob Nystrom
91853a7fa9
Fix comment on foreign allocate function.
...
Fix #453 .
2017-10-12 06:37:49 -07:00
Bob Nystrom
2021e086bf
Don't automatically flush on every System.write().
...
It's handy because it ensures writes are flushed to the terminal before
any calls to read from stdin, but it's also gratuitously slow.
Instead, added a Stdout class with an explicit flush() method that can
be called by the user.
Fix #445 .
2017-10-09 07:16:05 -07:00
Bob Nystrom
c4b0f83cb3
"ClassCompiler" -> "ClassInfo".
...
Fix #469 .
2017-10-09 06:47:42 -07:00
Bob Nystrom
973b43eb7f
Simplify statement compiler code a little.
2017-10-08 10:47:31 -07:00
Bob Nystrom
c7087652ee
Add regression tests from wren-fuzz.
...
These are all non-crashing now, so it looks like the underlying issue
is fixed. (It was probably #429.)
Fix #442 .
2017-10-08 10:15:15 -07:00
Bob Nystrom
c38d97b973
Properly detect a missing "}" in a block.
...
Fix #429 .
2017-10-08 10:03:42 -07:00
Bob Nystrom
18449102e8
Parenthesize macro arguments in ALLOCATE_FLEX and ALLOCATE_ARRAY.
...
Fix #457 .
2017-10-08 09:45:06 -07:00
Bob Nystrom
fec54d5021
Avoid undefined pointer difference behavior.
...
Fix #458 .
2017-10-08 09:42:35 -07:00
Bob Nystrom
eba0b97aa2
Merge pull request #472 from KyleCharters/master
...
Add Num .round
2017-10-06 07:51:55 -07:00
Bob Nystrom
8963a870ff
Abort all fibers along a call chain when one aborts.
2017-10-06 07:39:00 -07:00
Bob Nystrom
0f19984017
Merge branch '201703_bubble_exceptions' of https://github.com/JonesAndrew/wren into JonesAndrew-201703_bubble_exceptions
2017-10-06 06:58:27 -07:00
Bob Nystrom
61f5e56e93
Merge pull request #460 from skybrian/fixcomment
...
Remove obsolete comment
2017-10-05 06:51:48 -07:00
Bob Nystrom
2bb531d860
Tweak Fiber.error docs.
2017-10-05 06:50:45 -07:00
Bob Nystrom
d390e16a99
Kill duplicate test.
...
Fix #438 .
2017-04-08 12:53:33 -07:00
Bob Nystrom
7aa3fc1ce7
Merge pull request #435 from Nelarius/vs
...
Modernize the Visual Studio solution
2017-04-08 12:48:47 -07:00
Bob Nystrom
6ccdc0cf19
Merge pull request #443 from nathanhourt/nathanhourt-typo-fixes
...
One more typo fix
2017-04-08 12:40:31 -07:00
Bob Nystrom
889cae5ff1
Free imported module source strings after compiling them.
...
Fix #430 .
2017-04-08 12:38:36 -07:00
Bob Nystrom
a6424e94b1
Merge pull request #440 from nathanhourt/patch-1
...
Fix typos in documentation
2017-04-04 07:07:57 -07:00
Bob Nystrom
417ed7aeed
Add wren.hpp.
2017-03-25 10:05:33 -07:00
Bob Nystrom
b32c445f96
Show constructing "blondie" instance in functions doc.
...
Fix #432 .
2017-03-23 21:22:07 -07:00
Bob Nystrom
44a95e65c6
Set the token type after an invalid character error.
...
Otherwise, it still has the previous token's type. This can cause it
to get stuck in a loop in some places in the compiler.
Fix #428 .
2017-03-23 21:19:20 -07:00
Bob Nystrom
02bcefcbe4
Add test for user data.
...
Also moved the VM parameter in the error callback to be first like it
is in other callbacks.
2017-03-22 07:26:19 -07:00
Bob Nystrom
907db83e1c
Merge branch 'user-data' of https://github.com/foobit/wren into foobit-user-data
2017-03-22 07:12:26 -07:00
Bob Nystrom
8d313be3ce
Make it an error to skip or take a negative count.
2017-03-15 07:22:44 -07:00
Bob Nystrom
9f93119377
Merge branch 'take_and_skip' of https://github.com/bjorn/wren into bjorn-take_and_skip
2017-03-15 07:15:00 -07:00
Bob Nystrom
c84b8109a4
Tweak comments.
2017-03-15 07:10:23 -07:00
Bob Nystrom
627e9edc23
Merge branch 'fix362' of https://github.com/bytemaster/wren into bytemaster-fix362
2017-03-15 07:09:31 -07:00
Bob Nystrom
9efb18bae2
Typo: "seperator" -> "separator".
2017-03-15 07:06:07 -07:00
Bob Nystrom
9fcdf3dc0a
Merge branch '201703_split_replace' of https://github.com/JonesAndrew/wren into JonesAndrew-201703_split_replace
2017-03-15 07:04:56 -07:00
Bob Nystrom
860e596b8a
Test wrenSetSlotNull().
2017-03-03 07:57:50 -08:00
Bob Nystrom
f14d13a6bf
Mention libm in docs.
2017-03-02 07:17:03 -08:00
Bob Nystrom
22ae382ac5
Proofread configuring the VM.
2017-02-12 14:58:16 -08:00
Bob Nystrom
18f8f48bb6
Docs for configuring the VM.
2017-02-12 11:04:38 -08:00
Bob Nystrom
996a607026
More work on embedding docs.
...
- Revise the earlier pages and tighten them up some.
- Write the docs for foreign methods.
2017-02-12 10:14:37 -08:00
Bob Nystrom
4fe3ad3f8b
Docs for Num.log and Num.pow().
2017-01-20 07:24:46 -08:00
Bob Nystrom
3faec25c4c
Merge branch 'num-features' of https://github.com/underscorediscovery/wren into underscorediscovery-num-features
2017-01-20 07:20:55 -08:00
Bob Nystrom
c6eb0be990
Remove the negative number tests for bitwise not.
...
They were inadvertently relying on undefined behavior in C and we get
different results on some compilers.
Until we decide how we want the operation to behave, for now, just
leave it unspecified.
2017-01-12 22:17:33 -08:00
Bob Nystrom
d301fefac2
Add a comment explaining the ci targets.
2017-01-12 21:55:35 -08:00
Bob Nystrom
5ddd783ff5
Use strtoll() for hex literals to handle 64-bit ones even on 32-bit.
2017-01-12 21:53:21 -08:00
Bob Nystrom
0cc00c41c0
Simplify test runner output a little.
2017-01-12 21:38:06 -08:00
Bob Nystrom
33a73ef1d5
Avoid using fpclassify() to detect infinity and nan.
...
It's not supported in C++98. Instead, use isnan() and isinf(), which
seem to work? If nothing else, they are used elsewhere in Wren, so if
we're not going to use them here, we should fix the other places too.
2017-01-12 21:34:11 -08:00
Bob Nystrom
e8dfb1bf10
Don't test bitwise operations on operands that don't fit in u32.
...
The current behavior is undefined in C when converting the double to a
u32, so the tests fail on some compilers. For now, I'm just removing
those parts of the tests because I'm not sure what I want the behavior
to be. Modulo? Truncate? Runtime error?
2017-01-12 21:32:50 -08:00
Bob Nystrom
252265c80b
Merge branch 'travis-build-configurations' of https://github.com/iwillspeak/wren into iwillspeak-travis-build-configurations
2017-01-12 20:19:52 -08:00
Bob Nystrom
f03647cbf0
Merge branch 'gc-32-bugfix' of https://github.com/iwillspeak/wren into iwillspeak-gc-32-bugfix
2017-01-12 18:53:14 -08:00
Bob Nystrom
479ca7ec6d
Improve explanation of single-expression blocks.
...
Fix #390 .
2017-01-12 11:05:03 -08:00
Bob Nystrom
0a2bc4a8a7
More copy editing.
2017-01-12 07:11:01 -08:00
Bob Nystrom
fc6a7e5d18
Tweak some docs a little.
2017-01-12 07:10:19 -08:00
Bob Nystrom
b9f53f71fb
Reset API stack a fiber is aborted from wrenCall().
2016-11-01 08:40:16 -07:00
Bob Nystrom
51e50e6cc4
Free libuv data before resuming after an error.
2016-11-01 08:39:30 -07:00
Bob Nystrom
57f34fab95
Fix assignment test.
2016-10-08 10:51:19 -07:00
Bob Nystrom
e7cabbb5e4
Reset the API stack after a foreign constructor returns.
2016-08-28 08:23:27 -07:00
Bob Nystrom
d331cbf43d
Ensure macro parameter is parenthesized.
2016-08-27 21:44:39 -07:00
Bob Nystrom
b59eeaf2d1
Support "--version" in the CLI to print the version.
2016-08-27 17:38:14 -07:00
Bob Nystrom
09ef904d32
Use DBL_MIN instead of DBL_EPSILON for Num.smallest.
2016-08-27 17:25:32 -07:00
Bob Nystrom
b8b0f36521
Merge branch 'num-properties' of https://github.com/Nelarius/wren into Nelarius-num-properties
2016-08-27 17:18:21 -07:00
Bob Nystrom
0a4f1b370c
Revise embedding docs a bit.
2016-08-26 07:11:50 -07:00
Bob Nystrom
a8cf1c9d71
Const correct a couple of functions.
...
Thanks, Michel!
2016-08-16 07:43:54 -07:00
Bob Nystrom
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
Bob Nystrom
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
Bob Nystrom
500c7b0426
Add List constructors to docs.
2016-08-04 06:28:41 -07:00
Bob Nystrom
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
Bob Nystrom
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
Bob Nystrom
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
Bob Nystrom
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
Bob Nystrom
83bb043327
Merge branch 'forgotten-bytecode' of https://github.com/minirop/wren into minirop-forgotten-bytecode
2016-08-03 21:45:09 -07:00
Bob Nystrom
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
Bob Nystrom
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
Bob Nystrom
5418e4f8f3
Add MapEntry to core to let maps be directly iterated.
...
Fix #372 .
2016-07-06 07:17:07 -07:00
Bob Nystrom
fcfb053dc1
Merge branch 'verbose-make' of https://github.com/bfontaine/wren into bfontaine-verbose-make
2016-07-06 06:51:12 -07:00
Bob Nystrom
d7524898dc
Merge pull request #376 from paulsapps/master
...
Fix build, return false instead of NULL
2016-07-06 06:46:35 -07:00
Bob Nystrom
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
Bob Nystrom
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
Bob Nystrom
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
Bob Nystrom
9c3163d533
Only reset the TTY if we created the stdin stream.
2016-06-09 19:16:41 -07:00
Bob Nystrom
6ece314863
Reset the TTY before closing the underlying stdin stream.
2016-06-09 19:16:41 -07:00
Bob Nystrom
33cf8f7b31
Fall back to a simpler REPL if it seems like ANSI escapes won't work.
2016-06-09 19:16:41 -07:00
Bob Nystrom
f47e128978
Tab-completion in REPL based on module variables.
2016-06-09 19:16:41 -07:00
Bob Nystrom
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
Bob Nystrom
2ba264bc29
Add history to REPL.
2016-06-09 19:16:41 -07:00
Bob Nystrom
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
Bob Nystrom
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
Bob Nystrom
59e9eb127e
Add wrenAbortFiber().
...
Thanks, @underscorediscovery!
2016-06-09 19:14:21 -07:00
Bob Nystrom
8657a42c21
Merge pull request #366 from underscorediscovery/patch-2
...
fix range docs to introduction
2016-05-27 07:23:41 -07:00
Bob Nystrom
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
Bob Nystrom
2b0878ec6d
Platform.isWindows.
2016-05-21 12:53:21 -07:00
Bob Nystrom
6002cc4d65
Add Stdin.isTerminal.
2016-05-21 12:51:11 -07:00
Bob Nystrom
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
Bob Nystrom
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.
2016-05-21 10:53:05 -07:00
Bob Nystrom
0a060a9678
WrenValue -> WrenHandle.
2016-05-20 20:55:28 -07:00
Bob Nystrom
5d98d20175
Add Stdin.isRaw.
2016-05-20 15:19:18 -07:00
Bob Nystrom
500dd41ccd
Add Stdin.readByte().
2016-05-20 11:50:14 -07:00
Bob Nystrom
872cfdcd42
Mention the subreddit on the community docs.
...
Fix #360 .
2016-05-20 10:02:57 -07:00
Bob Nystrom
1d252d1970
First draft of docs for calling Wren from C.
2016-05-19 16:01:54 -07:00
Bob Nystrom
d64af5d6a5
Fix output formatting in Firefox.
2016-05-19 09:30:38 -07:00
Bob Nystrom
befe90501b
Start writing comprensive embedding docs.
...
- Break embedding out into a separate section with multiple pages.
- Document the constraints on the API.
- Document the slot array and WrenValue.
Still lots more to do, but getting there...
2016-05-16 08:09:14 -07:00
Bob Nystrom
856390c3fa
Merge pull request #357 from hoop33/master
...
Fix typo
2016-05-04 13:29:59 -07:00
Bob Nystrom
2ce5913501
Correctly count subscript parameters in wrenMakeCallHandle().
...
Fixes #351 .
2016-05-04 06:29:44 -07:00
Bob Nystrom
3b7446738c
Merge pull request #354 from ElFeesho/master
...
Fix typos and re-word explanation of gc heapGrowthPercentage
2016-05-03 12:27:16 -07:00