[
https://issues.apache.org/jira/browse/TOREE-365?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jakob Odersky updated TOREE-365:
--------------------------------
Description:
The scala interpreter currently only returns results for expressions. Import
statements and declarations will not show up as results in a notebook (although
they are evaluated internally).
This behaviour is related to the
[ScalaInterpreter#truncateResult|(https://github.com/apache/incubator-toree/blob/master/scala-interpreter/src/main/scala/org/apache/toree/kernel/interpreter/scala/ScalaInterpreter.scala#L165-L187]
function. This function runs the result string of a REPL line through a regex,
in order to remove the "resX:" part. The function returns the empty string in
case the line does not start with "resX:", therefore returning an empty string
for import statements and other declarations. This can have several subtle side
effects, such as TOREE-340, or a toree client never completing the "onResult"
callback.
A quick fix to this issue is to return the result string as-is if it does not
start with "resX".
was:
The scala interpreter currently only returns results for expressions. Import
statements and declarations will not show up as results in a notebook (although
they are evaluated internally).
This behaviour is related to the
[ScalaInterpreter#truncateResult|(https://github.com/apache/incubator-toree/blob/master/scala-interpreter/src/main/scala/org/apache/toree/kernel/interpreter/scala/ScalaInterpreter.scala#L165-L187]
function. This function runs the result string of a REPL line through a regex,
in order to remove the "resX:" part. The function returns the empty string in
case the line does not start with "resX:", therefore returning an empty string
for import statements and other declarations. This can have several subtle side
effects, such as TOREE-340, or a toree client never completing the "onResult"
callback.
A quick fix to this issue is to return the result string as-is if it does not
start with "resX". This leads me to a more general question: why is the resX
stripped in the first place? I could see that in the context of a jupyter
notebook, the res number may not necessarily match the cell number, however
since res variables are still accessible and may actually be of utility for a
user
> Certain interpreter evaluations do not return result strings
> ------------------------------------------------------------
>
> Key: TOREE-365
> URL: https://issues.apache.org/jira/browse/TOREE-365
> Project: TOREE
> Issue Type: Bug
> Reporter: Jakob Odersky
>
> The scala interpreter currently only returns results for expressions. Import
> statements and declarations will not show up as results in a notebook
> (although they are evaluated internally).
> This behaviour is related to the
> [ScalaInterpreter#truncateResult|(https://github.com/apache/incubator-toree/blob/master/scala-interpreter/src/main/scala/org/apache/toree/kernel/interpreter/scala/ScalaInterpreter.scala#L165-L187]
> function. This function runs the result string of a REPL line through a
> regex, in order to remove the "resX:" part. The function returns the empty
> string in case the line does not start with "resX:", therefore returning an
> empty string for import statements and other declarations. This can have
> several subtle side effects, such as TOREE-340, or a toree client never
> completing the "onResult" callback.
> A quick fix to this issue is to return the result string as-is if it does not
> start with "resX".
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)