summarylogtreecommitdiffstats
path: root/ChangeLog
blob: af03cfa7968c15b5a79ea60b47bf48a172be3154 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
2024-12-05  Jan Burse  <janburse@fastmail.fm>

	Release 1.2.5

	* New library(util/tree): This is the second library we have created that
	is based on the change_arg/3 predicate and provides a non-backtracking
	capable data structure.  This time we created red-black trees.

	* Improved library(aggregate): First, a new implementation using
	library(util/tree) was planned.  But we finally decided to use the faster
	library(util/hash) together with keysort/2.  A new predicate unnumbervars/3
	ensures the creation of variables.

	* bun.js Support: To use bun.js, we fixed a programming error by replacing
	our OS success test with falsy tests (!err).  We found 4 non-critical
	discrepancies with node.js.  The performance lags slightly behind node.js
	because the JavaScript version is older.


2024-11-02  Jan Burse  <janburse@fastmail.fm>

	Release 1.2.4

	* New library(misc/dict): We have moved some predicates from the
	library(misc/json) into our own library(misc/dict).  We made sure that the
	data structure of the Prolog dicts now follows the input order semantics.

	* New library(util/hash): To enable the implementation of hash tables,
	Novacore now has a term_hash/2 predicate.  The implementation differs from
	the Prolog dict in that change_arg/3 is used for destructive updates.  We
	have also dispensed with the input order.

	* Improved library(sequence): Hash tables can easily be used to model sets
	of keys, for example by using the value "true" as an indicator.  This
	allowed us to re-implement the distinct/1 predicate. The use of numbervars/3
	ensures that key variants are identified.


2024-10-03  Jan Burse  <janburse@fastmail.fm>

	Release 1.2.3

	* New atom_time/4: The predicate sys_time_atom/3 is now officially called
	atom_time/3.  The underlying strftime() and strptime() routines can
	represent more than just local time.  We therefore introduced atom_time/4
	with an options list.

	* Improved open/4: The open/4 predicate and its HTTP client functionality
	was removed from library(util/spin) and moved to the core. In addition,
	open/4 can now return options such as the final URL via uri/1 and the
	received headers via fields/1.

	* New http_server_close/1: The HTTP server in library(util/spin) has
	undergone some extensions.  The asynchronous processing has been improved,
	so that HTTP server set-up, HTTP client round trip and HTTP server
	tear-down can be implemented in the same application despite being single
	threaded.