Giter Club home page Giter Club logo

Comments (13)

scotws avatar scotws commented on August 25, 2024

@SamCoVT So I've updated the status of the words covered by automatic testing. If I understand the results, we have errors in

>BODY (which is a bit special for Tali anyway, might have to change the test), EVALUATE, >IN, HOLD, BASE (which seems strange), >NUMBER, and MOVE.

Words not covered by automatic testing yet would seem to be ABORT, QUIT, DNEGATE, ?DO, MARKER, -TRAILING, NAME>INT (specific to Tali), <>, NEVER-COMPILE, -ROT, OUTPUT, PAD, REFILL, /STRING, SLITERAL, SOURCE-ID, 2R@, 2R>, 2>R, 2VARIABLE, UD/MOD, and UNUSED.

from taliforth2.

scotws avatar scotws commented on August 25, 2024

@SamCoVT I have a branch where I've included tests for DNEGATE, -ROT, <>, 2VARIABLE, and ?DO, but the EVALUTE bug the testing suite found is breaking all kinds of stuff. It seems a bit more complicated than I first thought, so I'm breaking it out to a separate Issue and will try to figure it out next.

from taliforth2.

scotws avatar scotws commented on August 25, 2024

The error for HOLD turned out to be a false positive because the string was checking against "ba" instead of "BA".

from taliforth2.

scotws avatar scotws commented on August 25, 2024

Fixed EVALUATE. BASE is possibly related to max-base, which I never gave much thought, I must admint.

from taliforth2.

scotws avatar scotws commented on August 25, 2024

So maybe EVALUATE is not quite fixed, crashes in my testing branch even though typing in the code itself works.

from taliforth2.

scotws avatar scotws commented on August 25, 2024

We are missing MARKER, NEVER-NATIVE, 2R@, 2R>, 2>R, and UD/MOD. The last word will be removed anyway (see #44).

from taliforth2.

SamCoVT avatar SamCoVT commented on August 25, 2024

I added tests for -TRAILING in #81 (and you've already added some for shorter strings)
My long strings indirectly test REFILL which indirectly tests ACCEPT (called multiple times to get the entire string)
NAME>INT is indirectly tested in COMPILE, (and I now know more about those two words than I was anticipating).
Did you get EVALUATE figured out? I used it with :NONAME words and it seemed to work OK, and the automatic tests using it worked fine too.

from taliforth2.

scotws avatar scotws commented on August 25, 2024

Yes, the EVALUTE problem went away with one of your fixes. We currently have (before your new patches) 191 native words, 145 of which are automatically tested (about 76 percent). One formally doesn't have any test, NEVER-NATIVE, but that will take about five minutes sometime. Not all of the tests are being passed, though, some are commented out, but we're getting there. Once we have everything passing (except possibly >BODY's weird double DOES>, >BODY is giving me a headache and possibly needs to be figured out complete new from scratch), I'm going to close this issue for now. Then it's the docs once, and then BETA!

from taliforth2.

scotws avatar scotws commented on August 25, 2024

Phew. We now have automatic testing for all words that would seem to make sense at the moment -- AGAIN and a few others like LATESTXT should be long-term candidates, but this is enough for me to transition to BETA.

Just have to fix two failed tests: >BODY and that weird CASE problem (#88)

from taliforth2.

SamCoVT avatar SamCoVT commented on August 25, 2024

I believe I've fixed the CASE problem.
In looking at the >BODY problem, I found the following test at:
https://forth-standard.org/standard/core/toBODY

T{  CREATE CR0 ->      }T
T{ ' CR0 >BODY -> HERE }T

Tali appears to pass this test if you type it in.

I've looked through the code and I can't noodle in my brain how you would even know about double does>. I propose we replace the >body test in the set of "weird" tests with the above test. The double does> can still be tested (and it even works! how does it work?!), but we'll test >body separately.

Does it make sense to have an ERRATA section in the documentation to put these things that we find that aren't going to be fixed in the near term, or that are known variations from from the standard?

from taliforth2.

scotws avatar scotws commented on August 25, 2024

The problem is that the "weird" double DOES> is a formal part of that word's test, not >BODY (see https://forth-standard.org/standard/core/DOES). I think I have a grip on the basic mechanism now -- see http://forum.6502.org/viewtopic.php?f=9&t=5182&p=60962#p60962 for my attempt at an explanation -- so maybe we have a shot at fixing this the right way. But it's way past my bedtime today!

(Other stuff tomorrow as well, thanks!)

from taliforth2.

SamCoVT avatar SamCoVT commented on August 25, 2024

I was wondering where that test came from. The test for >BODY was much simpler.
I think you've got a much better handle on what's going on than I do, so I'm going to leave the fixing up to you, but I'll poke and prod at it in the simulator and see if I can get a better understanding for myself.

from taliforth2.

scotws avatar scotws commented on August 25, 2024

Ladies and gentlemen, all tests are passing. A few hours of fooling around with the docs and we can declare BETA. Thank you everybody for all the great work!

from taliforth2.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.