Skip to content

Release 1.0.9

Choose a tag to compare

@florianschanda florianschanda released this 29 Nov 12:24
· 8 commits to main since this release

1.0.9

  • Reject recursive trees. Thank you to Melody Ma for uncovering
    it. The API now raises an exception Recursion if you attempt to
    construct an AST that is not a DAG. (Note: you can of course still
    re-use nodes, as long as there are no loop in the DAG.)

  • Add support for self-recursive records. This is a pre-cursor to full
    mutual recursion, but it is enough for TRLC.

    • The add_component method of Record can take the record sort
      itself.

    • A new expression Record_Null_Check can be used to check if a
      given term is equal to the null constructor. This can only be used
      on recursive records. Note that if you have a recursive record,
      then this is a pre-condition that you need to check on any access;
      otherwise you might get unexpected results (it is perfectly
      possible to access a record null constructor, you just get an
      uninterpreted function result). This checking has to happen inside
      the program driving PyVCG, it cannot happen inside PyVCG.

  • Move to CVC 1.3.1.

  • Add support for Python up to 3.14.