revert back to old itasks, add sds support in bytecode
[mTask.git] / miTask.icl
index a00d6f0..1fc0b2f 100644 (file)
@@ -8,22 +8,29 @@ import iTasks
 import mTask
 
 Start :: *World -> *World
-Start world = startEngine mTaskTask world
+Start world = startEngine (withShared ([], False, [], False) mTaskTask) world
+//Start world = startEngine mTaskTask world
 
-mTaskTask :: Task ()
-mTaskTask = withShared ([],False,[],False) (\ch->
-               syncNetworkChannel "localhost" 8123 "\n" id id ch ||- 
-               sendByteCode ||-
-               updateSharedInformation "channels" [] ch @! ())
-
-sendByteCode :: Task ()
-sendByteCode = viewInformation "send" [] "4" @! ()
-//     (toReadableByteCode (unMain bc)) @! ()
+mTaskTask :: (Shared ([String],Bool,[String],Bool)) -> Task ()
+mTaskTask ch =
+       syncNetworkChannel "localhost" 8124 "\n" id id ch ||- 
+       viewSharedInformation "channels" [ViewWith lens] ch ||-
+       sendString (makemTask 500 bc) ch @! ()
        where
+               lens :: ([String],Bool,[String],Bool) -> String
+               lens (r,_,s,_) = "channels"
+
                bc :: Main (ByteCode Int Expr)
-               bc = sds \x=41 In 
-                       sds \y=1 In 
-                       {main = x =. x +. y}
+               bc = sds \x=0 In {main = x =. x +. lit 1}
+
+makemTask :: Int (Main (ByteCode a Expr)) -> String
+makemTask to bc
+# (bc, st) = toRealByteCode (unMain bc)
+= "t" +++ toString (toChar (to / 265))
+       +++ toString (toChar (to rem 265)) +++ toString bc +++ "\n"
+
+sendString :: String (Shared ([String],Bool,[String],Bool)) -> Task ()
+sendString m ch = upd (\(r,rs,s,ss)->(r,rs,s ++ [m],ss)) ch @! ()
 
 syncNetworkChannel :: String Int String (String -> m) (m -> String) (Shared ([m],Bool,[m],Bool)) -> Task () | iTask m
 syncNetworkChannel server port msgSeparator decodeFun encodeFun channel