Simon Sapin
a24924f683
Move Unstable Book sections for #[global_allocator] and System to std::alloc docs
2018-06-11 13:48:57 -07:00
Simon Sapin
8111717da1
Stabilize the System allocator
2018-06-11 13:48:39 -07:00
Simon Sapin
90d19728fc
Move set_oom_hook and take_oom_hook to a dedicated tracking issue
2018-06-11 13:48:39 -07:00
Simon Sapin
75e17da873
Mark as permanently-unstable some implementation details
2018-06-11 13:48:27 -07:00
Simon Sapin
951bc28fd0
Stablize the alloc module without changing stability of its contents.
2018-06-11 13:48:25 -07:00
Simon Sapin
e9fd063edb
Document memory allocation APIs
...
Add some docs where they were missing,
attempt to fix them where they were out of date.
2018-06-11 13:47:28 -07:00
Simon Sapin
11f992c958
Remove the deprecated Heap type/const
2018-06-11 13:47:28 -07:00
Mike Hommey
3373204ac4
Replace impl GlobalAlloc for Global with a set of free functions
2018-06-11 13:47:23 -07:00
Mike Hommey
f6ab74b8e7
Remove alloc::Opaque and use *mut u8 as pointer type for GlobalAlloc
2018-06-11 13:47:23 -07:00
Mike Hommey
b945be71e8
Make the OOM hook return () rather than !
...
Per discussion in https://github.com/rust-lang/rust/issues/51245#issuecomment-393651083
This allows more flexibility in what can be done with the API. This also
splits `rtabort!` into `dumb_print` happening in the default hook and
`abort_internal`, happening in the actual oom handler after calling the
hook. Registering an empty function thus makes the oom handler not print
anything but still abort.
Cc: @alexcrichton
2018-06-01 08:50:07 +09:00
Mike Hommey
a4d899b4a1
Add hooks allowing to override the oom behavior
2018-05-30 10:57:38 +09:00
Mike Hommey
0f4ef003ac
Pass a Layout to oom
...
As discussed in
https://github.com/rust-lang/rust/issues/49668#issuecomment-384893456
and subsequent, there are use-cases where the OOM handler needs to know
the size of the allocation that failed. The alignment might also be a
cause for allocation failure, so providing it as well can be useful.
2018-05-30 05:35:48 +09:00
Mark Simulacrum
9e3432447a
Switch to 1.26 bootstrap compiler
2018-05-17 08:47:25 -06:00
Steven Fackler
e513c1bd31
Replace GlobalAlloc::oom with a lang item
2018-04-22 10:08:17 -07:00
Simon Sapin
f607a3872a
Rename alloc::Void to alloc::Opaque
2018-04-12 22:53:22 +02:00
Simon Sapin
eae0d46893
Restore Global.oom() functionality
...
… now that #[global_allocator] does not define a symbol for it
2018-04-12 22:53:21 +02:00
Simon Sapin
86753ce1cc
Use the GlobalAlloc trait for #[global_allocator]
2018-04-12 22:53:12 +02:00
Simon Sapin
ba7081a033
Make AllocErr a zero-size unit struct
2018-04-12 22:53:03 +02:00
Simon Sapin
e521b8b472
Actually deprecate the Heap type
2018-04-12 22:52:47 +02:00
Simon Sapin
743c29bdc5
Actually deprecate heap modules.
2018-04-12 22:52:47 +02:00
Simon Sapin
09e8db1e4f
Rename heap modules in the core, alloc, and std crates to alloc
2018-04-12 22:52:47 +02:00