-
Notifications
You must be signed in to change notification settings - Fork 7
Closed
Milestone
Description
Currently kernel has eval(..) and evalRaw(..) methods that are used almost interchangeably without much thought where in fact there are three distinct evaluation steps spread between the two of them:
- Preprocess source replacing magics with Java calls (
evalRaw(..)) - Evaluate the source (
evalRaw(..)) - Render the result, and return it as
DisplayData(eval(..))
Would be great to have more control over which step (or steps) are invoked in any given context. E.g., we are calling eval(..) and then discarding the result; or we'd call evalRaw(..) when the magics are already resolved. So let's replace both eval(..) and evalRaw(..) with a monad that allows to pick and chain stages as needed:
kernel.evalBuilder(source).resolveMagics().renderResults().eval()Also, clean stage separation should help in adding most accurate instrumentation per tasks like #104.
Metadata
Metadata
Assignees
Labels
No labels