| Deutsch English Français Italiano |
|
<103i025$1950b$1@solani.org> View for Bookmarking (what is this?) Look up another Usenet article |
Path: news.eternal-september.org!eternal-september.org!feeder3.eternal-september.org!weretis.net!feeder8.news.weretis.net!reader5.news.weretis.net!news.solani.org!.POSTED!not-for-mail From: Mild Shock <janburse@fastmail.fm> Newsgroups: comp.lang.prolog Subject: Pure I/O in Dogelog Player (Was: ANN: Dogelog Player 1.3.3 (Dark Mode)) Date: Thu, 26 Jun 2025 01:17:26 +0200 Message-ID: <103i025$1950b$1@solani.org> References: <1030pjb$10g35$1@solani.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Wed, 25 Jun 2025 23:17:25 -0000 (UTC) Injection-Info: solani.org; logging-data="1348619"; 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:cPbprcZI2J4AsI3S7oFY1imZ/aI= X-User-ID: eJwNzMERACEIA8CWBEOQcvQM/Zdw/nc2Jo1fgkFER2ON3l51WoCtkNKYuLw4cBaHrbrppU33O0221fNRUW/6ATuAFOc= In-Reply-To: <1030pjb$10g35$1@solani.org> 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/