Commit graph

2200 commits

Author SHA1 Message Date
Gwilym Inzani bb5bd04b5f Make clear faster 2023-05-10 18:13:32 +01:00
Gwilym Inzani 943fd1154f Use const fn to make resizes a bit faster 2023-05-10 18:08:39 +01:00
Gwilym Inzani 65dd1341e5 Change hash mixing and add distance_histogram method 2023-05-10 17:49:48 +01:00
Gwilym Inzani 1fa4d8e970 Rename the tests to make them easier to compare 2023-05-10 16:20:58 +01:00
Gwilym Inzani 626e4da8e4 Massively improve high bit benchmarks with some bit mixing 2023-05-10 16:14:04 +01:00
Gwilym Inzani 82855ac66b Remove unsafe from clone 2023-05-10 16:02:21 +01:00
Gwilym Inzani 925baced46 Use backing_vec_size rather than nodes.len() 2023-05-10 16:01:24 +01:00
Gwilym Inzani c5341cb5fa Add benchmarks 2023-05-10 16:01:16 +01:00
Gwilym Inzani 7873f9ed5c More unsafe where needed 2023-05-09 22:43:06 +01:00
Gwilym Inzani f530276638 Use a concrete type for hash 2023-05-09 22:38:04 +01:00
Gwilym Inzani 7b8ad58906 Extend clippy lints 2023-05-09 22:10:53 +01:00
Gwilym Inzani 05f387e41f Don't do unsafe things with entries 2023-05-09 22:00:13 +01:00
Gwilym Inzani 722deafc2f Add safety comments 2023-05-09 21:55:14 +01:00
Gwilym Inzani 35061ffb6a deny(unreachable_pub) 2023-05-09 21:46:57 +01:00
Gwilym Inzani 68e68386a1 Improve implementation of next 2023-05-09 21:44:14 +01:00
Gwilym Inzani b3e56e88f2 Use ? rather than if let 2023-05-09 21:39:35 +01:00
Gwilym Inzani 9205ba1d0d Simplify get_mut implementation 2023-05-09 21:37:52 +01:00
Gwilym Inzani 917163f88b Key value ref unchecked 2023-05-09 21:37:20 +01:00
Gwilym Inzani dc8589479e We know the location is correct here 2023-05-09 21:34:16 +01:00
Gwilym Inzani 4d4ca80004 Add a bit of unsafe in the entry API 2023-05-09 21:33:20 +01:00
Gwilym Inzani 6f1f7811e2 Copy standard library tests 2023-05-09 21:12:28 +01:00
Gwilym Inzani f34f42ab4c Implement debug 2023-05-09 21:12:22 +01:00
Gwilym Inzani e9f6120b4c Implement Eq and PartialEq 2023-05-09 21:09:44 +01:00
Gwilym Inzani 5decb42cf0 Implement clone for hashmap 2023-05-09 21:05:00 +01:00
Gwilym Inzani 1cdf23683a Extract node_storage as well 2023-05-09 20:57:33 +01:00
Gwilym Inzani 5e04e8c03f Extract node module 2023-05-09 20:43:23 +01:00
Corwin a0ead37eb5
Add amplitude to build (#424)
- [x] no changelog update needed
2023-04-26 01:45:19 +01:00
Corwin 5f745d9409
Combo: Launch the correct game (#423)
- [x] no changelog update needed
2023-04-26 01:41:14 +01:00
Corwin ea0149e6c3
add amplitude to build 2023-04-26 01:37:37 +01:00
Corwin d08500d9c3
launch the correct game 2023-04-26 01:34:25 +01:00
Corwin 400abe5b31
Release v0.15.0 2023-04-25 21:51:29 +01:00
Corwin b5d8201eb0
Add toolchain file for hashmap (#422)
- [x] no changelog update needed
2023-04-25 21:49:52 +01:00
Corwin febee09e3a
add toolchain file 2023-04-25 21:43:17 +01:00
Corwin 68e981f3c8
Objects, again, again (#402)
* A redesign of objects giving the option of a more managed and an
unmanaged system.
* Managed system features
    * Z ordering (should be efficient, based on a doubly linked list).
* More than 128 objects if some are disabled (not currently efficient).
* Unmanaged
    * Same sprite system as before.
    * You control how objects get put in to OAM with the unmanaged OAM.
    
TODO before this is mergable:
* [x] Docs pass, aim for everything to have docs as before.
* [x] Tests, some of these needs some run time testing.
* [x] Affine matrices, I'm not leaving this to die this time.
* [x] Some API redo, so the names make sense / are similar to before.

Future work:
* The Sprite loader should keep most recently used sprites around and
upon allocation of a new sprite try unloading the least recently used
sprite. (Performance wise this would be a disaster as it would be doing
dealloc and alloc in vblank, so really we want to "learn" how much
buffer we should maintain and try to get that during GC).

- [x] Changelog updated
2023-04-25 21:14:49 +01:00
Corwin 409798c3bf
use fancy way of getting and setting slots 2023-04-25 21:07:31 +01:00
Corwin 929eef1569
add deny 2023-04-25 21:01:04 +01:00
Corwin d54560f362
fix warnings 2023-04-25 21:00:26 +01:00
Corwin 4ea75bc064
add amplitude to combo rom 2023-04-25 20:57:18 +01:00
Corwin 9dc3f46209
Make test runner sounder (#421)
- [x] no changelog update needed
2023-04-25 20:44:05 +01:00
Corwin d44461610d
go back to tab spacing 2023-04-25 20:39:25 +01:00
Corwin 1eadd5bdf7
make it sounder 2023-04-25 20:34:47 +01:00
Gwilym Inzani d45486b189
Maybe make the build faster by using the same settings for all crates (#420)
Just creating a PR so I can time the CI

- [x] Changelog updated / no changelog update needed
2023-04-25 20:32:53 +01:00
Corwin e78a6624ff
add amplitude 2023-04-25 20:32:28 +01:00
Gwilym Inzani 9835f81b5f Maybe make the build faster by using the same settings for all crates 2023-04-25 20:22:44 +01:00
Gwilym Inzani 3747d6192a
Ensure mod tests is at the end (#419)
Fixes build failure

- [x] Changelog updated / no changelog update needed
2023-04-25 20:17:13 +01:00
Gwilym Inzani 8e152f05c9 Ensure mod tests is at the end 2023-04-25 20:06:52 +01:00
Corwin 3ec9bd2610
Merge remote-tracking branch 'upstream/master' into new-objects 2023-04-23 20:44:46 +01:00
Corwin 8ab539acbb
add changelog entries 2023-04-23 20:43:09 +01:00
Corwin 94a8e2d4c3
add deprecation for old names 2023-04-23 20:41:42 +01:00
Gwilym Inzani 6355ac0df7
Extract agb hashmap (#418)
Pulls out the hashmap to its own crate. Allows us to use this in interop
code between agb and desktop code and also gives us the ability to run
miri on it to make sure we're not running into any crazy unsoundness
bugs.

- [x] Changelog updated / no changelog update needed
2023-04-23 19:25:33 +01:00