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
19 \item Integration with iTasks
20 \item No taskserver generation
21 \item Program only once
26 \subsection{Extending mTask
}
27 \begin{frame
}[fragile
]
28 \frametitle{Adding a View
}
30 :: ByteCode a p = BC (RWS ()
[BC
] BCState ())
31 :: BCValue = E.e: BCValue e & mTaskType, TC e
32 :: BCShare =
{ sdsi :: Int, sdsval :: BCValue, sdsname :: String
}
33 :: BCState =
{ freshl :: Int, freshs :: Int, sdss ::
[BCShare
] }
35 instance ByteCode arith, boolExpr, ...
39 \begin{frame
}[fragile
]
40 \frametitle{Functionality
}
41 \begin{block
}{SDS scope and naming
}
44 \item State per device
45 \item Tasks are sent and gone
49 class namedsds v where
50 namedsds :: ((v t Upd) -> In (Named t String) (Main (v c s)))
51 -> (Main (v c s)) | ...
52 :: Named a b = Named infix
1 a b
57 \begin{frame
}[fragile
]
58 \frametitle{Task scheduling
}
62 \item Tasks start other tasks
68 \item Old system, taskserver, tasks start tasks
69 \item New system, task+strategy
74 \item \CI{OnInterrupt
}
77 \item How to handle termination