• ffl improvements

    From albert@spenarnc.xs4all.nl@21:1/5 to All on Wed Dec 11 17:06:34 2024
    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.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Anton Ertl@21:1/5 to albert@spenarnc.xs4all.nl on Thu Dec 12 08:45:31 2024
    albert@spenarnc.xs4all.nl writes:
    You can test gforth easily because there is a separate debian package
    to attach the ffl library.

    Which one?

    /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.

    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.

    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.

    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From albert@spenarnc.xs4all.nl@21:1/5 to Anton Ertl on Fri Dec 13 13:13:02 2024
    In article <2024Dec12.094531@mips.complang.tuwien.ac.at>,
    Anton Ertl <anton@mips.complang.tuwien.ac.at> wrote:
    albert@spenarnc.xs4all.nl writes:
    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.


    /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.


    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?

    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.
    And I didn't even try that. I have read that message too.

    lso 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.

    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.


    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.

    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.


    - 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.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From mhx@21:1/5 to All on Fri Dec 13 14:48:54 2024
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From albert@spenarnc.xs4all.nl@21:1/5 to mhx on Fri Dec 13 19:10:15 2024
    In article <ffcf3917d64aff41c45652dfa5bab7c3@www.novabbs.com>,
    mhx <mhx@iae.nl> wrote:
    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


    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*/
    >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.


    -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.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Anton Ertl@21:1/5 to albert@spenarnc.xs4all.nl on Sat Dec 14 07:23:09 2024
    albert@spenarnc.xs4all.nl writes:
    In article <2024Dec12.094531@mips.complang.tuwien.ac.at>,
    Anton Ertl <anton@mips.complang.tuwien.ac.at> wrote: >>albert@spenarnc.xs4all.nl writes:
    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.

    There is a separate package to make it easier to run
    ffl in gforth.

    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.

    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From albert@spenarnc.xs4all.nl@21:1/5 to Anton Ertl on Sat Dec 14 21:03:46 2024
    In article <2024Dec14.082309@mips.complang.tuwien.ac.at>,
    Anton Ertl <anton@mips.complang.tuwien.ac.at> wrote:

    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.


    - 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.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Anton Ertl@21:1/5 to albert@spenarnc.xs4all.nl on Sun Dec 15 16:06:00 2024
    albert@spenarnc.xs4all.nl writes:
    In article <2024Dec14.082309@mips.complang.tuwien.ac.at>,
    Anton Ertl <anton@mips.complang.tuwien.ac.at> wrote:

    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)