texlive[48216] Build/source/libs: harfbuzz 1.8.4

commits+kakuto at tug.org commits+kakuto at tug.org
Wed Jul 18 00:07:21 CEST 2018


Revision: 48216
          http://tug.org/svn/texlive?view=revision&revision=48216
Author:   kakuto
Date:     2018-07-18 00:07:21 +0200 (Wed, 18 Jul 2018)
Log Message:
-----------
harfbuzz 1.8.4

Modified Paths:
--------------
    trunk/Build/source/libs/README
    trunk/Build/source/libs/harfbuzz/ChangeLog
    trunk/Build/source/libs/harfbuzz/TLpatches/ChangeLog
    trunk/Build/source/libs/harfbuzz/TLpatches/TL-Changes
    trunk/Build/source/libs/harfbuzz/configure
    trunk/Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog
    trunk/Build/source/libs/harfbuzz/harfbuzz-src/NEWS
    trunk/Build/source/libs/harfbuzz/harfbuzz-src/RELEASING.md
    trunk/Build/source/libs/harfbuzz/harfbuzz-src/configure.ac
    trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/Makefile.am
    trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-atomic-private.hh
    trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-dsalgs.hh
    trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-object-private.hh
    trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-open-type-private.hh
    trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-arabic.cc
    trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-private.hh
    trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-static.cc
    trunk/Build/source/libs/harfbuzz/version.ac

Modified: trunk/Build/source/libs/README
===================================================================
--- trunk/Build/source/libs/README	2018-07-17 21:17:21 UTC (rev 48215)
+++ trunk/Build/source/libs/README	2018-07-17 22:07:21 UTC (rev 48216)
@@ -24,7 +24,7 @@
 graphite2 1.3.11 - checked 05mar18
   http://sourceforge.net/projects/silgraphite/files/graphite2/
 
-harfbuzz 1.8.3 - checked 13jul18
+harfbuzz 1.8.4 - checked 18jul18
   http://www.freedesktop.org/software/harfbuzz/release/
 
 icu 61.1 - checked 29mar18

Modified: trunk/Build/source/libs/harfbuzz/ChangeLog
===================================================================
--- trunk/Build/source/libs/harfbuzz/ChangeLog	2018-07-17 21:17:21 UTC (rev 48215)
+++ trunk/Build/source/libs/harfbuzz/ChangeLog	2018-07-17 22:07:21 UTC (rev 48216)
@@ -1,3 +1,8 @@
+2018-07-18  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
+
+	Import harfbuzz-1.8.4.
+	* version.ac: Adjusted.
+
 2018-07-13  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
 
 	Import harfbuzz-1.8.3.

Modified: trunk/Build/source/libs/harfbuzz/TLpatches/ChangeLog
===================================================================
--- trunk/Build/source/libs/harfbuzz/TLpatches/ChangeLog	2018-07-17 21:17:21 UTC (rev 48215)
+++ trunk/Build/source/libs/harfbuzz/TLpatches/ChangeLog	2018-07-17 22:07:21 UTC (rev 48216)
@@ -1,3 +1,8 @@
+2018-07-18  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
+
+	Imported harfbuzz-1.8.4 source tree from:
+	  http://www.freedesktop.org/software/harfbuzz/release/
+
 2018-07-13  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
 
 	Imported harfbuzz-1.8.3 source tree from:

Modified: trunk/Build/source/libs/harfbuzz/TLpatches/TL-Changes
===================================================================
--- trunk/Build/source/libs/harfbuzz/TLpatches/TL-Changes	2018-07-17 21:17:21 UTC (rev 48215)
+++ trunk/Build/source/libs/harfbuzz/TLpatches/TL-Changes	2018-07-17 22:07:21 UTC (rev 48216)
@@ -1,4 +1,4 @@
-Changes applied to the harfbuzz-1.8.3/ tree as obtained from:
+Changes applied to the harfbuzz-1.8.4/ tree as obtained from:
 	http://www.freedesktop.org/software/harfbuzz/release/
 
 Removed:

Modified: trunk/Build/source/libs/harfbuzz/configure
===================================================================
--- trunk/Build/source/libs/harfbuzz/configure	2018-07-17 21:17:21 UTC (rev 48215)
+++ trunk/Build/source/libs/harfbuzz/configure	2018-07-17 22:07:21 UTC (rev 48216)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for harfbuzz (TeX Live) 1.8.3.
+# Generated by GNU Autoconf 2.69 for harfbuzz (TeX Live) 1.8.4.
 #
 # Report bugs to <tex-k at tug.org>.
 #
@@ -580,8 +580,8 @@
 # Identity of this package.
 PACKAGE_NAME='harfbuzz (TeX Live)'
 PACKAGE_TARNAME='harfbuzz--tex-live-'
-PACKAGE_VERSION='1.8.3'
-PACKAGE_STRING='harfbuzz (TeX Live) 1.8.3'
+PACKAGE_VERSION='1.8.4'
+PACKAGE_STRING='harfbuzz (TeX Live) 1.8.4'
 PACKAGE_BUGREPORT='tex-k at tug.org'
 PACKAGE_URL=''
 
@@ -1317,7 +1317,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures harfbuzz (TeX Live) 1.8.3 to adapt to many kinds of systems.
+\`configure' configures harfbuzz (TeX Live) 1.8.4 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1388,7 +1388,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of harfbuzz (TeX Live) 1.8.3:";;
+     short | recursive ) echo "Configuration of harfbuzz (TeX Live) 1.8.4:";;
    esac
   cat <<\_ACEOF
 
@@ -1495,7 +1495,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-harfbuzz (TeX Live) configure 1.8.3
+harfbuzz (TeX Live) configure 1.8.4
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2131,7 +2131,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by harfbuzz (TeX Live) $as_me 1.8.3, which was
+It was created by harfbuzz (TeX Live) $as_me 1.8.4, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -4054,7 +4054,7 @@
 
 # Define the identity of the package.
  PACKAGE='harfbuzz--tex-live-'
- VERSION='1.8.3'
+ VERSION='1.8.4'
 
 
 # Some tools Automake needs.
@@ -4248,8 +4248,8 @@
 
 HB_VERSION_MAJOR=1
 HB_VERSION_MINOR=8
-HB_VERSION_MICRO=3
-HB_VERSION=1.8.3
+HB_VERSION_MICRO=4
+HB_VERSION=1.8.4
 
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
@@ -8140,7 +8140,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by harfbuzz (TeX Live) $as_me 1.8.3, which was
+This file was extended by harfbuzz (TeX Live) $as_me 1.8.4, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -8206,7 +8206,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-harfbuzz (TeX Live) config.status 1.8.3
+harfbuzz (TeX Live) config.status 1.8.4
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 

Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog	2018-07-17 21:17:21 UTC (rev 48215)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog	2018-07-17 22:07:21 UTC (rev 48216)
@@ -1,3 +1,187 @@
+commit 04b7b81bcbf19cb85d06d930192d6591ba45ef72
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date:   Tue Jul 17 10:57:01 2018 +0200
+
+    Reland "Implement C++11-style GCC builtin atomic ops"
+
+    Fixed the crasher in it.
+
+ src/hb-atomic-private.hh | 22 +++++++++++++++++++---
+ src/hb-object-private.hh |  2 +-
+ 2 files changed, 20 insertions(+), 4 deletions(-)
+
+commit 019d18e9ae643134bfc3861be65ac618a5892c92
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date:   Tue Jul 17 10:59:19 2018 +0200
+
+    Minor
+
+ src/Makefile.am      | 1 +
+ test/api/Makefile.am | 2 ++
+ 2 files changed, 3 insertions(+)
+
+commit 3edef5a19b5c0f30381ae6fe01c3370ded37f6ca
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date:   Tue Jul 17 10:50:01 2018 +0200
+
+    Revert "Implement C++11-style GCC builtin atomic ops"
+
+    This reverts commit 21fa170f0bfb0109c506ed17f5aff8b062564ffa.
+
+    Is crashing.  Oops.
+
+ src/hb-atomic-private.hh | 22 +++-------------------
+ src/hb-object-private.hh |  2 +-
+ 2 files changed, 4 insertions(+), 20 deletions(-)
+
+commit 21fa170f0bfb0109c506ed17f5aff8b062564ffa
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date:   Mon Jul 16 17:58:02 2018 +0200
+
+    Implement C++11-style GCC builtin atomic ops
+
+    Hopefully fixes bots.
+
+ src/hb-atomic-private.hh | 22 +++++++++++++++++++---
+ src/hb-object-private.hh |  2 +-
+ 2 files changed, 20 insertions(+), 4 deletions(-)
+
+commit 804b59cf4901d471253016e0cbf82cc1bbbc1d15
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date:   Mon Jul 16 15:44:58 2018 +0200
+
+    Relax C++11 atomic ops memory order to acquire-release
+
+ src/hb-atomic-private.hh | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+commit bda242409fc0cbb79a0ff00eba9856c4b0a9c7a1
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date:   Mon Jul 16 15:41:09 2018 +0200
+
+    Implement C++11 <atomic> operations
+
+    Fixes https://github.com/harfbuzz/harfbuzz/issues/345
+
+ src/hb-atomic-private.hh          | 27 ++++++++++++++++++++++++---
+ src/hb-open-type-private.hh       |  2 +-
+ src/hb-ot-shape-complex-arabic.cc |  2 +-
+ 3 files changed, 26 insertions(+), 5 deletions(-)
+
+commit 524411224054b23bab4adad7343314df45c9c183
+Merge: 2aae617a 269eb456
+Author: Cosimo Lupo <cosimo at anthrotype.com>
+Date:   Mon Jul 16 14:42:43 2018 +0200
+
+    Merge pull request #1094 from anthrotype/fix-appveyor-msys2
+
+    appveyor.yml: try updating msys2 to fix failing mingw-w64-x86_64 build
+
+commit 269eb45650be66901627da7f1014339065a948a5
+Author: Cosimo Lupo <cosimo at anthrotype.com>
+Date:   Mon Jul 16 14:14:42 2018 +0200
+
+    appveyor.yml: try only updating msys2 core, not the rest of the
+    packages
+
+    maybe it'll get a bit faster
+
+ appveyor.yml | 1 -
+ 1 file changed, 1 deletion(-)
+
+commit 3ab52c6cb5c405366af804d278216e2d02a39ecb
+Author: Cosimo Lupo <cosimo at anthrotype.com>
+Date:   Mon Jul 16 12:57:27 2018 +0200
+
+    appveyor.yml: pass --needed option to pacman
+
+    so it won't attempt reinstalling packages which are already installed
+
+ appveyor.yml | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 5631d70d36aa7952d343ea794bd5169a730706ae
+Author: Cosimo Lupo <cosimo at anthrotype.com>
+Date:   Mon Jul 16 12:41:59 2018 +0200
+
+    appveyor.yml: try updating msys2 to fix failing mingw-w64-x86_64 build
+
+    https://github.com/harfbuzz/harfbuzz/pull/1093#issuecomment-405201903
+    https://ci.appveyor.com/project/harfbuzz/harfbuzz/build/job/ky7lao1ii1bi7ew4#L71
+
+ appveyor.yml | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit 2aae617a84f47836f10efd30df43e13e3a9447e1
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date:   Wed Jul 11 17:27:23 2018 +0200
+
+    Move _hb_alignof later again
+
+    It uses constexpr...
+
+ src/hb-private.hh | 26 +++++++++++++-------------
+ 1 file changed, 13 insertions(+), 13 deletions(-)
+
+commit f3a74c16ecafdca135a647ebe85117c35c1ef585
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date:   Wed Jul 11 17:23:53 2018 +0200
+
+    Make hb_vector_t 8 bytes smaller
+
+ src/hb-dsalgs.hh | 8 +++-----
+ 1 file changed, 3 insertions(+), 5 deletions(-)
+
+commit 44999f8b758374015f5d48c83f9adcb464607c2f
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date:   Wed Jul 11 17:00:59 2018 +0200
+
+    Align NullPool and CrapPool to HB_VECTOR_SIZE
+
+ src/hb-dsalgs.hh  |  3 +--
+ src/hb-private.hh | 64
+ ++++++++++++++++++++++++++++++++-----------------------
+ src/hb-static.cc  |  4 ++--
+ 3 files changed, 40 insertions(+), 31 deletions(-)
+
+commit 20a318d06acaabdee0090339dfa621aab46f1441
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date:   Wed Jul 11 17:00:13 2018 +0200
+
+    Fix return type of alignof() fallback
+
+ src/hb-private.hh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 58cb4d9f73f1292454e3673d5e7ae5a58a566522
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date:   Wed Jul 11 16:44:21 2018 +0200
+
+    Minor
+
+ test/api/test-ot-math.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 7796857c93b779e3c93eedd1cceb217d691dfd81
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date:   Wed Jul 11 15:27:37 2018 +0200
+
+    Minor
+
+ RELEASING.md | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 2b76767bf572364d3d647cdd139f2044a7ad06b2
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date:   Wed Jul 11 15:27:13 2018 +0200
+
+    1.8.3
+
+ NEWS             | 8 ++++++++
+ configure.ac     | 2 +-
+ src/hb-version.h | 4 ++--
+ 3 files changed, 11 insertions(+), 3 deletions(-)
+
 commit 718dfd4189275b1e4233dc7c12ab457352fccfcb
 Author: Behdad Esfahbod <behdad at behdad.org>
 Date:   Tue Jul 10 16:34:31 2018 +0200

Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/NEWS
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/NEWS	2018-07-17 21:17:21 UTC (rev 48215)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/NEWS	2018-07-17 22:07:21 UTC (rev 48216)
@@ -1,3 +1,10 @@
+Overview of changes leading to 1.8.4
+Tuesday, July 17, 2018
+====================================
+- Fix build on non-C++11.
+- Use C++-style GCC atomics and C++11 atomics.
+
+
 Overview of changes leading to 1.8.3
 Wednesday, July 11, 2018
 ====================================

Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/RELEASING.md
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/RELEASING.md	2018-07-17 21:17:21 UTC (rev 48215)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/RELEASING.md	2018-07-17 22:07:21 UTC (rev 48216)
@@ -29,7 +29,7 @@
 7. "make release-files".  Enter your GPG password.  This creates a sha256 hash
    and signs it.
 
-8. Now that you have release files built, commit NEWS and configure.ac changes,
+8. Now that you have release files, commit NEWS, configure.ac, and src/hb-version.h,
    as well as any REPLACEME changes you made.  The commit message is simply the
    release number.  Eg. "1.4.7"
 

Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/configure.ac
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/configure.ac	2018-07-17 21:17:21 UTC (rev 48215)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/configure.ac	2018-07-17 22:07:21 UTC (rev 48216)
@@ -1,6 +1,6 @@
 AC_PREREQ([2.64])
 AC_INIT([HarfBuzz],
-        [1.8.3],
+        [1.8.4],
         [https://github.com/harfbuzz/harfbuzz/issues/new],
         [harfbuzz],
         [http://harfbuzz.org/])

Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/Makefile.am
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/Makefile.am	2018-07-17 21:17:21 UTC (rev 48215)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/Makefile.am	2018-07-17 22:07:21 UTC (rev 48216)
@@ -14,6 +14,7 @@
 
 # Convenience targets:
 lib: $(BUILT_SOURCES) libharfbuzz.la libharfbuzz-subset.la
+libs: $(BUILT_SOURCES) $(lib_LTLIBRARIES)
 fuzzing: $(BUILT_SOURCES) libharfbuzz-fuzzing.la libharfbuzz-subset-fuzzing.la
 
 lib_LTLIBRARIES = libharfbuzz.la

Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-atomic-private.hh
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-atomic-private.hh	2018-07-17 21:17:21 UTC (rev 48215)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-atomic-private.hh	2018-07-17 22:07:21 UTC (rev 48216)
@@ -46,6 +46,41 @@
 /* Defined externally, i.e. in config.h; must have typedef'ed hb_atomic_int_impl_t as well. */
 
 
+#elif !defined(HB_NO_MT) && defined(__ATOMIC_ACQUIRE)
+
+/* C++11-style GCC primitives. */
+
+typedef int hb_atomic_int_impl_t;
+#define hb_atomic_int_impl_add(AI, V)		__atomic_fetch_add (&(AI), (V), __ATOMIC_ACQ_REL)
+
+#define hb_atomic_ptr_impl_get(P)		__atomic_load_n ((P), __ATOMIC_ACQUIRE)
+static inline bool
+_hb_atomic_ptr_impl_cmplexch (const void **P, const void *O_, const void *N)
+{
+  const void *O = O_; // Need lvalue
+  return __atomic_compare_exchange_n ((void **) P, (void **) &O, (void *) N, true, __ATOMIC_ACQ_REL, __ATOMIC_RELAXED);
+}
+#define hb_atomic_ptr_impl_cmpexch(P,O,N)	(_hb_atomic_ptr_impl_cmplexch ((const void **) (P), (O), (N)))
+
+#elif !defined(HB_NO_MT) && __cplusplus >= 201103L
+
+/* C++11 atomics. */
+
+#include <atomic>
+
+typedef int hb_atomic_int_impl_t;
+#define hb_atomic_int_impl_add(AI, V)		(reinterpret_cast<std::atomic<int> *> (&AI)->fetch_add ((V), std::memory_order_acq_rel))
+
+#define hb_atomic_ptr_impl_get(P)		(reinterpret_cast<std::atomic<void*> *> (P)->load (std::memory_order_acquire))
+static inline bool
+_hb_atomic_ptr_impl_cmplexch (const void **P, const void *O_, const void *N)
+{
+  const void *O = O_; // Need lvalue
+  return reinterpret_cast<std::atomic<const void*> *> (P)->compare_exchange_weak (O, N, std::memory_order_acq_rel, std::memory_order_relaxed);
+}
+#define hb_atomic_ptr_impl_cmpexch(P,O,N)	(_hb_atomic_ptr_impl_cmplexch ((const void **) (P), (O), (N)))
+
+
 #elif !defined(HB_NO_MT) && (defined(_WIN32) || defined(__CYGWIN__))
 
 #include <windows.h>
@@ -162,16 +197,18 @@
 #endif
 
 
+#ifndef HB_ATOMIC_INT_INIT
 #define HB_ATOMIC_INT_INIT(V)          {V}
+#endif
 
 struct hb_atomic_int_t
 {
-  hb_atomic_int_impl_t v;
+  mutable hb_atomic_int_impl_t v;
 
   inline void set_unsafe (int v_) { v = v_; }
   inline int get_unsafe (void) const { return v; }
-  inline int inc (void) { return hb_atomic_int_impl_add (const_cast<hb_atomic_int_impl_t &> (v),  1); }
-  inline int dec (void) { return hb_atomic_int_impl_add (const_cast<hb_atomic_int_impl_t &> (v), -1); }
+  inline int inc (void) { return hb_atomic_int_impl_add (v,  1); }
+  inline int dec (void) { return hb_atomic_int_impl_add (v, -1); }
 };
 
 

Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-dsalgs.hh
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-dsalgs.hh	2018-07-17 21:17:21 UTC (rev 48215)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-dsalgs.hh	2018-07-17 22:07:21 UTC (rev 48216)
@@ -450,8 +450,7 @@
 struct hb_vector_t
 {
   unsigned int len;
-  unsigned int allocated;
-  bool successful;
+  unsigned int allocated; /* == 0 means allocation failed. */
   Type *arrayZ;
   Type static_array[StaticSize];
 
@@ -459,7 +458,6 @@
   {
     len = 0;
     allocated = ARRAY_LENGTH (static_array);
-    successful = true;
     arrayZ = static_array;
   }
 
@@ -492,7 +490,7 @@
   /* Allocate for size but don't adjust len. */
   inline bool alloc (unsigned int size)
   {
-    if (unlikely (!successful))
+    if (unlikely (!allocated))
       return false;
 
     if (likely (size <= allocated))
@@ -521,7 +519,7 @@
 
     if (unlikely (!new_array))
     {
-      successful = false;
+      allocated = 0;
       return false;
     }
 
@@ -854,8 +852,7 @@
   union {
     elt_t v[byte_size / sizeof (elt_t)];
 #if HB_VECTOR_SIZE
-    typedef unsigned long vec_t __attribute__((vector_size (HB_VECTOR_SIZE / 8)));
-    vec_t vec[byte_size / sizeof (vec_t)];
+    hb_vector_size_impl_t vec[byte_size / sizeof (hb_vector_size_impl_t)];
 #endif
   } u;
 };

Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-object-private.hh
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-object-private.hh	2018-07-17 21:17:21 UTC (rev 48215)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-object-private.hh	2018-07-17 22:07:21 UTC (rev 48216)
@@ -94,7 +94,7 @@
 struct hb_object_header_t
 {
   hb_reference_count_t ref_count;
-  hb_user_data_array_t *user_data;
+  mutable hb_user_data_array_t *user_data;
 
 #define HB_OBJECT_HEADER_STATIC {HB_REFERENCE_COUNT_INIT, nullptr}
 

Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-open-type-private.hh
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-open-type-private.hh	2018-07-17 21:17:21 UTC (rev 48215)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-open-type-private.hh	2018-07-17 22:07:21 UTC (rev 48216)
@@ -1247,7 +1247,7 @@
 
   private:
   hb_face_t *face;
-  T *instance;
+  mutable T *instance;
 };
 
 /* Logic is shared between hb_lazy_loader_t and hb_table_lazy_loader_t */

Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-arabic.cc
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-arabic.cc	2018-07-17 21:17:21 UTC (rev 48215)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-arabic.cc	2018-07-17 22:07:21 UTC (rev 48216)
@@ -250,7 +250,7 @@
    * mask_array[NONE] == 0. */
   hb_mask_t mask_array[ARABIC_NUM_FEATURES + 1];
 
-  arabic_fallback_plan_t *fallback_plan;
+  mutable arabic_fallback_plan_t *fallback_plan;
 
   unsigned int do_fallback : 1;
   unsigned int has_stch : 1;

Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-private.hh
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-private.hh	2018-07-17 21:17:21 UTC (rev 48215)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-private.hh	2018-07-17 22:07:21 UTC (rev 48216)
@@ -84,20 +84,10 @@
 #endif
 
 
-/* Compiler attributes */
+/*
+ * Compiler attributes
+ * */
 
-
-template <typename T>
-struct _hb_alignof
-{
-  struct s
-  {
-    char c;
-    T t;
-  };
-  static constexpr unsigned int value = offsetof (s, t);
-};
-
 #if __cplusplus < 201103L
 
 #ifndef nullptr
@@ -122,6 +112,16 @@
 #define thread_local
 #endif
 
+template <typename T>
+struct _hb_alignof
+{
+  struct s
+  {
+    char c;
+    T t;
+  };
+  static constexpr size_t value = offsetof (s, t);
+};
 #ifndef alignof
 #define alignof(x) (_hb_alignof<x>::value)
 #endif // alignof
@@ -334,7 +334,40 @@
   TypeName(const TypeName&); \
   void operator=(const TypeName&)
 
+
 /*
+ * Compiler-assisted vectorization parameters.
+ */
+
+/*
+ * Disable vectorization for now.  To correctly use them, we should
+ * use posix_memalign() to allocate in hb_vector_t.  Otherwise, can
+ * cause misaligned access.
+ *
+ * https://bugs.chromium.org/p/chromium/issues/detail?id=860184
+ */
+#if !defined(HB_VECTOR_SIZE)
+#  define HB_VECTOR_SIZE 0
+#endif
+
+/* The `vector_size' attribute was introduced in gcc 3.1. */
+#if !defined(HB_VECTOR_SIZE)
+#  if defined( __GNUC__ ) && ( __GNUC__ >= 4 )
+#    define HB_VECTOR_SIZE 128
+#  else
+#    define HB_VECTOR_SIZE 0
+#  endif
+#endif
+static_assert (0 == (HB_VECTOR_SIZE & (HB_VECTOR_SIZE - 1)), "HB_VECTOR_SIZE is not power of 2.");
+static_assert (0 == (HB_VECTOR_SIZE % 64), "HB_VECTOR_SIZE is not multiple of 64.");
+#if HB_VECTOR_SIZE
+typedef uint64_t hb_vector_size_impl_t __attribute__((vector_size (HB_VECTOR_SIZE / 8)));
+#else
+typedef uint64_t hb_vector_size_impl_t;
+#endif
+
+
+/*
  * Static pools
  */
 
@@ -341,7 +374,6 @@
 /* Global nul-content Null pool.  Enlarge as necessary. */
 
 #define HB_NULL_POOL_SIZE 264
-static_assert (HB_NULL_POOL_SIZE % sizeof (void *) == 0, "Align HB_NULL_POOL_SIZE.");
 
 #ifdef HB_NO_VISIBILITY
 static
@@ -348,11 +380,12 @@
 #else
 extern HB_INTERNAL
 #endif
-void * const _hb_NullPool[HB_NULL_POOL_SIZE / sizeof (void *)]
+hb_vector_size_impl_t const _hb_NullPool[(HB_NULL_POOL_SIZE + sizeof (hb_vector_size_impl_t) - 1) / sizeof (hb_vector_size_impl_t)]
 #ifdef HB_NO_VISIBILITY
 = {}
 #endif
 ;
+
 /* Generic nul-content Null objects. */
 template <typename Type>
 static inline Type const & Null (void) {
@@ -385,11 +418,12 @@
 #else
 extern HB_INTERNAL
 #endif
-/*thread_local*/ void * _hb_CrapPool[HB_NULL_POOL_SIZE / sizeof (void *)]
+/*thread_local*/ hb_vector_size_impl_t _hb_CrapPool[(HB_NULL_POOL_SIZE + sizeof (hb_vector_size_impl_t) - 1) / sizeof (hb_vector_size_impl_t)]
 #ifdef HB_NO_VISIBILITY
 = {}
 #endif
 ;
+
 /* CRAP pool: Common Region for Access Protection. */
 template <typename Type>
 static inline Type& Crap (void) {
@@ -503,30 +537,6 @@
 #define FLAG_RANGE(x,y) (ASSERT_STATIC_EXPR_ZERO ((x) < (y)) + FLAG(y+1) - FLAG(x))
 
 
-
-/* Compiler-assisted vectorization. */
-
-/*
- * Disable vectorization for now.  To correctly use them, we should
- * use posix_memalign() to allocate them.  Otherwise, can cause
- * misaligned access.
- *
- * https://bugs.chromium.org/p/chromium/issues/detail?id=860184
- */
-#if !defined(HB_VECTOR_SIZE)
-#  define HB_VECTOR_SIZE 0
-#endif
-
-/* The `vector_size' attribute was introduced in gcc 3.1. */
-#if !defined(HB_VECTOR_SIZE)
-#  if defined( __GNUC__ ) && ( __GNUC__ >= 4 )
-#    define HB_VECTOR_SIZE 128
-#  else
-#    define HB_VECTOR_SIZE 0
-#  endif
-#endif
-
-
 /* Global runtime options. */
 
 struct hb_options_t

Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-static.cc
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-static.cc	2018-07-17 21:17:21 UTC (rev 48215)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-static.cc	2018-07-17 22:07:21 UTC (rev 48216)
@@ -27,6 +27,6 @@
 #include "hb-private.hh"
 
 #ifndef HB_NO_VISIBILITY
-void * const _hb_NullPool[HB_NULL_POOL_SIZE / sizeof (void *)] = {};
-/*thread_local*/ void * _hb_CrapPool[HB_NULL_POOL_SIZE / sizeof (void *)] = {};
+hb_vector_size_impl_t const _hb_NullPool[(HB_NULL_POOL_SIZE + sizeof (hb_vector_size_impl_t) - 1) / sizeof (hb_vector_size_impl_t)] = {};
+/*thread_local*/ hb_vector_size_impl_t _hb_CrapPool[(HB_NULL_POOL_SIZE + sizeof (hb_vector_size_impl_t) - 1) / sizeof (hb_vector_size_impl_t)] = {};
 #endif

Modified: trunk/Build/source/libs/harfbuzz/version.ac
===================================================================
--- trunk/Build/source/libs/harfbuzz/version.ac	2018-07-17 21:17:21 UTC (rev 48215)
+++ trunk/Build/source/libs/harfbuzz/version.ac	2018-07-17 22:07:21 UTC (rev 48216)
@@ -8,4 +8,4 @@
 dnl --------------------------------------------------------
 dnl
 dnl  m4-include this file to define the current harfbuzz version
-m4_define([harfbuzz_version], [1.8.3])
+m4_define([harfbuzz_version], [1.8.4])



More information about the tex-live-commits mailing list