{"push_id":2391006334,"size":3,"distinct_size":3,"ref":"refs/heads/DAG-aware-copying","head":"94eb4341221f594b41fde5d6839b58da41f5c75b","before":"400814820f6ab9e92d9cf292554be56084bda0e8","commits":[{"sha":"98228f0b1e3a87ed423acf69ef0152a17e06d7ab","author":{"name":"Steffen Märcker","email":"ba769e852cda1190de07a2348fe7f92211d2c022@tcs.inf.tu-dresden.de"},"message":"[DAG-visit] Implement DAG-aware visitor\n\nAfter certain replacements, e.g., formula substitution, the AST becomes a directed acyclic graph.\nMost often it is not required to visit a node of this DAG multiply times.\nThe new class DAGVisitor keeps track of the nodes already seen and visits each node only once.\n\nThe class DAGVisitor is inserted between ASTVisitor and ASTTraverse and ASTTraverseModify\nwithout changing the behavior of their subclasses.","distinct":true,"url":"https://api.github.com/repos/merkste/prism/commits/98228f0b1e3a87ed423acf69ef0152a17e06d7ab"},{"sha":"076cc0af00c648bae53a3edadfbcde0cfa81543c","author":{"name":"Steffen Märcker","email":"ba769e852cda1190de07a2348fe7f92211d2c022@tcs.inf.tu-dresden.de"},"message":"[DAG-visit] Adapt existing visitors to be DAG-aware\n\nRename the method visit to visitNow in existing visitor classes.\nThis makes them traverse the AST without visiting nodes multiple times.","distinct":true,"url":"https://api.github.com/repos/merkste/prism/commits/076cc0af00c648bae53a3edadfbcde0cfa81543c"},{"sha":"94eb4341221f594b41fde5d6839b58da41f5c75b","author":{"name":"Steffen Märcker","email":"ba769e852cda1190de07a2348fe7f92211d2c022@tcs.inf.tu-dresden.de"},"message":"[DAG-copy] Implement deep-copying the AST without unfolding the DAG\n\nAfter certain replacements, e.g., formula substitution, the AST becomes a directed acyclic graph.\nOn copying wewant to preserve this structure.\nThe identification of duplicates is non-local since duplicates may appear everywhere in the AST/DAG.\n\nThe implementation introduces a new visitor to keep track of duplicate nodes\nand makes copying a two-step process:\n1. Cloning a node and its internal container types via Object::clone\n2. Deep-copying AST child nodes using the visitor","distinct":true,"url":"https://api.github.com/repos/merkste/prism/commits/94eb4341221f594b41fde5d6839b58da41f5c75b"}]}
{"actor":{"display_login":"merkste"}}