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

August 1st -- MiniD 1.0 Released!!

 
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: Tue Jul 31, 2007 11:32 pm    Post subject: August 1st -- MiniD 1.0 Released!! Reply with quote

It's here!

Added/Removed
  • Added the ability to use native functions as coroutine bodies. The native API for writing a coroutine is no more difficult than writing a coroutine in MiniD -- just use the new MDState.yield() method to yield from the coroutine, and other than that, it's just like writing a normal native function.
  • Added a .reset() method to the 'thread' type. Once a thread is in the 'dead' state, you can reset it to the 'initial' state with this method, and then start it over again by calling it. This is also a method of MDState on the D side.
  • Added minid.minid.loadStatementString, loadModuleString, and eval.
  • Added the baselib removeKey function, which works for both tables (from which you can remove keys by assigning null to one) and namespaces (for which there was no way to remove keys before now).
  • Added a .remove method to MDNamespace.


Changed
  • Documented the 'base' parameter of string.toInt().
  • MDGlobalState is no longer a singleton, but rather a normal class, and has been renamed MDContext to better reflect its new role. This small change makes it possible to easily create "sandboxes" for code. Need a state to run untrusted code? Create a new context without many capabilities (by excluding libraries) and load the code into that. This change has caused changes all over the library as well -- MDState now takes a context to its constructor and has a method to get its context; the standard libraries now have static initialization methods which are used to load them into a context; minid.minid.MDInitialize has been renamed NewContext; and some of the functions in minid.bind now take an MDContext parameter to load the symbols into. Anywhere where you used to use MDGlobalState(), you need to replace it with an instance of MDContext instead.
  • minid.compiler.compileJSON renamed to loadJSON (just like in MiniD).
  • minid.minid no longer publicly imports minid.types, minid.utils, minid.compiler and minid.bind, to allow for more flexible importing in your programs.


Fixed
  • Formatting no longer throws an exception on an unterminated formatting specifier, in order to match the behavior of Tango's formatting.
  • toJSON now formats Unicode escape characters correctly.
  • For the time being, flushing and closing an io.Stream has been patched rather crudely to no longer throw an error if the Stream is not writable but there is nothing in the output buffer. Not sure if there is a better way to do this, but I'll look for one.
  • Fixed an unimplemented condition codegen bug with primary expressions -- forgot that there were some cases where they needed to be codegen'ed as a condition even though they are mostly constants and are usually folded. Their condition codegen can probably be improved, but..


Fooy bar.

Now! To get on documenting and exampling and so on. And for you -- test it, beat it up, make it die, and let me know how to kill it. There are bugs in there, and it's up to you to find them.
Back to top
View user's profile Send private message
JarrettBillingsley



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

PostPosted: Wed Aug 01, 2007 12:37 pm    Post subject: Reply with quote

Another update for today.

Added/Removed
  • The documentation for minid.minid, minid.types, minid.utils, and minid.compiler has been CandyDoc'ed and is now accessible.


Fixed
  • array.sort will now call opCmp metamethods for elements. This removes the restriction on all the elements being the same type; now they all just have to be comparable to one another. This also means a new overload of MDArray.sort() on the native side, which accepts a comparison predicate.
  • Fixed some documentation issues. DDoc does weird things with /// comments, and there were some outdated docs.
  • Fixed the dsss.conf file to clean up after each compile (otherwise stupid things happen when trying to compile different programs which share objects).
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