Commits on Dec 12, 2014

  1. The GC will now call destructors on heap allocated structs. It is imp…

    …ossible to feasibly implement the invokation of arrays of finalizable structs, due to the inability to know which elements in the array, which may, or may not have been, initialized to begin with. There is also no way to know what the actual length of the array is, you can know how much memory was allocated for it, but not whether there was ever a reference to that point in the array. The destructors for structs in classes are still called as they were previously, which is immediately after the body of the outer class's finalizer.
    Orvid committed Dec 12, 2014
    Configuration menu
    Copy the full SHA
    977c7f7 View commit details
    Browse the repository at this point in the history
  2. Added _d_delstruct for use by the delete operator when deleting a poi…

    …nter to a struct. Also removed the need for a separate array of struct infos by storing the pointer to it at the end of the page for structs allocated by the GC that have finalizers.
    Orvid committed Dec 12, 2014
    Configuration menu
    Copy the full SHA
    800f100 View commit details
    Browse the repository at this point in the history
  3. Removed the STRUCT_FINALIZE block attribute. Also fixed an issue in m…

    …y initial implementation of the type info being moved to the end of the page.
    Orvid committed Dec 12, 2014
    Configuration menu
    Copy the full SHA
    86beca0 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    edd5666 View commit details
    Browse the repository at this point in the history
  5. As discussed on the PR, removed StructInfo, and replaced all uses of …

    …it with TypeInfo_Struct.
    
    I also made the runtime entirely responsible for managing the type info of a finalizable struct. Previously the GC first had to retrieve this info before calling the runtime to do the finalization, even though it's the runtime that determined where to put the type info.
    Orvid committed Dec 12, 2014
    Configuration menu
    Copy the full SHA
    a54dc00 View commit details
    Browse the repository at this point in the history
  6. TypeInfo_Struct.destroy needed to check if the pointer is owned by th…

    …e GC, and if so, have the GC run it's finalizers rather than calling the finalizer directly.
    Orvid committed Dec 12, 2014
    Configuration menu
    Copy the full SHA
    3301868 View commit details
    Browse the repository at this point in the history
  7. Fixed an edge case where an array that didn't have a large enough all…

    …ocation was incorrectly being treated as if it did.
    Orvid committed Dec 12, 2014
    Configuration menu
    Copy the full SHA
    cd1a9cb View commit details
    Browse the repository at this point in the history
  8. Minor changes for effeciency to array finalization, as well as added …

    …callStructDtorsDuringGC to core.memory.
    Orvid committed Dec 12, 2014
    Configuration menu
    Copy the full SHA
    c424346 View commit details
    Browse the repository at this point in the history
  9. Fixed a couple of places where ti.next was still being used.

    Also fixed a minor issue with an import.
    Orvid committed Dec 12, 2014
    Configuration menu
    Copy the full SHA
    f8e9bfb View commit details
    Browse the repository at this point in the history
  10. Use GC.qalloc rather than GC.malloc + GC.sizeOf.

    Also fixed the BlkInfo calculations to account for the sentinal bytes.
    Orvid committed Dec 12, 2014
    Configuration menu
    Copy the full SHA
    3232060 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    fc64733 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    6d0fbb9 View commit details
    Browse the repository at this point in the history
  13. fix shared library finalize issue

    rainers authored and Orvid committed Dec 12, 2014
    Configuration menu
    Copy the full SHA
    0b87997 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    5699a47 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    99d879d View commit details
    Browse the repository at this point in the history
  16. - remove StructFinalizers, preallocate FinalizeError

    - remove TypeInfo from gc.setAttr/setBita
    - assumeSafeAppend now calls struct destructors, checks whether the array is really shrinked
    - remove rt_ prefix from internal functions
    - add tests
    rainers authored and Orvid committed Dec 12, 2014
    Configuration menu
    Copy the full SHA
    8c461a9 View commit details
    Browse the repository at this point in the history
  17. fix calling destructors on qualified structs

    optimize by not calling TypeInfo.next again and again
    remove type info argument from GC.setAttr/setBits
    rainers authored and Orvid committed Dec 12, 2014
    Configuration menu
    Copy the full SHA
    391a491 View commit details
    Browse the repository at this point in the history
  18. check postblit for array of const struct

    rainers authored and Orvid committed Dec 12, 2014
    Configuration menu
    Copy the full SHA
    ac403db View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    daf7e62 View commit details
    Browse the repository at this point in the history

Commits on Dec 17, 2014

  1. Configuration menu
    Copy the full SHA
    e25cab1 View commit details
    Browse the repository at this point in the history

Commits on Jan 13, 2015

  1. The GC will now call destructors on heap allocated structs. It is imp…

    …ossible to feasibly implement the invokation of arrays of finalizable structs, due to the inability to know which elements in the array, which may, or may not have been, initialized to begin with. There is also no way to know what the actual length of the array is, you can know how much memory was allocated for it, but not whether there was ever a reference to that point in the array. The destructors for structs in classes are still called as they were previously, which is immediately after the body of the outer class's finalizer.
    Orvid committed Jan 13, 2015
    Configuration menu
    Copy the full SHA
    3f06283 View commit details
    Browse the repository at this point in the history
  2. Added _d_delstruct for use by the delete operator when deleting a poi…

    …nter to a struct. Also removed the need for a separate array of struct infos by storing the pointer to it at the end of the page for structs allocated by the GC that have finalizers.
    Orvid committed Jan 13, 2015
    Configuration menu
    Copy the full SHA
    621b665 View commit details
    Browse the repository at this point in the history
  3. Removed the STRUCT_FINALIZE block attribute. Also fixed an issue in m…

    …y initial implementation of the type info being moved to the end of the page.
    Orvid committed Jan 13, 2015
    Configuration menu
    Copy the full SHA
    f54084f View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    4166460 View commit details
    Browse the repository at this point in the history
  5. As discussed on the PR, removed StructInfo, and replaced all uses of …

    …it with TypeInfo_Struct.
    
    I also made the runtime entirely responsible for managing the type info of a finalizable struct. Previously the GC first had to retrieve this info before calling the runtime to do the finalization, even though it's the runtime that determined where to put the type info.
    Orvid committed Jan 13, 2015
    Configuration menu
    Copy the full SHA
    5b070f6 View commit details
    Browse the repository at this point in the history
  6. TypeInfo_Struct.destroy needed to check if the pointer is owned by th…

    …e GC, and if so, have the GC run it's finalizers rather than calling the finalizer directly.
    Orvid committed Jan 13, 2015
    Configuration menu
    Copy the full SHA
    3c83c5c View commit details
    Browse the repository at this point in the history
  7. Fixed an edge case where an array that didn't have a large enough all…

    …ocation was incorrectly being treated as if it did.
    Orvid committed Jan 13, 2015
    Configuration menu
    Copy the full SHA
    df15742 View commit details
    Browse the repository at this point in the history
  8. Minor changes for effeciency to array finalization, as well as added …

    …callStructDtorsDuringGC to core.memory.
    Orvid committed Jan 13, 2015
    Configuration menu
    Copy the full SHA
    1435422 View commit details
    Browse the repository at this point in the history
  9. Fixed a couple of places where ti.next was still being used.

    Also fixed a minor issue with an import.
    Orvid committed Jan 13, 2015
    Configuration menu
    Copy the full SHA
    381419e View commit details
    Browse the repository at this point in the history
  10. Use GC.qalloc rather than GC.malloc + GC.sizeOf.

    Also fixed the BlkInfo calculations to account for the sentinal bytes.
    Orvid committed Jan 13, 2015
    Configuration menu
    Copy the full SHA
    17b9522 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    b2a24bc View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    c277680 View commit details
    Browse the repository at this point in the history
  13. fix shared library finalize issue

    rainers authored and Orvid committed Jan 13, 2015
    Configuration menu
    Copy the full SHA
    3a04463 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    2b55785 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    afc057b View commit details
    Browse the repository at this point in the history
  16. - remove StructFinalizers, preallocate FinalizeError

    - remove TypeInfo from gc.setAttr/setBita
    - assumeSafeAppend now calls struct destructors, checks whether the array is really shrinked
    - remove rt_ prefix from internal functions
    - add tests
    rainers authored and Orvid committed Jan 13, 2015
    Configuration menu
    Copy the full SHA
    0b72987 View commit details
    Browse the repository at this point in the history
  17. fix calling destructors on qualified structs

    optimize by not calling TypeInfo.next again and again
    remove type info argument from GC.setAttr/setBits
    rainers authored and Orvid committed Jan 13, 2015
    Configuration menu
    Copy the full SHA
    9cb7331 View commit details
    Browse the repository at this point in the history
  18. check postblit for array of const struct

    rainers authored and Orvid committed Jan 13, 2015
    Configuration menu
    Copy the full SHA
    b61df57 View commit details
    Browse the repository at this point in the history
  19. Merging PR #6

    Orvid committed Jan 13, 2015
    Configuration menu
    Copy the full SHA
    fe68143 View commit details
    Browse the repository at this point in the history
  20. Configuration menu
    Copy the full SHA
    8a60fab View commit details
    Browse the repository at this point in the history
  21. Configuration menu
    Copy the full SHA
    f0027c7 View commit details
    Browse the repository at this point in the history
  22. Configuration menu
    Copy the full SHA
    17ef8cd View commit details
    Browse the repository at this point in the history

Commits on Jan 14, 2015

  1. Removed the callStructDtorsDuringGC field in core/memory.d.

    Trimmed the trailing whitespace on a couple of lines in rt/lifetime.d.
    Orvid committed Jan 14, 2015
    Configuration menu
    Copy the full SHA
    bfaa918 View commit details
    Browse the repository at this point in the history

Commits on Jan 15, 2015

  1. Merge pull request #864 from Orvid/structDestructors

    Fix Issue 2834 - The GC will now call destructors on heap allocated structs
    MartinNowak committed Jan 15, 2015
    Configuration menu
    Copy the full SHA
    dbbea7c View commit details
    Browse the repository at this point in the history