JShell tool feedback modes -- predefined and default

Brian Goetz brian.goetz at oracle.com
Sat Mar 12 00:45:01 UTC 2016


For declaration with initialization:

jshell> int a =3
a ==> 3

and for assignment:

jshell> a = 3
a ==> 3

I would drop the {result} feedback for this form (in default and 
concise).  A declaration with initialization, or assignment, should be 
like any other statement (if, for, while) and these do not produce 
output.  If the user does

jshell> a = 3

and wants to see the value of a, s/he can always ask by evaluating 'a'.


On 3/11/2016 7:09 PM, Robert Field wrote:
> [hmmm..., For some reason kulla-dev seems to have removed all the text 
> from my message.  Trying again using a link rather than an attachment...]
>
> I recently added an output configuration mechanism to the jshell tool, 
> allowing users to specify how they would like feedback from the tool 
> to look.  And, importantly, allowing us to experiment with what we 
> want the default mode to look like.
>
> Using this, Brian and I have been discussing what we want.  Some of 
> the conclusions are:
>
>     * Some of the output is essential and should be highlighted and 
> always displayed:  results and errors  (and possible temp var name)
>     * Some of the output is informative but can be garnered in other 
> ways: type
>     * Some of the output is confirmation, which is reassuring to new 
> users and annoying to frequent users
>     * We decided that it would help making design choices (and give 
> easy options to users) if there were three predefined levels of 
> output: verbose, concise, and default
>     * If we can come up with a consistent layout for concise and 
> verbose, the more challenging choice of layout for default would be a 
> matter of picking between the two.
>     * result is essential and needs a special form.
>     * Other information is optional and would not show in more concise 
> modes
>     * temp variables are generated for expressions to allow access to 
> these values, without displaying what the temp variable name it is of 
> little use, thus this name cannot be displayed only in the optional 
> information
>     * so, rather than create an asymmetry, the variable name should be 
> displayed in the result
>     * the length of the regular and continuation prompts must be the 
> same, else indenting is confusing
>     * there needs to be easy ways to set the mode (say by an 
> instructor or and experienced user) so a command-line option is needed
>     * /help should (in default mode) offer the /set feedback verbose
>
> Based on these discussions and some of our earlier prototypes, I have 
> created the (version 0) feedback modes: verbose0, default0, and 
> concise0 as progressive filters on the corresponding more verbose mode.
>
> Download:
>     http://cr.openjdk.java.net/~rfield/proto.modes
>
> Starting with a current build of jdk9/dev,  start jshell and type:
>     /open proto.modes
>
> It sets to default0, you can change this with:
>    /set feedback verbose0
> which you can abbreviate to:
>    /se fe v
>
> What do you think?
> What would you change?
> New mode definitions welcome.
>
> Thanks,
> Robert
>



More information about the kulla-dev mailing list