<commit_before>Release 1.0
===========

First complete public release

Release 2.0 rc1
===============

Second complete public release mainly fixing design flaws and providing better API. Template language slightly extended.

*Cleaner lexing allowing for better analysis of templates
- Lexer now only does the job of a scanner without using evaluation. Evaluation is done on token when needed. 

*New error reporting using properties mechanism
- We now have i18n error messages that can be formatted with any locale in a lazy style

*More helper functions
- You can now merge multiple lists into a single one allowing to iterate them in parallel using the engine

*Generally more graceful reactions to expressions that might seem inappropriate
- If and foreach now try to make sense of any type of object being passed in as an expression parameter
- Even a string expression tries to spit out any kind of object

*Lots of internal refactoring and bug fixing

*Introduced renderers

*Introduced compiled mode

*Introduced dynamic expressions and a configurable model adaptor

Release 2.0 rc2
===============

* Samples classes stripped from jars

* Added cached interpreted mode that features speedup close to compiled version (switched on as default)

Release 2.0 rc3
===============

* Cleaned caliper tests

* Fixed source release (missing libs and build files)

* Reintroduced Engine.format as a non-static high performance version

* Fixed infinite loop on certain parsing errors

* Suppressed error messages on stderr when executing tests

* Added a real world example/test

* Added comment token ${-- comment}

* Wrapped all exceptions in Util into RuntimeException

* All renderers and process listener now get the template context as an additional parameter

* Reflection code optimized for performance

Release 2.0 final
=================

<commit_msg>2.0 final<commit_after>Release 1.0
===========

First complete public release

Release 2.0 rc1
===============

Second complete public release mainly fixing design flaws and providing better API. Template language slightly extended.

*Cleaner lexing allowing for better analysis of templates
- Lexer now only does the job of a scanner without using evaluation. Evaluation is done on token when needed. 

*New error reporting using properties mechanism
- We now have i18n error messages that can be formatted with any locale in a lazy style

*More helper functions
- You can now merge multiple lists into a single one allowing to iterate them in parallel using the engine

*Generally more graceful reactions to expressions that might seem inappropriate
- If and foreach now try to make sense of any type of object being passed in as an expression parameter
- Even a string expression tries to spit out any kind of object

*Lots of internal refactoring and bug fixing

*Introduced renderers

*Introduced compiled mode

*Introduced dynamic expressions and a configurable model adaptor

Release 2.0 rc2
===============

* Samples classes stripped from jars

* Added cached interpreted mode that features speedup close to compiled version (switched on as default)

Release 2.0 rc3
===============

* Cleaned caliper tests

* Fixed source release (missing libs and build files)

* Reintroduced Engine.format as a non-static high performance version

* Fixed infinite loop on certain parsing errors

* Suppressed error messages on stderr when executing tests

* Added a real world example/test

* Added comment token ${-- comment}

* Wrapped all exceptions in Util into RuntimeException

* All renderers and process listener now get the template context as an additional parameter

* Reflection code optimized for performance

Release 2.0 final
=================

no changes from 2.0 rc3
{'fraction_non_alphanumeric': 0.0635823210131817, 'fraction_numerical': 0.009046265184802274, 'mean_word_length': 3.8987341772151898, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2798174', 'n_tokens_mistral': 1037, 'n_tokens_neox': 875, 'n_words': 520}