shithub: sl

Download patch

ref: a59678bdd9ddedee9cc73e928f063036ece46362
parent: c1ac6d795a28cd62ce5acf8fa75f2c381e59ef06
author: Sigrid Solveig Haflínudóttir <sigrid@ftrv.se>
date: Thu Apr 10 17:56:13 EDT 2025

add ptr?

--- a/src/builtins.c
+++ b/src/builtins.c
@@ -262,6 +262,20 @@
 	return isbignum(args[0]) ? sl_t : sl_nil;
 }
 
+sl_purefn
+BUILTIN("ptr?", ptrp)
+{
+	argcount(nargs, 1);
+	sl_v v = args[0];
+	if(isubnum(v))
+		return ubnumtype(v) == T_P32 || ubnumtype(v) == T_P64 ? sl_t : sl_nil;
+	if(iscvalue(v)){
+		sl_cv *p = ptr(v);
+		return cv_numtype(p) == T_P32 || cv_numtype(p) == T_P64 ? sl_t : sl_nil;
+	}
+	return sl_nil;
+}
+
 BUILTIN("fixnum", fixnum)
 {
 	argcount(nargs, 1);