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


Groups > comp.lang.prolog > #15889

Does it have a declarative reading? (Re: Doing uux with pi-calculus and WAM)

From Mild Shock <janburse@fastmail.fm>
Newsgroups sci.physics.relativity, comp.lang.prolog
Subject Does it have a declarative reading? (Re: Doing uux with pi-calculus and WAM)
Date 2026-08-24 20:44 +0200
Message-ID <116i3e6$11mvr$1@solani.org> (permalink)
References <1131tbj$tqe$9@solani.org> <113ksvo$3l1m$2@solani.org> <113ktmc$3lig$2@solani.org> <116i1os$11ln3$2@solani.org>

Cross-posted to 2 groups.

Show all headers | View raw


Hi,

Sorry I forget to specify the site for wc.
Lets just write it as follows, the site
somehow encoded in a the predicate name,

and forget about a lot of (!)/2 details:

?- prepare(merlin(X,Y)), [in(X), out(Y)], P),
    venus(X),
    run(P),
    mars(Y).

Does it have a declarative reading? Besides
the benefit of shipping merlin/1 only once?
Of course we can interpret it as follows:

?- venus(X),
    merlin(X,Y),
    mars(Y).

This would be much more also in the spirit of a
Jens Ottens theorem provers, that ultimately end
in connection proof problems, when they have

decended down. Maybe the Trinity system can
somehow avoid the multiple shipping of the merlin
payload through caching. But the problem is it

will see merlin(foo, Y), merlin(bar, Y),
merlin(baz, Y). So it doesn't know what was
the input. It cannot create a single logical

thread on the executing site.

Bye

Mild Shock schrieb:
> Hi,
> 
> I find an early precendent of a command
> in a unix system, which has an interesting
> flavor, that goes beyond Web Prolog Trinity
> 
> RPC nonsense. Take this command:
> 
> uux merlin!wc < venus!/paper/*.tex > mars!/stats/*.txt
> https://www.ibm.com/docs/en/aix/7.1.0?topic=u-uux-command
> 
> So basically wc, i.e. word count is executed
> on merlin, takes data from venus and moves it
> to marks. We can do the same with pi-WAM,
> 
> currently experimenting with a non-blocking
> execute/1 built-in, spawn/2:
> 
> ?- chan(In), chan(Out),
>     spawn((recv(3,[Z]), wc(Z,T), send(4,[T])), [comm([In,Out])]),
>     venus(X),
>     send(In,[X]), repeat, recv(Out,[Y]),
>     mars(Y).
> 
> But maybe introducing in/1 and out/1 options
> to spawn/2, would be more easier to write,
> now I have split spawn/2 into prepare/3 and run/1.
> 
> ?- chan(In), chan(Out),
>     prepare(wc(X,Y)), [in(X), out(Y)], P),
>     venus(X),
>     run(P),
>     mars(Y).
> 
> But the point is to do prepare/3 only once,
> and do mars and venus later. It also reflects
> the ordering on a uux command:
> 
> 1               2                    3
> uux merlin!wc < venus!/paper/*.tex > mars!/stats/*.txt
> 
> But we wouldn't do it alone for this cosmetic.
> The idea is that the spawned process is using
> its channels, to do more than only one job.
> 
> Bye
> 
> 
> Mild Shock schrieb:
>> Hi,
>>
>> Hi take Robin Milners fickle:
>>
>> ?- emulate((between(1,2,Y),in(X),out(Y))).
>> : 0
>> 1
>> : 0
>> 2
>> fail.
>>
>> If I use NUM=3, number of logical threads,
>> and common input [0, 0, 0, 0, 0, 0].
>>
>> I might get this common output:
>>
>> [1, 2, 1, 2, 1, 2]
>>
>> Or this common output:
>>
>> [1, 1, 2, 2, 1, 2]
>>
>> Or this common output:
>>
>> [1, 1, 1, 2, 2, 2]
>>
>> What else? Did I miss some case?
>>
>> Can be seen on GPU and CPU backend, depending
>> on launch parameters. (*)
>>
>> Bye
>>
>> (*) If logical threads are executed together in
>> work groups, certain guarantees of determinism
>> might hold. But modern GPUs usually support
>>
>> multiple independent work groups, also my CPU
>> backend does support a notion of multiple
>> independent work groups. So that the determinism
>>
>> guarantees only hold inside the work group.
>>
>> Mild Shock schrieb:
>>> Hi,
>>>
>>> Probably blinded by some academic remoteness
>>> from the real world, some people really believe
>>> nonsense like the following:
>>>
>>> Deterministic Concurrency - Edward Lee
>>> deterministic models as a central part of the engineering toolkit
>>> https://icfp26.sigplan.org/track/icfp-2026-icfp-keynotes#event-overview
>>>
>>> But hey Aristoteles present us already with
>>> modal logic to talk about the future. So
>>> if I have a process calculus, with expressions
>>>
>>> π, that capture all my processes of interest,
>>> I can have a modal logic of with modal operators
>>> [π] and <π> that give necessity and possibility,
>>>
>>> the simplest first order bootstrapped types are:
>>>
>>> Product Type:
>>> A -> [π]B
>>>
>>> Sum Type:
>>> A /\ <π>B
>>>
>>> So we need more than only a ->π type? But even
>>> with two types, is there an easy equivalent of
>>> Curry Howard isomorphism?
>>>
>>> In contrast Amir Pnueli's 1977 system of temporal
>>> logic, another variant of modal logic sharing many
>>> common features with dynamic logic, differs from all
>>> of the above-mentioned logics by being what Pnueli
>>> has characterized as an "endogenous" logic,
>>> the others being "exogenous" logics.
>>> https://en.wikipedia.org/wiki/Dynamic_logic_%28modal_logic%29
>>>
>>> The Sea Battle and the Master Argument
>>> Aristotle and Diodorus Cronus on the Metaphysics of the Future
>>> https://www.degruyterbrill.com/de/document/doi/10.1515/9783110866346/html 
>>>
>>>
>>>
>>>
>>> Mild Shock schrieb:
>>>> Hi,
>>>>
>>>> For marketing purposes people
>>>> typically look at the race towards
>>>> 2nm, and we find:
>>>>
>>>> A month ago, Apple lost its exclusivity
>>>> on 3 nm smartphone processors with
>>>> MediaTek’s Dimensity 9400 chip, integrated
>>>> in the Vivo X200 Pro smartphone. Qualcomm
>>>> is also in the race with its recently
>>>> unveiled Snapdragon 8 Elite and set to
>>>> power the Xiaomi 15 Pro in 2025. However,
>>>> Apple should regain its position as innovation
>>>> leader in 2026 with the release of the
>>>> iPhone 18, which should feature the A20
>>>> chip built on TSMC’s 2 nm process."
>>>>
>>>> But there is a vertical vias revolution
>>>> going on as well, some SOCs typically
>>>> being at 18 layers now:
>>>>
>>>> Zooming Into a CPU (It's Incredible)
>>>> https://www.youtube.com/watch?v=Bez-2cvYja0
>>>>
>>>> imec has coined the term CMOS 2.0:
>>>>
>>>> LEUVEN (Belgium), MARCH 12th, 2026 — Imec,
>>>> a world-leading research and innovation hub
>>>> in advanced semiconductor technologies, has
>>>> launched a first-of-its-kind consortium with
>>>> 26 European university groups that will jointly
>>>> work on the technology roadmap beyond
>>>> CMOS scaling (CMOS 2.0).
>>>> https://www.imec-int.com/en/press/imec-launches-university-consortium-around-next-generation-chips 
>>>>
>>>>
>>>> So we might see more mobile grade GPUs.
>>>>
>>>> Bye
>>>
>>
> 

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


Thread

Does it have a declarative reading? (Re: Doing uux with pi-calculus and WAM) Mild Shock <janburse@fastmail.fm> - 2026-08-24 20:44 +0200
  MCP = uux with streaming JSON (Re: Does it have a declarative reading?) Mild Shock <janburse@fastmail.fm> - 2026-08-24 22:28 +0200

csiph-web