{"push_id":755365103,"size":1,"distinct_size":1,"ref":"refs/heads/less-jemalloc","head":"2354e899fb7414ab58dabf94afd4d7c13c449067","before":"903bd558109558dbad325fafe482060f8f8c026e","commits":[{"sha":"2354e899fb7414ab58dabf94afd4d7c13c449067","author":{"email":"60c6d277a8bd81de7fdde19201bf9c58a3df08f4@alexcrichton.com","name":"Alex Crichton"},"message":"rustc: Allow changing the default allocator\n\nThis commit is an implementation of [RFC 1183][rfc] which allows swapping out\nthe default allocator on nightly Rust. No new stable surface area should be\nadded as a part of this commit.\n\n[rfc]: https://github.com/rust-lang/rfcs/pull/1183\n\nTwo new attributes have been added to the compiler:\n\n* `#![needs_allocator]` - this is used by liballoc (and likely only liballoc) to\n  indicate that it requires an allocator crate to be in scope.\n* `#![allocator]` - this is a indicator that the crate is an allocator which can\n  satisfy the `needs_allocator` attribute above.\n\nThe ABI of the allocator crate is defined to be a set of symbols that implement\nthe standard Rust allocation/deallocation functions. The symbols are not\ncurrently checked for exhaustiveness or typechecked. There are also a number of\nrestrictions on these crates:\n\n* An allocator crate cannot transitively depend on a crate that is flagged as\n  needing an allocator (e.g. allocator crates can't depend on liballoc).\n* There can only be one explicitly linked allocator in a final image.\n* If no allocator is explicitly requested one will be injected on behalf of the\n  compiler. Binaries and Rust dylibs will use jemalloc by default where\n  available and staticlibs/other dylibs will use the system allocator by\n  default.\n\nTwo allocators are provided by the distribution by default, `alloc_system` and\n`alloc_jemalloc` which operate as advertised.\n\nCloses #27389","distinct":true,"url":"https://api.github.com/repos/alexcrichton/rust/commits/2354e899fb7414ab58dabf94afd4d7c13c449067"}]}