1 Sat Mar 1 00:10:38 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3 * * debug.scm: *Warning* This feature is a bit premature. I add
4 it anyway because 1. it is very useful, and, 2. you can start
5 making it less premature by complaining to me and by modifying
7 (trace): Given one or more procedure objects, trace each one.
8 Given no arguments, show all traced procedures.
9 (untrace): Given one or more procedure objects, untrace each one.
10 Given no arguments, untrace all traced procedures. The tracing in
11 Guile have an advantage to most other systems: We don't create new
12 procedure objects, but mark the procedure objects themselves.
13 This means that also anonymous and internal procedures can be
16 * boot-9.scm (error-catching-loop): Added handling of apply-frame
17 and exit-frame exceptions.
19 * * boot-9.scm (assert-repl-prompt, the-prompt-string): Removed.
20 (set-repl-prompt!): Setter for repl prompt.
21 (scm-style-repl): If prompt is #f, don't prompt; if prompt is a
22 string, display it; if prompt is a thunk, call it and display its
23 result; otherwise display "> ".
24 (Change suggested by Roland Orre <orre@nada.kth.se>.)
26 * r4rs.scm (%load-verbosely): Reverted change to
27 `module-defined?', since the module system isn't bootstrapped when
28 we load r4rs.scm. This is just a temporary fix to make the
29 repository version runnable.
31 Thu Feb 27 23:25:47 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
33 * boot-9.scm: Removed the enabling of debug evaluator and
34 recording of source code positions. This was placed there for our
35 convenience, but it has already sneaked into the distribution
36 once... so we'd better add this in our local copies instead when
37 we need it. (These options are normally enabled at the end of
38 boot-9.scm when loading the debug module.)
40 Thu Feb 27 16:04:45 1997 Marius Vollmer <mvo@zagadka.ping.de>
42 * boot-9.scm (module-defined?): New function.
43 (macroexpand-1, macroexpand): Use local-ref instead of defined?
45 * r4rs.scm (%load-verbosely): Use "module-defined?" instead of
47 * slib.scm (defined?): New function to take the place of the
48 builtin "defined?". It allways examines the slib module.
50 Mon Feb 24 21:46:15 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
52 * configure.in: Added AM_MAINTAINER_MODE
54 Sat Feb 15 04:51:20 1997 Gary Houston <ghouston@actrix.gen.nz>
56 * boot-9.scm (read-sharp): define directly, don't go through a
59 Tue Feb 11 08:45:48 1997 Gary Houston <ghouston@actrix.gen.nz>
61 * boot-9.scm (uniform-vector-set!): use uniform-array-set1!, not
62 uniform-vector-set1! which doesn't exist.
64 Mon Feb 10 03:01:48 1997 Mikael Djurfeldt <mdj@kenneth>
66 * boot-9.scm (backtrace): Removed. (A C version now exists in
69 Fri Jan 24 06:05:36 1997 Gary Houston <ghouston@actrix.gen.nz>
71 * boot-9.scm (read-line!, read-delimited!, read-delimited,
72 read-line): new procedures, see libguile/ChangeLog.
74 Thu Jan 16 17:07:03 1997 Marius Vollmer <mvo@zagadka.ping.de>
76 Added dynamic linking of modules. See libguile/DYNAMIC-LINKING.
78 * boot-9.scm (split-c-module-name, convert-c-registered-modules,
79 init-dynamic-module, dynamic-maybe-call,
80 find-and-link-dynamic-module, link-dynamic-module,
81 try-module-dynamic-link, registered-modules): New definitions for
82 dynamic linking of modules.
83 (resolve-module): Try to dynamically link the requested module
84 after failing to load it as Scheme code.
86 Wed Jan 8 05:50:14 1997 Gary Houston <ghouston@actrix.gen.nz>
88 * boot-9.scm (getservbyport, getservbyname): remove stray %.
90 Tue Jan 7 20:02:24 1997 Jim Blandy <jimb@floss.cyclic.com>
92 * boot-9.scm (and=>): Rename THUNK argument to PROCEDURE, 'cos
95 * lineio.scm (make-line-buffering-input-port): Properly test for
96 the case of an empty buffer list. The old code assumed that '()
99 Mon Jan 6 01:13:53 1997 Mikael Djurfeldt <mdj@kenneth>
101 * * boot-9.scm (use-modules): New macro (from Marius Vollmer).
102 (use-modules <module name> ...) Put the the modules named by
103 <module name> ... on the use list of the current module.
105 Sun Jan 5 15:52:59 1997 Jim Blandy <jimb@floss.cyclic.com>
107 * boot-9.scm (error-catching-loop): Remove message saying that
108 typing "$" will put you in the debugger. This isn't implemented
111 Sun Dec 22 23:27:25 1996 Jim Blandy <jimb@floss.cyclic.com>
113 * boot-9.scm (delq-all!): Function deleted; delq!'s semantics have
114 been fixed, so this function is superfluous.
115 (transform-usage-lambda): Use delq!, not delq-all!.
117 Tue Dec 17 20:36:45 1996 Marius Vollmer <mvo@zagadka.ping.de>
119 * boot-9.scm (resolve-module): New optional parameter that
120 controls whether autoloading is attempted or not. Default is #t.
121 (process-define-module): Don't autoload the defined module.
122 (try-module-autoload): Don't autoload the directory modules.
124 * boot-9.scm (process-define-module): Ensure that the-scm-module
125 is last in the `uses' list to allow shadowing builtin
126 bindings. All :use-module options are added in the order they
127 appear in the arguments but before anything already on the list
128 (such as the-scm-module).
130 Wed Dec 11 21:06:05 1996 Gary Houston <ghouston@actrix.gen.nz>
132 * slib.scm (slib-parent-dir): throw error if #f returned from
135 Sat Nov 30 23:57:28 1996 Tom Tromey <tromey@cygnus.com>
137 * PLUGIN/greet, PLUGIN/split.sed, PLUGIN/this.configure: Removed.
138 * Makefile.am, aclocal.m4: New files.
139 * configure.in: Updated for Automake.
141 Wed Nov 27 14:16:14 1996 Marius Vollmer <mvo@zagadka.ping.de>
143 * boot-9.scm (macroexpand-1, macroexpand), slib.scm
144 (slib:features), r4rs.scm (%load-verbosely): "defined?" is now a
145 function, use it accordingly.
147 Thu Nov 21 11:12:10 1996 Jim Blandy <jimb@floss.cyclic.com>
149 It's an "eval closure", not an "eval thunk." A thunk is a
150 function of no arguments.
151 * boot-9.scm (module-type): Rename module field.
152 (make-module, eval-in-module, make-root-module,
153 set-current-module): Uses changed.
154 (module-eval-closure, set-module-eval-closure!,
155 root-module-closure): Renamed from module-eval-thunk,
156 set-module-eval-thunk!, root-module-thunk.
157 (set-current-module): Change uses of *top-level-lookup-thunk* to
158 *top-level-eval-closure*.
160 Wed Nov 20 14:45:27 1996 Jim Blandy <jimb@totoro.cyclic.com>
162 * slib.scm (slib-parent-dir): Use string-length, not length.
163 (Thanks to Bernard Urban.)
165 Sat Nov 2 20:00:42 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
167 * boot-9.scm: The debugging evaluator and recording of positions
168 aren't enabled by default any longer (they are switched on in
169 debug.scm). But during development we want to have them also
170 *inside* boot-9.scm. Therefore, two lines are added at the
171 beginning of boot-9.scm to enable these.
173 Call `provide' so that `records' are included among the
176 The scheme for saving the stack has been adjusted: save-stack is
177 now commonly available for saving the stack. Calling `save-stack'
178 sets a flag `stack-saved?' which prevents overwriting the stack.
179 `stack-saved?' is reset at `abort'.
181 Spelling correction: seperate --> separate.
183 Removed `:'s that had creeped into some comments.
185 The repl now doesn't print #<unspecified> results any longer
186 If the user wants to see this, he can do
187 (assert-repl-print-unspecified #t) in his startup file.
189 The user now gets a friendly message instead of a backtrace at
192 Added `before-read-hook'.
194 Load module (ice-9 emacs) if option `-e' was specified.
196 (provide): New function.
198 (error): Save stack at entry, so that Guile entrails won't show up
201 (backtrace): New function.
203 (save-stack): Can now take arbitrary number of stack narrowing
204 specifier pairs. The first specifier in a pair controls inner
205 border, the second the outer border. A number means cut that
206 number of frames, a procedure object means cut until that object
207 is found in operator position in a frame.
209 * debug.scm: Enable debugging evaluator and recording of positions
212 * slib.scm (slib:load): Adapt to the new behavior of
213 primitive-load: It doesn't any longer try both with and without
214 ".scm" extension. (We don't want to use %search-load-path here.)
216 (implementation-vicinity): New function. slib requires it
218 (library-vicinity): Updated.
220 Load "require.scm" in the library-vicinity.
222 (install-require-vicinity, install-require-module): New functions.
224 Mon Oct 28 17:56:29 1996 Jim Blandy <jimb@floss.cyclic.com>
226 * boot-9.scm (load-from-path): New function.
228 * boot-9.scm (try-load, basic-try-load, try-load-module,
229 try-load): Deleted. I don't think they're being used.
231 * Makefile.in (scm_files): Add r4rs.scm and test.scm to this list,
232 so they'll get distributed.
234 Get Guile to be a little less chatty by default. The new user
235 should see as little clutter as possible.
236 * r4rs.scm (%load-verbosely): Make this #f by default.
237 * boot-9.scm (scm-repl-verbose): Make this #f by default.
238 (scm-style-repl): Don't run 'pk' on the value passed to quit.
240 * r4rs.scm: New file.
241 * boot-9.scm: Load r4rs.scm, first thing.
242 (OPEN_READ, OPEN_WRITE, OPEN_BOTH, *null-device*, open-input-file,
243 open-output-file, open-io-file, close-input-port,
244 close-output-port, close-io-port, call-with-input-file,
245 call-with-output-file, with-input-from-port, with-output-to-port,
246 with-error-to-port, with-input-from-file, with-output-to-file,
247 with-error-to-file, with-input-from-string, with-output-to-string,
248 with-error-to-string, the-eof-object): Definitions moved to
249 r4rs.scm. Not all of them are R4RS, but those that are use those
251 (load, %load-verbosely, %load-announce): Moved, along with code to
252 set %load-hook, to r4rs.scm.
254 * test.scm: New file.
256 * boot-9.scm (integer?): Definition deleted, in favor of the one
257 present in libguile (which used to be called int?). I have no
258 idea why integer? didn't just call int? to begin with.
260 * boot-9.scm (<, <=, =, >, >=): Definitions in terms of <?, <=?,
261 =?, >?, and >=? deleted; they're defined that way by libguile now.
263 * boot-9.scm (load): Simplified; primitive-load does most of this
265 (%load-announce-win): Removed; no longer used. Set %load-hook to
268 Sun Oct 27 07:47:03 1996 Gary Houston <ghouston@actrix.gen.nz>
270 * boot-9.scm (stat:dev, stat:ino, stat:mode, stat:nlink, stat:uid,
271 stat:gid, stat:rdev, stat:size, stat:atime, stat:mtime,
272 stat:ctime, stat:blksize, stat:blocks) accessor functions for stat
274 (file-is-directory?): use stat:type.
276 Fri Oct 25 03:34:47 1996 Jim Blandy <jimb@floss.cyclic.com>
278 * boot-9.scm (%read-sharp): Don't recognize the `#!' syntax here;
279 that's now taken care of in libguile, and in a way compatible with
280 SCSH (which this isn't).
282 Mon Oct 21 18:52:36 1996 Jim Blandy <jimb@totoro.cyclic.com>
284 * boot-9.scm: Formatting tweaks.
286 Fri Oct 18 01:03:08 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
288 * boot-9.scm (handle-system-error): Added hooks before-error-hook,
289 after-error-hook, before-backtrace-hook and after-backtrace-hook
290 to the error handler. E.g.: fancy emacs support could plug into
292 (save-stack): New function. The stack is now made differently
293 depending on the stack id. (The motivation is to make a better
294 choice regarding what stack frames to present to the user.)
295 (error-catching-loop): Stack handling code moved outside into
298 Thu Oct 17 20:33:08 1996 Gary Houston <ghouston@actrix.gen.nz>
300 * Makefile.in (scm_files): add expect.scm.
302 * expect.scm: new file ported from guile-iii.
304 * boot-9.scm: remove handle-system-error, after moving the code into
306 Don't set 'throw-handler-default property on error keys.
307 Just interpret (almost) any throw with 4 args as an error throw.
308 Delete some try-load stuff that was already commented out.
310 Second thoughts, keep handle-system-error but call it from
313 Tue Oct 15 17:07:20 1996 Jim Blandy <jimb@floss.cyclic.com>
315 * boot-9.scm: Doc fixes.
316 (make-module): Rework for readability.
317 (make-root-module, make-scm-module): USES argument to make-module
318 should be '(), not #f.
320 * boot-9.scm (try-load): %sys-load-path has been renamed to
321 primitive-load-path; adjust call here.
323 Tue Oct 15 14:25:01 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
325 * boot-9.scm (signal-handler): Bugfix: Moved the recording of
326 the stack to the correct place: when it is decided to generate an
329 Mon Oct 14 22:20:30 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
331 * boot-9.scm (error-catching-loop, signal-handler,
332 handle-system-error): Backtracing now works for signals aswell;
333 Backtracing mechanism can now identify the stack root created by
334 start-stack so that the user isn't exposed to system stack frames.
336 Mon Oct 14 06:05:42 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
338 * Makefile.in: Added threads.scm.
340 Mon Oct 14 04:21:51 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
342 * debug.scm (make-enable, make-disable): Simplified.
344 * boot-9.scm: Renamed %%throw-handler-default -->
345 throw-handler-default.
346 ((handle-system-error key . arg-list)): Changed the way errors are
348 ((scm-style-repl)): Wrap up the call to eval in a start-stack
350 ((error-catching-loop thunk)): Introduce a lazy-catch into
351 error-catching-loop so that the stack can be captured.
353 Thu Oct 10 22:27:32 1996 Jim Blandy <jimb@totoro.cyclic.com>
355 * mapping.scm (hash-table-mapping): Explicitly request that
356 make-vector fill new vectors with '(); this will make it easier to
357 port Guile Scheme code to other Schemes.
358 * boot-9.scm (make-print-style, make-print-table): Same.
360 Sun Oct 6 03:54:59 1996 Gary Houston <ghouston@actrix.gen.nz>
362 * boot-9.scm (load): rewritten again.
363 Append "." to the default %load-path.
364 (feature?): new function: checks for a symbol in the features list.
365 (module-local-variable): remove apparently useless (caddr (list m v
367 (%load-announce): minor formatting change.
368 (file-exists?): use access? if posix is featured.
369 (file-is-directory?): use stat if i/o-extensions is featured.
370 (try-module-autoload module-name): use file-exists? before
373 Sat Oct 5 18:54:03 1996 Mikael Djurfeldt <mdj@kenneth>
375 * boot-9.scm: Added conditional loading of threads.scm.
377 * threads.scm: New file. Modified from the Cygnus-r0.3
380 * boot-9.scm (error-catching-loop): Added handling of key
383 * boot-9.scm: Name change %%bad-throw --> bad-throw.
385 Wed Oct 2 23:38:44 1996 Jim Blandy <jimb@totoro.cyclic.com>
387 * boot-9.scm (make-record-type, record-constructor): Don't assume
388 the empty list is false when parsing the argument list.
390 Mon Sep 30 22:15:50 1996 Jim Blandy <jimb@totoro.cyclic.com>
392 * boot-9.scm (signal-handler): Clean up logic.
394 * boot-9.scm (load): Assume %load-path is always bound.
396 Sat Sep 28 00:15:37 1996 Gary Houston <ghouston@actrix.gen.nz>
398 * boot-9.scm (error): replace another throw with scm-error. Throw
399 to 'misc-error instead of 'error (no need to distinguish these.)
400 Don't set up 'error as a key.
401 Set up regex-error as a key, if regex is available.
402 (signal-handler): use scm-error, not throw.
404 (%try-load, try-load-with-path, %load, load-with-path,
405 basic-try-load-with-path, basic-load-with-path,
406 try-load-module-with-path,load-module-with-path): deleted, since
408 (try-load): define using %try-load, not try-load-with-path.
409 (load): rewritten. load tries to open the file directly and
410 with a .scm extension before searching the library directories
411 (should "." be added to %load-path? then load could still open
412 directly files starting with "/").
413 (try-module-autoload): use load, not load-with-path.
414 (%load-indent): deleted, -2 was causing errors.
416 (%read-sharp): use port-line, not line-number.
418 Fri Sep 27 16:23:51 1996 Jim Blandy <jimb@totoro.cyclic.com>
420 * boot-9.scm (%%bad-throw): Delete definition. 1) It's very
421 straightforward to provide the equivalent functionality using
422 (catch #t ...), so there's no need for the extra complexity. 2)
423 Outside the context of a read-eval-print loop (which Guile should
424 not require) it's not clear we should do anything more complicated
425 than print an error and exit; the user or REPL can establish
426 something better if it wants. 3) In that case, it's much more
427 robust to just do it in the C code.
429 Tue Sep 24 06:53:04 1996 Gary Houston <ghouston@actrix.gen.nz>
431 * boot-9.scm (%try-load): define using primitive-load. Previously
432 %try-load itself was the primitive.
433 (load-with-path): use scm-error instead of %load-announce-lossage.
434 Errors are thrown to 'misc-error instead of 'could-not-load.
435 (%load-announce-lossage): deleted.
437 Mon Sep 23 00:16:31 1996 Mikael Djurfeldt <mdj@kenneth>
439 * boot-9.scm (warn, scm-style-repl): Use C printer instead of `print'.
440 (make-record-type type-name fields): Temporarily remove support
441 for printing of records (not possible yet with C printer).
443 Fri Sep 20 00:24:27 1996 Gary Houston <ghouston@actrix.gen.nz>
445 * boot-9.scm (file-exists?, file-is-directory): catch only
446 system-error, not every kind of error.
447 (scm-error): new procedure.
449 Thu Sep 19 16:02:46 1996 Jim Blandy <jimb@totoro.cyclic.com>
451 * boot-9.scm: Formatting tweaks.
453 Wed Sep 18 09:07:37 1996 Gary Houston <ghouston@actrix.gen.nz>
455 * boot-9.scm (%%handle-system-error key): remove the code for
456 SCM-style errors. handle the case that an unexpected number
457 of args are supplied.
458 (%%system-errors): removed.
459 (error): redefine using a throw with key and 4 args.
460 ('error): associate 'error, 'error-signal keys with
461 %%handle-system-error.
462 (%%default-error-handler): removed.
463 (signal-handler): throw with 4 args and use the error-signal key.
464 Create an error message instead of using numerical codes.
465 (%%bad-throw): call error instead of throw if key not found.
467 Tue Sep 17 04:11:28 1996 Gary Houston <ghouston@actrix.gen.nz>
469 * boot-9.scm: initialize new error keys (see libguile/ChangeLog).
470 (%%handle-system-error key): check subr is not #f before printing.
471 Recognize %s (embed an argument using "display") and
472 %S (embed an argument using "write").
474 Sun Sep 15 03:55:35 1996 Gary Houston <ghouston@actrix.gen.nz>
476 * boot-9.scm (%%handle-system-error key): set args and rest to
477 the empty list if they are #f.
478 Initialize out-of-range as an error key.
480 Sat Sep 14 03:41:15 1996 Gary Houston <ghouston@actrix.gen.nz>
482 * PLUGIN/REQ: remove the "ice-9 lgh" line which causes a cycle.
484 * boot-9.scm: remove leading %% from references to '%%system-error.
485 (%%handle-system-error): don't pass all the thrown arguments when
486 aborting, just the key and subr.
487 Remove the code to "Install default handlers for built-in errors."
488 Remove the definition of the syserror procedure.
489 Associate 'numerical-overflow with default handler.
491 Fri Sep 13 04:58:11 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
493 * boot-9.scm: Name change: value-ref --> local-ref
494 resolved-ref --> nested-ref Motivation: conformance to the other
495 dictionary operators: list-ref operates on list, vector-ref
496 operates on vector, nested-ref operates on nested namespace,
497 local-ref operates on the local nested namespace.
499 Sat Sep 7 06:44:47 1996 Gary Houston <ghouston@actrix.gen.nz>
501 * boot-9.scm (%%handle-system-error): recognise errors thrown
502 by lgh-error (fill-message etc.)
503 (fill-message): check first whether args is null.
504 (fill-message): bug fix and check that args is a list.
506 Thu Sep 5 11:33:41 1996 Jim Blandy <jimb@floss.cyclic.com>
508 * boot-9.scm: %load-path is initialized in C code now.
509 (implementation-vicinity, parse-path): Deleted, along with code to
510 initialize %load-path.
512 * boot-9.scm (in-vicinity): If the vicinity doesn't end with a
513 "/", use one to separate it from the file.
515 Thu Aug 29 23:05:11 1996 Thomas Morgan <tmorgan@gnu.ai.mit.edu>
517 * boot-9.scm (%load-path): Add the site directory.
518 Add the directory named after the version number.
519 Prepend the version number to the other directories in the path.
520 Simplify by mapping the common prefix onto each item.
521 * Makefile.in (datadir, pkgdatadir, pkgverdatadir, subpkgdatadir,
522 sitedatadir): New definitions.
523 (libparent, libdir, install_path): Replaced by above.
524 (install): Create the above directories.
525 Put the source files into subpkgdatadir.
526 (uninstall): Remove the above directories.
528 Thu Aug 29 21:48:47 1996 Jim Blandy <jimb@floss.cyclic.com>
530 Don't use the PLUGIN system to gather information for the
531 Makefile's distribution and installation targets; just put it all
532 in the Makefile directly.
533 * PLUGIN/this.configure (scm_files, aux_files): Remove sections
535 * configure.in: Remove code that gets and substitutes scm_files and
537 * Makefile.in (scm_files, aux_files): Write out the list of files
538 here, where people expect to find them.
540 Fri Aug 23 06:44:36 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
542 * boot-9.scm: Preliminary solution: optionally load the debug
543 module. Changed "gls" to "guile1.0b3".
545 * debug.scm: New file: debug extensions.
547 Wed Aug 21 13:06:56 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
549 * boot-9.scm (print-vector): Renamed weak-hash-table? -->
550 weak-key-hash-table?. (Again!)
552 Tue Aug 20 07:31:39 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
554 * boot-9.scm (print-vector, macro-table, xformer-table):
555 Renamed weak-hash-table --> weak-key-hash-table.
557 * poe.scm (funcq-memo): Renamed weak-hash-table -->
560 Sat Aug 3 06:16:35 1996 Gary Houston <ghouston@actrix.gen.nz>
562 * boot-9.scm (*null-device*): global constant from goonix.
563 (move->fdes): adjusted for boolean primitive-move->fdes. return
564 the modified port, always set revealed count to 1 (SCSH compatible).
565 (release-port-handle port): from goonix (SCSH compatible).
566 (%open-file): removed.
567 (open-input-file, open-output-file, file-exists?, file-is-directory?):
568 modified for open-file change (does not return #f).
570 Thu Aug 1 02:52:42 1996 Jim Blandy <jimb@totoro.cyclic.com>
572 * Makefile.in (dist-dir): New target for new dist system.
574 * PLUGIN/this.configure (aux_files): Removed PLUGIN; it's a
575 directory, and needs special treatment in the dist-dir target.
577 Thu Aug 1 09:00:21 1996 Gary Houston <ghouston@actrix.gen.nz>
579 * boot-9.scm: remove the wrappers for '%' system primitives,
580 now that they throw errors directly.
581 remove make-simple-wrapper and similar functions.
582 protect a call to getenv which may now throw an exception.
584 Wed Jul 31 23:44:42 1996 Gary Houston <ghouston@actrix.gen.nz>
586 * boot-9.scm (false-if-exception): new macro.
588 Fri Apr 19 13:53:08 1996 Tom Lord <lord@beehive>
590 * The more things change...