March 27, 2014 [dmd-internals] [D-Programming-Language/dmd] 645ba9: Add -vgc switch | ||||
---|---|---|---|---|
| ||||
Attachments:
| 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@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@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 |
Copyright © 1999-2021 by the D Language Foundation