Re: Streamable DOM and obsolete put_code/[1,2]

Liste des GroupesRevenir à cl prolog 
Sujet : Re: Streamable DOM and obsolete put_code/[1,2]
De : janburse (at) *nospam* fastmail.fm (Mild Shock)
Groupes : comp.lang.prolog
Date : 02. Apr 2025, 10:56:20
Autres entêtes
Message-ID : <vsj1k3$m6op$1@solani.org>
References : 1
User-Agent : Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0 SeaMonkey/2.53.20
Hi,
Streamable DOM in the form of a "HTML writer",
can be a real miracle. SWI, Ciao, etc.. none
of the Prolog systems have a "HTML writer",
it seems the prospect of a HTMLParser inside such
"HTML writer", and that it is a state machine
confuses the world view of many people. But
the idea was already pursued by Tau Prolog.
Just take an element:
 > <div id="writeme"></div>
And then literally you only have to open it:
 > :- use_module(library(dom)).
 >
 >output :-
 >    get_by_id(writeme, WriteMe),
 >    open(WriteMe, write, Stream),
 >    write(Stream, hello),
 >    write(Stream, world).
But it didn't have much adoption, rather cause more
problems than solved any:
 > How getting all the sandbox output into html?
 > joseph-vidal-rosset opened on Aug 2, 2022
 > https://github.com/tau-prolog/tau-prolog/issues/326
I do not blame the Philosopher trying to be a
Prolog programmer. It had not much utility since
write/1 now accepted and inserted HTML.
Bye
Mild Shock schrieb:
Hi,
 The development of Novacore takes interesting turns.
Originally more accidentially, because I observed it
can serve a few interesting use cases, like atomic
 logging with some unspoken or spoken gurantees,
I introduced put_atom/[1,2] in Novacore streams:
  > put_atom(S, A):
 > The built-in succeeds. As a side effect, it adds
 > the atom to the stream S.
 Now because I am revising my streamable DOMs, the
"HTML writer" part, I even went so far as to
bootstrap put_code/[1,2] from it:
  > put_code(Stream, Code) :-
 >    char_code(Atom, Code),
 >    put_atom(Stream, Atom).
 One can eliminate each put_code/[1,2] call such
as put_code(S, 0'\n) by a put_atom/[1,2] call
such as put_atom(S, '\n'). The performance is the
 same, in my case can be slighly better since under
the hood put_code and put_atom called the same
stream meachnism.
 But the main reason I eliminate put_code was
to have a single point. Because the Prolog
write_term/1 is 100% written in Prolog, in the
 end it only only uses put_atom.
 Bye

Date Sujet#  Auteur
2 Apr 25 * Streamable DOM and obsolete put_code/[1,2]7Mild Shock
2 Apr 25 +* Re: Streamable DOM and obsolete put_code/[1,2]5Mild Shock
2 Apr 25 i`* Re: Streamable DOM and obsolete put_code/[1,2]4Mild Shock
5 Apr 25 i `* Space Junk might fall on your head [Scryer Prolog WASM] (Was: Streamable DOM and obsolete put_code/[1,2])3Mild Shock
5 Apr 25 i  +- Editor’s Draf, 10 January 2025 - Trusted Types (Was: Space Junk might fall on your head [Scryer Prolog WASM])1Mild Shock
25 May12:48 i  `- *** 2025 Prolog Awards *** (Was: Space Junk might fall on your head [Scryer Prolog WASM])1Mild Shock
7 Apr 25 `- Code Generation with write/[1,2] [Some Testcases] (Was: Streamable DOM and obsolete put_code/[1,2])1Mild Shock

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal