{"push_id":957140949,"size":778,"distinct_size":1,"ref":"refs/heads/fix13700","head":"ae8c6b1e3a299d2c371aa4e3ac972a2ede438791","before":"6e1a720a0036e30cb7c2970b4b1efebde3c2de2c","commits":[{"sha":"ceea6ac27670dd1d84556c0c09d440186d2f5d1b","author":{"email":"f18f9d8baa2fa0cb58562a87b426733853e0a4e9@walterbright.com","name":"Walter Bright"},"message":"use COMDATs for class info","distinct":false,"url":"https://api.github.com/repos/9rnsr/dmd/commits/ceea6ac27670dd1d84556c0c09d440186d2f5d1b"},{"sha":"445e1734f450f8e4a5c2f38b5ad0dfe2c937f897","author":{"email":"8447246b5d7be8399c45cc3d849f13607adf2233@gmail.com","name":"k-hara"},"message":"fix Issue 12421 - Allow simpler syntax for lambda template declarations","distinct":false,"url":"https://api.github.com/repos/9rnsr/dmd/commits/445e1734f450f8e4a5c2f38b5ad0dfe2c937f897"},{"sha":"6c14fadca403a61a578795ec0fb71f9340c7b543","author":{"email":"8447246b5d7be8399c45cc3d849f13607adf2233@gmail.com","name":"k-hara"},"message":"fix Issue 14431 - huge slowdown of compilation speed\n\nIn the pull request #4384, all instance has been changed to invoke\nsemantic3(). It was for the link-failure issue in specific case, but it\nwas too excessive.\n\n1. Semantic analysis strategy for template instances:\n  We cannot determine which instance does not need to be placed in object\nfile until semantic analysis completed. Therefore, for all templates\ninstantiated in root module, compiler should invoke their semantic3 --\nregardless of whether those are also instantiated in non-root module. If\na template is _only_ instantiated in non-root module, we can elide its\nsemantic3 (and for the compilation speed we should do that).\n\n2. Code generation strategy for template instances:\n  If a template is instantiated in non-root module, compiler usually does\nnot have to put it in object file. But if a template is instantiated in\nboth of root and non-root modules which mutually import each other, it\nneeds to placed in objfile.","distinct":false,"url":"https://api.github.com/repos/9rnsr/dmd/commits/6c14fadca403a61a578795ec0fb71f9340c7b543"},{"sha":"5b464f3393980a0229c079ff6e646ef843681996","author":{"email":"8447246b5d7be8399c45cc3d849f13607adf2233@gmail.com","name":"k-hara"},"message":"fix Issue 14901 - template static shared this() run multiple times with separate compilation","distinct":false,"url":"https://api.github.com/repos/9rnsr/dmd/commits/5b464f3393980a0229c079ff6e646ef843681996"},{"sha":"62253d4027f58fe797fab78b9b49f84d687cabd3","author":{"email":"7681abd955033353452d3cfcec32879228885f3e@gmail.com","name":"Daniel Murphy"},"message":"Normalize new source with dfmt and fix warnings","distinct":false,"url":"https://api.github.com/repos/9rnsr/dmd/commits/62253d4027f58fe797fab78b9b49f84d687cabd3"},{"sha":"7cced26789de95e2e14c1452c7334d50f68f9deb","author":{"email":"8447246b5d7be8399c45cc3d849f13607adf2233@gmail.com","name":"k-hara"},"message":"(will be squashed later) Better appendToModuleMember implementation and update comments","distinct":false,"url":"https://api.github.com/repos/9rnsr/dmd/commits/7cced26789de95e2e14c1452c7334d50f68f9deb"},{"sha":"a587c3d6a49c198822a0629071c401e62d592787","author":{"email":"8447246b5d7be8399c45cc3d849f13607adf2233@gmail.com","name":"k-hara"},"message":"Prefer instantiations from root modules when -debug/-unittest is specified","distinct":false,"url":"https://api.github.com/repos/9rnsr/dmd/commits/a587c3d6a49c198822a0629071c401e62d592787"},{"sha":"cf56e5ad84164276f31f1d567ded97738a42191d","author":{"email":"8447246b5d7be8399c45cc3d849f13607adf2233@gmail.com","name":"k-hara"},"message":"Elide codegen if TypeInfo is speculative\n\nEven if a struct is defined as non-root symbol, some built-in operations\nrequest its TypeInfo. For those, today TypeInfo_Struct is generated in COMDAT.\n\nOn the other hand, TypeInfoDeclaration is always generated when the TypeInfo is requested,\neven if the code exists in speculative scope. By that, some unneeded\nTypeInfo objects had excessively generated.\nIf a TypeInfo is not actually used, we should stop its generation.\n\nTo satisfy two requirements, I added \"speculative TypeInfo\" concept\nassociated with template instances.\n\nBy this change, when a TypeInfo is *requested*, the codegen pass still\nvisit it always. But if the corresponding type is instantiated struct or\nits derived, and is definitely speculative, the TypeInfo code also won't\nbe emit into object file.","distinct":false,"url":"https://api.github.com/repos/9rnsr/dmd/commits/cf56e5ad84164276f31f1d567ded97738a42191d"},{"sha":"0b45d187c8ddb7442e4f7a9fc8780bb1ac58dbbc","author":{"email":"8447246b5d7be8399c45cc3d849f13607adf2233@gmail.com","name":"k-hara"},"message":"More TypeInfo objects would be requested from inlined functions\n\n1. When a non-root function is succeeded to expand for inlining,\nthe additional TypeInfo requests should be handled properly.\n\n2. When a function's semantic3 pass will get called from `canInline`, it\nwould generate more speculative instances when -debug/-unittest is specified.\nIf the additionally instantiated function succeeds to expand, it should be\nchanged to non-speculative, because its code is reachable from the final executable.","distinct":false,"url":"https://api.github.com/repos/9rnsr/dmd/commits/0b45d187c8ddb7442e4f7a9fc8780bb1ac58dbbc"},{"sha":"cd29d5f34cbacebd83ecdb9727ab1b93f7fa6af1","author":{"email":"7b34c86e54d03a8595b091abe33ebf48b4d04b3b@gmx.de","name":"Rainer Schuetze"},"message":"Merge pull request #4814 from 9rnsr/fix14541\n\nIssue 14541 - \"duplicate COMDAT\" linker error with the template forward reference in Tuple.opAssign","distinct":false,"url":"https://api.github.com/repos/9rnsr/dmd/commits/cd29d5f34cbacebd83ecdb9727ab1b93f7fa6af1"},{"sha":"94c66eaa298c23c730df1de075efb8e6210c693f","author":{"email":"e6fb06210fafc02fd7479ddbed2d042cc3a5155e@dawg.eu","name":"Martin Nowak"},"message":"use -Bstatic -lphobos2 -Bdynamic rather than -l:libphobos2.a\n\n- the latter is only supported on newer versions of ld","distinct":false,"url":"https://api.github.com/repos/9rnsr/dmd/commits/94c66eaa298c23c730df1de075efb8e6210c693f"},{"sha":"bf6beb59be1dd989ed62fa58c52656115d164238","author":{"email":"e6fb06210fafc02fd7479ddbed2d042cc3a5155e@dawg.eu","name":"Martin Nowak"},"message":"replace -gc in tests with -g\n\n- as we no longer emit D specific DWARF\n  extensions -g just works fine\n\n- DW_lang_D is supported since gdb 6.5","distinct":false,"url":"https://api.github.com/repos/9rnsr/dmd/commits/bf6beb59be1dd989ed62fa58c52656115d164238"},{"sha":"922d79a43ff60ed324e32e2f4be1430de209746f","author":{"email":"8447246b5d7be8399c45cc3d849f13607adf2233@gmail.com","name":"k-hara"},"message":"fix Issue 14781 - impure delegate to pure function context should be able to modify context","distinct":false,"url":"https://api.github.com/repos/9rnsr/dmd/commits/922d79a43ff60ed324e32e2f4be1430de209746f"},{"sha":"0c9f5a272bf47e1ad81d2a8a4c56adfd3461fde7","author":{"email":"8447246b5d7be8399c45cc3d849f13607adf2233@gmail.com","name":"k-hara"},"message":"fix Issue 14962 - compiler inference of attributes for nested map seems broken\n\nIt has been revealed since the commit/PR:\n\nf22d9dbb42b6a32d5b4c7c9f3db45e07c9f8aaf6\nhttps://github.com/D-Programming-Language/dmd/pull/4464\n\nBy the fix, some attribute inference order bug for template functions had\nbeen fixed - when foo() calls bar!(), and bar!() calls baz!(), the bar!()\nattribute should be inferred after the attrs of baz!() determined.\n\nAnd then, compiler infers the purity of nested two lambdas in the 14962\ntest case, and the case has been rejected by the 14781 behavior.","distinct":false,"url":"https://api.github.com/repos/9rnsr/dmd/commits/0c9f5a272bf47e1ad81d2a8a4c56adfd3461fde7"},{"sha":"d767e9a375248a297233c590e3148834cb7b1a65","author":{"email":"382d357c484008417be59240ddf24dd818c9a4b4@gmx.com","name":"Jonathan M Davis"},"message":"Update dmd test suite test for changes to std.zip.\n\nThe overload which took an integral value instead of the enum was\ndeprecated quite a while ago, but the test suite was never updated.","distinct":false,"url":"https://api.github.com/repos/9rnsr/dmd/commits/d767e9a375248a297233c590e3148834cb7b1a65"},{"sha":"453a1d6ecc68c03a23079ddbf58684b8aae8d5d5","author":{"email":"8447246b5d7be8399c45cc3d849f13607adf2233@gmail.com","name":"k-hara"},"message":"fix Issue 14743 - ICE in TemplateInstance::needsTypeInference() with template forward reference","distinct":false,"url":"https://api.github.com/repos/9rnsr/dmd/commits/453a1d6ecc68c03a23079ddbf58684b8aae8d5d5"},{"sha":"f18fe224da8357ec28c9693215c73830830e2965","author":{"email":"7681abd955033353452d3cfcec32879228885f3e@gmail.com","name":"Daniel Murphy"},"message":"Merge pull request #4792 from 9rnsr/fix14743\n\nIssue 14743 - ICE in TemplateInstance::needsTypeInference() with template forward reference","distinct":false,"url":"https://api.github.com/repos/9rnsr/dmd/commits/f18fe224da8357ec28c9693215c73830830e2965"},{"sha":"a00291ee43102aaef3c6bdf0708f8f75eddfff3d","author":{"email":"7b34c86e54d03a8595b091abe33ebf48b4d04b3b@gmx.de","name":"Rainer Schuetze"},"message":"Win64: overloads in vtable needs to be reversed, too","distinct":false,"url":"https://api.github.com/repos/9rnsr/dmd/commits/a00291ee43102aaef3c6bdf0708f8f75eddfff3d"},{"sha":"b7ab2c070707e0128b26ca09b71e8f5666196cf2","author":{"email":"7b34c86e54d03a8595b091abe33ebf48b4d04b3b@gmx.de","name":"Rainer Schuetze"},"message":"win32coff: __c_long_double needs to be returned through register","distinct":false,"url":"https://api.github.com/repos/9rnsr/dmd/commits/b7ab2c070707e0128b26ca09b71e8f5666196cf2"},{"sha":"0ab240dd315cca809b31d53e98869fa76283ea44","author":{"email":"7b34c86e54d03a8595b091abe33ebf48b4d04b3b@gmx.de","name":"Rainer Schuetze"},"message":"enable test11802 on Win64","distinct":false,"url":"https://api.github.com/repos/9rnsr/dmd/commits/0ab240dd315cca809b31d53e98869fa76283ea44"}]}