-- an Embedded JavaTM Compiler
 

Change Log

Version 2.5.15, June 18, 2008

  • Resolved the following issues:
    • JANINO-110
    • JANINO-111
    • JANINO-112
    • JANINO-114
    • JANINO-115
    • JANINO-117
    • JANINO-118
    • JANINO-119
    • JANINO-120
    • JANINO-121

Version 2.5.14, April 27, 2008

  • Switched from CVS to svn (http://svn.codehaus.org/janino).

Version 2.5.13, March 9, 2008

  • Resolved the following issues:
    • JANINO-106

Version 2.5.12, December 20, 2007

  • Resolved the following issues:
    • JANINO-104
    • JANINO-105
    • JANINO-96

Version 2.5.11, September 30, 2007

  • Resolved the following issues:
    • "CompileException" now extends "LocatedException", which extends "CausedException". This eliminates an asymmetry between "ScanException", "ParseException" and "CompileException".

Version 2.5.10, September 4, 2007

  • Resolved the following issues:
    • JANINO-98
    • JANINO-101
    • JANINO-99

Version 2.5.9, July 22, 2007

  • Resolved the following issues:
    • JANINO-95
    • JANINO-97

Version 2.5.8, June 12, 2007

  • Resolved the following issues:
    • JANINO-79
  • Throw a RuntimeException if cook() is called more than once.

Version 2.5.7, May 19, 2007

  • janino.jar is now signed with a dummy certificate.
  • janino.jar is now published as http://www.janino.net/lib/janino.jar, so remote systems can always download the latest version from a fixed URL.
  • Resolved the following issues:
    • JANINO-78
    • JANINO-81
    • JANINO-82
    • JANINO-83
    • JANINO-84
    • JANINO-85
    • JANINO-86
    • JANINO-92

Version 2.5.6, February 26, 2007

  • Resolved the following issue:
    • JANINO-72

Version 2.5.5, February 3, 2007

  • Resolved the following issue:
    • JANINO-76

      Optimized the handling of string concatenation: For sequences of 4 and more operands, the "new StringBuffer(a).append(b).append(c).append(d).toString()" is now used. (For two or three operands, "a.concat(b).concat(c)" is used as before.) Also, if "java.lang.StringBuilder" (the unsynchronized brother of "StringBuffer") is available (since JDK 1.5), it is used. See Tom Gibara's excellent .

Version 2.5.4, January 28, 2007

  • Resolved the following issue:
    • JANINO-75

Version 2.5.3, January 17, 2007

  • Added single static import declarations for fields (e.g. import static java.util.Collections.EMPTY_MAP), types (e.g. import static java.util.Map.Entry) and methods (e.g. import static java.util.Arrays.asList)
  • Added static-import-on-demand declarations for fields (e.g. import static java.util.Collections.*), types (e.g. import static java.util.Map.*) and methods (e.g. import static java.util.Arrays.*)

Version 2.5.2, January 14, 2007

  • Resolved the following issues:
    • JANINO-71
    • JANINO-73

Version 2.5.1, November 6, 2006

  • Resolved the following issues:
    • JANINO-68
    • JANINO-69
    • JANINO-70

Version 2.5.0, September 19, 2006

  • Extended ExpressionEvaluator and ScriptEvaluator with the capability to compile more than one expression/script in one evaluator. This greatly improves the runtime performance and reduces the JVM resource usage if you need to compile many expressions/scripts at the same time.
  • Introduced the concept of "auxiliary classes". This allows you to specify individual classes that the expression/script/class body/compilation unit may access although they are not loadable through the ClassLoader that was set with setParentClassLoader(). In other words: The expression/script/class body/compilation unit executes in a "sandbox", restricted by a ClassLoader with minimal peepholes to the classes you specify. This also resolves issue JANINO-66

Version 2.4.7, September 11, 2006

  • Resolved the following issue:
    • JANINO-67

Version 2.4.6, August 20, 2006

  • Added some very picky checks on character literals.
  • Check for float literal overflow and underflow.
  • ExpressionDemo was broken since the *Evaluator refactoring.
  • Some minor refactoring. Added more tests on float literals.
  • Refactoring of ClassBodyDemo and friends (more user friendly command line interface).
  • Resolved the following issues:
    • JANINO-64
    • JANINO-65

Version 2.4.5, June 26, 2006

  • Removed the misspelled "ResourceFinder.NO_RESOURCE_FINDER" (use "EMPTY_RESOURCE_FINDER" instead).
  • Simplified the self-compile test.
  • Cleaned up and simplified the local variables used by the TRY statement.
  • Resolved the following issues:
    • JANINO-56

Version 2.4.4, June 18, 2006

  • Replaced TunnelException with ClassNotFoundException(Throwable ex), which makes exception handling much clearer. In retrospect, TunnelExeption has proven to be a bad concept.
  • Made the last missing fields of Java.Xxx PUBLIC for AST manipulation.
  • Resolved the following issues:
    • JANINO-57
    • JANINO-58
    • JANINO-59
    • JANINO-60
    • JANINO-63
  • Known bugs:
    • JANINO-56

Version 2.4.3, May 11, 2006

  • Added the "default imports" feature to all *Evaluators.
  • Scanner.close() and all file-related Scanner constructors are now deprecated, because (A) they sometimes left input files open and (B) the logic was confusing - it is now strictly the caller's responsibility to open and close input files.
  • Complete refactoring of the *Evaluator and the SimpleCompiler classes. Important notice: ScriptEvaluator.evaluate() had to be renamed to ScriptEvaluator.getClazz() due to a method signature clash with ExpressionEvaluator.evaluate().
  • Improved the JAVADOC of the *Evaluator and the SimpleComplier classes.
  • Resolved the following issues:
    • JANINO-53
    • JANINO-54
    • JANINO-55

Version 2.4.2, April 24, 2006

  • Fixed some bugs in the access checking (PUBLIC, PROTECTED, PRIVATE).
  • Added some tests to JaninoTests for class instance creation (basically JLS2 section 15.9.1).
  • The Scanner now warns about misplaced DOC comments -- hence we need to have a WarningHandler installed also on the Scanner.
  • Inner classes loaded from .class files could not be instantiated.
  • Resolved the following issues:
    • JANINO-45
    • JANINO-48
    • JANINO-50

Version 2.4.1, April 12, 2006

  • JANINO eventually supports access to PRIVATE methods of enclosing/enclosed instances.
  • Resolved the following issues:
    • JANINO-46
    • JANINO-49
    • JANINO-50
    • JANINO-51

Version 2.4.0, March 13, 2006

  • Major redesign of the Java class hierarchy -- basically the "uplink" of the AST objects is no longer set by a constructor parameter, but by the constructor of the superordinate AST object. As a consequence, the creation order of AST objects is no longer top-down, but bottom-up. This makes code that creates an AST significantly shorter.
  • The UnitCompiler is now context-free, i.e. it can resolve types, constant values etc. without compiling the unit. This is necessary for the upcoming JGrep utility (see below).
  • Started work on the new JGrep utility -- a command line tool that analyses a set of source files in a highly configurable way.
  • Resolved the following issues:
    • JANINO-43
    • JANINO-50

Version 2.3.18, February 23, 2006

  • Made the members of FormalParameter PUBLIC.
  • Empty TRY body generated invalid bytecode.
  • Made "throwParseException()" PROTECTED.
  • Resolved the following issue:
    • JANINO-41
    • JANINO-42

Version 2.3.17, January 18, 2006

  • Modified the Enumerator and EnumeratorSet classes, inspired by "Effective Java".
  • Implemented access checking (PUBLIC, PROTECTED, PRIVATE).
  • Resolved the following issue:
    • JANINO-38

Version 2.3.16, December 25, 2005

  • Resolved the following issue:
    • JANINO-37

Version 2.3.15, November 9, 2005

  • Resolved the following issue:
    • JANINO-36

Version 2.3.14, November 2, 2005

  • Added the CachingJavaSourceClassLoader.

Version 2.3.13, October 28, 2005

  • Added the missing Compiler.compile(Resource[]).

Version 2.3.12, October 25, 2005

  • The creation of class files by org.codehaus.janino.Compiler is now based on the new ResourceCreator class, so they can not only be stored in files but anywhere (e.g. in a database). (Requested by Andreas Schmidt 2005-10-19.)

Version 2.3.11, October 19, 2005

  • Added Traverser for static code analysis.
  • Removed some superfluous getters.
  • Renamed some productions from "*Declarator" to "*Declaration". (It is sometimes difficult to understand the difference between the two.)
  • Renamed visit(...) methods to accept(...) for conformance with GoF "Design Patterns".
  • Resolved the following issue:
    • JANINO-34

Version 2.3.10, October 18, 2005

  • JANINO now works in a JDK 1.5 environment.
  • Resolved the following issue:
    • JANINO-28

Version 2.3.9, October 11, 2005

  • Resolved the following issues:
    • JANINO-29
    • JANINO-31
    • JANINO-32

Version 2.3.8, August 9, 2005

  • Resolved the following issues:
    • JANINO-27
    • JANINO-30

Version 2.3.7, July 24, 2005

  • Added "build.xml" to "build.properties" to "janino.jar" (requested by Mark Proctor 2005-07-15).
  • "janino.jar" is now uploaded to IBIBLIO (requested by Mark Proctor 2005-07-10).
  • Resolved the following issues:
    • JANINO-21
    • JANINO-18
    • JANINO-3

Version 2.3.6, July 15, 2005

  • Implemented @deprecated.
  • Implemented warnings on impliclit method invocations.
  • Implemented warnings on missing doc (a.k.a. JAVADOC) comments.
  • Resolved the following issues:
    • JANINO-20
    • JANINO-26

Version 2.3.5, July 06, 2005

  • Added the "AstGenerator", contributed by Eugene Kuleshov.
  • Resolved the following issues:
    • JANINO-24
    • JANINO-22
    • JANINO-23
    • JANINO-25

Version 2.3.4, May 25, 2005

  • Extracted the compilation functionality from Java to UnitCompiler. This involved some minor incompatible changes:
    • Renamed Java.CompileException to CompileException.
    • Renamed Visitor to Visitor.ComprehensiveVisitor.
    • Removed CompilationUnit, VariableDeclarator and FormalParameter from the visitors, because they are not virtual.
  • Fixed the following bugs:
    • JANINO-16
    • JANINO-2
    • JANINO-17

Version 2.3.3, May 05, 2005

  • Fixed the following bugs:
    • JANINO-11
    • JANINO-15
    • JANINO-14

Version 2.3.2, March 22, 2005

  • Made Scanner.Location a top-level class.
  • PackageDeclaration and ImportDeclaration are now AST objects.
  • ResourceFinder.findResource() no longer returns a URL object, but a more abstract ResourceFinder.Resource object (requested by Michael Orth 2005-03-22).

Version 2.3.1, February 20, 2005

  • Fixed the following bugs:
    • JANINO-5
    • JANINO-8
    • JANINO-9
    • #1105688

Version 2.3.0, January 31, 2005

  • Switched from "Apache License 2.0" to "New BSD License".
  • Fixed the following bugs:
    • #1098573
    • JANINO-7
    • JANINO-4

Version 2.2.0, January 02, 2005

  • Moved CVS and bug tracking to "codehaus.org" (web site still to be done).
  • Renamed all packages from "net.janino..." to "org.codehaus.janino...".
  • Refactored the ByteArrayClassLoader for thread safety.
  • Introduced a slight semantic change in the meaning of the optionalParentClassLoader parameter of all *Evaluator classes (see JAVADOC of EvaluatorBase(ClassLoader)).
  • Fixed the following bugs:
    • #1092344
    • #1093015

Version 2.1.0, December 09, 2004

  • Switched from GNU "Lesser General Public License" (LGPL) to Apache License 2.0.
  • Added equals()code> methods to ByteArrayClassLoader and EvaluatorBase.

Version 2.0.17, December 06, 2004

  • Fixed the following bugs:
    • #1065416
    • #1062519

Version 2.0.16, November 19, 2004

  • Fixed the following bug:
    • #1032563

Version 2.0.15, November 9, 2004

  • Fixed the following bugs:
    • #1057432
    • #1061120
  • Retyped "debuggingInformation" from INT to "DebuggingInformation", which inherits from "EnumeratorSet".
  • Scanner now allows for explicit initialization of line number and column number (useful if the Java code begins only in the middle of a file.)

Version 2.0.14, November 1, 2004

  • Fixed the following bug:
    • #1057380

Version 2.0.13, October 27, 2004

  • More refactoring of the "IClassLoader" hierarchy. Added some nifty Iterators like NestedIterator, TransformingIterator, and the IteratorCollection (a Collection that reads its elements from a delegate Iterator while it is being iterated for the first time).
  • The net.janino.tools.Disassembler now has a verbose mode.

Version 2.0.12, October 17, 2004

  • Total rewrite of the "IClassLoader" hierarchy. This simplifies the lookup of IClasses.
  • Cache the return values of getConstantValue().
  • Eliminated a lot of compilation warnings.

Version 2.0.11, September 27, 2004

  • Fixed the following bugs:
    • #1029662
    • #1029661
    • #1029660
    • #1035262
  • Performance tuning as proposed by Chris Thiessen 2004-09-15.
  • Inserted BufferedReaders when reading from files.
  • IClass now caches the results of its abstract methods.
  • IClassLoader.loadIClass no longer throws ClassNotFoundExceptions, but returns null (save creation of a lot of objects).

Version 2.0.10, September 14, 2004

  • SimpleCompiler, ClassBodyEvaluator and ScriptEvaluator now add SOURCE and LINES debugging info, so file name and line number appear in exceptions thrown by generated code. (Requested by Mike Hebert 2004-09-11.)
  • Allow for source code level debugging of the same by writing a temporary source code file if the optionalFileName parameter of net.janino.Scanner's constructors is null and system property net.janino.source_debugging.enable is "true". The source code file is written to net.janino.source_debugging.dir or the system's default temp directory. (You need to add that directory to your debugger's "source lookup path".)

Version 2.0.9, September 5, 2004

  • Unparsing classes generated by EvaluatorBase generated no output.
  • Optimized compilation of constantly-false IF statements.
  • Fixed the following bug:
    • #1001362
  • Fixed up JLS2 15.12.2.2.BL2.

Version 2.0.8, August 29, 2004

  • Fixed several bugs in the net.janino.UnparseVisitor.
  • Decimal long literal tokens were misinterpreted as octal.

Version 2.0.7, August 25, 2004

  • Implemented the net.janino.UnparseVisitor that unparses a parsed construct, e.g. a compilation unit (requested by Mark Proctor).
  • Made all nested classes of net.janino.Java public to allow for generation of "synthetic" constructs (requested by Mark Proctor).

Version 2.0.6, July 23, 2004

  • Implemented the following feature request:
    • #995198
  • Introduced base class net.janino.Scanner.LocatedException for all JANINO-related exceptions.
  • Fixed some JDK 1.2.2 compatibility problems.

Version 2.0.5, July 12, 2004

  • Fixed the following bug:
    • #988796
  • Implemented the concept of "fast" expression evaluators and script evaluators, as proposed by Volker Augustin 2004-06-14.

Version 2.0.4, June 29, 2004

  • Fixed the following bug:
    • #913174
    • #981586
    • #981711

Version 2.0.3, May 31, 2004

  • net.janino.ExpressionEvaluator now supports null expression types; this auto-wraps primitive values as necessary. (Requested by Amir Bar-Or 2004-05-31).

Version 2.0.2, April 15, 2004

  • Janino now optionally creates warnings.
  • Added warnings about implicit access to fields
  • Added warnings about violations of SUN's naming conventions (JLS2 6.8)

Version 2.0.1, April 11, 2004

  • Fixed the following bug:
    • #931385

Version 2.0, April 4, 2004

A major milestone... Janino now supports member types, local classes and anonymous classes. Therefore you can legitimally call a fully implemented JavaTM compiler!

A good time to open a bottle of champagne...

Version 1.0.22, February 16, 2004

  • net.janino.Compiler now reports up to 20 compile errors before it gives up. (Notice that scanning, parsing and I/O exceptions are still fatal and terminate compilation.)

Version 1.0.21, February 03, 2004

  • Complicated array instantiations did not work.
  • Replaced Java's URLClassLoader with the custom PathClassLoader. This solves the problems with case-insensitive file names.
  • Fixed the following bug:
    • #885938
    • #885930

Version 1.0.20, January 27, 2004

  • Implemented line number tables ("-g:lines") and source file information ("-g:source").

Version 1.0.19, January 24, 2004

Version 1.0.18, January 24, 2004

  • Fixed up resolution of class names (JLS 6.5.5.2).

Version 1.0.17, January 21, 2004

  • Implemented non-primitive class literals.
  • Fixed up the "if statements and reachability" issue.
  • Fixed the following bug:
    • #864241

Version 1.0.16, January 17, 2004

  • Fixed one "Invocation of constructor/method ... is ambiguous" bug reported by Chris Cleveland 2004-01-14 03:26.
  • Fixed the following bug:
    • #879380

Version 1.0.15, January 17, 2004

  • Fixed the following bugs:
    • #875632
    • #876568
    • #876583

Version 1.0.14, January 12, 2004

  • Fixed the following bugs:
    • #875624
    • #875625
    • #875626
    • #875627
    • #875628
    • #875629
    • #875631
    • #875636
    • #875639
    • #875640

Version 1.0.13, January 8, 2004

  • Compiler and AntCompilerAdapter now provide for the "extdirs" and "bootclasspath" features.
  • Fixed the following bugs:
    • #873297
    • #872637

Version 1.0.12, January 7, 2004

Version 1.0.11, January 6, 2004

  • Fixed the following bug:
    • #871317

Version 1.0.10, January 4, 2004

  • Fixed the following bugs:
    • #869750
    • #869750
    • #869750
    • #869750
    • #869750
    • #869750
    • #869750
    • #869750

Version 1.0.9, January 3, 2004

  • Fixed the following bugs:
    • #868686
    • #868688
    • #868691
    • #868692

Version 1.0.8, January 2, 2004

  • Moved the "janino" script to directory "bin".
  • Moved "janino.jar" to directory "lib".
  • Fixed the following bugs:
    • #868689
    • #868967
    • #868690

Version 1.0.7, December 25, 2003

  • "Christmas eve release" ;-) Fixed the following bugs:
    • #842362
    • #864232
    • #864234
    • #864236
    • #864238
    • #864246

Version 1.0.6, December 15, 2003

  • Added the "JavaSourceClassLoader" (requested by Richard Lewis 2003-11-14) and the "janino" utility that scans, parses, compiles, loads and executes classes on-the-fly.

Version 1.0.5, November 26, 2003

  • Implemented the following feature request:
    • #845459

Version 1.0.4, November 18, 2003

  • Four bugs fixed:
    • #842362
    • #844641
    • #844642
    • #844645
  • Started work on an ANT compiler adapter... still very experimental.

Version 1.0.3, November 12, 2003

  • One bug fixed:
    • #837537

Version 1.0.2, October 30, 2003

  • Two bugs fixed:
    • #831370
    • #831374
  • Added a JUnit test suite (still very incomplete).

Version 1.0.1, October 23, 2003

  • Two bugs fixed (reported by Fabrice Carnet):
    • #828880
    • #829186

Version 1.0, October 20, 2003

  • Wow, version 1.0 finally made it. If you also feel that Janino 1.0 were a good reason to drink a glass of champagne, do not hesitate. (Maybe, as a sign of recognition, you could send me the open bottle and I'll drink it up ;-) My postal address is on janino.net)

Version 0.3.17, October 09, 2003 (not released)

  • Methods declared in interfaces of object were not found when invoked (reported by Fabrice Carnet 2003-10-07).
  • java.lang.VerifyError when loading a class compiled by Janino which invokes a method of an interface with more than zero parameters (reported by Fabrice Carnet 2003-10-07).
  • ExpressionEvaluator, ScriptEvaluator and ClassBodyEvaluator now have constructors that allow for the specification of class and/or method name (requested by Fabrice Carnet 2003-10-07).

Version 0.3.16, October 06, 2003 (not released)

  • Basically a complete rewrite of the IClass loading mechanism. This solves many problems related to using Janino with custom ClassLoaders (e.g. in J2EE environments). (Reported by Laurent Millet 2003-09-24.)

Version 0.3.15, September 12, 2003

  • "net.janino.*Evaluator" now have constructor variants that allow the specification of extended / implemented types. This allows for providing a base class that supplies static "helper functions" (e.g. "println()"). (Requested by Till Brychcy 2003-09-10.)

Version 0.3.14, July 27, 2003

  • "net.janino.Compiler" can now compile a set of source files with forward references (requested by Richard Lewis 2003-07-24).
  • Documented the "import" feature of ScriptEvaluator and ExpressionEvaluator.
  • "Outer.Inner" was not properly resolved within ambiguous names.

Version 0.3.13, July 6, 2003

  • Rewrote the "ClassBodyEvaluator"; can now be instantiated.
  • "ClassBodyEvaluator" can now generate a class that extends / implements classes / interfaces (Requested by Richard Lewis 2003-06-28).
  • Cleaned up "EvaluatorBase"; eliminating code duplicated between the various "*Evaluator" classes.

Version 0.3.12, June 4, 2003

  • Fixed up method invocation conversion (reported by Antony Miguel 2003-06-02).
  • Fixed a problem with for/while/do loops with constant true conditions. (Reported by Antony Miguel 2003-06-02).
  • Made tons of methods and classes PUBLIC, as proposed by Antony Miguel 2003-06-03.

Version 0.3.11, June 1, 2003

  • Implemented "synchronized" statement (requested by Antony Miguel 2003-05-22).
  • Moved common functionality from "ExpressionEvaluator", "ScriptEvaluator" and "ClassBodyEvaluator" into a common base class "EvaluatorBase".
  • The generated class files and the IClassLoader used to load classes defined outside the current compilation unit are now stored in thread-local globals. The IClassLoader also holds the formerly global IClass cache, which caused a memory leak (reported by Fabrice Carnet 2003-05-20).
  • IClass.isAssignableFrom(net.janino.IClass) did not handle primitive types (reported by Fabrice Carnet 2003-05-20).
  • Multiple expressions, scripts and class bodies can now be loaded into the same ClassLoader, if that is a ByteArrayClassLoader. This is necessary if the expressions, scripts and classes need to refer to each other. (Requested by Fabirce Carnet 2003-05-20.)
  • A "for" statement with an empty condition (e.g. "for(;;)") caused a java.lang.NullPointerException.
  • The net.janino.ClassLoaderIClassLoader.ReflectionIClass holds a map that guarantees that java.lang.Classes and IClasses map one-to-one. This posed a memory leak. (Reported by Fabrice Carnet 2003-05-20.)
  • Documented the ClassBodyEvaluator.

Version 0.3.10, April 22, 2003

  • Fixed up invocation of interface methods (reported by Reimond Bernstein 2003-04-14).
  • Added references to types in same package, but different compilation unit.
  • Fixed up C-style array variable declaration ("int a[] = ...") (reported by Reimond Bernstein 2003-04-14).

Version 0.3.9, April 02, 2003

  • Added the "ClassBodyEvaluator" and the "ClassBodyDemo" class. These allow you to compile a "class body", i.e. a series of methods, variable declarations etc. (requested by Fabrice Carnet 2003-03-18).
  • Fixed up "IClass.getArrayType()" which only worked for loaded classes, but not for classes in the current compilation unit.
  • The java.lang.ClassLoader used to load the just-compiled class now uses as its parent the current thread's context class loader (reported by Fabrice Carnet 2003-03-26).

Version 0.3.8, March 05, 2003

  • Fixed a bug in the flow analysis code (caused a compile-time error) (reported by Fu Li Chen 2003-02-21).
  • "IClass" now uses "Thread.currentThread().getContextClassLoader().loadClass()" instead of "Class.forName()" (feature requested by Dain Sundtrom 2002-02-16).

Version 0.3.7, November 26, 2002

  • Added "this" (reference to current instance). Added primitive class literals (e.g. "int.class"). Fixed several showstopper bugs. Added limited support for member classes.

Version 0.3.6, November 22, 2002

  • Added reference comparison. Added ScriptEvaluator constructors that read from InputStream, Reader or Scanner.

Version 0.3.5, November 14, 2002

  • Only the last import-on-demand directive in a compilation unit did work; using a class imported by an amport-on-demand directive other than the last one caused a compilation error. (Reported by Audrius Meskauskas 2002-11-14.)

Version 0.3.4, November 9, 2002

  • Updated the overview page.

Version 0.3.3, October 26, 2002

  • Renamed "ExpressionTest" and "ScriptTest" to "...Demo". Fixed up several JAVADOC bugs. "ExpressionEvaluator" now has a "thrownExceptions" parameter. Added support for "void" type expressions to "ExpressionEvaluator". Added JAVADOC comments. Clean up. Fixed a bug in "AmbiguousName.reclassify()".

Version 0.3.2, October 21, 2002

  • Fixed a few more bugs reported by Jimmy.

Version 0.3.1, October 13, 2002

  • Fixed an ArrayStoreException in ScriptEvaluator that was reported by Russell White 2002-06-25.
  • Added reclassification of fully qualified type names: E.g. cast operation "(HashMap) xyz" did work, but "(java.util.HashMap) xyz" didn't. Reported by Jimmy 2002-10-13.

Version 0.3, May 25, 2002

  • Added most missing language elements that I planned to add. The JLS is now almost completely implemented, except for nested classes and interfaces.
  • This is the first version of JANINO that I will "advertise". Let's see if anybody wants to use the tool... After all it's a 80 percent complete JavaTM compiler in only 11000+ (well-documented) lines of code!

Version 0.2, April 28, 2002

  • Almost a rewrite. Added several painfully missing language elements.
  • Added more JAVADOC.

Version 0.1.1, November 09, 2001

  • Added missing sample source files to the runtime package.
  • Added break and continue.
  • Added lots of JAVADOC comments.

Version 0.1, October 30, 2001

  • Initial release