Skip to content

Some API improvements (still needs redesign)

Pre-release
Pre-release
Compare
Choose a tag to compare
@Techcable Techcable released this 25 Apr 15:56
c3e1955

Significant API changes, but the API still needs a redesign to fix soundness issues.

To be clear, this does not fix the outstanding soundness issues.

See commit notes for full list of changes.

Major Features

  • Add GcError wrapper
  • Add GcString as garbage collected string
  • Add an "epsilon" collector that never collects memory
  • Implement GcDeserialize using serde
  • Optionally emulate core::alloc API
  • Add GcIndexMap collection

Public API Changes

  • Parameterize GcSafe by 'gc lifetime and CollectorId
  • Make GcErase trait an alias GcRebrand

Internal Improvements & Fixes

  • Use const generics for arrays
  • Fix trait_object_trace! macro
  • Make GcHandle use generic associated types
  • Handle cycles in Trace::NEEDS_TRACE
  • Remove #[feature(...)]s that have been stabilized