{"push_id":706042343,"size":8,"distinct_size":8,"ref":"refs/heads/master","head":"15eedc71c682c59bd5dd05e417732b1558a963fb","before":"9a56b0df5f65cb93419cf53cb7e52fd11947faae","commits":[{"sha":"dc0fc6d1edeb70117838216e2288d23cfd0fbfad","author":{"email":"369292cab779b6b76c3d57ef7a3af9b141999351@users.noreply.github.com","name":"Christoph Lipka"},"message":"Fixed Unix build error introduced with commit 29f573e.","distinct":true,"url":"https://api.github.com/repos/c-lipka/povray/commits/dc0fc6d1edeb70117838216e2288d23cfd0fbfad"},{"sha":"c3551f249c89ffc817a4deb2acea0412a0b9913f","author":{"email":"369292cab779b6b76c3d57ef7a3af9b141999351@users.noreply.github.com","name":"Christoph Lipka"},"message":"Fixed spindle torus shading issues resulting from bogus surface normal computations for points on the spindle.","distinct":true,"url":"https://api.github.com/repos/c-lipka/povray/commits/c3551f249c89ffc817a4deb2acea0412a0b9913f"},{"sha":"9c1352f946395071848616ad218efaa14fba5ced","author":{"email":"369292cab779b6b76c3d57ef7a3af9b141999351@users.noreply.github.com","name":"Christoph Lipka"},"message":"Extended #declare and #local tuple syntax to also support assignment from arrays, and to support assignment to mismatching number of identifiers.\n\nUsing \"#declare { IDENTIFYER_LIST } = ARRAY_EXPRESSION\" will assign the first elements of the array expression (either an array identifier or an array declaration with initializer) to the given identifiers.\nThe IDENTIFYER_LIST may now contain empty elements, in which case the corresponding element from the right-hand side will be skipped accordingly.\n\nAlso fixed the error message reported when an array initializer does not have enough elements, and did some minor code cleanup along the way.","distinct":true,"url":"https://api.github.com/repos/c-lipka/povray/commits/9c1352f946395071848616ad218efaa14fba5ced"},{"sha":"a57273083b80f3b01ebd394807996d233e7ea78e","author":{"email":"369292cab779b6b76c3d57ef7a3af9b141999351@users.noreply.github.com","name":"Christoph Lipka"},"message":"Implement mechanisms to allow omission of macro parameters.\n\nWhen declaring a macro, the new keyword \"optional\" can now be placed in front of any identifier in the parameter list. When calling the macro, parameters flagged this way can be left empty, or undeclared identifiers passed to them. In both cases the corresponding parameter will be undeclared in the macro.\nThe new syntax \"local(IDENTIFIER)\" can be used to specifically access an identifier at the most local scope (i.e. the current macro, or the current file if used outside of a macro), ignoring any less local definitions; this can be used to reliably test for the presence of optional parameters using '#ifdef(local(IDENTIFIER))' or pass optional parameters on to other macros, without potential interference from global variables of the same name.","distinct":true,"url":"https://api.github.com/repos/c-lipka/povray/commits/a57273083b80f3b01ebd394807996d233e7ea78e"},{"sha":"927924815f5493cc97dedfdc02bfe0a73ea92756","author":{"email":"369292cab779b6b76c3d57ef7a3af9b141999351@users.noreply.github.com","name":"Christoph Lipka"},"message":"Fixed a bug pertaining to the use of the \"deprecated\" keyword in tuple #declare statements","distinct":true,"url":"https://api.github.com/repos/c-lipka/povray/commits/927924815f5493cc97dedfdc02bfe0a73ea92756"},{"sha":"3870e217821727cf6e8744297aa02759f5724e7e","author":{"email":"369292cab779b6b76c3d57ef7a3af9b141999351@users.noreply.github.com","name":"Christoph Lipka"},"message":"Extended tuple assignment syntax to allow for omission of right-hand side elements; extend array initializer syntax to allow for omission of elements.\n\nLeft-hand side elements in tuple assignments can now be prepended with the \"optional\" keyword. If an element is flagged this way, or left empty, the corresponding right-hand side element may be an uninitialized identifier or left empty. In this case, the respective left-hand side element remains unchanged (it is NOT undefined).\nAn array initializer may now be prepended with the \"optional\" keyword (e.g. \"#declare A = array[10] optional { ... }\"). In this case, each individual element of the initializer may be an uninitialized identifier or left empty.\n\nNote: Due to the internal twists of the parser, \"uninitialized identifier\" does _not_ encompass uninitialized array elements. This limitation also applies to optional macro parameters.","distinct":true,"url":"https://api.github.com/repos/c-lipka/povray/commits/3870e217821727cf6e8744297aa02759f5724e7e"},{"sha":"aaff0bba121c01dc91963b3aa3f45543ddcd717f","author":{"email":"369292cab779b6b76c3d57ef7a3af9b141999351@users.noreply.github.com","name":"Christoph Lipka"},"message":"Updated `ior.inc` default include file, showcasing some of the recent syntax extensions.","distinct":true,"url":"https://api.github.com/repos/c-lipka/povray/commits/aaff0bba121c01dc91963b3aa3f45543ddcd717f"},{"sha":"15eedc71c682c59bd5dd05e417732b1558a963fb","author":{"email":"7abde52c298496fa169fb750f91f213a282142af@lipka-koeln.de","name":"Christoph Lipka"},"message":"Merge remote-tracking branch 'official/master'","distinct":true,"url":"https://api.github.com/repos/c-lipka/povray/commits/15eedc71c682c59bd5dd05e417732b1558a963fb"}]}