Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.prolog > #14347

Re: Ulrich Neumerkel is like Ozzy Osbourne

From Mild Shock <janburse@fastmail.fm>
Newsgroups comp.lang.prolog
Subject Re: Ulrich Neumerkel is like Ozzy Osbourne
Date 2024-12-05 11:33 +0100
Message-ID <virvig$raf2$1@solani.org> (permalink)
References <virv4c$eoih$1@solani.org>

Show all headers | View raw


Hi,

This test case is also extremly cringe.
In our Prolog system it conflicts with another
optimization, that is in place to reduce the

length of instantiation chains.

run4 :- run(_).
run(X) :- f(X).
run(X) :- X == [].

Our Prolog system doesn't create a variable
at all for the first clause of run. It speculates
that return value variables are passed around and

thus resulting in no extra instantiation chains.
So it passes the anonymous variable from run4
to the call of f/1. But since the anonymous variable

is from the run(_) call site, and since there is
a choice point. The anonymous variable is always
reachable never carbage collected, similarly chains

_=[f,..,f|T] will never get garbage collected.
In as far the test case fails after a while with
memory overflow.

Bye

Mild Shock schrieb:
> Hi,
> 
> Ulrich Neumerkel is like Ozzy Osbourne.
> He is making me paranoid. Especially this
> F.U.D. here stole one week of my life.
> 
> Precise Garbage Collection in Prolog
> https://www.swi-prolog.org/download/publications/lifegc.pdf
> 
> The test cases make no sense at all!
> Take this test case run1, similar to run2
> and run3:
> 
> run1 :- f(_).
> f([f|X]) :- f(X).
> 
> You will never find this in real world.
> Perpetual processes usually have a different
> pattern of loop state transition.
> 
> Also its virtually impossible to garbage collect
> via minor incremental garbage collection. We
> might find a chain X=[f,..,f,Y] and collect
> 
> it. But Xn is then colored as old. And instantiation
> of an old variable gets on the changed list, and
> so a new chain Y=[f,..,f,Z] will not be reclaimed,
> 
> so that the beast can be only reclaimed via
> major garbage collection.
> 
> Bye
> 
> P.S.: Maybe there is a chance to solve it
> nevertheless via minor garbage collection, but
> its very difficult. I had something in
> 
> formerly Jekejeke Prolog via reference counting.
> But not sure how to bring it to a Prolog
> system without reference counting.
> 
> 
> 

Back to comp.lang.prolog | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Ulrich Neumerkel is like Ozzy Osbourne Mild Shock <janburse@fastmail.fm> - 2024-12-05 11:26 +0100
  Re: Ulrich Neumerkel is like Ozzy Osbourne Mild Shock <janburse@fastmail.fm> - 2024-12-05 11:33 +0100
    Re: Ulrich Neumerkel is like Ozzy Osbourne Mild Shock <janburse@fastmail.fm> - 2024-12-05 11:41 +0100
      Re: Ulrich Neumerkel is like Ozzy Osbourne Mild Shock <janburse@fastmail.fm> - 2024-12-05 11:44 +0100
        Prolog Development à la Sigmund Freud (Was: Ulrich Neumerkel is like Ozzy Osbourne) Mild Shock <janburse@fastmail.fm> - 2025-05-25 09:46 +0200
          variable ordering guarantees in term_singletons/2 (Was: Prolog Development à la Sigmund Freud) Mild Shock <janburse@fastmail.fm> - 2025-05-25 09:57 +0200
            My stupid Dogelog Player falls back to _<number> (Was: variable ordering guarantees in term_singletons/2) Mild Shock <janburse@fastmail.fm> - 2025-05-25 10:18 +0200
            the desease of C code overkill (Was: variable ordering guarantees in term_singletons/2) Mild Shock <janburse@fastmail.fm> - 2025-05-28 16:12 +0200
              Quintus Folks were not hating Prolog that much (Was: the desease of C code overkill) Mild Shock <janburse@fastmail.fm> - 2025-05-28 16:32 +0200
  Ciao Prolog inspired Test Case (Re: Ulrich Neumerkel is like Ozzy Osbourne) Mild Shock <janburse@fastmail.fm> - 2025-05-27 07:45 +0200

csiph-web