gem install charlock_holmes
Building native extensions. This could take a while...
ERROR: Error installing charlock_holmes:
ERROR: Failed to build gem native extension.
current directory: /Users/me/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/charlock_holmes-0.7.8/ext/charlock_holmes
/Users/me/.rbenv/versions/3.3.3/bin/ruby extconf.rb
checking for pkg-config for icu-i18n... not found
checking for pkg-config for icu-io... not found
checking for pkg-config for icu-uc... not found
checking for -licui18n... yes
checking for unicode/ucnv.h... yes
checking for -lz... yes
checking for -licuuc... yes
checking for -licudata... yes
creating Makefile
current directory: /Users/me/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/charlock_holmes-0.7.8/ext/charlock_holmes
make DESTDIR\= sitearchdir\=./.gem.20240704-49730-lnpeup sitelibdir\=./.gem.20240704-49730-lnpeup clean
current directory: /Users/me/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/charlock_holmes-0.7.8/ext/charlock_holmes
make DESTDIR\= sitearchdir\=./.gem.20240704-49730-lnpeup sitelibdir\=./.gem.20240704-49730-lnpeup
compiling converter.c
converter.c:23:12: warning: implicit conversion loses integer precision: 'long' to 'int32_t' (aka 'int') [-Wshorten-64-to-32]
src_len = RSTRING_LEN(rb_txt);
~ ^~~~~~~~~~~~~~~~~~~
/Users/me/.rbenv/versions/3.3.3/include/ruby-3.3.0/ruby/internal/core/rstring.h:46:27: note: expanded from macro 'RSTRING_LEN'
#define RSTRING_LEN RSTRING_LEN
^
1 warning generated.
compiling encoding_detector.c
encoding_detector.c:183:71: warning: implicit conversion loses integer precision: 'long' to 'int32_t' (aka 'int') [-Wshorten-64-to-32]
ucsdet_setDeclaredEncoding(detector->csd, RSTRING_PTR(rb_enc_hint), RSTRING_LEN(rb_enc_hint), &status);
~~~~~~~~~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~
/Users/me/.rbenv/versions/3.3.3/include/ruby-3.3.0/ruby/internal/core/rstring.h:46:27: note: expanded from macro 'RSTRING_LEN'
#define RSTRING_LEN RSTRING_LEN
^
encoding_detector.c:232:71: warning: implicit conversion loses integer precision: 'long' to 'int32_t' (aka 'int') [-Wshorten-64-to-32]
ucsdet_setDeclaredEncoding(detector->csd, RSTRING_PTR(rb_enc_hint), RSTRING_LEN(rb_enc_hint), &status);
~~~~~~~~~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~
/Users/me/.rbenv/versions/3.3.3/include/ruby-3.3.0/ruby/internal/core/rstring.h:46:27: note: expanded from macro 'RSTRING_LEN'
#define RSTRING_LEN RSTRING_LEN
^
2 warnings generated.
compiling ext.c
compiling transliterator.cpp
In file included from transliterator.cpp:5:
In file included from /opt/homebrew/opt/icu4c/include/unicode/translit.h:26:
/opt/homebrew/opt/icu4c/include/unicode/uobject.h:134:54: error: expected ';' at end of declaration list
static void * U_EXPORT2 operator new(size_t size) noexcept;
^
;
/opt/homebrew/opt/icu4c/include/unicode/uobject.h:141:56: error: expected ';' at end of declaration list
static void * U_EXPORT2 operator new[](size_t size) noexcept;
^
;
/opt/homebrew/opt/icu4c/include/unicode/uobject.h:151:51: error: expected ';' at end of declaration list
static void U_EXPORT2 operator delete(void *p) noexcept;
^
;
/opt/homebrew/opt/icu4c/include/unicode/uobject.h:158:53: error: expected ';' at end of declaration list
static void U_EXPORT2 operator delete[](void *p) noexcept;
^
;
/opt/homebrew/opt/icu4c/include/unicode/uobject.h:166:67: error: expected ';' at end of declaration list
static inline void * U_EXPORT2 operator new(size_t, void *ptr) noexcept { return ptr; }
^
;
In file included from transliterator.cpp:5:
In file included from /opt/homebrew/opt/icu4c/include/unicode/translit.h:27:
In file included from /opt/homebrew/opt/icu4c/include/unicode/unistr.h:36:
/opt/homebrew/opt/icu4c/include/unicode/char16ptr.h:42:30: warning: 'final' keyword is a C++11 extension [-Wc++11-extensions]
class U_COMMON_API Char16Ptr final {
^
/opt/homebrew/opt/icu4c/include/unicode/char16ptr.h:93:19: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions]
Char16Ptr() = delete;
^
/opt/homebrew/opt/icu4c/include/unicode/char16ptr.h:149:35: warning: 'final' keyword is a C++11 extension [-Wc++11-extensions]
class U_COMMON_API ConstChar16Ptr final {
^
/opt/homebrew/opt/icu4c/include/unicode/char16ptr.h:201:24: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions]
ConstChar16Ptr() = delete;
^
In file included from transliterator.cpp:5:
In file included from /opt/homebrew/opt/icu4c/include/unicode/translit.h:27:
In file included from /opt/homebrew/opt/icu4c/include/unicode/unistr.h:39:
/opt/homebrew/opt/icu4c/include/unicode/stringpiece.h:133:22: warning: default template arguments for a function template are a C++11 extension [-Wc++11-extensions]
typename = typename std::enable_if<
^ ~~~~~~~~~~~~~~~~~~~~~~~~
In file included from transliterator.cpp:5:
In file included from /opt/homebrew/opt/icu4c/include/unicode/translit.h:27:
In file included from /opt/homebrew/opt/icu4c/include/unicode/unistr.h:40:
/opt/homebrew/opt/icu4c/include/unicode/bytestream.h:164:32: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions]
ByteSink(const ByteSink &) = delete;
^
/opt/homebrew/opt/icu4c/include/unicode/bytestream.h:165:43: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions]
ByteSink &operator=(const ByteSink &) = delete;
^
/opt/homebrew/opt/icu4c/include/unicode/bytestream.h:209:53: warning: 'override' keyword is a C++11 extension [-Wc++11-extensions]
virtual void Append(const char* bytes, int32_t n) override;
^
/opt/homebrew/opt/icu4c/include/unicode/bytestream.h:227:59: warning: 'override' keyword is a C++11 extension [-Wc++11-extensions]
int32_t* result_capacity) override;
^
/opt/homebrew/opt/icu4c/include/unicode/bytestream.h:256:28: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions]
CheckedArrayByteSink() = delete;
^
/opt/homebrew/opt/icu4c/include/unicode/bytestream.h:257:56: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions]
CheckedArrayByteSink(const CheckedArrayByteSink &) = delete;
^
/opt/homebrew/opt/icu4c/include/unicode/bytestream.h:258:67: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions]
CheckedArrayByteSink &operator=(const CheckedArrayByteSink &) = delete;
^
/opt/homebrew/opt/icu4c/include/unicode/bytestream.h:294:52: warning: 'override' keyword is a C++11 extension [-Wc++11-extensions]
virtual void Append(const char* data, int32_t n) override { dest_->append(data, n); }
^
/opt/homebrew/opt/icu4c/include/unicode/bytestream.h:298:22: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions]
StringByteSink() = delete;
^
/opt/homebrew/opt/icu4c/include/unicode/bytestream.h:299:44: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions]
StringByteSink(const StringByteSink &) = delete;
^
/opt/homebrew/opt/icu4c/include/unicode/bytestream.h:300:55: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions]
StringByteSink &operator=(const StringByteSink &) = delete;
^
In file included from transliterator.cpp:5:
In file included from /opt/homebrew/opt/icu4c/include/unicode/translit.h:27:
/opt/homebrew/opt/icu4c/include/unicode/unistr.h:1529:44: warning: 'override' keyword is a C++11 extension [-Wc++11-extensions]
UnicodeString& target) const override;
^
/opt/homebrew/opt/icu4c/include/unicode/unistr.h:1909:42: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
UnicodeString &operator=(UnicodeString &&src) noexcept;
^
/opt/homebrew/opt/icu4c/include/unicode/unistr.h:1909:48: error: expected ';' at end of declaration list
UnicodeString &operator=(UnicodeString &&src) noexcept;
^
;
/opt/homebrew/opt/icu4c/include/unicode/unistr.h:1916:34: error: expected ';' at end of declaration list
void swap(UnicodeString &other) noexcept;
^
;
/opt/homebrew/opt/icu4c/include/unicode/unistr.h:1925:45: error: expected ';' at end of declaration list
swap(UnicodeString &s1, UnicodeString &s2) noexcept {
^
;
/opt/homebrew/opt/icu4c/include/unicode/unistr.h:2459:64: warning: 'override' keyword is a C++11 extension [-Wc++11-extensions]
const UnicodeString& text) override;
^
/opt/homebrew/opt/icu4c/include/unicode/unistr.h:2466:37: warning: 'override' keyword is a C++11 extension [-Wc++11-extensions]
virtual UBool hasMetaData() const override;
^
/opt/homebrew/opt/icu4c/include/unicode/unistr.h:2481:65: warning: 'override' keyword is a C++11 extension [-Wc++11-extensions]
virtual void copy(int32_t start, int32_t limit, int32_t dest) override;
^
/opt/homebrew/opt/icu4c/include/unicode/unistr.h:3309:31: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
UnicodeString(UnicodeString &&src) noexcept;
^
/opt/homebrew/opt/icu4c/include/unicode/unistr.h:3309:37: error: expected ';' at end of declaration list
UnicodeString(UnicodeString &&src) noexcept;
^
;
/opt/homebrew/opt/icu4c/include/unicode/unistr.h:3341:40: warning: 'override' keyword is a C++11 extension [-Wc++11-extensions]
virtual UnicodeString *clone() const override;
^
/opt/homebrew/opt/icu4c/include/unicode/unistr.h:3447:46: warning: 'override' keyword is a C++11 extension [-Wc++11-extensions]
virtual UClassID getDynamicClassID() const override;
^
/opt/homebrew/opt/icu4c/include/unicode/unistr.h:3458:37: warning: 'override' keyword is a C++11 extension [-Wc++11-extensions]
virtual int32_t getLength() const override;
^
/opt/homebrew/opt/icu4c/include/unicode/unistr.h:3465:52: warning: 'override' keyword is a C++11 extension [-Wc++11-extensions]
virtual char16_t getCharAt(int32_t offset) const override;
^
/opt/homebrew/opt/icu4c/include/unicode/unistr.h:3472:53: warning: 'override' keyword is a C++11 extension [-Wc++11-extensions]
virtual UChar32 getChar32At(int32_t offset) const override;
^
/opt/homebrew/opt/icu4c/include/unicode/unistr.h:3634:63: error: expected ';' at end of declaration list
void copyFieldsFrom(UnicodeString &src, UBool setSrcToBogus) noexcept;
^
;
/opt/homebrew/opt/icu4c/include/unicode/unistr.h:2998:7: error: delegating constructors are permitted only in C++11
UnicodeString(ConstChar16Ptr(text)) {}
^~~~~~~~~~~~~
/opt/homebrew/opt/icu4c/include/unicode/unistr.h:3048:7: error: delegating constructors are permitted only in C++11
UnicodeString(ConstChar16Ptr(text), textLength) {}
^~~~~~~~~~~~~
/opt/homebrew/opt/icu4c/include/unicode/unistr.h:3129:7: error: delegating constructors are permitted only in C++11
UnicodeString(Char16Ptr(buffer), buffLength, buffCapacity) {}
^~~~~~~~~~~~~
/opt/homebrew/opt/icu4c/include/unicode/unistr.h:4595:16: error: out-of-line definition of 'operator=' does not match any declaration in 'icu_74::UnicodeString'
UnicodeString::operator= (char16_t ch)
^~~~~~~~
In file included from transliterator.cpp:5:
In file included from /opt/homebrew/opt/icu4c/include/unicode/translit.h:29:
In file included from /opt/homebrew/opt/icu4c/include/unicode/utrans.h:22:
In file included from /opt/homebrew/opt/icu4c/include/unicode/uenum.h:25:
/opt/homebrew/opt/icu4c/include/unicode/localpointer.h:71:51: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions]
static void* U_EXPORT2 operator new(size_t) = delete;
^
/opt/homebrew/opt/icu4c/include/unicode/localpointer.h:72:53: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions]
static void* U_EXPORT2 operator new[](size_t) = delete;
^
/opt/homebrew/opt/icu4c/include/unicode/localpointer.h:74:58: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions]
static void* U_EXPORT2 operator new(size_t, void*) = delete;
^
/opt/homebrew/opt/icu4c/include/unicode/localpointer.h:224:34: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
LocalPointer(LocalPointer<T> &&src) noexcept : LocalPointerBase<T>(src.ptr) {
^
/opt/homebrew/opt/icu4c/include/unicode/localpointer.h:224:40: error: expected ';' at end of declaration list
LocalPointer(LocalPointer<T> &&src) noexcept : LocalPointerBase<T>(src.ptr) {
^
;
/opt/homebrew/opt/icu4c/include/unicode/localpointer.h:399:30: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
LocalArray(LocalArray<T> &&src) noexcept : LocalPointerBase<T>(src.ptr) {
^
/opt/homebrew/opt/icu4c/include/unicode/localpointer.h:399:36: error: expected ';' at end of declaration list
LocalArray(LocalArray<T> &&src) noexcept : LocalPointerBase<T>(src.ptr) {
^
;
In file included from transliterator.cpp:5:
In file included from /opt/homebrew/opt/icu4c/include/unicode/translit.h:29:
In file included from /opt/homebrew/opt/icu4c/include/unicode/utrans.h:22:
/opt/homebrew/opt/icu4c/include/unicode/uenum.h:69:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
U_DEFINE_LOCAL_OPEN_POINTER(LocalUEnumerationPointer, UEnumeration, uenum_close);
^
/opt/homebrew/opt/icu4c/include/unicode/localpointer.h:556:53: note: expanded from macro 'U_DEFINE_LOCAL_OPEN_POINTER'
LocalPointerClassName(LocalPointerClassName &&src) noexcept \
^
In file included from transliterator.cpp:5:
In file included from /opt/homebrew/opt/icu4c/include/unicode/translit.h:29:
In file included from /opt/homebrew/opt/icu4c/include/unicode/utrans.h:22:
/opt/homebrew/opt/icu4c/include/unicode/uenum.h:69:1: error: expected ';' at end of declaration list
/opt/homebrew/opt/icu4c/include/unicode/localpointer.h:556:60: note: expanded from macro 'U_DEFINE_LOCAL_OPEN_POINTER'
LocalPointerClassName(LocalPointerClassName &&src) noexcept \
^
In file included from transliterator.cpp:5:
In file included from /opt/homebrew/opt/icu4c/include/unicode/translit.h:29:
In file included from /opt/homebrew/opt/icu4c/include/unicode/utrans.h:23:
/opt/homebrew/opt/icu4c/include/unicode/uset.h:360:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
U_DEFINE_LOCAL_OPEN_POINTER(LocalUSetPointer, USet, uset_close);
^
/opt/homebrew/opt/icu4c/include/unicode/localpointer.h:556:53: note: expanded from macro 'U_DEFINE_LOCAL_OPEN_POINTER'
LocalPointerClassName(LocalPointerClassName &&src) noexcept \
^
In file included from transliterator.cpp:5:
In file included from /opt/homebrew/opt/icu4c/include/unicode/translit.h:29:
In file included from /opt/homebrew/opt/icu4c/include/unicode/utrans.h:23:
/opt/homebrew/opt/icu4c/include/unicode/uset.h:360:1: error: expected ';' at end of declaration list
/opt/homebrew/opt/icu4c/include/unicode/localpointer.h:556:60: note: expanded from macro 'U_DEFINE_LOCAL_OPEN_POINTER'
LocalPointerClassName(LocalPointerClassName &&src) noexcept \
^
In file included from transliterator.cpp:5:
In file included from /opt/homebrew/opt/icu4c/include/unicode/translit.h:29:
/opt/homebrew/opt/icu4c/include/unicode/utrans.h:258:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
U_DEFINE_LOCAL_OPEN_POINTER(LocalUTransliteratorPointer, UTransliterator, utrans_close);
^
/opt/homebrew/opt/icu4c/include/unicode/localpointer.h:556:53: note: expanded from macro 'U_DEFINE_LOCAL_OPEN_POINTER'
LocalPointerClassName(LocalPointerClassName &&src) noexcept \
^
In file included from transliterator.cpp:5:
In file included from /opt/homebrew/opt/icu4c/include/unicode/translit.h:29:
/opt/homebrew/opt/icu4c/include/unicode/utrans.h:258:1: error: expected ';' at end of declaration list
/opt/homebrew/opt/icu4c/include/unicode/localpointer.h:556:60: note: expanded from macro 'U_DEFINE_LOCAL_OPEN_POINTER'
LocalPointerClassName(LocalPointerClassName &&src) noexcept \
^
In file included from transliterator.cpp:5:
/opt/homebrew/opt/icu4c/include/unicode/translit.h:1530:52: warning: 'override' keyword is a C++11 extension [-Wc++11-extensions]
virtual UClassID getDynamicClassID(void) const override = 0;
^
36 warnings and 19 errors generated.
make: *** [transliterator.o] Error 1
make failed, exit code 2
Gem files will remain installed in /Users/me/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/charlock_holmes-0.7.8 for inspection.
Results logged to /Users/me/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/extensions/arm64-darwin-23/3.3.0/charlock_holmes-0.7.8/gem_make.out
0.7.7 appears to be fine but 0.7.8 causes this issue. After a few attempts to fix it I just pinned our Gemfile with version 0.7.7.
gem install charlock_holmes Building native extensions. This could take a while... ERROR: Error installing charlock_holmes: ERROR: Failed to build gem native extension. current directory: /Users/me/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/charlock_holmes-0.7.8/ext/charlock_holmes /Users/me/.rbenv/versions/3.3.3/bin/ruby extconf.rb checking for pkg-config for icu-i18n... not found checking for pkg-config for icu-io... not found checking for pkg-config for icu-uc... not found checking for -licui18n... yes checking for unicode/ucnv.h... yes checking for -lz... yes checking for -licuuc... yes checking for -licudata... yes creating Makefile current directory: /Users/me/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/charlock_holmes-0.7.8/ext/charlock_holmes make DESTDIR\= sitearchdir\=./.gem.20240704-49730-lnpeup sitelibdir\=./.gem.20240704-49730-lnpeup clean current directory: /Users/me/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/charlock_holmes-0.7.8/ext/charlock_holmes make DESTDIR\= sitearchdir\=./.gem.20240704-49730-lnpeup sitelibdir\=./.gem.20240704-49730-lnpeup compiling converter.c converter.c:23:12: warning: implicit conversion loses integer precision: 'long' to 'int32_t' (aka 'int') [-Wshorten-64-to-32] src_len = RSTRING_LEN(rb_txt); ~ ^~~~~~~~~~~~~~~~~~~ /Users/me/.rbenv/versions/3.3.3/include/ruby-3.3.0/ruby/internal/core/rstring.h:46:27: note: expanded from macro 'RSTRING_LEN' #define RSTRING_LEN RSTRING_LEN ^ 1 warning generated. compiling encoding_detector.c encoding_detector.c:183:71: warning: implicit conversion loses integer precision: 'long' to 'int32_t' (aka 'int') [-Wshorten-64-to-32] ucsdet_setDeclaredEncoding(detector->csd, RSTRING_PTR(rb_enc_hint), RSTRING_LEN(rb_enc_hint), &status); ~~~~~~~~~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~ /Users/me/.rbenv/versions/3.3.3/include/ruby-3.3.0/ruby/internal/core/rstring.h:46:27: note: expanded from macro 'RSTRING_LEN' #define RSTRING_LEN RSTRING_LEN ^ encoding_detector.c:232:71: warning: implicit conversion loses integer precision: 'long' to 'int32_t' (aka 'int') [-Wshorten-64-to-32] ucsdet_setDeclaredEncoding(detector->csd, RSTRING_PTR(rb_enc_hint), RSTRING_LEN(rb_enc_hint), &status); ~~~~~~~~~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~ /Users/me/.rbenv/versions/3.3.3/include/ruby-3.3.0/ruby/internal/core/rstring.h:46:27: note: expanded from macro 'RSTRING_LEN' #define RSTRING_LEN RSTRING_LEN ^ 2 warnings generated. compiling ext.c compiling transliterator.cpp In file included from transliterator.cpp:5: In file included from /opt/homebrew/opt/icu4c/include/unicode/translit.h:26: /opt/homebrew/opt/icu4c/include/unicode/uobject.h:134:54: error: expected ';' at end of declaration list static void * U_EXPORT2 operator new(size_t size) noexcept; ^ ; /opt/homebrew/opt/icu4c/include/unicode/uobject.h:141:56: error: expected ';' at end of declaration list static void * U_EXPORT2 operator new[](size_t size) noexcept; ^ ; /opt/homebrew/opt/icu4c/include/unicode/uobject.h:151:51: error: expected ';' at end of declaration list static void U_EXPORT2 operator delete(void *p) noexcept; ^ ; /opt/homebrew/opt/icu4c/include/unicode/uobject.h:158:53: error: expected ';' at end of declaration list static void U_EXPORT2 operator delete[](void *p) noexcept; ^ ; /opt/homebrew/opt/icu4c/include/unicode/uobject.h:166:67: error: expected ';' at end of declaration list static inline void * U_EXPORT2 operator new(size_t, void *ptr) noexcept { return ptr; } ^ ; In file included from transliterator.cpp:5: In file included from /opt/homebrew/opt/icu4c/include/unicode/translit.h:27: In file included from /opt/homebrew/opt/icu4c/include/unicode/unistr.h:36: /opt/homebrew/opt/icu4c/include/unicode/char16ptr.h:42:30: warning: 'final' keyword is a C++11 extension [-Wc++11-extensions] class U_COMMON_API Char16Ptr final { ^ /opt/homebrew/opt/icu4c/include/unicode/char16ptr.h:93:19: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions] Char16Ptr() = delete; ^ /opt/homebrew/opt/icu4c/include/unicode/char16ptr.h:149:35: warning: 'final' keyword is a C++11 extension [-Wc++11-extensions] class U_COMMON_API ConstChar16Ptr final { ^ /opt/homebrew/opt/icu4c/include/unicode/char16ptr.h:201:24: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions] ConstChar16Ptr() = delete; ^ In file included from transliterator.cpp:5: In file included from /opt/homebrew/opt/icu4c/include/unicode/translit.h:27: In file included from /opt/homebrew/opt/icu4c/include/unicode/unistr.h:39: /opt/homebrew/opt/icu4c/include/unicode/stringpiece.h:133:22: warning: default template arguments for a function template are a C++11 extension [-Wc++11-extensions] typename = typename std::enable_if< ^ ~~~~~~~~~~~~~~~~~~~~~~~~ In file included from transliterator.cpp:5: In file included from /opt/homebrew/opt/icu4c/include/unicode/translit.h:27: In file included from /opt/homebrew/opt/icu4c/include/unicode/unistr.h:40: /opt/homebrew/opt/icu4c/include/unicode/bytestream.h:164:32: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions] ByteSink(const ByteSink &) = delete; ^ /opt/homebrew/opt/icu4c/include/unicode/bytestream.h:165:43: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions] ByteSink &operator=(const ByteSink &) = delete; ^ /opt/homebrew/opt/icu4c/include/unicode/bytestream.h:209:53: warning: 'override' keyword is a C++11 extension [-Wc++11-extensions] virtual void Append(const char* bytes, int32_t n) override; ^ /opt/homebrew/opt/icu4c/include/unicode/bytestream.h:227:59: warning: 'override' keyword is a C++11 extension [-Wc++11-extensions] int32_t* result_capacity) override; ^ /opt/homebrew/opt/icu4c/include/unicode/bytestream.h:256:28: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions] CheckedArrayByteSink() = delete; ^ /opt/homebrew/opt/icu4c/include/unicode/bytestream.h:257:56: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions] CheckedArrayByteSink(const CheckedArrayByteSink &) = delete; ^ /opt/homebrew/opt/icu4c/include/unicode/bytestream.h:258:67: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions] CheckedArrayByteSink &operator=(const CheckedArrayByteSink &) = delete; ^ /opt/homebrew/opt/icu4c/include/unicode/bytestream.h:294:52: warning: 'override' keyword is a C++11 extension [-Wc++11-extensions] virtual void Append(const char* data, int32_t n) override { dest_->append(data, n); } ^ /opt/homebrew/opt/icu4c/include/unicode/bytestream.h:298:22: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions] StringByteSink() = delete; ^ /opt/homebrew/opt/icu4c/include/unicode/bytestream.h:299:44: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions] StringByteSink(const StringByteSink &) = delete; ^ /opt/homebrew/opt/icu4c/include/unicode/bytestream.h:300:55: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions] StringByteSink &operator=(const StringByteSink &) = delete; ^ In file included from transliterator.cpp:5: In file included from /opt/homebrew/opt/icu4c/include/unicode/translit.h:27: /opt/homebrew/opt/icu4c/include/unicode/unistr.h:1529:44: warning: 'override' keyword is a C++11 extension [-Wc++11-extensions] UnicodeString& target) const override; ^ /opt/homebrew/opt/icu4c/include/unicode/unistr.h:1909:42: warning: rvalue references are a C++11 extension [-Wc++11-extensions] UnicodeString &operator=(UnicodeString &&src) noexcept; ^ /opt/homebrew/opt/icu4c/include/unicode/unistr.h:1909:48: error: expected ';' at end of declaration list UnicodeString &operator=(UnicodeString &&src) noexcept; ^ ; /opt/homebrew/opt/icu4c/include/unicode/unistr.h:1916:34: error: expected ';' at end of declaration list void swap(UnicodeString &other) noexcept; ^ ; /opt/homebrew/opt/icu4c/include/unicode/unistr.h:1925:45: error: expected ';' at end of declaration list swap(UnicodeString &s1, UnicodeString &s2) noexcept { ^ ; /opt/homebrew/opt/icu4c/include/unicode/unistr.h:2459:64: warning: 'override' keyword is a C++11 extension [-Wc++11-extensions] const UnicodeString& text) override; ^ /opt/homebrew/opt/icu4c/include/unicode/unistr.h:2466:37: warning: 'override' keyword is a C++11 extension [-Wc++11-extensions] virtual UBool hasMetaData() const override; ^ /opt/homebrew/opt/icu4c/include/unicode/unistr.h:2481:65: warning: 'override' keyword is a C++11 extension [-Wc++11-extensions] virtual void copy(int32_t start, int32_t limit, int32_t dest) override; ^ /opt/homebrew/opt/icu4c/include/unicode/unistr.h:3309:31: warning: rvalue references are a C++11 extension [-Wc++11-extensions] UnicodeString(UnicodeString &&src) noexcept; ^ /opt/homebrew/opt/icu4c/include/unicode/unistr.h:3309:37: error: expected ';' at end of declaration list UnicodeString(UnicodeString &&src) noexcept; ^ ; /opt/homebrew/opt/icu4c/include/unicode/unistr.h:3341:40: warning: 'override' keyword is a C++11 extension [-Wc++11-extensions] virtual UnicodeString *clone() const override; ^ /opt/homebrew/opt/icu4c/include/unicode/unistr.h:3447:46: warning: 'override' keyword is a C++11 extension [-Wc++11-extensions] virtual UClassID getDynamicClassID() const override; ^ /opt/homebrew/opt/icu4c/include/unicode/unistr.h:3458:37: warning: 'override' keyword is a C++11 extension [-Wc++11-extensions] virtual int32_t getLength() const override; ^ /opt/homebrew/opt/icu4c/include/unicode/unistr.h:3465:52: warning: 'override' keyword is a C++11 extension [-Wc++11-extensions] virtual char16_t getCharAt(int32_t offset) const override; ^ /opt/homebrew/opt/icu4c/include/unicode/unistr.h:3472:53: warning: 'override' keyword is a C++11 extension [-Wc++11-extensions] virtual UChar32 getChar32At(int32_t offset) const override; ^ /opt/homebrew/opt/icu4c/include/unicode/unistr.h:3634:63: error: expected ';' at end of declaration list void copyFieldsFrom(UnicodeString &src, UBool setSrcToBogus) noexcept; ^ ; /opt/homebrew/opt/icu4c/include/unicode/unistr.h:2998:7: error: delegating constructors are permitted only in C++11 UnicodeString(ConstChar16Ptr(text)) {} ^~~~~~~~~~~~~ /opt/homebrew/opt/icu4c/include/unicode/unistr.h:3048:7: error: delegating constructors are permitted only in C++11 UnicodeString(ConstChar16Ptr(text), textLength) {} ^~~~~~~~~~~~~ /opt/homebrew/opt/icu4c/include/unicode/unistr.h:3129:7: error: delegating constructors are permitted only in C++11 UnicodeString(Char16Ptr(buffer), buffLength, buffCapacity) {} ^~~~~~~~~~~~~ /opt/homebrew/opt/icu4c/include/unicode/unistr.h:4595:16: error: out-of-line definition of 'operator=' does not match any declaration in 'icu_74::UnicodeString' UnicodeString::operator= (char16_t ch) ^~~~~~~~ In file included from transliterator.cpp:5: In file included from /opt/homebrew/opt/icu4c/include/unicode/translit.h:29: In file included from /opt/homebrew/opt/icu4c/include/unicode/utrans.h:22: In file included from /opt/homebrew/opt/icu4c/include/unicode/uenum.h:25: /opt/homebrew/opt/icu4c/include/unicode/localpointer.h:71:51: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions] static void* U_EXPORT2 operator new(size_t) = delete; ^ /opt/homebrew/opt/icu4c/include/unicode/localpointer.h:72:53: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions] static void* U_EXPORT2 operator new[](size_t) = delete; ^ /opt/homebrew/opt/icu4c/include/unicode/localpointer.h:74:58: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions] static void* U_EXPORT2 operator new(size_t, void*) = delete; ^ /opt/homebrew/opt/icu4c/include/unicode/localpointer.h:224:34: warning: rvalue references are a C++11 extension [-Wc++11-extensions] LocalPointer(LocalPointer<T> &&src) noexcept : LocalPointerBase<T>(src.ptr) { ^ /opt/homebrew/opt/icu4c/include/unicode/localpointer.h:224:40: error: expected ';' at end of declaration list LocalPointer(LocalPointer<T> &&src) noexcept : LocalPointerBase<T>(src.ptr) { ^ ; /opt/homebrew/opt/icu4c/include/unicode/localpointer.h:399:30: warning: rvalue references are a C++11 extension [-Wc++11-extensions] LocalArray(LocalArray<T> &&src) noexcept : LocalPointerBase<T>(src.ptr) { ^ /opt/homebrew/opt/icu4c/include/unicode/localpointer.h:399:36: error: expected ';' at end of declaration list LocalArray(LocalArray<T> &&src) noexcept : LocalPointerBase<T>(src.ptr) { ^ ; In file included from transliterator.cpp:5: In file included from /opt/homebrew/opt/icu4c/include/unicode/translit.h:29: In file included from /opt/homebrew/opt/icu4c/include/unicode/utrans.h:22: /opt/homebrew/opt/icu4c/include/unicode/uenum.h:69:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions] U_DEFINE_LOCAL_OPEN_POINTER(LocalUEnumerationPointer, UEnumeration, uenum_close); ^ /opt/homebrew/opt/icu4c/include/unicode/localpointer.h:556:53: note: expanded from macro 'U_DEFINE_LOCAL_OPEN_POINTER' LocalPointerClassName(LocalPointerClassName &&src) noexcept \ ^ In file included from transliterator.cpp:5: In file included from /opt/homebrew/opt/icu4c/include/unicode/translit.h:29: In file included from /opt/homebrew/opt/icu4c/include/unicode/utrans.h:22: /opt/homebrew/opt/icu4c/include/unicode/uenum.h:69:1: error: expected ';' at end of declaration list /opt/homebrew/opt/icu4c/include/unicode/localpointer.h:556:60: note: expanded from macro 'U_DEFINE_LOCAL_OPEN_POINTER' LocalPointerClassName(LocalPointerClassName &&src) noexcept \ ^ In file included from transliterator.cpp:5: In file included from /opt/homebrew/opt/icu4c/include/unicode/translit.h:29: In file included from /opt/homebrew/opt/icu4c/include/unicode/utrans.h:23: /opt/homebrew/opt/icu4c/include/unicode/uset.h:360:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions] U_DEFINE_LOCAL_OPEN_POINTER(LocalUSetPointer, USet, uset_close); ^ /opt/homebrew/opt/icu4c/include/unicode/localpointer.h:556:53: note: expanded from macro 'U_DEFINE_LOCAL_OPEN_POINTER' LocalPointerClassName(LocalPointerClassName &&src) noexcept \ ^ In file included from transliterator.cpp:5: In file included from /opt/homebrew/opt/icu4c/include/unicode/translit.h:29: In file included from /opt/homebrew/opt/icu4c/include/unicode/utrans.h:23: /opt/homebrew/opt/icu4c/include/unicode/uset.h:360:1: error: expected ';' at end of declaration list /opt/homebrew/opt/icu4c/include/unicode/localpointer.h:556:60: note: expanded from macro 'U_DEFINE_LOCAL_OPEN_POINTER' LocalPointerClassName(LocalPointerClassName &&src) noexcept \ ^ In file included from transliterator.cpp:5: In file included from /opt/homebrew/opt/icu4c/include/unicode/translit.h:29: /opt/homebrew/opt/icu4c/include/unicode/utrans.h:258:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions] U_DEFINE_LOCAL_OPEN_POINTER(LocalUTransliteratorPointer, UTransliterator, utrans_close); ^ /opt/homebrew/opt/icu4c/include/unicode/localpointer.h:556:53: note: expanded from macro 'U_DEFINE_LOCAL_OPEN_POINTER' LocalPointerClassName(LocalPointerClassName &&src) noexcept \ ^ In file included from transliterator.cpp:5: In file included from /opt/homebrew/opt/icu4c/include/unicode/translit.h:29: /opt/homebrew/opt/icu4c/include/unicode/utrans.h:258:1: error: expected ';' at end of declaration list /opt/homebrew/opt/icu4c/include/unicode/localpointer.h:556:60: note: expanded from macro 'U_DEFINE_LOCAL_OPEN_POINTER' LocalPointerClassName(LocalPointerClassName &&src) noexcept \ ^ In file included from transliterator.cpp:5: /opt/homebrew/opt/icu4c/include/unicode/translit.h:1530:52: warning: 'override' keyword is a C++11 extension [-Wc++11-extensions] virtual UClassID getDynamicClassID(void) const override = 0; ^ 36 warnings and 19 errors generated. make: *** [transliterator.o] Error 1 make failed, exit code 2 Gem files will remain installed in /Users/me/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/charlock_holmes-0.7.8 for inspection. Results logged to /Users/me/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/extensions/arm64-darwin-23/3.3.0/charlock_holmes-0.7.8/gem_make.out0.7.7 appears to be fine but 0.7.8 causes this issue. After a few attempts to fix it I just pinned our
Gemfilewith version 0.7.7.