Comments (4)
Yes, definitely. Since I have your ear, I'd like to do a more comprehensive review of error handling. Today the API asserts when there is an error, and you get the file + line where the assert happened. Often that is sort of useful, but you don't really know where the error happened in your app code.
I'd like to move the actual assert to a macro that wraps the API, so that the assert reports the location in the application code, not in the library. That could make it much easier to debug things, as I don't need another tool to obtain the stack trace to see where it happened. Additionally, if you would use the "unwrapped" API, you'd have an API that never asserts, so you kind of have the best of both worlds.
Anyway, that's just an idea I thought would make life a little bit easer. Curious to hear what people think.
from flecs.
- I find the macro name βassertβ suspicious for the mentioned use case.
- I suggest to reconsider the wrapping imaginations.
How do you think about to improve static source code analysis also for this software?
- Are you interested to apply aspect-oriented software development?
- Would you like to encapsulate error detection and corresponding exception handling as a reusable aspect in this software?
from flecs.
@elfring Ok, I will reconsider that. For now, I will stick with the current approach, and address the issues you identified.
from flecs.
I added a more complete description of error handling here: https://github.com/SanderMertens/flecs/blob/master/Manual.md
from flecs.
Related Issues (20)
- ecs_entity_init with empty separator fails when entity with that name already exists HOT 1
- Fatal errors when trying to integrate into Emscripten project HOT 3
- Bug: add enum to entity with existing components causes component data to change HOT 1
- Excessive Entities Registered During Enum Constant Registration on MSVC Compiler HOT 6
- ecs_world_to_json doesn't serialize component values HOT 2
- Infinite recursion when adding component with cyclic `With` relationship HOT 1
- Query DSL - ECS_SYSTEM : [out] pair in empty entity with Sync Point HOT 1
- Emscripten to JS library? HOT 2
- The strings.flecs example shows error in the explorer HOT 1
- Abnormal CPU rise when observer HOT 3
- memory and cpu abnormal raise when use complex relations HOT 2
- INTERNAL_ERROR when call children() HOT 2
- Clone entity with name cause internal error HOT 2
- Pair id gives error when deserialized from json HOT 1
- Add a proper data validation and hints API to the meta addon HOT 8
- Crash On flecs_defer_end HOT 5
- Correct way to manually specify entity ids HOT 2
- Assignment within conditional expression error HOT 1
- When deleting an entity, the next created entity gets a bad ID (FLECS 3.2.9) HOT 1
- observer loss event HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from flecs.