revert back to old itasks, add sds support in bytecode
[mTask.git] / mTaskCode.icl
index 8402abe..c405cea 100644 (file)
@@ -74,6 +74,7 @@ instance sds Code where
     in setCode Var +.+ c (type2string v + " " + name + " = " + toCode v + 
        ";\n") +.+ setCode Setup +.+ unMain body}
   con f = defCode f
+//  pub _ = undef
 
 defCode :: ((Code t p) -> In t (Main (Code u q))) -> Main (Code u r) | type t
 defCode f =
@@ -352,23 +353,6 @@ instance analogIO Code where
 instance noOp Code where noOp = C \rw c.c
 
 :: Code a p = C ((ReadWrite (Code a Expr)) CODE -> CODE)
-:: CODE =
-  { fresh      :: Int
-  , freshMTask :: Int
-  , funs       :: [String]
-  , ifuns                      :: Int
-  , vars         :: [String]
-  , ivars                      :: Int
-  , setup                      :: [String]
-  , isetup       :: Int
-  , loop         :: [String]
-  , iloop                      :: Int
-  , includes  :: [String]
-  , def          :: Def
-  , mode         :: Mode
-  , binds                      :: [String]
-  }
-
 unC :: (Code a p) -> ((ReadWrite (Code a Expr)) CODE -> CODE)
 unC (C f) = f
 
@@ -376,10 +360,10 @@ unC (C f) = f
 :: Mode = /*MainMode |*/ NoReturn | Return String | SubExp | Assign String
 
 setMode :: Mode -> Code a p
-setMode m = C \rw c.{c & mode = m}
+setMode m = C \rw c.{CODE|c & mode` = m}
 
 getMode :: (Mode -> Code a p) -> Code a p
-getMode f = C \rw c.unC (f c.mode) rw c
+getMode f = C \rw c.unC (f c.mode`) rw c
 
 embed :: (Code a p) -> Code a p
 embed e =
@@ -608,7 +592,7 @@ newCode =
   , iloop   = 4
   , includes  = []
   , def     = Setup
-  , mode    = NoReturn
+  , mode`    = NoReturn
   , binds              = []
   }