The first interpreter was written in Algol-W (1972),with later interpreters written in FORTRAN (1973)! and
Especially since good old FORTRAN has
made a new appearance:
TIOBE Index for May 2024
I have received a lot of questions why Fortran entered the top 10
again after more than 20 years. The TIOBE index just publishes
what has been measured.
https://www.tiobe.com/tiobe-index/
Why Fortran is back in TIOBE’s top 10
First, Fortran is especially good at numerical analysis and
computational mathematics. Numerical and mathematical
computing is growing because interest in artificial intelligence
is growing, Jansen told TechRepublic in an email. https://www.techrepublic.com/article/tiobe-index-may-2024/
Especially since good old FORTRAN has
made a new appearance:
TIOBE Index for May 2024
I have received a lot of questions why Fortran entered the top 10
again after more than 20 years. The TIOBE index just publishes
what has been measured.
https://www.tiobe.com/tiobe-index/
Why Fortran is back in TIOBE’s top 10
First, Fortran is especially good at numerical analysis and
computational mathematics. Numerical and mathematical
computing is growing because interest in artificial intelligence
is growing, Jansen told TechRepublic in an email. https://www.techrepublic.com/article/tiobe-index-may-2024/
Prolog and the holy grail :+1:
Anybody tried to combine raylib with SWI-Prolog.
Like programming snake or something? Like here:
Raylib bindings to Scryer Prolog using library(ffi) https://github.com/aarroyoc/raylib-prolog
Strange: Somehow I have the feeling Scryer Prolog is
in a hybernation now, they sit on 270 issues and there
are no code changes anymore? Is it dead now?
Mild Shock schrieb:
Especially since good old FORTRAN has
made a new appearance:
TIOBE Index for May 2024
I have received a lot of questions why Fortran entered the top 10
again after more than 20 years. The TIOBE index just publishes
what has been measured.
https://www.tiobe.com/tiobe-index/
Why Fortran is back in TIOBE’s top 10
First, Fortran is especially good at numerical analysis and
computational mathematics. Numerical and mathematical
computing is growing because interest in artificial intelligence
is growing, Jansen told TechRepublic in an email.
https://www.techrepublic.com/article/tiobe-index-may-2024/
Maybe Scryer Prolog is a failure, because Rust
is a failure. Building Scryer Prolog on my machine,
after a git pull of a small change, did just
take this much time:
$ time cargo build --release
[...]
real 6m52.663s
user 7m39.043s
sys 0m3.241s
What did Rust do? And this tabling test case,
2000 shuttle, hangs:
/* Scryer Prolog 0.9.4-107 */
?- use_module(library(tabling)).
true.
?- [user].
:- table c/1.
c(X) :- c(Y), 0 =< Y, Y < 20000, X is -Y-1.
c(X) :- c(Y), -20000 < Y, Y =< 0, X is -Y+1.
c(0).
?- time(c(_)).
%%% hangs ? %%%
It is solved in a blink in SWI-Prolog:
/* SWI-Prolog 9.3.8 */
?- time(c(_)).
% 540,077 inferences, 0.047 CPU in 0.051 seconds (92% CPU, 11521643 Lips) true .
The test case is from here:
https://github.com/JanWielemaker/tabling_benchmarks/tree/master
If Rust is the culprit, I guess it isn't
due to this speculation:
Imagine Rust failed, why did it fail? https://www.reddit.com/r/rust/comments/c93upr/imagine_rust_failed_why_did_it_fail/
"climate change causes massively increased methane
offgassing in the Arctic, causing a runaway greenhouse
effect that eventually turns Earth into Venus,
destroying the biosphere before rust
can gain widespread adoption"
There are other signs that Rust is a failure, like here:
Why Rust is Making You Fail. --> 1.1k Claps https://medium.com/@ChadJohnsonOfficial/why-rust-is-stopping-your-success-use-c-and-c-instead-586dc7e2edbc
And here:
Should we call Rust a failed programming language? --> 10.5 views https://www.quora.com/Should-we-call-Rust-a-failed-programming-language
Mild Shock schrieb:
Maybe Scryer Prolog is a failure, because Rust
is a failure. Building Scryer Prolog on my machine,
after a git pull of a small change, did just
take this much time:
$ time cargo build --release
[...]
real 6m52.663s
user 7m39.043s
sys 0m3.241s
What did Rust do? And this tabling test case,
2000 shuttle, hangs:
/* Scryer Prolog 0.9.4-107 */
?- use_module(library(tabling)).
true.
?- [user].
:- table c/1.
c(X) :- c(Y), 0 =< Y, Y < 20000, X is -Y-1.
c(X) :- c(Y), -20000 < Y, Y =< 0, X is -Y+1.
c(0).
?- time(c(_)).
%%% hangs ? %%%
It is solved in a blink in SWI-Prolog:
/* SWI-Prolog 9.3.8 */
?- time(c(_)).
% 540,077 inferences, 0.047 CPU in 0.051 seconds (92% CPU, 11521643 Lips)
true .
The test case is from here:
https://github.com/JanWielemaker/tabling_benchmarks/tree/master
Prolog were invented today, I think there wouldhttps://www.quora.com/If-prolog-were-being-invented-today-with-no-concern-for-backward-compatibility-or-the-existing-standardization-how-would-it-differ-from-standard-prolog
be at least two significant differences:
First, the type-testing predicates like atom/1,
integer/1 and compound/1 would (and should) throw
instantiation errors if their arguments are not
sufficiently instantiated.
This is also what the original versions of Prolog
did. However, DEC 10 Prolog chose to replace instantiation
errors by silent failures, and this has been
perpetuated in the Edinburgh tradition for type tests
including the ISO standard.
Especially since good old FORTRAN has
made a new appearance:
TIOBE Index for May 2024
I have received a lot of questions why Fortran entered the top 10
again after more than 20 years. The TIOBE index just publishes
what has been measured.
https://www.tiobe.com/tiobe-index/
Why Fortran is back in TIOBE’s top 10
First, Fortran is especially good at numerical analysis and
computational mathematics. Numerical and mathematical
computing is growing because interest in artificial intelligence
is growing, Jansen told TechRepublic in an email. https://www.techrepublic.com/article/tiobe-index-may-2024/
For example one Guru claimed?
Prolog were invented today, I think there would
be at least two significant differences:
First, the type-testing predicates like atom/1,
integer/1 and compound/1 would (and should) throw
instantiation errors if their arguments are not
sufficiently instantiated.
This is also what the original versions of Prologhttps://www.quora.com/If-prolog-were-being-invented-today-with-no-concern-for-backward-compatibility-or-the-existing-standardization-how-would-it-differ-from-standard-prolog
did. However, DEC 10 Prolog chose to replace instantiation
errors by silent failures, and this has been
perpetuated in the Edinburgh tradition for type tests
including the ISO standard.
I cannot verify any of the above nonsense.
First of all the term "DEC-10 Prolog" is ambigious:
DEC 10 Prolog 1975 https://www.softwarepreservation.org/projects/prolog/prolog/edinburgh/doc/Warren-Epilog_400_400-1975.pdf
DEC 10 Prolog 1982 https://userweb.fct.unl.pt/~lmp/publications/online-papers/DECsystem-10%20PROLOG%20USER%27S%20MANUAL.pdf
The DEC 10 Prolog 1975 looks very close to Prolog 0
with its french predicate names. There is not a simgle
atom/1, integer/1 equivalent that would throw an
instantiation error. Actually Prolog 0 didn't even
have some sort of exceptions, right?
Mild Shock schrieb:
Especially since good old FORTRAN has
made a new appearance:
TIOBE Index for May 2024
I have received a lot of questions why Fortran entered the top 10
again after more than 20 years. The TIOBE index just publishes
what has been measured.
https://www.tiobe.com/tiobe-index/
Why Fortran is back in TIOBE’s top 10
First, Fortran is especially good at numerical analysis and
computational mathematics. Numerical and mathematical
computing is growing because interest in artificial intelligence
is growing, Jansen told TechRepublic in an email.
https://www.techrepublic.com/article/tiobe-index-may-2024/
That the DEC 10 Prolog 1975 is close to Prolog 0,
can be verified by reading the Prolog 0 manual:
MANUEL DE REFE RE NeE ET D'UTILISATION - PROLOG
ROUSSEL Ph. (1975) http://alain.colmerauer.free.fr/alcol/ArchivesPublications/ManuelProlog/Pr.pdf
So at that same year there was already an
English rip-off. If I read the french, I also
don't find some atom/1, integer/1 equivalent
that would throw an instantiation error. Problem
is again, what would have been an exception in Prolog 0?
Mild Shock schrieb:
For example one Guru claimed?
Prolog were invented today, I think there wouldhttps://www.quora.com/If-prolog-were-being-invented-today-with-no-concern-for-backward-compatibility-or-the-existing-standardization-how-would-it-differ-from-standard-prolog
be at least two significant differences:
;
First, the type-testing predicates like atom/1,
integer/1 and compound/1 would (and should) throw
instantiation errors if their arguments are not
sufficiently instantiated.
;
This is also what the original versions of Prolog
did. However, DEC 10 Prolog chose to replace instantiation
errors by silent failures, and this has been
perpetuated in the Edinburgh tradition for type tests
including the ISO standard.
I cannot verify any of the above nonsense.
First of all the term "DEC-10 Prolog" is ambigious:
DEC 10 Prolog 1975
https://www.softwarepreservation.org/projects/prolog/prolog/edinburgh/doc/Warren-Epilog_400_400-1975.pdf
DEC 10 Prolog 1982
https://userweb.fct.unl.pt/~lmp/publications/online-papers/DECsystem-10%20PROLOG%20USER%27S%20MANUAL.pdf
The DEC 10 Prolog 1975 looks very close to Prolog 0
with its french predicate names. There is not a simgle
atom/1, integer/1 equivalent that would throw an
instantiation error. Actually Prolog 0 didn't even
have some sort of exceptions, right?
Mild Shock schrieb:
Especially since good old FORTRAN has
made a new appearance:
TIOBE Index for May 2024
I have received a lot of questions why Fortran entered the top 10
again after more than 20 years. The TIOBE index just publishes
what has been measured.
https://www.tiobe.com/tiobe-index/
Why Fortran is back in TIOBE’s top 10
First, Fortran is especially good at numerical analysis and
computational mathematics. Numerical and mathematical
computing is growing because interest in artificial intelligence
is growing, Jansen told TechRepublic in an email.
https://www.techrepublic.com/article/tiobe-index-may-2024/
Especially since good old FORTRAN has
made a new appearance:
TIOBE Index for May 2024
I have received a lot of questions why Fortran entered the top 10
again after more than 20 years. The TIOBE index just publishes
what has been measured.
https://www.tiobe.com/tiobe-index/
Why Fortran is back in TIOBE’s top 10
First, Fortran is especially good at numerical analysis and
computational mathematics. Numerical and mathematical
computing is growing because interest in artificial intelligence
is growing, Jansen told TechRepublic in an email. https://www.techrepublic.com/article/tiobe-index-may-2024/
Woa! They are still fiddling with DCG:
Modified: Samstag, 6. Juli 2024, 07:53:05 https://www.complang.tuwien.ac.at/ulrich/iso-prolog/phrase
For Dogelog Player and its Novacore, I have
invented shallow DCG transform. Shallow expansion is a
variant of the usually deep expansion, in that
we don't define a multi-file predicate:
term_expansion(<from>, <to>).
Which uses a result from goal expansion, i.e.
there is both term and goal expansion in deep expansion,
SWI-Prolog has even function expansion a third type of
expansion, but in shallow expansion we have only:
term_conversion(<from>, <to>).
In particular for performance and didactical
reasons Novacore from Dogelog Player has nothing
higher-order. So phrase/2 is missing. Not needed.
But I don't have test cases yet for this shallow
expansion. Maybe I could adapt a few from formerly
Jekejeke Prolog, trim them down to the scope of
shallow expansion.
Mild Shock schrieb:
Especially since good old FORTRAN has
made a new appearance:
TIOBE Index for May 2024
I have received a lot of questions why Fortran entered the top 10
again after more than 20 years. The TIOBE index just publishes
what has been measured.
https://www.tiobe.com/tiobe-index/
Why Fortran is back in TIOBE’s top 10
First, Fortran is especially good at numerical analysis and
computational mathematics. Numerical and mathematical
computing is growing because interest in artificial intelligence
is growing, Jansen told TechRepublic in an email.
https://www.techrepublic.com/article/tiobe-index-may-2024/
P.S.: Only providing shallow expansion is no a loss.
You can use it to bootstrap deep expansion, I do
that in a stashed version of formerly Jekejeke Prolog,
as a proof of concept. So basically you can bootsrap
ISO-Core from Novacore in many cases. Also if DCG with
deep expansion would enter ISO-Core.
Novecore is just the smaller core than ISO-core.
Novacore is Prolog reduced to the max.
Mild Shock schrieb:
Woa! They are still fiddling with DCG:
Modified: Samstag, 6. Juli 2024, 07:53:05
https://www.complang.tuwien.ac.at/ulrich/iso-prolog/phrase
For Dogelog Player and its Novacore, I have
invented shallow DCG transform. Shallow expansion is a
variant of the usually deep expansion, in that
we don't define a multi-file predicate:
term_expansion(<from>, <to>).
Which uses a result from goal expansion, i.e.
there is both term and goal expansion in deep expansion,
SWI-Prolog has even function expansion a third type of
expansion, but in shallow expansion we have only:
term_conversion(<from>, <to>).
In particular for performance and didactical
reasons Novacore from Dogelog Player has nothing
higher-order. So phrase/2 is missing. Not needed.
But I don't have test cases yet for this shallow
expansion. Maybe I could adapt a few from formerly
Jekejeke Prolog, trim them down to the scope of
shallow expansion.
Mild Shock schrieb:
Especially since good old FORTRAN has
made a new appearance:
TIOBE Index for May 2024
I have received a lot of questions why Fortran entered the top 10
again after more than 20 years. The TIOBE index just publishes
what has been measured.
https://www.tiobe.com/tiobe-index/
Why Fortran is back in TIOBE’s top 10
First, Fortran is especially good at numerical analysis and
computational mathematics. Numerical and mathematical
computing is growing because interest in artificial intelligence
is growing, Jansen told TechRepublic in an email.
https://www.techrepublic.com/article/tiobe-index-may-2024/
Scryer Prolog is not the only dead Prolog around.--- Synchronet 3.20a-Linux NewsLink 1.114
Like 12 months ago or so, I mentioned in passing
to @joseph-vidal-rosset , because he used Tau Prolog
on his web site, that Tau Prolog will be dead as soon
as the authors get their academic merits. And I guess
this is indeed the case, their GitHub is inactive
for at least 12 months now. But then some people still
include it in their testing, maybe this is a sign of a little
desperation, of finding Prolog system interested
in ISO nonsense?
Modified: Samstag, 6. Juli 2024, 07:53:05 https://www.complang.tuwien.ac.at/ulrich/iso-prolog/phrase
The main problem with ISO Prolog is, that it is not
enough reduced to the max.
Another issue is that ISO Prolog doesn’t
have a reference implementation 100% written
in Prolog itself. Like for example the term
reading and writing. Now we have the situation
that no Prolog system can do these TPTP modal
logic operators and TPTP first order logic
quantifers at the same time:
/* Segerberg Models */
:- op( 600, fy, !). % universal quantifier: ![X]:
:- op( 600, fy, ?). % existential quantifier: ?[X]:
:- op( 600, fy, []). % necessity
:- op( 600, fy, <>). % possibility
But the above works in Dogelog Player. It doesn’t
work in SWI-Prolog, neither in Trealla Prolog,
neither in Scryer Prolog. Some Prolog systems have
problems with !, other Prolog systems have problems
with []. The parsing is admittedly a little tricky but
after some thinking it turns out relatively straight
forward doable.
Mild Shock schrieb:
Scryer Prolog is not the only dead Prolog around.
Like 12 months ago or so, I mentioned in passing
to @joseph-vidal-rosset , because he used Tau Prolog
on his web site, that Tau Prolog will be dead as soon
as the authors get their academic merits. And I guess
this is indeed the case, their GitHub is inactive
for at least 12 months now. But then some people still
include it in their testing, maybe this is a sign of a little
desperation, of finding Prolog system interested
in ISO nonsense?
Modified: Samstag, 6. Juli 2024, 07:53:05
https://www.complang.tuwien.ac.at/ulrich/iso-prolog/phrase
The main problem with ISO Prolog is, that it is not
enough reduced to the max.
Especially since good old FORTRAN has
made a new appearance:
TIOBE Index for May 2024
I have received a lot of questions why Fortran entered the top 10
again after more than 20 years. The TIOBE index just publishes
what has been measured.
https://www.tiobe.com/tiobe-index/
Why Fortran is back in TIOBE’s top 10
First, Fortran is especially good at numerical analysis and
computational mathematics. Numerical and mathematical
computing is growing because interest in artificial intelligence
is growing, Jansen told TechRepublic in an email. https://www.techrepublic.com/article/tiobe-index-may-2024/
Happy Birthday Alan Key, he must be 84 years old now.
I am big fan of his dynabook and this is also gold:
Alan Kay on Computer Science Degree https://www.youtube.com/watch?v=Lb-cKVxmVGk
Mild Shock schrieb:
Especially since good old FORTRAN has
made a new appearance:
TIOBE Index for May 2024
I have received a lot of questions why Fortran entered the top 10
again after more than 20 years. The TIOBE index just publishes
what has been measured.
https://www.tiobe.com/tiobe-index/
Why Fortran is back in TIOBE’s top 10
First, Fortran is especially good at numerical analysis and
computational mathematics. Numerical and mathematical
computing is growing because interest in artificial intelligence
is growing, Jansen told TechRepublic in an email.
https://www.techrepublic.com/article/tiobe-index-may-2024/
Mostlikely Scryer Prolog was so bold with its
statements about its own future, like here:
Scryer Prolog aims to become to
ISO Prolog what GHC is to Haskell
https://github.com/mthom/scryer-prolog
Because according to Alan Key in this interview
this is the easier thing to do, than to judge
the present or the past.
Joe Armstrong interviews Alan Kay
https://www.youtube.com/watch?v=fhOHn9TClXY
Mild Shock schrieb:
Happy Birthday Alan Key, he must be 84 years old now.
I am big fan of his dynabook and this is also gold:
Alan Kay on Computer Science Degree
https://www.youtube.com/watch?v=Lb-cKVxmVGk
Mild Shock schrieb:
Especially since good old FORTRAN has
made a new appearance:
TIOBE Index for May 2024
I have received a lot of questions why Fortran entered the top 10
again after more than 20 years. The TIOBE index just publishes
what has been measured.
https://www.tiobe.com/tiobe-index/
Why Fortran is back in TIOBE’s top 10
First, Fortran is especially good at numerical analysis and
computational mathematics. Numerical and mathematical
computing is growing because interest in artificial intelligence
is growing, Jansen told TechRepublic in an email.
https://www.techrepublic.com/article/tiobe-index-may-2024/
Especially since good old FORTRAN has
made a new appearance:
TIOBE Index for May 2024
I have received a lot of questions why Fortran entered the top 10
again after more than 20 years. The TIOBE index just publishes
what has been measured.
https://www.tiobe.com/tiobe-index/
Why Fortran is back in TIOBE’s top 10
First, Fortran is especially good at numerical analysis and
computational mathematics. Numerical and mathematical
computing is growing because interest in artificial intelligence
is growing, Jansen told TechRepublic in an email. https://www.techrepublic.com/article/tiobe-index-may-2024/
Hi,
Did Lifeware Kill Scryer Prolog CLP(Z) ?
Sounds interesting:
Pack modeling a SWI-Prolog pack for mathematical
modellng with constraints on subscripted variables,
developed by François Fages. François Fages. A
Constraint-based Mathematical Modeling Library in
Prolog with Answer Constraint Semantics. https://lifeware.inria.fr/wiki/Main/Software
In 17th International Symposium on Functional and
Logic Programming, FLOPS 2024, volume 14659 of LNCS.
Springer-Verlag, 2024. [ preprint ]
https://arxiv.org/abs/2402.17286
Does it perform?
Bye
Mild Shock schrieb:
Especially since good old FORTRAN has
made a new appearance:
TIOBE Index for May 2024
I have received a lot of questions why Fortran entered the top 10
again after more than 20 years. The TIOBE index just publishes
what has been measured.
https://www.tiobe.com/tiobe-index/
Why Fortran is back in TIOBE’s top 10
First, Fortran is especially good at numerical analysis and
computational mathematics. Numerical and mathematical
computing is growing because interest in artificial intelligence
is growing, Jansen told TechRepublic in an email.
https://www.techrepublic.com/article/tiobe-index-may-2024/
Hi,
What killed Scryer Prolog exactly? Except
maybe this mess of >270 issues?
https://github.com/mthom/scryer-prolog/issues
There are open issues back to 2019.
Its quite an amazing showcase.
Bye
Mild Shock schrieb:
Hi,
Did Lifeware Kill Scryer Prolog CLP(Z) ?
Sounds interesting:
Pack modeling a SWI-Prolog pack for mathematical
modellng with constraints on subscripted variables,
developed by François Fages. François Fages. A
Constraint-based Mathematical Modeling Library in
Prolog with Answer Constraint Semantics.
https://lifeware.inria.fr/wiki/Main/Software
In 17th International Symposium on Functional and
Logic Programming, FLOPS 2024, volume 14659 of LNCS.
Springer-Verlag, 2024. [ preprint ]
https://arxiv.org/abs/2402.17286
Does it perform?
Bye
Mild Shock schrieb:
Especially since good old FORTRAN has
made a new appearance:
TIOBE Index for May 2024
I have received a lot of questions why Fortran entered the top 10
again after more than 20 years. The TIOBE index just publishes
what has been measured.
https://www.tiobe.com/tiobe-index/
Why Fortran is back in TIOBE’s top 10
First, Fortran is especially good at numerical analysis and
computational mathematics. Numerical and mathematical
computing is growing because interest in artificial intelligence
is growing, Jansen told TechRepublic in an email.
https://www.techrepublic.com/article/tiobe-index-may-2024/
Hi,
Question is what happened to academic artificial
intelligence. The golden years are over where
longer projects over 10 years or so produced
tangible results. Industry with Facebook, OpenAI
has taken over. And there is a residual research
which is basically a camp for geriatric
unemployeds cauched in fancy role names:
Example:
DIVERSITY AND INCLUSION CHAIRS
WORKFLOW MANAGERS
https://www.ecai2024.eu/
Automatizing the watering can, is probably the
next step:
Improving the Buurtbudget:
Can Mathematics and Computer Science? https://www.youtube.com/watch?v=iSX90xJjSAw
Why not make it a blind lottery. You just get
money, but you don't have to return something
in exchange.
Just like Scryer Prolog, which spent 3 years
of programming, for nothing.
Bye
Mild Shock schrieb:
Hi,
What killed Scryer Prolog exactly? Except
maybe this mess of >270 issues?
https://github.com/mthom/scryer-prolog/issues
There are open issues back to 2019.
Its quite an amazing showcase.
Bye
Mild Shock schrieb:
Hi,
Did Lifeware Kill Scryer Prolog CLP(Z) ?
Sounds interesting:
Pack modeling a SWI-Prolog pack for mathematical
modellng with constraints on subscripted variables,
developed by François Fages. François Fages. A
Constraint-based Mathematical Modeling Library in
Prolog with Answer Constraint Semantics.
https://lifeware.inria.fr/wiki/Main/Software
In 17th International Symposium on Functional and
Logic Programming, FLOPS 2024, volume 14659 of LNCS.
Springer-Verlag, 2024. [ preprint ]
https://arxiv.org/abs/2402.17286
Does it perform?
Bye
Mild Shock schrieb:
Especially since good old FORTRAN has
made a new appearance:
TIOBE Index for May 2024
I have received a lot of questions why Fortran entered the top 10
again after more than 20 years. The TIOBE index just publishes
what has been measured.
https://www.tiobe.com/tiobe-index/
Why Fortran is back in TIOBE’s top 10
First, Fortran is especially good at numerical analysis and
computational mathematics. Numerical and mathematical
computing is growing because interest in artificial intelligence
is growing, Jansen told TechRepublic in an email.
https://www.techrepublic.com/article/tiobe-index-may-2024/
Hi,--- Synchronet 3.20a-Linux NewsLink 1.114
I do not exclude a turn-around possibility
for Scryer Prolog. But with errors like this,
that are at the core of some ideas behind
Scryer Prolog, like the glorious char based
double quoted lists, which have special data
structure support:
?- [X,Y] = [e,foo], Z is X.
X = e, Y = foo, Z = 2.718281828459045.
?- [X,Y] = [e,f], Z is X.
error(type_error(evaluable,e),(is)/2).
But I doubt that any such list/array ideas,
especially when they try to share subarrays
are even a good idea. Trealla Prolog tries
something similar. But initial Java had for
example a sharing substring() method. But they
abandoned that over the time. So their
strings are not sharing anymore, and code that
relied on sharing got broken. You can have
sharing through other interfaces, but Strings
are not anymore sharing. Any idea why?
Bye
Hi,
Java had a grace period where it still supported
sharing through a command line option, but later
it was ditched completely:
Restriction: This system property is supported only on Java™ 8. String sharing cannot be enabled on Java 11 and later.
Start of content that applies only to Java 8 (LTS) Setting this property
to true avoids sharing a String object when substring() is used to
subset a String beginning from offset zero. Avoiding sharing is
compatible with the Oracle HotSpot VM. https://www.ibm.com/docs/en/sdk-java-technology/8?topic=options-djavalangstringsubstringnocopy
Unfortunately I don't find a document detailing
the decision. Like some JEP or so. Still searching.
With substring sharing it was very easy to provoke
an out of memory error. You could allocate large
strings. Share a UTF-16 character, i.e. substring of
length 1, in the middle of the string, and the string
was not garbage collected anymore. I do not exclude
that under the hood sharing could be used. But it
possibly needs to some compilation technique including
some dedicated analysis that determines that the parent
string stays reachable, so that the child sharing doesn't
make the parent string solely reachable, since
since the parent string is already reachable.
Bye
Mild Shock schrieb:
Hi,
I do not exclude a turn-around possibility
for Scryer Prolog. But with errors like this,
that are at the core of some ideas behind
Scryer Prolog, like the glorious char based
double quoted lists, which have special data
structure support:
?- [X,Y] = [e,foo], Z is X.
X = e, Y = foo, Z = 2.718281828459045.
?- [X,Y] = [e,f], Z is X.
error(type_error(evaluable,e),(is)/2).
But I doubt that any such list/array ideas,
especially when they try to share subarrays
are even a good idea. Trealla Prolog tries
something similar. But initial Java had for
example a sharing substring() method. But they
abandoned that over the time. So their
strings are not sharing anymore, and code that
relied on sharing got broken. You can have
sharing through other interfaces, but Strings
are not anymore sharing. Any idea why?
Bye
Hi,--- Synchronet 3.20a-Linux NewsLink 1.114
But such a criteria is not satisfied in parsing,
especially if you use the more advanced last call
optimization and not only tail recursion optimization.
As soon as parsing is deterministic, you can
leave behind the string part that you already parsed.
So you would need a special sharing that is kind of
a weak sharing that can free some head part. There is
no such problem of freeing the head part, if you use
proper cons cell based lists for parsing.
But naive substring sharing doesn't work for Prolog.
It will unnecessarely lock the whole string always.
Whereas a cell based parser can drop
already parsed parts.
Bye
Hi,
Whats then more disturbing, if you try picking subparts
of the parsing string, and integrate them in the
parse tree, i.e. your AST.
You then definitively lock the whole parsing source. But
the parsing source might be a couple of predicate
definitions, with constant arguments as found in Datalog:
foo(bar, baz) :- ....
...
The old school non sharing approach would be to have
an atom table and you have then deduplicated foo, bar,
baz, etc... in one place and the source doesn't get
locked. There is a also a new school, which I started
with Jekejeke Prolog and continued with Dogelog Player.
You don't share and you don't atom table.
If you don't use atom table, you might have copies
in your code of foo, bar, baz etc.. But this is only
a small factor, the used memory is still lower than
locking the whole source. And some Java versions have
string deduplication garbage collection under the hood now.
I am not sure what Python and JavaScript do.
But so far I think the small factor of extra memory
usage is not an issue.
Bye
Mild Shock schrieb:
Hi,
But such a criteria is not satisfied in parsing,
especially if you use the more advanced last call
optimization and not only tail recursion optimization.
As soon as parsing is deterministic, you can
leave behind the string part that you already parsed.
So you would need a special sharing that is kind of
a weak sharing that can free some head part. There is
no such problem of freeing the head part, if you use
proper cons cell based lists for parsing.
But naive substring sharing doesn't work for Prolog.
It will unnecessarely lock the whole string always.
Whereas a cell based parser can drop
already parsed parts.
Bye
Hi,
The factor is smaller if the source has anyway a
diversity of strings. If the source has a lot of
redundant strings the factor is higher. You
can explore Prolog compilation techniques that further
deduplicate, but these compilation technqiques are
best appplied by a more broader view, i.e. sharing
numbers and compounds as well. Only looking at strings
is possibly not worth the effort. But if you
cross compile you don't have to do anything anyway.
If I cross compile Dogelog Player to Java, the
Jave byte code class format has a constant pools, so
the Java compiler does the deduplication of strings for you.
A cross compiled Datalog with a lot of foo, bar, baz, ..-
foo(bar, baz) :- ....
...
Will have a compilation output that uses a constant pool,
and the strings in itself foo, bar, baz, etc.. will
be shared. So the factor is again very low for
cross compiled artefacts. Not sure what Python and JavaScript
do, they might do a constant pooling as well. The constant
pooling is very known for Java byte code class format the
output of Java compilers, it was already there in the beginning.
Bye
Mild Shock schrieb:
Hi,
Whats then more disturbing, if you try picking subparts
of the parsing string, and integrate them in the
parse tree, i.e. your AST.
You then definitively lock the whole parsing source. But
the parsing source might be a couple of predicate
definitions, with constant arguments as found in Datalog:
foo(bar, baz) :- ....
...
The old school non sharing approach would be to have
an atom table and you have then deduplicated foo, bar,
baz, etc... in one place and the source doesn't get
locked. There is a also a new school, which I started
with Jekejeke Prolog and continued with Dogelog Player.
You don't share and you don't atom table.
If you don't use atom table, you might have copies
in your code of foo, bar, baz etc.. But this is only
a small factor, the used memory is still lower than
locking the whole source. And some Java versions have
string deduplication garbage collection under the hood now.
I am not sure what Python and JavaScript do.
But so far I think the small factor of extra memory
usage is not an issue.
Bye
Mild Shock schrieb:
Hi,
But such a criteria is not satisfied in parsing,
especially if you use the more advanced last call
optimization and not only tail recursion optimization.
As soon as parsing is deterministic, you can
leave behind the string part that you already parsed.
So you would need a special sharing that is kind of
a weak sharing that can free some head part. There is
no such problem of freeing the head part, if you use
proper cons cell based lists for parsing.
But naive substring sharing doesn't work for Prolog.
It will unnecessarely lock the whole string always.
Whereas a cell based parser can drop
already parsed parts.
Bye
Maybe Scryer Prolog is a failure, because Rust
is a failure. Building Scryer Prolog on my machine,
after a git pull of a small change, did just
take this much time:
$ time cargo build --release
[...]
real 6m52.663s
user 7m39.043s
sys 0m3.241s
What did Rust do? And this tabling test case,
2000 shuttle, hangs:
/* Scryer Prolog 0.9.4-107 */
?- use_module(library(tabling)).
true.
?- [user].
:- table c/1.
c(X) :- c(Y), 0 =< Y, Y < 20000, X is -Y-1.
c(X) :- c(Y), -20000 < Y, Y =< 0, X is -Y+1.
c(0).
?- time(c(_)).
%%% hangs ? %%%
It is solved in a blink in SWI-Prolog:
/* SWI-Prolog 9.3.8 */
?- time(c(_)).
% 540,077 inferences, 0.047 CPU in 0.051 seconds (92% CPU, 11521643 Lips) true .
The test case is from here:
https://github.com/JanWielemaker/tabling_benchmarks/tree/master
Hey folks, please take note:
"Rust is the last programming language made for humans
that we'll need. Future languages will be optimized for
machines, where AI handles all the coding" https://twitter.com/nath_simard/status/1816147809608851830
Sounds like utter bullshit to me. Must be a
stupid AI, that cannot do the the safety precautions
of Rust. Why would I need rust, if I have an AI?
For this exampe, the AI might generate:
#include <stdio.h>
int main(int argc, char* argv[]) {
printf("Hello %s\n", argv[0]);
}
Which might indeed generate a segfault. In
case there are zero arguments, argv[0] might
hafve the value NULL. https://www.tu-chemnitz.de/urz/archiv/kursunterlagen/C/kap3/argmain.htm
So why blame the target language, and not the AI?
This is a red herring argument in favor of Rust.
Hi,--- Synchronet 3.20a-Linux NewsLink 1.114
The cest pool of bit rot is finally gone:
(Bit rot, because they did everything in a
facist way ignoring your copyright to prevent
you from deleting you own out dated stuff)
CoincidenceIDontThinkSo
https://9gag.com/gag/abAG4oE
The Fall of Stack Overflow https://observablehq.com/@ayhanfuat/the-fall-of-stack-overflow
The downfall is related to the appearance of
ChatGPT. I feel pitty for Ulrich Neumerkel false
and others who spammed stackoverflow for years
with their infinite dif/2 nonsense.
Bye
But ChatGPT has still to learn a lot, it
cannot make the link from Prolog to
lambda-Prolog to natural deduction.
Somehow after some questioning ChatGPT
presented me this Prolog code:
likes(john, pizza).
likes(mary, sushi).
likes(sam, burgers).
friend(john, mary).
friend(mary, sam).
likes_what_friends_like(Person, Thing) :-
friend(Person, Friend),
likes(Friend, Thing).
I then asked for a Prolog query that
solves the following question:
"who should john befriend so that we
can assume he likes burgers"
Interestingly ChatGPT strated using
Prolog and natural deduction on the meta
level, mentioning modus ponense, and answering
Proof via Natural Deduction:
Assumption: Assume friend(john, X) (where X = sam).
Apply the Rule: Since friend(john, sam) is true, and likes(sam, burgers)
is also true, we apply the rule likes_what_friends_like(john, Thing) and infer likes_what_friends_like(john, burgers).
Conclusion: Therefore, likes_what_friends_like(john, burgers) holds,
which implies that John would like burgers if he befriends Sam.
Mild Shock schrieb:
Hi,
The cest pool of bit rot is finally gone:
(Bit rot, because they did everything in a
facist way ignoring your copyright to prevent
you from deleting you own out dated stuff)
CoincidenceIDontThinkSo
https://9gag.com/gag/abAG4oE
The Fall of Stack Overflow
https://observablehq.com/@ayhanfuat/the-fall-of-stack-overflow
The downfall is related to the appearance of
ChatGPT. I feel pitty for Ulrich Neumerkel false
and others who spammed stackoverflow for years
with their infinite dif/2 nonsense.
Bye
My objection was then that Prolog didn't do--- Synchronet 3.20a-Linux NewsLink 1.114
the proof only ChatGPT did it.
"But Prolog is supposed to search for proofs.
What is the proof?"
It then continued with attempts like:
what_if_befriend(Person, Friend, Goal) :-
assert(friend(Person, Friend)), % Assert the new friendship
Goal, % Check the goal with the new friendship
retract(friend(Person, Friend)). % Retract after checking the goal
Only the above will not work, since
assert/1 cannot return a variable binding.
So what is the magic behind lambda-Prolog
and hypothetical reasoning? lambda-Prolog
not being in the scope of ChatGPT?
Hi,--- Synchronet 3.20a-Linux NewsLink 1.114
The cest pool of bit rot is finally gone:
(Bit rot, because they did everything in a
facist way ignoring your copyright to prevent
you from deleting you own out dated stuff)
CoincidenceIDontThinkSo
https://9gag.com/gag/abAG4oE
The Fall of Stack Overflow https://observablehq.com/@ayhanfuat/the-fall-of-stack-overflow
The downfall is related to the appearance of
ChatGPT. I feel pitty for Ulrich Neumerkel false
and others who spammed stackoverflow for years
with their infinite dif/2 nonsense.
Bye
Hi,
Yes exactly, they shoot themselves into the foot.
They adopted the academic closed world attitute,
as can be seen here, not noticing that the John
Doe programmers are not necessarily a theoretical
computer science titanic A-class member:
As an example, consider this question – invented, but not far-fetched: "Random keeps giving me the same numbers. Is it broken?"
This is a low-quality question, in my view. https://codeblog.jonskeet.uk/2018/03/17/stack-overflow-culture/
Now try the same with ChatGPT:
Q: Random keeps giving me the same numbers. Is it broken?
A: It sounds like your Random object might not be
re-seeded, which could cause it to generate the same
sequence of numbers every time you run your program.
By default, Random is seeded with the current time in
milliseconds, but if you create it multiple times in
quick succession, it might receive the same seed and
generate the same numbers.
Bye
Mild Shock schrieb:
Hi,
The cest pool of bit rot is finally gone:
(Bit rot, because they did everything in a
facist way ignoring your copyright to prevent
you from deleting you own out dated stuff)
CoincidenceIDontThinkSo
https://9gag.com/gag/abAG4oE
The Fall of Stack Overflow
https://observablehq.com/@ayhanfuat/the-fall-of-stack-overflow
The downfall is related to the appearance of
ChatGPT. I feel pitty for Ulrich Neumerkel false
and others who spammed stackoverflow for years
with their infinite dif/2 nonsense.
Bye
Hi,
I personally like that ChatGPT tolerates all my
sloppiness, since I am always in a hurry, don't
have time for some bullshit.
And I pay the bill by myself, if ChatGPT doesn't
understand me. I don't need some moderator to
force some ideal into my throat, anyway
most of the time ChatGPT understands me
nevertheless. Has probably to do how
the artificial intelligenc of ChatGPT works:
Attention Is All You Need
https://arxiv.org/abs/1706.03762
But stack overflow gets also drained by other
developments like for example:
- Thousends of tutorial web sites:
There is a real cottage industry, of
commercial web sites, that explain you
web programming etc.. They are commercial
since they show banner ads.
- Thousends of tutorial videos:
There is a similar cottage industry
for videos. Also commercial because
the show ads. Even google search
doesn't show stack overflow as first
result anymore.
- Declining Business Model Job Search
With "low code", the number of programmer
jobs as we know it will go down. A website
specialized on job advertising will automatically
loose revenue:
https://stackoverflow.co/advertising/
Bye
Mild Shock schrieb:
Hi,
Yes exactly, they shoot themselves into the foot.
They adopted the academic closed world attitute,
as can be seen here, not noticing that the John
Doe programmers are not necessarily a theoretical
computer science titanic A-class member:
As an example, consider this question – invented, but not far-fetched:
"Random keeps giving me the same numbers. Is it broken?"
This is a low-quality question, in my view.
https://codeblog.jonskeet.uk/2018/03/17/stack-overflow-culture/
Now try the same with ChatGPT:
Q: Random keeps giving me the same numbers. Is it broken?
A: It sounds like your Random object might not be
re-seeded, which could cause it to generate the same
sequence of numbers every time you run your program.
By default, Random is seeded with the current time in
milliseconds, but if you create it multiple times in
quick succession, it might receive the same seed and
generate the same numbers.
Bye
Mild Shock schrieb:
Hi,
The cest pool of bit rot is finally gone:
(Bit rot, because they did everything in a
facist way ignoring your copyright to prevent
you from deleting you own out dated stuff)
CoincidenceIDontThinkSo
https://9gag.com/gag/abAG4oE
The Fall of Stack Overflow
https://observablehq.com/@ayhanfuat/the-fall-of-stack-overflow
The downfall is related to the appearance of
ChatGPT. I feel pitty for Ulrich Neumerkel false
and others who spammed stackoverflow for years
with their infinite dif/2 nonsense.
Bye
Hi,
Also Stack Overflow is very bad in reading
the signs of the times:
Generative AI is now integral to the
technologist workflow, yet many developers
are still skeptical. According to our 2024
#Developer Survey, 79% of respondents cited
misinformation as their primary ethical
concern regarding AI.
https://x.com/stackoverflow/
The survey is not so bad:
https://survey.stackoverflow.co/2024/ai
So they have it right in front of their
nose that they should shut down
their grammar nazi nonsense and find
new ways, alternative ways to harness
and curate knowlegde?
Bye
Mild Shock schrieb:
Hi,
I personally like that ChatGPT tolerates all my
sloppiness, since I am always in a hurry, don't
have time for some bullshit.
And I pay the bill by myself, if ChatGPT doesn't
understand me. I don't need some moderator to
force some ideal into my throat, anyway
most of the time ChatGPT understands me
nevertheless. Has probably to do how
the artificial intelligenc of ChatGPT works:
Attention Is All You Need
https://arxiv.org/abs/1706.03762
But stack overflow gets also drained by other
developments like for example:
- Thousends of tutorial web sites:
There is a real cottage industry, of
commercial web sites, that explain you
web programming etc.. They are commercial
since they show banner ads.
- Thousends of tutorial videos:
There is a similar cottage industry
for videos. Also commercial because
the show ads. Even google search
doesn't show stack overflow as first
result anymore.
- Declining Business Model Job Search
With "low code", the number of programmer
jobs as we know it will go down. A website
specialized on job advertising will automatically
loose revenue:
https://stackoverflow.co/advertising/
Bye
Mild Shock schrieb:
Hi,
Yes exactly, they shoot themselves into the foot.
They adopted the academic closed world attitute,
as can be seen here, not noticing that the John
Doe programmers are not necessarily a theoretical
computer science titanic A-class member:
As an example, consider this question – invented, but not far-fetched: >>> "Random keeps giving me the same numbers. Is it broken?"
This is a low-quality question, in my view.
https://codeblog.jonskeet.uk/2018/03/17/stack-overflow-culture/
Now try the same with ChatGPT:
Q: Random keeps giving me the same numbers. Is it broken?
A: It sounds like your Random object might not be
re-seeded, which could cause it to generate the same
sequence of numbers every time you run your program.
By default, Random is seeded with the current time in
milliseconds, but if you create it multiple times in
quick succession, it might receive the same seed and
generate the same numbers.
Bye
Mild Shock schrieb:
Hi,
The cest pool of bit rot is finally gone:
(Bit rot, because they did everything in a
facist way ignoring your copyright to prevent
you from deleting you own out dated stuff)
CoincidenceIDontThinkSo
https://9gag.com/gag/abAG4oE
The Fall of Stack Overflow
https://observablehq.com/@ayhanfuat/the-fall-of-stack-overflow
The downfall is related to the appearance of
ChatGPT. I feel pitty for Ulrich Neumerkel false
and others who spammed stackoverflow for years
with their infinite dif/2 nonsense.
Bye
Hi,
what is wrong with rust and linux???? https://www.youtube.com/watch?v=T2OKdv4SPdQ
Pure souls are getting purrified to become even purer.
Bye
P.S.: Zig moves to fast for the kernel?
https://ziglang.org/learn/overview/
How about a new Prolog system written in Zip?
Mild Shock schrieb:
Maybe Scryer Prolog is a failure, because Rust
is a failure. Building Scryer Prolog on my machine,
after a git pull of a small change, did just
take this much time:
$ time cargo build --release
[...]
real 6m52.663s
user 7m39.043s
sys 0m3.241s
What did Rust do? And this tabling test case,
2000 shuttle, hangs:
/* Scryer Prolog 0.9.4-107 */
?- use_module(library(tabling)).
true.
?- [user].
:- table c/1.
c(X) :- c(Y), 0 =< Y, Y < 20000, X is -Y-1.
c(X) :- c(Y), -20000 < Y, Y =< 0, X is -Y+1.
c(0).
?- time(c(_)).
%%% hangs ? %%%
It is solved in a blink in SWI-Prolog:
/* SWI-Prolog 9.3.8 */
?- time(c(_)).
% 540,077 inferences, 0.047 CPU in 0.051 seconds (92% CPU, 11521643 Lips)
true .
The test case is from here:
https://github.com/JanWielemaker/tabling_benchmarks/tree/master
Sysop: | DaiTengu |
---|---|
Location: | Appleton, WI |
Users: | 997 |
Nodes: | 10 (0 / 10) |
Uptime: | 227:08:22 |
Calls: | 13,046 |
Calls today: | 1 |
Files: | 186,574 |
Messages: | 3,292,818 |