p.kushnir преди 10 години
родител
ревизия
234f639b45
променени са 6 файла, в които са добавени 29 реда и са изтрити 7 реда
  1. 1 0
      XevDemo5t.oxf
  2. 7 0
      fw.go
  3. 5 5
      rt2/nodeframe/frame.go
  4. 2 1
      rt2/scope/stdScope.go
  5. 3 1
      rt2/utils.go
  6. 11 0
      utils/debug.go

Файловите разлики са ограничени, защото са твърде много
+ 1 - 0
XevDemo5t.oxf


+ 7 - 0
fw.go

@@ -8,6 +8,7 @@ import (
 	"fw/rt2/nodeframe"
 	_ "fw/rt2/rules"
 	"fw/rt2/scope"
+	"time"
 	"ypk/assert"
 )
 
@@ -15,7 +16,10 @@ func main() {
 	global := new(stdDomain)
 	modList := module.New()
 	global.ConnectTo(context.MOD, modList)
+	t0 := time.Now()
 	ret, err := modList.Load("XevDemo5")
+	t1 := time.Now()
+	fmt.Println("load", t1.Sub(t0))
 	assert.For(ret != nil, 40)
 	assert.For(err == nil, 41)
 	{
@@ -27,10 +31,13 @@ func main() {
 		var fu nodeframe.FrameUtils
 		root.PushFor(fu.New(ret.Enter), nil)
 		i := 0
+		t0 := time.Now()
 		for x := frame.NOW; x == frame.NOW; x = root.Do() {
 			//fmt.Println(x)
 			i++
 		}
+		t1 := time.Now()
 		fmt.Println("total steps", i)
+		fmt.Println("spent", t1.Sub(t0))
 	}
 }

+ 5 - 5
rt2/nodeframe/frame.go

@@ -1,11 +1,11 @@
 package nodeframe
 
 import (
-	"fmt"
 	"fw/cp/node"
 	"fw/rt2/context"
 	"fw/rt2/decision"
 	"fw/rt2/frame"
+	"fw/utils"
 	"reflect"
 	"ypk/assert"
 )
@@ -19,7 +19,7 @@ func (fu FrameUtils) New(n node.Node) (f frame.Frame) {
 	f = new(nodeFrame)
 	f.(*nodeFrame).ir = n
 	f.(*nodeFrame).data = make(map[interface{}]interface{})
-	fmt.Println("_", "NEW", reflect.TypeOf(n))
+	utils.Println("_", "NEW", reflect.TypeOf(n))
 	return f
 }
 
@@ -53,7 +53,7 @@ type nodeFrame struct {
 func (f *nodeFrame) Do() frame.WAIT {
 	assert.For(f.seq != nil, 20)
 	next, ret := f.seq(f)
-	fmt.Println(f.num, ret, reflect.TypeOf(f.ir))
+	utils.Println(f.num, ret, reflect.TypeOf(f.ir))
 	if next != nil {
 		assert.For(ret != frame.STOP, 40)
 		f.seq = next
@@ -66,13 +66,13 @@ func (f *nodeFrame) Do() frame.WAIT {
 func (f *nodeFrame) onPush() {
 	f.num = count
 	count++
-	fmt.Println("_", "PUSH", reflect.TypeOf(f.ir))
+	utils.Println("_", "PUSH", reflect.TypeOf(f.ir))
 	f.seq = decision.PrologueFor(f.ir)
 }
 
 func (f *nodeFrame) OnPop() {
 	count--
-	fmt.Println("_", "POP", reflect.TypeOf(f.ir))
+	utils.Println("_", "POP", reflect.TypeOf(f.ir))
 	f.seq = decision.EpilogueFor(f.ir)
 	if f.seq != nil {
 		_, _ = f.seq(f)

+ 2 - 1
rt2/scope/stdScope.go

@@ -7,6 +7,7 @@ import (
 	"fw/cp/object"
 	"fw/rt2/context"
 	rt_mod "fw/rt2/module"
+	"fw/utils"
 	"reflect"
 	"ypk/assert"
 )
@@ -53,7 +54,7 @@ var def *dummy = &dummy{}
 func (v *direct) Set(x interface{}) {
 	assert.For(x != nil, 20)
 	v.data = x
-	fmt.Println("set", x, reflect.TypeOf(x))
+	utils.Println("set", x, reflect.TypeOf(x))
 }
 
 func (v *direct) Get() interface{} { return v.data }

+ 3 - 1
rt2/utils.go

@@ -1,5 +1,7 @@
 package rt2
 
-import "fw/rt2/nodeframe"
+import (
+	"fw/rt2/nodeframe"
+)
 
 var Utils nodeframe.FrameUtils

+ 11 - 0
utils/debug.go

@@ -0,0 +1,11 @@
+package utils
+
+import "fmt"
+
+var debug = true
+
+func Println(x ...interface{}) {
+	if debug {
+		fmt.Println(x)
+	}
+}

Някои файлове не бяха показани, защото твърде много файлове са промени