git: 1d87a291ed11 - main - lang/hermes: update 0.12.0 → 0.13.0

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Sat, 17 Aug 2024 07:11:26 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=1d87a291ed11f5412fc24256ad73f8887f85cac7

commit 1d87a291ed11f5412fc24256ad73f8887f85cac7
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2024-08-17 07:08:53 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2024-08-17 07:11:18 +0000

    lang/hermes: update 0.12.0 → 0.13.0
    
    Reported by:    portscout
---
 lang/hermes/Makefile                               |  7 ++---
 lang/hermes/distinfo                               |  6 ++--
 ...patch-API_hermes__sandbox_external_wasm-rt-fb.h | 11 +++++++
 .../files/patch-external_llvh_CMakeLists.txt       |  4 +--
 .../files/patch-lib_Support_OSCompatPosix.cpp      | 24 +++++++--------
 ...atch-unittests_BCGen_BytecodeFileFormatTest.cpp | 10 +++++++
 lang/hermes/pkg-plist                              | 35 ++++++++++++++++++++++
 7 files changed, 76 insertions(+), 21 deletions(-)

diff --git a/lang/hermes/Makefile b/lang/hermes/Makefile
index 03a5d402d7cd..df07d37648f3 100644
--- a/lang/hermes/Makefile
+++ b/lang/hermes/Makefile
@@ -1,7 +1,6 @@
 PORTNAME=	hermes
 DISTVERSIONPREFIX=	v
-DISTVERSION=	0.12.0
-PORTREVISION=	3
+DISTVERSION=	0.13.0
 CATEGORIES=	lang
 PKGNAMESUFFIX=	-javascript-engine
 
@@ -16,7 +15,7 @@ LIB_DEPENDS=	libicui18n.so:devel/icu
 TEST_DEPENDS=	googletest>0:devel/googletest \
 		zip:archivers/zip
 
-USES=		cmake compiler:c++14-lang cpe python:build readline
+USES=		cmake compiler:c++14-lang cpe ncurses python:build readline
 USE_LDCONFIG=	yes
 CPE_VENDOR=	facebook
 
@@ -27,7 +26,7 @@ CMAKE_OFF=	HERMES_ENABLE_TEST_SUITE
 
 BINARY_ALIAS=	python=${PYTHON_CMD} python3=${PYTHON_CMD}
 
-do-test: # some tests are known to fail: https://github.com/facebook/hermes/issues/347
+do-test: # 5 unexpected test failures
 	@cd ${BUILD_WRKSRC} && \
 		${SETENV} ${CONFIGURE_ENV} ${CMAKE_BIN} ${CMAKE_ARGS} -DHERMES_ENABLE_TEST_SUITE:BOOL=ON ${CMAKE_SOURCE_PATH} && \
 		${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} ${ALL_TARGET} && \
diff --git a/lang/hermes/distinfo b/lang/hermes/distinfo
index 3f463d99ba53..c996ae879781 100644
--- a/lang/hermes/distinfo
+++ b/lang/hermes/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1661721316
-SHA256 (facebook-hermes-v0.12.0_GH0.tar.gz) = bd8fd158381813483123eb1ab553ed08db68e4949f314c99ee8fa79fa8f3e7ed
-SIZE (facebook-hermes-v0.12.0_GH0.tar.gz) = 9794161
+TIMESTAMP = 1723873149
+SHA256 (facebook-hermes-v0.13.0_GH0.tar.gz) = 40ecd782552335126fdb91f63f6822a7f4bef71ef3ec980fe34a263fbf447c93
+SIZE (facebook-hermes-v0.13.0_GH0.tar.gz) = 17026694
diff --git a/lang/hermes/files/patch-API_hermes__sandbox_external_wasm-rt-fb.h b/lang/hermes/files/patch-API_hermes__sandbox_external_wasm-rt-fb.h
new file mode 100644
index 000000000000..dd864cb645ad
--- /dev/null
+++ b/lang/hermes/files/patch-API_hermes__sandbox_external_wasm-rt-fb.h
@@ -0,0 +1,11 @@
+--- API/hermes_sandbox/external/wasm-rt-fb.h.orig	2024-08-17 05:54:34 UTC
++++ API/hermes_sandbox/external/wasm-rt-fb.h
+@@ -21,7 +21,7 @@ typedef atomic_uint seed_t;
+ #include <sys/random.h>
+ #include <sys/syscall.h>
+ #include <unistd.h>
+-#elif defined(__APPLE__)
++#elif defined(__APPLE__) || defined(__FreeBSD__)
+ #include <time.h>
+ #include <unistd.h>
+ #endif
diff --git a/lang/hermes/files/patch-external_llvh_CMakeLists.txt b/lang/hermes/files/patch-external_llvh_CMakeLists.txt
index d5a8b89da9d0..a09b9b3c5eb9 100644
--- a/lang/hermes/files/patch-external_llvh_CMakeLists.txt
+++ b/lang/hermes/files/patch-external_llvh_CMakeLists.txt
@@ -1,8 +1,8 @@
 Workaround for gtest-related breakage: https://github.com/facebook/hermes/issues/388
 
---- external/llvh/CMakeLists.txt.orig	2020-12-17 03:26:48 UTC
+--- external/llvh/CMakeLists.txt.orig	2024-08-15 07:17:16 UTC
 +++ external/llvh/CMakeLists.txt
-@@ -27,4 +27,4 @@ add_subdirectory(lib)
+@@ -31,4 +31,4 @@ add_subdirectory(utils/count)
  add_subdirectory(utils/FileCheck)
  add_subdirectory(utils/not)
  add_subdirectory(utils/count)
diff --git a/lang/hermes/files/patch-lib_Support_OSCompatPosix.cpp b/lang/hermes/files/patch-lib_Support_OSCompatPosix.cpp
index 48f23c45e7fd..fbef23ac50ee 100644
--- a/lang/hermes/files/patch-lib_Support_OSCompatPosix.cpp
+++ b/lang/hermes/files/patch-lib_Support_OSCompatPosix.cpp
@@ -1,18 +1,18 @@
---- lib/Support/OSCompatPosix.cpp.orig	2022-08-16 18:18:07 UTC
+--- lib/Support/OSCompatPosix.cpp.orig	2024-08-15 07:17:16 UTC
 +++ lib/Support/OSCompatPosix.cpp
-@@ -25,6 +25,11 @@
+@@ -24,6 +24,11 @@
+ #define RUSAGE_THREAD 1
  #endif
  #endif // __linux__
- 
++ 
 +#if defined(__FreeBSD__)
-+#include <pthread.h>
 +#include <pthread_np.h>
++#define pthread_getattr_np pthread_attr_get_np
 +#endif
-+
- #include <sys/types.h>
- #include <unistd.h>
  
-@@ -221,7 +226,7 @@ void vm_free_aligned(void *p, size_t sz) {
+ #include <pthread.h>
+ #include <sys/types.h>
+@@ -221,7 +226,7 @@ static constexpr int kVMReserveFlags =
  
  static constexpr int kVMReserveProt = PROT_NONE;
  static constexpr int kVMReserveFlags =
@@ -30,20 +30,20 @@
  
  /// On linux, telling the OS that we \p MADV_DONTNEED some pages will cause it
  /// to immediately deduct their size from the process's resident set.
-@@ -599,6 +604,12 @@ uint64_t thread_id() {
+@@ -603,6 +608,12 @@ uint64_t global_thread_id() {
    return syscall(__NR_gettid);
  }
  
 +#elif defined(__FreeBSD__)
 +
-+uint64_t thread_id() {
++uint64_t global_thread_id() {
 +  return reinterpret_cast<uint64_t>(pthread_self());
 +}
 +
  #else
  #error "Thread ID not supported on this platform"
  #endif
-@@ -640,7 +651,7 @@ std::chrono::microseconds thread_cpu_time() {
+@@ -685,7 +696,7 @@ std::chrono::microseconds thread_cpu_time() {
    return microseconds(total);
  }
  
@@ -52,7 +52,7 @@
  
  std::chrono::microseconds thread_cpu_time() {
    using namespace std::chrono;
-@@ -677,7 +688,7 @@ bool thread_page_fault_count(int64_t *outMinorFaults, 
+@@ -722,7 +733,7 @@ bool thread_page_fault_count(int64_t *outMinorFaults, 
    return kr == KERN_SUCCESS;
  }
  
diff --git a/lang/hermes/files/patch-unittests_BCGen_BytecodeFileFormatTest.cpp b/lang/hermes/files/patch-unittests_BCGen_BytecodeFileFormatTest.cpp
new file mode 100644
index 000000000000..758436daab65
--- /dev/null
+++ b/lang/hermes/files/patch-unittests_BCGen_BytecodeFileFormatTest.cpp
@@ -0,0 +1,10 @@
+--- unittests/BCGen/BytecodeFileFormatTest.cpp.orig	2024-08-17 06:22:41 UTC
++++ unittests/BCGen/BytecodeFileFormatTest.cpp
+@@ -13,6 +13,7 @@
+ 
+ #include "gtest/gtest.h"
+ 
++#include <iomanip>
+ #include <sstream>
+ 
+ // Structs with bit fields can have different layouts between GCC, CLANG,
diff --git a/lang/hermes/pkg-plist b/lang/hermes/pkg-plist
index 9e7bc4a4217a..797414e88e97 100644
--- a/lang/hermes/pkg-plist
+++ b/lang/hermes/pkg-plist
@@ -1,8 +1,10 @@
 bin/hbcdump
+bin/hcdp
 bin/hdb
 bin/hermes
 bin/hermesc
 bin/hvm
+include/hermes/AsyncDebuggerAPI.h
 include/hermes/CompileJS.h
 include/hermes/DebuggerAPI.h
 include/hermes/Public/Buffer.h
@@ -14,13 +16,45 @@ include/hermes/Public/GCTripwireContext.h
 include/hermes/Public/HermesExport.h
 include/hermes/Public/JSOutOfMemoryError.h
 include/hermes/Public/RuntimeConfig.h
+include/hermes/RuntimeTaskRunner.h
 include/hermes/SynthTrace.h
 include/hermes/SynthTraceParser.h
+include/hermes/ThreadSafetyAnalysis.h
 include/hermes/TimerStats.h
 include/hermes/TraceInterpreter.h
 include/hermes/TracingRuntime.h
+include/hermes/cdp/CDPAgent.h
+include/hermes/cdp/CDPDebugAPI.h
+include/hermes/cdp/CallbackOStream.h
+include/hermes/cdp/ConsoleMessage.h
+include/hermes/cdp/DebuggerDomainAgent.h
+include/hermes/cdp/DomainAgent.h
+include/hermes/cdp/DomainState.h
+include/hermes/cdp/HeapProfilerDomainAgent.h
+include/hermes/cdp/JSONValueInterfaces.h
+include/hermes/cdp/MessageConverters.h
+include/hermes/cdp/MessageInterfaces.h
+include/hermes/cdp/MessageTypes.h
+include/hermes/cdp/MessageTypesInlines.h
+include/hermes/cdp/ProfilerDomainAgent.h
+include/hermes/cdp/RemoteObjectConverters.h
+include/hermes/cdp/RemoteObjectsTable.h
+include/hermes/cdp/RuntimeDomainAgent.h
 include/hermes/hermes.h
 include/hermes/hermes_tracing.h
+include/hermes/inspector/RuntimeAdapter.h
+include/hermes/inspector/chrome/CDPHandler.h
+include/hermes/inspector/chrome/CallbackOStream.h
+include/hermes/inspector/chrome/JSONValueInterfaces.h
+include/hermes/inspector/chrome/MessageConverters.h
+include/hermes/inspector/chrome/MessageInterfaces.h
+include/hermes/inspector/chrome/MessageTypes.h
+include/hermes/inspector/chrome/MessageTypesInlines.h
+include/hermes/inspector/chrome/RemoteObjectConverters.h
+include/hermes/inspector/chrome/RemoteObjectsTable.h
+include/hermes/inspector/chrome/tests/AsyncHermesRuntime.h
+include/hermes/inspector/chrome/tests/SyncConnection.h
+include/hermes/inspector/chrome/tests/TestHelpers.h
 include/jsi/JSIDynamic.h
 include/jsi/decorator.h
 include/jsi/instrumentation.h
@@ -29,3 +63,4 @@ include/jsi/jsi.h
 include/jsi/jsilib.h
 include/jsi/threadsafe.h
 lib/libhermes.so
+@dir include/hermes/cdp/tools/hermes-inspector-msggen/src