[m-rev.] the grade library is ready for review

Zoltan Somogyi zoltan.somogyi at runbox.com
Fri Apr 1 20:57:40 AEDT 2016


The changes I have made over the last few days have made
the grade library ready for review. I would appreciate your feedback
on it before I start integrating it into the compiler. (I won't
commit any changes that do that without a separate review.)

You will probably want to start with compiler/notes/grade_library.html,
which gives an overview of the library. The grade_lib directory
contains the library itself (the grade_lib.m package and its submodules,
all of which have names starting with "grade_"), and three standalone
programs.

The test_grades program poses 160 problems to the solver and prints
the results (some fail, some succeed); you should check whether the
successes AND failures seem reasonable to you.

The try_all_grade_structs program is a sanity check; it tests whether
the grade library can properly process all valid grades (of which there
are more than one million!). This takes a bit less than a minute on
my laptop, which shows that the grade library can handle the kinds
of problems that this test poses in about 50 microseconds each.
(I expect that solving partial, not full, grade specifications takes longer.)

The choose_grade program is for interactive testing: you give it
a partial grade specification in the form of a command line such as

./choose_grade target=erlang stack_len!=stseg

and see what the solver does with it.

I tried to make the code of the grade library itself easy to read.
Please tell me whether I succeeded.

Zoltan.


More information about the reviews mailing list