8177076: jshell tool: allow non-zero /exit
8190383: JShell API: no way for the jshell tool to report exit status to provider
Reviewed-by: jlahoda
# OverviewThe Ideal Graph Visualizer is a tool developed to help examine the intermediaterepresentation of C2 which is commonly referred to as the "ideal graph". It wasdeveloped in collaboration with the University of Linz in Austria and has beenincluded as part of hotspot since that was the primary target of the tool. Thetool itself is fairly general with only a few modules that contain C2 specificelements.The tool is built on top of the NetBeans 7 rich client infrastructure and sorequires NetBeans to build. It currently requires at least Java 6 to run as itneeds support for JavaScript for its filtering mechanism and assumes it's builtinto the platform. It should build out of the box with NetBeans 7.0 and Java 6or later.# Building and RunningThe build system used for IGV is ant. To download all required libraries andbuild IGV, issue `ant build`. To run IGV, use the `igv.sh` command; it will putall log messages generated by the run to the file `.igv.log`. To see all logmessages generated during an IGV run, use `ant run`.# UsageThe JVM support is controlled by the flag `-XX:PrintIdealGraphLevel=#` where `#`is:* 0: no output, the default* 1: dumps graph after parsing, before matching, and final code (also dumps graphs for failed compilations, if available)* 2: more detail, including after loop opts* 3: even more detail* 4: prints graph after parsing every bytecode (very slow)By default the JVM expects that it will connect to a visualizer on the localhost on port 4444. This can be configured using the options`-XX:PrintIdealGraphAddress=` and `-XX:PrintIdealGraphPort=`.`PrintIdealGraphAddress` can actually be a hostname.It is advisable to run the JVM with background compilation disabled (-Xbatch).Compilations going on in the background may be cancelled when the VM terminates,which can lead to incomplete dumps being sent to IGV.Alternatively the output can be sent to a file using`-XX:PrintIdealGraphFile=filename`. Each compiler thread will get it's own filewith unique names being generated by adding a number onto the provided filename.More information about the tool is available athttps://wiki.openjdk.java.net/display/HotSpot/IdealGraphVisualizer.