• Pure I/O in Dogelog Player (Re: ANN: Dogelog Player 1.3.3 (Dark Mode))

    From Mild Shock@3:633/280.2 to All on Thu Jun 26 09:19:00 2025
    Subject: Pure I/O in Dogelog Player (Re: ANN: Dogelog Player 1.3.3 (Dark
    Mode))


    Dogelog Player is a Prolog system mainly written
    in Prolog itself. A library(pio) for Pure I/O is
    not part of this Prolog systems. Herein we report
    a successful experiment of implementing such a
    library. The library has a Web 2.0 realization
    since the streams can even originate from URLs.

    Instead of going with memory mapping or attributed
    variables, our main idea is to use ā€˜C’/3 to
    detect Haskell lazy and realize it with change_arg/3.
    The grammar backtracking is potentially unlimited.
    There is a separation of concern into a get_lazy/3
    and the unit need not be codes.

    See also:

    Pure I/O in Dogelog Player
    https://medium.com/@janburse_2989/1dc0afb9dcae

    Mild Shock schrieb:
    Dear All,

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

    - Output Flags:
    The output streams now carry flags. The mask
    0x00000004 indicates that the end-user wants
    some fancy output. The Prolog core offers a
    hook on sys_print_error/2, so that errors and
    warnings can be styled. Works seemless for the
    browser and the console via library(markup).

    - Write Option:
    The write routine now offers an additional option.
    The Prolog core offers a hook for put_atom/2,
    so that the output tokens produced by the predicate
    write_term/2 can be run through a pygmentation
    routine. When using class names instead of color
    values, style sheets in the browser allow color
    switching between dark and light mode.

    - Improved Top-Level:
    To reduce footprint and startup time in scripting
    mode, the top-level has been refactored into an
    optional separate Prolog text library(session).
    The Prolog text offers print error and put atom
    hooks, and as well as some logic so that the
    listing predicate listing/[0,1] and answer
    substitutions (?-)/1 deliver fancy output if
    the output stream desires so.

    Have Fun!

    Jan Burse, 19.06.2025, https://www.herbrand.ai/


    --- MBSE BBS v1.1.1 (Linux-x86_64)
    * Origin: ---:- FTN<->UseNet Gate -:--- (3:633/280.2@fidonet)