For a full list of releases, see github.
0.4 / 2014-05-28
- Fix #27, "Incorrectly inlines non-final variable".
- Maven build process now deploys web site.
- Implement
Enumerable
methods:any
,all
,contains
withEqualityComparer
,first
,first
with predicate.
0.3 / 2014-04-21
- Move optimizer visitor from optiq to linq4j; add
ExpressionType.modifiesLvalue
to avoid invalid inlining. - Fix #17,
"Assign constant expressions to 'static final' members";
add
@Deterministic
annotation to help deduce which expressions are constant. - Multi-pass optimization: some of the variables might be avoided and inlined after the first pass.
- Various other peephole optimizations:
Boolean.valueOf(const)
, 'not' expressions (!const
,!!a
,!(a==b)
,!(a!=b)
,!(a>b)
, etc.), '?' expressions coming fromCASE
(a ? booleanConstant : b
anda ? b : booleanConstant
). - Implement left, right and full outer join.
- Clean build on cygwin/Windows.
0.2 / 2014-04-11
- Fix #8, "Javadoc generation fails under JDK 1.8".
- Fix #15,
"
Expressions.ifThenElse
does not work". - Use
HashMap
for searching of declarations to reuse; consider bothoptimizing
andoptimize
flags when reusing. - Implement
equals
andhashCode
for expressions. Hash codes for complex expressions are cached into a field of the expression. - Add example,
com.example.Linq4jExample
. - Fix optimizing away parameter declarations in assignment target.
- Support Windows path names in checkstyle-suppresions.
- Support
Statement.toString
viaExpressionWriter
. - Use
AtomicInteger
for naming ofParameterExpression
s to avoid conflicts in multithreaded usage - Cleanup: use
Functions.adapt
rather thannew AbstractList
- Add
NOTICE
andLICENSE
files in generated JAR file. - Optimize
select()
if selector is identity. - Enable checkstyle.
0.1.13 / 2014-01-20
- Remove spurious "null" generated when converting expression to string.
- Allow a field declaration to not have an initializer.
- Add
Primitive.defaultValue
. - Enable
oraclejdk8
in Travis CI.
0.1.12 / 2013-12-07
- Add release notes.
- Fix implementation of
Enumerable.asEnumerable
inDefaultQueryable
(inherited by most classes that implementQueryable
).
0.1.11 / 2013-11-06
- Lots of good stuff that this margin is too small to contain.