Skip to content

Latest commit

 

History

History
83 lines (53 loc) · 2.63 KB

NEWS.md

File metadata and controls

83 lines (53 loc) · 2.63 KB

adt4j - Algebraic Data Types for Java

Changelog

Since 3.2

  • Optimized updaters/withers: avoid unnecessary allocation
  • New @WrapsGeneratedValueClass annotation to support automatic wrapping, see Expression class in README.md file
  • Configurable floatEpsilon and doubleEpsilon for generated floating-point comparisons

Since 3.1

  • Always generate code, even in presence of compilation errors
  • Implement support for explicit recursion without selfReferenceVariableName hack
  • Split README file into more manageable/readable parts

Since 3.0

  • No more classes from chicory* packages in public API
  • adt4-shaded artifact should truly have no dependencies
  • javax.annotation.Nullable, javax.annotation.Nonnull and javax.annotation.ParametersAreNonnullByDefault are used only if these classes are present in classpath during compilation

Since 2.0

  • Better generated code: no FireBugs warnings
  • Add adt4-shaded artifact without any dependencies.
  • Switch to Java 7 as minimal java version.

Since 1.3

  • Add hashCodeCaching parameter to @GenerateValueClassForVisitor annotation to support hash code caching, see RecordVisitor, GroupNameVisitor, UserKeyVisitor and Expression examples.

Since 1.2

  • Add support for multiple predicate generation for single method with new @GeneratePredicates annotation.

Since 1.1

  • As little information from source code as possible is used during code generation. It's now possible to define fully customized single file data-type definitions, see Either example.

  • metachicory is not required at runtime, since @Visitor-annotation retention is set to SOURCE now. ADT4J has no run-time dependencies now.

Since 1.0

  • Add default names for generated getters, updaters and predicates. Allow to omit name parameter.
  • API-breaking change: rename value argument to name argument of @Getter, @Updater and @GeneratePredicate annotations
  • API-breaking change: use com.github.sviperll.meta.Visitor annotation from metachicory package.
  • Add dependency to metachicory package which provides some generic metaprogramming support.

Since 0.14

  • Fully customizable access levels for generated API

Since 0.13

  • Lots of performance improvements

Since 0.12

  • Fix recursive types support (see TreeVisitor example)
  • Fix varargs support
  • Code cleanup
  • Rename adt4j-core artifact to adt4j

Since 0.11

  • Nullable and Nonnull annotations on generated methods
  • No warnings from generated code

Since 0.10

  • Use maven as build system

Since 0.9

  • Predicates can be generated to test for specific case
  • Comparable instances can be generated