From: dxforth@gmail.com   
      
   On 15/02/2026 11:33 pm, albert@spenarnc.xs4all.nl wrote:   
   > In article <698fd57e$1@news.ausics.net>, dxf wrote:   
   >> On 14/02/2026 10:50 am, Gerry Jackson wrote:   
   >>> ...   
   >>> There's another point I think you're missing. I just looked on at my Forth   
   test suite on GitHub and 78 people have found it useful enough to   
   >> give it a star. I've no idea whether they are all developing their own   
   "toy" system but I would guess most are, and their system has to have   
   >> some testing. I suggest that the easiest way is to use an existing test   
   suite. As far as I know there is only one, so that automatically leads   
   >> them to make their system (at least partially) standard compliant. An   
   unexpected (and unintended) consequence of having a test suite.   
   >>   
   >> Cart before horse but I agree. First-time creators will generally pick some   
   >> standard or system because it's the easiest way. All the thinking has been   
   >> done for one and there's a wealth of existing source from which to choose or   
   >> use as a guide. It's a rare lion that hasn't undertaken internship as a   
   camel.   
   >> Moore appears to have been a rebel, lone wolf, from the beginning for whom   
   >> conformity was anathema, stagnation.   
   >>   
   >   
   > You have to test also the words you define yourself. The best is to   
   > come up with complete test for each word, in combination with the   
   > specification and the definition.   
   > This is an example from ciforth:   
   >   
   > worddoc( {LOGIC},{0=},{zero_equals},{n --- ff},{ISO,FIG},   
   > {Leave a true flag forthvar({ff}) is the number forthvar({n})   
   > is equal to zero, otherwise leave a false flag.   
   > It may be aliased to forthcode({NOT}) , which inverts a flag.   
   > },{{=},{0<}},   
   > { {0 0= .},{_T_},   
   > { 1 0= .},{0},   
   > { -1 0= .},{0} },   
   > enddoc)   
   > CODE_HEADER({0=},{ZEQU}) dnl ZEQU is the name used in the assembler file.   
   > POP AX _C{S2}   
   > AND AX,AX   
   > SETZ AL   
   > MOVZX AX,AL   
   > NEG AX   
   > _PUSH   
   > _C   
   >   
   > Stack effect, properties, specifications, also's , tests and   
   > code.   
   >   
   > (Macro _PUSH has inside a _NEXT. )   
      
   In my case the path wasn't particularly arduous as I used 'knowns' throughout   
   - a   
   Fig-Forth slowly and methodically modified to match Forth-83/94 using   
   Laxen/Perry   
   sources as a guide. The Hayes' ANS core test suite was handy as a final check.   
   I never had the problem of dealing with a mass of untested code e.g. had I   
   started   
   from scratch. I won't say it was 'a piece of cake' at the beginning.    
   Modifying   
   very low-level code typically leaves you with a system that never even starts.   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|