Download raw body.
[NEW] textproc/libunicode
Hi,
uh, oh, I referred GitHub's HEAD version, so 0.4.0 has no
-DLIBUNICODE_USE_INTRINSICS=OFF option.
Patches might not be applied if next libunicode released,
but for 0.4.0 is ok uaa@
thanks!
On Sat, 13 Jul 2024 21:35:06 +0900,
Stuart Henderson wrote:
>
> On 2024/07/13 18:37, SASANO Takayoshi wrote:
> > Hi,
> >
> > > Looks like this is, at best, ONLY_FOR_ARCHS=amd64 aarch64
> >
> > How about to disable intrinsics at configure like this?
> > Even if poorer performance, I prefer to use the library with wider
> > architecture.
>
> > + -DLIBUNICODE_USE_INTRINSICS=OFF \
>
> There's no such cmake flag in 0.4.0.
>
> This diff builds on i386, I tidied a few unnecessary Makefile variables
> while there. ok?
>
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/textproc/libunicode/Makefile,v
> diff -u -p -r1.1 Makefile
> --- Makefile 9 Jul 2024 13:56:10 -0000 1.1
> +++ Makefile 13 Jul 2024 12:12:25 -0000
> @@ -1,11 +1,9 @@
> COMMENT = Unicode support to C++ with simple and easy APIs
>
> -V = 0.4.0
> -DISTNAME = libunicode-${V}
> -
> GH_ACCOUNT = contour-terminal
> GH_PROJECT = libunicode
> -GH_TAGNAME = v${V}
> +GH_TAGNAME = v0.4.0
> +REVISION = 0
>
> SHARED_LIBS = unicode 0.0 # 0.0
> SHARED_LIBS += unicode_loader 0.0 # 0.0
> @@ -36,5 +34,9 @@ CONFIGURE_STYLE = cmake
>
> CONFIGURE_ARGS = -DLIBUNICODE_TESTING=OFF \
> -DLIBUNICODE_UCD_DIR=${LOCALBASE}/share/unicode/ucd
> +
> +.if ${MACHINE_ARCH} != "amd64" && ${MACHINE_ARCH} != "aarch64"
> +CONFIGURE_ARGS += -DLIBUNICODE_USE_INTRINSICS=OFF
> +.endif
>
> .include <bsd.port.mk>
> Index: patches/patch-CMakeLists_txt
> ===================================================================
> RCS file: patches/patch-CMakeLists_txt
> diff -N patches/patch-CMakeLists_txt
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-CMakeLists_txt 13 Jul 2024 12:12:25 -0000
> @@ -0,0 +1,16 @@
> +From ad31f78a116c844e5c00712b3dcd258c76586e57 Mon Sep 17 00:00:00 2001
> +From: Christian Parpart <christian@parpart.family>
> +Date: Tue, 26 Dec 2023 10:07:16 +0100
> +Subject: [PATCH] Make usage of SSE extension optional
> +
> +Index: CMakeLists.txt
> +--- CMakeLists.txt.orig
> ++++ CMakeLists.txt
> +@@ -43,6 +43,7 @@ option(LIBUNICODE_EXAMPLES "libunicode: Enables buildi
> + option(LIBUNICODE_TESTING "libunicode: Enables building of unittests for libunicode [default: ${MASTER_PROJECT}" ${MASTER_PROJECT})
> + option(LIBUNICODE_TOOLS "libunicode: Builds CLI tools [default: ${MASTER_PROJECT}]" ${MASTER_PROJECT})
> + option(LIBUNICODE_BUILD_STATIC "libunicode: provide static library instead of dynamic [default: ${LIBUNICODE_BUILD_STATIC_DEFAULT}]" ${LIBUNICODE_BUILD_STATIC_DEFAULT})
> ++option(LIBUNICODE_USE_INTRINSICS "libunicode: Use SIMD extenstion during text read [default: ON]" ON)
> +
> + include(ThirdParties)
> +
> Index: patches/patch-src_libunicode_CMakeLists_txt
> ===================================================================
> RCS file: patches/patch-src_libunicode_CMakeLists_txt
> diff -N patches/patch-src_libunicode_CMakeLists_txt
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-src_libunicode_CMakeLists_txt 13 Jul 2024 12:12:25 -0000
> @@ -0,0 +1,19 @@
> +From ad31f78a116c844e5c00712b3dcd258c76586e57 Mon Sep 17 00:00:00 2001
> +From: Christian Parpart <christian@parpart.family>
> +Date: Tue, 26 Dec 2023 10:07:16 +0100
> +Subject: [PATCH] Make usage of SSE extension optional
> +
> +Index: src/libunicode/CMakeLists.txt
> +--- src/libunicode/CMakeLists.txt.orig
> ++++ src/libunicode/CMakeLists.txt
> +@@ -110,6 +110,10 @@ add_library(unicode ${LIBUNICODE_LIB_MODE}
> + codepoint_properties_names.cpp
> + )
> +
> ++if(LIBUNICODE_USE_INTRINSICS)
> ++ target_compile_definitions(unicode PRIVATE USE_INTRINSICS)
> ++endif()
> ++
> + set(public_headers
> + capi.h
> + codepoint_properties.h
> Index: patches/patch-src_libunicode_scan_cpp
> ===================================================================
> RCS file: patches/patch-src_libunicode_scan_cpp
> diff -N patches/patch-src_libunicode_scan_cpp
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-src_libunicode_scan_cpp 13 Jul 2024 12:12:25 -0000
> @@ -0,0 +1,24 @@
> +From ad31f78a116c844e5c00712b3dcd258c76586e57 Mon Sep 17 00:00:00 2001
> +From: Christian Parpart <christian@parpart.family>
> +Date: Tue, 26 Dec 2023 10:07:16 +0100
> +Subject: [PATCH] Make usage of SSE extension optional
> +
> +Index: src/libunicode/scan.cpp
> +--- src/libunicode/scan.cpp.orig
> ++++ src/libunicode/scan.cpp
> +@@ -81,6 +81,7 @@ size_t detail::scan_for_text_ascii(string_view text, s
> + auto input = text.data();
> + auto const end = text.data() + min(text.size(), maxColumnCount);
> +
> ++#if defined(USE_INTRINSICS)
> + intrinsics::m128i const ControlCodeMax = intrinsics::set1_epi8(0x20); // 0..0x1F
> + intrinsics::m128i const Complex = intrinsics::set1_epi8(-128); // equals to 0x80 (0b1000'0000)
> +
> +@@ -99,6 +100,7 @@ size_t detail::scan_for_text_ascii(string_view text, s
> + }
> + input += sizeof(intrinsics::m128i);
> + }
> ++#endif
> +
> + while (input != end && is_ascii(*input))
> + ++input;
>
--
SASANO Takayoshi (JG1UAA) <uaa@mx5.nisiq.net>
[NEW] textproc/libunicode