aboutsummaryrefslogtreecommitdiff
path: root/CHANGES
diff options
context:
space:
mode:
Diffstat (limited to 'CHANGES')
-rw-r--r--CHANGES75
1 files changed, 40 insertions, 35 deletions
diff --git a/CHANGES b/CHANGES
index 1c89aaf..a4d88dd 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,49 +1,54 @@
1CHANGES: 1CHANGES:
2 2
3CHANGE 2: BGe 11-Jun-24 3CHANGE 2: BGe 04-Jul-24
4 * Internal changes
5 - Lanes is implemented in C++20: thread, condition_variable, mutex, string_view, variant, lambdas, templates, and more!
6 - Almost all platform-specific code is gone (only a small bit for thread priority and affinity remains).
7 - Decoda support inactive by default.
8 - Deep userdata interface fully revamped to C++20 too.
4 * Lanes API changes 9 * Lanes API changes
5 - Version is now 4.0.0 10 - Version is now 4.0.0
6 - Lanes configuration settings: 11 - Lanes module:
7 - Boolean parameters only accept boolean values. 12 - lanes.sleep() accepts a new argument "indefinitely" to block forever (until hard cancellation is received).
8 - allocator provider function is called with a string hint to distinguish internal allocations, lane and keeper states. 13 - function set_debug_threadname() available inside a Lane is renamed lane_threadname(); can now both read and write the name.
9 - demote_full_userdata removed. Use __lanesconvert instead.
10 - keepers_gc_threshold added. Controls when GC runs inside keepers.
11 - nb_keepers changed to nb_user_keepers. limited to 100 keepers on top of the internal keeper used by the timer Linda.
12 - strip_functions added. Only useful for Lua 5.3+.
13 - verbose_errors removed. Use lane error_trace_level instead.
14 - with_timers is false by default.
15 - Full userdata conversion:
16 - __lanesignore removed. Use __lanesconvert instead.
17 - __lanesconvert added.
18 - Lanes API and behavior:
19 - new generator lanes.coro() to start a lane as a coroutine.
20 - new function lanes.finally(). Installs a function that gets called at Lanes shutdown after attempting to terminate all lanes. 14 - new function lanes.finally(). Installs a function that gets called at Lanes shutdown after attempting to terminate all lanes.
21 - If some lanes still run at shutdown, Lanes with throw an exception (or freeze, this is to be decided). 15 If some lanes still run after the finalizer, Lanes with throw an exception or freeze, depending on its return value.
22 - lanes have a __close metamethod that calls join(). 16 - Configuration settings:
23 - lanes can no longer be "killed" by hard-stopping their thread without any resource cleanup (see lane:cancel()). 17 - Boolean parameters only accept boolean values.
24 - lane:join() returns nil, error in case of problem. 18 - allocator provider function is called with a string hint to distinguish internal allocations, lane and keeper states.
19 - demote_full_userdata removed. Use __lanesconvert instead (see below).
20 - keepers_gc_threshold added. Controls when GC runs inside keepers.
21 - nb_keepers changed to nb_user_keepers. limited to 100 keepers on top of the internal keeper used by the timer Linda.
22 - strip_functions added. Only useful for Lua 5.3+.
23 - verbose_errors removed. Use lane error_trace_level instead.
24 - with_timers is false by default.
25 - Lanes:
26 - Can no longer be "killed" by hard-stopping their thread without any resource cleanup (see lane:cancel()).
27 - lanes.gen() settings:
28 - stricter check of base libraries (can raise an error if it doesn't exist in the Lua flavor it's built against).
29 - error_trace_level added. Replaces the global verbose_errors setting.
30 - name added. Can be used to set the name early (before the lane body calls lane_threadname()).
31 - New generator lanes.coro() to start a lane as a coroutine.
32 - New __close metamethod that calls join().
33 - lane:join()
34 - Returns nil, error in case of problem.
35 - Forces lane function body must return a non-nil first value on success because of the above.
25 - lane:get_debug_threadname() renamed get_threadname(). 36 - lane:get_debug_threadname() renamed get_threadname().
26 - lane function body must return a non-nil first value on success if lane is waited upon with lane:join().
27 - lanes.sleep() accept a new argument "indefinitely" to block forever (until hard cancellation is received).
28 - lanes.gen() is stricter wrt base libraries (can raise an error if it doesn't exist in the Lua flavor it's built against).
29 - function set_debug_threadname() available inside a Lane is renamed lane_threadname(); can now both read and write the name.
30 - Lindas: 37 - Lindas:
31 - providing "auto" as name when constructing a Linda cause Lanes to provide a name built from the source location of the construction. 38 - lanes.linda()
32 - specifying a group to lanes.linda() is mandatory when Lanes is configured with user Keepers. 39 - Arguments can be provided in any order.
40 - Accepts a callback to be invoked by __close (see below).
41 - Providing "auto" as name when constructing a Linda cause Lanes to provide a name built from the source location of the construction.
42 - Specifying a group to lanes.linda() is mandatory when Lanes is configured with user Keepers.
33 - linda:deep() result no longer contains the raw C pointer of the Linda object. 43 - linda:deep() result no longer contains the raw C pointer of the Linda object.
34 - linda :receive(), :send(), :get(), :set(), :limit() return nil, error in case of problem. Returned values in case of success change too. 44 - linda :receive(), :send(), :get(), :set(), :limit() return nil, error in case of problem. Returned values in case of success change too.
35 - linda:limit() can be used to read the value if no new limit is provided. 45 - linda:limit() can be used to read the value if no new limit is provided.
36 - Lindas have a __close metamethod that calls any suitable handler that was provided at Linda creation. 46 - New __close metamethod that calls any suitable handler that was provided at Linda creation.
37 - linda:dump outputs <key>.limit as 'unlimited' instead of -1 for unlimited keys. 47 - linda:dump outputs <key>.limit as 'unlimited' instead of -1 for unlimited keys.
38 - deep userdata are an acceptable key to send data into (for example, another linda). 48 - Deep userdata are an acceptable key to send data into (for example, another linda).
39 - Lane generator settings: 49 - Full userdata conversion:
40 - error_trace_level added. Replaces the global verbose_errors setting. 50 - __lanesconvert added.
41 - name added. Can be used to set the name early (before the lane body calls lane_threadname()). 51 - __lanesignore removed. Use __lanesconvert instead.
42 * Internal changes
43 - Lanes is implemented in C++20: thread, condition_variable, mutex, string_view, variant, and more!
44 - Almost all platform-specific code is gone (only a small bit for thread priority and affinity remains).
45 - Decoda support inactive by default.
46 - Deep userdata interface fully revamped to C++20 too.
47 52
48CHANGE 1: BGe 9-Apr-24 53CHANGE 1: BGe 9-Apr-24
49 * reset changelog, next entry will list API changes since last C-implementation. 54 * reset changelog, next entry will list API changes since last C-implementation.