Comments (13)
@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.
@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.
The error for HOLD turned out to be a false positive because the string was checking against "ba"
instead of "BA"
.
from taliforth2.
Fixed EVALUATE. BASE is possibly related to max-base
, which I never gave much thought, I must admint.
from taliforth2.
So maybe EVALUATE is not quite fixed, crashes in my testing branch even though typing in the code itself works.
from taliforth2.
We are missing MARKER, NEVER-NATIVE, 2R@, 2R>, 2>R, and UD/MOD. The last word will be removed anyway (see #44).
from taliforth2.
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.
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.
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.
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.
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.
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.
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)
- Suggestions for making Tali easier to port to new hardware HOT 7
- Move documentation to Sphinx / Read the Docs HOT 1
- fragmented or limited zero page space HOT 2
- Add support for files as an input source HOT 3
- Makefile and Building on Windows needs some work HOT 1
- Documentation Error in THRU (looks like it's my fault)
- User's output routine must leave char in A HOT 1
- Figure out which assembler to switch to HOT 22
- Create script to autoconvert Ophis code to new assembler HOT 1
- Rewrite Tali as-is with 64tass as new assembler HOT 2
- Oopsie in documentation folder HOT 1
- Make user-words.fs platform specific HOT 2
- Restructure repo for two asssemblers HOT 2
- Number Constants HOT 1
- Makefile needs to be updated for .PRG output (eg. 24K images) HOT 2
- The documentation needs to be updated for 64tass HOT 2
- bytes-vs-string issue in utils/console.py HOT 1
- All assembler mnemonics need to be marked NN HOT 1
- xt_words doesn't respect max line length correctly HOT 3
- Strange RTS behaviour HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from taliforth2.