I have no useful advice in writing portable--- Synchronet 3.21a-Linux NewsLink 1.2
Prolog code. There is also the concept of dialects
and dialect modules, implemented by SWI-Prolog,
ECLiPSe Prolog, etc.. You can declare a module
written in some dialect:
:- module(+Module, +PublicList, +Dialect) https://www.swi-prolog.org/pldoc/doc_for?object=module/3
I think Logtalk cannot do this. Logtalk would require
that you convert your code to Logtalk, where as
the dialect approach requires you do nothing.
Logtalk has the stance that a dialect sits in the
backend and not in the front end. Its not a
SuperProlog, it only has this idea:
prolog_dialect
Identifier of the backend Prolog compiler (an atom).
This flag can be used for conditional compilation of
Prolog compiler specific code. https://logtalk.org/manuals/userman/programming.html#compiler-flags
Dialect modules requires that you have a
SuperProlog, that can manage different dialects.
Currenty SuperPrologs are mostly ModulePrologs
that just swap in additional predicate definitions,
also allow overwriting their own predicate
definitions locally, in favor of some dialect
predicate definition. And so own etc etc, I don't
know how successful this approach, it might
then also require that set_prolog_flag/2 can work
module locally, that you can do set_prolog_flag(
double_quotes, chars) to have a Scryer, Trealla,
etc. dialect, and set_prolog_flag(double_codes,
string) to have some SWI dialect, or
set_prolog_flag(double_codes, codes) to have
some ISO defaults dialect. For example an ISO dialect
might have this definition in their commons module:
false :- fail.
Since the Corrigendum 2 came rather later, so
some Prolog might have missed it, or balantly ignore
it. The Corrigendum 2 came 2012, but the ISO
standard was from 1995. Thats a gap
of almost 20 years. Quite amazing nonsense.
Hi,
We are happy to announce:
Go Fund Me for ISO Core Standard of Prolog ===========================================
"The power of Prolog—its elegant logic and unique
approach to problem-solving—should be accessible
to every curious mind, regardless of their
financial situation. Yet for many talented
students worldwide, the high cost of the
official ISO standard (approximately $220 USD)
creates a prohibitive barrier to a deep and
formal understanding of the language.
This Go Fund Me seeks to shatter that barrier.
Your contribution will directly sponsor access
to the ISO Prolog standard for students who
cannot afford it, ensuring that the next
generation of programmers, AI researchers,
and logic enthusiasts can learn from the
definitive source.
By investing in their education, you're
not just donating a document; you're fueling
innovation, diversifying the field, and
empowering the future pioneers of logic
programming. Let's ensure that a price tag
never stands in the way of a great idea."
For more information contact us at:
https://r.mtdv.me/giveaways/getisoprolog
Bye
P.S.: This Go Fund Me is not affiliated with
PEG 2.0 "The Prolog Education Group".
Mild Shock schrieb:
Dialect modules requires that you have a
SuperProlog, that can manage different dialects.
Currenty SuperPrologs are mostly ModulePrologs
that just swap in additional predicate definitions,
also allow overwriting their own predicate
definitions locally, in favor of some dialect
predicate definition. And so own etc etc, I don't
know how successful this approach, it might
then also require that set_prolog_flag/2 can work
module locally, that you can do set_prolog_flag(
double_quotes, chars) to have a Scryer, Trealla,
etc. dialect, and set_prolog_flag(double_codes,
string) to have some SWI dialect, or
set_prolog_flag(double_codes, codes) to have
some ISO defaults dialect. For example an ISO dialect
might have this definition in their commons module:
false :- fail.
Since the Corrigendum 2 came rather later, so
some Prolog might have missed it, or balantly ignore
it. The Corrigendum 2 came 2012, but the ISO
standard was from 1995. Thats a gap
of almost 20 years. Quite amazing nonsense.
Hi,
How it started:
@jp-diegidio started obstructing my posts on
SWI-Prolog discourse forum, where I proposed
solutions to the new line problem, detailed
the quirks of Python universal newline.
How its going:
EricGT morons and other ban me from the
SWI-Prolog discourse forum on pretense of
aggressive behaviour. Still SWI-Prolog is
stuck with a brittle stream subsystem:
Random colorized code looks nice but isn’t helpful
@jp-diegidio: with a sole CR at the end https://swi-prolog.discourse.group/t/random-colorized-code-looks-nice- but-isnt-helpful/9347
"a sole CR" is exactly the newline case
that SWI-Prolog cannot handle well automatically.
How do we call this, FAFO, Fuck Around and Find Out?
F around and Find Out
https://www.youtube.com/watch?v=AOPZuXh-f5M
With morons on board like @jp-diegidio and
EricGT things only slow down, and will not
be fixed in due time.
Have Fun!
Bye
Mild Shock schrieb:
Hi,
We are happy to announce:
Go Fund Me for ISO Core Standard of Prolog
===========================================
"The power of Prolog—its elegant logic and unique
approach to problem-solving—should be accessible
to every curious mind, regardless of their
financial situation. Yet for many talented
students worldwide, the high cost of the
official ISO standard (approximately $220 USD)
creates a prohibitive barrier to a deep and
formal understanding of the language.
This Go Fund Me seeks to shatter that barrier.
Your contribution will directly sponsor access
to the ISO Prolog standard for students who
cannot afford it, ensuring that the next
generation of programmers, AI researchers,
and logic enthusiasts can learn from the
definitive source.
By investing in their education, you're
not just donating a document; you're fueling
innovation, diversifying the field, and
empowering the future pioneers of logic
programming. Let's ensure that a price tag
never stands in the way of a great idea."
For more information contact us at:
https://r.mtdv.me/giveaways/getisoprolog
Bye
P.S.: This Go Fund Me is not affiliated with
PEG 2.0 "The Prolog Education Group".
Mild Shock schrieb:
Dialect modules requires that you have a
SuperProlog, that can manage different dialects.
Currenty SuperPrologs are mostly ModulePrologs
that just swap in additional predicate definitions,
also allow overwriting their own predicate
definitions locally, in favor of some dialect
predicate definition. And so own etc etc, I don't
know how successful this approach, it might
then also require that set_prolog_flag/2 can work
module locally, that you can do set_prolog_flag(
double_quotes, chars) to have a Scryer, Trealla,
etc. dialect, and set_prolog_flag(double_codes,
string) to have some SWI dialect, or
set_prolog_flag(double_codes, codes) to have
some ISO defaults dialect. For example an ISO dialect
might have this definition in their commons module:
false :- fail.
Since the Corrigendum 2 came rather later, so
some Prolog might have missed it, or balantly ignore
it. The Corrigendum 2 came 2012, but the ISO
standard was from 1995. Thats a gap
of almost 20 years. Quite amazing nonsense.
In general, on Windows or else, I suggestsetting up your code editor(s) to only use \n
Hi,
BTW: Most Prolog Systems didn't solve it yet.
Unlike the Java solution with a state machine.
There are also solutions, especially for the terminal,
that use a timer. Like if a CR arrives, and inside
a certain time internal no LF arrives, then its
recognized as sole CR inducing a <NEWLINE>.
Sounds good, doesn't work well. What if a the
content gets piped to the stdin and has this
"abnormal" sole CR, from an old Mac file maybe,
or from an editor that produces old Mac file format?
Bye
P.S.: The Java solution is quite straight
forward from Java class LineNumberReader since
JDK 1.1. I have used the realization trick
for a while in Jekejeke Prolog, with compressing
the CR, CR LF and LF unto LF. And in Dogelog
Player I even don't compress it anymore,
which of course challenges the Prolog tokenizer.
Mild Shock schrieb:
Hi,
How it started:
@jp-diegidio started obstructing my posts on
SWI-Prolog discourse forum, where I proposed
solutions to the new line problem, detailed
the quirks of Python universal newline.
How its going:
EricGT morons and other ban me from the
SWI-Prolog discourse forum on pretense of
aggressive behaviour. Still SWI-Prolog is
stuck with a brittle stream subsystem:
Random colorized code looks nice but isn’t helpful
@jp-diegidio: with a sole CR at the end
https://swi-prolog.discourse.group/t/random-colorized-code-looks-nice-
but-isnt-helpful/9347
"a sole CR" is exactly the newline case
that SWI-Prolog cannot handle well automatically.
How do we call this, FAFO, Fuck Around and Find Out?
F around and Find Out
https://www.youtube.com/watch?v=AOPZuXh-f5M
With morons on board like @jp-diegidio and
EricGT things only slow down, and will not
be fixed in due time.
Have Fun!
Bye
Mild Shock schrieb:
Hi,
We are happy to announce:
Go Fund Me for ISO Core Standard of Prolog
===========================================
"The power of Prolog—its elegant logic and unique
approach to problem-solving—should be accessible
to every curious mind, regardless of their
financial situation. Yet for many talented
students worldwide, the high cost of the
official ISO standard (approximately $220 USD)
creates a prohibitive barrier to a deep and
formal understanding of the language.
This Go Fund Me seeks to shatter that barrier.
Your contribution will directly sponsor access
to the ISO Prolog standard for students who
cannot afford it, ensuring that the next
generation of programmers, AI researchers,
and logic enthusiasts can learn from the
definitive source.
By investing in their education, you're
not just donating a document; you're fueling
innovation, diversifying the field, and
empowering the future pioneers of logic
programming. Let's ensure that a price tag
never stands in the way of a great idea."
For more information contact us at:
https://r.mtdv.me/giveaways/getisoprolog
Bye
P.S.: This Go Fund Me is not affiliated with
PEG 2.0 "The Prolog Education Group".
Mild Shock schrieb:
Dialect modules requires that you have a
SuperProlog, that can manage different dialects.
Currenty SuperPrologs are mostly ModulePrologs
that just swap in additional predicate definitions,
also allow overwriting their own predicate
definitions locally, in favor of some dialect
predicate definition. And so own etc etc, I don't
know how successful this approach, it might
then also require that set_prolog_flag/2 can work
module locally, that you can do set_prolog_flag(
double_quotes, chars) to have a Scryer, Trealla,
etc. dialect, and set_prolog_flag(double_codes,
string) to have some SWI dialect, or
set_prolog_flag(double_codes, codes) to have
some ISO defaults dialect. For example an ISO dialect
might have this definition in their commons module:
false :- fail.
Since the Corrigendum 2 came rather later, so
some Prolog might have missed it, or balantly ignore
it. The Corrigendum 2 came 2012, but the ISO
standard was from 1995. Thats a gap
of almost 20 years. Quite amazing nonsense.
| Sysop: | DaiTengu |
|---|---|
| Location: | Appleton, WI |
| Users: | 1,090 |
| Nodes: | 10 (1 / 9) |
| Uptime: | 59:52:44 |
| Calls: | 13,948 |
| Calls today: | 1 |
| Files: | 187,035 |
| D/L today: |
2,695 files (773M bytes) |
| Messages: | 2,461,298 |