<commit_before>Changelog
=========

v0.7.6 - 2012-07-13
-------------------

 - Fixed TcpConnection.close() for the libevent driver - this caused hanging page loads in some browsers
 - A good amount of performance tuning of the HTTP server
 - Implemented vibe.core.core.yield(); this can be used to break up long computations into smaller parts to reduce latency for other tasks
 - Added setup-linux.sh and setup-mac.sh scripts that set a symlink in /usr/bin and a config file in /etc/vibe (Thanks to <NAME>)
 - Installed VPM modules are now passed as version identifiers VPM_package_xyz to the application to allow for optional features
 - Improved serialization of structs/classes to Json/Bson - properties are now serialized and all non-field/property members are now ignored
 - Added directory handling functions to vibe.core.file (not using asynchronous operations, yet)
 - Fixed MongoDB connection handling to avoid secondary assertions being triggered in case of exceptions during the communication
 - Fixed JSON (de)serialization of structs and classes (member names were wrong)
 - Improved the vibe shell script
 - Fixed (filter)urlEncode for character values < 0x10

v0.7.5 - 2012-06-05
-------------------

 - Restructured the examples - each example is now a regular vibe.d application (also fixes compilation using run_example)
 - The REST interface generator now supports sub interfaces which are mapped to sub paths in the URL
 - Added InjectedParams!() to access parameters injected using inject!()
 - The vibe script and VPM now do not write to the application directory anymore if not necessary
 - Implement more robust type handling in the REST client generator
 - Fixed a possible exception in ZlibInputStream at the end of the stream


v0.7.4 - 2012-06-03
-------------------

 - Added support for multipart/form-data and file uploads
 - Rewrote the Markdown parser - it now does not emit paragraphs inside list elements if no blank lines are present and handles markdown nested in quotes properly
 - The SMTP client supports STARTTLS and PLAIN/LOGIN authentication
 - The Diet parser now supports generic :filters using registerDietTextFilter() - :css, :javascript and :markdown are already built-in
 - VPM now can automatically updates dependencies and does not query the registry at every run anymore
 - Added vibe.templ.utils.inject which allows to flexibly stack together request processors and inject variables into the final HTML template (thanks to simendsjo for the kick-off implementation)
 - Removed InputStream.readAll() and readLine() and replaced them by UFCS-able global functions + added readUntil()<commit_msg>Reformatted the change log with separate sections for new features and bug fixes.<commit_after>Changelog
=========

v0.7.6 - 2012-07-13
-------------------

### Features and improvements ###
 
 - A good amount of performance tuning of the HTTP server
 - Implemented vibe.core.core.yield(); this can be used to break up long computations into smaller parts to reduce latency for other tasks
 - Added setup-linux.sh and setup-mac.sh scripts that set a symlink in /usr/bin and a config file in /etc/vibe (Thanks to <NAME>)
 - Installed VPM modules are now passed as version identifiers "VPM_package_xyz" to the application to allow for optional features
 - Improved serialization of structs/classes to Json/Bson - properties are now serialized and all non-field/property members are now ignored
 - Added directory handling functions to vibe.core.file (not using asynchronous operations, yet)
 - Improved the vibe shell script's compatibility

### Bug fixes ###
 
 - Fixed TcpConnection.close() for the libevent driver - this caused hanging page loads in some browsers
 - Fixed MongoDB connection handling to avoid secondary assertions being triggered in case of exceptions during the communication
 - Fixed JSON (de)serialization of structs and classes (member names were wrong)
 - Fixed (filter)urlEncode for character values < 0x10

 
v0.7.5 - 2012-06-05
-------------------

 - Restructured the examples - each example is now a regular vibe.d application (also fixes compilation using run_example)
 - The REST interface generator now supports sub interfaces which are mapped to sub paths in the URL
 - Added InjectedParams!() to access parameters injected using inject!()
 - The vibe script and VPM now do not write to the application directory anymore if not necessary
 - Implement more robust type handling in the REST client generator
 - Fixed a possible exception in ZlibInputStream at the end of the stream


v0.7.4 - 2012-06-03
-------------------

 - Added support for multipart/form-data and file uploads
 - Rewrote the Markdown parser - it now does not emit paragraphs inside list elements if no blank lines are present and handles markdown nested in quotes properly
 - The SMTP client supports STARTTLS and PLAIN/LOGIN authentication
 - The Diet parser now supports generic :filters using registerDietTextFilter() - :css, :javascript and :markdown are already built-in
 - VPM now can automatically updates dependencies and does not query the registry at every run anymore
 - Added vibe.templ.utils.inject which allows to flexibly stack together request processors and inject variables into the final HTML template (thanks to simendsjo for the kick-off implementation)
 - Removed InputStream.readAll() and readLine() and replaced them by UFCS-able global functions + added readUntil()
{'fraction_non_alphanumeric': 0.07094284138945046, 'fraction_numerical': 0.013232861606322368, 'mean_word_length': 3.854594112399643, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 5, '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': '3458286', 'n_tokens_mistral': 1376, 'n_tokens_neox': 1247, 'n_words': 711}