Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

feat: ecsact codegen plugin for optimization #56

Merged
merged 1 commit into from
Mar 27, 2024
Merged

feat: ecsact codegen plugin for optimization #56

merged 1 commit into from
Mar 27, 2024

Conversation

zaucy
Copy link
Member

@zaucy zaucy commented Apr 28, 2023

No description provided.

@cocogitto-bot
Copy link

cocogitto-bot bot commented Oct 26, 2023

❌ Found 14 compliant commit and 3 non-compliant commits in b8cecbe.

Commit 039dbfb by @Kelwan is not conform to the conventional commit specification :

  • message: finish context_add, beginning work on dynamic library calls
  • cause:
    Missing commit type separator `:`
    
    Caused by:
         --> 1:7
          |
        1 | finish context_add, beginning work on dynamic library calls
          |       ^---
          |
          = expected scope or type_separator
    

Commit 6798356 by @Kelwan is not conform to the conventional commit specification :

  • message: Fix some line endings
  • cause:
    Missing commit type separator `:`
    
    Caused by:
         --> 1:4
          |
        1 | Fix some line endings
          |    ^---
          |
          = expected scope or type_separator
    

Commit 631ca1e by @Kelwan is not conform to the conventional commit specification :

  • message: All context implentations done. Adding markers then moving to testing
  • cause:
    Missing commit type separator `:`
    
    Caused by:
         --> 1:4
          |
        1 | All context implentations done. Adding markers then moving to testing
          |    ^---
          |
          = expected scope or type_separator
    

@Kelwan Kelwan marked this pull request as ready for review October 26, 2023 23:01
Copy link
Member Author

@zaucy zaucy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just a few small changes. I haven't fully read it yet. I'll need to run it locally and see the codegen.

One thing I noticed is we're not 'preparing' any of the storages on create registry. We need to do that because otherwise EnTT will generate storage on the fly. This could cause an issue if we run anything in parallel or access storage part way through an iteration conditionally.

you can prepare a storage by simply doing registry.storage<T>(); and assign it to no variable. Simply calling storage "prepares" it. We should do that in ecsact_create_registry.

In the old code it was in init_registry. As you can see it's 'preparing' each storage ahead of time. It gets called when a registry is created and when it's cleared.

ecsact/entt/detail/globals.hh Outdated Show resolved Hide resolved
ecsact/entt/detail/globals.hh Outdated Show resolved Hide resolved
ecsact/entt/wrapper/dynamic.hh Show resolved Hide resolved
- Removed metaprogramming to reduce compile times
- Ecsact file details are now code generated
@Kelwan Kelwan merged commit 39e3c5f into main Mar 27, 2024
3 checks passed
@Kelwan Kelwan deleted the feat/codegen branch March 27, 2024 20:41
zaucy added a commit that referenced this pull request Mar 27, 2024
Co-authored-by: Kelwan <austin@kelway.ca>
@zaucy zaucy mentioned this pull request Jul 3, 2024
4 tasks
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
No open projects
Status: Done
Development

Successfully merging this pull request may close these issues.

2 participants