FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

November 29th -- Slow accretion of features

 
Post new topic   Reply to topic     Forum Index -> MiniD
View previous topic :: View next topic  
Author Message
JarrettBillingsley



Joined: 20 Jun 2006
Posts: 457
Location: Pennsylvania!

PostPosted: Wed Nov 29, 2006 9:38 pm    Post subject: November 29th -- Slow accretion of features Reply with quote

Sorry, these past couple of weeks have been a bit crazy. I had two major projects due right before Thanksgiving break, and .. then I had Thanksgiving break. So I'm just now getting back into the swing of development.

What's new:

Changed
  • ASCII is no longer supported by the compiler as a separate encoding. The compiler will now default to UTF-8 if it finds no BOM, which will work for ASCII-encoded files.
  • minid.types.vformat's vararg parameter changed to va_list for compatibility with GDC.


Added
  • The compiler will now ignore the first line if it starts with the shebang ("#!") characters, for ease of use of MiniD as a a scripting language. The compiler is kind of picky about the formation of it, but it's allowed to be, because the length operator can't come at the beginning of an expression anyway.
  • There is now an implicit global, _G, in every global table which references the global table itself. So accessing a global foo and accessing _G.foo will access the same value. This is useful for seeing what globals are defined, or accessing globals by programmatically generated names, etc.
  • Tail calls have been added. When you write a statement of the form
    Code:
    return functioncall()

    It is translated into a tail call. What this does is takes advantage of the fact that the calling function is returning to avoid increasing the call stack depth. Because of this, you can have recursive functions which recurse very deeply (practically infinitely) with no risk of a call stack overflow.
  • Added dsss.conf to the repo for compatibility with Gregor's DSSS.


Yes, tail calls have been implemented! They were, as I thought, easy on the compiler side, and very, very tricky on the interpreter side. It required a bit of refactoring, but in the end I think it's worth it.

And yes -- MDCL has been updated to this code as well.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic     Forum Index -> MiniD All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group