feat: replace IO class with System class and remove separate IO module
- Delete wren_io.c, wren_io.h, and io.wren source files - Remove multi-arity print overloads and IO.read/IO.time methods - Add System class with print, printAll, write, writeAll methods to core.wren - Update all documentation examples and README to use System.print instead of IO.print
This commit is contained in:
@@ -2,6 +2,6 @@ var fiber = Fiber.new {
|
||||
Fiber.abort("Error message.")
|
||||
}
|
||||
|
||||
IO.print(fiber.try()) // expect: Error message.
|
||||
IO.print(fiber.isDone) // expect: true
|
||||
IO.print(fiber.error) // expect: Error message.
|
||||
System.print(fiber.try()) // expect: Error message.
|
||||
System.print(fiber.isDone) // expect: true
|
||||
System.print(fiber.error) // expect: Error message.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
var fiber = Fiber.new {
|
||||
IO.print("fiber")
|
||||
System.print("fiber")
|
||||
}
|
||||
|
||||
IO.print("before") // expect: before
|
||||
System.print("before") // expect: before
|
||||
fiber.call() // expect: fiber
|
||||
IO.print("after") // expect: after
|
||||
System.print("after") // expect: after
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
var fiber = Fiber.new {
|
||||
IO.print("call")
|
||||
System.print("call")
|
||||
}
|
||||
|
||||
fiber.call() // expect: call
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
var fiber = Fiber.new {
|
||||
Fiber.abort("Error!")
|
||||
IO.print("should not get here")
|
||||
System.print("should not get here")
|
||||
}
|
||||
|
||||
fiber.try()
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
var fiber = Fiber.new {
|
||||
IO.print("fiber") // expect: fiber
|
||||
System.print("fiber") // expect: fiber
|
||||
}
|
||||
|
||||
IO.print(fiber.call()) // expect: null
|
||||
System.print(fiber.call()) // expect: null
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
var fiber = Fiber.new {
|
||||
IO.print("fiber")
|
||||
System.print("fiber")
|
||||
return "result" // expect: fiber
|
||||
}
|
||||
|
||||
IO.print(fiber.call()) // expect: result
|
||||
System.print(fiber.call()) // expect: result
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
var main = Fiber.current
|
||||
|
||||
var fiber = Fiber.new {
|
||||
IO.print("transferred")
|
||||
IO.print(main.transfer())
|
||||
IO.print("called")
|
||||
System.print("transferred")
|
||||
System.print(main.transfer())
|
||||
System.print("called")
|
||||
}
|
||||
|
||||
fiber.transfer() // expect: transferred
|
||||
IO.print("main") // expect: main
|
||||
System.print("main") // expect: main
|
||||
fiber.call() // expect: null
|
||||
// expect: called
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
var fiber = Fiber.new {
|
||||
IO.print("fiber")
|
||||
System.print("fiber")
|
||||
}
|
||||
|
||||
// The first value passed to the fiber is ignored, since there's no yield call
|
||||
// to return it.
|
||||
IO.print("before") // expect: before
|
||||
System.print("before") // expect: before
|
||||
fiber.call("ignored") // expect: fiber
|
||||
IO.print("after") // expect: after
|
||||
System.print("after") // expect: after
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
var fiber = Fiber.new {
|
||||
IO.print("call")
|
||||
System.print("call")
|
||||
}
|
||||
|
||||
fiber.call(1) // expect: call
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
var fiber = Fiber.new {
|
||||
Fiber.abort("Error!")
|
||||
IO.print("should not get here")
|
||||
System.print("should not get here")
|
||||
}
|
||||
|
||||
fiber.try()
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
var main = Fiber.current
|
||||
|
||||
var fiber = Fiber.new {
|
||||
IO.print("transferred")
|
||||
IO.print(main.transfer())
|
||||
IO.print("called")
|
||||
System.print("transferred")
|
||||
System.print(main.transfer())
|
||||
System.print("called")
|
||||
}
|
||||
|
||||
fiber.transfer() // expect: transferred
|
||||
IO.print("main") // expect: main
|
||||
System.print("main") // expect: main
|
||||
fiber.call("value") // expect: value
|
||||
// expect: called
|
||||
|
||||
@@ -2,6 +2,6 @@ var fiber = Fiber.new {
|
||||
"s".unknown
|
||||
}
|
||||
|
||||
IO.print(fiber.error) // expect: null
|
||||
IO.print(fiber.try()) // expect: String does not implement 'unknown'.
|
||||
IO.print(fiber.error) // expect: String does not implement 'unknown'.
|
||||
System.print(fiber.error) // expect: null
|
||||
System.print(fiber.try()) // expect: String does not implement 'unknown'.
|
||||
System.print(fiber.error) // expect: String does not implement 'unknown'.
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
var fiber = Fiber.new {
|
||||
IO.print("1")
|
||||
System.print("1")
|
||||
Fiber.yield()
|
||||
IO.print("2")
|
||||
System.print("2")
|
||||
}
|
||||
|
||||
IO.print(fiber.isDone) // expect: false
|
||||
System.print(fiber.isDone) // expect: false
|
||||
fiber.call() // expect: 1
|
||||
IO.print(fiber.isDone) // expect: false
|
||||
System.print(fiber.isDone) // expect: false
|
||||
fiber.call() // expect: 2
|
||||
IO.print(fiber.isDone) // expect: true
|
||||
System.print(fiber.isDone) // expect: true
|
||||
|
||||
@@ -3,4 +3,4 @@ var fiber = Fiber.new {
|
||||
}
|
||||
|
||||
fiber.try()
|
||||
IO.print(fiber.isDone) // expect: true
|
||||
System.print(fiber.isDone) // expect: true
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
var b = Fiber.new {
|
||||
IO.print("fiber b")
|
||||
System.print("fiber b")
|
||||
}
|
||||
|
||||
var a = Fiber.new {
|
||||
IO.print("begin fiber a")
|
||||
System.print("begin fiber a")
|
||||
b.call()
|
||||
IO.print("end fiber a")
|
||||
System.print("end fiber a")
|
||||
}
|
||||
|
||||
IO.print("begin main")
|
||||
System.print("begin main")
|
||||
a.call()
|
||||
IO.print("end main")
|
||||
System.print("end main")
|
||||
|
||||
// expect: begin main
|
||||
// expect: begin fiber a
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
var a = Fiber.new {
|
||||
IO.print("a")
|
||||
System.print("a")
|
||||
}
|
||||
|
||||
var b = Fiber.new {
|
||||
IO.print("b before")
|
||||
System.print("b before")
|
||||
a.transfer()
|
||||
IO.print("b after")
|
||||
System.print("b after")
|
||||
}
|
||||
|
||||
var c = Fiber.new {
|
||||
IO.print("c before")
|
||||
System.print("c before")
|
||||
b.transfer()
|
||||
IO.print("c after")
|
||||
System.print("c after")
|
||||
}
|
||||
|
||||
IO.print("start") // expect: start
|
||||
System.print("start") // expect: start
|
||||
|
||||
c.transfer()
|
||||
// expect: c before
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
var F = Fiber.new {
|
||||
IO.print(1) // expect: 1
|
||||
IO.print(F.transfer()) // expect: null
|
||||
IO.print(2) // expect: 2
|
||||
System.print(1) // expect: 1
|
||||
System.print(F.transfer()) // expect: null
|
||||
System.print(2) // expect: 2
|
||||
}
|
||||
|
||||
F.call()
|
||||
// F remembers its original caller so transfers back to main.
|
||||
IO.print(3) // expect: 3
|
||||
System.print(3) // expect: 3
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
var A = Fiber.new {
|
||||
IO.print(2)
|
||||
System.print(2)
|
||||
B.transfer()
|
||||
IO.print("nope")
|
||||
System.print("nope")
|
||||
}
|
||||
|
||||
var B = Fiber.new {
|
||||
IO.print(1)
|
||||
System.print(1)
|
||||
A.transfer()
|
||||
IO.print(3)
|
||||
System.print(3)
|
||||
}
|
||||
|
||||
B.call()
|
||||
@@ -15,4 +15,4 @@ B.call()
|
||||
// expect: 2
|
||||
// expect: 3
|
||||
// B remembers its original caller so returns to main.
|
||||
IO.print(4) // expect: 4
|
||||
System.print(4) // expect: 4
|
||||
|
||||
@@ -1,23 +1,23 @@
|
||||
var main = Fiber.current
|
||||
|
||||
var fiber = Fiber.new {
|
||||
IO.print("fiber 1")
|
||||
IO.print(main.transfer())
|
||||
System.print("fiber 1")
|
||||
System.print(main.transfer())
|
||||
|
||||
// Yield to bounce back to main and clear the caller so we don't get a
|
||||
// double call() error below.
|
||||
Fiber.yield()
|
||||
|
||||
IO.print(main.transfer())
|
||||
System.print(main.transfer())
|
||||
}
|
||||
|
||||
fiber.transfer() // expect: fiber 1
|
||||
IO.print("main 1") // expect: main 1
|
||||
System.print("main 1") // expect: main 1
|
||||
fiber.call("call 1") // expect: call 1
|
||||
|
||||
IO.print("main 2") // expect: main 2
|
||||
System.print("main 2") // expect: main 2
|
||||
// Transfer back into the fiber so it has a NULL caller.
|
||||
fiber.transfer()
|
||||
|
||||
fiber.call() // expect: null
|
||||
IO.print("main 3") // expect: main 3
|
||||
System.print("main 3") // expect: main 3
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
var main = Fiber.current
|
||||
|
||||
var fiber = Fiber.new {
|
||||
IO.print("fiber")
|
||||
IO.print(main.transfer())
|
||||
System.print("fiber")
|
||||
System.print(main.transfer())
|
||||
}
|
||||
|
||||
fiber.transfer() // expect: fiber
|
||||
IO.print("main") // expect: main
|
||||
System.print("main") // expect: main
|
||||
fiber.transfer("transfer") // expect: transfer
|
||||
|
||||
// This does not get run since we exit when the transferred fiber completes.
|
||||
IO.print("nope")
|
||||
System.print("nope")
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
var a = Fiber.new {
|
||||
IO.print("run")
|
||||
System.print("run")
|
||||
}
|
||||
|
||||
a.call() // expect: run
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
var a = Fiber.new {
|
||||
Fiber.abort("Error!")
|
||||
IO.print("should not get here")
|
||||
System.print("should not get here")
|
||||
}
|
||||
|
||||
a.try()
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
var fiber = Fiber.new {
|
||||
IO.print("called")
|
||||
IO.print(Fiber.yield())
|
||||
IO.print("transferred")
|
||||
System.print("called")
|
||||
System.print(Fiber.yield())
|
||||
System.print("transferred")
|
||||
}
|
||||
|
||||
fiber.call() // expect: called
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
var a = Fiber.new {
|
||||
IO.print("a")
|
||||
System.print("a")
|
||||
}
|
||||
|
||||
var b = Fiber.new {
|
||||
IO.print("b before")
|
||||
System.print("b before")
|
||||
a.transfer("ignored")
|
||||
IO.print("b after")
|
||||
System.print("b after")
|
||||
}
|
||||
|
||||
var c = Fiber.new {
|
||||
IO.print("c before")
|
||||
System.print("c before")
|
||||
b.transfer("ignored")
|
||||
IO.print("c after")
|
||||
System.print("c after")
|
||||
}
|
||||
|
||||
IO.print("start") // expect: start
|
||||
System.print("start") // expect: start
|
||||
|
||||
c.transfer("ignored")
|
||||
// expect: c before
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
var F = Fiber.new {
|
||||
IO.print(1) // expect: 1
|
||||
IO.print(F.transfer("value")) // expect: value
|
||||
IO.print(2) // expect: 2
|
||||
System.print(1) // expect: 1
|
||||
System.print(F.transfer("value")) // expect: value
|
||||
System.print(2) // expect: 2
|
||||
}
|
||||
|
||||
F.call()
|
||||
IO.print(3) // expect: 3
|
||||
System.print(3) // expect: 3
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
var A = Fiber.new {
|
||||
IO.print(2)
|
||||
System.print(2)
|
||||
B.transfer("ignored")
|
||||
IO.print("nope")
|
||||
System.print("nope")
|
||||
}
|
||||
|
||||
var B = Fiber.new {
|
||||
IO.print(1)
|
||||
System.print(1)
|
||||
A.transfer("ignored")
|
||||
IO.print(3)
|
||||
System.print(3)
|
||||
}
|
||||
|
||||
B.call()
|
||||
// expect: 1
|
||||
// expect: 2
|
||||
// expect: 3
|
||||
IO.print(4) // expect: 4
|
||||
System.print(4) // expect: 4
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
var a = Fiber.new {
|
||||
IO.print("run")
|
||||
System.print("run")
|
||||
}
|
||||
|
||||
a.call() // expect: run
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
var a = Fiber.new {
|
||||
Fiber.abort("Error!")
|
||||
IO.print("should not get here")
|
||||
System.print("should not get here")
|
||||
}
|
||||
|
||||
a.try()
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
var fiber = Fiber.new {
|
||||
IO.print("called")
|
||||
IO.print(Fiber.yield())
|
||||
IO.print("transferred")
|
||||
System.print("called")
|
||||
System.print(Fiber.yield())
|
||||
System.print("transferred")
|
||||
}
|
||||
|
||||
fiber.call() // expect: called
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
var fiber = Fiber.new {
|
||||
IO.print("before")
|
||||
System.print("before")
|
||||
true.unknownMethod
|
||||
IO.print("after")
|
||||
System.print("after")
|
||||
}
|
||||
|
||||
IO.print(fiber.try())
|
||||
System.print(fiber.try())
|
||||
// expect: before
|
||||
// expect: Bool does not implement 'unknownMethod'.
|
||||
IO.print("after try") // expect: after try
|
||||
System.print("after try") // expect: after try
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
var fiber = Fiber.new {
|
||||
IO.print("try")
|
||||
System.print("try")
|
||||
}
|
||||
|
||||
fiber.try() // expect: try
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
var fiber = Fiber.new {
|
||||
IO.print("fiber")
|
||||
System.print("fiber")
|
||||
}
|
||||
|
||||
IO.print("before") // expect: before
|
||||
IO.print(fiber.try()) // expect: fiber
|
||||
System.print("before") // expect: before
|
||||
System.print(fiber.try()) // expect: fiber
|
||||
// expect: null
|
||||
IO.print("after") // expect: after
|
||||
System.print("after") // expect: after
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
var fiber = Fiber.new {}
|
||||
IO.print(fiber is Fiber) // expect: true
|
||||
IO.print(fiber is Object) // expect: true
|
||||
IO.print(fiber is Bool) // expect: false
|
||||
IO.print(fiber.type == Fiber) // expect: true
|
||||
System.print(fiber is Fiber) // expect: true
|
||||
System.print(fiber is Object) // expect: true
|
||||
System.print(fiber is Bool) // expect: false
|
||||
System.print(fiber.type == Fiber) // expect: true
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
var fiber = Fiber.new {
|
||||
IO.print("fiber 1")
|
||||
System.print("fiber 1")
|
||||
Fiber.yield()
|
||||
IO.print("fiber 2")
|
||||
System.print("fiber 2")
|
||||
Fiber.yield()
|
||||
IO.print("fiber 3")
|
||||
System.print("fiber 3")
|
||||
}
|
||||
|
||||
fiber.call() // expect: fiber 1
|
||||
IO.print("main 1") // expect: main 1
|
||||
System.print("main 1") // expect: main 1
|
||||
fiber.call() // expect: fiber 2
|
||||
IO.print("main 2") // expect: main 2
|
||||
System.print("main 2") // expect: main 2
|
||||
fiber.call() // expect: fiber 3
|
||||
IO.print("main 3") // expect: main 3
|
||||
System.print("main 3") // expect: main 3
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
IO.print("before") // expect: before
|
||||
System.print("before") // expect: before
|
||||
Fiber.yield()
|
||||
IO.print("not reached")
|
||||
System.print("not reached")
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
var fiber = Fiber.new {
|
||||
IO.print("fiber 1")
|
||||
IO.print(Fiber.yield())
|
||||
IO.print(Fiber.yield())
|
||||
System.print("fiber 1")
|
||||
System.print(Fiber.yield())
|
||||
System.print(Fiber.yield())
|
||||
}
|
||||
|
||||
fiber.call() // expect: fiber 1
|
||||
IO.print("main 1") // expect: main 1
|
||||
System.print("main 1") // expect: main 1
|
||||
fiber.call("call 1") // expect: call 1
|
||||
IO.print("main 2") // expect: main 2
|
||||
System.print("main 2") // expect: main 2
|
||||
fiber.call() // expect: null
|
||||
IO.print("main 3") // expect: main 3
|
||||
System.print("main 3") // expect: main 3
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
var main = Fiber.current
|
||||
|
||||
var a = Fiber.new {
|
||||
IO.print("a")
|
||||
IO.print(Fiber.yield())
|
||||
System.print("a")
|
||||
System.print(Fiber.yield())
|
||||
}
|
||||
|
||||
var b = Fiber.new {
|
||||
IO.print("b")
|
||||
IO.print(Fiber.yield())
|
||||
System.print("b")
|
||||
System.print(Fiber.yield())
|
||||
|
||||
a.call()
|
||||
a.transfer("value")
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
var a = Fiber.new {
|
||||
IO.print("before") // expect: before
|
||||
System.print("before") // expect: before
|
||||
Fiber.yield()
|
||||
IO.print("not reached")
|
||||
System.print("not reached")
|
||||
}
|
||||
|
||||
// Transfer through a chain of fibers. Since none of them are called, they all
|
||||
@@ -9,4 +9,4 @@ var a = Fiber.new {
|
||||
var b = Fiber.new { a.transfer() }
|
||||
var c = Fiber.new { b.transfer() }
|
||||
c.transfer()
|
||||
IO.print("not reached")
|
||||
System.print("not reached")
|
||||
@@ -1,14 +1,14 @@
|
||||
var fiber = Fiber.new {
|
||||
IO.print("fiber 1")
|
||||
System.print("fiber 1")
|
||||
Fiber.yield("yield 1")
|
||||
IO.print("fiber 2")
|
||||
System.print("fiber 2")
|
||||
Fiber.yield("yield 2")
|
||||
IO.print("fiber 3")
|
||||
System.print("fiber 3")
|
||||
}
|
||||
|
||||
IO.print(fiber.call()) // expect: fiber 1
|
||||
System.print(fiber.call()) // expect: fiber 1
|
||||
// expect: yield 1
|
||||
IO.print(fiber.call()) // expect: fiber 2
|
||||
System.print(fiber.call()) // expect: fiber 2
|
||||
// expect: yield 2
|
||||
IO.print(fiber.call()) // expect: fiber 3
|
||||
System.print(fiber.call()) // expect: fiber 3
|
||||
// expect: null
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
IO.print("before") // expect: before
|
||||
System.print("before") // expect: before
|
||||
Fiber.yield(1)
|
||||
IO.print("not reached")
|
||||
System.print("not reached")
|
||||
@@ -1,7 +1,7 @@
|
||||
var a = Fiber.new {
|
||||
IO.print("before") // expect: before
|
||||
System.print("before") // expect: before
|
||||
Fiber.yield(1)
|
||||
IO.print("not reached")
|
||||
System.print("not reached")
|
||||
}
|
||||
|
||||
// Transfer through a chain of fibers. Since none of them are called, they all
|
||||
@@ -9,4 +9,4 @@ var a = Fiber.new {
|
||||
var b = Fiber.new { a.transfer() }
|
||||
var c = Fiber.new { b.transfer() }
|
||||
c.transfer()
|
||||
IO.print("not reached")
|
||||
System.print("not reached")
|
||||
|
||||
Reference in New Issue
Block a user