4 \begin{block
}{Downsides of the current mTask view
}
6 \item It all seems perfect
7 \item \ldots\pause{} but
\ldots
10 \item Compilation requires reprogramming
14 \begin{block
}{Solution
}
16 \item New bytecode backend for mTask
17 \item Interpreter on client
18 \item Server in iTasks with integration
19 \item No taskserver generation, onetime programming
24 \subsection{Extending mTask
}
25 \begin{frame
}[fragile
]
26 \frametitle{Adding a View
}
28 :: ByteCode a p = BC (RWS ()
[BC
] BCState ())
29 :: BCValue = E.e: BCValue e & mTaskType, TC e
30 :: BCShare =
{ sdsi :: Int, sdsval :: BCValue, sdsname :: String
}
31 :: BCState =
{ freshl :: Int, freshs :: Int, sdss ::
[BCShare
] }
33 instance ByteCode arith, boolExpr, ...
37 \begin{frame
}[fragile
]
38 \frametitle{Functionality
}
39 \begin{block
}{SDS scope and naming
}
42 \item State per device
43 \item Tasks are sent and gone
47 class namedsds v where
48 namedsds :: ((v t Upd) -> In (Named t String) (Main (v c s)))
49 -> (Main (v c s)) | ...
50 :: Named a b = Named infix
1 a b
55 \begin{frame
}[fragile
]
56 \frametitle{Task scheduling
}
60 \item Tasks start other tasks
66 \item Old system, taskserver, tasks start tasks
67 \item New system, task+strategy
72 \item \CI{OnInterrupt
}
75 \item How to handle termination