Jump to content
  • entries
  • comments
  • views

Om rewrite #4

Sign in to follow this  


Quick post from phone.

Have decided to restart Om from scratch again. Too much unexpected things have made the current implementation feel icky. Mainly the running of object destructors but sure there are other things too.

Issues to consider from day one on this iteration are:

* decrementing a reference can run code in the current execution context
* said code can cause errors
* want to be able to precompile a module and load from a stored binary representation
* objects and arrays to be merged. Int access is array, string or dot access is object, so the entity will contain both an ID map and a vector. Tiny size cost if not used in exchange for simplification
* overhead of Om::Value to be entirely removed from internals and constructed at API boundaries
* remove all explicit support for global values. Means some things might not be intuitatuve in module writing, but can be worked round and encourages design avoiding global state

Am currently rewriting pod_vector to use two pointers for front and back, instead of a pointer and an index so that back() requires no index addition, as used often as the stack structure. This approach keeps cost of push_back() and pop_back() same as before while improving back() performance. Maybe irrelevant but may as well.

Will be approaching in a different order this time, getting minimum in place in compiler and VM to create objects with destructors, so that tricky business of this written in minimal existing context and everything else built upon that.

Hate typing on this bloody phone :)
Sign in to follow this  


Recommended Comments

There are no comments to display.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!