changeset 53692:8927cb6ca12c patterns-stage-1

Automatic merge with default
author mcimadamore
date Wed, 28 Nov 2018 21:30:08 +0100
parents 13180cc27a0b f24ae8376e71
children bc7ce655824b 55addcd4f5a1
files src/bsd/doc/man/DO_NOT_EDIT--GENERATED_FILES src/bsd/doc/man/apt.1 src/bsd/doc/man/ja/apt.1 src/bsd/doc/man/ja/jar.1 src/bsd/doc/man/ja/jarsigner.1 src/bsd/doc/man/ja/java.1 src/bsd/doc/man/ja/javac.1 src/bsd/doc/man/ja/javadoc.1 src/bsd/doc/man/ja/javap.1 src/bsd/doc/man/ja/javaws.1 src/bsd/doc/man/ja/jcmd.1 src/bsd/doc/man/ja/jconsole.1 src/bsd/doc/man/ja/jdb.1 src/bsd/doc/man/ja/jdeps.1 src/bsd/doc/man/ja/jhat.1 src/bsd/doc/man/ja/jinfo.1 src/bsd/doc/man/ja/jjs.1 src/bsd/doc/man/ja/jmap.1 src/bsd/doc/man/ja/jps.1 src/bsd/doc/man/ja/jrunscript.1 src/bsd/doc/man/ja/jsadebugd.1 src/bsd/doc/man/ja/jstack.1 src/bsd/doc/man/ja/jstat.1 src/bsd/doc/man/ja/jstatd.1 src/bsd/doc/man/ja/keytool.1 src/bsd/doc/man/ja/pack200.1 src/bsd/doc/man/ja/rmic.1 src/bsd/doc/man/ja/rmid.1 src/bsd/doc/man/ja/rmiregistry.1 src/bsd/doc/man/ja/serialver.1 src/bsd/doc/man/ja/unpack200.1 src/bsd/doc/man/jar.1 src/bsd/doc/man/jarsigner.1 src/bsd/doc/man/java.1 src/bsd/doc/man/javac.1 src/bsd/doc/man/javadoc.1 src/bsd/doc/man/javap.1 src/bsd/doc/man/javaws.1 src/bsd/doc/man/jcmd.1 src/bsd/doc/man/jconsole.1 src/bsd/doc/man/jdb.1 src/bsd/doc/man/jdeps.1 src/bsd/doc/man/jhat.1 src/bsd/doc/man/jinfo.1 src/bsd/doc/man/jjs.1 src/bsd/doc/man/jmap.1 src/bsd/doc/man/jps.1 src/bsd/doc/man/jrunscript.1 src/bsd/doc/man/jsadebugd.1 src/bsd/doc/man/jstack.1 src/bsd/doc/man/jstat.1 src/bsd/doc/man/jstatd.1 src/bsd/doc/man/keytool.1 src/bsd/doc/man/pack200.1 src/bsd/doc/man/rmic.1 src/bsd/doc/man/rmid.1 src/bsd/doc/man/rmiregistry.1 src/bsd/doc/man/serialver.1 src/bsd/doc/man/unpack200.1 src/java.base/share/classes/jdk/internal/org/objectweb/asm/Item.java src/java.desktop/macosx/native/libawt_lwawt/awt/CGraphicsConfig.m src/java.desktop/unix/classes/sun/awt/X11/genhash.awk src/java.desktop/unix/classes/sun/awt/X11/keysym2ucs.h src/java.desktop/unix/legal/xwindows.md src/java.desktop/unix/native/libawt_xawt/awt/Xrandr.h src/java.desktop/unix/native/libawt_xawt/awt/randr.h src/java.desktop/unix/native/libawt_xawt/awt/robot_common.c src/java.desktop/unix/native/libawt_xawt/awt/robot_common.h src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Flow.java src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties src/jdk.compiler/share/classes/com/sun/tools/javac/tree/JCTree.java src/jdk.compiler/share/classes/com/sun/tools/javac/tree/TreeInfo.java src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/spi/ArrayOffsetProvider.java src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.sparc.test/src/org/graalvm/compiler/core/sparc/test/SPARCAllocatorTest.java src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.amd64/src/org/graalvm/compiler/lir/amd64/AMD64StringIndexOfOp.java src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/debug/OpaqueNode.java src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/util/HashSetNodeEventListener.java src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases/src/org/graalvm/compiler/phases/graph/FixedNodeProbabilityCache.java src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.amd64/src/org/graalvm/compiler/replacements/amd64/AMD64StringIndexOfNode.java src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.jdk9.test/src/org/graalvm/compiler/replacements/jdk9/UnsafeReplacementsTest.java src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.jdk9.test/src/org/graalvm/compiler/replacements/jdk9/VarHandleTest.java src/linux/doc/man/DO_NOT_EDIT--GENERATED_FILES src/linux/doc/man/ja/jar.1 src/linux/doc/man/ja/jarsigner.1 src/linux/doc/man/ja/java.1 src/linux/doc/man/ja/javac.1 src/linux/doc/man/ja/javadoc.1 src/linux/doc/man/ja/javap.1 src/linux/doc/man/ja/javaws.1 src/linux/doc/man/ja/jcmd.1 src/linux/doc/man/ja/jconsole.1 src/linux/doc/man/ja/jdb.1 src/linux/doc/man/ja/jdeps.1 src/linux/doc/man/ja/jhat.1 src/linux/doc/man/ja/jinfo.1 src/linux/doc/man/ja/jjs.1 src/linux/doc/man/ja/jmap.1 src/linux/doc/man/ja/jps.1 src/linux/doc/man/ja/jrunscript.1 src/linux/doc/man/ja/jsadebugd.1 src/linux/doc/man/ja/jstack.1 src/linux/doc/man/ja/jstat.1 src/linux/doc/man/ja/jstatd.1 src/linux/doc/man/ja/keytool.1 src/linux/doc/man/ja/pack200.1 src/linux/doc/man/ja/rmic.1 src/linux/doc/man/ja/rmid.1 src/linux/doc/man/ja/rmiregistry.1 src/linux/doc/man/ja/serialver.1 src/linux/doc/man/ja/unpack200.1 src/linux/doc/man/jar.1 src/linux/doc/man/jarsigner.1 src/linux/doc/man/java.1 src/linux/doc/man/javac.1 src/linux/doc/man/javadoc.1 src/linux/doc/man/javap.1 src/linux/doc/man/javaws.1 src/linux/doc/man/jcmd.1 src/linux/doc/man/jconsole.1 src/linux/doc/man/jdb.1 src/linux/doc/man/jdeps.1 src/linux/doc/man/jhat.1 src/linux/doc/man/jinfo.1 src/linux/doc/man/jjs.1 src/linux/doc/man/jmap.1 src/linux/doc/man/jps.1 src/linux/doc/man/jrunscript.1 src/linux/doc/man/jsadebugd.1 src/linux/doc/man/jstack.1 src/linux/doc/man/jstat.1 src/linux/doc/man/jstatd.1 src/linux/doc/man/keytool.1 src/linux/doc/man/pack200.1 src/linux/doc/man/rmic.1 src/linux/doc/man/rmid.1 src/linux/doc/man/rmiregistry.1 src/linux/doc/man/serialver.1 src/linux/doc/man/unpack200.1 src/solaris/doc/sun/man/man1/DO_NOT_EDIT--GENERATED_FILES src/solaris/doc/sun/man/man1/ja/jar.1 src/solaris/doc/sun/man/man1/ja/jarsigner.1 src/solaris/doc/sun/man/man1/ja/java.1 src/solaris/doc/sun/man/man1/ja/javac.1 src/solaris/doc/sun/man/man1/ja/javadoc.1 src/solaris/doc/sun/man/man1/ja/javap.1 src/solaris/doc/sun/man/man1/ja/jcmd.1 src/solaris/doc/sun/man/man1/ja/jconsole.1 src/solaris/doc/sun/man/man1/ja/jdb.1 src/solaris/doc/sun/man/man1/ja/jdeps.1 src/solaris/doc/sun/man/man1/ja/jhat.1 src/solaris/doc/sun/man/man1/ja/jinfo.1 src/solaris/doc/sun/man/man1/ja/jjs.1 src/solaris/doc/sun/man/man1/ja/jmap.1 src/solaris/doc/sun/man/man1/ja/jps.1 src/solaris/doc/sun/man/man1/ja/jrunscript.1 src/solaris/doc/sun/man/man1/ja/jsadebugd.1 src/solaris/doc/sun/man/man1/ja/jstack.1 src/solaris/doc/sun/man/man1/ja/jstat.1 src/solaris/doc/sun/man/man1/ja/jstatd.1 src/solaris/doc/sun/man/man1/ja/keytool.1 src/solaris/doc/sun/man/man1/ja/pack200.1 src/solaris/doc/sun/man/man1/ja/rmic.1 src/solaris/doc/sun/man/man1/ja/rmid.1 src/solaris/doc/sun/man/man1/ja/rmiregistry.1 src/solaris/doc/sun/man/man1/ja/serialver.1 src/solaris/doc/sun/man/man1/ja/unpack200.1 src/solaris/doc/sun/man/man1/jar.1 src/solaris/doc/sun/man/man1/jarsigner.1 src/solaris/doc/sun/man/man1/java.1 src/solaris/doc/sun/man/man1/javac.1 src/solaris/doc/sun/man/man1/javadoc.1 src/solaris/doc/sun/man/man1/javap.1 src/solaris/doc/sun/man/man1/jcmd.1 src/solaris/doc/sun/man/man1/jconsole.1 src/solaris/doc/sun/man/man1/jdb.1 src/solaris/doc/sun/man/man1/jdeps.1 src/solaris/doc/sun/man/man1/jhat.1 src/solaris/doc/sun/man/man1/jinfo.1 src/solaris/doc/sun/man/man1/jjs.1 src/solaris/doc/sun/man/man1/jmap.1 src/solaris/doc/sun/man/man1/jps.1 src/solaris/doc/sun/man/man1/jrunscript.1 src/solaris/doc/sun/man/man1/jsadebugd.1 src/solaris/doc/sun/man/man1/jstack.1 src/solaris/doc/sun/man/man1/jstat.1 src/solaris/doc/sun/man/man1/jstatd.1 src/solaris/doc/sun/man/man1/keytool.1 src/solaris/doc/sun/man/man1/pack200.1 src/solaris/doc/sun/man/man1/rmic.1 src/solaris/doc/sun/man/man1/rmid.1 src/solaris/doc/sun/man/man1/rmiregistry.1 src/solaris/doc/sun/man/man1/serialver.1 src/solaris/doc/sun/man/man1/unpack200.1 test/hotspot/jtreg/compiler/graalunit/CoreSparcTest.java test/jdk/java/awt/KeyboardFocusmanager/TypeAhead/SubMenuShowTest/SubMenuShowTest.html test/jdk/java/awt/event/SequencedEvent/SequencedEventTest.java test/jdk/java/util/ResourceBundle/Bug6299235Test.java test/jdk/java/util/ResourceBundle/Bug6299235Test.sh test/jdk/java/util/ResourceBundle/awtres.jar test/jdk/java/util/ResourceBundle/modules/appbasic/appbasic.sh test/jdk/java/util/ResourceBundle/modules/appbasic/src/asiabundles/jdk/test/resources/asia/MyResourcesAsia.java test/jdk/java/util/ResourceBundle/modules/appbasic/src/asiabundles/jdk/test/resources/asia/MyResources_ja.properties test/jdk/java/util/ResourceBundle/modules/appbasic/src/asiabundles/jdk/test/resources/asia/MyResources_zh.properties test/jdk/java/util/ResourceBundle/modules/appbasic/src/asiabundles/jdk/test/resources/asia/MyResources_zh_TW.properties test/jdk/java/util/ResourceBundle/modules/appbasic/src/asiabundles/module-info.java test/jdk/java/util/ResourceBundle/modules/appbasic/src/eubundles/jdk/test/resources/eu/MyResourcesEU.java test/jdk/java/util/ResourceBundle/modules/appbasic/src/eubundles/jdk/test/resources/eu/MyResources_de.java test/jdk/java/util/ResourceBundle/modules/appbasic/src/eubundles/jdk/test/resources/eu/MyResources_fr.java test/jdk/java/util/ResourceBundle/modules/appbasic/src/eubundles/module-info.java test/jdk/java/util/ResourceBundle/modules/appbasic/src/test/jdk/test/Main.java test/jdk/java/util/ResourceBundle/modules/appbasic/src/test/jdk/test/resources/MyResources.java test/jdk/java/util/ResourceBundle/modules/appbasic/src/test/jdk/test/resources/MyResourcesProviderImpl.java test/jdk/java/util/ResourceBundle/modules/appbasic/src/test/jdk/test/resources/MyResources_en.java test/jdk/java/util/ResourceBundle/modules/appbasic/src/test/jdk/test/resources/spi/MyResourcesProvider.java test/jdk/java/util/ResourceBundle/modules/appbasic/src/test/module-info.java test/jdk/java/util/ResourceBundle/modules/appbasic2/appbasic2.sh test/jdk/java/util/ResourceBundle/modules/appbasic2/src/asiabundles/jdk/test/resources/asia/MyResourcesAsia.java test/jdk/java/util/ResourceBundle/modules/appbasic2/src/asiabundles/jdk/test/resources/asia/MyResources_ja.properties test/jdk/java/util/ResourceBundle/modules/appbasic2/src/asiabundles/jdk/test/resources/asia/MyResources_zh.properties test/jdk/java/util/ResourceBundle/modules/appbasic2/src/asiabundles/jdk/test/resources/asia/MyResources_zh_TW.properties test/jdk/java/util/ResourceBundle/modules/appbasic2/src/asiabundles/module-info.java test/jdk/java/util/ResourceBundle/modules/appbasic2/src/eubundles/jdk/test/resources/eu/MyResourcesEU.java test/jdk/java/util/ResourceBundle/modules/appbasic2/src/eubundles/jdk/test/resources/eu/MyResources_de.java test/jdk/java/util/ResourceBundle/modules/appbasic2/src/eubundles/jdk/test/resources/eu/MyResources_fr.java test/jdk/java/util/ResourceBundle/modules/appbasic2/src/eubundles/module-info.java test/jdk/java/util/ResourceBundle/modules/appbasic2/src/test/jdk/test/Main.java test/jdk/java/util/ResourceBundle/modules/appbasic2/src/test/jdk/test/resources/MyResources.java test/jdk/java/util/ResourceBundle/modules/appbasic2/src/test/jdk/test/resources/MyResourcesProviderImpl.java test/jdk/java/util/ResourceBundle/modules/appbasic2/src/test/jdk/test/resources/MyResources_en.java test/jdk/java/util/ResourceBundle/modules/appbasic2/src/test/jdk/test/resources/spi/MyResourcesProvider.java test/jdk/java/util/ResourceBundle/modules/appbasic2/src/test/module-info.java test/jdk/java/util/ResourceBundle/modules/basic/basic.sh test/jdk/java/util/ResourceBundle/modules/basic/src/asiabundles/jdk/test/resources/asia/MyResourcesAsia.java test/jdk/java/util/ResourceBundle/modules/basic/src/asiabundles/jdk/test/resources/asia/MyResources_ja.properties test/jdk/java/util/ResourceBundle/modules/basic/src/asiabundles/jdk/test/resources/asia/MyResources_ja_JP.properties test/jdk/java/util/ResourceBundle/modules/basic/src/asiabundles/jdk/test/resources/asia/MyResources_zh.properties test/jdk/java/util/ResourceBundle/modules/basic/src/asiabundles/jdk/test/resources/asia/MyResources_zh_TW.properties test/jdk/java/util/ResourceBundle/modules/basic/src/asiabundles/module-info.java test/jdk/java/util/ResourceBundle/modules/basic/src/eubundles/jdk/test/resources/eu/MyResourcesEU.java test/jdk/java/util/ResourceBundle/modules/basic/src/eubundles/jdk/test/resources/eu/MyResources_de.java test/jdk/java/util/ResourceBundle/modules/basic/src/eubundles/jdk/test/resources/eu/MyResources_fr.java test/jdk/java/util/ResourceBundle/modules/basic/src/eubundles/module-info.java test/jdk/java/util/ResourceBundle/modules/basic/src/extra/jdk/test/resources/asia/MyResources_vi.properties test/jdk/java/util/ResourceBundle/modules/basic/src/extra/jdk/test/resources/eu/MyResources_es.java test/jdk/java/util/ResourceBundle/modules/basic/src/mainbundles/jdk/test/resources/MyResources.java test/jdk/java/util/ResourceBundle/modules/basic/src/mainbundles/jdk/test/resources/MyResourcesMain.java test/jdk/java/util/ResourceBundle/modules/basic/src/mainbundles/jdk/test/resources/MyResources_en.java test/jdk/java/util/ResourceBundle/modules/basic/src/mainbundles/jdk/test/resources/spi/MyResourcesProvider.java test/jdk/java/util/ResourceBundle/modules/basic/src/mainbundles/module-info.java test/jdk/java/util/ResourceBundle/modules/basic/src/test/jdk/test/Main.java test/jdk/java/util/ResourceBundle/modules/basic/src/test/module-info.java test/jdk/java/util/ResourceBundle/modules/layer/run.sh test/jdk/java/util/ResourceBundle/modules/modlocal/modlocal.sh test/jdk/java/util/ResourceBundle/modules/modlocal/src/extra/jdk/test/resources/MyResources_vi.properties test/jdk/java/util/ResourceBundle/modules/modlocal/src/test/jdk/test/Main.java test/jdk/java/util/ResourceBundle/modules/modlocal/src/test/jdk/test/resources/MyResources.java test/jdk/java/util/ResourceBundle/modules/modlocal/src/test/jdk/test/resources/MyResources_de.java test/jdk/java/util/ResourceBundle/modules/modlocal/src/test/jdk/test/resources/MyResources_en.java test/jdk/java/util/ResourceBundle/modules/modlocal/src/test/jdk/test/resources/MyResources_fr.java test/jdk/java/util/ResourceBundle/modules/modlocal/src/test/jdk/test/resources/MyResources_ja.properties test/jdk/java/util/ResourceBundle/modules/modlocal/src/test/jdk/test/resources/MyResources_zh.properties test/jdk/java/util/ResourceBundle/modules/modlocal/src/test/jdk/test/resources/MyResources_zh_TW.properties test/jdk/java/util/ResourceBundle/modules/modlocal/src/test/module-info.java test/jdk/java/util/ResourceBundle/modules/simple/simple.sh test/jdk/java/util/ResourceBundle/modules/simple/src/bundles/jdk/test/resources/MyResources.java test/jdk/java/util/ResourceBundle/modules/simple/src/bundles/jdk/test/resources/MyResources_de.java test/jdk/java/util/ResourceBundle/modules/simple/src/bundles/jdk/test/resources/MyResources_en.java test/jdk/java/util/ResourceBundle/modules/simple/src/bundles/jdk/test/resources/MyResources_fr.java test/jdk/java/util/ResourceBundle/modules/simple/src/bundles/jdk/test/resources/MyResources_ja.properties test/jdk/java/util/ResourceBundle/modules/simple/src/bundles/jdk/test/resources/MyResources_zh.properties test/jdk/java/util/ResourceBundle/modules/simple/src/bundles/jdk/test/resources/MyResources_zh_TW.properties test/jdk/java/util/ResourceBundle/modules/simple/src/bundles/jdk/test/resources/spi/MyResourcesProvider.java test/jdk/java/util/ResourceBundle/modules/simple/src/bundles/module-info.java test/jdk/java/util/ResourceBundle/modules/simple/src/test/jdk/test/Main.java test/jdk/java/util/ResourceBundle/modules/simple/src/test/module-info.java test/jdk/java/util/ResourceBundle/modules/unnamed/unnamed.sh test/jdk/java/util/ResourceBundle/modules/visibility/visibility.sh test/jdk/java/util/ResourceBundle/modules/xmlformat/src/bundles/jdk/test/resources/MyResources.xml test/jdk/java/util/ResourceBundle/modules/xmlformat/src/bundles/jdk/test/resources/MyResources_de.xml test/jdk/java/util/ResourceBundle/modules/xmlformat/src/bundles/jdk/test/resources/MyResources_en.xml test/jdk/java/util/ResourceBundle/modules/xmlformat/src/bundles/jdk/test/resources/MyResources_fr.xml test/jdk/java/util/ResourceBundle/modules/xmlformat/src/bundles/jdk/test/resources/MyResources_ja.xml test/jdk/java/util/ResourceBundle/modules/xmlformat/src/bundles/jdk/test/resources/MyResources_zh.xml test/jdk/java/util/ResourceBundle/modules/xmlformat/src/bundles/jdk/test/resources/MyResources_zh_TW.xml test/jdk/java/util/ResourceBundle/modules/xmlformat/src/bundles/jdk/test/resources/spi/MyResourcesProvider.java test/jdk/java/util/ResourceBundle/modules/xmlformat/src/bundles/module-info.java test/jdk/java/util/ResourceBundle/modules/xmlformat/src/test/jdk/test/Main.java test/jdk/java/util/ResourceBundle/modules/xmlformat/src/test/module-info.java test/jdk/java/util/ResourceBundle/modules/xmlformat/xmlformat.sh test/jdk/lib/testlibrary/jdk/testlibrary/OptimalCapacity.java test/langtools/tools/jdeps/mrjar/test/Main.java
diffstat 1836 files changed, 107920 insertions(+), 134714 deletions(-) [+]
line wrap: on
line diff
--- a/.hgtags	Wed Nov 14 04:59:57 2018 +0100
+++ b/.hgtags	Wed Nov 28 21:30:08 2018 +0100
@@ -522,3 +522,5 @@
 eefa65e142af305923d2adcd596fab9c639723a1 jdk-12+17
 e38473506688e0995e701fc7f77d5a91b438ef93 jdk-12+18
 dc1f9dec2018a37fedba47d8a2aedef99faaec64 jdk-12+19
+40098289d5804c3b5e7074bc75501a81e70d9b0d jdk-12+20
+f8fb0c86f2b3d24294d39c5685a628e1beb14ba7 jdk-12+21
--- a/bin/idea.sh	Wed Nov 14 04:59:57 2018 +0100
+++ b/bin/idea.sh	Wed Nov 28 21:30:08 2018 +0100
@@ -136,17 +136,33 @@
     eval TO$NUM_REPLACEMENTS='$2'
 }
 
-add_replacement "###BUILD_DIR###" "`dirname $SPEC`"
 add_replacement "###MODULE_NAMES###" "$MODULE_NAMES"
-add_replacement "###JTREG_HOME###" "$JT_HOME"
-add_replacement "###IMAGES_DIR###" "`dirname $SPEC`/images/jdk"
-add_replacement "###ROOT_DIR###" "$TOPLEVEL_DIR"
-add_replacement "###IDEA_DIR###" "$IDEA_OUTPUT"
+SPEC_DIR=`dirname $SPEC`
+if [ "x$CYGPATH" = "x" ]; then
+    add_replacement "###BUILD_DIR###" "$SPEC_DIR"
+    add_replacement "###JTREG_HOME###" "$JT_HOME"
+    add_replacement "###IMAGES_DIR###" "$SPEC_DIR/images/jdk"
+    add_replacement "###ROOT_DIR###" "$TOPLEVEL_DIR"
+    add_replacement "###IDEA_DIR###" "$IDEA_OUTPUT"
+else
+    add_replacement "###BUILD_DIR###" "`cygpath -am $SPEC_DIR`"
+    add_replacement "###IMAGES_DIR###" "`cygpath -am $SPEC_DIR`/images/jdk"
+    add_replacement "###ROOT_DIR###" "`cygpath -am $TOPLEVEL_DIR`"
+    add_replacement "###IDEA_DIR###" "`cygpath -am $IDEA_OUTPUT`"
+    if [ "x$JT_HOME" = "x" ]; then
+      add_replacement "###JTREG_HOME###" ""
+    else
+      add_replacement "###JTREG_HOME###" "`cygpath -am $JT_HOME`"
+    fi
+fi
 
 SOURCE_PREFIX="<sourceFolder url=\"file://"
 SOURCE_POSTFIX="\" isTestSource=\"false\" />"
 
 for root in $MODULE_ROOTS; do
+    if [ "x$CYGPATH" != "x" ]; then
+    	root=`cygpath -am $root`
+    fi
     SOURCES=$SOURCES" $SOURCE_PREFIX""$root""$SOURCE_POSTFIX"
 done
 
--- a/doc/building.html	Wed Nov 14 04:59:57 2018 +0100
+++ b/doc/building.html	Wed Nov 28 21:30:08 2018 +0100
@@ -69,6 +69,7 @@
 </ul></li>
 <li><a href="#running-tests">Running Tests</a></li>
 <li><a href="#cross-compiling">Cross-compiling</a><ul>
+<li><a href="#cross-compiling-the-easy-way-with-openjdk-devkits">Cross compiling the easy way with OpenJDK devkits</a></li>
 <li><a href="#boot-jdk-and-build-jdk">Boot JDK and Build JDK</a></li>
 <li><a href="#specifying-the-target-platform">Specifying the Target Platform</a></li>
 <li><a href="#toolchain-considerations">Toolchain Considerations</a></li>
@@ -93,7 +94,7 @@
 <li><a href="#getting-help">Getting Help</a></li>
 </ul></li>
 <li><a href="#hints-and-suggestions-for-advanced-users">Hints and Suggestions for Advanced Users</a><ul>
-<li><a href="#setting-up-a-forest-for-pushing-changes-defpath">Setting Up a Forest for Pushing Changes (defpath)</a></li>
+<li><a href="#setting-up-a-repository-for-pushing-changes-defpath">Setting Up a Repository for Pushing Changes (defpath)</a></li>
 <li><a href="#bash-completion">Bash Completion</a></li>
 <li><a href="#using-multiple-configurations">Using Multiple Configurations</a></li>
 <li><a href="#handling-reconfigurations">Handling Reconfigurations</a></li>
@@ -131,7 +132,7 @@
 <p>The JDK is a complex software project. Building it requires a certain amount of technical expertise, a fair number of dependencies on external software, and reasonably powerful hardware.</p>
 <p>If you just want to use the JDK and not build it yourself, this document is not for you. See for instance <a href="http://openjdk.java.net/install">OpenJDK installation</a> for some methods of installing a prebuilt JDK.</p>
 <h2 id="getting-the-source-code">Getting the Source Code</h2>
-<p>Make sure you are getting the correct version. As of JDK 10, the source is no longer split into separate repositories so you only need to clone one single repository. At the <a href="http://hg.openjdk.java.net/">OpenJDK Mercurial server</a> you can see a list of all available forests. If you want to build an older version, e.g. JDK 8, it is recommended that you get the <code>jdk8u</code> forest, which contains incremental updates, instead of the <code>jdk8</code> forest, which was frozen at JDK 8 GA.</p>
+<p>Make sure you are getting the correct version. As of JDK 10, the source is no longer split into separate repositories so you only need to clone one single repository. At the <a href="http://hg.openjdk.java.net/">OpenJDK Mercurial server</a> you can see a list of all available repositories. If you want to build an older version, e.g. JDK 8, it is recommended that you get the <code>jdk8u</code> forest, which contains incremental updates, instead of the <code>jdk8</code> forest, which was frozen at JDK 8 GA.</p>
 <p>If you are new to Mercurial, a good place to start is the <a href="http://www.mercurial-scm.org/guide">Mercurial Beginner's Guide</a>. The rest of this document assumes a working knowledge of Mercurial.</p>
 <h3 id="special-considerations">Special Considerations</h3>
 <p>For a smooth building experience, it is recommended that you follow these rules on where and how to check out the source code.</p>
@@ -570,6 +571,47 @@
 <p>This requires a more complex setup and build procedure. This section assumes you are familiar with cross-compiling in general, and will only deal with the particularities of cross-compiling the JDK. If you are new to cross-compiling, please see the <a href="https://en.wikipedia.org/wiki/Cross_compiler#External_links">external links at Wikipedia</a> for a good start on reading materials.</p>
 <p>Cross-compiling the JDK requires you to be able to build both for the build platform and for the target platform. The reason for the former is that we need to build and execute tools during the build process, both native tools and Java tools.</p>
 <p>If all you want to do is to compile a 32-bit version, for the same OS, on a 64-bit machine, consider using <code>--with-target-bits=32</code> instead of doing a full-blown cross-compilation. (While this surely is possible, it's a lot more work and will take much longer to build.)</p>
+<h3 id="cross-compiling-the-easy-way-with-openjdk-devkits">Cross compiling the easy way with OpenJDK devkits</h3>
+<p>The OpenJDK build system provides out-of-the box support for creating and using so called devkits. A <code>devkit</code> is basically a collection of a cross-compiling toolchain and a sysroot environment which can easily be used together with the <code>--with-devkit</code> configure option to cross compile the OpenJDK. On Linux/x86_64, the following command:</p>
+<pre><code>bash configure --with-devkit=&lt;devkit-path&gt; --openjdk-target=ppc64-linux-gnu &amp;&amp; make</code></pre>
+<p>will configure and build OpenJDK for Linux/ppc64 assuming that <code>&lt;devkit-path&gt;</code> points to a Linux/x86_64 to Linux/ppc64 devkit.</p>
+<p>Devkits can be created from the <code>make/devkit</code> directory by executing:</p>
+<pre><code>make [ TARGETS=&quot;&lt;TARGET_TRIPLET&gt;+&quot; ] [ BASE_OS=&lt;OS&gt; ] [ BASE_OS_VERSION=&lt;VER&gt; ]</code></pre>
+<p>where <code>TARGETS</code> contains one or more <code>TARGET_TRIPLET</code>s of the form described in <a href="https://sourceware.org/autobook/autobook/autobook_17.html">section 3.4 of the GNU Autobook</a>. If no targets are given, a native toolchain for the current platform will be created. Currently, at least the following targets are known to work:</p>
+<table>
+<thead>
+<tr class="header">
+<th style="text-align: left;">Supported devkit targets</th>
+</tr>
+</thead>
+<tbody>
+<tr class="odd">
+<td style="text-align: left;">x86_64-linux-gnu</td>
+</tr>
+<tr class="even">
+<td style="text-align: left;">aarch64-linux-gnu</td>
+</tr>
+<tr class="odd">
+<td style="text-align: left;">arm-linux-gnueabihf</td>
+</tr>
+<tr class="even">
+<td style="text-align: left;">ppc64-linux-gnu</td>
+</tr>
+<tr class="odd">
+<td style="text-align: left;">ppc64le-linux-gnu</td>
+</tr>
+<tr class="even">
+<td style="text-align: left;">s390x-linux-gnu</td>
+</tr>
+</tbody>
+</table>
+<p><code>BASE_OS</code> must be one of &quot;OEL6&quot; for Oracle Enterprise Linux 6 or &quot;Fedora&quot; (if not specified &quot;OEL6&quot; will be the default). If the base OS is &quot;Fedora&quot; the corresponding Fedora release can be specified with the help of the <code>BASE_OS_VERSION</code> option (with &quot;27&quot; as default version). If the build is successful, the new devkits can be found in the <code>build/devkit/result</code> subdirectory:</p>
+<pre><code>cd make/devkit
+make TARGETS=&quot;ppc64le-linux-gnu aarch64-linux-gnu&quot; BASE_OS=Fedora BASE_OS_VERSION=21
+ls -1 ../../build/devkit/result/
+x86_64-linux-gnu-to-aarch64-linux-gnu
+x86_64-linux-gnu-to-ppc64le-linux-gnu</code></pre>
+<p>Notice that devkits are not only useful for targeting different build platforms. Because they contain the full build dependencies for a system (i.e. compiler and root file system), they can easily be used to build well-known, reliable and reproducible build environments. You can for example create and use a devkit with GCC 7.3 and a Fedora 12 sysroot environment (with glibc 2.11) on Ubuntu 14.04 (which doesn't have GCC 7.3 by default) to produce OpenJDK binaries which will run on all Linux systems with runtime libraries newer than the ones from Fedora 12 (e.g. Ubuntu 16.04, SLES 11 or RHEL 6).</p>
 <h3 id="boot-jdk-and-build-jdk">Boot JDK and Build JDK</h3>
 <p>When cross-compiling, make sure you use a boot JDK that runs on the <em>build</em> system, and not on the <em>target</em> system.</p>
 <p>To be able to build, we need a &quot;Build JDK&quot;, which is a JDK built from the current sources (that is, the same as the end result of the entire build process), but able to run on the <em>build</em> system, and not the <em>target</em> system. (In contrast, the Boot JDK should be from an older release, e.g. JDK 8 when building JDK 9.)</p>
@@ -662,8 +704,8 @@
 <th style="text-align: left;">Target</th>
 <th style="text-align: left;"><code>CC</code></th>
 <th style="text-align: left;"><code>CXX</code></th>
-<th><code>--arch=...</code></th>
-<th><code>--openjdk-target=...</code></th>
+<th style="text-align: left;"><code>--arch=...</code></th>
+<th style="text-align: left;"><code>--openjdk-target=...</code></th>
 </tr>
 </thead>
 <tbody>
@@ -671,36 +713,36 @@
 <td style="text-align: left;">x86</td>
 <td style="text-align: left;">default</td>
 <td style="text-align: left;">default</td>
-<td>i386</td>
-<td>i386-linux-gnu</td>
+<td style="text-align: left;">i386</td>
+<td style="text-align: left;">i386-linux-gnu</td>
 </tr>
 <tr class="even">
 <td style="text-align: left;">armhf</td>
 <td style="text-align: left;">gcc-arm-linux-gnueabihf</td>
 <td style="text-align: left;">g++-arm-linux-gnueabihf</td>
-<td>armhf</td>
-<td>arm-linux-gnueabihf</td>
+<td style="text-align: left;">armhf</td>
+<td style="text-align: left;">arm-linux-gnueabihf</td>
 </tr>
 <tr class="odd">
 <td style="text-align: left;">aarch64</td>
 <td style="text-align: left;">gcc-aarch64-linux-gnu</td>
 <td style="text-align: left;">g++-aarch64-linux-gnu</td>
-<td>arm64</td>
-<td>aarch64-linux-gnu</td>
+<td style="text-align: left;">arm64</td>
+<td style="text-align: left;">aarch64-linux-gnu</td>
 </tr>
 <tr class="even">
 <td style="text-align: left;">ppc64el</td>
 <td style="text-align: left;">gcc-powerpc64le-linux-gnu</td>
 <td style="text-align: left;">g++-powerpc64le-linux-gnu</td>
-<td>ppc64el</td>
-<td>powerpc64le-linux-gnu</td>
+<td style="text-align: left;">ppc64el</td>
+<td style="text-align: left;">powerpc64le-linux-gnu</td>
 </tr>
 <tr class="odd">
 <td style="text-align: left;">s390x</td>
 <td style="text-align: left;">gcc-s390x-linux-gnu</td>
 <td style="text-align: left;">g++-s390x-linux-gnu</td>
-<td>s390x</td>
-<td>s390x-linux-gnu</td>
+<td style="text-align: left;">s390x</td>
+<td style="text-align: left;">s390x-linux-gnu</td>
 </tr>
 </tbody>
 </table>
@@ -780,11 +822,11 @@
 <p>Verify that the summary at the end looks correct. Are you indeed using the Boot JDK and native toolchain that you expect?</p>
 <p>By default, the JDK has a strict approach where warnings from the compiler is considered errors which fail the build. For very new or very old compiler versions, this can trigger new classes of warnings, which thus fails the build. Run <code>configure</code> with <code>--disable-warnings-as-errors</code> to turn of this behavior. (The warnings will still show, but not make the build fail.)</p>
 <h4 id="problems-with-incremental-rebuilds">Problems with Incremental Rebuilds</h4>
-<p>Incremental rebuilds mean that when you modify part of the product, only the affected parts get rebuilt. While this works great in most cases, and significantly speed up the development process, from time to time complex interdependencies will result in an incorrect build result. This is the most common cause for unexpected build problems, together with inconsistencies between the different Mercurial repositories in the forest.</p>
+<p>Incremental rebuilds mean that when you modify part of the product, only the affected parts get rebuilt. While this works great in most cases, and significantly speed up the development process, from time to time complex interdependencies will result in an incorrect build result. This is the most common cause for unexpected build problems.</p>
 <p>Here are a suggested list of things to try if you are having unexpected build problems. Each step requires more time than the one before, so try them in order. Most issues will be solved at step 1 or 2.</p>
 <ol type="1">
-<li><p>Make sure your forest is up-to-date</p>
-<p>Run <code>bash get_source.sh</code> to make sure you have the latest version of all repositories.</p></li>
+<li><p>Make sure your repository is up-to-date</p>
+<p>Run <code>hg pull -u</code> to make sure you have the latest changes.</p></li>
 <li><p>Clean build results</p>
 <p>The simplest way to fix incremental rebuild issues is to run <code>make clean</code>. This will remove all build results, but not the configuration or any build system support artifacts. In most cases, this will solve build errors resulting from incremental build mismatches.</p></li>
 <li><p>Completely clean the build directory.</p>
@@ -793,8 +835,8 @@
 make dist-clean
 bash configure $(cat current-configuration)
 make</code></pre></li>
-<li><p>Re-clone the Mercurial forest</p>
-<p>Sometimes the Mercurial repositories themselves gets in a state that causes the product to be un-buildable. In such a case, the simplest solution is often the &quot;sledgehammer approach&quot;: delete the entire forest, and re-clone it. If you have local changes, save them first to a different location using <code>hg export</code>.</p></li>
+<li><p>Re-clone the Mercurial repository</p>
+<p>Sometimes the Mercurial repository gets in a state that causes the product to be un-buildable. In such a case, the simplest solution is often the &quot;sledgehammer approach&quot;: delete the entire repository, and re-clone it. If you have local changes, save them first to a different location using <code>hg export</code>.</p></li>
 </ol>
 <h3 id="specific-build-issues">Specific Build Issues</h3>
 <h4 id="clock-skew">Clock Skew</h4>
@@ -813,10 +855,15 @@
 spawn failed</code></pre>
 <p>This can be a sign of a Cygwin problem. See the information about solving problems in the <a href="#cygwin">Cygwin</a> section. Rebooting the computer might help temporarily.</p>
 <h3 id="getting-help">Getting Help</h3>
-<p>If none of the suggestions in this document helps you, or if you find what you believe is a bug in the build system, please contact the Build Group by sending a mail to <a href="mailto:build-dev@openjdk.java.net">build-dev@openjdk.java.net</a>. Please include the relevant parts of the configure and/or build log.</p>
+<p>If none of the suggestions in this document helps you, or if you find what you believe is a bug in the build system, please contact the Build Group by sending a mail to <script type="text/javascript">
+<!--
+h='&#x6f;&#112;&#x65;&#110;&#106;&#100;&#x6b;&#46;&#106;&#x61;&#118;&#x61;&#46;&#110;&#x65;&#116;';a='&#64;';n='&#98;&#x75;&#x69;&#108;&#100;&#x2d;&#100;&#x65;&#118;';e=n+a+h;
+document.write('<a h'+'ref'+'="ma'+'ilto'+':'+e+'" clas'+'s="em' + 'ail">'+e+'<\/'+'a'+'>');
+// -->
+</script><noscript>&#98;&#x75;&#x69;&#108;&#100;&#x2d;&#100;&#x65;&#118;&#32;&#x61;&#116;&#32;&#x6f;&#112;&#x65;&#110;&#106;&#100;&#x6b;&#32;&#100;&#x6f;&#116;&#32;&#106;&#x61;&#118;&#x61;&#32;&#100;&#x6f;&#116;&#32;&#110;&#x65;&#116;</noscript>. Please include the relevant parts of the configure and/or build log.</p>
 <p>If you need general help or advice about developing for the JDK, you can also contact the Adoption Group. See the section on <a href="#contributing-to-openjdk">Contributing to OpenJDK</a> for more information.</p>
 <h2 id="hints-and-suggestions-for-advanced-users">Hints and Suggestions for Advanced Users</h2>
-<h3 id="setting-up-a-forest-for-pushing-changes-defpath">Setting Up a Forest for Pushing Changes (defpath)</h3>
+<h3 id="setting-up-a-repository-for-pushing-changes-defpath">Setting Up a Repository for Pushing Changes (defpath)</h3>
 <p>To help you prepare a proper push path for a Mercurial repository, there exists a useful tool known as <a href="http://openjdk.java.net/projects/code-tools/defpath">defpath</a>. It will help you setup a proper push path for pushing changes to the JDK.</p>
 <p>Install the extension by cloning <code>http://hg.openjdk.java.net/code-tools/defpath</code> and updating your <code>.hgrc</code> file. Here's one way to do this:</p>
 <pre><code>cd ~
@@ -829,7 +876,6 @@
 EOT</code></pre>
 <p>You can now setup a proper push path using:</p>
 <pre><code>hg defpath -d -u &lt;your OpenJDK username&gt;</code></pre>
-<p>If you also have the <code>trees</code> extension installed in Mercurial, you will automatically get a <code>tdefpath</code> command, which is even more useful. By running <code>hg tdefpath -du &lt;username&gt;</code> in the top repository of your forest, all repos will get setup automatically. This is the recommended usage.</p>
 <h3 id="bash-completion">Bash Completion</h3>
 <p>The <code>configure</code> and <code>make</code> commands tries to play nice with bash command-line completion (using <code>&lt;tab&gt;</code> or <code>&lt;tab&gt;&lt;tab&gt;</code>). To use this functionality, make sure you enable completion in your <code>~/.bashrc</code> (see instructions for bash in your operating system).</p>
 <p>Make completion will work out of the box, and will complete valid make targets. For instance, typing <code>make jdk-i&lt;tab&gt;</code> will complete to <code>make jdk-image</code>.</p>
@@ -847,10 +893,10 @@
 sudo mv /tmp/configure /usr/local/bin</code></pre>
 <p>Now <code>configure --en&lt;tab&gt;-dt&lt;tab&gt;</code> will result in <code>configure --enable-dtrace</code>.</p>
 <h3 id="using-multiple-configurations">Using Multiple Configurations</h3>
-<p>You can have multiple configurations for a single source forest. When you create a new configuration, run <code>configure --with-conf-name=&lt;name&gt;</code> to create a configuration with the name <code>&lt;name&gt;</code>. Alternatively, you can create a directory under <code>build</code> and run <code>configure</code> from there, e.g. <code>mkdir build/&lt;name&gt; &amp;&amp; cd build/&lt;name&gt; &amp;&amp; bash ../../configure</code>.</p>
+<p>You can have multiple configurations for a single source repository. When you create a new configuration, run <code>configure --with-conf-name=&lt;name&gt;</code> to create a configuration with the name <code>&lt;name&gt;</code>. Alternatively, you can create a directory under <code>build</code> and run <code>configure</code> from there, e.g. <code>mkdir build/&lt;name&gt; &amp;&amp; cd build/&lt;name&gt; &amp;&amp; bash ../../configure</code>.</p>
 <p>Then you can build that configuration using <code>make CONF_NAME=&lt;name&gt;</code> or <code>make CONF=&lt;pattern&gt;</code>, where <code>&lt;pattern&gt;</code> is a substring matching one or several configurations, e.g. <code>CONF=debug</code>. The special empty pattern (<code>CONF=</code>) will match <em>all</em> available configuration, so <code>make CONF= hotspot</code> will build the <code>hotspot</code> target for all configurations. Alternatively, you can execute <code>make</code> in the configuration directory, e.g. <code>cd build/&lt;name&gt; &amp;&amp; make</code>.</p>
 <h3 id="handling-reconfigurations">Handling Reconfigurations</h3>
-<p>If you update the forest and part of the configure script has changed, the build system will force you to re-run <code>configure</code>.</p>
+<p>If you update the repository and part of the configure script has changed, the build system will force you to re-run <code>configure</code>.</p>
 <p>Most of the time, you will be fine by running <code>configure</code> again with the same arguments as the last time, which can easily be performed by <code>make reconfigure</code>. To simplify this, you can use the <code>CONF_CHECK</code> make control variable, either as <code>make CONF_CHECK=auto</code>, or by setting an environment variable. For instance, if you add <code>export CONF_CHECK=auto</code> to your <code>.bashrc</code> file, <code>make</code> will always run <code>reconfigure</code> automatically whenever the configure script has changed.</p>
 <p>You can also use <code>CONF_CHECK=ignore</code> to skip the check for a needed configure update. This might speed up the build, but comes at the risk of an incorrect build result. This is only recommended if you know what you're doing.</p>
 <p>From time to time, you will also need to modify the command line to <code>configure</code> due to changes. Use <code>make print-configure</code> to show the command line used for your current configuration.</p>
--- a/doc/building.md	Wed Nov 14 04:59:57 2018 +0100
+++ b/doc/building.md	Wed Nov 28 21:30:08 2018 +0100
@@ -48,7 +48,7 @@
 Make sure you are getting the correct version. As of JDK 10, the source is no
 longer split into separate repositories so you only need to clone one single
 repository. At the [OpenJDK Mercurial server](http://hg.openjdk.java.net/) you
-can see a list of all available forests. If you want to build an older version,
+can see a list of all available repositories. If you want to build an older version,
 e.g. JDK 8, it is recommended that you get the `jdk8u` forest, which contains
 incremental updates, instead of the `jdk8` forest, which was frozen at JDK 8 GA.
 
@@ -884,6 +884,64 @@
 full-blown cross-compilation. (While this surely is possible, it's a lot more
 work and will take much longer to build.)
 
+### Cross compiling the easy way with OpenJDK devkits
+
+The OpenJDK build system provides out-of-the box support for creating and using
+so called devkits. A `devkit` is basically a collection of a cross-compiling
+toolchain and a sysroot environment which can easily be used together with the
+`--with-devkit` configure option to cross compile the OpenJDK. On Linux/x86_64,
+the following command:
+```
+bash configure --with-devkit=<devkit-path> --openjdk-target=ppc64-linux-gnu && make
+```
+
+will configure and build OpenJDK for Linux/ppc64 assuming that `<devkit-path>`
+points to a Linux/x86_64 to Linux/ppc64 devkit.
+
+Devkits can be created from the `make/devkit` directory by executing:
+```
+make [ TARGETS="<TARGET_TRIPLET>+" ] [ BASE_OS=<OS> ] [ BASE_OS_VERSION=<VER> ]
+```
+
+where `TARGETS` contains one or more `TARGET_TRIPLET`s of the form
+described in [section 3.4 of the GNU Autobook](
+https://sourceware.org/autobook/autobook/autobook_17.html). If no
+targets are given, a native toolchain for the current platform will be
+created. Currently, at least the following targets are known to work:
+
+ Supported devkit targets
+ ------------------------
+ x86_64-linux-gnu
+ aarch64-linux-gnu
+ arm-linux-gnueabihf
+ ppc64-linux-gnu
+ ppc64le-linux-gnu
+ s390x-linux-gnu
+
+`BASE_OS` must be one of "OEL6" for Oracle Enterprise Linux 6 or
+"Fedora" (if not specified "OEL6" will be the default). If the base OS
+is "Fedora" the corresponding Fedora release can be specified with the
+help of the `BASE_OS_VERSION` option (with "27" as default version).
+If the build is successful, the new devkits can be found in the
+`build/devkit/result` subdirectory:
+```
+cd make/devkit
+make TARGETS="ppc64le-linux-gnu aarch64-linux-gnu" BASE_OS=Fedora BASE_OS_VERSION=21
+ls -1 ../../build/devkit/result/
+x86_64-linux-gnu-to-aarch64-linux-gnu
+x86_64-linux-gnu-to-ppc64le-linux-gnu
+```
+
+Notice that devkits are not only useful for targeting different build
+platforms. Because they contain the full build dependencies for a
+system (i.e. compiler and root file system), they can easily be used
+to build well-known, reliable and reproducible build environments. You
+can for example create and use a devkit with GCC 7.3 and a Fedora 12
+sysroot environment (with glibc 2.11) on Ubuntu 14.04 (which doesn't
+have GCC 7.3 by default) to produce OpenJDK binaries which will run on
+all Linux systems with runtime libraries newer than the ones from
+Fedora 12 (e.g. Ubuntu 16.04, SLES 11 or RHEL 6).
+
 ### Boot JDK and Build JDK
 
 When cross-compiling, make sure you use a boot JDK that runs on the *build*
@@ -1301,17 +1359,15 @@
 affected parts get rebuilt. While this works great in most cases, and
 significantly speed up the development process, from time to time complex
 interdependencies will result in an incorrect build result. This is the most
-common cause for unexpected build problems, together with inconsistencies
-between the different Mercurial repositories in the forest.
+common cause for unexpected build problems.
 
 Here are a suggested list of things to try if you are having unexpected build
 problems. Each step requires more time than the one before, so try them in
 order. Most issues will be solved at step 1 or 2.
 
- 1. Make sure your forest is up-to-date
+ 1. Make sure your repository is up-to-date
 
-    Run `bash get_source.sh` to make sure you have the latest version of all
-    repositories.
+    Run `hg pull -u` to make sure you have the latest changes.
 
  2. Clean build results
 
@@ -1336,13 +1392,13 @@
     make
     ```
 
- 4. Re-clone the Mercurial forest
+ 4. Re-clone the Mercurial repository
 
-    Sometimes the Mercurial repositories themselves gets in a state that causes
-    the product to be un-buildable. In such a case, the simplest solution is
-    often the "sledgehammer approach": delete the entire forest, and re-clone
-    it. If you have local changes, save them first to a different location
-    using `hg export`.
+    Sometimes the Mercurial repository gets in a state that causes the product
+    to be un-buildable. In such a case, the simplest solution is often the
+    "sledgehammer approach": delete the entire repository, and re-clone it.
+    If you have local changes, save them first to a different location using
+    `hg export`.
 
 ### Specific Build Issues
 
@@ -1393,7 +1449,7 @@
 
 ## Hints and Suggestions for Advanced Users
 
-### Setting Up a Forest for Pushing Changes (defpath)
+### Setting Up a Repository for Pushing Changes (defpath)
 
 To help you prepare a proper push path for a Mercurial repository, there exists
 a useful tool known as [defpath](
@@ -1420,11 +1476,6 @@
 hg defpath -d -u <your OpenJDK username>
 ```
 
-If you also have the `trees` extension installed in Mercurial, you will
-automatically get a `tdefpath` command, which is even more useful. By running
-`hg tdefpath -du <username>` in the top repository of your forest, all repos
-will get setup automatically. This is the recommended usage.
-
 ### Bash Completion
 
 The `configure` and `make` commands tries to play nice with bash command-line
@@ -1459,7 +1510,7 @@
 
 ### Using Multiple Configurations
 
-You can have multiple configurations for a single source forest. When you
+You can have multiple configurations for a single source repository. When you
 create a new configuration, run `configure --with-conf-name=<name>` to create a
 configuration with the name `<name>`. Alternatively, you can create a directory
 under `build` and run `configure` from there, e.g. `mkdir build/<name> && cd
@@ -1474,7 +1525,7 @@
 
 ### Handling Reconfigurations
 
-If you update the forest and part of the configure script has changed, the
+If you update the repository and part of the configure script has changed, the
 build system will force you to re-run `configure`.
 
 Most of the time, you will be fine by running `configure` again with the same
--- a/doc/testing.html	Wed Nov 14 04:59:57 2018 +0100
+++ b/doc/testing.html	Wed Nov 28 21:30:08 2018 +0100
@@ -24,12 +24,14 @@
 <li><a href="#test-selection">Test selection</a><ul>
 <li><a href="#jtreg">JTReg</a></li>
 <li><a href="#gtest">Gtest</a></li>
+<li><a href="#microbenchmarks">Microbenchmarks</a></li>
 <li><a href="#special-tests">Special tests</a></li>
 </ul></li>
 <li><a href="#test-results-and-summary">Test results and summary</a></li>
 <li><a href="#test-suite-control">Test suite control</a><ul>
 <li><a href="#jtreg-keywords">JTReg keywords</a></li>
 <li><a href="#gtest-keywords">Gtest keywords</a></li>
+<li><a href="#microbenchmark-keywords">Microbenchmark keywords</a></li>
 </ul></li>
 </ul>
 </nav>
@@ -44,9 +46,11 @@
 $ make test-only TEST=&quot;gtest:LogTagSet gtest:LogTagSetDescriptions&quot; GTEST=&quot;REPEAT=-1&quot;
 $ make test TEST=&quot;hotspot:hotspot_gc&quot; JTREG=&quot;JOBS=1;TIMEOUT=8;VM_OPTIONS=-XshowSettings -Xlog:gc+ref=debug&quot;
 $ make test TEST=&quot;jtreg:test/hotspot:hotspot_gc test/hotspot/jtreg/native_sanity/JniVersion.java&quot;
+$ make test TEST=&quot;micro:java.lang.reflect&quot; MICRO=&quot;FORK=1;WARMUP_ITER=2&quot;
 $ make exploded-test TEST=tier2</code></pre>
 <h3 id="configuration">Configuration</h3>
 <p>To be able to run JTReg tests, <code>configure</code> needs to know where to find the JTReg test framework. If it is not picked up automatically by configure, use the <code>--with-jtreg=&lt;path to jtreg home&gt;</code> option to point to the JTReg framework. Note that this option should point to the JTReg home, i.e. the top directory, containing <code>lib/jtreg.jar</code> etc. (An alternative is to set the <code>JT_HOME</code> environment variable to point to the JTReg home before running <code>configure</code>.)</p>
+<p>To be able to run microbenchmarks, <code>configure</code> needs to know where to find the JMH dependency. Use <code>--with-jmh=&lt;path to JMH jars&gt;</code> to point to a directory containing the core JMH and transitive dependencies. The recommended dependencies can be retrieved by running <code>sh make/devkit/createJMHBundle.sh</code>, after which <code>--with-jmh=build/jmh/jars</code> should work.</p>
 <h2 id="test-selection">Test selection</h2>
 <p>All functionality is available using the <code>test</code> make target. In this use case, the test or tests to be executed is controlled using the <code>TEST</code> variable. To speed up subsequent test runs with no source code changes, <code>test-only</code> can be used instead, which do not depend on the source and test image build.</p>
 <p>For some common top-level tests, direct make targets have been generated. This includes all JTReg test groups, the hotspot gtest, and custom tests (if present). This means that <code>make test-tier1</code> is equivalent to <code>make test TEST=&quot;tier1&quot;</code>, but the latter is more tab-completion friendly. For more complex test runs, the <code>test TEST=&quot;x&quot;</code> solution needs to be used.</p>
@@ -61,6 +65,9 @@
 <p>Since the Hotspot Gtest suite is so quick, the default is to run all tests. This is specified by just <code>gtest</code>, or as a fully qualified test descriptor <code>gtest:all</code>.</p>
 <p>If you want, you can single out an individual test or a group of tests, for instance <code>gtest:LogDecorations</code> or <code>gtest:LogDecorations.level_test_vm</code>. This can be particularly useful if you want to run a shaky test repeatedly.</p>
 <p>For Gtest, there is a separate test suite for each JVM variant. The JVM variant is defined by adding <code>/&lt;variant&gt;</code> to the test descriptor, e.g. <code>gtest:Log/client</code>. If you specify no variant, gtest will run once for each JVM variant present (e.g. server, client). So if you only have the server JVM present, then <code>gtest:all</code> will be equivalent to <code>gtest:all/server</code>.</p>
+<h3 id="microbenchmarks">Microbenchmarks</h3>
+<p>Which microbenchmarks to run is selected using a regular expression following the <code>micro:</code> test descriptor, e.g., <code>micro:java.lang.reflect</code>. This delegates the test selection to JMH, meaning package name, class name and even benchmark method names can be used to select tests.</p>
+<p>Using special characters like <code>|</code> in the regular expression is possible, but needs to be escaped multiple times: <code>micro:ArrayCopy\\\\\|reflect</code>.</p>
 <h3 id="special-tests">Special tests</h3>
 <p>A handful of odd tests that are not covered by any other testing framework are accessible using the <code>special:</code> test descriptor. Currently, this includes <code>failure-handler</code> and <code>make</code>.</p>
 <ul>
@@ -127,5 +134,22 @@
 <h4 id="options-1">OPTIONS</h4>
 <p>Additional options to the Gtest test framework.</p>
 <p>Use <code>GTEST=&quot;OPTIONS=--help&quot;</code> to see all available Gtest options.</p>
+<h3 id="microbenchmark-keywords">Microbenchmark keywords</h3>
+<h4 id="fork">FORK</h4>
+<p>Override the number of benchmark forks to spawn. Same as specifying <code>-f &lt;num&gt;</code>.</p>
+<h4 id="iter">ITER</h4>
+<p>Number of measurement iterations per fork. Same as specifying <code>-i &lt;num&gt;</code>.</p>
+<h4 id="time">TIME</h4>
+<p>Amount of time to spend in each measurement iteration, in seconds. Same as specifying <code>-r &lt;num&gt;</code></p>
+<h4 id="warmup_iter">WARMUP_ITER</h4>
+<p>Number of warmup iterations to run before the measurement phase in each fork. Same as specifying <code>-wi &lt;num&gt;</code>.</p>
+<h4 id="warmup_time">WARMUP_TIME</h4>
+<p>Amount of time to spend in each warmup iteration. Same as specifying <code>-w &lt;num&gt;</code>.</p>
+<h4 id="results_format">RESULTS_FORMAT</h4>
+<p>Specify to have the test run save a log of the values. Accepts the same values as <code>-rff</code>, i.e., <code>text</code>, <code>csv</code>, <code>scsv</code>, <code>json</code>, or <code>latex</code>.</p>
+<h4 id="vm_options-1">VM_OPTIONS</h4>
+<p>Additional VM arguments to provide to forked off VMs. Same as <code>-jvmArgs &lt;args&gt;</code></p>
+<h4 id="options-2">OPTIONS</h4>
+<p>Additional arguments to send to JMH.</p>
 </body>
 </html>
--- a/doc/testing.md	Wed Nov 14 04:59:57 2018 +0100
+++ b/doc/testing.md	Wed Nov 28 21:30:08 2018 +0100
@@ -26,6 +26,7 @@
     $ make test-only TEST="gtest:LogTagSet gtest:LogTagSetDescriptions" GTEST="REPEAT=-1"
     $ make test TEST="hotspot:hotspot_gc" JTREG="JOBS=1;TIMEOUT=8;VM_OPTIONS=-XshowSettings -Xlog:gc+ref=debug"
     $ make test TEST="jtreg:test/hotspot:hotspot_gc test/hotspot/jtreg/native_sanity/JniVersion.java"
+    $ make test TEST="micro:java.lang.reflect" MICRO="FORK=1;WARMUP_ITER=2"
     $ make exploded-test TEST=tier2
 
 ### Configuration
@@ -37,6 +38,12 @@
 containing `lib/jtreg.jar` etc. (An alternative is to set the `JT_HOME`
 environment variable to point to the JTReg home before running `configure`.)
 
+To be able to run microbenchmarks, `configure` needs to know where to find
+the JMH dependency. Use `--with-jmh=<path to JMH jars>` to point to a directory
+containing the core JMH and transitive dependencies. The recommended dependencies 
+can be retrieved by running `sh make/devkit/createJMHBundle.sh`, after which 
+`--with-jmh=build/jmh/jars` should work.
+
 ## Test selection
 
 All functionality is available using the `test` make target. In this use case,
@@ -104,6 +111,16 @@
 variant present (e.g. server, client). So if you only have the server JVM
 present, then `gtest:all` will be equivalent to `gtest:all/server`.
 
+### Microbenchmarks
+
+Which microbenchmarks to run is selected using a regular expression
+following the `micro:` test descriptor, e.g., `micro:java.lang.reflect`. This
+delegates the test selection to JMH, meaning package name, class name and even
+benchmark method names can be used to select tests.
+
+Using special characters like `|` in the regular expression is possible, but
+needs to be escaped multiple times: `micro:ArrayCopy\\\\\|reflect`.
+
 ### Special tests
 
 A handful of odd tests that are not covered by any other testing framework are
@@ -253,6 +270,35 @@
 
 Use `GTEST="OPTIONS=--help"` to see all available Gtest options.
 
+### Microbenchmark keywords
+
+#### FORK
+Override the number of benchmark forks to spawn. Same as specifying `-f <num>`.
+
+#### ITER
+Number of measurement iterations per fork. Same as specifying `-i <num>`.
+
+#### TIME
+Amount of time to spend in each measurement iteration, in seconds. Same as
+specifying `-r <num>`
+
+#### WARMUP_ITER
+Number of warmup iterations to run before the measurement phase in each fork.
+Same as specifying `-wi <num>`.
+
+#### WARMUP_TIME
+Amount of time to spend in each warmup iteration. Same as specifying `-w <num>`.
+
+#### RESULTS_FORMAT
+Specify to have the test run save a log of the values. Accepts the same values
+as `-rff`, i.e., `text`, `csv`, `scsv`, `json`, or `latex`.
+
+#### VM_OPTIONS
+Additional VM arguments to provide to forked off VMs. Same as `-jvmArgs <args>`
+
+#### OPTIONS
+Additional arguments to send to JMH.
+
 ---
 # Override some definitions in the global css file that are not optimal for
 # this document.
--- a/make/CompileJavaModules.gmk	Wed Nov 14 04:59:57 2018 +0100
+++ b/make/CompileJavaModules.gmk	Wed Nov 28 21:30:08 2018 +0100
@@ -450,21 +450,17 @@
 
 jdk.internal.vm.compiler_EXCLUDES += \
     jdk.internal.vm.compiler.collections.test \
-    org.graalvm.compiler.processor \
-    org.graalvm.compiler.core.match.processor \
-    org.graalvm.compiler.nodeinfo.processor \
-    org.graalvm.compiler.options.processor \
-    org.graalvm.compiler.serviceprovider.processor \
-    org.graalvm.compiler.replacements.processor \
-    org.graalvm.compiler.replacements.jdk9.test \
+    jdk.tools.jaotc.test \
     org.graalvm.compiler.api.directives.test \
     org.graalvm.compiler.api.test \
     org.graalvm.compiler.asm.aarch64.test \
     org.graalvm.compiler.asm.amd64.test \
     org.graalvm.compiler.asm.sparc.test \
     org.graalvm.compiler.asm.test \
+    org.graalvm.compiler.core.aarch64.test \
     org.graalvm.compiler.core.amd64.test \
-    org.graalvm.compiler.core.sparc.test \
+    org.graalvm.compiler.core.jdk9.test \
+    org.graalvm.compiler.core.match.processor \
     org.graalvm.compiler.core.test \
     org.graalvm.compiler.debug.test \
     org.graalvm.compiler.graph.test \
@@ -477,10 +473,18 @@
     org.graalvm.compiler.lir.test \
     org.graalvm.compiler.loop.test \
     org.graalvm.compiler.microbenchmarks \
+    org.graalvm.compiler.nodeinfo.processor \
     org.graalvm.compiler.nodes.test \
+    org.graalvm.compiler.options.processor \
     org.graalvm.compiler.options.test \
     org.graalvm.compiler.phases.common.test \
+    org.graalvm.compiler.processor \
+    org.graalvm.compiler.replacements.jdk12.test \
+    org.graalvm.compiler.replacements.jdk9.test \
+    org.graalvm.compiler.replacements.jdk9_11.test \
+    org.graalvm.compiler.replacements.processor \
     org.graalvm.compiler.replacements.test \
+    org.graalvm.compiler.serviceprovider.processor \
     org.graalvm.compiler.test \
     org.graalvm.compiler.virtual.bench \
     org.graalvm.micro.benchmarks \
--- a/make/CompileToolsJdk.gmk	Wed Nov 14 04:59:57 2018 +0100
+++ b/make/CompileToolsJdk.gmk	Wed Nov 28 21:30:08 2018 +0100
@@ -29,6 +29,7 @@
 include MakeBase.gmk
 include JavaCompilation.gmk
 include SetupJavaCompilers.gmk
+include TextFileProcessing.gmk
 
 ################################################################################
 
@@ -87,4 +88,30 @@
 
 ################################################################################
 
+# To be able to call the javascript filter when generating man pages using
+# pandoc, we need to create this executable wrapper script.
+ifneq ($(PANDOC), )
+  # PANDOC_FILTER is duplicated for export in ToolsJdk.gmk.
+  PANDOC_FILTER := $(BUILDTOOLS_OUTPUTDIR)/manpages/pandoc-manpage-filter
+  PANDOC_FILTER_SETUP := $(BUILDTOOLS_OUTPUTDIR)/manpages/_pandoc_filter_setup.marker
+
+  # Create a usable instance of the wrapper script that calls the pandoc filter
+  # (which is written in javascript).
+  $(eval $(call SetupTextFileProcessing, CREATE_PANDOC_FILTER, \
+      SOURCE_FILES := $(TOPDIR)/make/scripts/pandoc-manpage-filter.sh.template, \
+      OUTPUT_FILE := $(PANDOC_FILTER), \
+      REPLACEMENTS := \
+          @@BOOT_JDK@@ => $(BOOT_JDK) ; \
+          @@TOPDIR@@ => $(TOPDIR) ; \
+          @@JJS_FLAGS@@ => $(addprefix -J, $(JAVA_FLAGS_SMALL)), \
+  ))
+
+  # Created script must be made executable
+  $(PANDOC_FILTER_SETUP): $(CREATE_PANDOC_FILTER)
+	$(CHMOD) a+rx $(PANDOC_FILTER)
+	$(TOUCH) $@
+
+  TARGETS += $(PANDOC_FILTER_SETUP)
+endif
+
 all: $(TARGETS)
--- a/make/Docs.gmk	Wed Nov 14 04:59:57 2018 +0100
+++ b/make/Docs.gmk	Wed Nov 28 21:30:08 2018 +0100
@@ -332,7 +332,7 @@
     $1_JAVADOC_CMD := $$(JAVA) -Djava.awt.headless=true $$($1_JAVA_ARGS) \
         $$(NEW_JAVADOC)
   else
-    $1_OPTIONS += $$(addprefix -J, $$($1_JAVA_ARGS)) 
+    $1_OPTIONS += $$(addprefix -J, $$($1_JAVA_ARGS))
   endif
 
   $1_VARDEPS := $$($1_JAVA_ARGS) $$($1_OPTIONS) $$(MODULES_SOURCE_PATH) \
@@ -466,7 +466,7 @@
 # Setup generation of the reference Java SE API documentation (javadoc + modulegraph)
 
 # The reference javadoc is just the same as javase, but using the BootJDK javadoc
-# and a stable set of javadoc options.  Typically it is used for generating 
+# and a stable set of javadoc options.  Typically it is used for generating
 # diffs between the reference javadoc and a javadoc bundle of a specific build
 # generated in the same way.
 
@@ -542,7 +542,7 @@
     $(eval SPECS_$m := $(call FindModuleSpecsDirs, $m)) \
     $(foreach d, $(SPECS_$m), \
       $(if $(filter %.md, $(call CacheFind, $d)), \
-        $(eval $m_$d_NAME := CONVERT_MARKDOWN_$m_$(strip $(call RelativePath, $d, $(TOPDIR)))) \
+        $(eval $m_$d_NAME := SPECS_TO_HTML_$m_$(strip $(call RelativePath, $d, $(TOPDIR)))) \
         $(eval $(call SetupProcessMarkdown, $($m_$d_NAME), \
             SRC := $d, \
             FILES := $(filter %.md, $(call CacheFind, $d)), \
@@ -553,6 +553,28 @@
       ) \
     ) \
   )
+
+  # For all markdown files in $module/share/man directories, convert them to
+  # html.
+  $(foreach m, $(ALL_MODULES), \
+    $(eval MAN_$m := $(call FindModuleManDirs, $m)) \
+    $(foreach d, $(MAN_$m), \
+      $(if $(filter %.md, $(call CacheFind, $d)), \
+        $(eval $m_$d_NAME := MAN_TO_HTML_$m_$(strip $(call RelativePath, $d, $(TOPDIR)))) \
+        $(eval $(call SetupProcessMarkdown, $($m_$d_NAME), \
+            SRC := $d, \
+            FILES := $(filter %.md, $(call CacheFind, $d)), \
+            DEST := $(DOCS_OUTPUTDIR)/specs/man, \
+            CSS := $(GLOBAL_SPECS_DEFAULT_CSS_FILE), \
+            REPLACEMENTS := @@VERSION_SHORT@@ => $(VERSION_SHORT), \
+        )) \
+        $(eval JDK_SPECS_TARGETS += $($($m_$d_NAME))) \
+      ) \
+    ) \
+  )
+
+  # The html generated from markdown also needs the css file
+  JDK_SPECS_TARGETS += $(COPY_GLOBAL_RESOURCES)
 endif
 
 # Special treatment for generated documentation
--- a/make/Help.gmk	Wed Nov 14 04:59:57 2018 +0100
+++ b/make/Help.gmk	Wed Nov 28 21:30:08 2018 +0100
@@ -103,6 +103,7 @@
 	$(info $(_)                        # make test TEST="jdk_lang gtest:all")
 	$(info $(_) JTREG="OPT1=x;OPT2=y"  # Control the JTREG test harness)
 	$(info $(_) GTEST="OPT1=x;OPT2=y"  # Control the GTEST test harness)
+	$(info $(_) MICRO="OPT1=x;OPT2=y"  # Control the MICRO test harness)
 	$(info $(_) TEST_OPTS="OPT1=x;..." # Generic control of all test harnesses)
 	$(info $(_) TEST_VM_OPTS="ARG ..." # Same as setting TEST_OPTS to VM_OPTIONS="ARG ...")
 	$(info )
--- a/make/Images.gmk	Wed Nov 14 04:59:57 2018 +0100
+++ b/make/Images.gmk	Wed Nov 28 21:30:08 2018 +0100
@@ -122,127 +122,6 @@
 TOOL_JDK_TARGETS := $(JDK_IMAGE_DIR)/$(JIMAGE_TARGET_FILE)
 
 ################################################################################
-# /man dir
-#
-# All variables in this section are assigned with simple =, without :, to enable
-# more selective overriding from the custom version of this file.
-#
-# Avoid evaluating this whole section on windows for speed and stability
-ifneq ($(OPENJDK_TARGET_OS), windows)
-  ifeq ($(BUILD_MANPAGES), true)
-    JRE_MAN_PAGES += \
-        java.1 \
-        jjs.1 \
-        keytool.1 \
-        orbd.1 \
-        pack200.1 \
-        rmid.1 \
-        rmiregistry.1 \
-        servertool.1 \
-        unpack200.1
-
-    JDK_MAN_PAGES += \
-        $(JRE_MAN_PAGES) \
-        idlj.1 \
-        jar.1 \
-        jarsigner.1 \
-        javac.1 \
-        javadoc.1 \
-        javap.1 \
-        jconsole.1 \
-        jcmd.1 \
-        jdb.1 \
-        jdeps.1 \
-        jinfo.1 \
-        jmap.1 \
-        jps.1 \
-        jrunscript.1 \
-        jstack.1 \
-        jstat.1 \
-        jstatd.1 \
-        rmic.1 \
-        serialver.1
-
-    # This variable is potentially overridden in the closed makefile.
-    MAN_SRC_BASEDIR ?= $(TOPDIR)/src
-
-    ifeq ($(OPENJDK_TARGET_OS), linux)
-      MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/linux/doc
-      MAN1_SUBDIR = man
-    endif
-    ifeq ($(OPENJDK_TARGET_OS), solaris)
-      MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/solaris/doc
-      MAN1_SUBDIR = sun/man/man1
-    endif
-    ifeq ($(OPENJDK_TARGET_OS), macosx)
-      MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/bsd/doc
-      MAN1_SUBDIR = man
-    endif
-
-    $(JRE_IMAGE_DIR)/man/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/%
-	$(call LogInfo, Copying $(patsubst $(OUTPUTDIR)/%,%,$@))
-	$(install-file)
-
-    $(JDK_IMAGE_DIR)/man/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/%
-	$(call LogInfo, Copying $(patsubst $(OUTPUTDIR)/%,%,$@))
-	$(install-file)
-
-    $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/%
-	$(call LogInfo, Copying $(patsubst $(OUTPUTDIR)/%,%,$@))
-	$(install-file)
-
-    $(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/%
-	$(call LogInfo, Copying $(patsubst $(OUTPUTDIR)/%,%,$@))
-	$(install-file)
-
-    ifeq ($(OPENJDK_TARGET_OS), solaris)
-      $(JRE_IMAGE_DIR)/man/ja/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/%
-	$(call LogInfo, Converting $(patsubst $(OUTPUTDIR)/%,%,$@))
-	$(install-file)
-
-      $(JDK_IMAGE_DIR)/man/ja/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/%
-	$(call LogInfo, Converting $(patsubst $(OUTPUTDIR)/%,%,$@))
-	$(install-file)
-    endif
-
-    ifneq ($(findstring $(OPENJDK_TARGET_OS), linux macosx), )
-      $(JRE_IMAGE_DIR)/man/ja:
-	$(call LogInfo, Creating $(patsubst $(OUTPUTDIR)/%,%,$@))
-	$(CD) $(@D) && $(RM) ja && $(LN) -s ja_JP.UTF-8 ja
-
-      $(JDK_IMAGE_DIR)/man/ja:
-	$(call LogInfo, Creating $(patsubst $(OUTPUTDIR)/%,%,$@))
-	$(CD) $(@D) && $(RM) ja && $(LN) -s ja_JP.UTF-8 ja
-    endif
-
-    ifeq ($(OPENJDK_TARGET_OS), solaris)
-      JRE_MAN_PAGE_LIST = $(addprefix $(JRE_IMAGE_DIR)/man/man1/, $(JRE_MAN_PAGES)) \
-          $(addprefix $(JRE_IMAGE_DIR)/man/ja/man1/, $(JRE_MAN_PAGES)) \
-          $(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JRE_MAN_PAGES)) \
-          $(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.PCK/man1/, $(JRE_MAN_PAGES))
-
-      JDK_MAN_PAGE_LIST = $(addprefix $(JDK_IMAGE_DIR)/man/man1/, $(JDK_MAN_PAGES)) \
-          $(addprefix $(JDK_IMAGE_DIR)/man/ja/man1/, $(JDK_MAN_PAGES)) \
-          $(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JDK_MAN_PAGES)) \
-          $(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.PCK/man1/, $(JDK_MAN_PAGES))
-    endif
-
-    ifneq ($(findstring $(OPENJDK_TARGET_OS), linux macosx), )
-      JRE_MAN_PAGE_LIST = $(addprefix $(JRE_IMAGE_DIR)/man/man1/, $(JRE_MAN_PAGES)) \
-          $(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JRE_MAN_PAGES)) \
-          $(JRE_IMAGE_DIR)/man/ja
-
-      JDK_MAN_PAGE_LIST = $(addprefix $(JDK_IMAGE_DIR)/man/man1/, $(JDK_MAN_PAGES)) \
-          $(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JDK_MAN_PAGES)) \
-          $(JDK_IMAGE_DIR)/man/ja
-    endif
-
-    JRE_TARGETS += $(JRE_MAN_PAGE_LIST)
-    JDK_TARGETS += $(JDK_MAN_PAGE_LIST)
-  endif # BUILD_MANPAGES
-endif # Windows
-
-################################################################################
 # src.zip
 
 $(JDK_IMAGE_DIR)/lib/src.zip: $(SUPPORT_OUTPUTDIR)/src.zip
--- a/make/InitSupport.gmk	Wed Nov 14 04:59:57 2018 +0100
+++ b/make/InitSupport.gmk	Wed Nov 28 21:30:08 2018 +0100
@@ -50,7 +50,7 @@
 
   # Make control variables, handled by Init.gmk
   INIT_CONTROL_VARIABLES += LOG CONF CONF_NAME SPEC JOBS TEST_JOBS CONF_CHECK \
-      COMPARE_BUILD JTREG GTEST TEST_OPTS TEST_VM_OPTS
+      COMPARE_BUILD JTREG GTEST MICRO TEST_OPTS TEST_VM_OPTS
 
   # All known make control variables
   MAKE_CONTROL_VARIABLES := $(INIT_CONTROL_VARIABLES) TEST JDK_FILTER
@@ -264,9 +264,13 @@
       endif
     endif
 
+    # The --no-print-directory is needed to make the call from
+    # FindTest.gmk to Test.gmk work with LOG=debug/trace. See
+    # JDK-8213736
     $$(main_targets_file):
 	@( cd $$(topdir) && \
-	$$(MAKE) $$(MAKE_LOG_FLAGS) -r -R -f $$(topdir)/make/Main.gmk \
+	$$(MAKE) $$(MAKE_LOG_FLAGS) -r -R --no-print-directory \
+	    -f $$(topdir)/make/Main.gmk \
 	    -I $$(topdir)/make/common SPEC=$(strip $2) NO_RECIPES=true \
 	    $$(MAKE_LOG_VARS) \
 	    create-main-targets-include )
--- a/make/Main.gmk	Wed Nov 14 04:59:57 2018 +0100
+++ b/make/Main.gmk	Wed Nov 28 21:30:08 2018 +0100
@@ -493,7 +493,7 @@
 ALL_TARGETS += $(ALL_TEST_TARGETS) $(ALL_EXPLODED_TEST_TARGETS)
 
 ################################################################################
-# Build tests
+# Build tests and microbenchmarks
 #
 
 prepare-test-image:
@@ -543,11 +543,15 @@
 	     -f BuildFailureHandler.gmk images)
 endif
 
+build-microbenchmark:
+	+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f test/BuildMicrobenchmark.gmk)
+
 ALL_TARGETS += prepare-test-image build-test-hotspot-jtreg-native \
     test-image-hotspot-jtreg-native build-test-jdk-jtreg-native \
     test-image-jdk-jtreg-native build-test-lib build-test-failure-handler \
     test-failure-handler test-image-failure-handler test-image-hotspot-gtest \
-    test-image-hotspot-jtreg-graal build-test-hotspot-jtreg-graal
+    test-image-hotspot-jtreg-graal build-test-hotspot-jtreg-graal \
+    build-microbenchmark
 
 ################################################################################
 # Run tests
@@ -789,6 +793,8 @@
 
   jrtfs-jar: interim-langtools
 
+  build-microbenchmark: interim-langtools exploded-image
+
   ifeq ($(ENABLE_GENERATE_CLASSLIST), true)
     ifeq ($(CREATE_BUILDJDK), true)
       # If creating a buildjdk, the interim image needs to be based on that.
@@ -1023,6 +1029,10 @@
     test-image-jdk-jtreg-native test-image-failure-handler \
     test-image-demos-jdk $(JVM_TEST_IMAGE_TARGETS)
 
+ifneq ($(JMH_CORE_JAR), )
+  test-image: build-microbenchmark
+endif
+
 ################################################################################
 
 # all-images builds all our deliverables as images.
--- a/make/ModuleWrapper.gmk	Wed Nov 14 04:59:57 2018 +0100
+++ b/make/ModuleWrapper.gmk	Wed Nov 28 21:30:08 2018 +0100
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2014, 2018, 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
@@ -93,6 +93,12 @@
     FILES := $(filter $(SUPPORT_OUTPUTDIR)/modules_cmds/$(MODULE)/%, $(TARGETS)), \
 ))
 
+$(eval $(call SetupCopyFiles, COPY_MAN, \
+    SRC := $(SUPPORT_OUTPUTDIR)/modules_man/$(MODULE), \
+    DEST := $(JDK_OUTPUTDIR)/man, \
+    FILES := $(filter $(SUPPORT_OUTPUTDIR)/modules_man/$(MODULE)/%, $(TARGETS)), \
+))
+
 $(eval $(call SetupCopyFiles, COPY_CONF, \
     SRC := $(SUPPORT_OUTPUTDIR)/modules_conf/$(MODULE), \
     DEST := $(JDK_OUTPUTDIR)/conf, \
@@ -104,5 +110,5 @@
   all: $(filter $(MAKESUPPORT_OUTPUTDIR)/compile-commands/%, $(TARGETS))
 else
   all: $(TARGETS) $(COPY_LIBS_TO_BIN) $(COPY_LIBS_TO_LIB) \
-      $(COPY_INCLUDE) $(COPY_CMDS) $(COPY_CONF) $(LINK_LIBS_TO_LIB)
+      $(COPY_INCLUDE) $(COPY_CMDS) $(COPY_MAN) $(COPY_CONF) $(LINK_LIBS_TO_LIB)
 endif
--- a/make/RunTests.gmk	Wed Nov 14 04:59:57 2018 +0100
+++ b/make/RunTests.gmk	Wed Nov 28 21:30:08 2018 +0100
@@ -203,11 +203,23 @@
 TEST_JOBS_FACTOR_MACHINE ?= 1
 
 ifeq ($(TEST_JOBS), 0)
-  # Concurrency based on min(cores / 2, 12) * TEST_JOBS_FACTOR
+  CORES_DIVIDER := 2
+  ifeq ($(OPENJDK_TARGET_CPU_ARCH), sparc)
+    # For smaller SPARC machines we see reasonable scaling of throughput up to
+    # cpus/4 without affecting test reliability. On the bigger machines, cpus/4
+    # causes intermittent timeouts.
+    ifeq ($(shell $(EXPR) $(NUM_CORES) \> 16), 1)
+      CORES_DIVIDER := 5
+    else
+      CORES_DIVIDER := 4
+    endif
+  endif
+  MEMORY_DIVIDER := 2048
   TEST_JOBS := $(shell $(AWK) \
     'BEGIN { \
-      c = $(NUM_CORES) / 2; \
-      if (c > 12) c = 12; \
+      c = $(NUM_CORES) / $(CORES_DIVIDER); \
+      m = $(MEMORY_SIZE) / $(MEMORY_DIVIDER); \
+      if (c > m) c = m; \
       c = c * $(TEST_JOBS_FACTOR); \
       c = c * $(TEST_JOBS_FACTOR_JDL); \
       c = c * $(TEST_JOBS_FACTOR_MACHINE); \
@@ -225,13 +237,11 @@
   $(info Running tests using TEST_OPTS control variable '$(TEST_OPTS)')
 endif
 
+### Jtreg
+
 $(eval $(call SetTestOpt,VM_OPTIONS,JTREG))
 $(eval $(call SetTestOpt,JAVA_OPTIONS,JTREG))
-$(eval $(call SetTestOpt,VM_OPTIONS,GTEST))
-$(eval $(call SetTestOpt,JAVA_OPTIONS,GTEST))
-
 $(eval $(call SetTestOpt,AOT_MODULES,JTREG))
-$(eval $(call SetTestOpt,AOT_MODULES,GTEST))
 
 $(eval $(call SetTestOpt,JOBS,JTREG))
 $(eval $(call SetTestOpt,TIMEOUT_FACTOR,JTREG))
@@ -247,6 +257,12 @@
   $(info Running tests using JTREG control variable '$(JTREG)')
 endif
 
+### Gtest
+
+$(eval $(call SetTestOpt,VM_OPTIONS,GTEST))
+$(eval $(call SetTestOpt,JAVA_OPTIONS,GTEST))
+$(eval $(call SetTestOpt,AOT_MODULES,GTEST))
+
 $(eval $(call ParseKeywordVariable, GTEST, \
     SINGLE_KEYWORDS := REPEAT AOT_MODULES, \
     STRING_KEYWORDS := OPTIONS VM_OPTIONS JAVA_OPTIONS, \
@@ -257,6 +273,21 @@
   $(info Running tests using GTEST control variable '$(GTEST)')
 endif
 
+### Microbenchmarks
+
+$(eval $(call SetTestOpt,VM_OPTIONS,MICRO))
+$(eval $(call SetTestOpt,JAVA_OPTIONS,MICRO))
+
+$(eval $(call ParseKeywordVariable, MICRO, \
+    SINGLE_KEYWORDS := ITER FORK TIME WARMUP_ITER WARMUP_TIME, \
+    STRING_KEYWORDS := OPTIONS JAVA_OPTIONS VM_OPTIONS RESULTS_FORMAT TEST_JDK BENCHMARKS_JAR, \
+))
+
+ifneq ($(MICRO), )
+  # Inform the user
+  $(info Running tests using MICRO control variable '$(MICRO)')
+endif
+
 
 ################################################################################
 # Component-specific Jtreg settings
@@ -313,6 +344,24 @@
   )
 endef
 
+# Helper function to determine if a test specification is a microbenchmark test
+#
+# It is a microbenchmark test if it is either "micro", or "micro:" followed by an optional
+# test filter string.
+define ParseMicroTestSelection
+  $(if $(filter micro%, $1), \
+    $(if $(filter micro, $1), \
+      micro:all \
+    , \
+      $(if $(filter micro:, $1), \
+        micro:all \
+      , \
+        $1 \
+      ) \
+    ) \
+  )
+endef
+
 # Helper function that removes the TOPDIR part
 CleanupJtregPath = \
   $(strip $(patsubst %/, %, $(subst $(JTREG_TOPDIR)/,, $1)))
@@ -426,6 +475,9 @@
     $(eval PARSED_TESTS += $(call ParseGtestTestSelection, $(test))) \
   ) \
   $(if $(strip $(PARSED_TESTS)), , \
+    $(eval PARSED_TESTS += $(call ParseMicroTestSelection, $(test))) \
+  ) \
+  $(if $(strip $(PARSED_TESTS)), , \
     $(eval PARSED_TESTS += $(call ParseJtregTestSelection, $(test))) \
   ) \
   $(if $(strip $(PARSED_TESTS)), , \
@@ -548,6 +600,113 @@
 
 ################################################################################
 
+### Rules for Microbenchmarks
+
+# Helper function for SetupRunMicroTest. Set a MICRO_* variable from, in order:
+# 1) Specified by user on command line
+# 2) Generic default
+#
+# Note: No spaces are allowed around the arguments.
+# Arg $1 The test ID (i.e. $1 in SetupRunMicroTest)
+# Arg $2 Base variable, e.g. MICRO_TEST_JDK
+# Arg $3 The default value (optional)
+define SetMicroValue
+  ifneq ($$($2), )
+    $1_$2 := $$($2)
+  else
+    ifneq ($3, )
+      $1_$2 := $3
+    endif
+  endif
+endef
+
+SetupRunMicroTest = $(NamedParamsMacroTemplate)
+define SetupRunMicroTestBody
+  $1_TEST_RESULTS_DIR := $$(TEST_RESULTS_DIR)/$1
+  $1_TEST_SUPPORT_DIR := $$(TEST_SUPPORT_DIR)/$1
+  $1_EXITCODE := $$($1_TEST_RESULTS_DIR)/exitcode.txt
+
+  $1_TEST_NAME := $$(strip $$(patsubst micro:%, %, $$($1_TEST)))
+
+  $$(eval $$(call SetMicroValue,$1,MICRO_BENCHMARKS_JAR,$$(TEST_IMAGE_DIR)/micro/benchmarks.jar))
+  $$(eval $$(call SetMicroValue,$1,MICRO_TEST_JDK,$$(JDK_IMAGE_DIR)))
+  $$(eval $$(call SetMicroValue,$1,MICRO_JAVA_OPTIONS))
+
+  # Current tests needs to open java.io
+  $1_MICRO_JAVA_OPTIONS += --add-opens=java.base/java.io=ALL-UNNAMED
+
+  # Save output as JSON or CSV file
+  ifneq ($$(MICRO_RESULTS_FORMAT), )
+    $1_MICRO_BASIC_OPTIONS += -rf $$(MICRO_RESULTS_FORMAT) -rff $$($1_TEST_RESULTS_DIR)/jmh-result.$(MICRO_RESULTS_FORMAT)
+  endif
+
+  ifneq ($$(MICRO_VM_OPTIONS)$$(MICRO_JAVA_OPTIONS), )
+    $1_MICRO_VM_OPTIONS := -jvmArgs $$(MICRO_VM_OPTIONS) $$(MICRO_JAVA_OPTIONS)
+  endif
+
+  ifneq ($$(MICRO_ITER), )
+    $1_MICRO_ITER := -i $$(MICRO_ITER)
+  endif
+  ifneq ($$(MICRO_FORK), )
+    $1_MICRO_FORK := -f $$(MICRO_FORK)
+  endif
+  ifneq ($$(MICRO_TIME), )
+    $1_MICRO_TIME := -r $$(MICRO_TIME)
+  endif
+  ifneq ($$(MICRO_WARMUP_ITER), )
+    $1_MICRO_WARMUP_ITER := -wi $$(MICRO_WARMUP_ITER)
+  endif
+  ifneq ($$(MICRO_WARMUP_TIME), )
+    $1_MICRO_WARMUP_TIME := -w $$(MICRO_WARMUP_TIME)
+  endif
+
+  run-test-$1:
+	$$(call LogWarn)
+	$$(call LogWarn, Running test '$$($1_TEST)')
+	$$(call MakeDir, $$($1_TEST_RESULTS_DIR) $$($1_TEST_SUPPORT_DIR))
+	$$(call ExecuteWithLog, $$($1_TEST_SUPPORT_DIR)/micro, \
+	    $$($1_MICRO_TEST_JDK)/bin/java $$($1_MICRO_JAVA_OPTIONS) -jar $$($1_MICRO_BENCHMARKS_JAR) \
+	        $$($1_MICRO_ITER) $$($1_MICRO_FORK) $$($1_MICRO_TIME) \
+	        $$($1_MICRO_WARMUP_ITER) $$($1_MICRO_WARMUP_TIME) \
+	        $$($1_MICRO_VM_OPTIONS) $$($1_MICRO_BASIC_OPTIONS) $$(MICRO_OPTIONS)  \
+	        $$($1_TEST_NAME) \
+	        > >($(TEE) $$($1_TEST_RESULTS_DIR)/micro.txt) \
+	    && $$(ECHO) $$$$? > $$($1_EXITCODE) \
+	    || $$(ECHO) $$$$? > $$($1_EXITCODE) \
+	)
+
+  $1_RESULT_FILE := $$($1_TEST_RESULTS_DIR)/micro.txt
+
+  parse-test-$1: run-test-$1
+	$$(call LogWarn, Finished running test '$$($1_TEST)')
+	$$(call LogWarn, Test report is stored in $$(strip \
+	    $$(subst $$(TOPDIR)/, , $$($1_TEST_RESULTS_DIR))))
+	$$(if $$(wildcard $$($1_EXITCODE)), \
+	  $$(eval $1_EXIT_CODE := $$(shell $$(CAT) $$($1_EXITCODE))) \
+	  $$(if $$(filter 0, $$($1_EXIT_CODE)), \
+	    $$(eval $1_PASSED := 1) \
+	    $$(eval $1_ERROR := 0) \
+	  , \
+	    $$(eval $1_PASSED := 0) \
+	    $$(eval $1_ERROR := 1) \
+	  ) \
+	  $$(eval $1_FAILED := 0) \
+	  $$(eval $1_TOTAL := $$(shell \
+	      $$(EXPR) $$($1_PASSED) + $$($1_ERROR))) \
+	, \
+	  $$(eval $1_PASSED := 0) \
+	  $$(eval $1_FAILED := 0) \
+	  $$(eval $1_ERROR := 1) \
+	  $$(eval $1_TOTAL := 1) \
+	)
+
+  $1: run-test-$1 parse-test-$1
+
+  TARGETS += $1
+endef
+
+################################################################################
+
 ### Rules for Jtreg
 
 # Helper function for SetupRunJtregTest. Set a JTREG_* variable from, in order:
@@ -621,7 +780,12 @@
   # we may end up with a lot of JVM's
   $1_JTREG_MAX_RAM_PERCENTAGE := $$(shell $$(EXPR) 25 / $$($1_JTREG_JOBS))
 
-  JTREG_TIMEOUT_FACTOR ?= 4
+  # SPARC is in general slower per core so need to scale up timeouts a bit.
+  ifeq ($(OPENJDK_TARGET_CPU_ARCH), sparc)
+    JTREG_TIMEOUT_FACTOR ?= 8
+  else
+    JTREG_TIMEOUT_FACTOR ?= 4
+  endif
   JTREG_VERBOSE ?= fail,error,summary
   JTREG_RETAIN ?= fail,error
 
@@ -832,6 +996,9 @@
 UseGtestTestHandler = \
   $(if $(filter gtest:%, $1), true)
 
+UseMicroTestHandler = \
+  $(if $(filter micro:%, $1), true)
+
 UseJtregTestHandler = \
   $(if $(filter jtreg:%, $1), true)
 
@@ -853,6 +1020,11 @@
         TEST := $(test), \
     )) \
   ) \
+  $(if $(call UseMicroTestHandler, $(test)), \
+    $(eval $(call SetupRunMicroTest, $(TEST_ID), \
+        TEST := $(test), \
+    )) \
+  ) \
   $(if $(call UseJtregTestHandler, $(test)), \
     $(eval $(call SetupRunJtregTest, $(TEST_ID), \
         TEST := $(test), \
--- a/make/RunTestsPrebuilt.gmk	Wed Nov 14 04:59:57 2018 +0100
+++ b/make/RunTestsPrebuilt.gmk	Wed Nov 28 21:30:08 2018 +0100
@@ -95,12 +95,12 @@
 # $1: The output file name
 # $2..$N: The lines to output to the file
 define CreateNewSpec
-  $(if $(strip $(30)), \
+  $(if $(strip $(31)), \
     $(error Internal makefile error: \
       Too many arguments to macro, please update CreateNewSpec in RunTestsPrebuilt.gmk) \
   ) \
   $(shell $(RM) $1) \
-  $(foreach i, $(call sequence, 2, 29), \
+  $(foreach i, $(call sequence, 2, 30), \
     $(if $(strip $($i)), \
       $(call AppendFile, $(strip $($i)), $1) \
     ) \
@@ -220,20 +220,35 @@
   PATH_SEP:=:
 endif
 
-# Check number of cores
+# Check number of cores and memory in MB
 ifeq ($(OPENJDK_TARGET_OS), linux)
   NUM_CORES := $(shell $(CAT) /proc/cpuinfo  | $(GREP) -c processor)
+  MEMORY_SIZE := $(shell \
+      $(EXPR) `$(CAT) /proc/meminfo | $(GREP) MemTotal | $(AWK) '{print $$2}'` / 1024 \
+  )
 else ifeq ($(OPENJDK_TARGET_OS), macosx)
   NUM_CORES := $(shell /usr/sbin/sysctl -n hw.ncpu)
+  MEMORY_SIZE := $(shell $(EXPR) `/usr/sbin/sysctl -n hw.memsize` / 1024 / 1024)
 else ifeq ($(OPENJDK_TARGET_OS), solaris)
   NUM_CORES := $(shell LC_MESSAGES=C /usr/sbin/psrinfo -v | $(GREP) -c on-line)
+  MEMORY_SIZE := $(shell \
+      /usr/sbin/prtconf 2> /dev/null | $(GREP) "^Memory [Ss]ize" | $(AWK) '{print $$3}' \
+  )
 else ifeq ($(OPENJDK_TARGET_OS), windows)
   NUM_CORES := $(NUMBER_OF_PROCESSORS)
+  MEMORY_SIZE := $(shell \
+      $(EXPR) `wmic computersystem get totalphysicalmemory -value | $(GREP) = \
+          | $(CUT) -d "=" -f 2-` / 1024 / 1024 \
+  )
 endif
 ifeq ($(NUM_CORES), )
   $(warn Could not find number of CPUs, assuming 1)
   NUM_CORES := 1
 endif
+ifeq ($(MEMORY_SIZE), )
+  $(warn Could not find memory size, assuming 1024 MB)
+  MEMORY_SIZE := 1024
+endif
 
 # Setup LD for AOT support
 ifneq ($(DEVKIT_HOME), )
@@ -298,6 +313,7 @@
     OPENJDK_TARGET_CPU_BITS := $(OPENJDK_TARGET_CPU_BITS), \
     OPENJDK_TARGET_CPU_ENDIAN := $(OPENJDK_TARGET_CPU_ENDIAN), \
     NUM_CORES := $(NUM_CORES), \
+    MEMORY_SIZE := $(MEMORY_SIZE), \
     LD := $(LD), \
     LIBRARY_PREFIX := $(LIBRARY_PREFIX), \
     SHARED_LIBRARY_SUFFIX := $(SHARED_LIBRARY_SUFFIX), \
--- a/make/ToolsJdk.gmk	Wed Nov 14 04:59:57 2018 +0100
+++ b/make/ToolsJdk.gmk	Wed Nov 28 21:30:08 2018 +0100
@@ -116,4 +116,10 @@
 
 ##########################################################################################
 
+# Executable javascript filter for man page generation using pandoc.
+
+PANDOC_FILTER := $(BUILDTOOLS_OUTPUTDIR)/manpages/pandoc-manpage-filter
+
+##########################################################################################
+
 endif # _TOOLS_GMK
--- a/make/autoconf/configure.ac	Wed Nov 14 04:59:57 2018 +0100
+++ b/make/autoconf/configure.ac	Wed Nov 28 21:30:08 2018 +0100
@@ -180,6 +180,9 @@
 # Setup the JTReg Regression Test Harness.
 TOOLCHAIN_SETUP_JTREG
 
+# Setup the Java Microbenchmark Harness (JMH)
+LIB_TESTS_SETUP_JMH
+
 # Setup Jib dependency tool
 TOOLCHAIN_SETUP_JIB
 
--- a/make/autoconf/help.m4	Wed Nov 14 04:59:57 2018 +0100
+++ b/make/autoconf/help.m4	Wed Nov 28 21:30:08 2018 +0100
@@ -102,7 +102,7 @@
     ffi)
       PKGHANDLER_COMMAND="sudo apt-get install libffi-dev" ;;
     x11)
-      PKGHANDLER_COMMAND="sudo apt-get install libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev" ;;
+      PKGHANDLER_COMMAND="sudo apt-get install libx11-dev libxext-dev libxrender-dev libxrandr-dev libxtst-dev libxt-dev" ;;
     ccache)
       PKGHANDLER_COMMAND="sudo apt-get install ccache" ;;
     dtrace)
@@ -125,7 +125,7 @@
     freetype)
       PKGHANDLER_COMMAND="sudo yum install freetype-devel" ;;
     x11)
-      PKGHANDLER_COMMAND="sudo yum install libXtst-devel libXt-devel libXrender-devel libXi-devel" ;;
+      PKGHANDLER_COMMAND="sudo yum install libXtst-devel libXt-devel libXrender-devel libXrandr-devel libXi-devel" ;;
     ccache)
       PKGHANDLER_COMMAND="sudo yum install ccache" ;;
   esac
--- a/make/autoconf/jdk-options.m4	Wed Nov 14 04:59:57 2018 +0100
+++ b/make/autoconf/jdk-options.m4	Wed Nov 28 21:30:08 2018 +0100
@@ -587,10 +587,10 @@
 AC_DEFUN([JDKOPT_ENABLE_DISABLE_MANPAGES],
 [
   AC_ARG_ENABLE([manpages], [AS_HELP_STRING([--disable-manpages],
-      [Set to disable building of man pages @<:@enabled@:>@])])
+      [Set to disable copy of static man pages @<:@enabled@:>@])])
 
   BUILD_MANPAGES="true"
-  AC_MSG_CHECKING([if man pages should be built])
+  AC_MSG_CHECKING([if static man pages should be copied])
   if test "x$enable_manpages" = "x"; then
     AC_MSG_RESULT([yes])
   elif test "x$enable_manpages" = "xyes"; then
--- a/make/autoconf/lib-tests.m4	Wed Nov 14 04:59:57 2018 +0100
+++ b/make/autoconf/lib-tests.m4	Wed Nov 28 21:30:08 2018 +0100
@@ -55,3 +55,65 @@
   AC_SUBST(GRAALUNIT_LIB)
 ])
 
+###############################################################################
+#
+# Setup and check the Java Microbenchmark Harness
+#
+AC_DEFUN_ONCE([LIB_TESTS_SETUP_JMH],
+[
+  AC_ARG_WITH(jmh, [AS_HELP_STRING([--with-jmh],
+      [Java Microbenchmark Harness for building the OpenJDK Microbenchmark Suite])])
+
+  AC_MSG_CHECKING([for jmh (Java Microbenchmark Harness)])
+  if test "x$with_jmh" = xno || test "x$with_jmh" = x; then
+    AC_MSG_RESULT([no, disabled])
+  elif test "x$with_jmh" = xyes; then
+    AC_MSG_RESULT([no, error])
+    AC_MSG_ERROR([--with-jmh requires a directory containing all jars needed by JMH])
+  else
+    # Path specified
+    JMH_HOME="$with_jmh"
+    if test ! -d [$JMH_HOME]; then
+      AC_MSG_RESULT([no, error])
+      AC_MSG_ERROR([$JMH_HOME does not exist or is not a directory])
+    fi
+    BASIC_FIXUP_PATH([JMH_HOME])
+
+    jar_names="jmh-core jmh-generator-annprocess jopt-simple commons-math3"
+    for jar in $jar_names; do
+      found_jar_files=$($ECHO $(ls $JMH_HOME/$jar-*.jar 2> /dev/null))
+
+      if test "x$found_jar_files" = x; then
+        AC_MSG_RESULT([no])
+        AC_MSG_ERROR([--with-jmh does not contain $jar-*.jar])
+      elif ! test -e "$found_jar_files"; then
+        AC_MSG_RESULT([no])
+        AC_MSG_ERROR([--with-jmh contain multiple $jar-*.jar: $found_jar_files])
+      fi
+
+      found_jar_var_name=found_${jar//-/_}
+      eval $found_jar_var_name='"'$found_jar_files'"'
+    done
+    AC_MSG_RESULT([yes])
+
+    JMH_CORE_JAR=$found_jmh_core
+    JMH_GENERATOR_JAR=$found_jmh_generator_annprocess
+    JMH_JOPT_SIMPLE_JAR=$found_jopt_simple
+    JMH_COMMONS_MATH_JAR=$found_commons_math3
+
+
+    if [ [[ "$JMH_CORE_JAR" =~ jmh-core-(.*)\.jar$ ]] ] ; then
+      JMH_VERSION=${BASH_REMATCH[[1]]}
+    else
+      JMH_VERSION=unknown
+    fi
+
+    AC_MSG_NOTICE([JMH core version: $JMH_VERSION])
+  fi
+
+  AC_SUBST(JMH_CORE_JAR)
+  AC_SUBST(JMH_GENERATOR_JAR)
+  AC_SUBST(JMH_JOPT_SIMPLE_JAR)
+  AC_SUBST(JMH_COMMONS_MATH_JAR)
+  AC_SUBST(JMH_VERSION)
+])
--- a/make/autoconf/lib-x11.m4	Wed Nov 14 04:59:57 2018 +0100
+++ b/make/autoconf/lib-x11.m4	Wed Nov 28 21:30:08 2018 +0100
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2018, 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
@@ -99,8 +99,16 @@
     OLD_CFLAGS="$CFLAGS"
     CFLAGS="$CFLAGS $SYSROOT_CFLAGS $X_CFLAGS"
 
+    HEADERS_TO_CHECK="X11/extensions/shape.h X11/extensions/Xrender.h X11/extensions/XTest.h X11/Intrinsic.h"
+    # There is no Xrandr extension on AIX
+    if test "x$OPENJDK_TARGET_OS" = xaix; then
+      X_CFLAGS="$X_CFLAGS -DNO_XRANDR"
+    else
+      HEADERS_TO_CHECK="$HEADERS_TO_CHECK X11/extensions/Xrandr.h"
+    fi
+
     # Need to include Xlib.h and Xutil.h to avoid "present but cannot be compiled" warnings on Solaris 10
-    AC_CHECK_HEADERS([X11/extensions/shape.h X11/extensions/Xrender.h X11/extensions/XTest.h X11/Intrinsic.h],
+    AC_CHECK_HEADERS([$HEADERS_TO_CHECK],
         [X11_HEADERS_OK=yes],
         [X11_HEADERS_OK=no; break],
         [
@@ -111,7 +119,7 @@
 
     if test "x$X11_HEADERS_OK" = xno; then
       HELP_MSG_MISSING_DEPENDENCY([x11])
-      AC_MSG_ERROR([Could not find all X11 headers (shape.h Xrender.h XTest.h Intrinsic.h). $HELP_MSG])
+      AC_MSG_ERROR([Could not find all X11 headers (shape.h Xrender.h Xrander.h XTest.h Intrinsic.h). $HELP_MSG])
     fi
 
     # If XLinearGradient isn't available in Xrender.h, signal that it needs to be
--- a/make/autoconf/spec.gmk.in	Wed Nov 14 04:59:57 2018 +0100
+++ b/make/autoconf/spec.gmk.in	Wed Nov 28 21:30:08 2018 +0100
@@ -355,6 +355,12 @@
 LIBFFI_LIB_FILE:=@LIBFFI_LIB_FILE@
 GRAALUNIT_LIB := @GRAALUNIT_LIB@
 
+JMH_CORE_JAR := @JMH_CORE_JAR@
+JMH_GENERATOR_JAR := @JMH_GENERATOR_JAR@
+JMH_JOPT_SIMPLE_JAR := @JMH_JOPT_SIMPLE_JAR@
+JMH_COMMONS_MATH_JAR := @JMH_COMMONS_MATH_JAR@
+JMH_VERSION := @JMH_VERSION@
+
 # Source file for cacerts
 CACERTS_FILE=@CACERTS_FILE@
 
--- a/make/common/FindTests.gmk	Wed Nov 14 04:59:57 2018 +0100
+++ b/make/common/FindTests.gmk	Wed Nov 28 21:30:08 2018 +0100
@@ -72,6 +72,9 @@
 # Add Gtest
 ALL_NAMED_TESTS += gtest
 
+# Add microbenchmarks
+ALL_NAMED_TESTS += micro
+
 # Find make test targets
 MAKE_TEST_TARGETS := $(shell $(MAKE) -s --no-print-directory $(MAKE_ARGS) \
     SPEC=$(SPEC) -f $(TOPDIR)/test/make/TestMake.gmk print-targets)
--- a/make/common/JarArchive.gmk	Wed Nov 14 04:59:57 2018 +0100
+++ b/make/common/JarArchive.gmk	Wed Nov 28 21:30:08 2018 +0100
@@ -43,6 +43,7 @@
 #       For this to work, the source files must exist when the makefile is
 #       parsed.
 #   SRCS:=List of directories in where to find files to add to archive
+#   BIN:=Directory where to store build control files
 #   SUFFIXES:=File suffixes to include in jar
 #   INCLUDES:=List of directories/packages in SRCS that should be included
 #   EXCLUDES:=List of directories/packages in SRCS that should be excluded
@@ -62,10 +63,11 @@
 
   $1_JARMAIN:=$(strip $$($1_JARMAIN))
   $1_JARNAME:=$$(notdir $$($1_JAR))
-  $1_MANIFEST_FILE:=$$(dir $$($1_JAR))_the.$$($1_JARNAME)_manifest
-  $1_DELETESS_FILE:=$$(dir $$($1_JAR))_the.$$($1_JARNAME)_deletess
-  $1_DELETES_FILE:=$$(dir $$($1_JAR))_the.$$($1_JARNAME)_deletes
-  $1_BIN:=$$(dir $$($1_JAR))
+  $1_JAR_OUTPUT_DIR := $$(patsubst %/, %, $$(dir $$($1_JAR)))
+  $$(call SetIfEmpty, $1_BIN, $$($1_JAR_OUTPUT_DIR))
+  $1_MANIFEST_FILE:=$$($1_BIN)/_the.$$($1_JARNAME)_manifest
+  $1_DELETESS_FILE:=$$($1_BIN)/_the.$$($1_JARNAME)_deletess
+  $1_DELETES_FILE:=$$($1_BIN)/_the.$$($1_JARNAME)_deletes
   $$(call SetIfEmpty, $1_JAR_CMD, $$(JAR))
 
   ifeq (,$$($1_SUFFIXES))
@@ -231,11 +233,12 @@
   $1_VARDEPS := $$($1_JAR_CMD) $$($1_JAR_CREATE_OPTIONS) $$($1_MANIFEST) \
       $$($1_JARMAIN) $$($1_EXTRA_MANIFEST_ATTR) $$($1_ORIG_DEPS) $$($1_SRCS) \
       $$($1_INCLUDES) $$($1_EXCLUDES) $$($1_EXCLUDE_FILES) $$($1_EXTRA_FILES)
-  $1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, $$(dir $$($1_JAR))_the.$$($1_JARNAME).vardeps)
+  $1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, $$($1_BIN)/_the.$$($1_JARNAME).vardeps)
 
   # Here is the rule that creates/updates the jar file.
   $$($1_JAR) : $$($1_DEPENDENCIES) $$($1_MANIFEST) $$($1_VARDEPS_FILE)
 	$$(call MakeTargetDir)
+	$$(call MakeDir, $$($1_BIN))
 	$$($1_GREP_INCLUDE_OUTPUT)
 	$$($1_GREP_EXCLUDE_OUTPUT)
         # If the vardeps file is part of the newer prereq list, it means that
--- a/make/common/Modules.gmk	Wed Nov 14 04:59:57 2018 +0100
+++ b/make/common/Modules.gmk	Wed Nov 28 21:30:08 2018 +0100
@@ -247,6 +247,8 @@
 
 SPEC_SUBDIRS += share/specs
 
+MAN_SUBDIRS += share/man
+
 # Find all module-info.java files for the current build target platform and
 # configuration.
 # Param 1 - Module to find for, set to * for finding all
@@ -305,6 +307,12 @@
     $(strip $(wildcard \
         $(foreach sub, $(SPEC_SUBDIRS), $(addsuffix /$(strip $1)/$(sub), $(TOP_SRC_DIRS)))))
 
+# Find all man dirs for a particular module
+# $1 - Module to find man dirs for
+FindModuleManDirs = \
+    $(strip $(wildcard \
+        $(foreach sub, $(MAN_SUBDIRS), $(addsuffix /$(strip $1)/$(sub), $(TOP_SRC_DIRS)))))
+
 # Construct the complete module source path
 GetModuleSrcPath = \
     $(call PathList, \
--- a/make/common/ProcessMarkdown.gmk	Wed Nov 14 04:59:57 2018 +0100
+++ b/make/common/ProcessMarkdown.gmk	Wed Nov 28 21:30:08 2018 +0100
@@ -1,4 +1,4 @@
-# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2017, 2018, 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
@@ -26,12 +26,36 @@
   $(error You must include MakeBase.gmk prior to including ProcessMarkdown.gmk)
 endif
 
+include TextFileProcessing.gmk
+
 # Helper function for SetupProcessMarkdown
 # $1: The $1 from SetupProcessMarkdown
-# $2: The name of the current source file, relative to $1_SRC
+# $2: The name of the current source file, relative to the dir given in $3
+# $3: The directory of the current source file
 define ProcessMarkdown
-  $1_$2_OUTPUT_FILE := $$($1_DEST)/$$(basename $2).html
+  $1_$2_OUTPUT_FILE := $$($1_DEST)/$$(basename $2)$$($1_FILE_EXT)
   $1_$2_TARGET_DIR := $$(dir $$($1_$2_OUTPUT_FILE))
+  $1_$2_INPUT_FILE := $3/$2
+  $1_$2_MARKER := $$(subst /,_,$1_$2)
+
+  ifneq ($$($1_REPLACEMENTS), )
+    $1_$2_PANDOC_INPUT := $$(SUPPORT_OUTPUTDIR)/markdown/$$($1_$2_MARKER)_pre.tmp
+
+    $$(eval $$(call SetupTextFileProcessing, $1_$2_PREPROCESSED, \
+        SOURCE_FILES := $$($1_$2_INPUT_FILE), \
+        OUTPUT_FILE := $$($1_$2_PANDOC_INPUT), \
+        REPLACEMENTS := $$($1_REPLACEMENTS), \
+    ))
+  else
+    $1_$2_PANDOC_INPUT := $$($1_$2_INPUT_FILE)
+  endif
+
+  ifneq ($$($1_POST_PROCESS), )
+    $1_$2_PANDOC_OUTPUT := $$(SUPPORT_OUTPUTDIR)/markdown/$$($1_$2_MARKER)_post.tmp
+  else
+    $1_$2_PANDOC_OUTPUT := $$($1_$2_OUTPUT_FILE)
+  endif
+
   ifneq ($$($1_CSS), )
     ifneq ($$(findstring http:/, $$($1_CSS)), )
       $1_$2_CSS_OPTION := --css '$$($1_CSS)'
@@ -40,28 +64,44 @@
       $1_$2_CSS_OPTION := --css '$$($1_$2_CSS)'
     endif
   endif
-  $1_$2_OPTIONS = $$(shell $$(GREP) _pandoc-options_: $$($1_SRC)/$2 | $$(CUT) -d : -f 2-)
-  $1_$2_MARKER := $$(subst /,_,$1_$2)
 
-  $1_$2_VARDEPS := $$($1_OPTIONS) $$($1_CSS)
+  $1_$2_OPTIONS := $$(shell $$(GREP) _pandoc-options_: $3/$2 | $$(CUT) -d : -f 2-)
+
+  ifneq ($$($1_FILTER), )
+    $1_$2_OPTIONS += --filter $$($1_FILTER)
+  endif
+
+  $1_$2_VARDEPS := $$($1_OPTIONS) $$($1_$2_OPTIONS) $$($1_CSS) \
+      $$($1_REPLACEMENTS) $$($1_POST_PROCESS)
   $1_$2_VARDEPS_FILE := $$(call DependOnVariable, $1_$2_VARDEPS, \
       $$(SUPPORT_OUTPUTDIR)/markdown/$$($1_$2_MARKER).vardeps)
 
-$$($1_$2_OUTPUT_FILE): $$($1_SRC)/$2 $$($1_$2_VARDEPS_FILE)
-	$$(call LogInfo, Converting $2 to html)
-	$$(call MakeDir, $$($1_$2_TARGET_DIR) $$(SUPPORT_OUTPUTDIR)/markdown)
+  $$($1_$2_PANDOC_OUTPUT): $$($1_$2_PANDOC_INPUT) $$($1_$2_VARDEPS_FILE) $$($1_EXTRA_DEPS)
+	$$(call LogInfo, Converting $2 to $$($1_FORMAT))
+	$$(call MakeDir, $$(SUPPORT_OUTPUTDIR)/markdown $$(dir $$($1_$2_PANDOC_OUTPUT)))
 	$$(call ExecuteWithLog, $$(SUPPORT_OUTPUTDIR)/markdown/$$($1_$2_MARKER), \
-	    $$(PANDOC) $$($1_OPTIONS) -f markdown -t html5 --standalone \
-	    $$($1_$2_CSS_OPTION) $$($1_$2_OPTIONS) '$$<' -o '$$@')
+	    $$(PANDOC) $$($1_OPTIONS) -f markdown -t $$($1_FORMAT) --standalone \
+	    $$($1_$2_CSS_OPTION) $$($1_$2_OPTIONS) '$$($1_$2_PANDOC_INPUT)' \
+	    -o '$$($1_$2_PANDOC_OUTPUT)')
         ifneq ($$(findstring $$(LOG_LEVEL), debug trace),)
-	TOO_LONG_LINES=`$$(GREP) -E -e '^.{80}.+$$$$' $$<` || true ; \
-	if [ "x$$$$TOO_LONG_LINES" != x ]; then \
-	  $$(ECHO) "Warning: Unsuitable markdown in $$<:" ; \
-	  $$(ECHO) "The following lines are longer than 80 characters:" ; \
-	  $$(GREP) -E -n -e '^.{80}.+$$$$' $$< || true ; \
-	fi
+	  TOO_LONG_LINES=`$$(GREP) -E -e '^.{80}.+$$$$' $$<` || true ; \
+	  if [ "x$$$$TOO_LONG_LINES" != x ]; then \
+	    $$(ECHO) "Warning: Unsuitable markdown in $$<:" ; \
+	    $$(ECHO) "The following lines are longer than 80 characters:" ; \
+	    $$(GREP) -E -n -e '^.{80}.+$$$$' $$< || true ; \
+	  fi
         endif
 
+  # If we have no post processing, PANDOC_OUTPUT is set to OUTPUT_FILE. Otherwise
+  # PANDOC_OUTPUT is a temporary file, and we must now create the real OUTPUT_FILE.
+  ifneq ($$($1_POST_PROCESS), )
+    $$($1_$2_OUTPUT_FILE): $$($1_$2_PANDOC_OUTPUT)
+	$$(call LogInfo, Post-processing markdown file $2)
+	$$(call MakeDir, $$(SUPPORT_OUTPUTDIR)/markdown $$($1_$2_TARGET_DIR))
+	$$(call ExecuteWithLog, $$(SUPPORT_OUTPUTDIR)/markdown/$$($1_$2_MARKER)_post, \
+	    $$($1_POST_PROCESS) < $$($1_$2_PANDOC_OUTPUT) > $$($1_$2_OUTPUT_FILE))
+  endif
+
   $1 += $$($1_$2_OUTPUT_FILE)
 endef
 
@@ -72,11 +112,17 @@
 # and the targets generated are listed in a variable by that name.
 #
 # Remaining parameters are named arguments. These include:
-#   SRC     : Source root dir (defaults to dir of first file)
-#   DEST    : Dest root dir
-#   FILES   : List of files to copy with absolute paths, or path relative to SRC.
-#             Must be in SRC.
-#   OPTIONS : Additional options to pandoc
+#   DEST     : Destination root dir
+#   FILES    : List of files to copy with absolute paths, or path relative to SRC.
+#   SRC      : Source root dir; if given keep input files hierarchy relative to
+#              SRC in DEST, otherwise flatten structure into DEST.
+#   FORMAT   : The target format (defaults to html5)
+#   FILE_EXT : The file extension to replace .md with (defaults to .html)
+#   OPTIONS  : Additional options to pandoc
+#   EXTRA_DEPS : Additional dependencies to add to each pandoc call
+#   FILTER   : Optional pandoc filter command
+#   POST_PROCESS : Optional command-line to post-process generated markdown
+#   REPLACEMENTS : Text replacements to perform on input file before processing
 #
 SetupProcessMarkdown = $(NamedParamsMacroTemplate)
 define SetupProcessMarkdownBody
@@ -88,16 +134,40 @@
     $$(error DEST is missing in SetupProcessMarkdown $1)
   endif
 
-  # Default SRC to the dir of the first file.
-  ifeq ($$($1_SRC), )
-    $1_SRC := $$(dir $$(firstword $$($1_FILES)))
+  # If no target format is specified, default to html5.
+  ifeq ($$($1_FORMAT), )
+    $1_FORMAT := html5
   endif
 
-  # Remove any trailing slash from SRC and DEST
-  $1_SRC := $$(patsubst %/,%,$$($1_SRC))
+  ifeq ($$($1_FORMAT), man)
+    # If no file extension is specified, default to '.1'.
+    ifeq ($$($1_FILE_EXT), )
+      $1_FILE_EXT := .1
+    endif
+  else ifeq ($$($1_FORMAT), html5)
+    ifeq ($$($1_FILE_EXT), )
+      $1_FILE_EXT := .html
+    endif
+  else ifeq ($$($1_FORMAT), html)
+    ifeq ($$($1_FILE_EXT), )
+      $1_FILE_EXT := .html
+    endif
+  endif
+
+  # Remove any trailing slash
   $1_DEST := $$(patsubst %/,%,$$($1_DEST))
 
-  $$(foreach f, $$(patsubst $$($1_SRC)/%,%,$$($1_FILES)), \
-    $$(eval $$(call ProcessMarkdown,$1,$$f)) \
-  )
+  ifeq ($$($1_SRC), )
+    # No SRC given, assume we're flattening all files into output dir.
+    $$(foreach f, $$($1_FILES), \
+      $$(eval $$(call ProcessMarkdown,$1,$$(notdir $$f),$$(patsubst %/,%,$$(dir $$f)))) \
+    )
+  else
+    # Remove any trailing slash
+    $1_SRC := $$(patsubst %/,%,$$($1_SRC))
+
+    $$(foreach f, $$(patsubst $$($1_SRC)/%,%,$$($1_FILES)), \
+      $$(eval $$(call ProcessMarkdown,$1,$$f,$$($1_SRC))) \
+    )
+  endif
 endef
--- a/make/conf/jib-profiles.js	Wed Nov 14 04:59:57 2018 +0100
+++ b/make/conf/jib-profiles.js	Wed Nov 28 21:30:08 2018 +0100
@@ -243,7 +243,7 @@
 
     // These are the base setttings for all the main build profiles.
     common.main_profile_base = {
-        dependencies: ["boot_jdk", "gnumake", "jtreg", "jib", "autoconf"],
+        dependencies: ["boot_jdk", "gnumake", "jtreg", "jib", "autoconf", "jmh"],
         default_make_targets: ["product-bundles", "test-bundles"],
         configure_args: concat(["--enable-jtreg-failure-handler"],
             "--with-exclude-translations=de,es,fr,it,ko,pt_BR,sv,ca,tr,cs,sk,ja_JP_A,ja_JP_HA,ja_JP_HI,ja_JP_I,zh_TW,zh_HK",
@@ -401,7 +401,7 @@
         "macosx-x64": {
             target_os: "macosx",
             target_cpu: "x64",
-            dependencies: ["devkit", "graalunit_lib"],
+            dependencies: ["devkit", "pandoc", "graalunit_lib"],
             configure_args: concat(common.configure_args_64bit, "--with-zlib=system",
                 "--with-macosx-version-max=10.9.0"),
         },
@@ -830,8 +830,8 @@
         solaris_x64: "SS12u4-Solaris11u1+1.0",
         solaris_sparcv9: "SS12u6-Solaris11u3+1.0",
         windows_x64: "VS2017-15.5.5+1.0",
-        linux_aarch64: "gcc7.3.0-Fedora27+1.0",
-        linux_arm: "gcc7.3.0-Fedora27+1.0"
+        linux_aarch64: "gcc7.3.0-Fedora27+1.1",
+        linux_arm: "gcc7.3.0-Fedora27+1.1"
     };
 
     var devkit_platform = (input.target_cpu == "x86"
@@ -892,6 +892,12 @@
             environment_path: input.get("jtreg", "install_path") + "/jtreg/bin"
         },
 
+        jmh: {
+            organization: common.organization,
+            ext: "tar.gz",
+            revision: "1.21+1.0"
+        },
+
         gnumake: {
             organization: common.organization,
             ext: "tar.gz",
@@ -933,7 +939,7 @@
         pandoc: {
             organization: common.organization,
             ext: "tar.gz",
-            revision: "1.17.2+1.0",
+            revision: "2.3.1+1.0",
             module: "pandoc-" + input.target_platform,
             configure_args: "PANDOC=" + input.get("pandoc", "install_path") + "/pandoc/pandoc",
             environment_path: input.get("pandoc", "install_path") + "/pandoc"
--- a/make/data/characterdata/CharacterData00.java.template	Wed Nov 14 04:59:57 2018 +0100
+++ b/make/data/characterdata/CharacterData00.java.template	Wed Nov 28 21:30:08 2018 +0100
@@ -25,7 +25,7 @@
 
 package java.lang;
 
-/** 
+/**
  * The CharacterData00 class encapsulates the large tables once found in
  * java.lang.Character
 */
@@ -265,6 +265,54 @@
             case 0x13ED: mapChar = 0xABBD; break;
             case 0x13EE: mapChar = 0xABBE; break;
             case 0x13EF: mapChar = 0xABBF; break;
+            case 0x1C90: mapChar = 0x10D0; break;
+            case 0x1C91: mapChar = 0x10D1; break;
+            case 0x1C92: mapChar = 0x10D2; break;
+            case 0x1C93: mapChar = 0x10D3; break;
+            case 0x1C94: mapChar = 0x10D4; break;
+            case 0x1C95: mapChar = 0x10D5; break;
+            case 0x1C96: mapChar = 0x10D6; break;
+            case 0x1C97: mapChar = 0x10D7; break;
+            case 0x1C98: mapChar = 0x10D8; break;
+            case 0x1C99: mapChar = 0x10D9; break;
+            case 0x1C9A: mapChar = 0x10DA; break;
+            case 0x1C9B: mapChar = 0x10DB; break;
+            case 0x1C9C: mapChar = 0x10DC; break;
+            case 0x1C9D: mapChar = 0x10DD; break;
+            case 0x1C9E: mapChar = 0x10DE; break;
+            case 0x1C9F: mapChar = 0x10DF; break;
+            case 0x1CA0: mapChar = 0x10E0; break;
+            case 0x1CA1: mapChar = 0x10E1; break;
+            case 0x1CA2: mapChar = 0x10E2; break;
+            case 0x1CA3: mapChar = 0x10E3; break;
+            case 0x1CA4: mapChar = 0x10E4; break;
+            case 0x1CA5: mapChar = 0x10E5; break;
+            case 0x1CA6: mapChar = 0x10E6; break;
+            case 0x1CA7: mapChar = 0x10E7; break;
+            case 0x1CA8: mapChar = 0x10E8; break;
+            case 0x1CA9: mapChar = 0x10E9; break;
+            case 0x1CAA: mapChar = 0x10EA; break;
+            case 0x1CAB: mapChar = 0x10EB; break;
+            case 0x1CAC: mapChar = 0x10EC; break;
+            case 0x1CAD: mapChar = 0x10ED; break;
+            case 0x1CAE: mapChar = 0x10EE; break;
+            case 0x1CAF: mapChar = 0x10EF; break;
+            case 0x1CB0: mapChar = 0x10F0; break;
+            case 0x1CB1: mapChar = 0x10F1; break;
+            case 0x1CB2: mapChar = 0x10F2; break;
+            case 0x1CB3: mapChar = 0x10F3; break;
+            case 0x1CB4: mapChar = 0x10F4; break;
+            case 0x1CB5: mapChar = 0x10F5; break;
+            case 0x1CB6: mapChar = 0x10F6; break;
+            case 0x1CB7: mapChar = 0x10F7; break;
+            case 0x1CB8: mapChar = 0x10F8; break;
+            case 0x1CB9: mapChar = 0x10F9; break;
+            case 0x1CBA: mapChar = 0x10FA; break;
+            case 0x1CBB: mapChar = 0x10FB; break;
+            case 0x1CBC: mapChar = 0x10FC; break;
+            case 0x1CBD: mapChar = 0x10FD; break;
+            case 0x1CBE: mapChar = 0x10FE; break;
+            case 0x1CBF: mapChar = 0x10FF; break;
             case 0x1E9E: mapChar = 0x00DF; break;
             case 0x1F88: mapChar = 0x1F80; break;
             case 0x1F89: mapChar = 0x1F81; break;
@@ -355,6 +403,52 @@
             case 0x0287: mapChar = 0xA7B1; break;
             case 0x029D: mapChar = 0xA7B2; break;
             case 0x029E: mapChar = 0xA7B0; break;
+            case 0x10D0: mapChar = 0x1C90; break;
+            case 0x10D1: mapChar = 0x1C91; break;
+            case 0x10D2: mapChar = 0x1C92; break;
+            case 0x10D3: mapChar = 0x1C93; break;
+            case 0x10D4: mapChar = 0x1C94; break;
+            case 0x10D5: mapChar = 0x1C95; break;
+            case 0x10D6: mapChar = 0x1C96; break;
+            case 0x10D7: mapChar = 0x1C97; break;
+            case 0x10D8: mapChar = 0x1C98; break;
+            case 0x10D9: mapChar = 0x1C99; break;
+            case 0x10DA: mapChar = 0x1C9A; break;
+            case 0x10DB: mapChar = 0x1C9B; break;
+            case 0x10DC: mapChar = 0x1C9C; break;
+            case 0x10DD: mapChar = 0x1C9D; break;
+            case 0x10DE: mapChar = 0x1C9E; break;
+            case 0x10DF: mapChar = 0x1C9F; break;
+            case 0x10E0: mapChar = 0x1CA0; break;
+            case 0x10E1: mapChar = 0x1CA1; break;
+            case 0x10E2: mapChar = 0x1CA2; break;
+            case 0x10E3: mapChar = 0x1CA3; break;
+            case 0x10E4: mapChar = 0x1CA4; break;
+            case 0x10E5: mapChar = 0x1CA5; break;
+            case 0x10E6: mapChar = 0x1CA6; break;
+            case 0x10E7: mapChar = 0x1CA7; break;
+            case 0x10E8: mapChar = 0x1CA8; break;
+            case 0x10E9: mapChar = 0x1CA9; break;
+            case 0x10EA: mapChar = 0x1CAA; break;
+            case 0x10EB: mapChar = 0x1CAB; break;
+            case 0x10EC: mapChar = 0x1CAC; break;
+            case 0x10ED: mapChar = 0x1CAD; break;
+            case 0x10EE: mapChar = 0x1CAE; break;
+            case 0x10EF: mapChar = 0x1CAF; break;
+            case 0x10F0: mapChar = 0x1CB0; break;
+            case 0x10F1: mapChar = 0x1CB1; break;
+            case 0x10F2: mapChar = 0x1CB2; break;
+            case 0x10F3: mapChar = 0x1CB3; break;
+            case 0x10F4: mapChar = 0x1CB4; break;
+            case 0x10F5: mapChar = 0x1CB5; break;
+            case 0x10F6: mapChar = 0x1CB6; break;
+            case 0x10F7: mapChar = 0x1CB7; break;
+            case 0x10F8: mapChar = 0x1CB8; break;
+            case 0x10F9: mapChar = 0x1CB9; break;
+            case 0x10FA: mapChar = 0x1CBA; break;
+            case 0x10FD: mapChar = 0x1CBD; break;
+            case 0x10FE: mapChar = 0x1CBE; break;
+            case 0x10FF: mapChar = 0x1CBF; break;
             case 0x1C80: mapChar = 0x0412; break;
             case 0x1C81: mapChar = 0x0414; break;
             case 0x1C82: mapChar = 0x041E; break;
@@ -544,9 +638,16 @@
                 mapChar = ch + 1;
             }
             else if ((val & $$maskLowerCase) == 0) {
-                // The character does not have a lowercase equivalent, so it must
-                // already be lowercase; so subtract 1 to get the titlecase form.
-                mapChar = ch - 1;
+                // For some Georgian letters, titlecase form is 
+                // same as this character.
+                if(ch >= 0x10D0 && ch <= 0x10FF) {
+                    mapChar = ch;
+                }
+                else {
+                    // The character does not have a lowercase equivalent, so it must
+                    // already be lowercase; so subtract 1 to get the titlecase form.
+                    mapChar = ch - 1;
+                }                
             }
             // else {
             // The character has both an uppercase equivalent and a lowercase
@@ -741,6 +842,52 @@
                     case 0x0287: mapChar = 0xA7B1; break;
                     case 0x029D: mapChar = 0xA7B2; break;
                     case 0x029E: mapChar = 0xA7B0; break;
+                    case 0x10D0: mapChar = 0x1C90; break;
+                    case 0x10D1: mapChar = 0x1C91; break;
+                    case 0x10D2: mapChar = 0x1C92; break;
+                    case 0x10D3: mapChar = 0x1C93; break;
+                    case 0x10D4: mapChar = 0x1C94; break;
+                    case 0x10D5: mapChar = 0x1C95; break;
+                    case 0x10D6: mapChar = 0x1C96; break;
+                    case 0x10D7: mapChar = 0x1C97; break;
+                    case 0x10D8: mapChar = 0x1C98; break;
+                    case 0x10D9: mapChar = 0x1C99; break;
+                    case 0x10DA: mapChar = 0x1C9A; break;
+                    case 0x10DB: mapChar = 0x1C9B; break;
+                    case 0x10DC: mapChar = 0x1C9C; break;
+                    case 0x10DD: mapChar = 0x1C9D; break;
+                    case 0x10DE: mapChar = 0x1C9E; break;
+                    case 0x10DF: mapChar = 0x1C9F; break;
+                    case 0x10E0: mapChar = 0x1CA0; break;
+                    case 0x10E1: mapChar = 0x1CA1; break;
+                    case 0x10E2: mapChar = 0x1CA2; break;
+                    case 0x10E3: mapChar = 0x1CA3; break;
+                    case 0x10E4: mapChar = 0x1CA4; break;
+                    case 0x10E5: mapChar = 0x1CA5; break;
+                    case 0x10E6: mapChar = 0x1CA6; break;
+                    case 0x10E7: mapChar = 0x1CA7; break;
+                    case 0x10E8: mapChar = 0x1CA8; break;
+                    case 0x10E9: mapChar = 0x1CA9; break;
+                    case 0x10EA: mapChar = 0x1CAA; break;
+                    case 0x10EB: mapChar = 0x1CAB; break;
+                    case 0x10EC: mapChar = 0x1CAC; break;
+                    case 0x10ED: mapChar = 0x1CAD; break;
+                    case 0x10EE: mapChar = 0x1CAE; break;
+                    case 0x10EF: mapChar = 0x1CAF; break;
+                    case 0x10F0: mapChar = 0x1CB0; break;
+                    case 0x10F1: mapChar = 0x1CB1; break;
+                    case 0x10F2: mapChar = 0x1CB2; break;
+                    case 0x10F3: mapChar = 0x1CB3; break;
+                    case 0x10F4: mapChar = 0x1CB4; break;
+                    case 0x10F5: mapChar = 0x1CB5; break;
+                    case 0x10F6: mapChar = 0x1CB6; break;
+                    case 0x10F7: mapChar = 0x1CB7; break;
+                    case 0x10F8: mapChar = 0x1CB8; break;
+                    case 0x10F9: mapChar = 0x1CB9; break;
+                    case 0x10FA: mapChar = 0x1CBA; break;
+                    case 0x10FD: mapChar = 0x1CBD; break;
+                    case 0x10FE: mapChar = 0x1CBE; break;
+                    case 0x10FF: mapChar = 0x1CBF; break;
                     case 0x1C80: mapChar = 0x0412; break;
                     case 0x1C81: mapChar = 0x0414; break;
                     case 0x1C82: mapChar = 0x041E; break;
@@ -928,5 +1075,5 @@
 
     static {
         $$Initializers
-    }        
+    }
 }
--- a/make/data/characterdata/CharacterData01.java.template	Wed Nov 14 04:59:57 2018 +0100
+++ b/make/data/characterdata/CharacterData01.java.template	Wed Nov 28 21:30:08 2018 +0100
@@ -364,6 +364,8 @@
             case 0x10E78: retval = 700; break;     // RUMI NUMBER SEVEN HUNDRED
             case 0x10E79: retval = 800; break;     // RUMI NUMBER EIGHT HUNDRED
             case 0x10E7A: retval = 900; break;     // RUMI NUMBER NINE HUNDRED
+            case 0x10F25: retval = 100; break;     // OLD SOGDIAN NUMBER ONE HUNDRED
+            case 0x10F54: retval = 100; break;     // SOGDIAN NUMBER ONE HUNDRED
             case 0x1105E: retval = 40; break;      // BRAHMI NUMBER FORTY
             case 0x1105F: retval = 50; break;      // BRAHMI NUMBER FIFTY
             case 0x11060: retval = 60; break;      // BRAHMI NUMBER SIXTY
@@ -407,6 +409,46 @@
             case 0x1D36F: retval = 70; break;      // COUNTING ROD TENS DIGIT SEVEN
             case 0x1D370: retval = 80; break;      // COUNTING ROD TENS DIGIT EIGHT
             case 0x1D371: retval = 90; break;      // COUNTING ROD TENS DIGIT NINE
+            case 0x1EC7D: retval = 40; break;      // INDIC SIYAQ NUMBER FORTY
+            case 0x1EC7E: retval = 50; break;      // INDIC SIYAQ NUMBER FIFTY
+            case 0x1EC7F: retval = 60; break;      // INDIC SIYAQ NUMBER SIXTY
+            case 0X1EC80: retval = 70; break;      // INDIC SIYAQ NUMBER SEVENTY
+            case 0X1EC81: retval = 80; break;      // INDIC SIYAQ NUMBER EIGHTY
+            case 0X1EC82: retval = 90; break;      // INDIC SIYAQ NUMBER NINETY
+            case 0X1EC83: retval = 100; break;     // INDIC SIYAQ NUMBER ONE HUNDRED
+            case 0X1EC84: retval = 200; break;     // INDIC SIYAQ NUMBER TWO HUNDRED
+            case 0X1EC85: retval = 300; break;     // INDIC SIYAQ NUMBER THREE HUNDRED
+            case 0X1EC86: retval = 400; break;     // INDIC SIYAQ NUMBER FOUR HUNDRED
+            case 0X1EC87: retval = 500; break;     // INDIC SIYAQ NUMBER FIVE HUNDRED
+            case 0X1EC88: retval = 600; break;     // INDIC SIYAQ NUMBER SIX HUNDRED
+            case 0X1EC89: retval = 700; break;     // INDIC SIYAQ NUMBER SEVEN HUNDRED
+            case 0X1EC8A: retval = 800; break;     // INDIC SIYAQ NUMBER EIGHT HUNDRED
+            case 0X1EC8B: retval = 900; break;     // INDIC SIYAQ NUMBER NINE HUNDRED
+            case 0X1EC8C: retval = 1000; break;    // INDIC SIYAQ NUMBER ONE THOUSAND
+            case 0X1EC8D: retval = 2000; break;    // INDIC SIYAQ NUMBER TWO THOUSAND
+            case 0X1EC8E: retval = 3000; break;    // INDIC SIYAQ NUMBER THREE THOUSAND
+            case 0X1EC8F: retval = 4000; break;    // INDIC SIYAQ NUMBER FOUR THOUSAND
+            case 0X1EC90: retval = 5000; break;    // INDIC SIYAQ NUMBER FIVE THOUSAND
+            case 0X1EC91: retval = 6000; break;    // INDIC SIYAQ NUMBER SIX THOUSAND
+            case 0X1EC92: retval = 7000; break;    // INDIC SIYAQ NUMBER SEVEN THOUSAND
+            case 0X1EC93: retval = 8000; break;    // INDIC SIYAQ NUMBER EIGHT THOUSAND
+            case 0X1EC94: retval = 9000; break;    // INDIC SIYAQ NUMBER NINE THOUSAND
+            case 0X1EC95: retval = 10000; break;    // INDIC SIYAQ NUMBER TEN THOUSAND
+            case 0X1EC96: retval = 20000; break;    // INDIC SIYAQ NUMBER TWENTY THOUSAND
+            case 0X1EC97: retval = 30000; break;    // INDIC SIYAQ NUMBER THIRTY THOUSAND
+            case 0X1EC98: retval = 40000; break;    // INDIC SIYAQ NUMBER FORTY THOUSAND
+            case 0X1EC99: retval = 50000; break;    // INDIC SIYAQ NUMBER FIFTY THOUSAND
+            case 0X1EC9A: retval = 60000; break;    // INDIC SIYAQ NUMBER SIXTY THOUSAND
+            case 0X1EC9B: retval = 70000; break;    // INDIC SIYAQ NUMBER SEVENTY THOUSAND
+            case 0X1EC9C: retval = 80000; break;    // INDIC SIYAQ NUMBER EIGHTY THOUSAND
+            case 0X1EC9D: retval = 90000; break;    // INDIC SIYAQ NUMBER NINETY THOUSAND
+            case 0X1EC9E: retval = 100000; break;    // INDIC SIYAQ NUMBER LAKH
+            case 0X1EC9F: retval = 200000; break;    // INDIC SIYAQ NUMBER LAKHAN
+            case 0X1ECA0: retval = 100000; break;    // INDIC SIYAQ LAKH MARK
+            case 0X1ECA1: retval = 10000000; break;  // INDIC SIYAQ NUMBER KAROR
+            case 0X1ECA2: retval = 20000000; break;  // INDIC SIYAQ NUMBER KARORAN
+            case 0X1ECB3: retval = 10000; break;    // INDIC SIYAQ NUMBER ALTERNATE TEN THOUSAND
+            case 0X1ECB4: retval = 100000; break;   // INDIC SIYAQ NUMBER ALTERNATE LAKH MARK
             default: retval = -2; break;
             }
             
--- a/make/data/unicodedata/PropList.txt	Wed Nov 14 04:59:57 2018 +0100
+++ b/make/data/unicodedata/PropList.txt	Wed Nov 28 21:30:08 2018 +0100
@@ -1,6 +1,6 @@
-# PropList-10.0.0.txt
-# Date: 2017-03-10, 08:25:30 GMT
-# Copyright (c) 2017 Unicode, Inc.
+# PropList-11.0.0.txt
+# Date: 2018-03-15, 04:28:35 GMT
+# Copyright (c) 2018 Unicode, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
 #
@@ -125,7 +125,7 @@
 05C3          ; Terminal_Punctuation # Po       HEBREW PUNCTUATION SOF PASUQ
 060C          ; Terminal_Punctuation # Po       ARABIC COMMA
 061B          ; Terminal_Punctuation # Po       ARABIC SEMICOLON
-061F          ; Terminal_Punctuation # Po       ARABIC QUESTION MARK
+061E..061F    ; Terminal_Punctuation # Po   [2] ARABIC TRIPLE DOT PUNCTUATION MARK..ARABIC QUESTION MARK
 06D4          ; Terminal_Punctuation # Po       ARABIC FULL STOP
 0700..070A    ; Terminal_Punctuation # Po  [11] SYRIAC END OF PARAGRAPH..SYRIAC CONTRACTION
 070C          ; Terminal_Punctuation # Po       SYRIAC HARKLEAN METOBELUS
@@ -156,6 +156,8 @@
 2E2E          ; Terminal_Punctuation # Po       REVERSED QUESTION MARK
 2E3C          ; Terminal_Punctuation # Po       STENOGRAPHIC FULL STOP
 2E41          ; Terminal_Punctuation # Po       REVERSED COMMA
+2E4C          ; Terminal_Punctuation # Po       MEDIEVAL COMMA
+2E4E          ; Terminal_Punctuation # Po       PUNCTUS ELEVATUS MARK
 3001..3002    ; Terminal_Punctuation # Po   [2] IDEOGRAPHIC COMMA..IDEOGRAPHIC FULL STOP
 A4FE..A4FF    ; Terminal_Punctuation # Po   [2] LISU PUNCTUATION COMMA..LISU PUNCTUATION FULL STOP
 A60D..A60F    ; Terminal_Punctuation # Po   [3] VAI COMMA..VAI QUESTION MARK
@@ -185,6 +187,7 @@
 10AF0..10AF5  ; Terminal_Punctuation # Po   [6] MANICHAEAN PUNCTUATION STAR..MANICHAEAN PUNCTUATION TWO DOTS
 10B3A..10B3F  ; Terminal_Punctuation # Po   [6] TINY TWO DOTS OVER ONE DOT PUNCTUATION..LARGE ONE RING OVER TWO RINGS PUNCTUATION
 10B99..10B9C  ; Terminal_Punctuation # Po   [4] PSALTER PAHLAVI SECTION MARK..PSALTER PAHLAVI FOUR DOTS WITH DOT
+10F55..10F59  ; Terminal_Punctuation # Po   [5] SOGDIAN PUNCTUATION TWO VERTICAL BARS..SOGDIAN PUNCTUATION HALF CIRCLE WITH DOT
 11047..1104D  ; Terminal_Punctuation # Po   [7] BRAHMI DANDA..BRAHMI PUNCTUATION LOTUS
 110BE..110C1  ; Terminal_Punctuation # Po   [4] KAITHI SECTION MARK..KAITHI DOUBLE DANDA
 11141..11143  ; Terminal_Punctuation # Po   [3] CHAKMA DANDA..CHAKMA QUESTION MARK
@@ -204,15 +207,17 @@
 11AA1..11AA2  ; Terminal_Punctuation # Po   [2] SOYOMBO TERMINAL MARK-1..SOYOMBO TERMINAL MARK-2
 11C41..11C43  ; Terminal_Punctuation # Po   [3] BHAIKSUKI DANDA..BHAIKSUKI WORD SEPARATOR
 11C71         ; Terminal_Punctuation # Po       MARCHEN MARK SHAD
+11EF7..11EF8  ; Terminal_Punctuation # Po   [2] MAKASAR PASSIMBANG..MAKASAR END OF SECTION
 12470..12474  ; Terminal_Punctuation # Po   [5] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON
 16A6E..16A6F  ; Terminal_Punctuation # Po   [2] MRO DANDA..MRO DOUBLE DANDA
 16AF5         ; Terminal_Punctuation # Po       BASSA VAH FULL STOP
 16B37..16B39  ; Terminal_Punctuation # Po   [3] PAHAWH HMONG SIGN VOS THOM..PAHAWH HMONG SIGN CIM CHEEM
 16B44         ; Terminal_Punctuation # Po       PAHAWH HMONG SIGN XAUS
+16E97..16E98  ; Terminal_Punctuation # Po   [2] MEDEFAIDRIN COMMA..MEDEFAIDRIN FULL STOP
 1BC9F         ; Terminal_Punctuation # Po       DUPLOYAN PUNCTUATION CHINOOK FULL STOP
 1DA87..1DA8A  ; Terminal_Punctuation # Po   [4] SIGNWRITING COMMA..SIGNWRITING COLON
 
-# Total code points: 252
+# Total code points: 264
 
 # ================================================
 
@@ -661,6 +666,7 @@
 10A01..10A03  ; Other_Alphabetic # Mn   [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R
 10A05..10A06  ; Other_Alphabetic # Mn   [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
 10A0C..10A0F  ; Other_Alphabetic # Mn   [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA
+10D24..10D27  ; Other_Alphabetic # Mn   [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
 11000         ; Other_Alphabetic # Mc       BRAHMI SIGN CANDRABINDU
 11001         ; Other_Alphabetic # Mn       BRAHMI SIGN ANUSVARA
 11002         ; Other_Alphabetic # Mc       BRAHMI SIGN VISARGA
@@ -673,6 +679,7 @@
 11127..1112B  ; Other_Alphabetic # Mn   [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU
 1112C         ; Other_Alphabetic # Mc       CHAKMA VOWEL SIGN E
 1112D..11132  ; Other_Alphabetic # Mn   [6] CHAKMA VOWEL SIGN AI..CHAKMA AU MARK
+11145..11146  ; Other_Alphabetic # Mc   [2] CHAKMA VOWEL SIGN AA..CHAKMA VOWEL SIGN EI
 11180..11181  ; Other_Alphabetic # Mn   [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA
 11182         ; Other_Alphabetic # Mc       SHARADA SIGN VISARGA
 111B3..111B5  ; Other_Alphabetic # Mc   [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II
@@ -730,9 +737,10 @@
 11722..11725  ; Other_Alphabetic # Mn   [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU
 11726         ; Other_Alphabetic # Mc       AHOM VOWEL SIGN E
 11727..1172A  ; Other_Alphabetic # Mn   [4] AHOM VOWEL SIGN AW..AHOM VOWEL SIGN AM
-11A01..11A06  ; Other_Alphabetic # Mn   [6] ZANABAZAR SQUARE VOWEL SIGN I..ZANABAZAR SQUARE VOWEL SIGN O
-11A07..11A08  ; Other_Alphabetic # Mc   [2] ZANABAZAR SQUARE VOWEL SIGN AI..ZANABAZAR SQUARE VOWEL SIGN AU
-11A09..11A0A  ; Other_Alphabetic # Mn   [2] ZANABAZAR SQUARE VOWEL SIGN REVERSED I..ZANABAZAR SQUARE VOWEL LENGTH MARK
+1182C..1182E  ; Other_Alphabetic # Mc   [3] DOGRA VOWEL SIGN AA..DOGRA VOWEL SIGN II
+1182F..11837  ; Other_Alphabetic # Mn   [9] DOGRA VOWEL SIGN U..DOGRA SIGN ANUSVARA
+11838         ; Other_Alphabetic # Mc       DOGRA SIGN VISARGA
+11A01..11A0A  ; Other_Alphabetic # Mn  [10] ZANABAZAR SQUARE VOWEL SIGN I..ZANABAZAR SQUARE VOWEL LENGTH MARK
 11A35..11A38  ; Other_Alphabetic # Mn   [4] ZANABAZAR SQUARE SIGN CANDRABINDU..ZANABAZAR SQUARE SIGN ANUSVARA
 11A39         ; Other_Alphabetic # Mc       ZANABAZAR SQUARE SIGN VISARGA
 11A3B..11A3E  ; Other_Alphabetic # Mn   [4] ZANABAZAR SQUARE CLUSTER-FINAL LETTER YA..ZANABAZAR SQUARE CLUSTER-FINAL LETTER VA
@@ -758,6 +766,13 @@
 11D3F..11D41  ; Other_Alphabetic # Mn   [3] MASARAM GONDI VOWEL SIGN AU..MASARAM GONDI SIGN VISARGA
 11D43         ; Other_Alphabetic # Mn       MASARAM GONDI SIGN CANDRA
 11D47         ; Other_Alphabetic # Mn       MASARAM GONDI RA-KARA
+11D8A..11D8E  ; Other_Alphabetic # Mc   [5] GUNJALA GONDI VOWEL SIGN AA..GUNJALA GONDI VOWEL SIGN UU
+11D90..11D91  ; Other_Alphabetic # Mn   [2] GUNJALA GONDI VOWEL SIGN EE..GUNJALA GONDI VOWEL SIGN AI
+11D93..11D94  ; Other_Alphabetic # Mc   [2] GUNJALA GONDI VOWEL SIGN OO..GUNJALA GONDI VOWEL SIGN AU
+11D95         ; Other_Alphabetic # Mn       GUNJALA GONDI SIGN ANUSVARA
+11D96         ; Other_Alphabetic # Mc       GUNJALA GONDI SIGN VISARGA
+11EF3..11EF4  ; Other_Alphabetic # Mn   [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
+11EF5..11EF6  ; Other_Alphabetic # Mc   [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O
 16B30..16B36  ; Other_Alphabetic # Mn   [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
 16F51..16F7E  ; Other_Alphabetic # Mc  [46] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN NG
 1BC9E         ; Other_Alphabetic # Mn       DUPLOYAN DOUBLE MARK
@@ -771,7 +786,7 @@
 1F150..1F169  ; Other_Alphabetic # So  [26] NEGATIVE CIRCLED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
 1F170..1F189  ; Other_Alphabetic # So  [26] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED LATIN CAPITAL LETTER Z
 
-# Total code points: 1300
+# Total code points: 1334
 
 # ================================================
 
@@ -780,10 +795,10 @@
 3021..3029    ; Ideographic # Nl   [9] HANGZHOU NUMERAL ONE..HANGZHOU NUMERAL NINE
 3038..303A    ; Ideographic # Nl   [3] HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY
 3400..4DB5    ; Ideographic # Lo [6582] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DB5
-4E00..9FEA    ; Ideographic # Lo [20971] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FEA
+4E00..9FEF    ; Ideographic # Lo [20976] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FEF
 F900..FA6D    ; Ideographic # Lo [366] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA6D
 FA70..FAD9    ; Ideographic # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9
-17000..187EC  ; Ideographic # Lo [6125] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187EC
+17000..187F1  ; Ideographic # Lo [6130] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F1
 18800..18AF2  ; Ideographic # Lo [755] TANGUT COMPONENT-001..TANGUT COMPONENT-755
 1B170..1B2FB  ; Ideographic # Lo [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB
 20000..2A6D6  ; Ideographic # Lo [42711] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6D6
@@ -793,7 +808,7 @@
 2CEB0..2EBE0  ; Ideographic # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
 2F800..2FA1D  ; Ideographic # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
 
-# Total code points: 96174
+# Total code points: 96184
 
 # ================================================
 
@@ -953,6 +968,9 @@
 FFE3          ; Diacritic # Sk       FULLWIDTH MACRON
 102E0         ; Diacritic # Mn       COPTIC EPACT THOUSANDS MARK
 10AE5..10AE6  ; Diacritic # Mn   [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
+10D22..10D23  ; Diacritic # Lo   [2] HANIFI ROHINGYA MARK SAKIN..HANIFI ROHINGYA MARK NA KHONNA
+10D24..10D27  ; Diacritic # Mn   [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
+10F46..10F50  ; Diacritic # Mn  [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW
 110B9..110BA  ; Diacritic # Mn   [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA
 11133..11134  ; Diacritic # Mn   [2] CHAKMA VIRAMA..CHAKMA MAAYYAA
 11173         ; Diacritic # Mn       MAHAJANI SIGN NUKTA
@@ -973,12 +991,14 @@
 116B6         ; Diacritic # Mc       TAKRI SIGN VIRAMA
 116B7         ; Diacritic # Mn       TAKRI SIGN NUKTA
 1172B         ; Diacritic # Mn       AHOM SIGN KILLER
+11839..1183A  ; Diacritic # Mn   [2] DOGRA SIGN VIRAMA..DOGRA SIGN NUKTA
 11A34         ; Diacritic # Mn       ZANABAZAR SQUARE SIGN VIRAMA
 11A47         ; Diacritic # Mn       ZANABAZAR SQUARE SUBJOINER
 11A99         ; Diacritic # Mn       SOYOMBO SUBJOINER
 11C3F         ; Diacritic # Mn       BHAIKSUKI SIGN VIRAMA
 11D42         ; Diacritic # Mn       MASARAM GONDI SIGN NUKTA
 11D44..11D45  ; Diacritic # Mn   [2] MASARAM GONDI SIGN HALANTA..MASARAM GONDI VIRAMA
+11D97         ; Diacritic # Mn       GUNJALA GONDI VIRAMA
 16AF0..16AF4  ; Diacritic # Mn   [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
 16F8F..16F92  ; Diacritic # Mn   [4] MIAO TONE RIGHT..MIAO TONE BELOW
 16F93..16F9F  ; Diacritic # Lm  [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
@@ -991,7 +1011,7 @@
 1E944..1E946  ; Diacritic # Mn   [3] ADLAM ALIF LENGTHENER..ADLAM GEMINATION MARK
 1E948..1E94A  ; Diacritic # Mn   [3] ADLAM CONSONANT MODIFIER..ADLAM NUKTA
 
-# Total code points: 798
+# Total code points: 818
 
 # ================================================
 
@@ -1137,7 +1157,7 @@
 # ================================================
 
 3400..4DB5    ; Unified_Ideograph # Lo [6582] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DB5
-4E00..9FEA    ; Unified_Ideograph # Lo [20971] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FEA
+4E00..9FEF    ; Unified_Ideograph # Lo [20976] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FEF
 FA0E..FA0F    ; Unified_Ideograph # Lo   [2] CJK COMPATIBILITY IDEOGRAPH-FA0E..CJK COMPATIBILITY IDEOGRAPH-FA0F
 FA11          ; Unified_Ideograph # Lo       CJK COMPATIBILITY IDEOGRAPH-FA11
 FA13..FA14    ; Unified_Ideograph # Lo   [2] CJK COMPATIBILITY IDEOGRAPH-FA13..CJK COMPATIBILITY IDEOGRAPH-FA14
@@ -1151,7 +1171,7 @@
 2B820..2CEA1  ; Unified_Ideograph # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
 2CEB0..2EBE0  ; Unified_Ideograph # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
 
-# Total code points: 87882
+# Total code points: 87887
 
 # ================================================
 
@@ -1255,10 +1275,13 @@
 002E          ; Sentence_Terminal # Po       FULL STOP
 003F          ; Sentence_Terminal # Po       QUESTION MARK
 0589          ; Sentence_Terminal # Po       ARMENIAN FULL STOP
-061F          ; Sentence_Terminal # Po       ARABIC QUESTION MARK
+061E..061F    ; Sentence_Terminal # Po   [2] ARABIC TRIPLE DOT PUNCTUATION MARK..ARABIC QUESTION MARK
 06D4          ; Sentence_Terminal # Po       ARABIC FULL STOP
 0700..0702    ; Sentence_Terminal # Po   [3] SYRIAC END OF PARAGRAPH..SYRIAC SUBLINEAR FULL STOP
 07F9          ; Sentence_Terminal # Po       NKO EXCLAMATION MARK
+0837          ; Sentence_Terminal # Po       SAMARITAN PUNCTUATION MELODIC QITSA
+0839          ; Sentence_Terminal # Po       SAMARITAN PUNCTUATION QITSA
+083D..083E    ; Sentence_Terminal # Po   [2] SAMARITAN PUNCTUATION SOF MASHFAAT..SAMARITAN PUNCTUATION ANNAAU
 0964..0965    ; Sentence_Terminal # Po   [2] DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA
 104A..104B    ; Sentence_Terminal # Po   [2] MYANMAR SIGN LITTLE SECTION..MYANMAR SIGN SECTION
 1362          ; Sentence_Terminal # Po       ETHIOPIC FULL STOP
@@ -1296,6 +1319,7 @@
 FF1F          ; Sentence_Terminal # Po       FULLWIDTH QUESTION MARK
 FF61          ; Sentence_Terminal # Po       HALFWIDTH IDEOGRAPHIC FULL STOP
 10A56..10A57  ; Sentence_Terminal # Po   [2] KHAROSHTHI PUNCTUATION DANDA..KHAROSHTHI PUNCTUATION DOUBLE DANDA
+10F55..10F59  ; Sentence_Terminal # Po   [5] SOGDIAN PUNCTUATION TWO VERTICAL BARS..SOGDIAN PUNCTUATION HALF CIRCLE WITH DOT
 11047..11048  ; Sentence_Terminal # Po   [2] BRAHMI DANDA..BRAHMI DOUBLE DANDA
 110BE..110C1  ; Sentence_Terminal # Po   [4] KAITHI SECTION MARK..KAITHI DOUBLE DANDA
 11141..11143  ; Sentence_Terminal # Po   [3] CHAKMA DANDA..CHAKMA QUESTION MARK
@@ -1313,14 +1337,16 @@
 11A42..11A43  ; Sentence_Terminal # Po   [2] ZANABAZAR SQUARE MARK SHAD..ZANABAZAR SQUARE MARK DOUBLE SHAD
 11A9B..11A9C  ; Sentence_Terminal # Po   [2] SOYOMBO MARK SHAD..SOYOMBO MARK DOUBLE SHAD
 11C41..11C42  ; Sentence_Terminal # Po   [2] BHAIKSUKI DANDA..BHAIKSUKI DOUBLE DANDA
+11EF7..11EF8  ; Sentence_Terminal # Po   [2] MAKASAR PASSIMBANG..MAKASAR END OF SECTION
 16A6E..16A6F  ; Sentence_Terminal # Po   [2] MRO DANDA..MRO DOUBLE DANDA
 16AF5         ; Sentence_Terminal # Po       BASSA VAH FULL STOP
 16B37..16B38  ; Sentence_Terminal # Po   [2] PAHAWH HMONG SIGN VOS THOM..PAHAWH HMONG SIGN VOS TSHAB CEEB
 16B44         ; Sentence_Terminal # Po       PAHAWH HMONG SIGN XAUS
+16E98         ; Sentence_Terminal # Po       MEDEFAIDRIN FULL STOP
 1BC9F         ; Sentence_Terminal # Po       DUPLOYAN PUNCTUATION CHINOOK FULL STOP
 1DA88         ; Sentence_Terminal # Po       SIGNWRITING FULL STOP
 
-# Total code points: 128
+# Total code points: 141
 
 # ================================================
 
@@ -1521,14 +1547,10 @@
 2B74..2B75    ; Pattern_Syntax # Cn   [2] <reserved-2B74>..<reserved-2B75>
 2B76..2B95    ; Pattern_Syntax # So  [32] NORTH WEST TRIANGLE-HEADED ARROW TO BAR..RIGHTWARDS BLACK ARROW
 2B96..2B97    ; Pattern_Syntax # Cn   [2] <reserved-2B96>..<reserved-2B97>
-2B98..2BB9    ; Pattern_Syntax # So  [34] THREE-D TOP-LIGHTED LEFTWARDS EQUILATERAL ARROWHEAD..UP ARROWHEAD IN A RECTANGLE BOX
-2BBA..2BBC    ; Pattern_Syntax # Cn   [3] <reserved-2BBA>..<reserved-2BBC>
-2BBD..2BC8    ; Pattern_Syntax # So  [12] BALLOT BOX WITH LIGHT X..BLACK MEDIUM RIGHT-POINTING TRIANGLE CENTRED
+2B98..2BC8    ; Pattern_Syntax # So  [49] THREE-D TOP-LIGHTED LEFTWARDS EQUILATERAL ARROWHEAD..BLACK MEDIUM RIGHT-POINTING TRIANGLE CENTRED
 2BC9          ; Pattern_Syntax # Cn       <reserved-2BC9>
-2BCA..2BD2    ; Pattern_Syntax # So   [9] TOP HALF BLACK CIRCLE..GROUP MARK
-2BD3..2BEB    ; Pattern_Syntax # Cn  [25] <reserved-2BD3>..<reserved-2BEB>
-2BEC..2BEF    ; Pattern_Syntax # So   [4] LEFTWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS..DOWNWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS
-2BF0..2BFF    ; Pattern_Syntax # Cn  [16] <reserved-2BF0>..<reserved-2BFF>
+2BCA..2BFE    ; Pattern_Syntax # So  [53] TOP HALF BLACK CIRCLE..REVERSED RIGHT ANGLE
+2BFF          ; Pattern_Syntax # Cn       <reserved-2BFF>
 2E00..2E01    ; Pattern_Syntax # Po   [2] RIGHT ANGLE SUBSTITUTION MARKER..RIGHT ANGLE DOTTED SUBSTITUTION MARKER
 2E02          ; Pattern_Syntax # Pi       LEFT SUBSTITUTION BRACKET
 2E03          ; Pattern_Syntax # Pf       RIGHT SUBSTITUTION BRACKET
@@ -1566,8 +1588,8 @@
 2E40          ; Pattern_Syntax # Pd       DOUBLE HYPHEN
 2E41          ; Pattern_Syntax # Po       REVERSED COMMA
 2E42          ; Pattern_Syntax # Ps       DOUBLE LOW-REVERSED-9 QUOTATION MARK
-2E43..2E49    ; Pattern_Syntax # Po   [7] DASH WITH LEFT UPTURN..DOUBLE STACKED COMMA
-2E4A..2E7F    ; Pattern_Syntax # Cn  [54] <reserved-2E4A>..<reserved-2E7F>
+2E43..2E4E    ; Pattern_Syntax # Po  [12] DASH WITH LEFT UPTURN..PUNCTUS ELEVATUS MARK
+2E4F..2E7F    ; Pattern_Syntax # Cn  [49] <reserved-2E4F>..<reserved-2E7F>
 3001..3003    ; Pattern_Syntax # Po   [3] IDEOGRAPHIC COMMA..DITTO MARK
 3008          ; Pattern_Syntax # Ps       LEFT ANGLE BRACKET
 3009          ; Pattern_Syntax # Pe       RIGHT ANGLE BRACKET
@@ -1606,8 +1628,9 @@
 070F          ; Prepended_Concatenation_Mark # Cf       SYRIAC ABBREVIATION MARK
 08E2          ; Prepended_Concatenation_Mark # Cf       ARABIC DISPUTED END OF AYAH
 110BD         ; Prepended_Concatenation_Mark # Cf       KAITHI NUMBER SIGN
+110CD         ; Prepended_Concatenation_Mark # Cf       KAITHI NUMBER SIGN ABOVE
 
-# Total code points: 10
+# Total code points: 11
 
 # ================================================
 
--- a/make/data/unicodedata/Scripts.txt	Wed Nov 14 04:59:57 2018 +0100
+++ b/make/data/unicodedata/Scripts.txt	Wed Nov 28 21:30:08 2018 +0100
@@ -1,6 +1,6 @@
-# Scripts-10.0.0.txt
-# Date: 2017-03-11, 06:40:37 GMT
-# Copyright (c) 2017 Unicode, Inc.
+# Scripts-11.0.0.txt
+# Date: 2018-02-21, 05:34:31 GMT
+# Copyright (c) 2018 Unicode, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
 #
@@ -308,10 +308,8 @@
 2B47..2B4C    ; Common # Sm   [6] REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW..RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
 2B4D..2B73    ; Common # So  [39] DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW..DOWNWARDS TRIANGLE-HEADED ARROW TO BAR
 2B76..2B95    ; Common # So  [32] NORTH WEST TRIANGLE-HEADED ARROW TO BAR..RIGHTWARDS BLACK ARROW
-2B98..2BB9    ; Common # So  [34] THREE-D TOP-LIGHTED LEFTWARDS EQUILATERAL ARROWHEAD..UP ARROWHEAD IN A RECTANGLE BOX
-2BBD..2BC8    ; Common # So  [12] BALLOT BOX WITH LIGHT X..BLACK MEDIUM RIGHT-POINTING TRIANGLE CENTRED
-2BCA..2BD2    ; Common # So   [9] TOP HALF BLACK CIRCLE..GROUP MARK
-2BEC..2BEF    ; Common # So   [4] LEFTWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS..DOWNWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS
+2B98..2BC8    ; Common # So  [49] THREE-D TOP-LIGHTED LEFTWARDS EQUILATERAL ARROWHEAD..BLACK MEDIUM RIGHT-POINTING TRIANGLE CENTRED
+2BCA..2BFE    ; Common # So  [53] TOP HALF BLACK CIRCLE..REVERSED RIGHT ANGLE
 2E00..2E01    ; Common # Po   [2] RIGHT ANGLE SUBSTITUTION MARKER..RIGHT ANGLE DOTTED SUBSTITUTION MARKER
 2E02          ; Common # Pi       LEFT SUBSTITUTION BRACKET
 2E03          ; Common # Pf       RIGHT SUBSTITUTION BRACKET
@@ -349,7 +347,7 @@
 2E40          ; Common # Pd       DOUBLE HYPHEN
 2E41          ; Common # Po       REVERSED COMMA
 2E42          ; Common # Ps       DOUBLE LOW-REVERSED-9 QUOTATION MARK
-2E43..2E49    ; Common # Po   [7] DASH WITH LEFT UPTURN..DOUBLE STACKED COMMA
+2E43..2E4E    ; Common # Po  [12] DASH WITH LEFT UPTURN..PUNCTUS ELEVATUS MARK
 2FF0..2FFB    ; Common # So  [12] IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID
 3000          ; Common # Zs       IDEOGRAPHIC SPACE
 3001..3003    ; Common # Po   [3] IDEOGRAPHIC COMMA..DITTO MARK
@@ -522,8 +520,9 @@
 1D183..1D184  ; Common # So   [2] MUSICAL SYMBOL ARPEGGIATO UP..MUSICAL SYMBOL ARPEGGIATO DOWN
 1D18C..1D1A9  ; Common # So  [30] MUSICAL SYMBOL RINFORZANDO..MUSICAL SYMBOL DEGREE SLASH
 1D1AE..1D1E8  ; Common # So  [59] MUSICAL SYMBOL PEDAL MARK..MUSICAL SYMBOL KIEVAN FLAT SIGN
+1D2E0..1D2F3  ; Common # No  [20] MAYAN NUMERAL ZERO..MAYAN NUMERAL NINETEEN
 1D300..1D356  ; Common # So  [87] MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING
-1D360..1D371  ; Common # No  [18] COUNTING ROD UNIT DIGIT ONE..COUNTING ROD TENS DIGIT NINE
+1D360..1D378  ; Common # No  [25] COUNTING ROD UNIT DIGIT ONE..TALLY MARK FIVE
 1D400..1D454  ; Common # L&  [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G
 1D456..1D49C  ; Common # L&  [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A
 1D49E..1D49F  ; Common # L&   [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D
@@ -565,6 +564,11 @@
 1D7C3         ; Common # Sm       MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
 1D7C4..1D7CB  ; Common # L&   [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA
 1D7CE..1D7FF  ; Common # Nd  [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
+1EC71..1ECAB  ; Common # No  [59] INDIC SIYAQ NUMBER ONE..INDIC SIYAQ NUMBER PREFIXED NINE
+1ECAC         ; Common # So       INDIC SIYAQ PLACEHOLDER
+1ECAD..1ECAF  ; Common # No   [3] INDIC SIYAQ FRACTION ONE QUARTER..INDIC SIYAQ FRACTION THREE QUARTERS
+1ECB0         ; Common # Sc       INDIC SIYAQ RUPEE MARK
+1ECB1..1ECB4  ; Common # No   [4] INDIC SIYAQ NUMBER ALTERNATE ONE..INDIC SIYAQ ALTERNATE LAKH MARK
 1F000..1F02B  ; Common # So  [44] MAHJONG TILE EAST WIND..MAHJONG TILE BACK
 1F030..1F093  ; Common # So [100] DOMINO TILE HORIZONTAL BACK..DOMINO TILE VERTICAL-06-06
 1F0A0..1F0AE  ; Common # So  [15] PLAYING CARD BACK..PLAYING CARD KING OF SPADES
@@ -572,8 +576,7 @@
 1F0C1..1F0CF  ; Common # So  [15] PLAYING CARD ACE OF DIAMONDS..PLAYING CARD BLACK JOKER
 1F0D1..1F0F5  ; Common # So  [37] PLAYING CARD ACE OF CLUBS..PLAYING CARD TRUMP-21
 1F100..1F10C  ; Common # No  [13] DIGIT ZERO FULL STOP..DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO
-1F110..1F12E  ; Common # So  [31] PARENTHESIZED LATIN CAPITAL LETTER A..CIRCLED WZ
-1F130..1F16B  ; Common # So  [60] SQUARED LATIN CAPITAL LETTER A..RAISED MD SIGN
+1F110..1F16B  ; Common # So  [92] PARENTHESIZED LATIN CAPITAL LETTER A..RAISED MD SIGN
 1F170..1F1AC  ; Common # So  [61] NEGATIVE SQUARED LATIN CAPITAL LETTER A..SQUARED VOD
 1F1E6..1F1FF  ; Common # So  [26] REGIONAL INDICATOR SYMBOL LETTER A..REGIONAL INDICATOR SYMBOL LETTER Z
 1F201..1F202  ; Common # So   [2] SQUARED KATAKANA KOKO..SQUARED KATAKANA SA
@@ -585,9 +588,9 @@
 1F3FB..1F3FF  ; Common # Sk   [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6
 1F400..1F6D4  ; Common # So [725] RAT..PAGODA
 1F6E0..1F6EC  ; Common # So  [13] HAMMER AND WRENCH..AIRPLANE ARRIVING
-1F6F0..1F6F8  ; Common # So   [9] SATELLITE..FLYING SAUCER
+1F6F0..1F6F9  ; Common # So  [10] SATELLITE..SKATEBOARD
 1F700..1F773  ; Common # So [116] ALCHEMICAL SYMBOL FOR QUINTESSENCE..ALCHEMICAL SYMBOL FOR HALF OUNCE
-1F780..1F7D4  ; Common # So  [85] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..HEAVY TWELVE POINTED PINWHEEL STAR
+1F780..1F7D8  ; Common # So  [89] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..NEGATIVE CIRCLED SQUARE
 1F800..1F80B  ; Common # So  [12] LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
 1F810..1F847  ; Common # So  [56] LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD..DOWNWARDS HEAVY ARROW
 1F850..1F859  ; Common # So  [10] LEFTWARDS SANS-SERIF ARROW..UP DOWN SANS-SERIF ARROW
@@ -595,15 +598,18 @@
 1F890..1F8AD  ; Common # So  [30] LEFTWARDS TRIANGLE ARROWHEAD..WHITE ARROW SHAFT WIDTH TWO THIRDS
 1F900..1F90B  ; Common # So  [12] CIRCLED CROSS FORMEE WITH FOUR DOTS..DOWNWARD FACING NOTCHED HOOK WITH DOT
 1F910..1F93E  ; Common # So  [47] ZIPPER-MOUTH FACE..HANDBALL
-1F940..1F94C  ; Common # So  [13] WILTED FLOWER..CURLING STONE
-1F950..1F96B  ; Common # So  [28] CROISSANT..CANNED FOOD
-1F980..1F997  ; Common # So  [24] CRAB..CRICKET
-1F9C0         ; Common # So       CHEESE WEDGE
-1F9D0..1F9E6  ; Common # So  [23] FACE WITH MONOCLE..SOCKS
+1F940..1F970  ; Common # So  [49] WILTED FLOWER..SMILING FACE WITH SMILING EYES AND THREE HEARTS
+1F973..1F976  ; Common # So   [4] FACE WITH PARTY HORN AND PARTY HAT..FREEZING FACE
+1F97A         ; Common # So       FACE WITH PLEADING EYES
+1F97C..1F9A2  ; Common # So  [39] LAB COAT..SWAN
+1F9B0..1F9B9  ; Common # So  [10] EMOJI COMPONENT RED HAIR..SUPERVILLAIN
+1F9C0..1F9C2  ; Common # So   [3] CHEESE WEDGE..SALT SHAKER
+1F9D0..1F9FF  ; Common # So  [48] FACE WITH MONOCLE..NAZAR AMULET
+1FA60..1FA6D  ; Common # So  [14] XIANGQI RED GENERAL..XIANGQI BLACK SOLDIER
 E0001         ; Common # Cf       LANGUAGE TAG
 E0020..E007F  ; Common # Cf  [96] TAG SPACE..CANCEL TAG
 
-# Total code points: 7363
+# Total code points: 7591
 
 # ================================================
 
@@ -646,8 +652,7 @@
 A771..A787    ; Latin # L&  [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T
 A78B..A78E    ; Latin # L&   [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
 A78F          ; Latin # Lo       LATIN LETTER SINOLOGICAL DOT
-A790..A7AE    ; Latin # L&  [31] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER SMALL CAPITAL I
-A7B0..A7B7    ; Latin # L&   [8] LATIN CAPITAL LETTER TURNED K..LATIN SMALL LETTER OMEGA
+A790..A7B9    ; Latin # L&  [42] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER U WITH STROKE
 A7F7          ; Latin # Lo       LATIN EPIGRAPHIC LETTER SIDEWAYS I
 A7F8..A7F9    ; Latin # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
 A7FA          ; Latin # L&       LATIN LETTER SMALL CAPITAL TURNED M
@@ -659,7 +664,7 @@
 FF21..FF3A    ; Latin # L&  [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z
 FF41..FF5A    ; Latin # L&  [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z
 
-# Total code points: 1350
+# Total code points: 1353
 
 # ================================================
 
@@ -753,13 +758,13 @@
 0531..0556    ; Armenian # L&  [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH
 0559          ; Armenian # Lm       ARMENIAN MODIFIER LETTER LEFT HALF RING
 055A..055F    ; Armenian # Po   [6] ARMENIAN APOSTROPHE..ARMENIAN ABBREVIATION MARK
-0561..0587    ; Armenian # L&  [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN
+0560..0588    ; Armenian # L&  [41] ARMENIAN SMALL LETTER TURNED AYB..ARMENIAN SMALL LETTER YI WITH STROKE
 058A          ; Armenian # Pd       ARMENIAN HYPHEN
 058D..058E    ; Armenian # So   [2] RIGHT-FACING ARMENIAN ETERNITY SIGN..LEFT-FACING ARMENIAN ETERNITY SIGN
 058F          ; Armenian # Sc       ARMENIAN DRAM SIGN
 FB13..FB17    ; Armenian # L&   [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH
 
-# Total code points: 93
+# Total code points: 95
 
 # ================================================
 
@@ -773,7 +778,7 @@
 05C6          ; Hebrew # Po       HEBREW PUNCTUATION NUN HAFUKHA
 05C7          ; Hebrew # Mn       HEBREW POINT QAMATS QATAN
 05D0..05EA    ; Hebrew # Lo  [27] HEBREW LETTER ALEF..HEBREW LETTER TAV
-05F0..05F2    ; Hebrew # Lo   [3] HEBREW LIGATURE YIDDISH DOUBLE VAV..HEBREW LIGATURE YIDDISH DOUBLE YOD
+05EF..05F2    ; Hebrew # Lo   [4] HEBREW YOD TRIANGLE..HEBREW LIGATURE YIDDISH DOUBLE YOD
 05F3..05F4    ; Hebrew # Po   [2] HEBREW PUNCTUATION GERESH..HEBREW PUNCTUATION GERSHAYIM
 FB1D          ; Hebrew # Lo       HEBREW LETTER YOD WITH HIRIQ
 FB1E          ; Hebrew # Mn       HEBREW POINT JUDEO-SPANISH VARIKA
@@ -786,7 +791,7 @@
 FB43..FB44    ; Hebrew # Lo   [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH
 FB46..FB4F    ; Hebrew # Lo  [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATURE ALEF LAMED
 
-# Total code points: 133
+# Total code points: 134
 
 # ================================================
 
@@ -823,7 +828,7 @@
 0750..077F    ; Arabic # Lo  [48] ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW..ARABIC LETTER KAF WITH TWO DOTS ABOVE
 08A0..08B4    ; Arabic # Lo  [21] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER KAF WITH DOT BELOW
 08B6..08BD    ; Arabic # Lo   [8] ARABIC LETTER BEH WITH SMALL MEEM ABOVE..ARABIC LETTER AFRICAN NOON
-08D4..08E1    ; Arabic # Mn  [14] ARABIC SMALL HIGH WORD AR-RUB..ARABIC SMALL HIGH SIGN SAFHA
+08D3..08E1    ; Arabic # Mn  [15] ARABIC SMALL LOW WAW..ARABIC SMALL HIGH SIGN SAFHA
 08E3..08FF    ; Arabic # Mn  [29] ARABIC TURNED DAMMA BELOW..ARABIC MARK SIDEWAYS NOON GHUNNA
 FB50..FBB1    ; Arabic # Lo  [98] ARABIC LETTER ALEF WASLA ISOLATED FORM..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
 FBB2..FBC1    ; Arabic # Sk  [16] ARABIC SYMBOL DOT ABOVE..ARABIC SYMBOL SMALL TAH BELOW
@@ -871,7 +876,7 @@
 1EEAB..1EEBB  ; Arabic # Lo  [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
 1EEF0..1EEF1  ; Arabic # Sm   [2] ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL..ARABIC MATHEMATICAL OPERATOR HAH WITH DAL
 
-# Total code points: 1280
+# Total code points: 1281
 
 # ================================================
 
@@ -921,9 +926,10 @@
 A8F8..A8FA    ; Devanagari # Po   [3] DEVANAGARI SIGN PUSHPIKA..DEVANAGARI CARET
 A8FB          ; Devanagari # Lo       DEVANAGARI HEADSTROKE
 A8FC          ; Devanagari # Po       DEVANAGARI SIGN SIDDHAM
-A8FD          ; Devanagari # Lo       DEVANAGARI JAIN OM
-
-# Total code points: 154
+A8FD..A8FE    ; Devanagari # Lo   [2] DEVANAGARI JAIN OM..DEVANAGARI LETTER AY
+A8FF          ; Devanagari # Mn       DEVANAGARI VOWEL SIGN AY
+
+# Total code points: 156
 
 # ================================================
 
@@ -956,8 +962,9 @@
 09FB          ; Bengali # Sc       BENGALI GANDA MARK
 09FC          ; Bengali # Lo       BENGALI LETTER VEDIC ANUSVARA
 09FD          ; Bengali # Po       BENGALI ABBREVIATION SIGN
-
-# Total code points: 95
+09FE          ; Bengali # Mn       BENGALI SANDHI MARK
+
+# Total code points: 96
 
 # ================================================
 
@@ -982,8 +989,9 @@
 0A70..0A71    ; Gurmukhi # Mn   [2] GURMUKHI TIPPI..GURMUKHI ADDAK
 0A72..0A74    ; Gurmukhi # Lo   [3] GURMUKHI IRI..GURMUKHI EK ONKAR
 0A75          ; Gurmukhi # Mn       GURMUKHI SIGN YAKASH
-
-# Total code points: 79
+0A76          ; Gurmukhi # Po       GURMUKHI ABBREVIATION SIGN
+
+# Total code points: 80
 
 # ================================================
 
@@ -1078,6 +1086,7 @@
 
 0C00          ; Telugu # Mn       TELUGU SIGN COMBINING CANDRABINDU ABOVE
 0C01..0C03    ; Telugu # Mc   [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
+0C04          ; Telugu # Mn       TELUGU SIGN COMBINING ANUSVARA ABOVE
 0C05..0C0C    ; Telugu # Lo   [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L
 0C0E..0C10    ; Telugu # Lo   [3] TELUGU LETTER E..TELUGU LETTER AI
 0C12..0C28    ; Telugu # Lo  [23] TELUGU LETTER O..TELUGU LETTER NA
@@ -1095,13 +1104,14 @@
 0C78..0C7E    ; Telugu # No   [7] TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR..TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR
 0C7F          ; Telugu # So       TELUGU SIGN TUUMU
 
-# Total code points: 96
+# Total code points: 97
 
 # ================================================
 
 0C80          ; Kannada # Lo       KANNADA SIGN SPACING CANDRABINDU
 0C81          ; Kannada # Mn       KANNADA SIGN CANDRABINDU
 0C82..0C83    ; Kannada # Mc   [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
+0C84          ; Kannada # Po       KANNADA SIGN SIDDHAM
 0C85..0C8C    ; Kannada # Lo   [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L
 0C8E..0C90    ; Kannada # Lo   [3] KANNADA LETTER E..KANNADA LETTER AI
 0C92..0CA8    ; Kannada # Lo  [23] KANNADA LETTER O..KANNADA LETTER NA
@@ -1123,7 +1133,7 @@
 0CE6..0CEF    ; Kannada # Nd  [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
 0CF1..0CF2    ; Kannada # Lo   [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
 
-# Total code points: 88
+# Total code points: 89
 
 # ================================================
 
@@ -1317,14 +1327,16 @@
 10A0..10C5    ; Georgian # L&  [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE
 10C7          ; Georgian # L&       GEORGIAN CAPITAL LETTER YN
 10CD          ; Georgian # L&       GEORGIAN CAPITAL LETTER AEN
-10D0..10FA    ; Georgian # Lo  [43] GEORGIAN LETTER AN..GEORGIAN LETTER AIN
+10D0..10FA    ; Georgian # L&  [43] GEORGIAN LETTER AN..GEORGIAN LETTER AIN
 10FC          ; Georgian # Lm       MODIFIER LETTER GEORGIAN NAR
-10FD..10FF    ; Georgian # Lo   [3] GEORGIAN LETTER AEN..GEORGIAN LETTER LABIAL SIGN
+10FD..10FF    ; Georgian # L&   [3] GEORGIAN LETTER AEN..GEORGIAN LETTER LABIAL SIGN
+1C90..1CBA    ; Georgian # L&  [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN
+1CBD..1CBF    ; Georgian # L&   [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
 2D00..2D25    ; Georgian # L&  [38] GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LETTER HOE
 2D27          ; Georgian # L&       GEORGIAN SMALL LETTER YN
 2D2D          ; Georgian # L&       GEORGIAN SMALL LETTER AEN
 
-# Total code points: 127
+# Total code points: 173
 
 # ================================================
 
@@ -1453,7 +1465,7 @@
 1810..1819    ; Mongolian # Nd  [10] MONGOLIAN DIGIT ZERO..MONGOLIAN DIGIT NINE
 1820..1842    ; Mongolian # Lo  [35] MONGOLIAN LETTER A..MONGOLIAN LETTER CHI
 1843          ; Mongolian # Lm       MONGOLIAN LETTER TODO LONG VOWEL SIGN
-1844..1877    ; Mongolian # Lo  [52] MONGOLIAN LETTER TODO E..MONGOLIAN LETTER MANCHU ZHA
+1844..1878    ; Mongolian # Lo  [53] MONGOLIAN LETTER TODO E..MONGOLIAN LETTER CHA WITH TWO DOTS
 1880..1884    ; Mongolian # Lo   [5] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER ALI GALI INVERTED UBADAMA
 1885..1886    ; Mongolian # Mn   [2] MONGOLIAN LETTER ALI GALI BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA
 1887..18A8    ; Mongolian # Lo  [34] MONGOLIAN LETTER ALI GALI A..MONGOLIAN LETTER MANCHU ALI GALI BHA
@@ -1461,7 +1473,7 @@
 18AA          ; Mongolian # Lo       MONGOLIAN LETTER MANCHU ALI GALI LHA
 11660..1166C  ; Mongolian # Po  [13] MONGOLIAN BIRGA WITH ORNAMENT..MONGOLIAN TURNED SWIRL BIRGA WITH DOUBLE ORNAMENT
 
-# Total code points: 166
+# Total code points: 167
 
 # ================================================
 
@@ -1490,10 +1502,10 @@
 # ================================================
 
 02EA..02EB    ; Bopomofo # Sk   [2] MODIFIER LETTER YIN DEPARTING TONE MARK..MODIFIER LETTER YANG DEPARTING TONE MARK
-3105..312E    ; Bopomofo # Lo  [42] BOPOMOFO LETTER B..BOPOMOFO LETTER O WITH DOT ABOVE
+3105..312F    ; Bopomofo # Lo  [43] BOPOMOFO LETTER B..BOPOMOFO LETTER NN
 31A0..31BA    ; Bopomofo # Lo  [27] BOPOMOFO LETTER BU..BOPOMOFO LETTER ZY
 
-# Total code points: 71
+# Total code points: 72
 
 # ================================================
 
@@ -1506,7 +1518,7 @@
 3038..303A    ; Han # Nl   [3] HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY
 303B          ; Han # Lm       VERTICAL IDEOGRAPHIC ITERATION MARK
 3400..4DB5    ; Han # Lo [6582] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DB5
-4E00..9FEA    ; Han # Lo [20971] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FEA
+4E00..9FEF    ; Han # Lo [20976] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FEF
 F900..FA6D    ; Han # Lo [366] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA6D
 FA70..FAD9    ; Han # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9
 20000..2A6D6  ; Han # Lo [42711] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6D6
@@ -1516,7 +1528,7 @@
 2CEB0..2EBE0  ; Han # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
 2F800..2FA1D  ; Han # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
 
-# Total code points: 89228
+# Total code points: 89233
 
 # ================================================
 
@@ -1579,13 +1591,14 @@
 FE20..FE2D    ; Inherited # Mn  [14] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON BELOW
 101FD         ; Inherited # Mn       PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
 102E0         ; Inherited # Mn       COPTIC EPACT THOUSANDS MARK
+1133B         ; Inherited # Mn       COMBINING BINDU BELOW
 1D167..1D169  ; Inherited # Mn   [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
 1D17B..1D182  ; Inherited # Mn   [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
 1D185..1D18B  ; Inherited # Mn   [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
 1D1AA..1D1AD  ; Inherited # Mn   [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
 E0100..E01EF  ; Inherited # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
 
-# Total code points: 568
+# Total code points: 569
 
 # ================================================
 
@@ -1778,13 +1791,13 @@
 10A0C..10A0F  ; Kharoshthi # Mn   [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA
 10A10..10A13  ; Kharoshthi # Lo   [4] KHAROSHTHI LETTER KA..KHAROSHTHI LETTER GHA
 10A15..10A17  ; Kharoshthi # Lo   [3] KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA
-10A19..10A33  ; Kharoshthi # Lo  [27] KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER TTTHA
+10A19..10A35  ; Kharoshthi # Lo  [29] KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER VHA
 10A38..10A3A  ; Kharoshthi # Mn   [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
 10A3F         ; Kharoshthi # Mn       KHAROSHTHI VIRAMA
-10A40..10A47  ; Kharoshthi # No   [8] KHAROSHTHI DIGIT ONE..KHAROSHTHI NUMBER ONE THOUSAND
+10A40..10A48  ; Kharoshthi # No   [9] KHAROSHTHI DIGIT ONE..KHAROSHTHI FRACTION ONE HALF
 10A50..10A58  ; Kharoshthi # Po   [9] KHAROSHTHI PUNCTUATION DOT..KHAROSHTHI PUNCTUATION LINES
 
-# Total code points: 65
+# Total code points: 68
 
 # ================================================
 
@@ -1841,8 +1854,10 @@
 07F6          ; Nko # So       NKO SYMBOL OO DENNEN
 07F7..07F9    ; Nko # Po   [3] NKO SYMBOL GBAKURUNEN..NKO EXCLAMATION MARK
 07FA          ; Nko # Lm       NKO LAJANYALAN
-
-# Total code points: 59
+07FD          ; Nko # Mn       NKO DANTAYALAN
+07FE..07FF    ; Nko # Sc   [2] NKO DOROME SIGN..NKO TAMAN SIGN
+
+# Total code points: 62
 
 # ================================================
 
@@ -2137,8 +2152,9 @@
 110BB..110BC  ; Kaithi # Po   [2] KAITHI ABBREVIATION SIGN..KAITHI ENUMERATION SIGN
 110BD         ; Kaithi # Cf       KAITHI NUMBER SIGN
 110BE..110C1  ; Kaithi # Po   [4] KAITHI SECTION MARK..KAITHI DOUBLE DANDA
-
-# Total code points: 66
+110CD         ; Kaithi # Cf       KAITHI NUMBER SIGN ABOVE
+
+# Total code points: 67
 
 # ================================================
 
@@ -2186,8 +2202,10 @@
 1112D..11134  ; Chakma # Mn   [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA
 11136..1113F  ; Chakma # Nd  [10] CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE
 11140..11143  ; Chakma # Po   [4] CHAKMA SECTION MARK..CHAKMA QUESTION MARK
-
-# Total code points: 67
+11144         ; Chakma # Lo       CHAKMA LETTER LHAA
+11145..11146  ; Chakma # Mc   [2] CHAKMA VOWEL SIGN AA..CHAKMA VOW