Chris Morgan  [Tue, 25 Jan 2022 08:24:06 +0000 ] 
 
Exclude unnecessary files from the package 
 
Chris Morgan  [Tue, 25 Jan 2022 08:22:24 +0000 ] 
 
Remove obsolete items from .gitignore 
 
Now the records are ancient. 
 
Chris Morgan  [Tue, 25 Jan 2022 08:22:06 +0000 ] 
 
Add a local testing script 
 
Chris Morgan  [Tue, 25 Jan 2022 08:21:15 +0000 ] 
 
Implement From, not Into 
 
Chris Morgan  [Tue, 25 Jan 2022 08:18:34 +0000 ] 
 
More documentation tweaks to clarify and explain 
 
Chris Morgan  [Tue, 25 Jan 2022 04:59:28 +0000 ] 
 
Drop anymap::Any in favour of std::any::Any 
 
Casualties: Any + Sync, CloneAny + Sync. Acceptable losses. 
 
Chris Morgan  [Tue, 25 Jan 2022 03:43:04 +0000 ] 
 
Flatten anymap::any out of existence 
 
Namespaces are one honking great idea, but flat is better than nested. 
 
anymap::raw still makes sense. 
 
Chris Morgan  [Tue, 25 Jan 2022 03:27:26 +0000 ] 
 
Tweak docs, especially around safety 
 
No semantic changes. 
 
Chris Morgan  [Tue, 25 Jan 2022 03:12:16 +0000 ] 
 
Make TypeIdHasher safe, bump MSRV 
 
Wait a few years and nice things stabilise! 
 
• u64::from_ne_bytes([u8; 8]) is stable in 1.32.0 
• TryFrom<&[u8]> for [u8; 8] is stable in 1.34.0 
 
(There are other things I’m touching today that also require a more mild 
MSRV bump, but this is the most I *need* at this time.) 
 
Chris Morgan  [Tue, 25 Jan 2022 02:48:23 +0000 ] 
 
Refactor to avoid a spurious compatibility warning 
 
Explained in the SAFETY comment. I’m not happy about *doing* this, but 
it will make *using* this crate easier, since future-compatibility lints 
make noise on bin crate builds, so this was polluting other people’s 
code and making life harder for users. 
 
I have traded one evil (a spurious warning) for another (unsafe code). 
 
Chris Morgan  [Tue, 25 Jan 2022 02:06:15 +0000 ] 
 
Unravel the parbroken define! macro 
 
Turns out its commenting technique was completely broken—the attributes 
have to be attached to an item *inside* the macro, not outside. And 
judging by https://docs.rs/anymap/0.11.0/anymap/any/trait.CloneAny.html, 
it was broken from the start, and I never noticed. Sigh. Now, you get a 
warning that it’s not going to work like you want. Good stuff. 
 
Well, that macro wasn’t a great idea anyway. Doing without it ends up a 
little longer, and risks inconsistent editing, but is decidedly easier 
to read. 
 
Chris Morgan  [Tue, 25 Jan 2022 01:57:35 +0000 ] 
 
No more bare trait objects: use `dyn Trait` syntax 
 
Chris Morgan  [Tue, 25 Jan 2022 01:56:30 +0000 ] 
 
Refresh Cargo.toml, README.md 
 
Remove superfluous things, update useful things. 
 
Chris Morgan  [Tue, 25 Jan 2022 01:40:30 +0000 ] 
 
Add the BlueOak-1.0.0 license
I prefer to use BlueOak-1.0.0 now; It wasn’t around back in 2017.
There are a number of commits in this repository not made by me, all
from before Rust 1.0.0:
• 
f1710353a039c1d5e95d15bb54effd7cab8e047f  (Robert Straw; trivial: matching std enum namespacing breakage)
• 
de091453093fb5139de71b085411d2fad1a52275  (Robert Straw; trivial: std enum namespacing breakage)
• 
2e37f0d1aebbd0c56acd0de7b46d14cd71d3e134  (Jonathan Reem; added AnyMap::contains, which had become obvious for Rust collection parity)
• 
8b30c87fe6cf514544d8bc68989631daac8aeec1  (tivek; trivial: Rust syntax change in integer literal inference)
• 
c9d196be5f40fb0c6e53c65fa072aea60de8c3f1  (Jonathan Reem; trivial: version bump)
• 
330bc5aa1e4b1644a19b3751ee3b65c849447005  (Jonathan Reem; not creative and largely no longer present: introduced Cargo support, tweaked Makefile)
• 
a9b1e31b7062e42248347805cbee662efe0eb713  (Tomas Sedovic; nigh-trivial and no longer present: Collection and Mutable trait implementations)
• 
eecc4a4b758ae743486cfe4254cefd136f829391  (Jonathan Reem; trivial: Rust syntax change)
• 
d51aff506409d7ffa2de275cd4e3029a88de1e2a  (Jonathan Reem; trivial: rustc lint change)
• 
56113c63b028e7d215f1c16cf90d9c5d902df477  (Jonathan Reem; trivial: Rust syntax change)
All but one of these are definitely trivial, obvious, and in the context
of the project and ecosystem not creative works (⅌ copyright doctrine
definition); or else no longer present. The one arguable exception is
2e37f0d1aebbd0c56acd0de7b46d14cd71d3e134 , adding AnyMap::contains, since
I hadn’t added a contains method; but its *definition* is trivial with
only one possible implementation, and subsequent to that time I did go
through and check for parity with HashMap methods, to say nothing of the
code having changed shape quite a bit since then too. Therefore I’m
content to consider it immaterial for relicensing.
 
 
Chris Morgan  [Tue, 25 Jan 2022 13:12:16 +0000 ] 
 
Revert "removed unsafe code in favor of explicit assert"
This reverts commit 
479d756c992af132c6ba45248c65dc230c5986cf .
There’s nothing wrong with this patch, but I had never pulled this
commit to my local repository and had completely forgotten about it, and
today removed the unsafe code in a *different* direction that I like
better (`bytes.try_into().map(|bytes| u64::from_ne_bytes(bytes))`), so
reverting it so I can cleanly rebase is just easier for me!
 
 
Chris Morgan  [Tue, 27 Nov 2018 01:47:11 +0000 ] 
 
Merge pull request #32 from hellow554/master 
 
removed unsafe code in favor of explicit assert 
 
Marcel Hellwig  [Tue, 13 Nov 2018 07:33:44 +0000 ] 
 
removed unsafe code in favor of explicit assert 
 
Chris Morgan  [Mon, 2 Oct 2017 03:32:51 +0000 ] 
 
Implement Default on Map 
 
It was implemented on RawMap, and I’m not sure quite why it wasn’t 
implemented on Map. I can’t think of any reason *not* to, though, so we 
might as well. 
 
Closes #30. Thanks to Maxwell Koo <mjkoo90@gmail.com> for the fix. 
 
Chris Morgan  [Mon, 23 Jan 2017 17:07:10 +0000 ] 
 
Add a note about unsafety. 
 
Chris Morgan  [Fri, 20 Jan 2017 16:03:45 +0000 ] 
 
Remove an obsolete note from the README 
 
Chris Morgan  [Fri, 20 Jan 2017 16:01:56 +0000 ] 
 
Remove the `bench` Cargo feature as superfluous 
 
A better pattern is to put benchmarks in the `benches` directory; 
that way, `cargo test` won’t pick them up by default, 
and so it won’t fail on the stable and beta channels. 
 
Chris Morgan  [Fri, 20 Jan 2017 15:58:07 +0000 ] 
 
Add a changelog. 
 
Chris Morgan  [Fri, 20 Jan 2017 15:55:44 +0000 ] 
 
Remove obsolete rust-ci docs uploading 
 
We use docs.rs these days. No manual work in it, either. Yay! 
 
Chris Morgan  [Fri, 20 Jan 2017 12:43:13 +0000 ] 
 
0.12.1 
 
Chris Morgan  [Fri, 20 Jan 2017 12:40:55 +0000 ] 
 
Make clippy happy. 
 
Chris Morgan  [Sat, 11 Jun 2016 03:30:33 +0000 ] 
 
Put in a bunch of #[inline] attributes on fns. 
 
Somewhere along the path I didn’t mark some functions as `#[inline]` 
which they should probably be. 
 
Small but visible benchmark improvements, but within ε so low 
confidence. 
 
Chris Morgan  [Sat, 11 Jun 2016 03:28:30 +0000 ] 
 
Reduce the work for rustc in the benchmarks. 
 
This *does* mean that they no longer function as tests, which was 
deliberate, but rustc is just too slow with the assertions in there as 
well. If I care, I can make variants of it that actually test. For now, 
I’m sufficiently happy with it. 
 
Chris Morgan  [Sat, 11 Jun 2016 00:46:30 +0000 ] 
 
Use raw pointers for downcasting, not TraitObject 
 
This mirrors a change in mopa. 
 
Chris Morgan  [Sat, 11 Jun 2016 00:06:13 +0000 ] 
 
Add more benchmarking 
 
Including a rustc/llvm pathalogical case. 
 
Chris Morgan  [Fri, 10 Jun 2016 23:30:24 +0000 ] 
 
Remove superfluous Clone bound on Entry methods. 
 
Thanks to @Kimundi for pointing this out. I presume (without checking) 
that they got added along with the CloneAny stuff by accident. 
 
Closes #26. 
 
Chris Morgan  [Fri, 10 Jun 2016 23:29:32 +0000 ] 
 
Remove now-unnecessary #[allow]s. 
 
Chris Morgan  [Mon, 18 Apr 2016 05:00:43 +0000 ] 
 
Make Clippy happy. 
 
Chris Morgan  [Sun, 6 Mar 2016 13:13:47 +0000 ] 
 
Keep Clippy happy. 
 
Chris Morgan  [Sun, 6 Mar 2016 13:11:37 +0000 ] 
 
Fix order of ptr::copy_nonoverlapping parameters. 
 
Clippy helped me spot this. It didn’t cause any bugs, just bad 
performance as all keys would hash to 0 and thus end up in the same 
bucket. 
 
Chris Morgan  [Sat, 5 Mar 2016 02:31:53 +0000 ] 
 
0.12.0 
 
Chris Morgan  [Sat, 5 Mar 2016 02:27:54 +0000 ] 
 
s/unstable/bench/ in travis config 
 
Chris Morgan  [Sat, 5 Mar 2016 02:13:19 +0000 ] 
 
Rename "unstable" feature to "bench". 
 
Benchmarking is the only thing that requires unstable Rust in the 
library any more. Yay! 
 
Chris Morgan  [Sat, 5 Mar 2016 01:58:49 +0000 ] 
 
Ungate drain iterator (stable in Rust 1.6.0). 
 
Chris Morgan  [Sat, 5 Mar 2016 01:58:19 +0000 ] 
 
Ungate efficient hashing (stable in Rust 1.7.0). 
 
Chris Morgan  [Fri, 22 Jan 2016 01:05:51 +0000 ] 
 
0.11.2: just fixing warnings and such. 
 
Chris Morgan  [Wed, 24 Jun 2015 00:08:58 +0000 ] 
 
0.11.1: Rust update for unstable. 
 
Chris Morgan  [Wed, 10 Jun 2015 09:26:32 +0000 ] 
 
Test Rust stable on Travis also. 
 
Chris Morgan  [Wed, 10 Jun 2015 09:26:10 +0000 ] 
 
Make tests work on beta/stable (benchmarks can’t work). 
 
Chris Morgan  [Tue, 9 Jun 2015 23:01:52 +0000 ] 
 
0.11.0: merge concurrency branch. 
 
Chris Morgan  [Tue, 9 Jun 2015 22:59:47 +0000 ] 
 
Rename 'nightly' feature to 'unstable'. 
 
Chris Morgan  [Sat, 25 Apr 2015 09:28:12 +0000 ] 
 
Implement Debug for Map and RawMap. 
 
Chris Morgan  [Sat, 25 Apr 2015 04:01:01 +0000 ] 
 
Replace Cargo features with arcane DST magicks. 
 
(It was a toss-up between “arcane” and “eldritch” there; “arcane” won 
this time. “Eldritch”, maybe you can be it next time.) 
 
Chris Morgan  [Sat, 18 Apr 2015 06:13:58 +0000 ] 
 
Implement stuff for concurrency. 
 
This took some refactoring too for best effect. 
 
Chris Morgan  [Sat, 18 Apr 2015 00:44:34 +0000 ] 
 
0.10.3: Rust beta support 
 
This is accomplished at a certain loss of efficiency, sadly. 
 
Add the 'nightly' feature to get things back how they were. 
 
Chris Morgan  [Wed, 15 Apr 2015 04:16:10 +0000 ] 
 
0.10.2: Rust update for clone feature 
 
Chris Morgan  [Tue, 14 Apr 2015 00:37:44 +0000 ] 
 
0.10.1: Rust update 
 
Chris Morgan  [Fri, 27 Mar 2015 00:05:12 +0000 ] 
 
0.10.0: move Clone functionality into a feature. 
 
No more separate Git branch for it; Cargo features fit the bill well. 
 
Chris Morgan  [Wed, 25 Mar 2015 23:28:57 +0000 ] 
 
0.9.13 
 
Chris Morgan  [Wed, 25 Mar 2015 22:46:51 +0000 ] 
 
Use std::convert for AnyMap -> RawAnyMap. 
 
Chris Morgan  [Wed, 25 Mar 2015 06:59:11 +0000 ] 
 
Rust update. 
 
Chris Morgan  [Tue, 24 Mar 2015 02:42:01 +0000 ] 
 
Substantial refactoring, exposing a raw interface. 
 
This is not necessarily the final form, but I think it’s pretty good. 
The only alteration to the public interface is the removal of the 
iteration methods from `AnyMap`; they are now attached to `RawAnyMap`. 
 
The diff appears considerably more scary than it is in actual fact due 
to some comparatively unnecessary changes like the field name (from 
`data` to `raw`). Really, it’s minimal. 
 
Chris Morgan  [Sat, 21 Mar 2015 05:29:01 +0000 ] 
 
Remove plenty of unnecessary 'statics. 
 
Chris Morgan  [Sat, 21 Mar 2015 05:03:25 +0000 ] 
 
Slight Rust update. 
 
Chris Morgan  [Thu, 12 Mar 2015 11:58:20 +0000 ] 
 
Remove unused stability markers. 
 
Chris Morgan  [Mon, 2 Mar 2015 12:40:27 +0000 ] 
 
0.9.12: Rust update 
 
Chris Morgan  [Tue, 24 Feb 2015 00:59:02 +0000 ] 
 
0.9.11: Rust update 
 
Chris Morgan  [Wed, 4 Feb 2015 03:45:19 +0000 ] 
 
0.9.10: Rust update 
 
Chris Morgan  [Wed, 21 Jan 2015 05:17:18 +0000 ] 
 
0.9.9: Rust update 
 
Chris Morgan  [Fri, 9 Jan 2015 01:34:33 +0000 ] 
 
0.9.8: Rust update 
 
Chris Morgan  [Tue, 6 Jan 2015 13:39:06 +0000 ] 
 
0.9.7: parity with the collections API 
 
There’s some Rust updating here too. 
 
This entails the addition of various methods and iterator types where 
appropriate, based on what’s on `HashMap`, though I doubt that people 
will actually be able to make all that much use of the iterators. They’d 
be of more use with a basis of a trait other than `Any`, such as might 
be conveniently achieved by combining this with my MOPA crate. 
(Getting a little close to HKT there, innit?) 
 
You know, I wonder sometimes if anyone ever reads these messages after 
they are written, myself included. If you have read this, please drop me 
a note; I’m curious. 
 
I’ve also gone over all the stability attributes, marking things as 
appropriate. 
 
Chris Morgan  [Sat, 3 Jan 2015 08:29:37 +0000 ] 
 
0.9.6 
 
Changed the deprecated `#[deriving(…)]` to `#[derive(…)]`. 
 
(Why not 0.9.5? I messed up, publishing the `clone` branch as 0.9.5.) 
 
Chris Morgan  [Tue, 23 Dec 2014 04:23:23 +0000 ] 
 
0.9.4 
 
Chris Morgan  [Tue, 23 Dec 2014 02:14:02 +0000 ] 
 
Merge pull request #14 from drbawb/feature/namespaced-enums 
 
Use namespaced enum variants for HashMap `Entry`s 
 
Robert Straw  [Mon, 22 Dec 2014 20:33:28 +0000 ] 
 
Do not re-export the `Entry` enum ... 
 
A minor [breaking-change] as downstream users will have to import the variants 
themselves, or prefix the variant with the Entry enum's namespace. 
 
Robert Straw  [Mon, 22 Dec 2014 15:33:25 +0000 ] 
 
Use namespaced enum variants for the map-entry slots. 
 
Chris Morgan  [Wed, 17 Dec 2014 02:48:09 +0000 ] 
 
0.9.3 
 
Chris Morgan  [Wed, 17 Dec 2014 02:44:25 +0000 ] 
 
Fix a slightly erroneous comment. 
 
Chris Morgan  [Wed, 17 Dec 2014 02:29:49 +0000 ] 
 
Rust update. 
 
Chris Morgan  [Wed, 10 Dec 2014 06:51:48 +0000 ] 
 
tuple_indexing is no longer gated! Yay! 
 
Chris Morgan  [Fri, 28 Nov 2014 06:18:16 +0000 ] 
 
Update metadata, 0.9.2. 
 
Chris Morgan  [Fri, 28 Nov 2014 05:51:35 +0000 ] 
 
Rust update. 
 
Chris Morgan  [Wed, 19 Nov 2014 11:16:46 +0000 ] 
 
Bump version to 0.9.1. 
 
Chris Morgan  [Wed, 19 Nov 2014 11:15:48 +0000 ] 
 
Implement AnyMap.entry(). 
 
Chris Morgan  [Fri, 7 Nov 2014 23:24:37 +0000 ] 
 
Rust update. 
 
This includes following the standard new semantics for `insert` and 
`remove`, where they return any value that was previously present, and 
renaming `find` and `find_mut` to `get` and `get_mut`. For the moment, 
I’ve even provided a deprecation path! Will wonders ever cease? 
 
Chris Morgan  [Fri, 7 Nov 2014 23:09:21 +0000 ] 
 
Make trait bounds more explicit. 
 
Chris Morgan  [Fri, 7 Nov 2014 05:52:26 +0000 ] 
 
Can I diagnose the problem with Rust CI? 
 
Chris Morgan  [Fri, 7 Nov 2014 05:45:12 +0000 ] 
 
Drop the Makefile in favour of Cargo. 
 
Chris Morgan  [Fri, 7 Nov 2014 05:43:48 +0000 ] 
 
Rust syntax update in README. 
 
Chris Morgan  [Fri, 7 Nov 2014 05:37:06 +0000 ] 
 
Get a new Rust CI token. 
 
(Doc uploading doesn't seem to be working.) 
 
Chris Morgan  [Fri, 7 Nov 2014 05:26:12 +0000 ] 
 
Elide superfluous lifetimes. 
 
Chris Morgan  [Sun, 2 Nov 2014 10:45:52 +0000 ] 
 
Rust update. 
 
Chris Morgan  [Mon, 6 Oct 2014 05:39:35 +0000 ] 
 
Remove obsolete managed_heap_memory lint warning. 
 
Chris Morgan  [Sun, 28 Sep 2014 22:58:51 +0000 ] 
 
Make Travis use its own Rust support and cargo. 
 
Chris Morgan  [Sun, 28 Sep 2014 22:58:08 +0000 ] 
 
Replace a deprecated method call. 
 
Chris Morgan  [Mon, 15 Sep 2014 20:32:57 +0000 ] 
 
Add now-necessary lifetime bounds. 
 
Chris Morgan  [Sat, 23 Aug 2014 02:12:54 +0000 ] 
 
Ignore Cargo.lock (this is a library). 
 
Chris Morgan  [Sat, 23 Aug 2014 02:12:09 +0000 ] 
 
Update Cargo.toml for current conventions. 
 
Chris Morgan  [Thu, 14 Aug 2014 07:41:46 +0000 ] 
 
Merge pull request #9 from reem/contains 
 
Add contains method for checking if a type is already in the map. 
 
Jonathan Reem  [Thu, 14 Aug 2014 04:01:19 +0000 ] 
 
Add contains method for checking if a type is already in the map. 
 
Chris Morgan  [Thu, 10 Jul 2014 08:11:53 +0000 ] 
 
Update for upstream changes. 
 
Also change from rlib/dylib to lib (dylib is not necessary and 
complicates matters in this new rpath-free world). 
 
Chris Morgan  [Mon, 21 Jul 2014 01:50:04 +0000 ] 
 
Merge pull request #6 from tivek/patch-1 
 
Fix int type inference in range calls 
 
tivek  [Sat, 19 Jul 2014 09:32:17 +0000 ] 
 
Fix int type inference in range calls 
 
Chris Morgan  [Thu, 3 Jul 2014 02:49:05 +0000 ] 
 
Merge pull request #5 from reem/cargo 
 
Add Cargo Support 
 
Jonathan Reem  [Wed, 2 Jul 2014 16:57:03 +0000 ] 
 
Updated versions to 0.9.0. 
 
Jonathan Reem  [Wed, 25 Jun 2014 04:44:35 +0000 ] 
 
Enabled Cargo and moved Makefile to use target.