[dmd-internals] [D-Programming-Language/dmd] f2a9a1: [Refactoring] Move Dsymbol::ungagSpeculative() imp...

GitHub via dmd-internals dmd-internals at puremagic.com
Thu Aug 21 22:03:31 PDT 2014


  Branch: refs/heads/master
  Home:   https://github.com/D-Programming-Language/dmd
  Commit: f2a9a1066155571384a5fefe1f1bc920779190f3
      https://github.com/D-Programming-Language/dmd/commit/f2a9a1066155571384a5fefe1f1bc920779190f3
  Author: k-hara <k.hara.pg at gmail.com>
  Date:   2014-08-21 (Thu, 21 Aug 2014)

  Changed paths:
    M src/dsymbol.c
    M src/dsymbol.h
    M src/mars.c
    M src/mars.h

  Log Message:
  -----------
  [Refactoring] Move Dsymbol::ungagSpeculative() implementation in dsymbol.c


  Commit: 9ff91703cb7b5d8e5444a11d4e7d8b32c64ba293
      https://github.com/D-Programming-Language/dmd/commit/9ff91703cb7b5d8e5444a11d4e7d8b32c64ba293
  Author: k-hara <k.hara.pg at gmail.com>
  Date:   2014-08-21 (Thu, 21 Aug 2014)

  Changed paths:
    M src/template.h

  Log Message:
  -----------
  [Refactoring] Reorder TemplateInstance fields


  Commit: 41d88a56d42cf2a3fee9e324abe04d5dc04ee502
      https://github.com/D-Programming-Language/dmd/commit/41d88a56d42cf2a3fee9e324abe04d5dc04ee502
  Author: k-hara <k.hara.pg at gmail.com>
  Date:   2014-08-21 (Thu, 21 Aug 2014)

  Changed paths:
    M src/glue.c

  Log Message:
  -----------
  [Refactoring] Remove unnecessary variable `func` in FuncDeclaration::toObjFile()


  Commit: 9202b529b329ce0087ae976aa8bf1deadd1b62de
      https://github.com/D-Programming-Language/dmd/commit/9202b529b329ce0087ae976aa8bf1deadd1b62de
  Author: k-hara <k.hara.pg at gmail.com>
  Date:   2014-08-22 (Fri, 22 Aug 2014)

  Changed paths:
    M src/clone.c
    M src/cond.c
    M src/declaration.h
    M src/dsymbol.c
    M src/expression.c
    M src/func.c
    M src/glue.c
    M src/mtype.c
    M src/scope.c
    M src/scope.h
    M src/staticassert.c
    M src/template.c
    M src/template.h
    M src/toobj.c
    M src/traits.c
    M test/fail_compilation/test8556.d

  Log Message:
  -----------
  Distinguish speculative instantiation from gagged one to elide unnecessary symbol emission

Template constraint evaluation may instantiate exactly same symbols multiple times (eg. issue 10133 test case in test/runnable/funclit.d).
It would cause linker error "duplicate COMDAT" in Win64. To avoid the issue, dmd should elide unnecessary symbol emission.

If a template is instantiated in template constraint or static condition, it's marked as speculative instantiation.
If no other code at non-speculative context refer the instance, compiler will elide its code generation.


  Commit: b4500911add6b24bb610cae050e31dab61f6cf3f
      https://github.com/D-Programming-Language/dmd/commit/b4500911add6b24bb610cae050e31dab61f6cf3f
  Author: k-hara <k.hara.pg at gmail.com>
  Date:   2014-08-22 (Fri, 22 Aug 2014)

  Changed paths:
    M src/template.c
    M test/runnable/template9.d

  Log Message:
  -----------
  fix Issue 13299 - Property not found with typesafe variadic opDispatch


  Commit: 1a106370e606e3023bb7e45b367d2b974b72eb19
      https://github.com/D-Programming-Language/dmd/commit/1a106370e606e3023bb7e45b367d2b974b72eb19
  Author: Walter Bright <walter at walterbright.com>
  Date:   2014-08-21 (Thu, 21 Aug 2014)

  Changed paths:
    M src/clone.c
    M src/cond.c
    M src/declaration.h
    M src/dsymbol.c
    M src/dsymbol.h
    M src/expression.c
    M src/func.c
    M src/glue.c
    M src/mars.c
    M src/mars.h
    M src/mtype.c
    M src/scope.c
    M src/scope.h
    M src/staticassert.c
    M src/template.c
    M src/template.h
    M src/toobj.c
    M src/traits.c
    M test/fail_compilation/test8556.d
    M test/runnable/template9.d

  Log Message:
  -----------
  Merge pull request #3874 from 9rnsr/fix13299

[REG2.066a] Issue 13299 - Property not found with typesafe variadic opDispatch


Compare: https://github.com/D-Programming-Language/dmd/compare/78c3fd296591...1a106370e606


More information about the dmd-internals mailing list