{"push_id":856536489,"size":1,"distinct_size":1,"ref":"refs/heads/x3","head":"4aecf481e001f6ffa5d4ef60f7b88d52189ad236","before":"1e1d1e034a751bc1da66c8a97d7352d3e91a22f8","commits":[{"sha":"4aecf481e001f6ffa5d4ef60f7b88d52189ad236","author":{"email":"aab4da3e71c2ca1ec0b8dbe613e4e9afa2218fcf@puppetlabs.com","name":"Peter Huene"},"message":"Major refactoring of compiler internals.\n\nThis is a major (and unfortunately wide sweeping) refactoring of the compiler's\ninternals.\n\n* Replaced the AST with an implementation with a Boost.Fusion adapted\n  interface; this removes all semantic actions in the parser.\n* Ported the parser to Boost.Spirit X3. The grammar is now greatly simplified\n  and easier to understand.\n* Removing usages of recursive boost::variants because of the wrapper not\n  having a noexcept move constructor. Implemented a custom wrapper that does to\n  provide proper move semantics.\n* This allows the recursive type system types to no longer need to be\n  templates, reducing code size and complexity.\n* Replaced free functions operating on values with member functions. This\n  allows values to automatically dereference when variables and remove common\n  mistakes (such as not dereferencing a value).\n\nA number of bug fixes are also included in this massive change.","distinct":true,"url":"https://api.github.com/repos/peterhuene/puppetcpp/commits/4aecf481e001f6ffa5d4ef60f7b88d52189ad236"}]}