• Chuck Lever's avatar
    xdrgen: Prevent reordering of encoder and decoder functions · 509abfc7
    Chuck Lever authored
    I noticed that "xdrgen source" reorders the procedure encoder and
    decoder functions every time it is run. I would prefer that the
    generated code be more deterministic: it enables a reader to better
    see exactly what has changed between runs of the tool.
    
    The problem is that Python sets are not ordered. I use a Python set
    to ensure that, when multiple procedures use a particular argument or
    result type, the encoder/decoder for that type is emitted only once.
    
    Sets aren't ordered, but I can use Python dictionaries for this
    purpose to ensure the procedure functions are always emitted in the
    same order if the .x file does not change.
    Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
    509abfc7
program.py 6.26 KB