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.
|