2.0-alpha3 |
2015-06-08 |
- typer extensions: use dedicated types for Java primitives types, defined as synonyms to core OCaml types (e.g. type java_int = int32)
- typer extensions: introduce 'exec' and 'chain' as variant of 'call'; 'exec' ignores the return value if any, while 'chain' pushes the instance onto the stack after the call
- typer extensions: introduce 'iter' and 'fold' for Java iterators
- javalib: install files into a dedicated directory (namely 'javalib')
- javalib: enhance 'JavaIOStreams' module
- javalib: rename 'JavaCharacter' module to 'JavaChar'
- javalib: move functions from the 'JavaString' module to a new 'JavaString.OCaml' module, and defines bindings to the String class in the 'JavaString' module
- javalib: add 'JavaPervasives' module, initially opened when Java extensions are enabled
- javalib: add 'JavaObject' module, providing complete bindings to the Object class
- javalib: add 'JavaCalendar', 'JavaDate', 'JavaLocale', and 'JavaTimeZone' modules, providing support for date manipulations
- javalib: renamed 'JavaByteArray.{to,of}_string' functions to 'JavaByteArray.{to,of}_ocaml_string'
- javalib: add 'JavaStringFormat' and 'JavaStringPrintf' modules, providing support for printing of Java strings
- javalib: add 'JavaRandom' module providing bindings to the java.util.Random class
- javalib: add 'JavaSystem' module providing bindings to the System class
- javalib: add 'JavaRuntime' module providing bindings to the Runtime class
- javalib: add 'JavaProperties' module providing bindings to the java.util.Properties class
- javalib: add 'JavaStringBuilder' module providing bindings to the StringBuilder class
- javalib: add 'JavaThrowable', 'JavaError', and 'JavaException' modules providing bindings to Java base exception classes
- javalib: enhance documentation
- concurrent: build a library rather than a pack, and install files into a dedicated directory (namely 'concurrent')
- concurrent: large/incompatible rewrite
- enhanced ocamlbuild: support for shared libraries for ocamljava
- enhanced ocamlbuild: support for '-html5', '-sort', and '-t' command-line switches of ocamldoc
- enhanced ocamldoc: generate links to online Javadoc for Java types
- enhanced ocamldoc: {java fully-qualified-class-name} to refer to Java types
- enhanced ocamldoc: {s ...}, {u ...}, and {k ...} for respectively stroke, underline, and keyboard styles
- enhanced ocamldoc: support for tables
- source distribution: 'ocamlj' script to launch the Java-aware toplevel
- fix compilation of 'Java.set'
- fix compilation of tail calls
- issue #16: ocamljava has exit code 0 even on an error
- issue #18: order of exception handlers is not preserved
- issue #19: allow compilation of large constant sets
- issue #20: some *.cmj files from camlp4 are not installed
- issue #21: some *.cmj files from ocamldoc are not installed
|
2.0-alpha2 |
2014-09-22 |
- HTML5 / Bootstrap mode for ocamldoc
- bug in proxies: method dispatch failing when overriding a method from java.lang.Object
- bugs #1 and #2: require Ant 1.9.0 or later
- bug#5: incorrect code generation for match construct
- bug#6: broken Java instance comparisons
- bug#7: support for inner-classes in presence of opened packages
- bug#9: incorrect inference of Java instance (as unboxed parameter value)
- bug#10: proxy variants (allowing to specify a class loader)
- bug#11: inner-classes and plain classes cannot be discriminated
- bug#12: ocamlbuild does not pass -cp and -classpath options when compiling an interface with -java-extensions
|
2.0-alpha1 |
2014-07-14 |
- source release
- update for OCaml 4.01
- update for Barista 2.0-beta2
- support for Java 1.8
- support for servlets is back
- large refactoring (cleaning/simplifying compiler code)
- new tool: ocamlj (toplevel with typer extension, using Java bytecode rather then OCaml bytecode)
- typer extension: new C.m(-) notation to match any arity
- typer extension: new C.m(T...) notation to pass literal array
- typer extension: fixed bug related to Java_exception typing
- typer extension: Java_exeption split into Java_exception/Java_error (for java.lang.Exception/java.lang.Error)
- typer extension: proxy methods are now sorted according to their signature (impacts only interfaces with overloading)
- typer extension: overriding of methods from java.lang.Object in proxies is now done on a per-method basis
- code generation: enhanced unboxing strategy
- code generation: fixed bug in max_stack/max_locals values (in classes holding globals)
- code generation: improved compilation of some primitives
- Java library: new JavaServlet module
- Java library: more operations for array types
- Java library: JavaStreams module renamed to JavaIOStreams
- runtime: improved support for exceptions
- runtime: improved memory layout
- runtime: Fail.Exception renamed to FailException (impacts only developers of primitives)
- runtime: Fatal.Exception renamed to FatalError, and now extends java.lang.Error rather than java.lang.Exception (impacts only developers of primitives)
- ocamlbuild: fixed compilation of mli-less module using Java extensions
- ocamlbuild: new use_javalib and use_concurrent tags for corresponding libraries
- optimizer: new -no-unused-global to remove unused global values
- optimizer: new -no-backtrace to remove support for backtrace
- optimizer: new -no-debug to remove debug statements from runtime
- wrapper: accept argument under the form file.cmi@pack to specify package for a given file
- documentation in both source and binary releases
|
2.0-early-access11 |
2014-02-24 |
- fixed bug in method cache (resulting in a runtime error)
|
2.0-early-access10 |
2014-01-27 |
- ocamlwrap: new -library-xyz options to control initialization of wrapped library
- fixed bug in proxies (incorrect method name when overloaded)
- fixed bug in proxies (NullPointerException when return type is boolean)
- fixed bug in proxies (when passed interface extends another one)
- fixed bug in typer extension (when using values of type byte/char/short)
- fixed mantis-bug#125 (ocamlwrap now issues a proper error when a type cannot be found)
- fixed mantis-bug#126 (ocamlwrap can now generate wrapper for functions with arity up to 10)
- fixed mantis-bug#127 (ocamlwrap now properly escapes Java keywords)
|
2.0-early-access9 |
2013-08-27 |
- proxies now support multiple interfaces
- proxies now allow to override methods from java.lang.Object
- Java.instanceof and Java.cast now accept array types
- a new warning (with number 1000) has been introduced, to be issued when a deprecated Java element is used
- the Java.make_array1 function has been replaced by the more flexible Java.make_array_dims whose string descriptor allows to choose the number of dimentions to instantiate
- a new JavaStreams module has been added to allow conversion between Java streams and OCaml channels
- utility functions have been added to the JavaString module
- support for applets is back
- fixed bug in Unix.localtime (incorrect hour value when PM)
- fixed bug in interface method calls (incorrect argument count when long or double value)
- fixed bug in proxies (Java primitives values incorrectly passed)
- fixed bug in proxies (values incorrectly returned)
- fixed bug in proxies (when methods from java.lang.Object are called)
|
2.0-early-access8 |
2013-07-31 |
- typer extension and associated library for manipulation of Java entities
- ocamlbuild updated to support typer extension
- ocamldoc updated to support typer extension
|
2.0-early-access7 |
2013-06-30 |
- parameter and return values to/from primitives can now be unboxed
- parameter and return values to/from functions can now be unboxed
- values with type int array now benefit from an optimized representation
- improved handling of exceptions
- improved handling of module constants
- improved handling of module globals
- improved startup time
- slightly improved code generation for pattern matching
- fixed bug in compilation of for loops with known bounds
- fixed bug in compilation of never-returning functions
|
2.0-early-access6 |
2013-05-31 |
- new ocamlwrap tool
- slightly improved code generation
- new -linkall command-line option for ocamljava, also meaning that the default is no more to link all modules
- STM.run and STM.run_read_only now ensure that accessors are called from the thread that created the transaction
- [Scheduled]Future.get[_time] now raise Runtime.Raised if the future raises an exception
- parallel operations of ParallelArray now raise Runtime.Raised if a passed function raises an exception
- MapReduce.S.compute now raises Runtime.Raised if a passed function raises an exception
- ForkJoin functions now raise Runtime.Raised if a passed function raises an exception
|
2.0-early-access5 |
2013-04-24 |
- ParallelArray.init is now a parallel operation
- ParallelArray now provides more parallel operations (mem, memq, exists, for_all, find, find_index, and find_all)
- STM.run and STM.run_read_only now return the value computed by the transaction
- Thread.interrupted now returns a boolean
- better handling of exceptions in Concurrent library
- new tool: ocamljar, a post-compilation optimizer
- support for ocamldebug is back
- support for scripting is back
- fixed mantis-bug#82 (dependency of scripting support)
|
2.0-early-access4 |
2013-03-28 |
- enhanced Concurrent library
- fixed mantis-bug#102 (Sys.os_type is always "Unix")
- fixed mantis-bug#117 (ocamlbuild is not provided)
- fixed mantis-bug#118 (Sys.command should call a shell)
- reduced startup time
|
2.0-early-access3 |
2013-03-07 |
- fixed mantis-bug#103 (Unix.descr_of_in_channel is broken)
- fixed mantis-bug#113 (comparison fails on large int values)
- fixed mantis-bug#114 (cannot use with bare JRE)
- fixed mantis-bug#114 (read_int is broken)
- fixed mantis-bug#115 (ocaml cannot execute file)
- minor performance improvements (compiler and runtime)
|