Download raw body.
[update] lang/quickjs 2024.01.13 -> 2025.09.13
>
>> In this email, I have attached a patch to update lang/quickjs from
>> version 2024.01.13 to version 2025.09.13.
>
> ===> Failed patches:
> patch-cutils_h
> patch-tests_test_std_js
>
> Should I remove these 2 patches?
Yes, I forgot to include the deletion of those files in the patch I sent
earlier. When creating a diff recursively from files in a CVS repository
directory, the deleted files are not added automatically (even when
using the -uNp options). You have to add them one by one. I have
attached the corrected patch to this email.
Index: lang/quickjs/Makefile
===================================================================
RCS file: /cvs/ports/lang/quickjs/Makefile,v
diff -u -p -u -r1.10 Makefile
--- lang/quickjs/Makefile 28 Jan 2025 11:22:03 -0000 1.10
+++ lang/quickjs/Makefile 6 Nov 2025 03:56:28 -0000
@@ -1,9 +1,8 @@
COMMENT = small, embeddable JavaScript engine in C
-V = 2024.01.13
+V = 2025.09.13
DISTNAME = quickjs-${V:S/./-/g}
PKGNAME = quickjs-${V}
-REVISION = 0
CATEGORIES = lang
Index: lang/quickjs/distinfo
===================================================================
RCS file: /cvs/ports/lang/quickjs/distinfo,v
diff -u -p -u -r1.3 distinfo
--- lang/quickjs/distinfo 30 May 2024 18:05:13 -0000 1.3
+++ lang/quickjs/distinfo 6 Nov 2025 03:56:39 -0000
@@ -1,2 +1,2 @@
-SHA256 (quickjs-2024-01-13.tar.xz) = PEv4+JW/pUvrSGyNEhgRJ3Hs/FrDvhA2hR70FWghLgM=
-SIZE (quickjs-2024-01-13.tar.xz) = 765800
+SHA256 (quickjs-2025-09-13.tar.xz) = bx8yKuo7s6kIWNuFyf5xcBP95N99/K/i9X549btLSgw=
+SIZE (quickjs-2025-09-13.tar.xz) = 595964
Index: lang/quickjs/pkg/PLIST
===================================================================
RCS file: /cvs/ports/lang/quickjs/pkg/PLIST,v
diff -u -p -u -r1.3 PLIST
--- lang/quickjs/pkg/PLIST 11 Mar 2022 19:29:13 -0000 1.3
+++ lang/quickjs/pkg/PLIST 6 Nov 2025 03:56:48 -0000
@@ -1,6 +1,5 @@
@bin bin/qjs
@bin bin/qjsc
-bin/qjscalc
include/quickjs/
include/quickjs/quickjs-libc.h
include/quickjs/quickjs.h
Index: lang/quickjs/patches/patch-cutils_h
===================================================================
RCS file: lang/quickjs/patches/patch-cutils_h
diff -N lang/quickjs/patches/patch-cutils_h
--- lang/quickjs/patches/patch-cutils_h 11 Mar 2022 19:29:13 -0000 1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,19 +0,0 @@
-Properly detect endianness.
-
-Index: cutils.h
---- cutils.h.orig
-+++ cutils.h
-@@ -28,8 +28,11 @@
- #include <stdlib.h>
- #include <inttypes.h>
-
--/* set if CPU is big endian */
--#undef WORDS_BIGENDIAN
-+#include <endian.h>
-+
-+#if BYTE_ORDER == BIG_ENDIAN
-+#define WORDS_BIGENDIAN
-+#endif
-
- #define likely(x) __builtin_expect(!!(x), 1)
- #define unlikely(x) __builtin_expect(!!(x), 0)
Index: lang/quickjs/patches/patch-Makefile
===================================================================
RCS file: /cvs/ports/lang/quickjs/patches/patch-Makefile,v
diff -u -p -u -r1.4 patch-Makefile
--- lang/quickjs/patches/patch-Makefile 30 May 2024 18:05:13 -0000 1.4
+++ lang/quickjs/patches/patch-Makefile 6 Nov 2025 03:57:28 -0000
@@ -1,40 +1,34 @@
Remove hardcoded -O2
Use default ar
-Don't use LTO
Remove warning clang doesn't understand
Remove -ldl
+Remove hello_module
Index: Makefile
--- Makefile.orig
+++ Makefile
-@@ -28,13 +28,14 @@ endif
- # Windows cross compilation from Linux
- #CONFIG_WIN32=y
- # use link time optimization (smaller and faster executables but slower build)
--CONFIG_LTO=y
-+#CONFIG_LTO=y
+@@ -37,8 +37,9 @@ endif
+ #CONFIG_LTO=y
# consider warnings as errors (for development)
#CONFIG_WERROR=y
- # force 32 bit build for some utilities
+ # force 32 bit build on x86_64
#CONFIG_M32=y
# cosmopolitan build (see https://github.com/jart/cosmopolitan)
#CONFIG_COSMO=y
+CONFIG_DEFAULT_AR=y
- # installation directory
- PREFIX?=/usr/local
-@@ -98,8 +99,8 @@ else ifdef CONFIG_COSMO
+@@ -127,8 +127,8 @@ else ifdef CONFIG_COSMO
else
HOST_CC=gcc
CC=$(CROSS_PREFIX)gcc
- CFLAGS+=-g -Wall -MMD -MF $(OBJDIR)/$(@F).d
-- CFLAGS += -Wno-array-bounds -Wno-format-truncation
+- CFLAGS += -Wno-array-bounds -Wno-format-truncation -Wno-infinite-recursion
+ CFLAGS+=-Wall -MMD -MF $(OBJDIR)/$(@F).d
+ CFLAGS += -Wno-array-bounds
ifdef CONFIG_LTO
AR=$(CROSS_PREFIX)gcc-ar
else
-@@ -122,7 +123,7 @@ endif
+@@ -160,7 +160,7 @@ endif
CFLAGS+=$(DEFINES)
CFLAGS_DEBUG=$(CFLAGS) -O0
CFLAGS_SMALL=$(CFLAGS) -Os
@@ -43,16 +37,27 @@ Index: Makefile
CFLAGS_NOLTO:=$(CFLAGS_OPT)
ifdef CONFIG_COSMO
LDFLAGS+=-s # better to strip by default
-@@ -194,10 +195,10 @@ ifdef CONFIG_BIGNUM
- QJS_OBJS+=$(OBJDIR)/qjscalc.o
- endif
+@@ -229,1 +229,1 @@ ifeq ($(CROSS_PREFIX),)
+-PROGS+=examples/hello_module
++#PROGS+=examples/hello_module
+@@ -244,9 +244,9 @@ endif
+ QJS_OBJS=$(OBJDIR)/qjs.o $(OBJDIR)/repl.o $(QJS_LIB_OBJS)
-HOST_LIBS=-lm -ldl -lpthread
+HOST_LIBS=-lm -lpthread
- LIBS=-lm
+ LIBS=-lm -lpthread
ifndef CONFIG_WIN32
--LIBS+=-ldl -lpthread
+-LIBS+=-ldl
+LIBS+=-lpthread
endif
LIBS+=$(EXTRA_LIBS)
+
+@@ -394,8 +394,1 @@ # examples
+-# example of static JS compilation with modules
+-HELLO_MODULE_SRCS=examples/hello_module.js
+-HELLO_MODULE_OPTS=-fno-string-normalize -fno-map -fno-typedarray \
+- -fno-typedarray -fno-regexp -fno-json -fno-eval -fno-proxy \
+- -fno-date -m
+-examples/hello_module: $(QJSC) libquickjs$(LTOEXT).a $(HELLO_MODULE_SRCS)
+- $(QJSC) $(HELLO_MODULE_OPTS) -o $@ $(HELLO_MODULE_SRCS)
Index: lang/quickjs/patches/patch-qjs_c
===================================================================
RCS file: /cvs/ports/lang/quickjs/patches/patch-qjs_c,v
diff -u -p -u -r1.4 patch-qjs_c
--- lang/quickjs/patches/patch-qjs_c 30 May 2024 18:05:13 -0000 1.4
+++ lang/quickjs/patches/patch-qjs_c 6 Nov 2025 03:57:44 -0000
@@ -1,7 +1,7 @@
Index: qjs.c
--- qjs.c.orig
+++ qjs.c
-@@ -152,7 +152,7 @@ static size_t js_trace_malloc_usable_size(const void *
+@@ -142,7 +142,7 @@ static size_t js_trace_malloc_usable_size(const void *
return malloc_usable_size((void *)ptr);
#else
/* change this to `return 0;` if compilation fails */
Index: lang/quickjs/patches/patch-qjsc_c
===================================================================
RCS file: /cvs/ports/lang/quickjs/patches/patch-qjsc_c,v
diff -u -p -u -r1.4 patch-qjsc_c
--- lang/quickjs/patches/patch-qjsc_c 30 May 2024 18:05:13 -0000 1.4
+++ lang/quickjs/patches/patch-qjsc_c 6 Nov 2025 03:57:54 -0000
@@ -3,11 +3,11 @@ Remove -ldl
Index: qjsc.c
--- qjsc.c.orig
+++ qjsc.c
-@@ -449,7 +449,6 @@ static int output_executable(const char *out_filename,
+@@ -502,7 +502,6 @@ static int output_executable(const char *out_filename,
lib_dir, bn_suffix, lto_suffix);
*arg++ = libjsname;
*arg++ = "-lm";
- *arg++ = "-ldl";
*arg++ = "-lpthread";
*arg = NULL;
-
+
Index: lang/quickjs/patches/patch-quickjs-libc_c
===================================================================
RCS file: /cvs/ports/lang/quickjs/patches/patch-quickjs-libc_c,v
diff -u -p -u -r1.3 patch-quickjs-libc_c
--- lang/quickjs/patches/patch-quickjs-libc_c 11 Mar 2022 19:29:13 -0000 1.3
+++ lang/quickjs/patches/patch-quickjs-libc_c 6 Nov 2025 03:58:16 -0000
@@ -1,7 +1,7 @@
Index: quickjs-libc.c
--- quickjs-libc.c.orig
+++ quickjs-libc.c
-@@ -55,6 +55,11 @@ typedef sig_t sighandler_t;
+@@ -62,5 +62,10 @@ typedef sig_t sighandler_t;
#endif
#endif /* __APPLE__ */
@@ -12,4 +12,3 @@ Index: quickjs-libc.c
+
#endif
- #if !defined(_WIN32)
Index: lang/quickjs/patches/patch-quickjs_c
===================================================================
RCS file: /cvs/ports/lang/quickjs/patches/patch-quickjs_c,v
diff -u -p -u -r1.4 patch-quickjs_c
--- lang/quickjs/patches/patch-quickjs_c 30 May 2024 18:05:13 -0000 1.4
+++ lang/quickjs/patches/patch-quickjs_c 6 Nov 2025 03:58:26 -0000
@@ -1,7 +1,7 @@
Index: quickjs.c
--- quickjs.c.orig
+++ quickjs.c
-@@ -1705,7 +1705,7 @@ static size_t js_def_malloc_usable_size(const void *pt
+@@ -1675,7 +1675,7 @@ static size_t js_def_malloc_usable_size(const void *pt
return malloc_usable_size((void *)ptr);
#else
/* change this to `return 0;` if compilation fails */
Index: lang/quickjs/patches/patch-tests_test_builtin_js
===================================================================
RCS file: /cvs/ports/lang/quickjs/patches/patch-tests_test_builtin_js,v
diff -u -p -u -r1.4 patch-tests_test_builtin_js
--- lang/quickjs/patches/patch-tests_test_builtin_js 30 May 2024 18:05:13 -0000 1.4
+++ lang/quickjs/patches/patch-tests_test_builtin_js 6 Nov 2025 03:58:38 -0000
@@ -6,22 +6,25 @@ Fix the Float32Array test on big-endian
Index: tests/test_builtin.js
--- tests/test_builtin.js.orig
+++ tests/test_builtin.js
-@@ -336,12 +336,12 @@ function test_number()
- assert(Number.isNaN(Number("-")));
- assert(Number.isNaN(Number("\x00a")));
-
+@@ -384,13 +384,13 @@ function test_number()
+ assert((1-2**-53).toString(12), "0.bbbbbbbbbbbbbba");
+ assert((1000000000000000128).toString(), "1000000000000000100");
+ assert((1000000000000000128).toFixed(0), "1000000000000000128");
- assert((25).toExponential(0), "3e+1");
- assert((-25).toExponential(0), "-3e+1");
- assert((2.5).toPrecision(1), "3");
- assert((-2.5).toPrecision(1), "-3");
+- assert((25).toPrecision(1) === "3e+1");
- assert((1.125).toFixed(2), "1.13");
- assert((-1.125).toFixed(2), "-1.13");
+// assert((25).toExponential(0), "3e+1");
+// assert((-25).toExponential(0), "-3e+1");
+// assert((2.5).toPrecision(1), "3");
+// assert((-2.5).toPrecision(1), "-3");
++// assert((25).toPrecision(1) === "3e+1");
+// assert((1.125).toFixed(2), "1.13");
+// assert((-1.125).toFixed(2), "-1.13");
- }
+ assert((0.5).toFixed(0), "1");
+ assert((-0.5).toFixed(0), "-1");
+ assert((-1e-10).toFixed(0), "-0");
- function test_eval2()
Index: lang/quickjs/patches/patch-tests_test_std_js
===================================================================
RCS file: lang/quickjs/patches/patch-tests_test_std_js
diff -N lang/quickjs/patches/patch-tests_test_std_js
--- lang/quickjs/patches/patch-tests_test_std_js 30 May 2024 18:05:13 -0000 1.3
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,18 +0,0 @@
-This test waits forever if the process ignores SIGQUIT.
-
-Index: tests/test_std.js
---- tests/test_std.js.orig
-+++ tests/test_std.js
-@@ -253,10 +253,10 @@ function test_os_exec()
-
- pid = os.exec(["cat"], { block: false } );
- assert(pid >= 0);
-- os.kill(pid, os.SIGQUIT);
-+ os.kill(pid, os.SIGTERM);
- [ret, status] = os.waitpid(pid, 0);
- assert(ret, pid);
-- assert(status & 0x7f, os.SIGQUIT);
-+ assert(status & 0x7f, os.SIGTERM);
- }
-
- function test_timer()
[update] lang/quickjs 2024.01.13 -> 2025.09.13