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

February 14th -- OH EM GEE

 
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 Feb 14, 2007 10:59 pm    Post subject: February 14th -- OH EM GEE Reply with quote

Go look at Changeset 94. I dare you.

Added
  • Added a module/import system. I ended up greatly simplifying the system from what I had originally planned. I think the newer system fits in with the design of MiniD a bit better.

  • Added a new type, 'namespace'. They are not yet creatable in the language, but that should change. They are used for symbol tables, such as modules, the global namespace, and class/instance fields and methods.

  • It's now possible to put 'null' in value lists for the MDTable, MDArray, and MDNamespace .create() functions.

  • Added D-style /+ +/ nesting comments. They were so deadly easy to implement, I don't know why I thought they'd be hard.

  • Added an interesting .safeCode function to MDState. This allows you to wrap code that could throw an exception in an exception catching block. Basically if any non-MiniD exception is thrown by the expression you pass into .safeCode, .safeCode will catch it and convert it into a MiniD exception. Otherwise, the result of .safeCode is the result of the expression you pass in.

  • Made a new module, minid.utils, that holds general-use functions that were scattered about before. It also includes some new, interesting things, such as some more type trait templates, and a simple Serialization system.

  • Made a new module, minid.minid, which defines some useful top-level API functions, as well as the default module-loading mechanism for imports (MDFileLoader).

  • Added support for serializing compiled modules out to a file.

  • Made minidc, a compiler that just compiles source and writes it to a binary file ending in .mdm (MiniD Module). minidc is included in mdcl.zip along with MDCL.

  • MDCL can now run both .md (source) and .mdm (compiled) MiniD files.


Changed
  • Changed declaration scoping to allow for local, global (module-level), and undefined symbol locations.

  • I am tired of waiting for Bugzilla 102/282/912 to be fixed. I have merged state.d and types.d into types.d. There should hopefully be no more compilation issues.

  • Bodies of try/catch/finally statements can now be any statement, instead of forcing you to use a block statement.

  • Tables have gone back to Lua-like behavior. Assigning 'null' to an element of a table will remove that element from the table, and accessing a nonexistent table element returns null instead of throwing an exception. This is also so in the D interface.

  • MDState no longer holds the global table; that has been moved up into MDGlobalState. Accordingly, the .setGlobal and .getGlobal functions that were in MDState have moved to MDGlobalState.

  • The MDClosure constructors have changed; they now take an MDNamespace environment as their first parameter instead of an MDState. This allows you to use any namespace as the environment (i.e. where globals begin to be looked up) for a function. Additionally, .newClosure methods have been added to MDGlobalState to make it easy to create functions in the global namespace.

  • MDRuntimeException constructors have changed. They now take a Location instead of an MDState. To make it easier to throw them, there are now .throwRuntimeException methods in MDState.


Fixed
  • Fixed a bug in tailcalls which would cause the interpreter to stop if a native function was tailcalled.


In general, there has been a TON of reorganization of the code. There are probably some more changes and bugfixes in the MDState class, but I can't tell what they are since I've merged state.d and types.d, and the diff for Changeset 94 just shows all the new code in types.d.

Hoo-ah.

I hope to put up some documentation on all this stuff soon. The declaration documentation, anyway, is up-to-date; check out the Functions section of the language spec.
Back to top
View user's profile Send private message
ideage



Joined: 12 Jul 2006
Posts: 63
Location: china

PostPosted: Thu Feb 15, 2007 8:33 am    Post subject: Reply with quote

Good work! much Thanks!
________
volcano vaporizer reviews


Last edited by ideage on Wed Feb 02, 2011 5:03 pm; edited 1 time in total
Back to top
View user's profile Send private message Send e-mail
ideage



Joined: 12 Jul 2006
Posts: 63
Location: china

PostPosted: Thu Feb 15, 2007 9:31 am    Post subject: Reply with quote

When I run compiled simple.md,I get a error!

Quote:

D:\D\dmd\import\minid>minidc simple.md

D:\D\dmd\import\minid>mdcl simple.mdm
Error: simple.mdm(1:4): Invalid token ''

________
Tuono


Last edited by ideage on Wed Feb 02, 2011 5:03 pm; edited 1 time in total
Back to top
View user's profile Send private message Send e-mail
ideage



Joined: 12 Jul 2006
Posts: 63
Location: china

PostPosted: Thu Feb 15, 2007 9:55 am    Post subject: Reply with quote

oh,recompile MDCL.EXE OK!
________
HAWAII MEDICAL MARIJUANA DISPENSARY
Back to top
View user's profile Send private message Send e-mail
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