[dmd-internals] [D-Programming-Language/dmd] 645ba9: Add -vgc switch

GitHub noreply at github.com
Thu Mar 27 18:32:19 PDT 2014


  Branch: refs/heads/master
  Home:   https://github.com/D-Programming-Language/dmd
  Commit: 645ba99755a92e54c600fd343371270fd342d3fd
      https://github.com/D-Programming-Language/dmd/commit/645ba99755a92e54c600fd343371270fd342d3fd
  Author: Johannes Pfau <johannespfau at gmail.com>
  Date:   2014-03-21 (Fri, 21 Mar 2014)

  Changed paths:
    M src/declaration.h
    M src/func.c
    M src/mars.c
    M src/mars.h
    M src/mtype.c
    M src/mtype.h
    A src/nogc.c
    M src/posix.mak
    M src/win32.mak
    A test/compilable/nogc.d
    A test/compilable/nogc_warn.d

  Log Message:
  -----------
  Add -vgc switch

The following known allocations are intentionally not handled:

* AssertExp
* CmpExp
* AssignExp: Calls _d_arrayassign
* Hidden function errors: Are already deprecated
* SwitchErrorStatement

All these cases only allocate by throwing exceptions
and disallowing them would impact user code a lot. In
order to really solve such issues we need some way to
throw exceptions without GC-allocation.

Also not handled are indirect calls to user-defined
functions which may allocate (calling postblits in
array assignment for example). As this commit does
not provide a way to mark a function as @nogc there's
no way to know if such functions actually allocate.

These indirect calls to user defined functions must
be revisited when a @nogc attribute is introduced.


  Commit: 8e2b13b025626127e5e2a0fb90326e655f3deac8
      https://github.com/D-Programming-Language/dmd/commit/8e2b13b025626127e5e2a0fb90326e655f3deac8
  Author: Walter Bright <walter at walterbright.com>
  Date:   2014-03-27 (Thu, 27 Mar 2014)

  Changed paths:
    M src/declaration.h
    M src/func.c
    M src/mars.c
    M src/mars.h
    M src/mtype.c
    M src/mtype.h
    A src/nogc.c
    M src/posix.mak
    M src/win32.mak
    A test/compilable/nogc.d
    A test/compilable/nogc_warn.d

  Log Message:
  -----------
  Merge pull request #1886 from jpf91/vgc

Implement nogc framework (warn about GC allocations)


Compare: https://github.com/D-Programming-Language/dmd/compare/b19e1f804d98...8e2b13b02562


More information about the dmd-internals mailing list