aboutsummaryrefslogtreecommitdiff
path: root/NEWS
blob: 37234f04bd713c61921015ff37a25346e1b31e1c (plain) (blame)
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# -*- mode: org; coding: utf-8 -*-
# Copyright (C) 2021--2023 GNUnet e.V.
# SPDX-License-Identifier: FSFAP
# Copying and distribution of this file, with or without modification,
# are permitted in any medium without royalty provided the copyright
# notice and this notice are preserved.  This file is offered as-is,
# without any warranty.

* Changes since 0.3
** New functionality
   - New tools for writing services -- see ‘Writing service communication code’
     in the manual.  These tools have been used to reduce duplication between
     client code of different services, so tests targeting a single service
     automatically also test the other services a bit.
   - New macro 'analyse', 'construct' and 'define-analyser', to make using
     read%, select% and 'set%', less tedious when the type and slice remains
     the same.  Also, by using the new macros, the code base should now be a
     bit more readible.
   - New 'slice-contents-equal?' procedure.
** Bugfixes
   - A potential (but unverified) bug with automatic collection is fixed --
     previously, if DHT garbage was found multiple times within a single
     reconnection, it might only be found once.  Due to the new unification
     of service code, the same fix automatically applies to all other
     services.
** Documentation
   - For 'make-disconnect!', only a single argument was mentioned in the
     manual, but there were actually two (non-optional!) arguments.  This
     has been rectified.
   - Bytevector slices ((gnu gnunet utils bv-slice)) are now documented in the
     manual, in the chapter ‘Bytevector slices’, albeit not completely.
** API changes
   - The DHT API now uses <hashcode:512> objects from (gnu gnunet hashcode)
     instead of raw /hashcode:512 bytevector slices, for consistency with
     the not-yet-written FS API.  The (gnu gnunet hashcode) module has been
     tweaked to fit the conventions.
* Changes since 0.2
** New functionality
   - New tools for writing services -- have a look at ‘Writing service
     communication code’ and ‘Testing service code’ in the manual for various
     procedures for writing service code and testing it.
   - There is some initial support for CADET in (gnu gnunet cadet client),
     documented in the manual.  However, it is incomplete and reconnection
     is completely untested.
   - DHT searches can now be stopped (‘cancelled’) with 'stop-get!'.
     Additionally, DHT searches are automatically cancelled when the
     search object becomes unreachable.
   - DHT and NSE server objects are automatically disconnected when they become
     unreachable.
   - The new module (gnu gnunet concurrency lost-and-found) can detect if an
     object became garbage-collectable, interacting with guile-fibers.
   - (gnu gnunet utils bv-slice) has been extended.
** API changes
   - (gnu gnunet data-string) now signals bogus input with exceptions instead
     of returning #false.
   - (gnu gnunet utils hat-let) is now more flexible in recognising _ --
     it is now irrelevant whether _ has been imported (from (rnrs base))
     or not.
** Bug fixes
   - Negative floating point numbers are now recognised by the configuration parser.
   - Envelopes now have a 'envelope-peek-irrevocably-sent?' procedure for testing
     if it has been sent.
** Internals
   - (gnu gnunet data-string) has been modified to not mutate any variables.
   - The tests in tests/mq-stream are now more sensitive.
   - Documentation has been split in several files.
   - The configure script tests if the required Guile libraries are available.
** Documentation
   - The ‘message-symbol’ network structure property is now defined for DHT
     messages and documented in the manual.  The aim is to make the code
     a little more self-documenting and understandable.
   - Likewise, a new ‘c-type’ property has been defined, making
     cross-referencing between Scheme and C sources simpler.
   - ‘send-message!’ and ‘priority-preferences’ are documented.
* Changes since 0.1
** Features
   - A DHT client! (gnu gnunet dht client), documented in the manual
   - More specific exceptions in (gnu gnunet utils bv-slice) -- an &missing-capabilities
     exception is now raised instead of an &assertion when appropriate.
** Bug fixes and other ‘non-user facing’ changes
   - The NSE client now accepts NaN as standard deviation instead of printing an error message.
     Sometimes the NSE service sends NaN as standard deviation, see
     <https://bugs.gnunet.org/view.php?id=7021#c18399>.
   - The bytes in a slice are only printed when the slice is readable,
     so unreadability of slices cannot be circumvented with object->string
     anymore.
   - Bytevector slice manipulating code now raises &missing-capabilities
     conditions instead of &assertion when appropriate.