1
1
# Changelog
2
2
3
- ## [ 1.24 .0] - 2024-10-13
3
+ ## [ 1.25 .0] - 2025-6-10
4
4
5
5
@begin {alert}
6
- The release of 1.24 is in progress. The highlights in this list are in
6
+ The release of 1.25 is in progress. The highlights in this list are in
7
7
a draft state.
8
8
@end {alert}
9
9
10
+ ## [ 1.24.0] - 2024-10-13
11
+
12
+ Compiler:
13
+
14
+ - CHANGED: ` primitive_meta_predicate ` replaced by ` primitive(_) ` metatype
15
+ - IMPROVED: (experimental) support for more efficient predicate abstractions
16
+ - IMPROVED: predicates from modules imported later have priority
17
+ - IMPROVED: ` dynamic_clauses ` improvements (source preserving dynamic
18
+ predicates): work in toplevel, preserving indexing, no ` clause/2 `
19
+ duplication
20
+ - FIXED: same visibility rules in toplevel and compiler (latest imported wins)
21
+ - IMPROVED: updated rtchecks documentation
22
+ - IMPROVED: better rtcheck messages when checking program points
23
+ - FIXED: fix rtchecks for empty calls assertions
24
+ - FIXED: do not generate rtchecks for data/dynamic predicates
25
+ - FIXED: do not ignore empty calls assertions (it was a wrong fix for issue above)
26
+ - FIXED: rtcheck for ` gnd/1 ` is ` ground/1 `
27
+
28
+ Engine:
29
+
30
+ - ADDED: recover naive (low-overhead) profiler
31
+ - ADDED: (disabled) experimental code to raise arity limit
32
+ - IMPROVED: naive (cheap) builtin profiler
33
+ - IMPROVED: select engine variant and options with CIAODBG, CIAORTOPTS
34
+ - IMPROVED: better options for profile engine build (no need for
35
+ debugging or C level profiling)
36
+ - IMPROVED: ` functor/3 ` and ` arg/3 ` are ISO compliant
37
+ - FIXED: fix ` prolog_wait ` for win32
38
+ - FIXED: ` select() ` is not available in mingw64, dummy version of ` $input_wait `
39
+ - FIXED: avoid warning for unused var in ` get_execpath() ` for some architectures
40
+ - FIXED: setup ` SIGINT ` handler when forcing interactive
41
+ - FIXED: fix ciaowasm build for more recent Emscripten (emcc 3.1.69)
42
+
43
+ Libraries:
44
+
45
+ - ADDED: new ` io_port_reify:call_with_std_redirect/3 ` predicate
46
+ (fine-grained redirection of stdout/stderr)
47
+ - IMPROVED: dependencies for installation under Guix and Termux
48
+ - IMPROVED: better modes package documentation
49
+ - IMPROVED: ` markdown_parser ` : richer language ids in fenced code blocks
50
+ - IMPROVED: ` stream_wait ` moved into engine
51
+ - IMPROVED: ` system:wait(Pid,Status) ` unifies ` Status ` with negative
52
+ number if the process terminated due to a signal, instead of
53
+ failing.
54
+ - IMPROVED: ` system:shell/\{0,1,2\} ` simplified based on a common
55
+ ` '$exec_shell'/2 ` predicate and ` wait/2 ` .
56
+ - FIXED: fsyntax: ` ^X ` (with X variable) is kept as it is
57
+ - FIXED: fsyntax do not expand inside CLP(Q,R,fd) constraints
58
+ - FIXED: allow ` ;/2 ` , ` =/2 ` , ` false/0 ` in 'pure' package
59
+ - FIXED: clpfd: fix labeling option bisect, fix ` clpfd:maximize/2 `
60
+ - FIXED: missing check in ` atom_chars/2 `
61
+ - FIXED: Fixed several errors in documentation: dangling references
62
+ to sections, wrong commands, syntactic errors, etc. Also some local
63
+ improvements in the text itself as part of these fixes.
64
+
65
+ Documentation:
66
+
67
+ - ADDED: added ` openpg ` library to the manual
68
+ - ADDED: added ` library(profile) ` (naive profiler) to the manual
69
+
70
+ ISO conformance:
71
+
72
+ - IMPROVED: iso_strict: using ` dynamic_clauses ` by default
73
+ - IMPROVED: using ISO semantics for ` functor/3 ` and ` arg/3 ` in compiler and libraries
74
+ - FIXED: ` iso_strict ` : fix ` stream_property/2 ` , fix checks in ` io_mode `
75
+ type for ` open/\{3,4\} ` , ` eof_action ` in ` open/4 ` , (dummy) reposition
76
+ properties, ` current_input/1 ` works with stream aliases too.
77
+
78
+ Ciao emacs mode:
79
+
80
+ - FIXED: Associate temporary directory for LPdoc generation to full path, not basename
81
+ - FIXED: set ` text-quoting-style ` to 'straight' (needed for ` emacs_mode `
82
+ doc generation for Emacs>=25.1)
83
+
84
+ Unit Tests:
85
+
86
+ - ADDED: ` setup/2 ` and ` cleanup/2 ` test properties
87
+ - ADDED: regexp and label filters
88
+ - IMPROVED: unittest moved to core bundle
89
+ - IMPROVED: Allow lists of targets in ` run_tests/3 ` (which can be modules or
90
+ directories)
91
+ - IMPROVED: Major pass over unittest runner and driver implementation
92
+ - IMPROVED: use ` ciaosh ` as loader for unittest runner (no longer an executable)
93
+ - IMPROVED: Fine-grained communication with runner process (one test at a time)
94
+ - IMPROVED: Better pretty print solutions and cases in test reports
95
+ - FIXED: Warning if a target is a directory and ` dir_rec ` is not specified.
96
+ - FIXED: Fixed treatment of filters (and multiple modules) when
97
+ computing/showing summaries.
98
+ - FIXED: Handling of variables shared in calls/success parts but not appearing
99
+ in the predicate head.
100
+ - FIXED: Mark tests with missing output as aborted in all cases
101
+ - FIXED: Set unbuffered input in runner process
102
+
103
+ Debugger:
104
+
105
+ - IMPROVED: document the new d/w/p <av > commands.
106
+ - IMPROVED: print option 'v' shows all variables in scope (not only uninstantiated)
107
+ - IMPROVED: new source var printing (p a, p av, p ao)
108
+
10
109
## [ 1.23.0] - 2024-3-04
11
110
12
111
Build system:
@@ -18,7 +117,7 @@ Build system:
18
117
Compiler:
19
118
20
119
- ADDED: Experimental support for clause translation after module expansion.
21
- - ADDED: '$meta_exp'/3 builtin (explicit meta expansions).
120
+ - ADDED: ` '$meta_exp'/3 ` builtin (explicit meta expansions).
22
121
- ADDED: Hooks to customize handling source debugging information.
23
122
- ADDED: Hooks for toplevel get line.
24
123
- CHANGED: Factorized toplevel and debugger IO (` toplevel_io:top_get_line/1 ` ).
0 commit comments