OK, let’s take enumeration. To test there are syntax, attributes, representation clause of (and in combination with 'Pred and other attributes), subtypes of, usage in array types, as discriminants including variant records, in loops, case statements. That is just from the top. ACATS covers probably, I guess, 1-2% of the total? So, I wondered if the framework you use were capable of more.
P.S. Character tests are quite interesting since there are subtle differences between Ada 83 and later standards. E.g. character literals.
You’re right : Ada 83 LRM 8.5(9) . Because an enumeration literal is equivalent to a function 3.5.1(3) renaming of an enumeration literal is possible under the title of subprogram renaming 8.5(2) (and not object renaming, an enumeration literal not being an object declared by object_declaration 3.2(2), 3.2(9)). So Ada 83/TLALOC sem_phase is ok when accepting this.
No, my “framework” is much more rudimentary and pragmatic. But your vision is interesting being tied to proving that the compiler compiles every possibility correctly and denies usage of forbidden constructs. I am not there but the question interests me also.
Nice step : all acvc a2 tests have been compiled by TLALOC, executed and passed (excepted the two TST using macrosub).
But bad news, fasmg will probably be unable to assemble the whole compiler (around 100 includes is too much for a multipass assembler, fasmg abdicates). It does not prevent developping the EXEC(1) compiler on “small” test programs though.
After some hard work, 16 tests of a8 acvc series have passed along with all tests of a2, a3, a5, a6, a7. All compiler modules itself are compiled also and a number of custom tests.
I am now confronted with a problem of development complexity. Taking acvc tests to guide the expander development is getting too expensive because it involves correction point by point as some languages services are not yet implemented. At first, the development was driven by implementing the predefined packages, but now they can be used and adding missing functionnalities is both less rewarding and more complicated.
I am thinking about the right method to efficiently progress in the expander development.
Hi !
I set up a methodology for the expander development with LRM centered “pillars” to implement. The acvc tests are no longer a development guide, only a control tool. A nice progress has been done on sections 3.6 and 3.7 .
Today I begin implementing the exceptions.