Index | Thread | Search

From:
David Uhden Collado <daviduhden@gmail.com>
Subject:
Re: [update] lang/quickjs 2024.01.13 -> 2025.09.13
To:
George Koehler <kernigh@gmail.com>
Cc:
ports@openbsd.org, bcallah@openbsd.org
Date:
Thu, 6 Nov 2025 05:10:57 +0100

Download raw body.

Thread
> 
>> 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()