This patch fixes an endless loop in the scrutinizer. I have not fully analyzed the problem, the scrutinizer has become a nearly unmaintainable mess.
Bug was reported by Peter McGoron. felix
From ae9a5dd3302ddf7e75dee91f438782fffcab388d Mon Sep 17 00:00:00 2001 From: felix <[email protected]> Date: Tue, 31 Dec 2024 11:19:21 +0100 Subject: [PATCH] avoid looping in type-resolution during scrutiny reported by Peter McGoron --- manual/Acknowledgements | 2 +- scrutinizer.scm | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/manual/Acknowledgements b/manual/Acknowledgements index a8f939ad..da9047c4 100644 --- a/manual/Acknowledgements +++ b/manual/Acknowledgements @@ -32,7 +32,7 @@ David Krentzlin, Ben Kurtz, Sebastien Marie, Alice Maz, Michele La Monaca, Micky Latowicki, Kristian Lein-Mathisen, "LemonBoy", John Lenz, Kirill Lisovsky, Jürgen Lorenz, Kon Lovett, Lam Luu, Arthur Maciel, Vitaly Magerya, Leonardo Valeri Manera, Claude Marinier, Dennis Marti, -Charles Martin, Bob McIsaac, "megane", Alain Mellan, Eric Merrit, +Charles Martin, Peter McGoron, Bob McIsaac, "megane", Alain Mellan, Eric Merrit, Perry Metzger, Scott G. Miller, Mikael, Karel Miklav, Bruce Mitchener, Fadi Moukayed, Chris Moline, Eric E. Moore, Julian Morrison, Dan Muresan, David N. Murray, Timo Myyrä, "nicktick", Lars Nilsson, diff --git a/scrutinizer.scm b/scrutinizer.scm index a8a78852..2e31bce1 100644 --- a/scrutinizer.scm +++ b/scrutinizer.scm @@ -1573,6 +1573,7 @@ (lambda (a) (let ((t2 (second a))) (if (or (not t2) + (memq t done) (memq t2 done)) ; circular reference (if (third a) (resolve (third a) (cons t done)) -- 2.42.0
