Revision tags: 1.0.1 |
|
#
311db758 |
| 22-Jun-2018 |
Jeremy Soller <jackpot51@gmail.com> |
Merge branch 'master' into 'master'
Master
Closes #45
See merge request redox-os/ralloc!62
|
#
cccbe119 |
| 21-Jun-2018 |
Tom Almeida <tommoa256@gmail.com> |
Update implementation for nightly 19/6/2018
|
#
2d8d4497 |
| 12-Jun-2018 |
Jeremy Soller <jackpot51@gmail.com> |
Update links to gitlab
|
#
b521bac2 |
| 08-Nov-2017 |
Jeremy Soller <jackpot51@gmail.com> |
Merge pull request #59 from ids1024/latest_rust
Use new allocator API, and otherwise update for new Rust
|
#
cd8d627e |
| 08-Nov-2017 |
Ian Douglas Scott <ian@iandouglasscott.com> |
Use new allocator API, and otherwise update for new Rust
- New allocator API - Remove the "allocator" feature, which should be unnecessary due to how the new allocator API works - NonZero no longer
Use new allocator API, and otherwise update for new Rust
- New allocator API - Remove the "allocator" feature, which should be unnecessary due to how the new allocator API works - NonZero no longer implements Deref (https://github.com/rust-lang/rust/pull/41064) - NonZero::new() returns an Option; use NonZero::new_unchecked() - Thread locals are no longer 'static (https://github.com/rust-lang/rust/pull/43746) - Changes to feature flags - Use unsafe to access extern static (https://github.com/rust-lang/rust/issues/36247)
show more ...
|
#
e31a743e |
| 06-Mar-2017 |
Oliver Schneider <oli-obk@users.noreply.github.com> |
Don't depend on clippy (#49)
fixes #37
|
#
6b992ccf |
| 21-Aug-2016 |
ticki <ticki@users.noreply.github.com> |
Update clippy.
|
#
e3190491 |
| 16-Aug-2016 |
ticki <ticki@users.noreply.github.com> |
Multi-level logging and user configuration.
This commit is a complete revision of `shim`. Anything which is configurable of nature is now moved to `shim` allowing complete customizability of `ralloc
Multi-level logging and user configuration.
This commit is a complete revision of `shim`. Anything which is configurable of nature is now moved to `shim` allowing complete customizability of `ralloc`.
But it doesn't end there!
The logs got quite messy before due to the classical TMI problem. We solve this by adding multiple "log levels" each describing a different class of importance.
- Add multi-level logging. - Move each component of shim into distinct modules. - Add allocator canonicalization to `shim`. - Add adjustable constant to `shim`. - Add default OOM handler to `shim`. - Add logging to everything. - Remove the `libc_write` module and add it to `log` instead. - Add colourful OOM message. - Tweak the allocator canonicalization strategy. - Rename the `log!` macro to `bk_log!`, and use the old name for the generalized logging macro. - Remove the `unsafe_no_brk_lock` feature, due to being unsafe in multithreaded environment (and in singlethreaded ones, `unsafe_no_mutex_lock` is sufficient). - Remove the `sys` module in favor of direct `shim` imports.
show more ...
|
#
b7c1f1bf |
| 12-Aug-2016 |
ticki <ticki@users.noreply.github.com> |
Valgrind support.
We add first-class debugger support by providing functions for marking memory blocks uninitialized/free to the debugger. The default implementation is wired to valgrind, but it can
Valgrind support.
We add first-class debugger support by providing functions for marking memory blocks uninitialized/free to the debugger. The default implementation is wired to valgrind, but it can easily be replaced.
show more ...
|
#
ae4fc625 |
| 11-Aug-2016 |
ticki <ticki@users.noreply.github.com> |
Make TLS optional.
This feature was requested by @jackpot51, and will be used until Redox gets full TLS support.
|
#
5285a72b |
| 11-Aug-2016 |
ticki <ticki@users.noreply.github.com> |
Fix bug related to strange behavior of Arc
Apparently, atomically reference counted objects would allow destructors to run after the allocator had been deinitialized. To fix this, we make sure the a
Fix bug related to strange behavior of Arc
Apparently, atomically reference counted objects would allow destructors to run after the allocator had been deinitialized. To fix this, we make sure the allocator is never disabled, but simply will fallback to the global alloctor when deinitialized. This also fixes an important bug in TLS keys (i.e. the order of the thread dtors were unknown).
We introduce a few other smaller changes as well:
- Use uniform convention for todos. Add a colon after the TODO, and start with capital letter, and end with punctuation.
- Fix broken tests which would free a larger buffer than allocated.
- Remove debug_tools in favor of planned Valgrind compatibility.
- Remove `LazyInit`'s unreachable state.
- Replace `get_allocator` with a macro (due to the lack of generic closures).
show more ...
|
#
fd7a7bc7 |
| 10-Aug-2016 |
ticki <ticki@users.noreply.github.com> |
Improve logging in multiple ways.
- Let `Writer` hold the lock.
- Rename `Writer` to `LogWriter`
- Fix warnings in tests.
- Remove forgotten file.
|
#
78084f16 |
| 09-Aug-2016 |
ticki <ticki@users.noreply.github.com> |
Bump shim to 0.1.1
|
#
302678da |
| 08-Aug-2016 |
ticki <ticki@users.noreply.github.com> |
Fix reserve (called by insert) to not modify the order
Previously it broke indexes (or their association with blocks).
|
#
180fdbdd |
| 07-Aug-2016 |
ticki <ticki@users.noreply.github.com> |
Add Bookkeeper IDs
This improves the logging by adding a way to distinguish between allocators (namely local and global).
- Fix a bug related to a malformed assertion in Bookkeeper::push().
|
#
cdec4b0e |
| 03-Aug-2016 |
ticki <ticki@users.noreply.github.com> |
Ralloc 1.0.0: A trait-based local/global allocator model.
- Use a trait-based approach to local/global allocators. In particular, we make what was previously provided by `Bookkeeper` to a trait in
Ralloc 1.0.0: A trait-based local/global allocator model.
- Use a trait-based approach to local/global allocators. In particular, we make what was previously provided by `Bookkeeper` to a trait in which the custom methods are overriden. - Enable ralloc-based block list reallocation. Instead of using BRK for this, we allow the allocator itself to manage the bookkeeper's capacity. This is done by adding the guarantee of the vector's capacity always being greater than or equal two the length plus two. - Remove the `UniCell` primitive and provides a `MoveCell` primitive instead. - Move `Bookkeeper`-specific methods to `Bookkeeper`'s impl instead of the `Allocator` trait. - Introduce the `LazyInit` primitive, which provides functionality similar to the `lazy_static` crate. In particular, it allows for an initializer to be executed if initialization is needed. This is used for allocating the initial segment. - Use lonely method for allocation API (abolish `lock`, which is no longer relevant due to the new model). - Due to an unsoundness discovered by @nilset, we remove the correctness guarantee of the "seperate deallocation" example. - Remove microcaches. This method is outdated with the new model. In the future, it will likely be replaced by a small-allocation LL arena. - Wrap TLS variables in a newtype that guarantees against crossthread leakage. - Update the tests.
show more ...
|
#
6e3426f3 |
| 18-Jul-2016 |
ticki <ticki@users.noreply.github.com> |
Improve testing suite, improve security, improve logging, global OOM handler, prepare for performance pass
This patch has the main intend of preparing for the performance pass, along with a set of o
Improve testing suite, improve security, improve logging, global OOM handler, prepare for performance pass
This patch has the main intend of preparing for the performance pass, along with a set of other changes:
- Add acid (generative) testing: Set up chaotic and unusual environment for testing, hopefully detecting edge case bugs. This includes doing allocation inbetween tests and setting up multiple threads for detecting data races.
- Fix casts: Unchecked casts can - in some cases - lead to security issues. In particular, you might be able to shrink the data segment of the process by resulting in overflowing casts.
- Global OOM handler: The OOM handler is no longer allocator-specific. This is due to a planned new model, where we utilize global-to-local allocators through thread-local storage.
- Use ranges instead of tuples: Ranges describes the behavior in a more precise manner, and furthermore it is non-affine, allowing for detection of certain logic bugs.
- Better logging: Now range cursors can be given, with the output syntax []. Cursors are defined through the Cursor trait.
- General style improvement: Various cleanups of Nilset's code (shame, shame, shame! jk)
- Replace certain cfg-flags with cfg-macros: This allows all-path-checking, e.g. erroring even when the flag isn't set.
- Make SBRK unsafe: Due to breakage when shrinking the segment, SBRK is now marked unsafe.
- Enable more clippy lints: These includes checking the castings and other things. Many false-positives are generated. These needs to be manually fixed by allow-attributes.
- Update the README: Just a bunch of new rambling onreview process etc.
- New tests: This includes many new tests including tests for very big allocations and partial allocations.
Fix #27.
show more ...
|
#
2443f0e4 |
| 14-Jul-2016 |
ticki <ticki@users.noreply.github.com> |
Move remove_at to Bookkeeper
|
#
9867d262 |
| 13-Jul-2016 |
Jeremy Soller <jackpot51@gmail.com> |
Merge pull request #26 from redox-os/shim
Shim
|
#
49840afd |
| 05-Jul-2016 |
Jeremy Soller <jackpot51@gmail.com> |
Add shim
|
#
4d363253 |
| 10-Jun-2016 |
ticki <ticki@users.noreply.github.com> |
Simple visual logging system
|
#
638e861b |
| 07-Jun-2016 |
ticki <ticki@users.noreply.github.com> |
Amend nilset's commit
|
#
146a5db9 |
| 06-Jun-2016 |
ticki <ticki@users.noreply.github.com> |
Add thread local allocators, BRK locks, platform independency, lock reuse, local allocators, more tests, abort-as-panic, additional benches, provide an Allocator struct, memleak detection, fix bugs r
Add thread local allocators, BRK locks, platform independency, lock reuse, local allocators, more tests, abort-as-panic, additional benches, provide an Allocator struct, memleak detection, fix bugs related to the is_empty function, micro caches (implemented, but not wired up), a prelude, allocator specific OOM handler, fix bound checks, Leak trait, fix bug in Mutex.
show more ...
|
#
bfa13247 |
| 20-Apr-2016 |
ticki <ticki@users.noreply.github.com> |
Fix bug making allocation occupied blocks possible, update documentation, fix certain arithmetic overflows, add mathematical reasoning on integer bounds
|
#
4ef79fdc |
| 19-Apr-2016 |
ticki <ticki@users.noreply.github.com> |
Remove libextra dependency
|