Path: csiph.com!weretis.net!feeder8.news.weretis.net!reader5.news.weretis.net!news.solani.org!.POSTED!not-for-mail From: Mild Shock Newsgroups: comp.lang.java.programmer Subject: ANN: Dogelog Player 1.3.5 (Cyclic Terms) Date: Sat, 2 Aug 2025 15:44:55 +0200 Message-ID: <106l4on$366q0$3@solani.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Sat, 2 Aug 2025 13:44:55 -0000 (UTC) Injection-Info: solani.org; logging-data="3349312"; mail-complaints-to="abuse@news.solani.org" User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0 SeaMonkey/2.53.21 Cancel-Lock: sha1:PbWPZRWMkF7tRR9hEZK76H4qiPA= X-User-ID: eJwFwYEBwCAIA7CXLNDWnTMd/H/CEqag6xJVHI6nluhG6ESKDXaz/MY5eBZyXHwKtd+VfQl9iBtjayPdPyRwFBI= X-Mozilla-News-Host: news://news.solani.org:119 Xref: csiph.com comp.lang.java.programmer:53744 Dear All, We are happy to announce a new edition of the Dogelog player: - Enhanced Core: We provide internally unify_cyclic() which implements Hopcroft & Karp (1971) algorithm and can deal with cyclic terms. It is accessible via the built-in predicate (=)/2 and also used by the Prolog interpreter for solving clauses. Similar there is an enhanced (==)/2 available to the end-user. - Enhanced library(tools): The debugger is now cyclic term aware and uses a term factoring based on a new same_term/2 before printing a goal. The display is simply a conjunction Equation_1, .., Equation_n, Goal, where the equations are necessary to break cycles. As before Prolog variables are still printed by their serial number. - Enhanced library(session): The answer display is now cyclic term aware and uses the same term factoring as the debugger. Answer substitutions and cycle breaking equations are interspersed. We tried hard to not break old features, such as fresh singleton variable names, fresh multiton variable names and marked variables suppression. Have Fun! Jan Burse, https://www.herbrand.ai/ , 02.08.2025