<commit_before>=================================================================
Logtalk - Object oriented extension to Prolog
Release 2.29.6

Copyright (c) 1998-2007 <NAME>.  All Rights Reserved.
=================================================================


RELEASE NOTES
=============


2.29.6 - April ??, 2007

	Added preliminary support for static binding when sending messages to 
	objects compiled and loaded using the compiler option "reload(skip)".

	Allow non-instantiated arguments at compile time for the multi-threading 
	built-in predicate threaded/1.

	Simplified and optimized the implementation of Logtalk multi-threading 
	support.

	Updated the Logtalk built-in database methods to always interpret rules 
	whose body is the control construct true/0 as facts. Corrected a bug when 
	compiling dynamic predicates that would prevent using of the clause/2 
	built-in database method. Corrected a bug when using the Logtalk built-in 
	database method clause/2 with entities compiled in debug mode. Improved 
	predicate lookup caching when asserting and retracting dynamic facts.

	Improved detection and reporting of entity existence errors.

	Added a quit option, "q", to the Logtalk built-in debugger. Modified the 
	debugger behavior to switch to trace mode when finding a spy point.

	Added two new compiler options, "xmldir" and "tmpdir", allowing a per 
	project definition of directories for storing XML documenting files and 
	for storing intermediate compilation files (e.g. Prolog files). Removed  
	the config file predicate '$lgt_alt_directory'/2. Older config files are
	incompatible with this new Logtalk version.

	Added a shortcut to the Logtalk built-in predicate logtalk_load/1, {}/1,
	to all config files (defined there in order to be easy to comment it out 
	in case of conflict with some Prolog native feature or lack of compliance
	with the ISO Prolog standard regarding the definition of the {}/1 syntax.

	Allow the compiler flag "misspelt" to be set to "error".

	Updated the Logtalk compiler to not try to clean-up the dynamic predicates
	of redefined entities when reloading source files. Most Prolog compilers 
	already behave as expected when reloading the intermediate Prolog files 
	generated by the Logtalk compiler. For those broken Prolog compilers that 
	do not replace old definitions for dynamic predicates with the new ones, 
	it is not possible for Logtalk to implement a workaround that would work 
	correctly in all cases. Consult the "configs/NOTES.txt" file for more 
	information.

	Corrected a bug when running Logtalk with SWI-Prolog that prevented the 
	use of alternative compilation directories (i.e. turning on the "altdirs" 
	compiler flag).

	Corrected a bug when running Logtalk with SWI-Prolog that can prevent 
	make/0 from recompiling and reloading modified Logtalk source files.

	Added a "configs/swi_set_logtalk_context.pl" file defining a useful but 
	fragile hack implementing a set_logtalk_context/1 built-in predicate for 
	switching the Logtalk top-level execution context to objects other than 
	the pseudo-object "user".

	Updated the CxProlog config file to use the new built-in predicates in 
	version 0.95.

	Updated the Ciao, K-Prolog, and ECLiPSe config files to set the compiler 
	flag "underscore_vars" to "dont_care" in order to avoid spurious warnings 
	with some examples.

	Added predicates depth/2 and variant/2 to the library object "term".

	Much improved "benchmarks" example, updated to allow running tests in 
	three different scenarios: event support on, event support off, and 
	using static binding.


2.29.5 - March 28, 2007

	Added a new built-in predicate, threaded/1, for proving each goal in 
	a conjunction in its own thread, simplifying common multi-threading 
	tasks that previously required sequences of calls to the built-in <commit_msg>Added a default loader file (equivalent to the loader_static_binding file) and rewrite the benchmark to avoid using metacalls (call/1).<commit_after>=================================================================
Logtalk - Object oriented extension to Prolog
Release 2.29.6

Copyright (c) 1998-2007 <NAME>.  All Rights Reserved.
=================================================================


RELEASE NOTES
=============


2.29.6 - April ??, 2007

	Added preliminary support for static binding when sending messages to 
	objects compiled and loaded using the compiler option "reload(skip)".

	Allow non-instantiated arguments at compile time for the multi-threading 
	built-in predicate threaded/1.

	Simplified and optimized the implementation of Logtalk multi-threading 
	support.

	Updated the Logtalk built-in database methods to always interpret rules 
	whose body is the control construct true/0 as facts. Corrected a bug when 
	compiling dynamic predicates that would prevent using of the clause/2 
	built-in database method. Corrected a bug when using the Logtalk built-in 
	database method clause/2 with entities compiled in debug mode. Improved 
	predicate lookup caching when asserting and retracting dynamic facts.

	Improved detection and reporting of entity existence errors.

	Added a quit option, "q", to the Logtalk built-in debugger. Modified the 
	debugger behavior to switch to trace mode when finding a spy point.

	Added two new compiler options, "xmldir" and "tmpdir", allowing a per 
	project definition of directories for storing XML documenting files and 
	for storing intermediate compilation files (e.g. Prolog files). Removed  
	the config file predicate '$lgt_alt_directory'/2. Older config files are
	incompatible with this new Logtalk version.

	Added a shortcut to the Logtalk built-in predicate logtalk_load/1, {}/1,
	to all config files (defined there in order to be easy to comment it out 
	in case of conflict with some Prolog native feature or lack of compliance
	with the ISO Prolog standard regarding the definition of the {}/1 syntax.

	Allow the compiler flag "misspelt" to be set to "error".

	Updated the Logtalk compiler to not try to clean-up the dynamic predicates
	of redefined entities when reloading source files. Most Prolog compilers 
	already behave as expected when reloading the intermediate Prolog files 
	generated by the Logtalk compiler. For those broken Prolog compilers that 
	do not replace old definitions for dynamic predicates with the new ones, 
	it is not possible for Logtalk to implement a workaround that would work 
	correctly in all cases. Consult the "configs/NOTES.txt" file for more 
	information.

	Corrected a bug when running Logtalk with SWI-Prolog that prevented the 
	use of alternative compilation directories (i.e. turning on the "altdirs" 
	compiler flag).

	Corrected a bug when running Logtalk with SWI-Prolog that can prevent 
	make/0 from recompiling and reloading modified Logtalk source files.

	Added a "configs/swi_set_logtalk_context.pl" file defining a useful but 
	fragile hack implementing a set_logtalk_context/1 built-in predicate for 
	switching the Logtalk top-level execution context to objects other than 
	the pseudo-object "user".

	Updated the CxProlog config file to use the new built-in predicates in 
	version 0.95.

	Updated the Ciao, K-Prolog, and ECLiPSe config files to set the compiler 
	flag "underscore_vars" to "dont_care" in order to avoid spurious warnings 
	with some examples.

	Added predicates depth/2 and variant/2 to the library object "term".

	Much improved "benchmarks" example, updated to allow running tests in 
	three different scenarios: event support on, event support off, and 
	using static binding. Moreover, metacalls are no longer used to run 
	the benchmark goals, resulting in much more meaningful and accurate 
	results.


2.29.5 - March 28, 2007

	Added a new built-in predicate, threaded/1, for proving each goal in 
	a conjunction in its own thread, simplifying common multi-threading 
	tasks that previously required sequences of calls to the built-in 
{'fraction_non_alphanumeric': 0.07454431175361408, 'fraction_numerical': 0.01169076052796983, 'mean_word_length': 4.379310344827586, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 2}, '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': '302011', 'n_tokens_mistral': 2184, 'n_tokens_neox': 1937, 'n_words': 1073}