Discussion:
ffl improvements
(too old to reply)
a***@spenarnc.xs4all.nl
2024-12-11 16:06:34 UTC
Permalink
This is in the context to adding a configuration with ciforth
to the https://github.com/uho/ffl
Subject: ffl improvements
X-Newsreader: trn 4.0-test77 (Sep 1, 2010)

The first thing I wanted to do is replace
include ffl/config.fs
by
INCLUDE ffl/config.fs

ciforth is able to switch to case-insensitive in config.fs but
before this change config.fs could not be included.
This is some work but a simple modification.

Before I submit this I wanted to test by other Forths.
At least one Forth that has no search path.
This goes wrong. In two cases the forths cannot
even include the config.fs file that is intended for it.

Swiftforth :
SwiftForth i386-Linux 3.7.2 01-May-2018
INCLUDE config.fs
FATAN2 isn't unique.
/home/albert/PROJECT/ffl/ffl/engines/SwiftForth/config.fs
91: f2dup f0< f0< and if fswap fabs fswap [fatan2] \
fnegate exit then [fatan2] ; >>> [fatan2] ?

ffl has been tested apparently with 3.3.2 , no longer valid.

vfxlin: (including config.fs)
%vfxpath%/Lib/Ndp387.fth, 1998-2009
^ ERR: Failed to open requested file.

The require version of vfxlin was 4.40 , I had 4.30.

You can test gforth easily because there is a separate debian package
to attach the ffl library. This however don't test my modifications.

If I do the alternative, attach a symbolic linked library, this pre
installed stuff interferes, it insists on using the installed library.
Then it goes wrong:
/usr/share/gforth/site-forth/ffl/str.fs:309: Undefined word
3drop<<<
It is puzzling that 3drop is not even present in the official str.fs.
Apparently the debian archives are not in sync.

Mind you, this is only a preparation before I can consider adding
ciforth to the engines.

My modifications are rather safe :
include --> INCLUDE

Addition to the README, and typo's removed.

So I push them to https://github.com/uho/ffl
and hope it is accepted.
It isn't. I thought I would push it, the owner of the archive looks
at it (Ullrich Hoffman) and rejects it or (hopefully) accepts it.

This git stuff apparently doesn't work this way. You must do a
pull request in git. Graphics interface, user friendly, just fill in
the form ... No way.

Has anybody succeeded in doing a contribution to git, other than
to your own archive?

Groetjes Albert
--
Temu exploits Christians: (Disclaimer, only 10 apostles)
Last Supper Acrylic Suncatcher - 15Cm Round Stained Glass- Style Wall
Art For Home, Office And Garden Decor - Perfect For Windows, Bars,
And Gifts For Friends Family And Colleagues.
Anton Ertl
2024-12-12 08:45:31 UTC
Permalink
Post by a***@spenarnc.xs4all.nl
You can test gforth easily because there is a separate debian package
to attach the ffl library.
Which one?
Post by a***@spenarnc.xs4all.nl
/usr/share/gforth/site-forth/ffl/str.fs:309: Undefined word
The site-forth directory is to allow site administrators to put in
Forth files. The Debian packager could put in files in the Debian
package nevertheless, but certainly in the gforth-0.7.3 package that
came with Debian 11 and Debian 12, the only file in site-forth is an
empty siteinit.fs.

My guess is that you installed the ffl at site-forth at some point,
which is the intended use for site-forth, but probably does not work
so well with the way that Debian packages are installed.
Post by a***@spenarnc.xs4all.nl
So I push them to https://github.com/uho/ffl
and hope it is accepted.
Ulrich Hoffmann is not the maintainer of the ffl AFAIK, so I would not
expect him to accept the pull request. The github repo of the
original author is <https://github.com/irdvo/ffl>, but that says:

| This repository has been archived by the owner on Sep 26, 2021. It is
| now read-only.

which explains why you cannot submit pull requests to that. Also of
interest: <https://github.com/irdvo/ffl/issues/10>, where irdvo
writes:

|I lost my interest in forth.
|If you wish, you can fork the project and continue the development.

I don't know if anyone has picked up the baton. If not, maybe you
want to.
Post by a***@spenarnc.xs4all.nl
This git stuff apparently doesn't work this way. You must do a
pull request in git. Graphics interface, user friendly, just fill in
the form ... No way.
github is not git. In particular, git has no pull requests, no
issues, no web interface, nor lots of other github features, and is
not owned by Microsoft.

With git (and github), you can push to a repo if you have write access
to it. But repo maintainers don't give out write access easily, so
the usual way with github and similar services is to fork the repo on
github, push the changes to the forked repo, and then send a pull
request (aka merge request in gitlab) to the original repo; the
maintainer can then accept that or reject it.
Post by a***@spenarnc.xs4all.nl
Has anybody succeeded in doing a contribution to git, other than
to your own archive?
I have submitted
<https://github.com/blackducksoftware/ohcount/pull/44>, and it was
eventually accepted.

- anton
--
M. Anton Ertl http://www.complang.tuwien.ac.at/anton/home.html
comp.lang.forth FAQs: http://www.complang.tuwien.ac.at/forth/faq/toc.html
New standard: https://forth-standard.org/
EuroForth 2024: https://euro.theforth.net
a***@spenarnc.xs4all.nl
2024-12-13 12:13:02 UTC
Permalink
Post by Anton Ertl
Post by a***@spenarnc.xs4all.nl
You can test gforth easily because there is a separate debian package
to attach the ffl library.
Which one?
Who cares. There is a separate package to make it easier to run
ffl in gforth. If I test ffl in gforth that passes.
It is the only test of ffl to pass, so kudos.
It is no use for me, because it doesn't exercise my changes.
Post by Anton Ertl
Post by a***@spenarnc.xs4all.nl
/usr/share/gforth/site-forth/ffl/str.fs:309: Undefined word
The site-forth directory is to allow site administrators to put in
Forth files. The Debian packager could put in files in the Debian
package nevertheless, but certainly in the gforth-0.7.3 package that
came with Debian 11 and Debian 12, the only file in site-forth is an
empty siteinit.fs.
My guess is that you installed the ffl at site-forth at some point,
which is the intended use for site-forth, but probably does not work
so well with the way that Debian packages are installed.
It does work!
I can retest ffl gforth after uninstalling that extra debian package,
site-forth/ffl. I am pretty sure that I do not consciously install that.

But remember. I have no interest in running the ffl, less so with gforth.
I want to test the ffl stuff after a trivial change (include --> INCLUDE)
Out of an abundance of prejudice, I tried a test with at least
one other Forth, and it fails.

I think my effort is better spent contributing to Forth.works.project
where a lot of library stuff is going.
Post by Anton Ertl
Post by a***@spenarnc.xs4all.nl
So I push them to https://github.com/uho/ffl
and hope it is accepted.
Ulrich Hoffmann is not the maintainer of the ffl AFAIK, so I would not
expect him to accept the pull request.
My bad. He is the owner, he cloned it, but he has no interest in it?
Post by Anton Ertl
The github repo of the
| This repository has been archived by the owner on Sep 26, 2021. It is
| now read-only.
which explains why you cannot submit pull requests to that.
And I didn't even try that. I have read that message too.
Post by Anton Ertl
lso of
interest: <https://github.com/irdvo/ffl/issues/10>, where irdvo
|I lost my interest in forth.
|If you wish, you can fork the project and continue the development.
I don't know if anyone has picked up the baton. If not, maybe you
want to.
Certainly not! If ffl is an ongoing concern I am interested in
contributing a ciforth version.

The question remains. Why has Ullrich forked the archive if he
is not planning to do anything with it.
Post by Anton Ertl
Post by a***@spenarnc.xs4all.nl
This git stuff apparently doesn't work this way. You must do a
pull request in git. Graphics interface, user friendly, just fill in
the form ... No way.
github is not git. In particular, git has no pull requests, no
issues, no web interface, nor lots of other github features, and is
not owned by Microsoft.
With git (and github), you can push to a repo if you have write access
to it. But repo maintainers don't give out write access easily, so
the usual way with github and similar services is to fork the repo on
github, push the changes to the forked repo, and then send a pull
request (aka merge request in gitlab) to the original repo; the
maintainer can then accept that or reject it.
Okay, I pass, too much work. Instead I'm going to work with the Chinese
ecosystem of free software.
Post by Anton Ertl
Post by a***@spenarnc.xs4all.nl
Has anybody succeeded in doing a contribution to git, other than
to your own archive?
I have submitted
<https://github.com/blackducksoftware/ohcount/pull/44>, and it was
eventually accepted.
At least that has convinced me that pull request is not an urban myth.

My initial prejudice with ffl is confirmed.
Post by Anton Ertl
- anton
Groetjes Albert
--
Temu exploits Christians: (Disclaimer, only 10 apostles)
Last Supper Acrylic Suncatcher - 15Cm Round Stained Glass- Style Wall
Art For Home, Office And Garden Decor - Perfect For Windows, Bars,
And Gifts For Friends Family And Colleagues.
mhx
2024-12-13 14:48:54 UTC
Permalink
Post by a***@spenarnc.xs4all.nl
My initial prejudice with ffl is confirmed.
Your prejudice with its maintainability?

Bit-rot will demolish anybody's efforts (that is if people are
allowed to continue running arbitrary software on their devices
at all).

It probably shows my own prejudices, but does the FFL suite
complete its basic tests on ciforth after that single INCLUDE
fix? That is really impressive on both sides!

-marcel
a***@spenarnc.xs4all.nl
2024-12-13 18:10:15 UTC
Permalink
Post by mhx
Post by a***@spenarnc.xs4all.nl
My initial prejudice with ffl is confirmed.
Your prejudice with its maintainability?
No, general usability.
Quality issue:
- no general description, intention
- no description with each file
Post by mhx
Bit-rot will demolish anybody's efforts (that is if people are
allowed to continue running arbitrary software on their devices
at all).
It probably shows my own prejudices, but does the FFL suite
complete its basic tests on ciforth after that single INCLUDE
fix? That is really impressive on both sides!
This change was a test of contributing with git.
Also this change should absolutely be separate from a
engine/ciforth contribution.

A considerable effort went into my preliminary config.fs.
Say 10 manhours. Probably better spent elsewhere.
Please note that this reached only to first base, i.e.
after that effort the library could be loaded without crashes.
Then the second base would be the test can be loaded without crashes.
Then third base the tests can run.
Then homerun the tests scuceeds.

I learned something along the way.
There is one standard way to multiply a double with a single,
that is M*/. By drawing in a division this calls for a triple
precision result, 192 bits on normal systems.
It is used to calculated the seconds since epoch (1970), because
it is supposedly to run on 16 bit computers the last multiplication
by 60 goes with
60 1 m*/
where the multiplicand itself exceeds 16 bits.
There are 6 multiplications this way.

It starts with the standard word TIME&DATE. This derived on a
linux system from .... SSE , Seconds Since Epoch
: SSE 0 0 0 __NR_time XOS ; \ ciforth definition using generic call

m*/ is rarely needed.
I stole the high level definition from gforth to put in my
config.frt

: m*/
Post by mhx
r s>d >r abs -rot s>d r> xor r> swap >r >r dabs rot tuck um* 2swap um* swap
r 0 d+ r> -rot i um/mod -rot r> um/mod -rot r>
IF IF 1 0 d+
THEN
dnegate
ELSE drop
THEN ;

So a round trip from SSE to SSE,
using 6 calls to m*/ along the way, just to be portable.
Post by mhx
-marcel
Groetjes Albert
--
Temu exploits Christians: (Disclaimer, only 10 apostles)
Last Supper Acrylic Suncatcher - 15Cm Round Stained Glass- Style Wall
Art For Home, Office And Garden Decor - Perfect For Windows, Bars,
And Gifts For Friends Family And Colleagues.
Anton Ertl
2024-12-14 07:23:09 UTC
Permalink
Post by a***@spenarnc.xs4all.nl
Post by Anton Ertl
Post by a***@spenarnc.xs4all.nl
You can test gforth easily because there is a separate debian package
to attach the ffl library.
Which one?
Who cares.
Ok, I take this to mean that your claim above and the claim below is
false.
Post by a***@spenarnc.xs4all.nl
There is a separate package to make it easier to run
ffl in gforth.
Post by Anton Ertl
Post by a***@spenarnc.xs4all.nl
So I push them to https://github.com/uho/ffl
and hope it is accepted.
Ulrich Hoffmann is not the maintainer of the ffl AFAIK, so I would not
expect him to accept the pull request.
My bad. He is the owner, he cloned it, but he has no interest in it?
What do you mean with "owner"? Forking another repo is a step in the
github process to produce pull requests. E.g., I have forked ohcont
in order to produce the pull request I mentioned. It means that uho
had some interest in the ffl at the time. It does not mean that he is
the maintainer or will accept pull requests.
Post by a***@spenarnc.xs4all.nl
The question remains. Why has Ullrich forked the archive if he
is not planning to do anything with it.
You might ask him. As mentioned, one guee is that he did it to
prepare a pull request.

I certainly see that his ffl has 409 commits, the latest of which is
from August 4, 2011, whereas <https://github.com/irdvo/ffl> has 440
commits, the latest of which is from July 29, 2017. So it seems that
uho's interest in the ffl waned before irdvo's.

- anton
--
M. Anton Ertl http://www.complang.tuwien.ac.at/anton/home.html
comp.lang.forth FAQs: http://www.complang.tuwien.ac.at/forth/faq/toc.html
New standard: https://forth-standard.org/
EuroForth 2024: https://euro.theforth.net
a***@spenarnc.xs4all.nl
2024-12-14 20:03:46 UTC
Permalink
Post by Anton Ertl
I certainly see that his ffl has 409 commits, the latest of which is
from August 4, 2011, whereas <https://github.com/irdvo/ffl> has 440
commits, the latest of which is from July 29, 2017. So it seems that
uho's interest in the ffl waned before irdvo's.
Thanks for the insight for how git works. Apparently it is important
to compare archives.
I cloned forthlisp from Mark Probst and at the time I found it a good
idea to explain the relation to the original and the changes.
Post by Anton Ertl
- anton
Groetjes Albert
--
Temu exploits Christians: (Disclaimer, only 10 apostles)
Last Supper Acrylic Suncatcher - 15Cm Round Stained Glass- Style Wall
Art For Home, Office And Garden Decor - Perfect For Windows, Bars,
And Gifts For Friends Family And Colleagues.
Anton Ertl
2024-12-15 16:06:00 UTC
Permalink
Post by Anton Ertl
I certainly see that his ffl has 409 commits, the latest of which is
from August 4, 2011, whereas <https://github.com/irdvo/ffl> has 440
commits, the latest of which is from July 29, 2017. So it seems that
uho's interest in the ffl waned before irdvo's.
It could also be that he is still interested, but the specific purpose
for which he made the fork (e.g., for producing a pull request) is
finished.

- anton
--
M. Anton Ertl http://www.complang.tuwien.ac.at/anton/home.html
comp.lang.forth FAQs: http://www.complang.tuwien.ac.at/forth/faq/toc.html
New standard: https://forth-standard.org/
EuroForth 2024: https://euro.theforth.net
Loading...