BeanShell 1.3 beta available!

Pat <[email protected]>
Newsgroups gmane.comp.java.beanshell.devel
Message-ID <[email protected]>
I am very happy to announce that the beta release of BeanShell 1.3 is available.
I'd like to ask you all to try it out before I make a wider announcement.

  http://www.beanshell.org/download.html

This release has major improvements in both performance and usability.
The code is very stable so please give it a spin.  Please be aware of the
variable scoping change or use the -Dlocalscoping=true flag to keep the
original style.

The online user manual has been updated and now reflects version 1.3 features.
For a more detailed list of bug fixes and improvements please see the change
log:

  http://www.beanshell.org/Changes.html

The following is just a short run-down of the improvements.  If you find that
your favorite bug hasn't been fixed don't despair.  Just make sure it's on 
the bugs list and feel free to post about it.

- JavaCC 3.0 (now open source) built Parser now faster and 30% smaller.
  BeanShell grammar optimizations.

- Implemented caching of class method resolution for performance.  
  Up to 50% speed improvement in some cases (and room to improve).

- Implemented BeanShell 1.3 Java style scoping changes and preserved backwards 
      compatability with the -Doldscoping=true switch.

- Enhanced for loop as per JDK 1.5. e.g. for( i : array ) 

- BeanShell now supports modifiers (e.g. public, private, static, etc.)
    on methods and typed variable declarations. 

- The "synchronized" modifier is now implemented for methods and synchronized
  blocks. 

- The "throws" clause on methods is now supported.

- User Command Path - You may now import BeanShell scripted or compiled
  commands from any package path using the importCommands() method.

- User Commands and resources can now be loaded from the BeanShell classpath.
  e.g. working with addClassPath()

- Class management Changes - class management is now on a per-Interpreter
  (per-global namespace) basis.  

- All script error messages should now include line numbers and invocation text.  
- Error messages now include a script stack trace 
  (e.g. method a() called method b(), etc.)

- Array creation supports undefined array dimensions as in Java.
      e.g. int [][][] foo = new int [3][][];
  Array creation supports auto-casting in array initializers,
      e.g.  long [] la = { 1, 2 };  float [] fa = { 1, 2 }; 

- Improved BshServlet - Errors in the servlet results show the offending line
  highlighted (html) red with four lines of context and line numbers.

- Enhanced error message for undefined argument to method - now prints the
  argument text instead of the method parameter name and position.
- Enhanced error message on missing or incorrect constructor.
- Enhanced error message on attempting to access private/protected members
  without setAccessibility(true). 

- Switch statements should now work with all types.  

- Maps can now be used with the hastable style accessor syntax.  e.g.
        map{"foo"} = "bar":

- Field style object property access now supports isFoo() style getters

- User defined command prompt in interactive mode.  The user may set the value
  for the prompt string using the variable bsh.prompt or by defining the
  scripted method (or command) getBshPrompt().  

- The invoke() meta method can now be used to implement arbitrary user command
  loading.



Thanks,
Pat


-------------------------------------------------------
This SF.Net email is sponsored by: INetU
Attention Web Developers & Consultants: Become An INetU Hosting Partner.
Refer Dedicated Servers. We Manage Them. You Get 10% Monthly Commission!
INetU Dedicated Managed Hosting http://www.inetu.net/partner/index.php
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.