Quick update

I’ve been pushing off writing the update for some time, being both too busy to finish my implementation and plagued with issues with the code as it is right now. In an effort to move me forward, I will write a note that I hope will motivate me to action.

I am very close to completing a large re-organisation of the codebase. I think the only major outstanding bug is that my call stack is being corrupted somehow. From inspection of the code, a function should remove all its arguments and push its result, but somewhere (1 place in particular) this isn’t occuring. While debugging it, I decided that this might be a good opportunity to throw together a quick debugger for my new language, but currently only implemented at the Interpreter “byte code” level. It allows me to step through, and over code, to inspect variables and to examine the contents of the stack. This gives the advantage that I can skip large bodies of C++ which have nothing to do with the problem when it is a “high level” issue, rather than a bad pointer or something.

On the subject of bad pointers, I fixed a bug with my variable class. Apparently my assignment operator made the assumption that the old and new objects shared the same type. Obviously, some serious pointer corruption issues occur when calling delete on standard library objects throught the wrong type. I really can’t believe that I missed that.

Since I am finished working tomorrow, I should have more time to get this thing working. I have some ideas once I get to that stage to start doing some things in this langauge that aren’t in LISP (AFAIK, the poor language has how many illegitimate children?).

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: