• ANN: Dogelog Player 2.3.1 (Task Channels)

    From Mild Shock@janburse@fastmail.fm to comp.lang.python on Thu Sep 17 23:53:38 2026
    From Newsgroup: comp.lang.python

    Dear All,

    We are happy to announce a new
    edition of the Dogelog Player:

    - Enhanced catch/3:
    We noticed that catch/3 causes a friction in
    '$YIELD'/1. So we redesigned its implementation
    by refraining from using the host programming
    language stack. The engine now offers an exception
    handler stack, and the Prolog interpreter trampolin
    unwinds these exception handlers upon a
    Prolog or host error.

    - New call_cleanup/3:
    The new predicate call_cleanup/3 supplants the
    old predicate once_cleanup/3. Like catch/3 it
    now features an implementation that refrains
    from using the host programming language stack.
    Its implementation makes use of a rogue '$CUT'/1
    which is realized by choicepoint scanning
    and continuation manipulation.

    - Task Channels:
    To lower the footprint of the core there are
    new libraries library(timer) and library(tasks).
    The later library offers a new predicate task_join/1
    which is abortable. Further the library offers
    predicates chan/1, recv/2 and send/2 to deal with
    channels that live in the cooperative
    multitasking realm.

    Have Fun!

    Jan Burse, September 17, 2026, https://www.herbrand.ai/
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Johann 'Myrkraverk' Oskarsson@johann@myrkraverk.invalid to comp.lang.python on Fri Sep 25 23:36:29 2026
    From Newsgroup: comp.lang.python

    On 9/18/2026 5:53 AM, Mild Shock wrote:
    Dear All,

    We are happy to announce a new
    -aedition of the Dogelog Player:

    - Enhanced catch/3:
    We noticed that catch/3 causes a friction in
    '$YIELD'/1. So we redesigned its implementation
    by refraining from using the host programming
    language stack. The engine now offers an exception
    handler stack, and the Prolog interpreter trampolin
    unwinds these exception handlers upon a
    Prolog or host error.

    - New call_cleanup/3:
    The new predicate call_cleanup/3 supplants the
    old predicate once_cleanup/3. Like catch/3 it
    now features an implementation that refrains
    from using the host programming language stack.
    Its implementation makes use of a rogue '$CUT'/1
    which is realized by choicepoint scanning
    and continuation manipulation.

    - Task Channels:
    To lower the footprint of the core there are
    new libraries library(timer) and library(tasks).
    The later library offers a new predicate task_join/1
    which is abortable. Further the library offers
    predicates chan/1, recv/2 and send/2 to deal with
    channels that live in the cooperative
    multitasking realm.

    Have Fun!

    Jan Burse, September 17, 2026, https://www.herbrand.ai/

    Dear Mild Shock,

    Congratulations on this milestone. I see that you've been way too
    busy coding to reply to my other followups, and I hope you will for-
    give me for not replying to more of your Usenet posts.

    They are always delightful, and I look forward to read more of your
    poetry.


    Best wishes, and happy Prolog in Python!
    --
    Johann | email: invalid -> com | http://www.myrkraverk.com/blog/
    I'm not from the Internet, I just work there. | via Easynews.com https://bsky.app/profile/myrkraverk.bsky.social | for ( ;; ) _:;
    Federated at https://fed.brid.gy/bsky/myrkraverk.bsky.social
    --- Synchronet 3.22a-Linux NewsLink 1.2