Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Heavily abstracted rewerite of the zerogc API for version 0.3 #34

Draft
wants to merge 36 commits into
base: master
Choose a base branch
from

Commits on May 7, 2024

  1. Initial commit

    This is intended to be a replacement/redesign for zerogc
    Techcable committed May 7, 2024
    Configuration menu
    Copy the full SHA
    9eec6a1 View commit details
    Browse the repository at this point in the history
  2. Add README

    Techcable committed May 7, 2024
    Configuration menu
    Copy the full SHA
    b2b79eb View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    927e525 View commit details
    Browse the repository at this point in the history
  4. Use fixed alignment for GC types

    Simplifies size calculation.
    
    Use bumpalo for young-gen alloc
    Techcable committed May 7, 2024
    Configuration menu
    Copy the full SHA
    2839223 View commit details
    Browse the repository at this point in the history
  5. Add bindings for mimalloc

    The oldgen collector is going to use a mimalloc heap
    for its internal allocations.
    Techcable committed May 7, 2024
    Configuration menu
    Copy the full SHA
    6b9397f View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    ea40db0 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    4e445d3 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    b15b5d4 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    e3bf385 View commit details
    Browse the repository at this point in the history
  10. Get basic example to compile

    Some strange errors with invalid Layout alignment (when using miri)
    Techcable committed May 7, 2024
    Configuration menu
    Copy the full SHA
    5efc76a View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    304f4df View commit details
    Browse the repository at this point in the history
  12. Revert "Avoid GcHeader::regular_value_ptr to satisfy miri"

    These address calculations can't really be avoided :/
    
    This reverts commit 2f0926f95db863829159608e82bf7c5f4c98adf2
    Techcable committed May 7, 2024
    Configuration menu
    Copy the full SHA
    09e9072 View commit details
    Browse the repository at this point in the history
  13. Add allocator debug mode, avoiding bumpalo

    Allows using AddressSanitizer
    Techcable committed May 7, 2024
    Configuration menu
    Copy the full SHA
    bf5da49 View commit details
    Browse the repository at this point in the history
  14. In debug mode, touch roots after trace

    Triggers errors earlier in AddressSanitizer
    Techcable committed May 7, 2024
    Configuration menu
    Copy the full SHA
    3aa6904 View commit details
    Browse the repository at this point in the history
  15. Disable stacker::grow under miri

    Because FFI is forbidden
    Techcable committed May 7, 2024
    Configuration menu
    Copy the full SHA
    661f3be View commit details
    Browse the repository at this point in the history
  16. Fix Gc::header offset calculation UB

    This causes the to pass miri (onlt with tree borrows, not stacked borrows)
    Techcable committed May 7, 2024
    Configuration menu
    Copy the full SHA
    9bc55d9 View commit details
    Browse the repository at this point in the history
  17. In debug-alloc, ArenaAlloc cannot frees individual allocs

    This emulates bumpalo::Bump behavior and avoids a slow HashMap
    Techcable committed May 7, 2024
    Configuration menu
    Copy the full SHA
    d17c462 View commit details
    Browse the repository at this point in the history
  18. Attempt to explicitly Drop old-gen objects under miri

    Unfortunately, miri still reports leaks
    Techcable committed May 7, 2024
    Configuration menu
    Copy the full SHA
    68ae635 View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    f087b89 View commit details
    Browse the repository at this point in the history
  20. Invoke destructors for dead objects

    This adds some extra overhead in young-gen, but not much in old
    Techcable committed May 7, 2024
    Configuration menu
    Copy the full SHA
    38a3b1e View commit details
    Browse the repository at this point in the history
  21. Add 'zerogc-nextv0.3/' from commit '38a3b1e13e2f2a8258aa325378952900d…

    …697c3ab'
    
    git-subtree-dir: zerogc-nextv0.3
    git-subtree-mainline: 3ff913b
    git-subtree-split: 38a3b1e
    Techcable committed May 7, 2024
    Configuration menu
    Copy the full SHA
    ede53ad View commit details
    Browse the repository at this point in the history

Commits on May 8, 2024

  1. Remove context and simple crates

    In the v0.3 API, the context crate will no longer exist
    and the simple crate needs to be rewritten.
    Techcable committed May 8, 2024
    Configuration menu
    Copy the full SHA
    8cae9b7 View commit details
    Browse the repository at this point in the history
  2. Drop features unsupported in v0.3

    The new version drops support for most features in v0.2
    Techcable committed May 8, 2024
    Configuration menu
    Copy the full SHA
    bc9bac5 View commit details
    Browse the repository at this point in the history
  3. Remove safepoint macros

    Will not be used with initial version of v0.3 API
    Techcable committed May 8, 2024
    Configuration menu
    Copy the full SHA
    145fab5 View commit details
    Browse the repository at this point in the history
  4. Remove GcContext trait

    Will be handled differently in v0.3 API
    Techcable committed May 8, 2024
    Configuration menu
    Copy the full SHA
    0814629 View commit details
    Browse the repository at this point in the history

Commits on May 10, 2024

  1. Split lib.rs into submodules

    Doesn't delete any code right now
    Techcable committed May 10, 2024
    Configuration menu
    Copy the full SHA
    e6aae10 View commit details
    Browse the repository at this point in the history

Commits on May 15, 2024

  1. Hide unstable features behind nightly flag

    Reduces some features for derive macros (specifically warnings),
    but is not really needed for the main crate.
    Techcable committed May 15, 2024
    Configuration menu
    Copy the full SHA
    896871b View commit details
    Browse the repository at this point in the history
  2. Remove GcDeserialize derive code

    Very unsafe
    Techcable committed May 15, 2024
    Configuration menu
    Copy the full SHA
    4bbbc41 View commit details
    Browse the repository at this point in the history

Commits on May 16, 2024

  1. Remove GcHandle code

    Techcable committed May 16, 2024
    Configuration menu
    Copy the full SHA
    80ee1d9 View commit details
    Browse the repository at this point in the history

Commits on May 17, 2024

  1. Bump edition to 2021

    Techcable committed May 17, 2024
    Configuration menu
    Copy the full SHA
    78ad4dc View commit details
    Browse the repository at this point in the history
  2. Update some dependency versions

    Remove unused dependencies.
    Techcable committed May 17, 2024
    Configuration menu
    Copy the full SHA
    8922006 View commit details
    Browse the repository at this point in the history

Commits on May 25, 2024

  1. Fix usage of indexmap mutable keys in Trace

    Only offered with special extension trait `MutableKeys`.
    Drop unused `deserialize` option for macro (GcDeserialize removed).
    
    Drop unused dependencies.
    Techcable committed May 25, 2024
    Configuration menu
    Copy the full SHA
    0bda65c View commit details
    Browse the repository at this point in the history
  2. Add GcHeader trait & GcContext type

    The GcHeader api allows access to an object's internal header,
    which contains the CollectorId.
    For an array, the header also contains the length.
    
    Implmentations can (and will) add extra metadata to their header
    like mark bits and type info.
    
    Make methods on Gc associated functions instead of methods
    in order to avoid conflicts with the Deref trait.
    This is what Arc and Box both do.
    Techcable committed May 25, 2024
    Configuration menu
    Copy the full SHA
    4c6b2c8 View commit details
    Browse the repository at this point in the history

Commits on May 28, 2024

  1. Fix clippy lints

    Techcable committed May 28, 2024
    Configuration menu
    Copy the full SHA
    443e626 View commit details
    Browse the repository at this point in the history

Commits on Jun 21, 2024

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

Commits on Jun 30, 2024

  1. Attempt to make GcHandle a trait

    Currently doesn't compile
    Techcable committed Jun 30, 2024
    Configuration menu
    Copy the full SHA
    c3d1472 View commit details
    Browse the repository at this point in the history