"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.
This commit is contained in:
Bob Nystrom
2015-09-15 07:46:09 -07:00
parent 66b89a493f
commit 58e4d26648
491 changed files with 3285 additions and 3544 deletions
+2 -2
View File
@@ -1,3 +1,3 @@
// A dangling else binds to the right-most if.
if (true) if (false) IO.print("bad") else IO.print("good") // expect: good
if (false) if (true) IO.print("bad") else IO.print("bad")
if (true) if (false) System.print("bad") else System.print("good") // expect: good
if (false) if (true) System.print("bad") else System.print("bad")
+3 -3
View File
@@ -1,6 +1,6 @@
// Evaluate the 'else' expression if the condition is false.
if (true) IO.print("good") else IO.print("bad") // expect: good
if (false) IO.print("bad") else IO.print("good") // expect: good
if (true) System.print("good") else System.print("bad") // expect: good
if (false) System.print("bad") else System.print("good") // expect: good
// Allow block body.
if (false) null else { IO.print("block") } // expect: block
if (false) null else { System.print("block") } // expect: block
+4 -4
View File
@@ -1,10 +1,10 @@
// Evaluate the 'then' expression if the condition is true.
if (true) IO.print("good") // expect: good
if (false) IO.print("bad")
if (true) System.print("good") // expect: good
if (false) System.print("bad")
// Allow block body.
if (true) { IO.print("block") } // expect: block
if (true) { System.print("block") } // expect: block
// Assignment in if condition.
var a = false
if (a = true) IO.print(a) // expect: true
if (a = true) System.print(a) // expect: true
+1 -1
View File
@@ -1,2 +1,2 @@
if // expect error
(true) IO.print("bad")
(true) System.print("bad")
+5 -5
View File
@@ -1,8 +1,8 @@
// False and null are false.
if (false) IO.print("bad") else IO.print("false") // expect: false
if (null) IO.print("bad") else IO.print("null") // expect: null
if (false) System.print("bad") else System.print("false") // expect: false
if (null) System.print("bad") else System.print("null") // expect: null
// Everything else is true.
if (true) IO.print(true) // expect: true
if (0) IO.print(0) // expect: 0
if ("") IO.print("empty") // expect: empty
if (true) System.print(true) // expect: true
if (0) System.print(0) // expect: 0
if ("") System.print("empty") // expect: empty