forked from ocsigen/lwt
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCHANGES
265 lines (234 loc) · 10.6 KB
/
CHANGES
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
===== 2.4.5 (trunk) =====
* do not raise an exception in Lwt_log if argv[0] is blank
===== 2.4.4 (2013-10-22) =====
* add Android support
* fix issues in stubs for Lwt_unix jobs
* fix compatibility issue with OCaml 4.01
* fix the stub for ev_timer_init
* add Lwt.log containing Lwt_log_core, the Unix-free part of Lwt_log
* add Lwt_ssl.get_fd
* fix stdout/stderr redirections in Lwt_daemon.daemonize
* add Lwt_list.{map,iter}i{_s,_p}
===== 2.4.3 (2012-12-27) =====
* fix Lwt_ssl.{in,out}_channel_of_descr: shutdown and close the
socket when the channel is closed
===== 2.4.2 (2012-09-28) =====
* fix the stub for Lwt_unix.readdir
* change the default method for Lwt_glib.install
(use the glib main loop by default: more portable)
* ignore invalid file descriptors returned by glib
(like the emulation of select in glib does)
* use environment variables in discover.ml
- use LIBRARY_PATH and C_INCLUDE_PATH for searching headers
- allow to pass flags for a library in <LIB>_CLFAGS and <LIB>_LIBS
* add Lwt_unix.on_signal_full
===== 2.4.1 (2012-08-22) =====
* Add Lwt_stream.on_terminate
* Fix Lwt_gc
* Fix stubs for get_credentials on *BSD
===== 2.4.0 (2012-07-16) =====
* Reimplement Lwt_stream
- much simpler and more efficient
- do not use Weak
- add bounded push streams
* Add Lwt.async
* Add Lwt_preemptive.run_in_main
* Implement Lwt_unix.get_credentials on MacOS X/OpenBSD
* Ensure that on_cancel functions are executed first
* Better implementation of Lwt.cancel with more tests
* Simplify the API for unix jobs
* Better handling of the master lock in libev stubs
* Windows fixes/updates:
- pass -lws2_32 instead of ws2_32.lib if building with mingw
- fix a bug causing Lwt_unix.read/write to block when a socket
is not readable/writable
- port Lwt_process and Lwt_unix.system to Windows
* Compatibility with OCaml 4.00:
- add O_SHARE_DELETE to Lwt_unix.open_flag
- add -package compiler-libs.toplevel for files using Toploop
* Do not use module Sys for signal handling to avoid
OCaml code to be called in a C thread
* Fix Lwt_unix.wrap_syscall: try instead of Lwt.catch
* Fix a dead-lock between lwt_unix_send_notification
and lwt_unix_recv_notifications
* Fix #277: add a function to return the Ssl.socket of a Lwt_ssl.socket
* Fix problems with C libraries detection/linking
===== 2.3.2 (2011-11-04) =====
* Add location informations in logs:
** allow loggers to get the current location through local storage
** pass current location to logging functions
** pass the current location with the syntax extension
* Add Lwt.on_termination
* Add Lwt_unix.reinstall_signal_handler
* Add Lwt_io.flush_all
* Add assert_lwt keyword to the syntax extension
* Add Lwt.wrap
* Add Lwt_glib.iter and Lwt_glib.wakeup
* OCaml 3.13 ready
* Allow to compile without libev support
* Fix bugs in Lwt_io
* Better handling of forks
* Fix many problems on Windows
===== 2.3.1 (2011-07-13) =====
* Fix building of documentation when using the tarball
* Add Lwt_unix.fsync and Lwt_unix.fdatasync
* Fix the stubs for Lwt_unix.send_msg when fd-passing is not
available
* Add -lwt-sequence-strict option to the syntax extension
* Use a custom PRNG state for Lwt.choose and Lwt.pick
* Fix a display glitch when starting the toplevel
* Add Lwt_unix.fork which should now be used when one want to use
Lwt in the child process
* Better implementation of Lwt_unix.readlink and
Lwt_unix.gethostbyname, which fixes compilation on Hurd
* Add Lwt.wakeup_later and Lwt.wakeup_later_exn to be used when one
need to do lot of nested wakeup, which fixes a buffer overflow in
Lwt_mutex
* Fix Lwt_unix.abort and Lwt_unix.close (threads was never wakeup)
* Fix Lwt_throttle for correct timings
* Fix subtle use of cancel
===== 2.3.0 (2011-04-12) =====
* Add an extensible system of engines to:
** allow the user to replace libev by another event system, such
as select
** allow easier integration of external libraries supporting
asynchronous operations
* Lots of improvements for Windows:
** use the OCaml select instead of libev by default on Windows
** make asynchronous operations on non-socket file descriptors
such as pipes to work
** make glib integration to work
* Better use of engines in Lwt_unix: now events are cached to minimize
the amount of calls to epoll_ctl
* Use an eventfd when possible for notifications for faster delivery
* Add modules:
** Lwt_sys: allow to test availability of extra features
** Lwt_react: replace Lwt_event and Lwt_signal
* Allow to configure logging rules at runtime in Lwt_log
* Add match_lwt and while_lwt to the syntax extension
* Fixes:
** syntax extension: handle "lwt ... = ... in ..." at toplevel
** make the notification system fork-proof
** fix an issue with stubs not raising correctly exceptions
===== 2.2.1 (2011-01-26) =====
* Better interaction with Js_of_OCaml.
* Add functions {{{Lwt.register_pause_notifier}}} and {{{Lwt.paused_count}}}.
===== 2.2.0 (2010-12-13) =====
* Bugfixes:
** Fix a bug with cancellable threads causing {{{Canceled}}}
exceptions to be raised randomly
** Fix a fd-leak in Lwt_io.open_connection
* {{{Lwt_unix}}} now use libev instead of select
* Add thread local storage support to {{{Lwt}}}
* Add backtrace support to {{{Lwt}}}. Now {{{Lwt}}} exceptions can
be recored by using the syntax extension with the {{{-lwt-debug}}}
command line switch.
* Allow blocking system calls to be executed in parallels
* Change the type of many functions of {{{Lwt_unix}}}, which now
return a {{{Lwt}}} thread
* Add functions {{{Lwt_unix.readable}}} and {{{Lwt_unix.writable}}}
* Add function {{{Lwt_io.is_busy}}}
* Add functions {{{Lwt_event.delay}}} and {{{Lwt_signal.delay}}}
* Add function {{{Lwt_term.render_update}}}
* Add function {{{Lwt_ssl.embed_socket}}}
* Add module {{{Lwt_bytes}}} defining operations on bigarrays
instead of strings
* Use bigarrays in Lwt_io instead of strings for the internal buffer.
Lwt_io.make now takes a function that uses a bigarray.
* Add module {{{Lwt_switch}}}
===== 2.1.1 (2010-06-13) =====
* Many bugfixes, including:
** buggy behaviour of cancellable threads
** file descriptor leakage in {{{Lwt_unix.accept_n}}}
* Add {{{Lwt.nchoose}}} and {{{Lwt.npick}}}
* Use {{{set_close_on_exec}}} for fds created by {{{Lwt_log}}}
* Better implementation of lwtized react functions
===== 2.1.0 (2010-04-19) =====
* Rename {{{Lwt.select}}} to {{{Lwt.pick}}}
* Removing module {{{Lwt_monitor}}} in favour of {{{Lwt_mutex}}} and
new module {{{Lwt_condition}}}
* More react helpers:
** {{{Lwt_event.next}}}
** {{{Lwt_event.limit}}} and {{{Lwt_signal.limit}}}
** {{{Lwt_event.from}}}
* Adding function {{{Lwt_main.fast_yield}}}
* Adding unit tests
* Optimisation of {{{Lwt}}}
* Adding module {{{Lwt_log}}} for logging
* Adding a camlp4 filter for remmoving logging statement or inlining
tests
* Adding module {{{Lwt_daemon}}}
* Adding function {{{Lwt_unix.recv_msg}}} and {{{Lwt_unix.send_msg}}}
* Adding function {{{Lwt_unix.wait4}}}
* Adding function {{{Lwt_io.establish_server}}}
* Adding module {{{Lwt_list}}}
* Enhancement in {{{Lwt_process}}}, it now support redirections and
timeouts
* Allow to use {{{select}}} on arbitrary high file descriptors
* More commands and features in {{{Lwt_read_line}}}:
** Handle "undo" command
** New controlable read-lines instances
** More edition commands
** Completion as you type
** Backward search
* Enhancement in {{{Lwt_term}}}: more drawing functions and allow to
put the terminal into drawing mode
* Optimisation of {{{Lwt_stream}}}
* Optimisation of {{{Lwt_io.write_char}}} and {{{Lwt_io.read_char}}}
* Bugfix of {{{Lwt_stream}}}: two parallel {{{Lwt_stream.get}}}
returned the same value
* Bugfix in {{{Lwt_unix.connect}}}: it returned immediately on EINPROGRESS
* Bugfixes in {{{Lwt_glib}}}: file descriptors were not monitored correctly
===== 2.0.0 (2009-10-15) =====
* Adding modules:
** {{{Lwt_stream}}}: lwt-aware version of the {{{Stream}}} module
** {{{Lwt_gc}}} for using {{{finalise}}} without
{{{Lwt_unix.run}}}
** {{{Lwt_io}}}: a new implementation of buffered channels with
more features and better handling of concurrent access
** {{{Lwt_text}}}: implementation of text channels
** {{{Lwt_process}}}: helpers to spawn processes and communicate
with them
** {{{Lwt_main}}} for abstracting the main loop and allowing
replacement by a custom main loop
** {{{Lwt_glib}}} for integration into the glib main event loop
** {{{Lwt_term}}} for interaction with the terminal
** {{{Lwt_read_line}}} for interactive user input
** {{{Lwt_monitor}}}, {{{Lwt_mvar}}}: combined locks for
synchronization with conditional variables for notification
** {{{Lwt_throttle}}} for limiting rate of execution
(e.g. for authentication procedure)
** {{{Lwt_sequence}}}: mutable sequence of elements
** {{{Lwt_event}}}, {{{Lwt_signal}}}: helpers for reactive
programming with lwt
* Adding a syntax extension {{{pa_lwt}}}:
** handles anonymous bind {{{a >> b}}}
** adds syntactic sugar for catching errors (ticket #6)
** adds syntactic sugar for parallel let-binding construction
** adds syntactic sugar for for-like loops
* Top-level integration:
** threads can runs while reading user input
** line editing support
* New enhanced OCaml toplevel with some basic completion features
* Adding C stubs to reimplement {{{Unix.read}}} and {{{Unix.write}}}
with assumption of non-blocking behaviour
* Adding more functions/helpers in {{{Lwt}}}
* Fixing memory leaks in {{{Lwt.choose}}}
* Bugfix in {{{Lwt_chan.close_*}}} (ticket #66)
* Separate the type of threads (covariant) from the type of thread
wakeners (contravariant); the type of many functions related to
{{{Lwt.wait}}} has been changed
* Add cancelable threads
* Unix-dependent part is now put in its own archive and findlib
package.
===== 1.1.0 (2008-06-25) =====
* Adding module {{{Lwt_pool}}} for creating pools (for example pools
of connections)
* Adding a few functions in {{{Lwt_chan}}}
* Fixing bugs in {{{Lwt_util.map_serial}}} and
{{{Lwt_util.iter_serial}}}
* Putting {{{Lwt_preemptive}}}, {{{Lwt_lib}}} and {{{Lwt_ssl}}} in
separate libraries and findlib subpackages so that lwt.cma depends
only on unix.cma.
===== 1.0.0 (and before) =====
* See Ocsigen changelog