Maybe Waffle
5571dd061d
fix broken intradoclinks
2023-04-14 13:04:58 +00:00
Maybe Waffle
014c6f208e
Use ptr::Alignment
for extra coolness points
2023-04-14 12:31:49 +00:00
Maybe Waffle
36f5918bf1
Test CopyTaggedPtr
's HashStable
impl
2023-04-14 11:59:53 +00:00
Maybe Waffle
251f662e4d
Share Tag2
impl between CopyTaggedPtr
and TaggedPtr
tests
2023-04-14 11:24:22 +00:00
Maybe Waffle
8d49e948a8
Doc fixes from review
2023-04-14 11:24:22 +00:00
Maybe Waffle
c155d5149f
Implement Send
/Sync
for CopyTaggedPtr
2023-04-13 16:51:04 +00:00
Maybe Waffle
dc19dc29c9
doc fixes
2023-04-12 19:00:27 +00:00
Maybe Waffle
838c5491a4
Document tagged pointers better
2023-04-12 16:22:20 +00:00
Maybe Waffle
6f9b15c40c
Add tests for tagged pointers
2023-04-12 16:20:34 +00:00
Maybe Waffle
5e4577ec65
Add TaggedPtr::set_tag
2023-04-12 12:35:43 +00:00
Maybe Waffle
6f64ae3fbc
Move code around
2023-04-12 11:50:45 +00:00
Maybe Waffle
3df9a7bde3
Shorten COMPARE_PACKED
=> CP
where it is not important
...
why can't I _ it :'(
2023-04-12 11:44:52 +00:00
Maybe Waffle
8f408202c3
Remove pointer_{ref,mut}
from tagged pointers
...
Just use `deref{,_mut}`!
2023-04-12 11:41:41 +00:00
Maybe Waffle
c7c0b85f67
Make tagged pointers debug impls print the pointer
...
Does not really matter, but may be nicer in case
the pointer has some specific debug impl.
2023-04-12 11:30:45 +00:00
Maybe Waffle
c6acd5c92f
Remove Pointer::with_ref
in favour implementing it on tagged pointers directly
2023-04-12 11:26:34 +00:00
Maybe Waffle
9051331dd7
Lift Pointer
's requirement for the pointer to be thin
...
fat pointers rule!
2023-04-12 11:00:35 +00:00
Maybe Waffle
26232f1ff5
Remove useless parameter from ghost
2023-04-12 10:34:29 +00:00
Maybe Waffle
ad92677008
Fix doc test
2023-04-11 21:45:19 +00:00
Maybe Waffle
12fd610e01
Refactor tagged ptr packing into a function
2023-04-11 21:40:39 +00:00
Maybe Waffle
3c6f4c1260
Bless tagged pointers (comply to strict provenance)
2023-04-11 21:31:23 +00:00
Maybe Waffle
f028636b1a
Sprinkle some whitespace & uses
2023-04-11 19:33:33 +00:00
Maybe Waffle
c738dcc284
Add bits_for
helper for tagged pointers & fixup docs
2023-04-11 19:18:59 +00:00
Maybe Waffle
a32959263c
Use SSO_ARRAY_SIZE
instead of 8
in SsoHashMap
impl
2023-04-11 11:02:01 +00:00
Maybe Waffle
0465201f77
Use itertools::Either
instead of own EitherIter
impl
2023-04-11 11:02:01 +00:00
Nilstrieb
73417b1e15
Inline format_args
...
Co-authored-by: Michael Goulet <michael@errs.io>
2023-04-09 23:29:39 +02:00
Nilstrieb
81c320ea77
Fix some clippy::complexity
2023-04-09 23:22:14 +02:00
Nilstrieb
0a0968b207
Allow modulo_one
on function using cfg consts
2023-04-09 22:30:24 +02:00
Nilstrieb
f058d05fc2
Some simple clippy::perf
fixes
2023-04-09 21:59:28 +02:00
bors
0f0dc29264
Auto merge of #109971 - WaffleLapkin:yeet_ownership, r=Nilstrieb
...
Yeet `owning_ref`
Based on the discussions from https://github.com/rust-lang/rust/pull/109948
This replaces `owning_ref` with a far simpler & safer abstraction.
Fixes #109974
2023-04-08 01:08:26 +00:00
Maybe Waffle
fbe0591c68
Mark OwnedSlice::{deref, borrow}
as #[inline]
2023-04-07 10:14:50 +00:00
Maybe Waffle
2733c29bb1
Support multithreaded mode in OwnedSlice
tests
2023-04-06 18:13:07 +00:00
Maybe Waffle
e0e39caf84
Add basic tests for OwnedSlice
2023-04-06 17:33:55 +00:00
Maybe Waffle
b6970d0e26
Use FnOnce
for slice_owned
instead of Fn
2023-04-06 17:03:42 +00:00
Nilstrieb
504c4c40e9
Add context to phantom comment
2023-04-05 18:55:55 +02:00
Thom Chiovoloni
9d314627aa
Fix a couple missed hash constants
2023-04-05 15:48:37 +00:00
Thom Chiovoloni
bb0969cae0
Use SipHash-1-3 instead of SipHash-2-4 for StableHasher
2023-04-05 15:48:37 +00:00
Maybe Waffle
9405f586f5
Fix typo
2023-04-05 13:49:48 +00:00
Maybe Waffle
d7056548f9
Yeet owning_ref
...
Turns out
- `owning_ref` is unsound due to `Box` aliasing stuff
- `rustc` doesn't need 99% of the `owning_ref` API
- `rustc` can use a far simpler abstraction that is `OwnedSlice`
2023-04-05 13:49:48 +00:00
Maybe Waffle
c0ceefdfaf
Use OwnedSlice
instead of owning_ref
2023-04-05 13:49:48 +00:00
Maybe Waffle
689beda166
Implement OwnedSlice
2023-04-05 13:49:48 +00:00
Oli Scherer
457a162d00
Use elsa =1.7.1 as 1.8.0 was an accidental copy of 1.7.0
2023-04-05 08:07:29 +00:00
Oli Scherer
54214c8d8d
Use a simpler atomic operation than the compare_exchange
hammer
2023-04-04 09:01:44 +00:00
Oli Scherer
a1d20cf7a2
Another AppendOnlyVec
2023-04-04 09:01:44 +00:00
Oli Scherer
7edd1d8799
Replace another lock with an append-only vec
2023-04-04 09:01:44 +00:00
Oli Scherer
4699632637
Remove a lock in favor of an AppendOnlyVec
2023-04-04 09:01:44 +00:00
Oli Scherer
daee746771
Add a usize-indexed append-only-vec
2023-04-04 09:01:44 +00:00
Oli Scherer
aad33198ff
Remove a fishy Clone impl
2023-04-04 09:01:44 +00:00
Scott McMurray
a2ee7592d6
Use &IndexSlice
instead of &IndexVec
where possible
...
All the same reasons as for `[T]`: more general, less pointer chasing, and `&mut IndexSlice` emphasizes that it doesn't change *length*.
2023-04-02 17:35:37 -07:00
Michael Goulet
249198c1f8
Rollup merge of #109758 - nnethercote:parallel-cleanups, r=cjgillot
...
Parallel compiler cleanups
A few small improvements I found while looking closely at this code.
r? `@cjgillot`
cc `@Zoxc,` `@SparrowLii`
2023-03-30 12:42:21 -07:00
Nicholas Nethercote
44bfb6538e
CacheAligned
and Sharded
don't need to derive Clone
.
2023-03-30 21:14:43 +11:00