[master] 337e95a1d vmod_std: remove type2type functions

Nils Goroll nils.goroll at uplex.de
Wed Jul 2 08:50:04 UTC 2025


commit 337e95a1de25884cfc135a9447048c918ff4bd63
Author: Nils Goroll <nils.goroll at uplex.de>
Date:   Wed Jul 2 10:48:38 2025 +0200

    vmod_std: remove type2type functions
    
    Ref: #3352

diff --git a/bin/varnishtest/tests/r01532.vtc b/bin/varnishtest/tests/r01532.vtc
index 271e51e26..5bb4b743b 100644
--- a/bin/varnishtest/tests/r01532.vtc
+++ b/bin/varnishtest/tests/r01532.vtc
@@ -9,7 +9,7 @@ varnish v1 -vcl+backend {
 	import std;
 
 	sub vcl_deliver {
-		set resp.http.x-foo = std.real2time(1140618699.00, now);
+		set resp.http.x-foo = std.time(real=1140618699.00, fallback=now);
 	}
 } -start
 
diff --git a/bin/varnishtest/tests/r03308.vtc b/bin/varnishtest/tests/r03308.vtc
index 83355f935..dc98ca904 100644
--- a/bin/varnishtest/tests/r03308.vtc
+++ b/bin/varnishtest/tests/r03308.vtc
@@ -11,10 +11,9 @@ varnish v1 -vcl+backend {
 	import std;
 
 	sub vcl_deliver {
-		set resp.http.ts = std.real2time(
-		    std.real("999999999999.999", 0) *
-		    std.real("999999999999.999", 0),
-		    now);
+		set resp.http.ts = std.time(
+		    real=std.real("999999999999.999", 0) * std.real("999999999999.999", 0),
+		    fallback=now);
 	}
 } -start
 
diff --git a/doc/changes.rst b/doc/changes.rst
index 6ee0ed3ff..ca0c5ff58 100644
--- a/doc/changes.rst
+++ b/doc/changes.rst
@@ -41,6 +41,28 @@ Varnish Cache NEXT (8.0, 2025-09-15)
 .. PLEASE keep this roughly in commit order as shown by git-log / tig
    (new to old)
 
+* The VMOD functions ``std.real2integer()``, ``std.real2time()``,
+  ``std.time2integer()`` and ``std.time2real()`` have been removed. They had
+  been marked deprecated since Varnish Cache release 6.2.0 (2019-03-15).
+
+  The plug-in replacements for these functions are:
+
+  * ``std.real2integer()``::
+
+        std.integer(real=std.round(...), fallback=...)
+
+  * ``std.real2time()``::
+
+        std.time(real=std.round(...), fallback=...)
+
+  * ``std.time2integer()``::
+
+        std.integer(time=..., fallback=...)
+
+  * ``std.time2real()``::
+
+        std.real(time=..., fallback=...)
+
 * The bundled varnishtest sources have now been replaced with the seperate
   VTest2 repository.
 
diff --git a/vmod/tests/std_b00009.vtc b/vmod/tests/std_b00009.vtc
index 47ee311fe..eea455a12 100644
--- a/vmod/tests/std_b00009.vtc
+++ b/vmod/tests/std_b00009.vtc
@@ -1,4 +1,4 @@
-varnishtest "Test real2integer, real2time, time2integer and time2real in std"
+varnishtest "Test conversion functions in std"
 
 server s1 {
 	rxreq
@@ -10,14 +10,16 @@ varnish v1 -vcl+backend {
 
 	sub vcl_deliver {
 		set resp.http.x-foo = std.integer(req.http.foo, 0);
-		set resp.http.x-bar = std.time2integer(std.real2time(
-		    std.real(resp.http.x-foo, 0.0), now), 1);
+		set resp.http.x-bar = std.integer(time=std.time(
+		    real=std.real(resp.http.x-foo, 0.0), fallback=now),
+		    fallback=1);
 
-		set resp.http.x-baz = std.time2real(std.real2time(
-		    std.real(resp.http.x-foo, 0.0), now), 1.0);
+		set resp.http.x-baz = std.real(time=std.time(
+		    real=std.real(resp.http.x-foo, 0.0), fallback=now),
+		    fallback=1.0);
 
-		set resp.http.x-qux = std.real2integer(
-		    std.real(req.http.foo, 2.0), 2);
+		set resp.http.x-qux = std.integer(
+		    real=std.real(req.http.foo, 2.0), fallback=2);
 
 		set resp.http.x-xyzzy1 = std.integer(
 		    s=std.real(req.http.foo, 2.0));
@@ -25,7 +27,9 @@ varnish v1 -vcl+backend {
 		set resp.http.x-xyzzy2 = std.integer(
 		    real=std.real(req.http.foo, 2.0));
 
-		set resp.http.x-int-fallback = std.real2integer(123456789012.345 * 1000.0 * 10, 2);
+		set resp.http.x-int-fallback = std.integer(
+		    real=123456789012.345 * 1000.0 * 10,
+		    fallback=2);
 	}
 } -start
 
diff --git a/vmod/vmod_std.vcc b/vmod/vmod_std.vcc
index 2fb65f7bf..87978f615 100644
--- a/vmod/vmod_std.vcc
+++ b/vmod/vmod_std.vcc
@@ -696,74 +696,6 @@ $Function DURATION timed_call(SUB)
 Call the given SUB and return a high precision measurement of the
 execution time.
 
-DEPRECATED functions
-====================
-
-$Function INT real2integer(REAL r, INT fallback)
-
-**DEPRECATED**: This function will be removed in a future version of
-varnish, use `std.integer()`_ with a *real* argument and the
-`std.round()`_ function instead, for example::
-
-	std.integer(real=std.round(...), fallback=...)
-
-Rounds the real *r* to the nearest integer, but round halfway cases
-away from zero (see `round(3)`). If conversion fails, *fallback* will
-be returned.
-
-Examples::
-
-	set req.http.integer = std.real2integer(1140618699.00, 0);
-	set req.http.posone = real2integer( 0.5, 0);	# =  1.0
-	set req.http.negone = real2integer(-0.5, 0);	# = -1.0
-
-$Function TIME real2time(REAL r, TIME fallback)
-
-**DEPRECATED**: This function will be removed in a future version of
-varnish, use `std.time()`_ with a *real* argument and the
-`std.round()`_ function instead, for example::
-
-	std.time(real=std.round(...), fallback=...)
-
-Rounds the real *r* to the nearest integer (see
-`std.real2integer()`_) and returns the corresponding time when
-interpreted as a unix epoch. If conversion fails, *fallback* will be
-returned.
-
-Example::
-
-	set req.http.time = std.real2time(1140618699.00, now);
-
-$Function INT time2integer(TIME t, INT fallback)
-
-**DEPRECATED**: This function will be removed in a future version of
-varnish, use `std.integer()`_ with a *time* argument instead, for
-example::
-
-	std.integer(time=..., fallback=...)
-
-Converts the time *t* to a integer. If conversion fails,
-*fallback* will be returned.
-
-Example::
-
-	set req.http.int = std.time2integer(now, 0);
-
-$Function REAL time2real(TIME t, REAL fallback)
-
-**DEPRECATED**: This function will be removed in a future version of
-varnish, use `std.real()`_ with a *time* argument instead, for
-example::
-
-	std.real(time=..., fallback=...)
-
-Converts the time *t* to a real. If conversion fails, *fallback* will
-be returned.
-
-Example::
-
-	set req.http.real = std.time2real(now, 1.0);
-
 SEE ALSO
 ========
 
diff --git a/vmod/vmod_std_conversions.c b/vmod/vmod_std_conversions.c
index f8ef8d936..2965f24c2 100644
--- a/vmod/vmod_std_conversions.c
+++ b/vmod/vmod_std_conversions.c
@@ -353,55 +353,3 @@ vmod_strftime(VRT_CTX, VCL_TIME t, VCL_STRING fmt)
 	WS_Release(ctx->ws, r);
 	return (s);
 }
-
-/* These functions are deprecated as of 2019-03-15 release */
-
-VCL_INT v_matchproto_(td_std_real2integer)
-vmod_real2integer(VRT_CTX, VCL_REAL r, VCL_INT i)
-{
-	VCL_INT retval;
-
-	CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
-
-	if (!VRT_REAL_is_valid(r))
-		return (i);
-	retval = (VCL_INT)round(r);
-	if (!VRT_INT_is_valid(retval))
-		return (i);
-	return (retval);
-}
-
-VCL_TIME v_matchproto_(td_std_real2time)
-vmod_real2time(VRT_CTX, VCL_REAL r, VCL_TIME t)
-{
-	CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
-
-	if (!isfinite(r))
-		return (t);
-
-	return (r);
-}
-
-VCL_INT v_matchproto_(td_std_time2integer)
-vmod_time2integer(VRT_CTX, VCL_TIME t, VCL_INT i)
-{
-	CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
-
-	if (!isfinite(t))
-		return (i);
-	t = round(t);
-	if (t > VRT_INTEGER_MAX || t < VRT_INTEGER_MIN)
-		return (i);
-	return ((VCL_INT)t);
-}
-
-VCL_REAL v_matchproto_(td_std_time2real)
-vmod_time2real(VRT_CTX, VCL_TIME t, VCL_REAL r)
-{
-	CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
-
-	if (!isfinite(t))
-		return (r);
-
-	return (t);
-}


More information about the varnish-commit mailing list