Version 0.8.1 Alpha

Quickly produce robust, reusable client-side code for any browser.

Easily interface with existing Javascript using external classes.

Utilize the server-side framework of your choice.

Portal to the Milescript open-source development community.

AddThis Social Bookmark Button
Stumble It! StumbleUpon Toolbar
Digg It!
Del.icio.us

Milescript 0.8.1 Alpha Released

Milescript 0.8.1 is primarily a set of bug fixes to the Alpha release. There are also several new tutorials, and several old tutorials have been updated.

To obtain a copy of the latest version, visit the Downloads Page.

Known Issues

New Features:

  • Unit test generator now allows you to specify an arbitrary number of JavaScript files to be included in the instance of Rhino running in CrossCheck. This can allow you to utilized 3rd party JavaScript in your unit tests if need be.
  • If there is an existing ClassCache on a page, and additional Application scripts are dynamically imported, the subsequent scripts no longer clobber the existing ClassCache
  • Arguments passed to initApp are available to the main class' main function via the arguments array
  • Removed the check for a boolean type inside an if statement to more closely align with JavaScript. i.e. if(varName) is now valid.
  • Replaced old, funky CLI interface with Apache commons-cli v2. Run java -jar milesc.jar --help for detailed info.
  • Added simple project generation system for creating projects from template projects. Templates are available in the /templates subdirectory. The two initially supplied templates are BasicApp for creating application projects, and BasicMar, for creating library projects. Run java -jar milesc.jar --template BasicApp --output /new/project/dir to create a new project in /new/project/dir based on the BasicApp template.

Bug fixes:

  • #48 -
    • compiler allowed a class to extend a record.
  • #52 -
    • default constructors appeared on interfaces in internal code.
  • #60 -
    • generator assumed all classes in `core` namespace derived from `core.Object`, regardless of actual class definition.
  • #54 -
    • non-static declarations attempted to link initializations statically
  • #61 -
    • record types were allowed in `instanceof` when they should never be
  • #63 -
    • concrete class bindings to implemented interface variables weren't implement. In addition, concrete class bindings for functions and variables of implemented interfaces is refactored to work around prior inconsistencies when multiple-interface-inheritance situations were encountered.
  • #58 -
    • interfaces could not extend multiple interfaces (parser update)
  • #59 -
    • interfaces could not extend multiple interfaces (linker update)
  • #57 -
    • parsing of hexadecimal resulted in incorrect values
  • #51 -
    • documentor crashed if a `@param` tag with no parameter was encountered
  • #55 -
    • class table silently allowed any number of classes to be added for a given class name. The last one added was the one that won.
  • #69 -
    • Generation of record types improperly emitted initializations for unset variables
  • #70 -
    • Rest syntax correctly generating to msdef
  • #71 -
    • Correctly catches and reports classnotfound exception in union types
  • #72 -
    • Correctly printing generic types in rest syntax when generating the msdef files
  • #66 -
    • Correctly parsing n-deep nested array literals, i.e. [[1]] = Array>
  • #73,#53 -
    • 'this' reference no longer allowed in a static context
  • #68 -
    • TypeLinker cascades 'static' and 'external' modifiers, if they exist, to all functions and variables in the root namespace
    • Correctly cascading external and static to constructors
    • Now checks all cascading of external and static to make sure no modifier is being added twice
  • #75 -
    • The msdef generator improperly generates parameters whose type are inline function syntax declarations e.g. (int, int) -> String
  • #76 -
    • Documentation engine doesn't appropriately emit short-hand function syntax e.g. (int, String) -> String
  • #77 -
    • The compiler doesn't verify that the parsed msdefs from the mar file have been successfully parsed.
  • Fix -
    • LibClassGenerator now properly emits short-hand function signatures
  • Fix -
    • DocumentGenerator et al now properly emits short-hand function signatures
  • Fix -
    • CompilationSession now ensures that all msdefs from linked mars parses successfully before continuing the compilation pass.
  • #74 -
    • Constructors are no longer allowed in static externals
  • #79 -
    • Delegate calls occurring directly after a function call now links and generates correctly, i.e. getDelegate()(foo, bar);
  • #78 -
    • Reference linker no longer changes the previous reference to ClassCache.get() if the current namespace is in an external. i.e., window.document.location, where document is static, no longer generates ClassCache.get("window").document
  • #247 -
    • correctly adds a comma after generating default values if there are more user defined values to come.
  • #252 -
    • Specialized generic interfaces now correctly use the non-specialized version of the class to create condense maps in the TypeCondenseVisitor
  • #245 -
    • The following Milescript code generates a parse error: Array myArr = new Array[];
  • #80 -
    • Fixed bug where for loop with two expressions: for(int i=0; i<12;){} was being seen as a for-in loop
  • #244 -
    • "me." does not generate for private vars when following a negated unary reference
  • #253 -
    • Fixed bug where passing a non-existent function to a function that takes in a delegate was not throwing an error
About | Contact
Milescript is an open source project released under the Apache 2 license.
Copyright © 2007, Point5u, LLC. All rights reserved. Images, layout, text, and other design elements may not be used without permission. The Milescript brand, logo, and slogan are trademarks of Point5u, LLC and may not be used in any way without permission.