efceee4320
Let the host application control how System prints text.
2015-09-15 23:01:43 -07:00
58e4d26648
"IO" -> "System".
...
Get rid of the separate opt-in IO class and replace it with a core
System class.
- Remove wren_io.c, wren_io.h, and io.wren.
- Remove the flags that disable it.
- Remove the overloads for print() with different arity. (It was an
experiment, but I don't think it's that useful.)
- Remove IO.read(). That will reappear using libuv in the CLI at some
point.
- Remove IO.time. Doesn't seem to have been used.
- Update all of the tests, docs, etc.
I'm sorry for all the breakage this causes, but I think "System" is a
better name for this class (it makes it natural to add things like
"System.gc()") and frees up "IO" for referring to the CLI's IO module.
2015-09-15 07:46:09 -07:00
66b89a493f
Combine io.c and vm.c.
...
(This is mainly to free up io.c as a built in module.)
2015-09-13 22:29:47 -07:00
ea5c3b01eb
Add module for Scheduler.
...
Also reorganizes some code to make it easier to add more modules.
2015-09-13 11:32:39 -07:00
f36a795534
Automatically update the string constants when a builtin module changes.
2015-09-13 10:03:02 -07:00
e1cf8e22c3
Merge pull request #300 from jesskay/patch-1
...
Correct platform.system() call
2015-09-12 10:45:18 -07:00
1a27593993
Error if a class tries to inherit from null.
...
Fix #246 .
2015-09-12 10:14:04 -07:00
e1f979e78a
Don't use string length in map benchmark (since it's slow now).
2015-09-12 09:59:30 -07:00
92c2b2d5e0
Copy edit the string docs.
2015-09-12 09:42:31 -07:00
fe143644b3
Rationalize string lengths.
...
The .count getter on string returns the number of code points. That's
O(n), but it's consistent with the rest of the main string API.
If you want the number of bytes, it's "string".bytes.count.
Updated the docs.
Fixes 68. Woo!
2015-09-11 21:33:26 -07:00
c0b5ec9f15
Move codePointAt() to separate CodePointSequence class.
2015-09-11 07:56:01 -07:00
bda9ad880a
Flesh out string byte handling a bit:
...
- Get rid of public byteAt(_) method on strings. It's redundant and
longer than .bytes[_].
- Implement bytes.count natively so it's O(1).
2015-09-10 23:52:18 -07:00
adcb5bccba
Simplify emitConstant().
...
Thanks, Michel!
2015-09-09 06:44:26 -07:00
1df7565bb9
Fix bug in passing a range as the string subscript.
2015-09-08 20:59:47 -07:00
6330aae20c
Correct platform.system() call
...
An "arch" somehow ended up in the platform.system() call, which takes no arguments.
2015-09-06 02:11:08 +01:00
783a5b750a
Get ranges working in string subscripts (again).
...
Now with UTF-8 hotness!
2015-09-01 22:14:55 -07:00
2e83f056c1
No more default constructors.
...
Fixes #296 .
2015-09-01 08:16:04 -07:00
36f3059e48
Get finalizers working.
2015-08-31 21:56:21 -07:00
1e0a2e6036
Get rid of WrenMethod and just use WrenValue for both.
...
Thanks, Michel!
2015-08-31 07:57:48 -07:00
1cea3ca3bc
Remove redundant ignoreNewlines().
2015-08-31 07:46:17 -07:00
2b044666ee
Reorganize trailing comma code a bit.
...
- Split out syntax error tests.
- Avoid redundant handling of empty literals.
2015-08-31 07:23:36 -07:00
d7eed08774
Add some tests with invalid trailing commas
2015-08-31 06:41:09 -07:00
b20c9a1b38
Allow trailing comma in list literal
2015-08-31 06:41:09 -07:00
e1d3596643
Allow trailing comma in map literal
2015-08-31 06:41:09 -07:00
6559edbc56
Update docs to mention libuv.
2015-08-30 22:38:40 -07:00
556af50f83
Revise low level fiber semantics to play nicer with schedulers.
...
Now that I'm starting to write a real async scheduler on top of Wren's
basic fiber API, I have a better feel for what it needs. It turns out
run() is not it.
- Remove run() methods.
- Add transfer() which leaves the caller of the invoked fiber alone.
- Add suspend() to return control to the host application.
- Add Timer.schedule() to start a new independently scheduled fiber.
- Change Timer.sleep() so that it only transfers control to explicitly
scheduled fibers, not any one.
2015-08-30 22:15:37 -07:00
91af02ac81
Merge branch 'master' into libuv
...
# Conflicts:
# project/xcode/wren.xcodeproj/project.pbxproj
# script/wren.mk
# src/cli/main.c
# src/cli/vm.c
# src/cli/vm.h
# test/api/main.c
2015-08-28 23:13:56 -07:00
a11450e722
Install g++-multilib for 32-bit std C++ libs on Travis.
2015-08-28 20:25:26 -07:00
647e70a8be
Print output when a command fails in libuv.py.
2015-08-28 20:14:55 -07:00
52f7f96813
Get libuv building for all architectures on Linux.
2015-08-28 19:49:19 -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
f33b362cc0
Clean up delta_blue benchmark.
2015-08-27 06:25:24 -07:00
fa4a8148c9
A little bit of code clean-up.
2015-08-22 07:56:38 -07:00
881824227d
Don't count "{" or "}" in the line count.
2015-08-22 07:27:32 -07:00
1c941c0258
Make a helper function for matching and consuming a character.
2015-08-21 23:08:11 -07:00
470d2347ff
Store number and string literals directly as a Value in the parser.
...
Thanks, Michel!
2015-08-21 22:54:30 -07:00
eda3f89266
Merge branch 'master' of https://github.com/munificent/wren
2015-08-20 22:34:42 -07:00
610952f727
Update line count in docs.
2015-08-20 22:34:33 -07:00
f433237ff2
Merge pull request #297 from Fedjmike/patch-1
...
readme: Updated line count
2015-08-20 22:34:08 -07:00
40fbf6112b
Use "init " as the prefix for initializers.
2015-08-20 22:30:44 -07:00
ab3c57d518
Merge branch 'still-seeing-this' of https://github.com/minirop/wren into ctor
2015-08-20 22:23:53 -07:00
4d613fc394
Merge branch 'fix-timer-libuv' of https://github.com/Rohansi/wren into timer
2015-08-20 22:09:52 -07:00
147a0815f2
Tweak style.
2015-08-20 22:08:39 -07:00
95ef53e758
Merge branch 'fix-windows-libuv' of https://github.com/Rohansi/wren into win
2015-08-20 22:07:34 -07:00
7be1fb543b
Fix test name.
2015-08-20 22:04:42 -07:00
4ab9c06e2c
Merge branch 'exponant-notation' of https://github.com/minirop/wren into science
2015-08-20 22:03:19 -07:00
69b0d34065
Start working on docs for the embedding API.
2015-08-20 22:02:13 -07:00
af5b654f4b
updated comments where "this" was still used for constructors
2015-08-19 19:33:54 +02:00
ff7ebdc381
Updated line count
...
The line count is actually around 7,000 (or 11,000 including blanks and comments):
```
~/wren $ cloc src/*/*.{c,h}
26 text files.
26 unique files.
0 files ignored.
http://cloc.sourceforge.net v 1.60 T=0.08 s (344.3 files/s, 146330.5 lines/s)
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
C 12 1471 1279 6102
C/C++ Header 14 380 967 850
-------------------------------------------------------------------------------
SUM: 26 1851 2246 6952
-------------------------------------------------------------------------------
```
2015-08-18 17:03:11 +01:00