-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathChangeLog
432 lines (313 loc) · 14.8 KB
/
ChangeLog
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
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
2008-01-07 Klaus Harbo <[email protected]>
* Changed contact info in muproc.{hjml,html}.
2007-04-25 Klaus Harbo <[email protected]>
* muproc.lisp (muproc-find): Changed specializer class to from
simple-base-string to simply, prompted by problem reported by
Masayuki Onjo.
2006-10-24 Klaus Harbo <[email protected]>
* muproc.lisp (muproc-spawn): Simplified - no need for lambda in
muproc-spawn, lambda code moved to `wrapper-function' (which is
renamed to `muproc-process-function').
2006-09-21 Klaus Harbo <[email protected]>
* generic-server.lisp (muproc-generic-call): Changed to allow
calls using muproc reference, not just a registered name.
(muproc-generic-cast): ditto.
2006-07-12 Klaus Harbo <[email protected]>
* Added convenience nicknames for cl-muproc's packages.
* Added support for Allegro Common Lisp, thanks to a patch from
Luis Oliveira.
2006-07-10 Klaus Harbo <[email protected]>
* Removed LW specific process-priority parameter to muproc-spawn.
* Added some extra %with-exclusive-access% clauses to protect
debug printing of special variables (*names*, *ports*, *links*,
*registrations*).
* Added explicit dependencies between .lisp files in
cl-muproc.asd.
* Added support for CMUCL and SBCL, thanks to a patch from
Vladimir Setissov. Patch means introduction of separate lock for
*muproc-errorstream*, with-process-lock introduced to reduce load
on *giant-lock*.
2006-07-07 Klaus Harbo <[email protected]>
* muproc-packages.lisp: Removed %with-lock% and
%without-scheduling%.
* muproc-openmcl.lisp: eliminated use of *without-scheduling*,
saving-place, and %with-lock%.
* muproc-lispworks.lisp: eliminated use of *without-scheduling*,
saving-place, and %with-lock%.
* muproc.lisp: Moved *giant-lock* moved to implementation specific
files.
* cl-muproc.compat::*without-scheduling* eliminated entirely.
* muproc.lisp: %with-exclusive-access% used to serialize
muproc-spawn, instead *muproc-spawn-lock* initially introduced
with support for Open.
2006-07-05 Klaus Harbo <[email protected]>
* Support for OpenMCL added by Rudi Schlatte.
2006-06-08 Klaus Harbo <[email protected]>
* PORTING: Added brief note about the intended structure of
implementation specific code.
* muproc-lispworks.lisp (saving-place): Moved from
muproc-compat.lisp.
* muproc-compat.lisp: Removed -- implementation-specific interface
now documented by cl-muproc.compat package.
2006-05-04 Klaus Harbo <[email protected]>
* Changed package name from :muproc to :cl-muproc, for
consistency.
2006-04-07 Klaus Harbo <[email protected]>
* Fixed error in muproc-schedule
2006-03-15 Klaus Harbo <[email protected]>
* Added :muproc.compat package.
2006-03-13 Klaus Harbo <[email protected]>
* Changed license -- now BSD.
2006-01-03 Klaus Harbo <[email protected]>
* Started work on documentation.
2005-10-07 Klaus Harbo <[email protected]>
* supervisor.lisp (initialize-instance): Changed supervisor
muproc-name to indicate restart-policy.
* muproc.lisp (unwind-muproc): Fixed error - muproc-ports also
need to be unregistered.
* generic-server.lisp (muproc-generic-start): Rewritten to not
spawn a child (necessary to cooperate with supervisor). Got rid
of server-name and other muproc-starting-related arguments in the
process.
(muproc-generic-stop): Removed - use muproc-exit or muproc-kill
instead.
2005-10-06 Klaus Harbo <[email protected]>
* generic-server.lisp (main-loop): Added handling of
exit-after-handler condition.
(muproc-exit-after-handler): Added.
2005-10-05 Klaus Harbo <[email protected]>
* generic-server.lisp (%handle-terminated/reason-msg): Added to
LINKED-EXIT function in server package, if it exists and is
fboundp.
(main-loop): Added call to TERMINATE function in server package,
if it exists and is fboundp.
2005-10-04 Klaus Harbo <[email protected]>
* Changed ASDF name to cl-muproc.
* generic-server.lisp (muproc-define-cast-handler): Fixed error -
should call generic-cast, not generic-call.
(muproc-generic-start): Add in-port and priority keyword
arguments, to match those of muproc-spawn.
* muproc.lisp (muproc-schedule): Added.
(muproc-schedule-relative): Added.
2005-10-03 Klaus Harbo <[email protected]>
* supervisor.lisp (supervisor-state-checker): Added :finished
state for supervisor.
(just-start): Add function to call to obtain arglist for muproc.
(generate-commands): Added exit iff all children are :finished.
2005-09-30 Klaus Harbo <[email protected]>
* supervisor.lisp: Major changes - implemented syntax for
expression supervisor hierarchies, nested supervisors, maximum
terminations per termination period. Still no regression tests.
* muproc.lisp (muproc-exit): Now returns the muproc pertaining to
the exit.
2005-09-28 Klaus Harbo <[email protected]>
* supervisor.lisp: Changed to controller-style. Still not properly
integrated into muproc.
* muproc.lisp (atomically): Added, and undivisible access to
anything now uses this macro, to ensure that locks are not used
when muproc-without-scheduling is active.
(muproc-without-scheduling): Changed to without-preemption is
nested in without-interrupts, because we've seen some spurious
'process-wait called when not allowed' errors which theoretically
could be explained by the reverse nesting.
* muproc.lisp: Removed reader conditionals for allegro - muproc is
nowhere near running on allegro so it's better to remove
indications that it is. I don't think it would be too hard to
make muproc portable, though.
2005-09-27 Klaus Harbo <[email protected]>
* Everywhere: Changed name of `muproc-submit' to `muproc-spawn'
and changed interface to make errorstream a keyword argument
instead of required.
* muproc.lisp: Changed naming conventions such that only function
which are exported from the :muproc package start with `muproc-'.
Only exceptions are functions which return properties of muprocs,
e.g. muproc-lock.
(muprocn): made timeout period and timeout action optional.
* muproc.lisp: Same change for variables.
* muproc.lisp: Added documentation strings where missing for
exported functions.
2005-09-26 Klaus Harbo <[email protected]>
* muproc.lisp (muproc-log-errorstream): Changed to use giant-lock
- instead of without-scheduling, which is necessary for
indivisible muproc wind-down to work.
(unwind-muproc): Added to enable using muproc-without-scheduling
in registering the termination of a muproc.
(muproc-start-fn): Changed as a result of the above.
(muproc-make-interrupt-timer): Added ability to NOT register a
timer (in which case the user is responsible for unscheduling it
before terminating).
(muproc-make-interrupt-timer): Do not remove timer from timer
registry when the timer is not registered.
(muproc-make-interrupt-timer): Removed ability to schedule
interrupts for other processes as it really violates the isolation
ideal we're aiming for. A muproc should send a message
instead. This change has the added benefit that the timer registry
can be made muproc-local, with improved throughput as a result (we
do not have to use the giant lock).
(muproc-exit): Added ability to signal muproc-exit in other
muproc.
2005-09-21 Klaus Harbo <[email protected]>
* muproc.lisp (*muproc-inport* etc.): Added defvars, got rid of
(declare (special ...)) forms.
(muproc-make-interrupt-timer): Added.
(muproc-schedule-timer): Added.
(muproc-schedule-timer-relative): Added.
(muproc-unschedule-timer): Added.
2005-09-19 Klaus Harbo <[email protected]>
* muproc-packages.lisp (:muproc): Added export of muproc-link (why
wasn't it exported before?!)
* generic-server.lisp (muproc-generic-stop): Added warn when
unknown messages are received.
(%generic-start): Changed so server-initialization occurs in
spawned process, rather than spawning process.
(muproc-generic-stop): Changed to a macro, to allow defaulting of
server-name based on *default-server-name* in server package.
(%handle-terminated/reason-msg): Added handling of termination
messages from linked processes -- tries to call `linked-exit'
function in server-package.
(muproc-define-call-handler): Added proper handling of
docstrings.
(muproc-define-cast-handler): Added proper handling of
docstrings.
2005-09-16 Klaus Harbo <[email protected]>
* tests/gensrv1-test.lisp: Added - rtests for gensrv1.
* tests/gensrv1.lisp: Added. Basic generic server for testing --
can store values in a hash-table store.
* tests/muproc-test-util.lisp: Added for sharing functionality
among testing modules.
* tests/muproc-test.asd: Added to enable easy loading of muproc
tests.
* generic-server.lisp: Added generic server -- a way to define
muproc services with code-generated message passing based on the
service functions defined. Supports both synchronous and
asynchronous calls.
* muproc.lisp (muproc-condition): Added id and aux fields.
(muproc-address-p): Added.
(muproc-name-p): Added.
(muproc-submit): Changed formatting of muproc namestrings.
(muproc-port-name-p): Added.
(muproc-find): Added lookup by symbol (no longer just be regex by
way of cl-ppcre).
2005-09-14 Klaus Harbo <[email protected]>
* muproc.lisp (mumsg-receive, mumsg-send): Major name change.
Sending and receiving of MUMSGs is now accomplished using the
operators `mumsg-send' and `mumsg-receive'. (Formerly known as
`muproc-send' and `muproc-receive', respectively).
(muproc-send): New functionality (do NOT confuse with former
incarnation, which is now known as `mumsg-send') -- allows the
sending of any data, not just MUMSGs.
(muproc-receive): New funtionality (do NOT confuse with former
incarnation, which is now known as `mumsg-receive') -- allows the
receiving of any data, not just MUMSGs. Do not perform in
scanning on input port, simply retrieves first available data from
input port.
(muproc-start-fn): Added handler-case protection of unwinding
forms to ensure that unwinding completes even on error paths.
2005-09-13 Klaus Harbo <[email protected]>
* muproc.lisp: Moved some stuff around (macros at top).
(muproc-submit): handler-case added around with-scheduling form,
to ensure that errors are handled outside it, the theory being
that this will eliminate the 'process-wait called...'-error we've
been seeing.
(muproc-without-scheduling): Added mp:without-interrupts to LW
version.
(muproc-log-errorstream): No longer uses *giant-lock*, but
without-scheduling. (But should NOT re-introduced 'process-wait
called while not allowed'-errors!)
(register-muproc-name): Added.
(unregister-muproc-name): Added.
(muproc-submit): Added registration of muproc-name, with check
that the name is unique.
(muproc-start-fn): Added de-registration of muproc-name.
(muproc-send): It no longer an error to send a message to a muproc
which has terminated, unless it is sent via a named port.
2005-09-12 Klaus Harbo <[email protected]>
* muproc.lisp (muproc-send): Added retry when sending to a named
port, but the cached name-port mapping points to a port to a
muproc which has already terminated.
(muproc-monitor): Added. Also changed representation of links
between muprocs to accomodate asymmetric as wells symmetric linkage.
2005-09-09 Klaus Harbo <[email protected]>
* muproc.lisp (*muproc-packet*,*muproc-mumsg*,muproc-receive):
Added symbol which is lexically bound by `muproc-receive' to be
the value of the data retrieved from the input port. Likewise
*muproc-mumsg* is bound to the value of the PAYLOAD of the packet.
(muproc-get-field): Added function to retrieve the fields of MUMSG
objects. (Exported from package.)
(muproc-unmatched-input-count): Added.
(muproc-unmatched-input-p): Added.
(muproc-packet-age): Added, as well as :sent-at field in all
packets sent by muproc-send.
(muproc-discard-all-pending-input): Removed use of *giant-lock* --
does not seem necessary.
(muproc-get-field): Added.
2005-08-25 Klaus Harbo <[email protected]>
* muproc.lisp (pack-msg/packet): Changed to use keywordp.
2005-08-24 Klaus Harbo <[email protected]>
* muproc.lisp (muproc-log-errorstream): Changed to use giant lock
instead of without-scheduling in an attempt to eliminate
"process-wait called when not allowed"-errors.
(muproc-send-to-terminated-muproc-error): Added new condition to
enable recognition of sending messages to terminated muprocs.
* muproc.lisp (muprocn): Improved to handle multiple
values.
* muproc.lisp (muproc-debug): Added macro to control
level of debugging output, got rid of all
#+(or) (muproc-log-errorstream ...)
forms. Default debugging level (0) reports abnormal termination,
but not normal so log flooding due to processes terminating is
eliminated. Set level to 1 to get normal terminations, 'real'
debug messages are at level 3.
2005-08-15 Edi Weitz <[email protected]>
* muproc.lisp (muproc-log-errorstream): Changed order of
definitions because MUPROC-WITHOUT-SCHEDULING was used before it
was defined.
2005-07-07 Edi Weitz <[email protected]>
* muproc.lisp (muproc-log-errorstream): Fixed typo in
doc string.
2005-07-06 Klaus Harbo <[email protected]>
* muproc.lisp (muproc-log-errorstream): Added muproc name to
output from muproc-log-errorstream. Also removed muproc
identifier from a few log entries.
2005-07-05 Klaus Harbo <[email protected]>
* muproc.lisp: Added docstrings for *muproc-inport*,
*muproc-errorstream*, *muproc-named-ports*, and
*muproc-pending-input*.
* muproc-package.lisp: Now exporting
*muproc-errorstream* and *muproc-inport*.
2005-07-01 Klaus Harbo <[email protected]>
* muproc.lisp (with-debugging-stack): Added debugging stack, to
enable stack dumps etc.
(muproc-signal-linked-muprocs): Added lock on signalling to linked
muprocs.
2005-06-24 Klaus Harbo <[email protected]>
* muproc.lisp (muproc-discard-all-pending-input): Added ability
for a muproc to discard all its pending input:
'muproc-discard-all-pending-input'. Useful/necessary when
restarting.
2005-06-22 Edi Weitz <[email protected]>
* muproc.lisp (muproc-send): Add registered ports to documentation
string.
2005-06-21 Edi Weitz <[email protected]>
* muproc.lisp (muproc-receive): Change &REST to &BODY for better
SLIME indentation.
2005-06-18 Klaus Harbo <[email protected]>
* muproc.lisp (muproc-with-message-tag): Added
`muproc-with-message-tag', for "uniqifying" requests for
subsequent matching in `muproc-receive', and `muproc-msgtag=' for
comparing two tags for equality.
2005-06-16 Klaus Harbo <[email protected]>
* muproc.lisp (muproc-submit): Added support for process priority
- default: inherit from parent process.
2005-06-14 Klaus Harbo <[email protected]>
* muproc.lisp (muproc-start-fn): Added code to set mailbox of
*muproc-inport* to NIL to ensure that an error occurs if any
process tries to send messages to that port.
* muproc.lisp (muprocn): Added return value, by way of mp:mailbox.
Interface change, though, now requires timeout value and timeout
form.
2005-06-13 Klaus Harbo <[email protected]>
* muproc.lisp (muproc-submit): Added new indefinite extent
variable *muproc-named-ports*.
(muproc-send): Added ability to send to named ports with automatic
lookup of port.