[m-rev.] for review: restructure prog_mutable.m
jfischer at opturion.com
Sat May 29 20:24:03 AEST 2021
On Fri, 28 May 2021, Zoltan Somogyi wrote:
> For review by anyone.
> Simplify the logic of prog_mutable.m.
> The old logic was complicated by the need to have some decisions
> made by prog_mutable.m and some by add_mutable_aux_preds.m,
> which had different tasks (generating public declarations
> vs generating both public and private definitions), and thus
> used different approaches.
> Replace this with code in which for each kind of auxiliary predicate,
> the code to generate its declaration is just before the code
> to generate its definition. And the code that decides what public
> declarations to generate is just before the code that decides
> what public and private definitions to generate.
> Make this latter logic operate as directly as possible on the mutable's
> attributes, instead of first calling a separate predicate to compute
> the set of auxiliary predicates the mutable needs, recording the results
> in the mutable_target_params structure, and then generating definitions
> as directed by this structure.
> To make this possible, split some existing predicates that used
> to do two related but nevertheless separate jobs, such as defining
> get and set predicates for both constant and nonconstant mutables.
> Give a bunch of predicates names that better reflect whether they
> generate declarations only, definitions only, or both.
> Consistently refer to the name of them mutable as MutableName,
> since the code handles the names of other kinds of things as well.
> Give some predicates slightly shorter names, so calls to them
> fit on just one line.
> Change the arg type of a function based on the updated needs of
> Conform to the changes above.
The diff looks fine.
More information about the reviews