-
-
Notifications
You must be signed in to change notification settings - Fork 133
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rewrite Project #599
Rewrite Project #599
Conversation
to make things easier while the rewrite is taking place.
Changes taken from #594 Co-authored-by: Bafbi <Bafbi@users.noreply.github.com>
Fixed some bugs and added proper default values for fields. Partially adapted from #571. Co-authored-by: SelfMadeSystem <sms@shoghisimon.cc>
Given that you are making a bunch of changes and performance is important, have you considered adding benching to CI? I feel like I have seen Rust projects that have good performance regression detection in CI, but I might need to do a bit of searching. This would be nice because performance would be repeatable (hopefully!) unlike
|
@andrewgazelka I'm open to the idea, but it seems like a lot of work to do it correctly. For starters we would need dedicated CI runners and a decent suite of benches. Definitely something to think about after the rewrite is finished. |
The |
That makes sense. Why would you need dedicated CI runners, though? Do you think performance would not be predictable using the default CI runners, which run in a VM on the same machine as other runners? |
If consistent environments are available (e.g. on your own machine), it may be worth it to use a microbenchmarking crate like criterion to check for performance regressions. |
Closing this since I'm not happy with the direction this was going and it's too much to do in one PR anyway. |
Rewrite the project from the ground up. Closes #596
Steps
java_string
.valence_nbt
to support redesign ofvalence_protocol
.valence_generated
.valence_protocol
and update to 1.20.4.McRead
andMcWrite
traits similar toPacketByteBuf
in vanilla.valence_generated
,bevy_ecs
,valence_math
.valence_text
andvalence_ident
intovalence_protocol
since we don't havevalence_generated
anymore.valence_protocol
so the inspector can access all packets programmatically.bevy_ecs
withevenio
. Use event driven design described in Rewrite the project withevenio
#596.monoio
+ureq
on Linux and MacOS,tokio
everywhere else.glam
,vek
,ultraviolet
, something else?)valence_anvil
(or leave that for follow up?)