Move clock into IO.

This commit is contained in:
Bob Nystrom
2014-02-04 08:49:16 -08:00
parent 4e10445952
commit 8d316396e1
6 changed files with 17 additions and 20 deletions

View File

@ -24,7 +24,7 @@ var minDepth = 4
var maxDepth = 12
var stretchDepth = maxDepth + 1
var start = OS.clock
var start = IO.clock
IO.print("stretch tree of depth " + stretchDepth.toString + " check: " +
new Tree(0, stretchDepth).check.toString)
@ -53,4 +53,4 @@ while (depth < stretchDepth) {
IO.print("long lived tree of depth " + maxDepth.toString + " check: " +
longLivedTree.check.toString)
IO.print("elapsed: " + (OS.clock - start).toString)
IO.print("elapsed: " + (IO.clock - start).toString)

View File

@ -3,8 +3,8 @@ var fib = fn(n) {
return fib.call(n - 1) + fib.call(n - 2)
}
var start = OS.clock
var start = IO.clock
for (i in 1..5) {
IO.print(fib.call(28))
}
IO.print("elapsed: " + (OS.clock - start).toString)
IO.print("elapsed: " + (IO.clock - start).toString)

View File

@ -1,10 +1,10 @@
var list = []
var start = OS.clock
var start = IO.clock
for (i in 0...1000000) list.add(i)
var sum = 0
for (i in list) sum = sum + i
IO.print(sum)
IO.print("elapsed: " + (OS.clock - start).toString)
IO.print("elapsed: " + (IO.clock - start).toString)

View File

@ -28,7 +28,7 @@ class NthToggle is Toggle {
}
}
var start = OS.clock
var start = IO.clock
var n = 100000
var val = true
var toggle = new Toggle(val)
@ -66,4 +66,4 @@ for (i in 0...n) {
IO.print(ntoggle.value)
IO.print("elapsed: " + (OS.clock - start).toString)
IO.print("elapsed: " + (IO.clock - start).toString)

View File

@ -2,7 +2,6 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include "wren_core.h"
#include "wren_value.h"
@ -731,12 +730,6 @@ DEF_NATIVE(string_subscript)
RETURN_VAL(value);
}
DEF_NATIVE(os_clock)
{
double time = (double)clock() / CLOCKS_PER_SEC;
RETURN_NUM(time);
}
static ObjClass* defineSingleClass(WrenVM* vm, const char* name)
{
size_t length = strlen(name);
@ -899,9 +892,6 @@ void wrenInitializeCore(WrenVM* vm)
NATIVE(vm->stringClass, "!= ", string_bangeq);
NATIVE(vm->stringClass, "[ ]", string_subscript);
ObjClass* osClass = defineClass(vm, "OS");
NATIVE(osClass->metaclass, "clock", os_clock);
wrenInterpret(vm, "Wren core library", libSource);
vm->listClass = AS_CLASS(findGlobal(vm, "List"));

View File

@ -1,4 +1,5 @@
#include <stdio.h>
#include <time.h>
#include "wren_io.h"
@ -17,15 +18,21 @@ static const char* libSource =
" }\n"
"}\n";
static void writeString(WrenVM* vm)
static void ioWriteString(WrenVM* vm)
{
const char* s = wrenGetArgumentString(vm, 1);
// TODO: Check for null.
printf("%s", s);
}
static void ioClock(WrenVM* vm)
{
wrenReturnDouble(vm, (double)clock() / CLOCKS_PER_SEC);
}
void wrenLoadIOLibrary(WrenVM* vm)
{
wrenInterpret(vm, "Wren IO library", libSource);
wrenDefineStaticMethod(vm, "IO", "writeString_", 1, writeString);
wrenDefineStaticMethod(vm, "IO", "writeString_", 1, ioWriteString);
wrenDefineStaticMethod(vm, "IO", "clock", 0, ioClock);
}