simplify expression
[mTask.git] / mTaskInterpret.icl
index 0ab4508..180939c 100644 (file)
@@ -34,6 +34,7 @@ decode x
        '\0' = MTEmpty
        '\n' = MTEmpty
        'm' = MTMessage x
+       't' = MTTaskAdded (from16bit (x % (1,3)))
        'u' = MTPub (from16bit (x % (1,3))) (x % (3,5))
        _ = MTMessage x//abort ("Didn't understand message: " +++ join " " [toString (toInt c)\\c<-: x] +++ "\n")
 
@@ -50,6 +51,7 @@ instance toString MTaskMSGSend where
 instance toString MTaskMSGRecv where
        toString (MTPub i v) = "Publish id: " +++ toString i
                +++ " value " +++ safePrint v
+       toString (MTTaskAdded i) = "Task added with id: " +++ toString i
        toString MTEmpty = "Empty message"
 
 bclength :: BC -> Int
@@ -69,7 +71,7 @@ bclength _ = 1
 
 toByteVal :: BC -> [Char]
 toByteVal b
-# bt = toChar $ consIndex{|*|} b + 1
+# bt = toChar $ consIndex{|*|} b
 = [bt:case b of
                (BCPush i) = i
                (BCLab i) = [toChar i]
@@ -159,7 +161,7 @@ BCIfStmt b t e =
        b <++> retrn [BCJmpF else] <++> t
        <++> retrn [BCJmp endif,BCLab else] <++> e <++> retrn [BCLab endif]
 
-instance noOp ByteCode where noOp = mempty
+instance noOp ByteCode where noOp = retrn [BCNop]
 
 withLabel :: (Int -> (ByteCode b q)) -> ByteCode b q
 withLabel f = BC \s->let [fresh:fs] = s.freshl