8134254: JShell API/tool: REPL for Java into JDK9
Summary: Adding the implementation of the jshell (read-eval-print-loop) tool.
Reviewed-by: briangoetz, mcimadamore, psandoz, forax
Contributed-by: robert.field@oracle.com, bitterfoxc@gmail.com, jan.lahoda@oracle.com
## Copyright (c) 2007, 2015, Oracle and/or its affiliates. All rights reserved.# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.## This code is free software; you can redistribute it and/or modify it# under the terms of the GNU General Public License version 2 only, as# published by the Free Software Foundation. Oracle designates this# particular file as subject to the "Classpath" exception as provided# by Oracle in the LICENSE file that accompanied this code.## This code is distributed in the hope that it will be useful, but WITHOUT# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License# version 2 for more details (a copy is included in the LICENSE file that# accompanied this code).## You should have received a copy of the GNU General Public License version# 2 along with this work; if not, write to the Free Software Foundation,# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.## Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA# or visit www.oracle.com if you need additional information or have any# questions.##javac configuration for "normal build" (these will be passed to the bootstrap compiler):javac.debug = truejavac.debuglevel = source,lines,varsjavac.extra.opts=-XDignore.symbol.file=truejavac.includes=javac.lint.opts = -Xlint:all,-deprecation -Werrorjavac.source = 8javac.target = 8#javac configuration for bootstrap build (these will be passed to the compiler from the given boot JDK):boot.javac.extra.opts=-XDignore.symbol.file=trueboot.javac.includes = \ javax/annotation/processing/ \ javax/lang/model/ \ javax/tools/ \ jdk/ \ com/sun/source/ \ com/sun/tools/javac/ \ com/sun/tools/doclint/boot.javac.lint.opts=boot.javac.source = 8boot.javac.target = 8#configuration of submodules (share by both the bootstrap and normal compilation):langtools.modules=java.compiler:jdk.compiler:jdk.jdeps:jdk.javadoc:jdk.jshell:jdk.internal.le:jdk.jdijava.compiler.dependencies=jdk.compiler.dependencies=java.compilerjdk.javadoc.dependencies=java.compiler:jdk.compilerjdk.jdeps.dependencies=java.compiler:jdk.compilerjdk.internal.le.dependencies=jdk.jdi.dependencies=jdk.jshell.dependencies=java.compiler:jdk.internal.le:jdk.compiler:jdk.jditool.javac.main.class=com.sun.tools.javac.Maintool.javadoc.main.class=com.sun.tools.javadoc.Maintool.javap.main.class=com.sun.tools.javap.Maintool.javah.main.class=com.sun.tools.javah.Maintool.sjavac.main.class=com.sun.tools.sjavac.Maintool.jshell.main.class=jdk.internal.jshell.tool.JShellTooljavac.resource.includes = \ com/sun/tools/javac/resources/compiler.properties#test configuration:jtreg.tests=boot.javac.tests = tools/javaccrules.tests = ../make/test/crules#javadoc configurationjavadoc.jls.cite=The Java™ Language Specificationjavadoc.jls.option=-tag "jls:a:See <cite>${javadoc.jls.cite}</cite>:" \ -tag "implNote:a:Implementation Note:"# Version info -- override as neededjdk.version = 1.9.0build.number = b00milestone = internal# FIXME -- these need to match the standard values# If we include date in full.version (ie for developer build)# we will need to make sure the build is idempotent (i.e.# repeated builds don't rebuild the tools, because of new# timestamps# FIXME -- need to include openjdk as neededrelease = ${jdk.version}-${milestone}full.version = ${release}-${build.number}