~ubuntu-branches/ubuntu/trusty/librep/trusty

« back to all changes in this revision

Viewing changes to lisp/ChangeLog

  • Committer: Bazaar Package Importer
  • Author(s): Christian Marillat
  • Date: 2001-11-13 15:06:22 UTC
  • Revision ID: james.westby@ubuntu.com-20011113150622-vgmgmk6srj3kldr3
Tags: upstream-0.15.2
ImportĀ upstreamĀ versionĀ 0.15.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
2001-10-28  John Harper  <jsh@unfactored.org>
 
2
 
 
3
        * version 0.15.2
 
4
 
 
5
2001-10-19  John Harper  <jsh@unfactored.org>
 
6
 
 
7
        * rep/util/repl.jl: renamed ,dis as ,disassemble (since the
 
8
        unique prefix thing will accept ,dis anyway)
 
9
 
 
10
2001-10-11  John Harper  <jsh@unfactored.org>
 
11
 
 
12
        * rep/lang/interpreter.jl (default-error-handler): catch and
 
13
        ignore errors that happen in the error handler (to avoid a
 
14
        possible infinite loop..)
 
15
 
 
16
2001-10-01  John Harper  <jsh@unfactored.org>
 
17
 
 
18
        * version 0.15
 
19
 
 
20
2001-09-15  John Harper  <jsh@unfactored.org>
 
21
 
 
22
        * rep/www/cgi-get.jl (self-test): new function. Some test cases
 
23
 
 
24
        * rep/www/quote-url.jl (quote-url, unquote-url): defined in
 
25
        terms of string-replace now
 
26
        (self-test): new function. A few test cases for this module
 
27
 
 
28
        * rep/regexp.jl (string-replace): the TEMPLATE parameter may
 
29
        now be a function, e.g. (string-replace "[ab]" (lambda (s) (1+
 
30
        (aref s (match-start)))) "foobar") -> "foocbr"
 
31
 
 
32
2001-09-02  John Harper  <jsh@pixelslut.com>
 
33
 
 
34
        * rep/io/file-handlers/tilde.jl (tilde-file-handler): fixed
 
35
        last change to this file so that it actually does expand the
 
36
        stuff after the tilde sometimes!
 
37
 
 
38
        * rep/vm/compiler/rep.jl (compile-log): new function, handles
 
39
        the new `log' function (which optionally has a BASE parameter).
 
40
        Compiles this into two calls to log and a divide
 
41
 
 
42
        * rep/util/repl.jl: fixed ,reload and ,unload commands not to
 
43
        try to unload structures that don't actually exist
 
44
 
 
45
2001-08-31  John Harper  <jsh@pixelslut.com>
 
46
 
 
47
        * rep/test/framework.jl (run-all-self-tests,
 
48
        run-module-self-tests): these both return the number of failed
 
49
        tests now
 
50
 
 
51
2001-08-27  John Harper  <jsh@pixelslut.com>
 
52
 
 
53
        * rep/util/repl.jl: meta commands may now be specified using
 
54
        unique prefixes, instead of their whole name
 
55
 
 
56
2001-08-24  John Harper  <jsh@pixelslut.com>
 
57
 
 
58
        * rep/io/file-handlers/tilde.jl (tilde-file-handler): in
 
59
        expand-file-name handler, only try to expand non-null things
 
60
        after the tilde
 
61
 
 
62
2001-08-16  John Harper  <jsh@pixelslut.com>
 
63
 
 
64
        * rep/vm/compiler/rep.jl (compile-set): raise an error if
 
65
        trying to set value of a non-symbol
 
66
 
 
67
2001-08-13  John Harper  <jsh@pixelslut.com>
 
68
 
 
69
        * rep/vm/compiler/rep.jl (compile-letrec): when compiling the
 
70
        lambda for the second time, turn off all output (to avoid
 
71
        repeating error messages)
 
72
 
 
73
        * rep/vm/compiler/utils.jl (silence-compiler): new fluid
 
74
        variable
 
75
        (compiler-message): only print messages if silence-compiler is
 
76
        false
 
77
 
 
78
        * rep/threads/message-port.jl (message-fetch): rewrote wait
 
79
        loop so it always tries once after condition-wait failed
 
80
 
 
81
        * rep/lang/debugger.jl (print-backtrace): print backtrace in
 
82
        top to bottom order, not bottom to top
 
83
 
 
84
2001-08-10  John Harper  <jsh@pixelslut.com>
 
85
 
 
86
        * rep/threads/message-port.jl (message-send): remembered to
 
87
        actually signal the condition after enqueuing the message!
 
88
 
 
89
2001-08-09  John Harper  <jsh@pixelslut.com>
 
90
 
 
91
        * rep/threads/message-port.jl: new module, implements a simple
 
92
        message queue for threads using mutexes and condition variables
 
93
 
 
94
        * rep/net/rpc.jl: one minor bug fix
 
95
 
 
96
2001-08-08  John Harper  <jsh@pixelslut.com>
 
97
 
 
98
        * rep/user.jl, rep/lang/debugger.jl: renamed --rep-debug as
 
99
        --debug and --rep-emacs-debugger as --emacs-debug
 
100
 
 
101
2001-08-07  John Harper  <jsh@pixelslut.com>
 
102
 
 
103
        * rep/lang/define.jl (define-scan-body): only return new list
 
104
        structure if it's different to the original. This prevents line
 
105
        number information being discarded needlessly
 
106
 
 
107
        * rep/lang/debugger.jl: much improved. Supports line numbers
 
108
        (with emacs style embedded cookies), better backtraces, etc..
 
109
 
 
110
        * rep/user.jl: support --rep-debug option -- launches into the
 
111
        debugger
 
112
 
 
113
        * rep/data/ring.jl, rep/data/queues.jl: 
 
114
        * rep/io/file-handlers/remote/rep.jl,
 
115
        rep/io/file-handlers/remote/ftp.jl: 
 
116
        * rep/lang/interpreter.jl: 
 
117
        * rep/threads/condition-variable.jl: 
 
118
        * rep/util/repl.jl:
 
119
        * scheme/misc.jl, scheme/data.jl: 
 
120
        * unscheme/misc.jl, unscheme/data.jl:
 
121
 
 
122
        Declarations to silence compiler warnings about unused
 
123
        parameters
 
124
 
 
125
        * rep/vm/compiler.jl: 
 
126
        * rep/vm/compiler/utils.jl, rep/vm/compiler/scheme.jl,
 
127
        rep/vm/compiler/rep.jl, rep/vm/compiler/modules.jl,
 
128
        rep/vm/compiler/inline.jl, rep/vm/compiler/bindings.jl,
 
129
        rep/vm/compiler/basic.jl: 
 
130
 
 
131
        Better error reporting, including (gasp) line numbers
 
132
 
 
133
2001-08-02  John Harper  <jsh@pixelslut.com>
 
134
 
 
135
        * rep/threads/condition-variable.jl (condition-variable-wait):
 
136
        new optional TIMEOUT parameter. The function returns false if
 
137
        the timeout expires. Note that even if this is the case the
 
138
        function will still re-obtain the mutex before exiting. Also,
 
139
        release the mutex and suspend the thread atomically
 
140
 
 
141
        * rep/threads/mutex.jl (obtain-mutex): new optional TIMEOUT
 
142
        parameter. The function returns false if the timeout expired
 
143
        and the mutex couldn't be obtained, true otherwise
 
144
 
 
145
2001-08-01  John Harper  <jsh@pixelslut.com>
 
146
 
 
147
        * rep/vm/compiler/modules.jl (symbol-value-1): return false for
 
148
        variables with local bindings
 
149
 
 
150
        (compiler-macroexpand-1): ignore macro calls whose name has a
 
151
        local bindings
 
152
 
 
153
        * rep/util/repl.jl (repl-iterate): ignore empty lines
 
154
 
 
155
2001-07-31  John Harper  <jsh@pixelslut.com>
 
156
 
 
157
        * rep/data/objects.jl (object): reverted last change (factoring
 
158
        out lambda expressions). It moves them out of the scope of the
 
159
        `self' parameter, which is a bad thing
 
160
 
 
161
2001-07-30  John Harper  <jsh@pixelslut.com>
 
162
 
 
163
        * rep/data/objects.jl: move method bodies that are lambda
 
164
        expressions into a let block outside the object's lambda in the
 
165
        expansion, then reference their new names. This avoids consing
 
166
        a new closure each time a method is called
 
167
 
 
168
2001-07-28  John Harper  <jsh@pixelslut.com>
 
169
 
 
170
        * rep/io/file-handlers/tilde.jl: fixed the logic for
 
171
        substituting ~ for the user's home directory at initialization
 
172
 
 
173
        * rep/lang/error-helper.jl (for-each-structure): ignore null
 
174
        structures (possible if called while creating a structure?)
 
175
 
 
176
2001-07-26  John Harper  <jsh@pixelslut.com>
 
177
 
 
178
        * rep/util/repl.jl: don't print results that are #undefined
 
179
 
 
180
        * rep/lang/interpreter.jl, rep/util/gaol.jl (define-value):
 
181
        finally deleted
 
182
 
 
183
        * rep/lang/interpreter.jl: export a self-referential binding of
 
184
        #undefined
 
185
 
 
186
        * rep/lang/error-helper.jl: new module -- given an error, try
 
187
        to deduce what could have caused, and how the user can avoid it
 
188
        in future. Currently only handles some void-value errors
 
189
 
 
190
        * rep/lang/interpreter.jl (default-error-handler): call the
 
191
        error-helper function
 
192
 
 
193
        * rep/data/objects.jl: objects now have an implicit `self'
 
194
        binding -- the object representing themself (or their derived
 
195
        self). Also fixed a bug where the BASE-OBJECT parameter could
 
196
        be evaluated zero or multiple times, instead of just once
 
197
 
 
198
2001-07-22  John Harper  <jsh@pixelslut.com>
 
199
 
 
200
        * rep/util/repl.jl: use the standard error handler, instead of
 
201
        a cut-and-pasted version
 
202
 
 
203
2001-07-17  John Harper  <jsh@pixelslut.com>
 
204
 
 
205
        * rep/lang/interpreter.jl (letrec): allow right-hand-sides of
 
206
        letrec bindings to have more than one form
 
207
 
 
208
        * rep/io/file-handlers/remote/rep.jl
 
209
        (remote-rep-output-filter): don't print annoying messages about
 
210
        unhandled input
 
211
 
 
212
2001-07-15  John Harper  <jsh@pixelslut.com>
 
213
 
 
214
        * rep/user.jl: catch errors signalled during command line
 
215
        option processing, pass them to the default error handler and
 
216
        quit. This avoids the horrible `error -> (void-value foo)'
 
217
        style error messages
 
218
 
 
219
2001-07-02  John Harper  <jsh@pixelslut.com>
 
220
 
 
221
        * version 0.14
 
222
 
 
223
2001-06-29  John Harper  <jsh@pixelslut.com>
 
224
 
 
225
        * rep/net/rpc.jl: added some (disabled) debugging code
 
226
 
 
227
        * rep/net/rpc.jl: minor changes
 
228
 
 
229
2001-06-28  John Harper  <jsh@pixelslut.com>
 
230
 
 
231
        * rep/net/rpc.jl (async-rpc-call, make-proxy,
 
232
        rpc-output-handler): support async (`one way') rpc requests
 
233
 
 
234
        * rep/data.jl (vector->list, list->vector): new functions
 
235
 
 
236
        * rep/net/rpc.jl (make-proxy): precalculate global-id value
 
237
 
 
238
2001-06-27  John Harper  <jsh@pixelslut.com>
 
239
 
 
240
        * rep/net/rpc.jl: added some comments, some API changes
 
241
 
 
242
2001-06-26  John Harper  <jsh@pixelslut.com>
 
243
 
 
244
        * rep/net/rpc.jl (call-with-rpc-servant): new function
 
245
 
 
246
        * rep/net/rpc.jl: misc changes. Added support for global
 
247
        servant ids (prefixed with ip address and port number)
 
248
 
 
249
        * rep/net/rpc.jl: new module -- simple Lisp syntax based RPC
 
250
        mechanism over TCP streams
 
251
 
 
252
2001-06-14  John Harper  <jsh@pixelslut.com>
 
253
 
 
254
        * rep/vm/compiler/rep.jl (compile-cond): disabled dead-code
 
255
        warnings after constant conditions, they're too annoying to be
 
256
        useful
 
257
 
 
258
2001-05-04  John Harper  <jsh@eazel.com>
 
259
 
 
260
        * rep/vm/compiler/rep.jl (trans-defvar): fixed typo in the last
 
261
        change (using , in a non-backquote form)
 
262
 
 
263
2001-05-01  John Harper  <jsh@eazel.com>
 
264
 
 
265
        * rep/vm/compiler/rep.jl (trans-defvar): if the defvar has a
 
266
        constant doc string, add it to the documentation database
 
267
 
 
268
2001-04-30  John Harper  <jsh@eazel.com>
 
269
 
 
270
        * rep/lang/interpreter.jl (define-special-variable): new macro,
 
271
        a combination of defvar and setq. It always declares the
 
272
        variable special and it always sets the value
 
273
 
 
274
2001-03-26  John Harper  <jsh@eazel.com>
 
275
 
 
276
        Work to make rep self-testing. The framework and some tests
 
277
        exist, but I still need to add unit tests for many modules:
 
278
 
 
279
        * rep/test/framework.jl: self-testing framework. Provides
 
280
        `assert', 'check' and `test' macros, as well as random other
 
281
        stuff for supporting these. 
 
282
 
 
283
        * rep/test/data.jl: tests for rep.data module
 
284
 
 
285
        * rep/data/queues.jl: added self tests
 
286
 
 
287
        * rep/user.jl: added --check option
 
288
        * rep/util/repl.jl: added a `,check' command
 
289
        * Makefile.in: added a `check' target
 
290
 
 
291
        * rep/io/file-handlers/remote/rep.jl (remote-rep-while): use
 
292
        accept-process-output-1 instead of accept-process-output
 
293
        (remote-rep-output-filter): ignore blank lines
 
294
 
 
295
2001-03-22  John Harper  <jsh@eazel.com>
 
296
 
 
297
        * version 0.13.5
 
298
 
 
299
2001-03-21  John Harper  <jsh@eazel.com>
 
300
 
 
301
        * rep/io/file-handlers/tar.jl (tarfh-call-tar): only call
 
302
        tarfh-check-tar-program if the given tar file actually exists
 
303
 
 
304
2001-03-12  John Harper  <jsh@eazel.com>
 
305
 
 
306
        * rep/io/file-handlers/tar.jl
 
307
        (tarfh-alternative-gnu-tar-programs): added `gnutar' and the
 
308
        GNU tar emulation script to this list
 
309
 
 
310
        (tarfh-list-regexp): hacked this to also recognize the date
 
311
        format used by Solaris tar
 
312
 
 
313
2001-02-13  John Harper  <jsh@eazel.com>
 
314
 
 
315
        * rep.jl (debug-entry, debug-exit, debug-error-entry): declare
 
316
        using defvar
 
317
 
 
318
2001-02-12  John Harper  <jsh@eazel.com>
 
319
 
 
320
        * rep/data/string-util.jl (string-upper-case-p,
 
321
        string-lower-case-p): only return t if the string contains at
 
322
        least one upper/lower case character
 
323
 
 
324
2001-01-27  John Harper  <jsh@eazel.com>
 
325
 
 
326
        * rep/i18n/xgettext.jl (scan): fixed typo when scanning
 
327
        `lambda' forms (was scanning the car (!?) instead of the cddr)
 
328
 
 
329
2001-01-14  John Harper  <jsh@eazel.com>
 
330
 
 
331
        * rep/util/gaol.jl (gaol-safe-functions): added listp
 
332
 
 
333
2001-01-08  John Harper  <jsh@eazel.com>
 
334
 
 
335
        * rep/util/repl.jl (repl-iterate): change the error handler
 
336
        reading normal forms to catch premature-end-of-stream, not
 
337
        end-of-stream
 
338
 
 
339
2001-01-04  John Harper  <jsh@eazel.com>
 
340
 
 
341
        * version 0.13.4
 
342
 
 
343
2000-12-29  John Harper  <jsh@eazel.com>
 
344
 
 
345
        * rep/threads/condition-variable.jl: new file, implemented
 
346
        the usual condition variable interface (but not quite strong
 
347
        enough for SRFI-18 compatibility, condition-variable-wait would
 
348
        need a TIMEOUT parameter)
 
349
 
 
350
2000-12-20  John Harper  <jsh@eazel.com>
 
351
 
 
352
        * rep/util/gaol.jl (gaol-safe-functions): added string-split
 
353
        and string-replace
 
354
 
 
355
2000-12-03  John Harper  <jsh@eazel.com>
 
356
 
 
357
        * version 0.13.3
 
358
 
 
359
2000-11-27  John Harper  <jsh@eazel.com>
 
360
 
 
361
        * scheme/data.jl: when defining `>' and similar predicates, use
 
362
        `rep#FOO' to get the rep versions, instead of just relying on
 
363
        the fact that their local bindings haven't been created yet
 
364
 
 
365
2000-11-26  John Harper  <jsh@eazel.com>
 
366
 
 
367
        * rep/lang/define.jl (define-scan-form): don't expand (i.e.
 
368
        delete) declaration forms
 
369
 
 
370
2000-11-21  John Harper  <jsh@eazel.com>
 
371
 
 
372
        * rep/vm/peephole.jl (peephole-optimizer): added transformation
 
373
        `{jpt,jpn,jtp,jnp} X; jmp Y; X: --> {jnp,jtp,jpn.jpt} Y; X:',
 
374
        can help some `do' loops e.g.
 
375
 
 
376
2000-11-12  John Harper  <jsh@eazel.com>
 
377
 
 
378
        * rep/util/repl.jl (completion-generator): pass this function
 
379
        as an argument to `readline' (i.e. don't call it
 
380
        rl-completion-generator)
 
381
 
 
382
2000-10-23  John Harper  <jsh@eazel.com>
 
383
 
 
384
        * version 0.13.2
 
385
 
 
386
2000-10-18  John Harper  <john@dcs.warwick.ac.uk>
 
387
 
 
388
        * Makefile.in: patch from Scott Heavner <sdh@po.cwru.edu> to
 
389
        fix `install' shell scripting
 
390
 
 
391
2000-09-29  John Harper  <john@dcs.warwick.ac.uk>
 
392
 
 
393
        * rep/lang/define.jl: track bound variables, then don't expand
 
394
        calls to these special forms or macros
 
395
 
 
396
2000-09-28  John Harper  <john@dcs.warwick.ac.uk>
 
397
 
 
398
        * version 0.13.1
 
399
 
 
400
2000-09-27  John Harper  <john@dcs.warwick.ac.uk>
 
401
 
 
402
        * rep/io/file-handlers/remote/ftp.jl (remote-ftp-get-file):
 
403
        work around bug in `ls .' with my (wu) ftpd
 
404
 
 
405
        * rep/system/pwd-prompt.jl: import rep.io.streams and
 
406
        rep.lang.math
 
407
 
 
408
2000-09-26  John Harper  <john@dcs.warwick.ac.uk>
 
409
 
 
410
        * rep/lang/define.jl (define-scan-form): don't expand structure
 
411
        or define-structure forms (any internal definitions they
 
412
        contain should be treated as top-level within the structure)
 
413
 
 
414
2000-09-24  John Harper  <john@dcs.warwick.ac.uk>
 
415
 
 
416
        * rep/data.jl (remove-if, remove-if-not): new functions
 
417
 
 
418
2000-09-22  John Harper  <john@dcs.warwick.ac.uk>
 
419
 
 
420
        * rep/vm/compiler/modules.jl (note-require): try to fix this
 
421
        slightly in the presence of unmodularized files
 
422
 
 
423
2000-09-20  John Harper  <john@dcs.warwick.ac.uk>
 
424
 
 
425
        * version 0.13
 
426
 
 
427
2000-09-19  John Harper  <john@dcs.warwick.ac.uk>
 
428
 
 
429
        * rep/net/domain-name.jl: new file, some domain name functions
 
430
        (from TITAN)
 
431
 
 
432
        * rep/regexp.jl (string-split): new function
 
433
 
 
434
        * rep.jl, rep/user.jl, rep/io/files.jl,
 
435
        rep/vm/compiler/modules.jl: *root-structure* is now replaced by
 
436
        *user-structure*
 
437
 
 
438
2000-09-18  John Harper  <john@dcs.warwick.ac.uk>
 
439
 
 
440
        * rep/vm/compiler/modules.jl (current-module): this now
 
441
        defaults to *user-structure* not *root-structure*
 
442
 
 
443
2000-09-17  John Harper  <john@dcs.warwick.ac.uk>
 
444
 
 
445
        * rep/lang/doc.jl (describe-value): replaced `Built-in' by
 
446
        `Native' to describe subrs
 
447
 
 
448
        * rep/util/repl.jl (,describe): pass structure name to
 
449
        describe-value
 
450
 
 
451
        * rep/lang/interpreter.jl (nil, t, defmacro): use third arg of
 
452
        %define to specify documentation of these bindings
 
453
 
 
454
        * rep/lang/doc.jl (describe-value): include special-variable
 
455
        and immutable-binding information in the type description.
 
456
        Don't surround the name in parentheses unless we have details
 
457
        of the parameter list
 
458
 
 
459
        (documentation): don't use boundp/symbol-value to look for
 
460
        in-core documentation
 
461
 
 
462
2000-09-14  John Harper  <john@dcs.warwick.ac.uk>
 
463
 
 
464
        * rep/util/repl.jl (locate-binding*): only check the current
 
465
        module for a binding when one isn't imported, not the other way
 
466
        around
 
467
 
 
468
2000-09-12  John Harper  <john@dcs.warwick.ac.uk>
 
469
 
 
470
        * rep/vm/compiler/rep.jl: after lifting top-level progn forms,
 
471
        add progns to coalesce forms that wouldn't be compiled
 
472
        specially at top-level. Each progn then forms a single byte
 
473
        code form
 
474
 
 
475
2000-09-11  John Harper  <john@dcs.warwick.ac.uk>
 
476
 
 
477
        * Makefile.in: invoke compile-assembler before compile-compiler
 
478
 
 
479
        * rep/vm/compiler.jl (compile-assembler): new function
 
480
 
 
481
        * rep/vm/peephole.jl: rep.vm.compiler.opt moved here since it
 
482
        may be useful outside the compiler
 
483
 
 
484
        * rep/vm/compiler/opt.jl: remove dependences on other compiler
 
485
        modules
 
486
 
 
487
        * rep/util/repl.jl (locate-binding*): check the current module
 
488
        before looking in the imports
 
489
 
 
490
        * rep/lang/define.jl: groks doc strings in `(define SYMBOL
 
491
        VALUE DOC)' forms. Will move them to the body of defuns, or
 
492
        else leave them in the %define form
 
493
 
 
494
        * rep/vm/compiler/rep.jl (do-pass-2): extract doc strings from
 
495
        %define forms
 
496
 
 
497
2000-09-10  John Harper  <john@dcs.warwick.ac.uk>
 
498
 
 
499
        * rep.jl: `rep.io.streams' is exported from `rep' again. I've
 
500
        decided it's too fundamental not to. Changed all the modules
 
501
        that imported it explicitly
 
502
 
 
503
2000-09-09  John Harper  <john@dcs.warwick.ac.uk>
 
504
 
 
505
        * rep/vm/compiler/modules.jl: when compiling module definition
 
506
        forms, after compiling the top-level forms, ensure that the
 
507
        resulting lambda expression is compiled in the correct module
 
508
        environment
 
509
 
 
510
2000-09-08  John Harper  <john@dcs.warwick.ac.uk>
 
511
 
 
512
        * rep.jl: don't export rep.repexp, rep.system, rep.io.streams,
 
513
        rep.io.files, rep.io.processes, rep.io.file-handlers. If
 
514
        they're needed, they'll need to be imported explicitly
 
515
 
 
516
        The rationale is that `(open rep)' should just specify the
 
517
        language, and not unrelated random parts of the runtime
 
518
        environment. Also, I can imagine systems where some of these
 
519
        modules (e.g. rep.io.processes) aren't available
 
520
 
 
521
        * rep/vm/compiler/utils.jl (test-variable-ref,
 
522
        test-variable-bind, test-function-call): never use boundp to
 
523
        check for validity of reference. Use compiler-boundp instead.
 
524
        Similar for symbol-value and compiler-symbol-value
 
525
 
 
526
        * rep/vm/compiler/modules.jl (compiler-boundp): new function
 
527
 
 
528
        * rep/system.jl, rep/lang/interpreter.jl (nop, interactive):
 
529
        moved from rep.system to rep.lang.interpreter
 
530
 
 
531
        * rep/data.jl, rep/data/string-util.jl, rep/regexp.jl
 
532
        (string-replace): moved from rep.data to rep.regexp
 
533
 
 
534
        * scheme/misc.jl, unscheme/misc.jl: explicitly reference all
 
535
        used bindings in rep.io.streams
 
536
 
 
537
        * rep/user.jl: 
 
538
        * rep/data/records.jl: 
 
539
        * rep/i18n/xgettext.jl: 
 
540
        * rep/io/file-handlers/tilde.jl, rep/io/file-handlers/tar.jl,
 
541
        rep/io/file-handlers/remote.jl: 
 
542
        * rep/io/file-handlers/remote/utils.jl,
 
543
        rep/io/file-handlers/remote/rep.jl,
 
544
        rep/io/file-handlers/remote/rcp.jl,
 
545
        rep/io/file-handlers/remote/ftp.jl: 
 
546
        * rep/lang/profiler.jl, rep/lang/doc.jl, rep/lang/debugger.jl: 
 
547
        * rep/mail/addr.jl: 
 
548
        * rep/util/ispell.jl, rep/util/gaol.jl, rep/util/date.jl,
 
549
        rep/util/base64.jl: 
 
550
        * rep/vm/disassembler.jl, rep/vm/compiler.jl: 
 
551
        * rep/vm/compiler/inline.jl, rep/vm/compiler/basic.jl: 
 
552
        * rep/www/quote-url.jl, rep/www/fetch-url.jl,
 
553
        rep/www/cgi-get.jl: 
 
554
 
 
555
        Added necessary imports of the modules removed from `rep'
 
556
        interface
 
557
 
 
558
        * rep/util/repl.jl: new command `,whereis VAR'
 
559
 
 
560
2000-09-07  John Harper  <john@dcs.warwick.ac.uk>
 
561
 
 
562
        * rep/util/time.jl: new module, a few utilities for converting
 
563
        timestamps to scalars and vice versa. From TITAN
 
564
 
 
565
2000-09-06  John Harper  <john@dcs.warwick.ac.uk>
 
566
 
 
567
        * rep/vm/compiler/modules.jl: added `(declare (language LANG))'
 
568
        declaration
 
569
 
 
570
        * rep/data/objects.jl (object): added a second method syntax:
 
571
        (METHOD-NAME FUNCTION) (in addition to ((METHOD-NAME .
 
572
        PARAM-LIST) BODY...)). This allows arbitrary functions to be
 
573
        used as method implementations
 
574
 
 
575
2000-09-05  John Harper  <john@dcs.warwick.ac.uk>
 
576
 
 
577
        * rep/module-system.jl: don't explcitly export `provide',
 
578
        `require' and `featurep', this is done from C code now
 
579
 
 
580
        * rep/data/records.jl: instead of using a static (higher-order)
 
581
        record-constructor function, create a local function for each
 
582
        record type. This allows the constructor parameter list to
 
583
        include all standard rep lambda-list features (i.e. including
 
584
        keywords and default values, etc..)
 
585
 
 
586
        * Makefile.in: lisp depends on ../src/.libexec
 
587
 
 
588
2000-09-04  John Harper  <john@dcs.warwick.ac.uk>
 
589
 
 
590
        * rep/vm/compiler/scheme.jl: when compiling let* and letrec
 
591
        forms, scan out inner defines before passing the forms to the
 
592
        rep compilers
 
593
        * rep/vm/compiler/unscheme.jl: same thing
 
594
 
 
595
        * scheme/syntax-funs.jl (expand-letrec): expand inner defines
 
596
        in body by hand; `lambda' would miss them since they come after
 
597
        the initialising `set!' forms
 
598
 
 
599
        * rep/i18n/xgettext.jl: track the current module name while
 
600
        scanning, and export it via the current-module fluid
 
601
 
 
602
2000-09-03  John Harper  <john@dcs.warwick.ac.uk>
 
603
 
 
604
        * rep/util/repl.jl: added command `,locate SYM' to find the
 
605
        module that a variable is bound in
 
606
 
 
607
        * rep/lang/doc.jl (describe-value): fixed bug of not looking
 
608
        for the documentation of functions not yet autoloaded
 
609
 
 
610
        * rep/structures.jl (locate-binding): new function
 
611
 
 
612
        * rep/data/string-util.jl (string-replace): new function
 
613
        * rep/data.jl: autoload string-replace
 
614
 
 
615
        * rep/lang/doc.jl: store doc strings under keys `MODULE#SYMBOL'
 
616
        instead of just `SYMBOL'. (The old-style keys are still checked
 
617
        when searching for documentation.) Changed some function
 
618
        parameter lists to include a STRUCTURE parameter
 
619
 
 
620
        * rep/lang/compat-doc.jl: new file, a compatibility layer for
 
621
        the 'lisp-doc module in the last rep release
 
622
 
 
623
        * rep/util/repl.jl: `,describe' command scans the imported
 
624
        modules for the binding of the thing being queried
 
625
 
 
626
        * rep/vm/compiler/modules.jl: export current-module
 
627
        * rep/vm/compiler/rep.jl, rep/vm/compiler/basic.jl: changed for
 
628
        new rep.lang.doc function parameters
 
629
 
 
630
        * rep/util/repl.jl (repl-completions): new function
 
631
 
 
632
2000-09-02  John Harper  <john@dcs.warwick.ac.uk>
 
633
 
 
634
        * rep/util/gaol.jl (define-gaol-structure): new function, used
 
635
        to assign a module name to a gaol
 
636
 
 
637
        * rep/util/ispell.jl: use accept-process-input-1 so as not to
 
638
        call other process handlers asynchronously
 
639
 
 
640
2000-08-27  John Harper  <john@dcs.warwick.ac.uk>
 
641
 
 
642
        * rep/vm/compiler/inline.jl, rep/vm/compiler/basic.jl: now
 
643
        evaluate default values of #!optional and #!key parameters
 
644
 
 
645
        * rep/vm/disassembler.jl, rep/vm/bytecode-defs.jl:
 
646
        foo-arg-with-default is now foo-arg*, these now push a variable
 
647
        number of values
 
648
 
 
649
        * rep/data.jl (remove, remq): new functions
 
650
 
 
651
2000-08-25  John Harper  <john@dcs.warwick.ac.uk>
 
652
 
 
653
        * rep/vm/compiler/rep.jl (pass-1): recursively flatten `progn'
 
654
        forms (correctly now)
 
655
 
 
656
        * rep/vm/compiler/utils.jl (compiler-constant-p,
 
657
        compiler-constant-value): handle keyword symbols
 
658
 
 
659
2000-08-21  John Harper  <john@dcs.warwick.ac.uk>
 
660
 
 
661
        * rep/i18n/xgettext.jl (scan): scan bodies of define-structure
 
662
        and structure forms
 
663
 
 
664
2000-08-17  John Harper  <john@dcs.warwick.ac.uk>
 
665
 
 
666
        * rep/util/gaol.jl (gaol-define-vm): new function, installs a
 
667
        given virtual machine in the gaol
 
668
 
 
669
        * rep/vm/compiler/bindings.jl: added `(unused VARS...)'
 
670
        declaration to selectively turn off unused variable warnings
 
671
 
 
672
        * rep/lang/doc.jl, rep/vm/compiler/utils.jl,
 
673
        rep/vm/compiler/inline.jl, rep/vm/compiler/basic.jl: support
 
674
        default values in #!optional and #!key params
 
675
 
 
676
        * rep/vm/disassembler.jl, rep/vm/bytecode-defs.jl
 
677
        (optional-arg-with-default, keyword-arg-with-default): new
 
678
        instructions
 
679
 
 
680
        * rep/util/gaol.jl: added `intern' and `do'
 
681
 
 
682
2000-08-16  John Harper  <john@dcs.warwick.ac.uk>
 
683
 
 
684
        * rep/vm/compiler/utils.jl (test-function-call): don't warn
 
685
        about too many args if the function has #!key params
 
686
 
 
687
        * rep/vm/compiler/rep.jl (compile-condition-case): when
 
688
        creating an unused binding for `(condition-case nil ...)' mark
 
689
        it as referenced to avoid a compiler warning
 
690
 
 
691
        * rep/vm/compiler/utils.jl (remember-function): handle
 
692
        #!optional, #!rest and #!key
 
693
        (compiler-deprecated): new function
 
694
 
 
695
        * rep/vm/compiler/inline.jl (push-inline-args): handle
 
696
        #!optional and #!rest. Error out if #!key is encountered
 
697
 
 
698
        * rep/vm/compiler/basic.jl (compile-form-1): compile keyword
 
699
        symbols as constants
 
700
        (compile-lambda-spec): handle #!optional, #!rest and #!key,
 
701
        deprecated &optional and &rest
 
702
 
 
703
        * all lisp files: use #!optional and #!rest instead of
 
704
        deprecated &optional and &rest
 
705
 
 
706
2000-08-15  John Harper  <john@dcs.warwick.ac.uk>
 
707
 
 
708
        * scheme/data.jl (symbol?, string-ci>?, string-ci>=?): fixed
 
709
        these functions
 
710
 
 
711
        * scheme/data.jl: use standard rep cons accessors. R5RS says
 
712
        that ``it is an error to take the c[ad]r of the empty list''.
 
713
        But ļæ½1.3.2 notes that detection of ``is an error'' situations
 
714
        is not required
 
715
 
 
716
        * rep/vm/compiler/scheme.jl: use standard cons accessors;
 
717
        compile `list-ref' and `list-tail' using `nth' and `nthcdr'
 
718
        instructions
 
719
        * rep/vm/compiler/unscheme.jl: use `list-ref' and `list-tail'
 
720
        inliners from the scheme compiler
 
721
 
 
722
        * rep/vm/compiler/rep.jl: added inliner properties for cadddr
 
723
 
 
724
        * rep/vm/compiler/unscheme.jl, rep/vm/compiler/scheme.jl: when
 
725
        copying rep-compile-fun properties, also copy
 
726
        rep-compile-opcode if it's present
 
727
 
 
728
2000-08-13  John Harper  <john@dcs.warwick.ac.uk>
 
729
 
 
730
        * rep/vm/compiler/opt.jl: new patterns, `push 0; num-eq ->
 
731
        zerop', `zerop; not -> not-zero-p'
 
732
 
 
733
        * rep/vm/bytecodes.jl, disassembler.jl (not-zero-p): new
 
734
        instruction
 
735
 
 
736
        * rep/data/sort.jl, rep/io/file-handlers/tar.jl,
 
737
        rep/io/file-handlers/remote/utils.jl,
 
738
        rep/io/file-handlers/remote/rep.jl,
 
739
        rep/io/file-handlers/remote/rcp.jl,
 
740
        rep/io/file-handlers/remote/ftp.jl, rep/lang/doc.jl,
 
741
        rep/lang/define.jl, rep/lang/backquote.jl, rep/util/date.jl,
 
742
        rep/util/base64.jl, rep/vm/disassembler.jl, rep/vm/compiler.jl,
 
743
        rep/vm/compiler/utils.jl, rep/vm/compiler/src.jl,
 
744
        rep/vm/compiler/opt.jl, rep/vm/compiler/modules.jl,
 
745
        rep/vm/compiler/lap.jl, rep/vm/compiler/inline.jl,
 
746
        rep/vm/compiler/basic.jl, rep/www/cgi-get.jl: added `(declare
 
747
        (unsafe-for-call/cc))'
 
748
 
 
749
        * rep/system/environ.jl: rewritten to use tail recursion
 
750
        instead of side effects
 
751
 
 
752
        * rep/vm/compiler/bindings.jl: don't allocate variables to
 
753
        slots if they're modified after a function has been called.
 
754
        (Due to call/cc the function could return multiple times, but
 
755
        it would get the _same_ values for any slot-allocated bindings,
 
756
        even if they have since been modified). The
 
757
        `(unsafe-for-call/cc)' declaration can be used to prevent this
 
758
        (but it may lead to incrorrect results...)
 
759
 
 
760
        * rep/util/repl.jl (repl): install a low-level exception
 
761
        handler to catch interrupt signals
 
762
 
 
763
2000-08-12  John Harper  <john@dcs.warwick.ac.uk>
 
764
 
 
765
        * rep/vm/compiler/modules.jl (compile-structure-def): fixed
 
766
        compilation of non-top-level structure definitions
 
767
 
 
768
2000-08-11  John Harper  <john@dcs.warwick.ac.uk>
 
769
 
 
770
        * rep/lang/doc.jl (doc-file-set): pass 'no-lock flag to
 
771
        gdbm-open
 
772
 
 
773
        * rep/vm/compiler/rep.jl (compile-cond): fixed bug of not
 
774
        propagating return-follows information to body-less final
 
775
        conditions. This meant that things like `(define (test a) (and
 
776
        a (test a)))' wouldn't have had the tail call made into a jump
 
777
 
 
778
        This has a _huge_ effect on the prime benchmark, iterations per
 
779
        minute increases by 60%! For comparison:
 
780
 
 
781
                current rep     2580 (1.0)
 
782
                qscheme-0.3.3   1860 (.72)
 
783
                scheme48-0.53   835  (.32)      ; in benchmark mode
 
784
                guile-0.4       314  (.12)      ; with (debug-disable 'debug)
 
785
 
 
786
        300MHz mobile Pentium II; code as follows:
 
787
 
 
788
(define (prime n)
 
789
  (letrec ((primep (lambda (n primes)
 
790
                     (or (null primes)
 
791
                         (and (not (zerop (remainder n (car primes))))
 
792
                              (primep n (cdr primes)))))))
 
793
    (let loop ((i 2) (candidate 2) (primes '()))
 
794
      (cond ((not (primep candidate primes)) (loop i (+ 1 candidate) primes))
 
795
            ((= i n) candidate)
 
796
            (t (loop (+ 1 i) (+ 1 candidate) (cons candidate primes)))))))
 
797
 
 
798
(define (test)
 
799
  (let loop ((count 1))
 
800
    (prime 100)
 
801
    (format standard-output "%d\n" count)
 
802
    (loop (+ 1 count))))
 
803
 
 
804
        I need a new benchmark now..
 
805
 
 
806
2000-08-10  John Harper  <john@dcs.warwick.ac.uk>
 
807
 
 
808
        * rep/lang/doc.jl (describe-value): bytecode subrs no longer
 
809
        include arg spec
 
810
 
 
811
        * rep/vm/compiler.jl, rep/vm/compiler/utils.jl,
 
812
        rep/vm/compiler/unscheme.jl, rep/vm/compiler/src.jl,
 
813
        rep/vm/compiler/scheme.jl, rep/vm/compiler/rep.jl,
 
814
        rep/vm/compiler/opt.jl, rep/vm/compiler/no-lang.jl,
 
815
        rep/vm/compiler/modules.jl, rep/vm/compiler/lap.jl,
 
816
        rep/vm/compiler/inline.jl, rep/vm/compiler/bindings.jl,
 
817
        rep/vm/compiler/basic.jl:
 
818
 
 
819
        Many compiler improvements: first order closure analysis; stack
 
820
        allocation of uncaptured bindings; fixed `case' statements
 
821
        without else clauses
 
822
 
 
823
        * rep/vm/compiler/const.jl, rep/vm/compiler/asm.jl: deleted
 
824
 
 
825
        * rep/util/repl.jl: fixed ,compile-proc command
 
826
 
 
827
        * rep/vm/disassembler.jl, rep/vm/bytecodes.jl,
 
828
        rep/vm/bytecode-defs.jl, rep/vm/assembler.jl: various changes
 
829
        to the vm architecture. Bumped major version
 
830
 
 
831
2000-08-03  John Harper  <john@dcs.warwick.ac.uk>
 
832
 
 
833
        * rep/i18n/xgettext.jl: yanked the useful bits of
 
834
        src/rep-xgettext.jl into a library module to enable customized
 
835
        xgettext scripts to be written
 
836
 
 
837
        * rep/vm/assembler.jl: a higher-level assembler
 
838
 
 
839
        * rep/vm/disassembler.jl: split into two functions
 
840
 
 
841
        * rep/vm/bytecodes.jl, rep/vm/bytecode-defs.jl (bytecode-ref):
 
842
        new function
 
843
 
 
844
2000-08-02  John Harper  <john@dcs.warwick.ac.uk>
 
845
 
 
846
        * rep/module-system.jl (define-structures): new macro, for
 
847
        defining >1 structure from the same set of definitions
 
848
 
 
849
        * rep/vm/compiler/modules.jl (module-exports-p): handle
 
850
        first-class structures in imports list
 
851
 
 
852
2000-08-01  John Harper  <john@dcs.warwick.ac.uk>
 
853
 
 
854
        * rep/io/file-handlers/tar.jl,
 
855
        rep/io/file-handlers/remote/rep.jl,
 
856
        rep/io/file-handlers/remote/rcp.jl,
 
857
        rep/io/file-handlers/remote/ftp.jl, rep/util/base64.jl: don't
 
858
        use 0NN octal syntax
 
859
 
 
860
2000-07-31  John Harper  <john@dcs.warwick.ac.uk>
 
861
 
 
862
        * rep.jl: always define _
 
863
 
 
864
        * unscheme.jl, scheme.jl, scheme/syntax-funs.jl: export
 
865
        \#define as %define, then use this for `define' forms
 
866
 
 
867
        * rep/data/symbol-table.jl, rep/io/file-handlers.jl,
 
868
        rep/util/gaol.jl: use structure-define instead of structure-set
 
869
 
 
870
        * rep/user.jl: setq creates bindings in this structure
 
871
 
 
872
        * rep/vm/compiler/unscheme.jl, rep/vm/compiler/scheme.jl,
 
873
        rep/vm/compiler/rep.jl: use %define instruction
 
874
 
 
875
        * rep/vm/compiler/modules.jl (compile-structure-def): don't
 
876
        drop unknown configuration items
 
877
 
 
878
        * rep/vm/disassembler.jl, rep/vm/bytecode-defs.jl (%define):
 
879
        new instruction
 
880
 
 
881
        * rep/lang/interpreter.jl (#f, #t): set to '() and 't respectively
 
882
 
 
883
        * rep/lang/interpreter.jl, rep/lang/math.jl,
 
884
        rep/lang/define.jl, rep/lang/data.jl,
 
885
        rep/lang/module-system.jl: use %define to create definitions
 
886
 
 
887
        * rep/lang/module-system.jl: new clauses `(set-binds)' and
 
888
        `(export-all)' in module configuration language
 
889
 
 
890
2000-07-30  John Harper  <john@dcs.warwick.ac.uk>
 
891
 
 
892
        * dump.jl: deleted this file, it needs a lot of attention
 
893
        before being useful again..
 
894
 
 
895
        * unscheme.jl, scheme.jl, scheme/syntax-funs.jl,
 
896
        scheme/data.jl, unscheme/data.jl: various changes for distinct
 
897
        () object. This means that the scheme implementations no longer
 
898
        have to confuse 'nil and '()
 
899
 
 
900
        * rep/vm/compiler/const.jl (compile-constant): check for '()
 
901
        not 'nil when emitting `nil' instruction
 
902
 
 
903
        * rep/lang/interpreter.jl: (defconst `nil' ()) and (defconst t t),
 
904
        exporting both of them
 
905
 
 
906
        * rep/user.jl: call this structure `user', not `rep.user'
 
907
 
 
908
        * rep/vm/compiler/rep.jl (compile-list*): compile `list*' forms
 
909
        into a sequence of `cons' instructions
 
910
        * rep/vm/compiler/unscheme.jl, rep/vm/compiler/scheme.jl: use
 
911
        rep list* compiler
 
912
 
 
913
2000-07-29  John Harper  <john@dcs.warwick.ac.uk>
 
914
 
 
915
        * rep/vm/compiler/rep.jl (compile-apply): compiles `apply'
 
916
        calls
 
917
 
 
918
        * rep/vm/disassembler.jl, rep/vm/bytecode-defs.jl: new
 
919
        instruction `apply'. Bumped bytecode minor version
 
920
 
 
921
        * rep/vm/compiler.jl, rep/vm/compiler/unscheme.jl: support
 
922
        for unscheme language
 
923
 
 
924
        * unscheme.jl, unscheme/syntax.jl, unscheme/syntax-funs.jl,
 
925
        unscheme/misc.jl, unscheme/data.jl: _Another_ scheme
 
926
        implementation! This one intentionally ignores the Scheme
 
927
        standard where it helps the language fit the rep environment
 
928
        (see unscheme.jl for the details)
 
929
 
 
930
        * scheme/utils.jl: define and export #f and #t as themselves
 
931
 
 
932
        * scheme/syntax-funs.jl: don't depend on value of #f, just
 
933
        quote and return it where necessary
 
934
 
 
935
        * scheme/data.jl: no need for special `/'. Redefine symbol? to
 
936
        ignore #f and #t
 
937
 
 
938
2000-07-28  John Harper  <john@dcs.warwick.ac.uk>
 
939
 
 
940
        * rep/lang/define.jl (define-macro): new macro, similar to
 
941
        `define' but not quite so general
 
942
 
 
943
        * rep/util/repl.jl (repl): fixed bug when completing
 
944
 
 
945
        * scheme/misc.jl: export `load-file' as `load'
 
946
 
 
947
2000-07-27  John Harper  <john@dcs.warwick.ac.uk>
 
948
 
 
949
        * rep/util/repl.jl: core repl is now called for each line of
 
950
        input. Also functions to create repl state objects. Allows
 
951
        tricks like running a replicated repl on a remote system
 
952
 
 
953
        * rep/user.jl: handle --help option if seen
 
954
 
 
955
2000-07-25  John Harper  <john@dcs.warwick.ac.uk>
 
956
 
 
957
        * rep/util/base64.jl: more code borrowed from Jade that may be
 
958
        useful
 
959
 
 
960
        * rep/util/ispell.jl: ripped this code from Jade to provide a
 
961
        generally useful ispell interface
 
962
 
 
963
2000-07-24  John Harper  <john@dcs.warwick.ac.uk>
 
964
 
 
965
        * rep/vm/compiler/scheme.jl (compile-case): compile `case'
 
966
        forms, cut-n-pasted from the `rep' compiler
 
967
 
 
968
        * rep/vm/compiler/modules.jl (compiler-macroexpand-1): handle
 
969
        autoloading macros
 
970
 
 
971
2000-07-23  John Harper  <john@dcs.warwick.ac.uk>
 
972
 
 
973
        Wholesale reorganization of the lisp code, to support the new
 
974
        hierarchical module layout. Various other changes to support
 
975
        this. Also changed `case' to be a macro.
 
976
 
 
977
        * rep/user.jl: new location of user-startup code
 
978
 
 
979
        * rep/www/quote-url.jl, rep/www/fetch-url.jl: a couple of
 
980
        modules for doing www/url stuff
 
981
 
 
982
        * rep/vm/compiler/no-lang.jl: new compiler language module,
 
983
        supports the module configuration language, and nothing else
 
984
 
 
985
        * rep/util/autoloader.jl: new file, for doing generic
 
986
        autoloading of modules that provide arbitrary features
 
987
 
 
988
        * rep/data/objects.jl: new file, a macro for basic
 
989
        message-passing objects, with single inheritance of methods
 
990
 
 
991
        * rep/data/symbol-table.jl, rep/data/string-util.jl,
 
992
        rep/data/sort.jl, rep/data/ring.jl, rep/data/records.jl,
 
993
        rep/data/queues.jl: 
 
994
        * rep/io/file-handlers/tilde.jl, rep/io/file-handlers/tar.jl,
 
995
        rep/io/file-handlers/remote.jl: 
 
996
        * rep/io/file-handlers/remote/utils.jl,
 
997
        rep/io/file-handlers/remote/rep.jl,
 
998
        rep/io/file-handlers/remote/rcp.jl,
 
999
        rep/io/file-handlers/remote/ftp.jl: 
 
1000
        * rep/lang/profiler.jl, rep/lang/doc.jl, rep/lang/define.jl,
 
1001
        rep/lang/debugger.jl, rep/lang/backquote.jl: 
 
1002
        * rep/mail/addr.jl: 
 
1003
        * rep/system/pwd-prompt.jl, rep/system/environ.jl: 
 
1004
        * rep/threads/utils.jl, rep/threads/mutex.jl: 
 
1005
        * rep/util/repl.jl, rep/util/memoize.jl, rep/util/gaol.jl,
 
1006
        rep/util/date.jl: 
 
1007
        * rep/vm/disassembler.jl, rep/vm/compiler.jl,
 
1008
        rep/vm/bytecodes.jl, rep/vm/bytecode-defs.jl: 
 
1009
        * rep/vm/compiler/utils.jl, rep/vm/compiler/src.jl,
 
1010
        rep/vm/compiler/scheme.jl, rep/vm/compiler/rep.jl,
 
1011
        rep/vm/compiler/opt.jl, rep/vm/compiler/modules.jl,
 
1012
        rep/vm/compiler/lap.jl, rep/vm/compiler/inline.jl,
 
1013
        rep/vm/compiler/const.jl, rep/vm/compiler/bindings.jl,
 
1014
        rep/vm/compiler/basic.jl, rep/vm/compiler/asm.jl: 
 
1015
        * rep/www/cgi-get.jl: 
 
1016
        * scheme/utils.jl, scheme/syntax.jl, scheme/syntax-funs.jl,
 
1017
        scheme/misc.jl, scheme/data.jl: 
 
1018
 
 
1019
        New locations for these old files. Many have aliases so the old
 
1020
        names still work
 
1021
 
 
1022
        * rep.jl, rep/system.jl, rep/structures.jl, rep/lang.jl,
 
1023
        rep/lang/interpreter.jl, rep/lang/math.jl,
 
1024
        rep/module-system.jl, rep/data.jl, rep/io/streams.jl,
 
1025
        rep/io/files.jl, rep/io/file-handlers.jl: bootstrap code for
 
1026
        the various modules in the new configuration
 
1027
 
 
1028
        * tilde.jl, threads.jl, tar-file-handler.jl, symbol-table.jl,
 
1029
        string-util.jl, sort.jl, scheme-utils.jl, scheme-syntax.jl,
 
1030
        scheme-syntax-funs.jl, scheme-misc.jl, scheme-data.jl, ring.jl,
 
1031
        rep-repl.jl, rep-packages.jl, rep-autoload.jl, remote.jl,
 
1032
        remote-utils.jl, remote-rep.jl, remote-rcp.jl, remote-ftp.jl,
 
1033
        records.jl, queues.jl, pwd-prompt.jl, profiler.jl, mutex.jl,
 
1034
        memoize.jl, mailaddr.jl, lisp-doc.jl, init.jl, gaol.jl,
 
1035
        environ.jl, disassembler.jl, define.jl, debug.jl, date.jl,
 
1036
        compiler.jl, compiler-utils.jl, compiler-src.jl,
 
1037
        compiler-scheme.jl, compiler-rep.jl, compiler-opt.jl,
 
1038
        compiler-modules.jl, compiler-lap.jl, compiler-inline.jl,
 
1039
        compiler-const.jl, compiler-bindings.jl, compiler-basic.jl,
 
1040
        compiler-asm.jl, cgi-get.jl, bytecodes.jl, bytecode-defs.jl,
 
1041
        backquote.jl, autoload.jl: deleted or moved to a deeper
 
1042
        position
 
1043
 
 
1044
2000-07-21  John Harper  <john@dcs.warwick.ac.uk>
 
1045
 
 
1046
        * rep-repl.jl, rep-packages.jl, init.jl, gaol.jl,
 
1047
        symbol-table.jl: updated for removal of `%' from some function
 
1048
        names
 
1049
 
 
1050
        * init.jl (define-structure-alias): new macro
 
1051
 
 
1052
        * compiler.jl, compiler-utils.jl, compiler-scheme.jl,
 
1053
        compiler-rep.jl, compiler-opt.jl, compiler-modules.jl,
 
1054
        compiler-inline.jl, compiler-basic.jl: reorganized some modules
 
1055
 
 
1056
        * compiler.jl (compile-directory): Recurse into subdirectories
 
1057
 
 
1058
2000-07-20  John Harper  <john@dcs.warwick.ac.uk>
 
1059
 
 
1060
        * version 0.12.4
 
1061
 
 
1062
        * rep-repl.jl (repl): fixed bug of not prompting for
 
1063
        continuation lines when a whole form isn't read
 
1064
 
 
1065
2000-07-19  John Harper  <john@dcs.warwick.ac.uk>
 
1066
 
 
1067
        * compiler-rep.jl (trans-defvar): call make-variable-special on
 
1068
        the symbol (but this is still broken..)
 
1069
 
 
1070
2000-07-18  John Harper  <john@dcs.warwick.ac.uk>
 
1071
 
 
1072
        * lisp-doc.jl (documentation): only try to deref SYMBOL if it's
 
1073
        bound (otherwise interpreted code may fall over?)
 
1074
 
 
1075
        * gaol.jl: store all state in gaol, don't keep it locally then
 
1076
        rebuild the gaol from that. Deprecated some old functions, new
 
1077
        interface is basically gaol-define, gaol-define-special,
 
1078
        gaol-define-file-handler. Also added gaol-open
 
1079
 
 
1080
        * compiler-modules.jl: signal errors when trying to reference
 
1081
        unknown structures
 
1082
 
 
1083
2000-07-16  John Harper  <john@dcs.warwick.ac.uk>
 
1084
 
 
1085
        * gaol.jl (gaol-safe-functions): added more safe functions
 
1086
 
 
1087
2000-07-15  John Harper  <john@dcs.warwick.ac.uk>
 
1088
 
 
1089
        * gaol.jl (make-gaol): install a null virtual machine
 
1090
 
 
1091
2000-07-14  John Harper  <john@dcs.warwick.ac.uk>
 
1092
 
 
1093
        * compiler-utils.jl (declare-inline): handler for `(declare
 
1094
        (inline NAMES...))' marking functions that should be inlined
 
1095
        (remember-function): optional arg BODY, so that functions
 
1096
        previously declared inline can be stored
 
1097
 
 
1098
        * compiler-rep.jl (do-pass-1): pass defun bodies to
 
1099
        remember-function, in case they've been declared inline
 
1100
        (do-pass-2): defsubst forms are compiled as defuns now
 
1101
 
 
1102
        * compiler-modules.jl (variable-stem): new function to extract
 
1103
        the local name of a variable
 
1104
 
 
1105
        * compiler-basic.jl (compile-form-1): removed code to check for
 
1106
        'compile-inline property. This was totally bogus after the
 
1107
        module system arrived
 
1108
        * compiler-inline.jl (compile-inline-function): deleted
 
1109
 
 
1110
        * init.jl (defsubst): just an alias for defun now
 
1111
 
 
1112
        * init.jl (throw): now in lisp
 
1113
        (raise-exception): deleted, now in C
 
1114
 
 
1115
2000-07-12  John Harper  <john@dcs.warwick.ac.uk>
 
1116
 
 
1117
        * define.jl (define-scan-form): don't expand let-fluids forms
 
1118
        since compiler handles them specially
 
1119
 
 
1120
        * version 0.12.3
 
1121
 
 
1122
2000-07-11  John Harper  <john@dcs.warwick.ac.uk>
 
1123
 
 
1124
        * define.jl (define-scan-form): expand macros one at a time,
 
1125
        checking the results for things that shouldn't be expanded
 
1126
 
 
1127
        * compiler-modules.jl (compiler-macroexpand-1): set
 
1128
        macro-environment to compiler-macroexpand-1, not
 
1129
        compiler-macroexpand
 
1130
 
 
1131
        * init.jl (let): don't wrap named lets expansions in a progn
 
1132
        block anymore, the misfeature being worked around is fixed now
 
1133
 
 
1134
2000-07-09  John Harper  <john@dcs.warwick.ac.uk>
 
1135
 
 
1136
        * lisp-doc.jl (doc-file-ref): pass `no-lock' flag to gdbm-open
 
1137
 
 
1138
        * rep-repl.jl (repl): only catch end-of-stream errors when
 
1139
        reading, not when evaluating
 
1140
 
 
1141
        * init.jl (setcar, setcdr): no longer pseudonyms for rplaca and
 
1142
        rplacd (they return the inserted value, not the cell)
 
1143
        * compiler-rep.jl: removed code making setc[ad]r compile as rplac[ad]
 
1144
 
 
1145
2000-07-08  John Harper  <john@dcs.warwick.ac.uk>
 
1146
 
 
1147
        * compiler-modules.jl (compile-structure-def): compile bodies
 
1148
        of non-top-level structures (so they can access their
 
1149
        environment)
 
1150
 
 
1151
        * init.jl (catch, unwind-protect, condition-case): these are
 
1152
        all now macros (in terms of call-with-catch,
 
1153
        call-with-unwind-protect and call-with-error-handlers
 
1154
        respectively. These functions are written in terms of the
 
1155
        call-with-exception handler primitive). This has no effect on
 
1156
        compiled code
 
1157
 
 
1158
        * rep-packages.jl, gaol.jl (call-with-catch,
 
1159
        call-with-unwind-protect, call-with-error-handlers): added
 
1160
 
 
1161
2000-07-07  John Harper  <john@dcs.warwick.ac.uk>
 
1162
 
 
1163
        * rep.jl (rep): do the file-exists-p test when loading scheme
 
1164
        scripts
 
1165
 
 
1166
        * mutex.jl, disassembler.jl, date.jl, cgi-get.jl, bytecodes.jl:
 
1167
        use define-structure instead of structure
 
1168
 
 
1169
2000-07-05  John Harper  <john@dcs.warwick.ac.uk>
 
1170
 
 
1171
        * rep.jl: load-all "autoload" not "autoload.jl"
 
1172
 
 
1173
2000-07-03  John Harper  <john@dcs.warwick.ac.uk>
 
1174
 
 
1175
        * gaol.jl (gaol-safe-functions): added define-value
 
1176
 
 
1177
2000-06-29  John Harper  <john@dcs.warwick.ac.uk>
 
1178
 
 
1179
        * define.jl (define-scan-form): fix bug when extracting doc
 
1180
        strings and interactive decls
 
1181
 
 
1182
2000-06-27  John Harper  <john@dcs.warwick.ac.uk>
 
1183
 
 
1184
        * profiler.jl: front-end for a basic profiler
 
1185
        * rep-repl.jl: added `,profile FORM' command
 
1186
 
 
1187
2000-06-25  John Harper  <john@dcs.warwick.ac.uk>
 
1188
 
 
1189
        * ring.jl (ring->list): new function
 
1190
 
 
1191
2000-06-23  John Harper  <john@dcs.warwick.ac.uk>
 
1192
 
 
1193
        * ring.jl: encapsulate rings in datums, cleaned up the api
 
1194
        (added ring-append, ring-ref, ring-replace. ring-ref counts
 
1195
        from zero unlike the old get-from-ring), no longer uses macros
 
1196
        for inlining
 
1197
 
 
1198
2000-06-22  John Harper  <john@dcs.warwick.ac.uk>
 
1199
 
 
1200
        * version 0.12.2
 
1201
 
 
1202
        * compiler-inline.jl (compile-tail-call): when modifying
 
1203
        bindings in-place, remember to emit a `pop-all' instruction if
 
1204
        the value stack is non-empty
 
1205
 
 
1206
        * init.jl (member-if): new function
 
1207
 
 
1208
2000-06-21  John Harper  <john@dcs.warwick.ac.uk>
 
1209
 
 
1210
        * compiler-rep.jl (compile-list): if (= #args 0) emit `push
 
1211
        nil' instead of `list #0' (also fixes a bug of stack use not
 
1212
        being incremented with zero args)
 
1213
 
 
1214
2000-06-19  John Harper  <john@dcs.warwick.ac.uk>
 
1215
 
 
1216
        * compiler-rep.jl (do-pass-2): don't evaluate constants, pass-1
 
1217
        doesn't
 
1218
 
 
1219
        * init.jl (defconst): don't evaluate constants (the compiler
 
1220
        doesn't)
 
1221
 
 
1222
        * dump.jl, disassembler.jl, compiler-utils.jl,
 
1223
        bytecode-defs.jl: s/0x/#x/ and s/0[0-9]/#o[0-9]/
 
1224
 
 
1225
        * gaol.jl: can now create multiple gaols (though each has the
 
1226
        same default contents). This allows gaolled code to defun to
 
1227
        its heart's content without affecting anything else. New
 
1228
        function make-gaol returns a gaol (a structure), gaol-eval and
 
1229
        gaol-load optionally take a gaol as their second arg
 
1230
 
 
1231
        * tar-file-handler.jl: when reading files from (non-huge) tar
 
1232
        archives unpack the entire contents. This unpacked version is
 
1233
        kept around for a while to service subsequent reads to other
 
1234
        files in the same archive (this is a huge win when reading
 
1235
        compressed sawfish themes)
 
1236
 
 
1237
2000-06-18  John Harper  <john@dcs.warwick.ac.uk>
 
1238
 
 
1239
        * version 0.12.1
 
1240
 
 
1241
        * compiler-rep.jl (compile-declare): push `nil' onto the stack
 
1242
        (since all forms are assumed to leave a value on the stack)
 
1243
 
 
1244
2000-06-16  John Harper  <john@dcs.warwick.ac.uk>
 
1245
 
 
1246
        * version 0.12
 
1247
 
 
1248
2000-06-14  John Harper  <john@dcs.warwick.ac.uk>
 
1249
 
 
1250
        * define.jl (define): strip leading progn's from expanded
 
1251
        bodies of defines that expand to defuns (so that doc strings
 
1252
        etc are visible)
 
1253
 
 
1254
2000-06-10  John Harper  <john@dcs.warwick.ac.uk>
 
1255
 
 
1256
        * compiler-opt.jl (peephole-optimizer): remove some zero
 
1257
        additions and subtractions
 
1258
 
 
1259
2000-06-09  John Harper  <john@dcs.warwick.ac.uk>
 
1260
 
 
1261
        * init.jl: added some more doc strings
 
1262
 
 
1263
2000-06-08  John Harper  <john@dcs.warwick.ac.uk>
 
1264
 
 
1265
        * records.jl (record-printer): if the value returned from the
 
1266
        discloser function is a string, print it without surrounding
 
1267
        quotes
 
1268
 
 
1269
        * records.jl (define-record-type): removed the NAME argument,
 
1270
        it's not very useful, and conflicts with the definition in
 
1271
        SRFI 9 (http://srfi.schemers.org/srfi-9/)
 
1272
 
 
1273
2000-06-07  John Harper  <john@dcs.warwick.ac.uk>
 
1274
 
 
1275
        * compiler-basic.jl (compile-lambda): when adding doc strings,
 
1276
        don't concatenate lambda-doc onto actual doc, add two separate
 
1277
        items to the database
 
1278
 
 
1279
        * lisp-doc.jl (doc-file-ref, doc-file-set): functions to access
 
1280
        doc files
 
1281
        (add-documentation-params): store a parameter-list for a named
 
1282
        function in the doc file
 
1283
 
 
1284
        * compiler-opt.jl (peephole-optimizer): when threading jmp
 
1285
        instructions, ignore instructions that wouldn't change
 
1286
        (fixes a non-termination case)
 
1287
 
 
1288
        * compiler-opt.jl (constant-optimizer): remember to update
 
1289
        constant-index so that the resulting vector contains no unused
 
1290
        entries
 
1291
 
 
1292
2000-06-05  John Harper  <john@dcs.warwick.ac.uk>
 
1293
 
 
1294
        * compiler-modules.jl (compile-top-level-structure,
 
1295
        compile-top-level-define-structure): new exported functions
 
1296
        * compiler-rep.jl: leave top-level structure definitions
 
1297
        unexpanded in output
 
1298
 
 
1299
        * rep-repl.jl (,load-file): will now load more than one file
 
1300
 
 
1301
        * scheme.jl, scheme-utils.jl, scheme-syntax-funs.jl,
 
1302
        scheme-misc.jl, scheme-data.jl, compiler-scheme.jl: prefix most
 
1303
        exported non-r4rs symbols by `#' (not allowed in scheme
 
1304
        identifiers)
 
1305
 
 
1306
        * compiler-modules.jl (compile-structure-ref): check
 
1307
        open-modules for structure being referenced as well
 
1308
 
 
1309
        * scheme-data.jl (symbol?): (symbol? '()) => #f
 
1310
        (string->symbol): copy the name if a symbol needs to be created
 
1311
        and interned
 
1312
 
 
1313
        * define.jl (define-scan-form): don't mistake (let () ..) for a
 
1314
        named let
 
1315
 
 
1316
2000-06-04  John Harper  <john@dcs.warwick.ac.uk>
 
1317
 
 
1318
        * rep-repl.jl (rl-completion-generator): fix from Ceri to
 
1319
        prepend `^' to start of word, also quote the word being
 
1320
        completed
 
1321
 
 
1322
        * define.jl (define-scan-form): don't expand `structure-ref'
 
1323
        forms
 
1324
 
 
1325
        * compiler-rep.jl: merge `normal' top-level forms into progn
 
1326
        statements in pass-1, which then get compiled in pass-2
 
1327
 
 
1328
        * compiler-modules.jl (compile-structure-def): leave `open' and
 
1329
        `access' config statements as-is
 
1330
 
 
1331
        * compiler-basic.jl (macroexpand-pred): used to stop expanding
 
1332
        macros when a form with a special compiler is found
 
1333
 
 
1334
        * compiler-modules.jl (parse-interface): fix typo
 
1335
 
 
1336
        * scheme.jl: no need to export %while anymore
 
1337
 
 
1338
        * compiler-utils.jl (compiler-constant-p,
 
1339
        compiler-constant-value): anything that isn't a cons or a
 
1340
        symbol is now treated as a (self-evaluating) constant, mainly
 
1341
        to allow #f and #t to be constant-folded
 
1342
 
 
1343
        * compiler-scheme.jl: enabled constant folding support
 
1344
 
 
1345
        * compiler-modules.jl: pass-1 and pass-2 functions now take and
 
1346
        return the complete list of forms, not just one at a time
 
1347
 
 
1348
        * compiler-scheme.jl, compiler-rep.jl (pass-1, pass-2): operate
 
1349
        on the entire body in one go
 
1350
 
 
1351
2000-06-02  John Harper  <john@dcs.warwick.ac.uk>
 
1352
 
 
1353
        * init.jl (fluid-let): renamed as `let-fluids'. Updated all
 
1354
        users
 
1355
 
 
1356
        * rep-repl.jl: removed *repl-in-struct* defvar, replaced by
 
1357
        fluid repl-in-struct
 
1358
 
 
1359
2000-06-01  John Harper  <john@dcs.warwick.ac.uk>
 
1360
 
 
1361
        * rep-repl.jl (rl-completion-generator): new function,
 
1362
        generates completions for readline (from Ceri Storey
 
1363
        <cez@phi.uklinux.net>)
 
1364
 
 
1365
        * compiler-basic.jl (compile-form-1): don't call
 
1366
        test-function-call if the form has a special handler
 
1367
 
 
1368
        * compiler-rep.jl: handle non-top-level declarations
 
1369
 
 
1370
        * compiler-bindings.jl: support (declare (bound VARS...)) and
 
1371
        (declare (special VARS...)) to flag variable bindings that the
 
1372
        compiler would otherwise be unaware of
 
1373
 
 
1374
        * remote-ftp.jl, disassembler.jl, compiler-utils.jl: added
 
1375
        declarations to prevent warnings for jade-only functions
 
1376
 
 
1377
        * backquote.jl (backquote-listify): don't call `eval' to
 
1378
        unquote constants, use a special purpose backquote-eval to
 
1379
        avoid security breaches
 
1380
 
 
1381
        * scheme-syntax-funs.jl: new file, defines expand-FOO functions
 
1382
        for each non-trivial Scheme syntax form. Since nothing is
 
1383
        redefined here, doing this removes the need for the gratuitous
 
1384
        rep# and hand-expanded macros
 
1385
        * scheme-syntax.jl: most macros just call expand-FOO
 
1386
 
 
1387
        * init.jl (make-guardian): use a rest argument in the returned
 
1388
        closure so that `(G nil)' can be distinguished from `(G)'
 
1389
 
 
1390
        * init.jl (call-after-load): new function, eval-after-load just
 
1391
        calls this now
 
1392
 
 
1393
2000-05-31  John Harper  <john@dcs.warwick.ac.uk>
 
1394
 
 
1395
        * init.jl (with-object): new macro, uses call-with-object
 
1396
        * compiler-rep.jl (with-object): flushed compiler for this
 
1397
        special form
 
1398
        * disassembler.jl, bytecode-defs.jl (bindobj): flushed this insn
 
1399
 
 
1400
        * init.jl (prog1): new macro, in terms of lambda
 
1401
 
 
1402
2000-05-30  John Harper  <john@dcs.warwick.ac.uk>
 
1403
 
 
1404
        * init.jl (while): new macro, basic tail-recursive definition
 
1405
 
 
1406
        * define.jl (define-scan-form): removed `while' from the list
 
1407
        of special forms
 
1408
 
 
1409
2000-05-27  John Harper  <john@dcs.warwick.ac.uk>
 
1410
 
 
1411
        * scheme-misc.jl, records.jl, queues.jl: updated for datum
 
1412
        printer interface
 
1413
 
 
1414
2000-05-26  John Harper  <john@dcs.warwick.ac.uk>
 
1415
 
 
1416
        * compiler-src.jl (coalesce-constants, mash-constants): new
 
1417
        functions, in preparation for more constant optimizations
 
1418
 
 
1419
        * lisp-doc.jl (describe-lambda-list): new function
 
1420
 
 
1421
        * compiler-scheme.jl: list? no longer == listp
 
1422
 
 
1423
        * compiler-basic.jl (compile-lambda): add the argument spec to
 
1424
        the front of any doc string
 
1425
 
 
1426
        * scheme-data.jl (boolean?): fixed
 
1427
        (list?): no longer equivalent to rep's listp, scheme standard
 
1428
        says this must only return #t if its last cdr is the empty list
 
1429
        (string-ci>?): fixed
 
1430
 
 
1431
        * init.jl (lcm): handle 0...N args
 
1432
 
 
1433
2000-05-25  John Harper  <john@dcs.warwick.ac.uk>
 
1434
 
 
1435
        * compiler-basic.jl (compile-lambda-spec): if the spec contains
 
1436
        special variables, don't encode it
 
1437
        (compile-lambda): don't error out if special variables in spec
 
1438
 
 
1439
        * compiler-rep.jl: added special handlers for `defun' and
 
1440
        `defmacro', otherwise non-top-level calls to these macros don't
 
1441
        get compiled properly
 
1442
 
 
1443
        * rep-repl.jl: added `,time' command
 
1444
 
 
1445
        * lisp-doc.jl (describe-value): don't check for calls to
 
1446
        jade-byte-code
 
1447
 
 
1448
        * init.jl (eval-after-load): don't use `&aux'
 
1449
 
 
1450
        * dump.jl: don't `set' lexical variables
 
1451
 
 
1452
        * disassembler.jl: understand new opcodes, new parameter list
 
1453
        encoding
 
1454
 
 
1455
        * debug.jl: updated for new lexical environment structure (of
 
1456
        interpreted code)
 
1457
 
 
1458
        * compiler.jl (compile-form): generate calls to `run-byte-code'
 
1459
        instead of `jade-byte-code'
 
1460
 
 
1461
        * compiler-utils.jl (remember-function): don't `set' lexical
 
1462
        variables
 
1463
        (get-lambda-vars): ignore `&aux' keys
 
1464
 
 
1465
        * compiler-src.jl (fold-constants): use `compiler-symbol-value'
 
1466
        instead of `eval' to dereference functions
 
1467
 
 
1468
        * compiler-rep.jl: don't compile calls to `eval'
 
1469
        (compile-condition-case): changed this for the modified
 
1470
        semantics of the `errorpro' instruction (doesn't require name
 
1471
        of variable to bind, always binds the next lexical slot)
 
1472
 
 
1473
        * compiler-opt.jl: added some peephole patterns for changing
 
1474
        simple constant add and subtract sequences into `inc' or `dec'
 
1475
        instructions
 
1476
 
 
1477
        * compiler-inline.jl: removed all support for `&aux' keyword
 
1478
 
 
1479
        * compiler-bindings.jl (emit-binding): don't emit arg when
 
1480
        binding lexically
 
1481
 
 
1482
        * compiler-basic.jl (compile-lambda): generate the new-style
 
1483
        byte code subrs (with parameter spec encoded as a fixnum)
 
1484
 
 
1485
        * bytecode-defs.jl: deleted `eval', `bind' is now arg-less (and
 
1486
        uses the old eval opcode)
 
1487
        * bytecodes.jl (byte-insns-with-constants): removed `bind'
 
1488
 
 
1489
2000-05-23  John Harper  <john@dcs.warwick.ac.uk>
 
1490
 
 
1491
        * scheme-misc.jl (eof-object?): fixed to return #f or #t
 
1492
 
 
1493
        * compiler-scheme.jl: code and properties to piggyback the rep
 
1494
        compiler for predicates that just needs boolean results translated
 
1495
 
 
1496
        * compiler-opt.jl: delete `test-scm[-f]; scm-test' pairs of
 
1497
        instructions
 
1498
 
 
1499
        * bytecodes.jl, bytecode-defs.jl, disassembler.jl (test-scm,
 
1500
        test-scm-f): new instructions, map from rep booleans to scheme
 
1501
        booleans
 
1502
 
 
1503
        * rep.jl: option aliases: --call -> -f, --load -> -l, --quit -> -q
 
1504
        New option --scheme,-s to load a file of Scheme code    
 
1505
 
 
1506
        * scheme.jl, scheme-misc.jl: export %load-suffixes
 
1507
 
 
1508
        * scheme-syntax.jl (delay): don't use `rep#lambda' in
 
1509
        expansion, probably not available in caller's environment
 
1510
 
 
1511
        * scheme-misc.jl (write-char): use `rep#write', not `write'
 
1512
        (load): removed this definition, must use the subr (so the file
 
1513
        is loaded in the caller's environment..)
 
1514
 
 
1515
        * compiler-modules.jl (compile-module-body): remember to create
 
1516
        a binding of `current-language'
 
1517
 
 
1518
2000-05-22  John Harper  <john@dcs.warwick.ac.uk>
 
1519
 
 
1520
        * scheme-syntax.jl (cond): now expands into an `if' chain, this
 
1521
        is to enable simple handling of `(TEST => FUNCTION)' syntax
 
1522
        (case): remember to add the key to the expansion
 
1523
 
 
1524
        * scheme-misc.jl (close-input-port, close-output-port): detect
 
1525
        and ignore files that have already been closed
 
1526
 
 
1527
        * scheme-data.jl (char?): defined and exported
 
1528
        (complex?): always returns #t not #f
 
1529
        (string->number): defined using make-nil-predicate
 
1530
 
 
1531
        * memoize.jl (memoize-function): renamed as `memoize' and
 
1532
        removed the code to work on symbol values
 
1533
 
 
1534
2000-05-17  John Harper  <john@dcs.warwick.ac.uk>
 
1535
 
 
1536
        * debug.jl: added `up' and `down' commands; catch errors during
 
1537
        `print' commands
 
1538
 
 
1539
        * compiler-rep.jl (compile-fluid-let): re-enabled this, the
 
1540
        segmentation faults it used to cause seem to have mysteriously
 
1541
        disappeared
 
1542
 
 
1543
2000-05-16  John Harper  <john@dcs.warwick.ac.uk>
 
1544
 
 
1545
        * debug.jl (error-entry): make this work again
 
1546
 
 
1547
        * init.jl (default-error-handler): new function, stuffed into
 
1548
        error-handler-function
 
1549
 
 
1550
        * rep.jl, rep-repl.jl: call default-error-handler or
 
1551
        error-handler-function to print errors
 
1552
 
 
1553
2000-05-15  John Harper  <john@dcs.warwick.ac.uk>
 
1554
 
 
1555
        * gaol.jl: added some more safe functions
 
1556
 
 
1557
        * date.jl, remote-ftp.jl, remote-rep.jl, tar-file-handler.jl:
 
1558
        use string->number to parse numbers, not read-from-string
 
1559
        (otherwise e.g. 08 causes a read error)
 
1560
 
 
1561
        * scheme-data.jl (string->number, number->string): deleted, use
 
1562
        built-in versions of these functions
 
1563
 
 
1564
        * debug.jl: adapted for new return from debug-frame-environment
 
1565
        (but this doesn't work 100%?)
 
1566
 
 
1567
2000-05-14  John Harper  <john@dcs.warwick.ac.uk>
 
1568
 
 
1569
        * init.jl (and): fixed bug `(and 1 nil) => 1'
 
1570
 
 
1571
        * compiler-modules.jl (compile-module): added interactive spec
 
1572
 
 
1573
2000-05-13  John Harper  <john@dcs.warwick.ac.uk>
 
1574
 
 
1575
        * compiler-rep.jl: compile `=' using num-eq insn
 
1576
        (compile-case): use memql and eql for comparisons instead of
 
1577
        memq and eq
 
1578
 
 
1579
        * bytecode-defs.jl, disassembler.jl (memql, num-eq): new insns
 
1580
 
 
1581
        * scheme-data.jl (memv): defined by wrapping memql
 
1582
 
 
1583
2000-05-12  John Harper  <john@dcs.warwick.ac.uk>
 
1584
 
 
1585
        * lisp-doc.jl (apropos-output, apropos-function,
 
1586
        apropos-variable, describe-variable, describe-variable-1,
 
1587
        describe-function): deleted these functions, they're all
 
1588
        useless since they call symbol-value (from the wrong structure)
 
1589
 
 
1590
        (describe-function-1): renamed describe-value, takes two args
 
1591
        VALUE and NAME (optional), then describes the value to
 
1592
        standard-output. Handles both functions and variables
 
1593
 
 
1594
        (documentation): added optional second arg VALUE, the value of
 
1595
        the symbol in the caller's environment
 
1596
        
 
1597
        * rep-repl.jl: added `,describe' and `,apropos' commands,
 
1598
        removed `,doc'
 
1599
 
 
1600
2000-05-11  John Harper  <john@dcs.warwick.ac.uk>
 
1601
 
 
1602
        * init.jl (or, and): implement base cases explicitly, (or) =>
 
1603
        nil, (and) => t
 
1604
        * scheme-syntax.jl (and): add base case (and) => #t
 
1605
 
 
1606
        * init.jl (structure, define-structure): INTERFACE is now
 
1607
        optional
 
1608
 
 
1609
        * init.jl, compiler-modules.jl (%parse-interface,
 
1610
        parse-interface): accept `()' as null interface
 
1611
 
 
1612
2000-04-30  John Harper  <john@dcs.warwick.ac.uk>
 
1613
 
 
1614
        * string-util.jl (mapconcat): new function
 
1615
 
 
1616
2000-04-28  John Harper  <john@dcs.warwick.ac.uk>
 
1617
 
 
1618
        * records.jl: detect and report unknown fields
 
1619
 
 
1620
2000-04-24  John Harper  <john@dcs.warwick.ac.uk>
 
1621
 
 
1622
        * rep-repl.jl: new commands `,compile' and `,compile-proc'
 
1623
 
 
1624
        * init.jl, scheme.jl, scheme-data.jl: added cons accessors c....r
 
1625
 
 
1626
        * compiler.jl: export compile-module
 
1627
        (compile-function): ignore already compiled functions, don't
 
1628
        signal an error. And fix the method of testing for compiledness
 
1629
 
 
1630
        * compiler-modules.jl (compile-module): new function, compile
 
1631
        all non-compiled functions in a named structure
 
1632
 
 
1633
2000-04-23  John Harper  <john@dcs.warwick.ac.uk>
 
1634
 
 
1635
        * records.jl: implements record-like data structures. Based on
 
1636
        the Scheme48 record interface
 
1637
 
 
1638
2000-04-22  John Harper  <john@dcs.warwick.ac.uk>
 
1639
 
 
1640
        * compiler.jl (compile-function): this now works properly since
 
1641
        it respects the structure that the closure is made in
 
1642
 
 
1643
        * compiler-utils.jl (compiler-constant-p): don't check that the
 
1644
        `quote' symbol is from the `rep' structure (kludge)
 
1645
 
 
1646
        * compiler-scheme.jl, compiler-rep.jl: at top-level, splice in
 
1647
        `begin' and `progn' forms, allows macros to expand to blocks of
 
1648
        top-level definitions
 
1649
 
 
1650
        * compiler-modules.jl: track the current language being
 
1651
        compiled, also provides a means for telling the compiler which
 
1652
        module is being compiled in
 
1653
 
 
1654
        * compiler-basic.jl (compile-lambda): removed the SEQUENCER
 
1655
        arg, use the compiler-sequencer language property
 
1656
 
 
1657
        * compiler-utils.jl (compiler-constant-p,
 
1658
        compiler-constant-value): accept all numeric types
 
1659
 
 
1660
        * compiler-const.jl (compile-constant): only emit fixnums using
 
1661
        immediate push insns
 
1662
 
 
1663
2000-04-21  John Harper  <john@dcs.warwick.ac.uk>
 
1664
 
 
1665
        * queues.jl: new file, implement the scheme48 queue interface
 
1666
 
 
1667
        * init.jl (fluid-let): new macro
 
1668
 
 
1669
        * debug.jl: rewritten to use fluid instead of special variables
 
1670
 
 
1671
        * bytecode-defs.jl, disassembler.jl (fluid-ref, fluid-set,
 
1672
        fluid-bind): new insns
 
1673
 
 
1674
        * compiler.jl, compiler-vars.jl, compiler-utils.jl,
 
1675
        compiler-src.jl, compiler-scheme.jl, compiler-rep.jl,
 
1676
        compiler-opt.jl, compiler-modules.jl, compiler-lap.jl,
 
1677
        compiler-inline.jl, compiler-const.jl, compiler-bindings.jl,
 
1678
        compiler-basic.jl: rewritten to use fluid instead of special
 
1679
        variables
 
1680
 
 
1681
        * symbol-table.jl: new file, wrapper around anonymous
 
1682
        structures for efficient symbol tables
 
1683
 
 
1684
        * init.jl (realp, rationalp, inexactp): new functions
 
1685
 
 
1686
2000-04-18  John Harper  <john@dcs.warwick.ac.uk>
 
1687
 
 
1688
        * compiler.jl, compiler-vars.jl, compiler-utils.jl,
 
1689
        compiler-rep.jl, compiler-inline.jl: track the maximum depth of
 
1690
        the binding stack while compiling forms, then embed this into
 
1691
        the `stack' property of byte code forms/subrs
 
1692
 
 
1693
        * disassembler.jl: groks the new layout of the `stack' arg
 
1694
 
 
1695
2000-04-17  John Harper  <john@dcs.warwick.ac.uk>
 
1696
 
 
1697
        * scheme-misc.jl (input-port?, output-port?, peek-char):
 
1698
        implemented properly now
 
1699
 
 
1700
        * init.jl (streamp): in lisp now
 
1701
 
 
1702
        * compiler-modules.jl (compiler-symbol-value): this now
 
1703
        recognizes autoload values, loading them before returning
 
1704
 
 
1705
2000-04-16  John Harper  <john@dcs.warwick.ac.uk>
 
1706
 
 
1707
        * scheme-syntax.jl (lambda): now scans out leading internal
 
1708
        defines into a letrec
 
1709
 
 
1710
        * compiler*.jl: track which lexical bindings have been modified
 
1711
        and which have been captured by closures, then use this
 
1712
        information to optimize tail recursion. Also renamed a load of
 
1713
        compiler functions to get rid of needless `comp-' prefixes
 
1714
 
 
1715
        * define.jl, scheme-syntax.jl (define): now supports curried
 
1716
        functions, e.g. (define ((plus a) b) (+ a b)), then (plus 1)
 
1717
        evaluates to the function that adds one to its argument
 
1718
 
 
1719
2000-04-15  John Harper  <john@dcs.warwick.ac.uk>
 
1720
 
 
1721
        * gaol.jl: don't need to build trampoline code anymore, can
 
1722
        just use %eval-in-structure
 
1723
 
 
1724
        * compiler-rep.jl (compile-save-environment): deleted
 
1725
 
 
1726
        * bytecode-defs.jl, disassembler.jl: removed `bindenv'
 
1727
        instruction
 
1728
 
 
1729
        * gaol.jl: updated for special environment being stored with
 
1730
        the structure
 
1731
 
 
1732
2000-04-14  John Harper  <john@dcs.warwick.ac.uk>
 
1733
 
 
1734
        * disassembler.jl, bytecode-defs.jl: removed `dset' bytecode
 
1735
 
 
1736
        * compiler-basic.jl (comp-compile-lambda): when noting the
 
1737
        parameter bindings, reverse the list
 
1738
 
 
1739
        * bytecode-defs.jl: bumped major version to 10
 
1740
        (unbindall-0, pop-all): new instructions
 
1741
        * disassembler.jl: updated for new insns
 
1742
 
 
1743
        * scheme-syntax.jl (do): implemented using named let, not
 
1744
        while, since the Scheme report requires that each iteration
 
1745
        get new bindings for each variable
 
1746
 
 
1747
        * init.jl (do): implemented this iteration syntax from Scheme,
 
1748
        expands to a named let
 
1749
 
 
1750
        * compiler-inline.jl (comp-do-tail-call): don't just setq the
 
1751
        new values of the variables, create wholly new bindings (in
 
1752
        case the previous bindings have been captured by any closures)
 
1753
 
 
1754
2000-04-12  John Harper  <john@dcs.warwick.ac.uk>
 
1755
 
 
1756
        * gaol.jl: updated for new set-file-handler-environment semantics
 
1757
 
 
1758
        * rep-repl.jl: added commands `,step' and `,expand'. `,help'
 
1759
        now prints two columns
 
1760
 
 
1761
        * debug.jl: now works with the module system
 
1762
 
 
1763
        * init.jl, compiler-modules.jl: changed module definition
 
1764
        syntax, the config section is now a single form or list of
 
1765
        forms, instead of the kludge of extracting them from the head
 
1766
        of the module body. This way no extra indentation is introduced
 
1767
        for the body. Existing modules only need changing if they have
 
1768
        more than one config form
 
1769
 
 
1770
        * scheme.jl, scheme-syntax.jl, scheme-misc.jl, scheme-data.jl:
 
1771
        updated for new module configuration syntax
 
1772
 
 
1773
2000-04-11  John Harper  <john@dcs.warwick.ac.uk>
 
1774
 
 
1775
        * remote-rep.jl, remote-ftp.jl: export all interactive
 
1776
        functions
 
1777
 
 
1778
        * init.jl (let): fixed bug of interpreting (let () ..) as a
 
1779
        named let (due to (symbolp '()))
 
1780
 
 
1781
2000-04-10  John Harper  <john@dcs.warwick.ac.uk>
 
1782
 
 
1783
        * rep-packages.jl (rep-files-interface): added jade-only file
 
1784
        operations (since they need to be in the `rep' structure)
 
1785
 
 
1786
        * init.jl (eval-and-print): deleted, probably evals in the
 
1787
        wrong structure for most uses
 
1788
 
 
1789
2000-04-09  John Harper  <john@dcs.warwick.ac.uk>
 
1790
 
 
1791
        Changes to make sawmill work with the module system, and to
 
1792
        make things in general work more smoothly
 
1793
 
 
1794
        * init.jl: set `*root-structure*' to rep
 
1795
        (declare): macro to ignore declarations
 
1796
        (defsubst): put the actual function body in the
 
1797
        `compiler-inline' property
 
1798
 
 
1799
        * compiler.jl, compiler-vars.jl, compiler-utils.jl,
 
1800
        compiler-rep.jl, compiler-modules.jl, compiler-inline.jl:
 
1801
        various compiler fixes/improvements to make things work largely
 
1802
        as they did before (!)
 
1803
 
 
1804
        Also now supports top-level declarations, currently only
 
1805
        `(declare (in-module FOO))' to tell the compiler where to look
 
1806
        for bindings outside any actual module definition
 
1807
 
 
1808
        * rep.jl: set `*root-structure*' to user
 
1809
 
 
1810
        * gaol.jl: removed support for redefining `require',
 
1811
        miscellaneous fixes
 
1812
 
 
1813
        * define.jl: reverted to handling all let forms specially,
 
1814
        macroexpanding them prevents the compiler doing some
 
1815
        optimizations
 
1816
 
 
1817
        * threads.jl, string-util.jl, sort.jl, rep-repl.jl,
 
1818
        rep-packages.jl, environ.jl, define.jl, debug.jl, backquote.jl:
 
1819
        added `(in-module rep)' declaration
 
1820
 
 
1821
2000-04-07  John Harper  <john@dcs.warwick.ac.uk>
 
1822
 
 
1823
        Many changes to support the new module system:
 
1824
 
 
1825
        * init.jl: subsumes lisp.jl, defines all module syntax
 
1826
        (define-interface, structure, define-structure, etc..),
 
1827
        defconst now declares _lexically_ scoped constants
 
1828
 
 
1829
        * rep-packages.jl: defines the various interfaces that the rep
 
1830
        package implements, plus other basic structures
 
1831
 
 
1832
        * rep-repl.jl: implements the default repl, borrows Scheme48's
 
1833
        idea of using `,' to introduce meta-commands (e.g. to control
 
1834
        and inspect the state of the module system)
 
1835
 
 
1836
        * rep.jl: use the new repl; try to work out when to `require'
 
1837
        and when to `load' command line options
 
1838
 
 
1839
        * rep-autoload.jl, autoload.jl: split autoloading into two
 
1840
        parts, rep-autoload contains decls for the `rep' module,
 
1841
        autoload contains those for the default user module
 
1842
 
 
1843
        * gaol.jl: modularized; uses an anonymous structure to create
 
1844
        the sandboxed environment
 
1845
 
 
1846
        * bytecodes.jl, bytecode-defs.jl: split into two modules, no
 
1847
        longer exports op-FOO constants, instead a macro `(bytecode FOO)'
 
1848
 
 
1849
        * compiler.jl, compiler-vars.jl, compiler-utils.jl,
 
1850
        compiler-src.jl, compiler-scheme.jl, compiler-rep.jl,
 
1851
        compiler-opt.jl, compiler-modules.jl, compiler-lap.jl,
 
1852
        compiler-inline.jl, compiler-const.jl, compiler-bindings.jl,
 
1853
        compiler-basic.jl, compiler-asm.jl: the compiler has now been
 
1854
        modularized; it also groks the module configuration forms, and
 
1855
        can compile for whatever base language (rep, scheme, ..?) a
 
1856
        module is actually using. Scheme support is currently minimal
 
1857
        (working but sub-optimal code)
 
1858
 
 
1859
        * scheme.jl, scheme-utils.jl, scheme-syntax.jl, scheme-misc.jl,
 
1860
        scheme-data.jl: support for interpreting scheme code, any
 
1861
        modules with `(open scheme)' instead of `(open rep)' will find
 
1862
        a minimal r4rs scheme environment (without macros)
 
1863
 
 
1864
        * tilde.jl, tar-file-handler.jl, remote.jl, remote-utils.jl,
 
1865
        remote-rep.jl, remote-rcp.jl, remote-ftp.jl: updated to use new
 
1866
        method of declaring file handlers (the define-file-handler
 
1867
        function)
 
1868
 
 
1869
        * ring.jl, mutex.jl, memoize.jl, lisp-doc.jl, disassembler.jl,
 
1870
        date.jl, cgi-get.jl: modularized
 
1871
 
 
1872
        * define.jl: macroexpand fully, then just scan through lambda
 
1873
        bodies
 
1874
 
 
1875
2000-04-13  John Harper  <john@dcs.warwick.ac.uk>
 
1876
 
 
1877
        * version 0.11.3
 
1878
 
 
1879
2000-04-11  John Harper  <john@dcs.warwick.ac.uk>
 
1880
 
 
1881
        * init.jl (let): fixed bug of interpreting (let () ..) as a
 
1882
        named let (due to (symbolp '()))
 
1883
 
 
1884
2000-04-09  John Harper  <john@dcs.warwick.ac.uk>
 
1885
 
 
1886
        * version 0.11.2
 
1887
 
 
1888
2000-03-29  John Harper  <john@dcs.warwick.ac.uk>
 
1889
 
 
1890
        * compiler.jl (compile-file): prevent top-level macro
 
1891
        expansions being expanded again if we want to see them in their
 
1892
        original form
 
1893
 
 
1894
        * lisp.jl (define-value): support non-constant variable forms..
 
1895
        but for how long..?
 
1896
 
 
1897
        * lisp.jl (defmacro, defun, defconst, define-value): now macros
 
1898
        * compiler.jl (comp-compile-defun, comp-compile-defmacro): deleted
 
1899
 
 
1900
2000-03-24  John Harper  <john@dcs.warwick.ac.uk>
 
1901
 
 
1902
        * remote-ftp.jl: some lisp-1 fixes
 
1903
 
 
1904
2000-03-21  John Harper  <john@dcs.warwick.ac.uk>
 
1905
 
 
1906
        * lisp.jl (call-with-current-continuation): just define-value
 
1907
        to the value of call/cc instead of using a lambda
 
1908
 
 
1909
        * gaol.jl (gaol-safe-functions): added case
 
1910
 
 
1911
2000-03-20  John Harper  <john@dcs.warwick.ac.uk>
 
1912
 
 
1913
        * mutex.jl: fixed some stupid typos (by Damon Anderson
 
1914
        <damon@get.topica.com>)
 
1915
 
 
1916
2000-03-14  John Harper  <john@dcs.warwick.ac.uk>
 
1917
 
 
1918
        * lisp.jl (prog2): now a macro
 
1919
        * compiler.jl (comp-compile-prog2): deleted
 
1920
 
 
1921
        * lisp.jl (setq-default): now a macro
 
1922
        * compiler.jl (comp-trans-setq-default): deleted
 
1923
 
 
1924
        * lisp.jl (dynamic-wind): defined in terms of call-with-barrier
 
1925
 
 
1926
        * lisp-doc.jl (describe-function-1): handle macros, improper
 
1927
        parameter lists; some cosmetic improvements
 
1928
 
 
1929
2000-03-13  John Harper  <john@dcs.warwick.ac.uk>
 
1930
 
 
1931
        * compiler.jl (compile-file): only expand macros if the form
 
1932
        wouldn't be compiled anyway
 
1933
        (comp-trans-if, comp-trans-and, comp-trans-or): deleted
 
1934
        (comp-compile-let): deleted
 
1935
 
 
1936
        * lisp.jl (let, let*): now defined as macros, `let' supports
 
1937
        Scheme's named lets for iteration
 
1938
        (if, and, or, function): defined as macros
 
1939
 
 
1940
        * define.jl: only expand macros when absolutely necessary;
 
1941
        handle named lets; handle multi-action setq and setq-default
 
1942
        forms
 
1943
 
 
1944
2000-03-12  John Harper  <john@dcs.warwick.ac.uk>
 
1945
 
 
1946
        * version 0.11.1
 
1947
 
 
1948
2000-03-11  John Harper  <john@dcs.warwick.ac.uk>
 
1949
 
 
1950
        * lisp.jl (load-all): added back the restriction of not loading
 
1951
        from the current directory
 
1952
 
 
1953
        * compiler.jl (compile-file): copy permissions from source to
 
1954
        dest file
 
1955
 
 
1956
2000-03-10  John Harper  <john@dcs.warwick.ac.uk>
 
1957
 
 
1958
        * compiler.jl: compile (null X) using `not', instead of `null'
 
1959
 
 
1960
2000-03-09  John Harper  <john@dcs.warwick.ac.uk>
 
1961
 
 
1962
        * compiler.jl: non-trivial changes to make the compiler
 
1963
        eliminate intra-function tail recursion. Also fixed some bugs
 
1964
        when handling defsubst's
 
1965
 
 
1966
        * compiler-opt.jl: modified `jmp X; ... Y: --> jmp X; Y:'
 
1967
        pattern to handle `return' instructions as well as gotos, and
 
1968
        to delete until the end of the instruction stream if no
 
1969
        subsequence label. Also fixed bug stopping the optimization
 
1970
        being applied
 
1971
 
 
1972
2000-03-08  John Harper  <john@dcs.warwick.ac.uk>
 
1973
 
 
1974
        * compiler.jl (comp-compile-case): don't dup before the default
 
1975
        branch
 
1976
 
 
1977
2000-03-05  John Harper  <john@dcs.warwick.ac.uk>
 
1978
 
 
1979
        * version 0.11
 
1980
 
 
1981
2000-03-04  John Harper  <john@dcs.warwick.ac.uk>
 
1982
 
 
1983
        * string-util.jl: new file, some string functions (case
 
1984
        manipulation)
 
1985
 
 
1986
        * dump.jl: replaced most instances of integerp by fixnump
 
1987
 
 
1988
2000-03-01  John Harper  <john@dcs.warwick.ac.uk>
 
1989
 
 
1990
        * dump.jl: dump strings correctly again (still doesn't handle
 
1991
        non-fixnum numbers though)
 
1992
 
 
1993
        * lisp-doc.jl: use GDBM instead of SDBM (no data size limits)
 
1994
 
 
1995
2000-02-29  John Harper  <john@dcs.warwick.ac.uk>
 
1996
 
 
1997
        * define.jl: bug fixes -- handle interactive decls and doc
 
1998
        strings
 
1999
 
 
2000
2000-02-28  John Harper  <john@dcs.warwick.ac.uk>
 
2001
 
 
2002
        * define.jl (define-parse): remember in `(define FOO BAR)' to
 
2003
        scan BAR for internal definitions
 
2004
 
 
2005
2000-02-27  John Harper  <john@dcs.warwick.ac.uk>
 
2006
 
 
2007
        * gaol.jl: added a load more safe functions to the list. Also
 
2008
        allow `tables' to be required
 
2009
 
 
2010
        * compiler.jl: misc fixes for math stuff. Also fixed
 
2011
        compilation of transitive comparisons (no guarantee they would
 
2012
        evaluate all arguments previously)
 
2013
 
 
2014
        * bytecodes.jl, disassembler.jl: deleted op-numeq and
 
2015
        op-num-noteq. op-lsh changed to op-ash
 
2016
 
 
2017
2000-02-25  John Harper  <john@dcs.warwick.ac.uk>
 
2018
 
 
2019
        * lisp.jl (positivep, negativep, oddp, evenp, abs, %, modulo,
 
2020
        lcm): new functions (some are just pseudonyms)
 
2021
 
 
2022
        * bytecodes.jl (op-quotient, op-floor, op-ceiling, op-truncate,
 
2023
        op-round, op-exp, op-log, op-sin, op-cos, op-tan, op-sqrt,
 
2024
        op-expt): new instructions
 
2025
        * compiler.jl: generate code for math functions
 
2026
        * diassembler.jl: grok the math functions
 
2027
 
 
2028
        * sort.jl, date.jl: use `quotient' instead of `/'
 
2029
 
 
2030
2000-02-20  John Harper  <john@dcs.warwick.ac.uk>
 
2031
 
 
2032
        * compiler.jl: remember that define-value defines lexical
 
2033
        variables. When compiling files, don't read-and-macroexpand in
 
2034
        both passes, just the first, storing the results for input to
 
2035
        the second pass
 
2036
 
 
2037
2000-02-19  John Harper  <john@dcs.warwick.ac.uk>
 
2038
 
 
2039
        * threads.jl (with-threads-blocked): now autoloaded
 
2040
 
 
2041
        * gaol.jl (gaol-safe-functions): added define and
 
2042
        with-internal-definitions
 
2043
 
 
2044
2000-02-17  John Harper  <john@dcs.warwick.ac.uk>
 
2045
 
 
2046
        * lisp.jl (load-all): remove the (broken) restiction on not
 
2047
        loading from the current directory
 
2048
 
 
2049
        * lisp.jl (prin1-to-string, read-from-string, setcar, setcdr,
 
2050
        string=, string<, caar, cadr, cadr, cdar, cdar, cddr, cddr,
 
2051
        caddr, caddr, call-with-current-continuation): changed these
 
2052
        from macros to functions
 
2053
 
 
2054
        * compiler.jl (caar, cadr, cadr, cdar, cdar, cddr, cddr, caddr,
 
2055
        caddr, setcar, setcar, setcdr, setcdr, string=, string=,
 
2056
        string<, string<): generate single instructions for these
 
2057
        functions
 
2058
 
 
2059
        * remote-rep.jl: make this work again
 
2060
 
 
2061
2000-02-10  John Harper  <john@dcs.warwick.ac.uk>
 
2062
 
 
2063
        * gaol.jl: added macro-environment to safe specials
 
2064
 
 
2065
        * define.jl (with-internal-definitions): new macro, scans its
 
2066
        body for internal defines
 
2067
        (define-scan-form): fixed scanning `case' forms
 
2068
 
 
2069
2000-02-09  John Harper  <john@dcs.warwick.ac.uk>
 
2070
 
 
2071
        * lisp.jl (autoload-macro): new function
 
2072
 
 
2073
2000-02-08  John Harper  <john@dcs.warwick.ac.uk>
 
2074
 
 
2075
        * compiler.jl (comp-compile-case): fixed this, wasn't dup'ing
 
2076
        the key before each comparison, only before the first
 
2077
 
 
2078
        * define.jl: now that macros can find the macro environment
 
2079
        they were invoked through, it's possible to implement this
 
2080
        properly, scanning out define's from all suitable forms
 
2081
        automatically
 
2082
 
 
2083
        * compiler-opt.jl (comp-peephole-opt): fix typo in `jt X; nil
 
2084
        --> jpt X' pattern
 
2085
 
 
2086
2000-02-06  John Harper  <john@dcs.warwick.ac.uk>
 
2087
 
 
2088
        * mutex.jl: new file, moved the mutexes from threads.jl
 
2089
        * threads.jl (with-threads-blocked): new macro
 
2090
 
 
2091
        * disassembler.jl, compiler.jl, bytecodes.jl: new instructions
 
2092
        op-permit, op-forbid
 
2093
 
 
2094
        * threads.jl: removed the thread functions, they're in C code
 
2095
        now
 
2096
 
 
2097
2000-02-03  John Harper  <john@dcs.warwick.ac.uk>
 
2098
 
 
2099
        * compiler.jl (compile-file): write a newline character at the
 
2100
        end of the output file
 
2101
 
 
2102
2000-02-01  John Harper  <john@dcs.warwick.ac.uk>
 
2103
 
 
2104
        * memoize.jl (memoize-function): use `equal' hash-tables to
 
2105
        cache results
 
2106
 
 
2107
        * define.jl (lambda*): macro similar to lambda, but scans out
 
2108
        internal definitions
 
2109
 
 
2110
        * compiler.jl (comp-constant-function-p,
 
2111
        comp-constant-function-value): expand macros before testing
 
2112
 
 
2113
2000-01-31  John Harper  <john@dcs.warwick.ac.uk>
 
2114
 
 
2115
        * lisp-doc.jl (documentation): fix for macro objects
 
2116
 
 
2117
        * define.jl: new file, scheme-like `define' macro
 
2118
 
 
2119
        * compiler.jl: handle improper lists in lambda expressions
 
2120
        (i.e. (foo . bar) == (foo &rest bar))
 
2121
 
 
2122
2000-01-30  John Harper  <john@dcs.warwick.ac.uk>
 
2123
 
 
2124
        * debug.jl: better support for debugging in lexical
 
2125
        environments
 
2126
 
 
2127
        * compiler-opt.jl (comp-peephole-opt): added pattern `jt X; nil
 
2128
        --> jpt X'
 
2129
 
 
2130
        * compiler.jl (compile-compiler): compile `sort.jl' as well
 
2131
        (it's used by compiler-opt)
 
2132
 
 
2133
        * lisp-doc.jl (describe-function-1): dereference closures
 
2134
 
 
2135
        * threads.jl: first attempt at a (very basic) threading
 
2136
        interface
 
2137
 
 
2138
2000-01-26  John Harper  <john@dcs.warwick.ac.uk>
 
2139
 
 
2140
        * lisp-doc.jl (describe-variable): remove reference to
 
2141
        current-buffer (not used anyway)
 
2142
 
 
2143
2000-01-24  John Harper  <john@dcs.warwick.ac.uk>
 
2144
 
 
2145
        * compiler.jl (comp-compile-case): support the new `case'
 
2146
        statement (similar to in scheme)
 
2147
 
 
2148
        * lisp.jl (when): expand to an if statement, not a cond. This
 
2149
        makes `(when t)' behave consistently with `(if t)' (pointed out
 
2150
        by Dave Pearson)
 
2151
 
 
2152
        * compiler-opt.jl (comp-peephole-opt): fix error when
 
2153
        transforming `bind X; refn #0' --> `dup; bind X'
 
2154
 
 
2155
2000-01-23  John Harper  <john@dcs.warwick.ac.uk>
 
2156
 
 
2157
        * bytecodes.jl (op-return, op-unbindall): new instructions (for
 
2158
        tail call elimination)
 
2159
        * compiler.jl (compile-form): emit a return instruction at the
 
2160
        end of each code string
 
2161
        * compiler-opt.jl (comp-peephole-opt): new patterns to
 
2162
        back-propagate return instructions, and remove unneeded unbind
 
2163
        instructions
 
2164
        * disassembler.jl: output the two new instructions
 
2165
 
 
2166
2000-01-22  John Harper  <john@dcs.warwick.ac.uk>
 
2167
 
 
2168
        * bytecodes.jl: new bytecode version 9.0
 
2169
        (op-refn, op-setn): lexical address instructions
 
2170
        (op-refg, op-setg): global lexical instructions
 
2171
        (op-bindspec): create a special binding (op-bind _always_
 
2172
        creates lexical bindings now)
 
2173
 
 
2174
        * compiler.jl: separately track lexical and special bindings,
 
2175
        then generate code as required (i.e. use lexical addressing)
 
2176
 
 
2177
        * compiler-opt.jl (comp-peephole-opt): updated to grok the new
 
2178
        instructions
 
2179
 
 
2180
        * disassembler.jl: updated for new instructions
 
2181
 
 
2182
2000-01-14  John Harper  <john@dcs.warwick.ac.uk>
 
2183
 
 
2184
        * gaol.jl: removed redefinition of make-timer, added it to list
 
2185
        of safe functions (since we are a lisp-1)
 
2186
 
 
2187
2000-01-12  John Harper  <john@dcs.warwick.ac.uk>
 
2188
 
 
2189
        * memoize.jl (memoize-function): wrap a function with a cache
 
2190
        (needs a hash-table implementation to be useful..)
 
2191
 
 
2192
        * tar-file-handler.jl: use a guardian to allow finalization of
 
2193
        file handles
 
2194
 
 
2195
        * remote.jl (remote-register-file-handle): new function, uses a
 
2196
        guardian and a function in the after-gc-hook to correctly
 
2197
        finalize open remote files when they are garbage collected
 
2198
 
 
2199
        * remote-ftp.jl, remote-rep.jl: register file handles for
 
2200
        finalization
 
2201
 
 
2202
        * lisp.jl (make-guardian): new function, a means for protecting
 
2203
        objects from being deallocated when they have no references
 
2204
 
 
2205
src/2000-01-09  John Harper  <john@dcs.warwick.ac.uk>
 
2206
 
 
2207
        * version 0.10
 
2208
 
 
2209
2000-01-03  John Harper  <john@dcs.warwick.ac.uk>
 
2210
 
 
2211
        * compiler.jl (comp-compile-defun, comp-compile-defmacro):
 
2212
        remember the functions being defined
 
2213
 
 
2214
1999-12-31  John Harper  <john@dcs.warwick.ac.uk>
 
2215
 
 
2216
        * tilde.jl: added provide decl
 
2217
 
 
2218
        * lisp.jl (featurep, provide, require): removed (in C again)
 
2219
        (autoload): a function again
 
2220
 
 
2221
        * init.jl: require libraries instead of loading (in case
 
2222
        they've been dumped)
 
2223
 
 
2224
        * dump.jl: updated for lisp-1 rep with closures
 
2225
 
 
2226
1999-12-22  John Harper  <john@dcs.warwick.ac.uk>
 
2227
 
 
2228
        * compiler.jl (comp-trans-setq, comp-trans-setq-default):
 
2229
        signal an error if an odd number of arguments is given
 
2230
 
 
2231
1999-12-12  John Harper  <john@dcs.warwick.ac.uk>
 
2232
 
 
2233
        * version 0.9
 
2234
 
 
2235
        * disassembler.jl (disassemble): escape all control codes when
 
2236
        printing, not just newlines
 
2237
 
 
2238
1999-12-11  John Harper  <john@dcs.warwick.ac.uk>
 
2239
 
 
2240
        * date.jl (parse-date): fix calculation of day-of-week
 
2241
 
 
2242
        * bytecodes. (op-caar, op-cadr, op-cdar, op-cddr, op-caddr,
 
2243
        op-cadddr, op-caddddr, op-cadddddr, op-caddddddr,
 
2244
        op-cadddddddr): new instructions
 
2245
        * disassembler.jl, gaol.jl: added c..r instructions
 
2246
 
 
2247
        * compiler.jl: optimise constant index nth and nthcdr calls to
 
2248
        single c...r instructions where possible
 
2249
 
 
2250
        * compiler-opt.jl (comp-peephole-opt): fixed optimisation
 
2251
        looking for `const; const|dup...'
 
2252
        (comp-peephole-opt): optimise pairs of car or cdr instructions
 
2253
        to a single instruction
 
2254
 
 
2255
        * lisp.jl (caar, ..., cddr, caaar, ..., cdddr): new functions
 
2256
 
 
2257
1999-12-10  John Harper  <john@dcs.warwick.ac.uk>
 
2258
 
 
2259
        * rep.jl, debug.jl: use proper readline
 
2260
 
 
2261
        * lisp.jl (in-hook-p): new function
 
2262
        (add-hook): if variable is unbound, make it special before
 
2263
        setting it
 
2264
 
 
2265
1999-12-07  John Harper  <john@dcs.warwick.ac.uk>
 
2266
 
 
2267
        * disassembler.jl, compiler.jl, bytecodes.jl (op-enclose): new
 
2268
        instruction
 
2269
 
 
2270
        * lisp.jl (unless): if the condition evaluates true, then
 
2271
        return nil, not the value of the condition (this is the
 
2272
        behaviour in cl and elisp)
 
2273
 
 
2274
1999-12-06  John Harper  <john@dcs.warwick.ac.uk>
 
2275
 
 
2276
        * lisp.jl (letrec): new macro, as in scheme, creates mutually
 
2277
        recursive bindings
 
2278
 
 
2279
1999-12-05  John Harper  <john@dcs.warwick.ac.uk>
 
2280
 
 
2281
        * version 0.8.1
 
2282
 
 
2283
1999-11-29  John Harper  <john@dcs.warwick.ac.uk>
 
2284
 
 
2285
        * lisp-doc.jl, compiler.jl: fixed the documentation functions
 
2286
        for unified namespace
 
2287
 
 
2288
1999-11-28  John Harper  <john@dcs.warwick.ac.uk>
 
2289
 
 
2290
        * version 0.8
 
2291
 
 
2292
1999-11-25  John Harper  <john@dcs.warwick.ac.uk>
 
2293
 
 
2294
        * tilde.jl, tar-file-handler.jl, sort.jl, rep.jl,
 
2295
        remote-rep.jl, remote-rcp.jl, remote-ftp.jl, lisp.jl,
 
2296
        lisp-doc.jl, gaol.jl, environ.jl, dump.jl, disassembler.jl,
 
2297
        debug.jl, compiler.jl, compiler-opt.jl, cgi-get.jl,
 
2298
        bytecodes.jl, backquote.jl, autoload.jl: updated for single
 
2299
        namespace and scheme-like function semantics
 
2300
 
 
2301
1999-11-21  John Harper  <john@dcs.warwick.ac.uk>
 
2302
 
 
2303
        * gaol.jl (gaol-add-file-handler, gaol-replace-file-handler):
 
2304
        new functions, allow access to be granted to file handlers
 
2305
        without letting any operation be performed
 
2306
 
 
2307
1999-11-20  John Harper  <john@dcs.warwick.ac.uk>
 
2308
 
 
2309
        * lisp.jl (string-equal-p, string-less-p): deleted
 
2310
 
 
2311
        * compiler.jl (comp-test-funcall): check if a locally-bound
 
2312
        function before warning that it's undefined
 
2313
 
 
2314
1999-11-18  John Harper  <john@dcs.warwick.ac.uk>
 
2315
 
 
2316
        * lisp.jl: unless it's already bound, make the _ function
 
2317
        return it's sole argument (until redefined by gettext module)
 
2318
 
 
2319
1999-11-15  John Harper  <john@dcs.warwick.ac.uk>
 
2320
 
 
2321
        * gaol.jl: wrapped make-timer, rebuild function env after doing
 
2322
        a safe require, rebuilding environment affects existing
 
2323
        restricted environments
 
2324
 
 
2325
1999-11-11  John Harper  <john@dcs.warwick.ac.uk>
 
2326
 
 
2327
        * gaol.jl: new file, provides a restricted environment for
 
2328
        untrusted code
 
2329
 
 
2330
1999-11-10  John Harper  <john@dcs.warwick.ac.uk>
 
2331
 
 
2332
        * disassembler.jl, compiler.jl, bytecodes.jl: handle lexically
 
2333
        scoped functions (new opcodes and special forms). macrolet form
 
2334
        is still unimplemented in compiled code
 
2335
 
 
2336
        * tar-file-handler.jl, remote-rep.jl, remote-ftp.jl: updated
 
2337
        for lexical scoping
 
2338
 
 
2339
        * lisp.jl (features, featurep, provide, require): defined these
 
2340
        in Lisp now (so they get enclosed)
 
2341
        (function): this is now a special form
 
2342
 
 
2343
1999-11-01  John Harper  <john@dcs.warwick.ac.uk>
 
2344
 
 
2345
        * tar-file-handler.jl (tarfh-alternative-gnu-tar-programs): new
 
2346
        variable, a list of alternative programs to check when looking
 
2347
        for GNU tar
 
2348
 
 
2349
1999-10-24  John Harper  <john@dcs.warwick.ac.uk>
 
2350
 
 
2351
        * version 0.7
 
2352
 
 
2353
1999-10-17  John Harper  <john@dcs.warwick.ac.uk>
 
2354
 
 
2355
        * tar-file-handler.jl: read-only access to files stored in tar
 
2356
        archives, access files like `foo.tar.gz#tar/bar'; still has
 
2357
        some problems, but works well enough
 
2358
 
 
2359
1999-10-13  John Harper  <john@dcs.warwick.ac.uk>
 
2360
 
 
2361
        * rep.jl: don't add the current directory to the head of the
 
2362
        load-path, it's already at the end of the path where it should be
 
2363
 
 
2364
        * lisp.jl (load-all): don't search in the current directory
 
2365
        (since it's unpredictable)
 
2366
 
 
2367
        * compiler.jl: fix bug of `last' instruction being thought to
 
2368
        require two arguments
 
2369
 
 
2370
1999-09-14  John Harper  <john@dcs.warwick.ac.uk>
 
2371
 
 
2372
        * version 0.6
 
2373
 
 
2374
        * environ.jl (unsetenv): new function
 
2375
 
 
2376
1999-09-12  John Harper  <john@dcs.warwick.ac.uk>
 
2377
 
 
2378
        * version 0.5
 
2379
 
 
2380
1999-08-31  John Harper  <john@dcs.warwick.ac.uk>
 
2381
 
 
2382
        * version 0.4
 
2383
 
 
2384
1999-08-27  John Harper  <john@dcs.warwick.ac.uk>
 
2385
 
 
2386
        * dump.jl: changed for new string data layout
 
2387
 
 
2388
1999-08-22  John Harper  <john@dcs.warwick.ac.uk>
 
2389
 
 
2390
        * version 0.3
 
2391
 
 
2392
1999-08-21  John Harper  <john@dcs.warwick.ac.uk>
 
2393
 
 
2394
        * compiler.jl (compile-batch): new command line option
 
2395
        `--write-docs'
 
2396
        (comp-compile-top-form): remember any declared variables that
 
2397
        haven't already registered, change the error on finding an
 
2398
        unregistered constant to a warning
 
2399
 
 
2400
1999-08-16  John Harper  <john@dcs.warwick.ac.uk>
 
2401
 
 
2402
        * version 0.2
 
2403
 
 
2404
1999-08-03  John Harper  <john@dcs.warwick.ac.uk>
 
2405
 
 
2406
        * version 0.1
 
2407
 
 
2408
1999-07-22  John Harper  <john@dcs.warwick.ac.uk>
 
2409
 
 
2410
        * rep.jl (rep): clear the cached input when an error occurs
 
2411
 
 
2412
        * debug.jl (debug-rep): implements a proper terminal-based
 
2413
        debugger loop
 
2414
 
 
2415
1999-07-07  John Harper  <john@dcs.warwick.ac.uk>
 
2416
 
 
2417
        * remote-rep.jl (remote-rep-read-length): fix this for large
 
2418
        numbers
 
2419
 
 
2420
1999-07-06  John Harper  <john@dcs.warwick.ac.uk>
 
2421
 
 
2422
        * remote-rep.jl, remote-ftp.jl (remote-rep-lookup-file,
 
2423
        remote-ftp-lookup-file): new functions, chase symbolic links
 
2424
        until the actual file is found
 
2425
 
 
2426
        * remote-rep.jl: new file, mostly copied from remote-ftp, but
 
2427
        uses the rep-remote program (rsh'd onto the remote host) for
 
2428
        all file access. Supports all file operations (unlike ftp)
 
2429
 
 
2430
        * remote-ftp.jl (remote-ftp-host-user-alist,
 
2431
        remote-ftp-default-user): deleted
 
2432
        * remote.jl (remote-host-user-alist, remote-default-user): new
 
2433
        variables
 
2434
        (remote-get-user): new function
 
2435
 
 
2436
1999-07-04  John Harper  <john@dcs.warwick.ac.uk>
 
2437
 
 
2438
        * tilde.jl, remote-ftp.jl: handle new operations read-symlink
 
2439
        and make-symlink (actually, ftp doesn't do make-symlink)
 
2440
 
 
2441
        * compiler.jl (compile-file): preserve `#! ... !#' at start of
 
2442
        file if present
 
2443
 
 
2444
1999-07-02  John Harper  <john@dcs.warwick.ac.uk>
 
2445
 
 
2446
        * remote-ftp.jl (remote-ftp-empty-cache): new command
 
2447
 
 
2448
1999-06-09  John Harper  <john@dcs.warwick.ac.uk>
 
2449
 
 
2450
        * rep.jl (rep): don't use `read' to read an entire form at
 
2451
        once, instead use `read-line' to read strings until there's
 
2452
        enough to parse a whole form
 
2453
 
 
2454
        * pwd-prompt.jl (pwd-prompt): fixed to actually delete the
 
2455
        line-terminating newline, also print a newline before exiting
 
2456
 
 
2457
1999-06-06  John Harper  <john@dcs.warwick.ac.uk>
 
2458
 
 
2459
        * compiler.jl: generate an intermediate form between Lisp forms
 
2460
        and bytecodes, a list of instructions and labels. Then run an
 
2461
        optimisation pass (peephole) over the intermediate code before
 
2462
        assembling it to bytecodes
 
2463
        * compiler-opt.jl: new file, implements the low-level
 
2464
        optimisations. Does peephole and constant-vector layout
 
2465
        optimisations
 
2466
 
 
2467
        * bytecodes.jl: op-setq now pops the value from the stack.
 
2468
        Deleted op-pushi-pair, replaced by op-pushi-neg and
 
2469
        op-pushi-pair-pos, for pushing negative and positive values
 
2470
        respectively
 
2471
        * disassembler.jl: updated for new opcodes
 
2472
 
 
2473
        * pwd-prompt.jl: new file, implement pwd-prompt function for
 
2474
        the console
 
2475
 
 
2476
1999-06-03  John Harper  <john@dcs.warwick.ac.uk>
 
2477
 
 
2478
        * rep.jl: loading a script implies --batch (but not when loaded
 
2479
        via the -l option). Don't print the banner until immediately
 
2480
        before entering the read-eval-print loop
 
2481
 
 
2482
1999-05-27  John Harper  <john@dcs.warwick.ac.uk>
 
2483
 
 
2484
        * cgi-get.jl (cgi-get-params): new file, process the
 
2485
        QUERY_STRING from a CGI get command
 
2486
 
 
2487
1999-05-15  John Harper  <john@dcs.warwick.ac.uk>
 
2488
 
 
2489
        * date.jl (date-day-of-week): new function, given
 
2490
        date/day/month, gives the day of week
 
2491
        (parse-date): accept ISO 8601 calendar format
 
2492
 
 
2493
1999-04-28  John Harper  <john@dcs.warwick.ac.uk>
 
2494
 
 
2495
        * compiler.jl (compile-batch): new function
 
2496
 
 
2497
1999-04-19  John Harper  <john@dcs.warwick.ac.uk>
 
2498
 
 
2499
        * compiler.jl (compile-file): minor fix to error handling
 
2500
 
 
2501
1999-03-30  John Harper  <john@dcs.warwick.ac.uk>
 
2502
 
 
2503
        * remote-ftp.jl (remote-ftp-chmod): make errors give a warning
 
2504
        since some (many?) ftpd's don't support it and it's probably
 
2505
        mostly harmless
 
2506
 
 
2507
        * compiler.jl (comp-compile-lambda): minor fix
 
2508
 
 
2509
1999-03-17  John Harper  <john@dcs.warwick.ac.uk>
 
2510
 
 
2511
        * rep.jl (rep): don't catch 'quit
 
2512
 
 
2513
1999-03-14  John Harper  <john@dcs.warwick.ac.uk>
 
2514
 
 
2515
        * rep.jl: add the current directory to the load-path
 
2516
 
 
2517
1999-03-12  John Harper  <john@dcs.warwick.ac.uk>
 
2518
 
 
2519
        * rep.jl: any bare command-line arguments are passed to load
 
2520
 
 
2521
1999-03-10  John Harper  <john@dcs.warwick.ac.uk>
 
2522
 
 
2523
        * compiler.jl (compile-file): ensure that the temporary output
 
2524
        file is deleted
 
2525
 
 
2526
1999-03-07  John Harper  <john@dcs.warwick.ac.uk>
 
2527
 
 
2528
        * compiler.jl (comp-compile-lambda): only put the doc-string in
 
2529
        the bytecode vector if it wasn't written to the db
 
2530
 
 
2531
        * lisp-doc.jl (documentation): only try to get the value of the
 
2532
        function or variable if it's actually bound
 
2533
 
 
2534
1999-03-03  John Harper  <john@dcs.warwick.ac.uk>
 
2535
 
 
2536
        * rep.jl: print a message if unknown command-line options are
 
2537
        encountered
 
2538
 
 
2539
src/1999-02-28  John Harper  <john@dcs.warwick.ac.uk>
 
2540
 
 
2541
        * MAJOR CHANGES: separated all LISP interpreter specific parts
 
2542
        into a separate library, librep (Read-Eval-Print)
 
2543
 
 
2544
1999-02-12  John Harper  <john@dcs.warwick.ac.uk>
 
2545
 
 
2546
        * tilde.jl: canonicalise the user-home-directory before
 
2547
        comparing it against the original default-directory
 
2548
 
 
2549
1999-02-02  John Harper  <john@dcs.warwick.ac.uk>
 
2550
 
 
2551
        * compiler.jl (comp-push-label-addr): new function, replaces
 
2552
        comp-get-label-addr
 
2553
        (comp-write-raw-op): deleted this function
 
2554
 
 
2555
1999-02-01  John Harper  <john@dcs.warwick.ac.uk>
 
2556
 
 
2557
        * rm-mail-dir.jl (rm-mail-dir-auto-scan-hook): new hook
 
2558
 
 
2559
1999-01-31  John Harper  <john@dcs.warwick.ac.uk>
 
2560
 
 
2561
        * html-decode.jl: only underline links (anchors with href
 
2562
        field). Add anchors to a list that's returned to the caller
 
2563
        * html-display.jl (html-display-goto-anchor): new command
 
2564
        * find-url.jl: support for anchors specified in URLs
 
2565
 
 
2566
        * bytecodes.jl: several pushi instructions
 
2567
        * compiler.jl (comp-write-raw-op): new function
 
2568
        (comp-compile-constant): use pushi instructions to compile
 
2569
        integers where possible
 
2570
        * disassembler.jl (disassemble): support pushi instructions
 
2571
 
 
2572
1999-01-28  John Harper  <john@dcs.warwick.ac.uk>
 
2573
 
 
2574
        * find-url.jl (find-file-as-url): new command
 
2575
 
 
2576
        * html-display.jl (html-display): if the given URL is nil, and
 
2577
        the source buffer has a file name, set the URL to the file:
 
2578
        version of the filename
 
2579
 
 
2580
        * html-decode.jl (html-decode): more bug fixes
 
2581
 
 
2582
1999-01-27  John Harper  <john@dcs.warwick.ac.uk>
 
2583
 
 
2584
        * mime-decode.jl (mime-encode-mmencode): new function, wrapper
 
2585
        for the base64 and quoted-printable coders, if possible and
 
2586
        desirable, then an external `mmencode' program is used to do
 
2587
        the translation
 
2588
 
 
2589
        * find-url.jl, html-display.jl: fix which view to display in
 
2590
 
 
2591
1999-01-26  John Harper  <john@dcs.warwick.ac.uk>
 
2592
 
 
2593
        * rm-mime.jl: bind the `w' prefix in read-mail mode to the
 
2594
        `html-display-map'
 
2595
 
 
2596
        * html-display.jl (html-display-current-link): search up the
 
2597
        extent stack correctly
 
2598
        (html-display-map): autoload'able
 
2599
 
 
2600
        * mime-decode.jl (mime-decode): handle `text/html' MIME parts
 
2601
        by calling html-decode
 
2602
 
 
2603
        * html-decode.jl: more bug fixes
 
2604
 
 
2605
1999-01-25  John Harper  <john@dcs.warwick.ac.uk>
 
2606
 
 
2607
        * remote-ftp.jl (remote-ftp-close-all): new function
 
2608
        (remote-ftp-close-host): made interactive
 
2609
 
 
2610
1999-01-24  John Harper  <john@dcs.warwick.ac.uk>
 
2611
 
 
2612
        * remote-ftp.jl: misc fixes to try and handle non-successful
 
2613
        logins more gracefully; not 100% successful yet..
 
2614
 
 
2615
        * ispell.jl (ispell-kill-process): keep looping while
 
2616
        accept-process-output times out, not while it doesn't!
 
2617
 
 
2618
        * html-display.jl (html-display-select): handle URL's that are
 
2619
        specified relative to the root of the current server
 
2620
 
 
2621
1999-01-22  John Harper  <john@dcs.warwick.ac.uk>
 
2622
 
 
2623
        * html-decode.jl: parse <frameset> sections half-heartedly, and
 
2624
        be slightly more clueful about unnested close tags
 
2625
 
 
2626
1999-01-21  John Harper  <john@dcs.warwick.ac.uk>
 
2627
 
 
2628
        * find-url.jl (find-url-file, find-url-ftp): detect if a file:
 
2629
        URL contains HTML code, if so decode it
 
2630
 
 
2631
        * html-decode.jl (html-decode): bind html-decode-source and
 
2632
        html-decode-point to the position of the next item to be
 
2633
        parsed, called functions may then alter these
 
2634
        (html-decode:script): skip <script> sections
 
2635
 
 
2636
1999-01-20  John Harper  <john@dcs.warwick.ac.uk>
 
2637
 
 
2638
        * find-url.jl (find-url-asynchronously): new variable, only
 
2639
        find-url-http takes note of it, calling wget asynchronously
 
2640
        when it's non-nil
 
2641
 
 
2642
        * html-display.jl (html-display): the OTHER-VIEW parameter may
 
2643
        be the actual view to display in, or nil, or anything else to
 
2644
        switch to the other view
 
2645
 
 
2646
1999-01-19  John Harper  <john@dcs.warwick.ac.uk>
 
2647
 
 
2648
        * html-display.jl (html-display): new function, a mode to tie
 
2649
        find-url and html-decode to form a basic web-browser
 
2650
 
 
2651
        * find-url.jl (find-url-http): new function, uses wget to
 
2652
        download the url, then if it's html data, html-display to view
 
2653
        it
 
2654
 
 
2655
        * html-decode.jl: many bug fixes, implemented most list tags
 
2656
 
 
2657
1999-01-18  John Harper  <john@dcs.warwick.ac.uk>
 
2658
 
 
2659
        * html-decode.jl (html-decode): initial version of this module,
 
2660
        a basic HTML to editor-buffer translator
 
2661
 
 
2662
1999-01-14  John Harper  <john@dcs.warwick.ac.uk>
 
2663
 
 
2664
        * mime-decode.jl (mime-display-part): use name of attachment
 
2665
        (if given) as name of buffer
 
2666
        (mime-decode-buffer): fix nil-decoder decoding
 
2667
 
 
2668
        * send-mail.jl (mail-setup): when putting an address in the BCC
 
2669
        header for the mail-self-blind option, use user-mail-address,
 
2670
        not (user-login-name)
 
2671
 
 
2672
        * mail-headers.jl (mail-compare-addresses): new function,
 
2673
        compare two mail addresses
 
2674
 
 
2675
        * rm-misc.jl (rm-reply): when following-up a message, only put
 
2676
        those address in the CC header that aren't in the To or BCC
 
2677
        headers
 
2678
 
 
2679
        * mime-decode.jl (mime-decode): don't display parts whose
 
2680
        bodies contain zero lines
 
2681
        (mime-decode-insert-stub, mime-save-part): look in content-type
 
2682
        param lists for file name, as well as in content-disposition
 
2683
        (though content-disposition takes precedence)
 
2684
 
 
2685
1999-01-13  John Harper  <john@dcs.warwick.ac.uk>
 
2686
 
 
2687
        * keymap.jl (active-keymaps): dereference symbols in the list
 
2688
        of keymaps
 
2689
        (map-keymap): deref. symbol in the correct buffer
 
2690
        (next-event, read-event, describe-key): miscellaneous fixes
 
2691
 
 
2692
1999-01-12  John Harper  <john@dcs.warwick.ac.uk>
 
2693
 
 
2694
        * dired.jl (dired-do-copy): only call summary-update when
 
2695
        copying to the displayed directory
 
2696
 
 
2697
        * help.jl (describe-function): handle nil doc string
 
2698
 
 
2699
        * buffers.jl (find-file): expand the file name before doing
 
2700
        anything with it, also if it's a directory, call
 
2701
        directory-file-name on it
 
2702
 
 
2703
        * remote-ftp.jl: cache more than one directory listing, and
 
2704
        expire cached directories after X minutes (default X=5).
 
2705
        (remote-ftp-command): instead of just returning t if the
 
2706
        command succeeded, signal a file-error if it failed; nothing
 
2707
        really checked the return value anyway..
 
2708
        (remote-ftp-open-session): if remote-ftp-login fails (i.e.
 
2709
        signals an error), close the session before propagating the
 
2710
        error
 
2711
 
 
2712
1999-01-11  John Harper  <john@dcs.warwick.ac.uk>
 
2713
 
 
2714
        * dired.jl (dired-do-copy, dired-do-rename): set default file
 
2715
        name to name of source file
 
2716
 
 
2717
        * prompt.jl (prompt-for-file, prompt-for-directory): when
 
2718
        setting prompt-default-value, call expand-file-name on it
 
2719
 
 
2720
1999-01-10  John Harper  <john@dcs.warwick.ac.uk>
 
2721
 
 
2722
        * edit.jl (save-excursion, save-restriction): use un-interned
 
2723
        symbols to store temproary values
 
2724
 
 
2725
        * edit.jl (map-extents-at): macro mapping a function over all
 
2726
        extents containing an arbitrary position
 
2727
 
 
2728
        * lisp-mode.jl (lisp-mode): fix mode-defun-header to match
 
2729
        macros and defsubsts as well as functions
 
2730
 
 
2731
1999-01-07  John Harper  <john@dcs.warwick.ac.uk>
 
2732
 
 
2733
        * mime-decode.jl (mime-display-part): new function, decodes a
 
2734
        MIME subpart to a temporary buffer
 
2735
        * rm-mime.jl: bind C-RET to mime-display-part in read-mail mode
 
2736
 
 
2737
1999-01-07  John Harper  <john@dcs.warwick.ac.uk>
 
2738
 
 
2739
        * tex-mode.jl (tex-mode, latex-mode, plain-tex-mode): make sure
 
2740
        that when text-mode-hook is called, the major-mode is set to
 
2741
        its final value
 
2742
 
 
2743
1999-01-05  John Harper  <john@dcs.warwick.ac.uk>
 
2744
 
 
2745
        * ispell.jl: protect against multiple concurrent-readers
 
2746
 
 
2747
1998-12-21  John Harper  <john@dcs.warwick.ac.uk>
 
2748
 
 
2749
        * modes.jl (auto-mode-alist): made .sty suffix use tex-mode
 
2750
 
 
2751
        * diff.jl: some fixes for handling narrowed buffers
 
2752
 
 
2753
        * ispell.jl (ispell-idle-function): minor fix to identifying
 
2754
        the region to scan (when the buffer is narrowed)
 
2755
 
 
2756
1998-12-16  John Harper  <john@dcs.warwick.ac.uk>
 
2757
 
 
2758
        * cvs.jl (cvs-add): new argument WITH-LOG, controlling whether
 
2759
        or not to prompt for a log message before adding the file
 
2760
 
 
2761
1998-12-15  John Harper  <john@dcs.warwick.ac.uk>
 
2762
 
 
2763
        * mime-encode.jl: fix keymap autoloading problem
 
2764
 
 
2765
1998-12-09  John Harper  <john@dcs.warwick.ac.uk>
 
2766
 
 
2767
        * miranda.jl (miranda): take program arguments from variable
 
2768
        miranda-program-args (not including file name)
 
2769
 
 
2770
1998-12-08  John Harper  <john@dcs.warwick.ac.uk>
 
2771
 
 
2772
        * rcs.jl (rcs-callback-with-description): install local keymap
 
2773
        _after_ calling text-mode. This loses text-mode's bindings,
 
2774
        should really install the rcs bindings as a minor-mode..
 
2775
 
 
2776
1998-12-04  John Harper  <john@dcs.warwick.ac.uk>
 
2777
 
 
2778
        * prompt.jl (prompt): only add result to prompt-history if it's
 
2779
        a string (amongst other things)
 
2780
 
 
2781
1998-12-01  John Harper  <john@dcs.warwick.ac.uk>
 
2782
 
 
2783
        * latin-1.jl (insert-latin-1-character): new function, entry of
 
2784
        latin 1 chars by name
 
2785
 
 
2786
        * tex-mode.jl (tex-mode, latex-mode, plain-tex-mode): fix
 
2787
        documentation strings
 
2788
 
 
2789
1998-11-29  John Harper  <john@dcs.warwick.ac.uk>
 
2790
 
 
2791
        * loadkeys.jl (global-keymap): no longer buffer-local
 
2792
 
 
2793
        * replace.jl (query-replace): use overriding-local-keymap to
 
2794
        install the keymap
 
2795
 
 
2796
1998-11-26  John Harper  <john@dcs.warwick.ac.uk>
 
2797
 
 
2798
        * mail-dir.jl (insert-mail-item): fix for when no name
 
2799
        associated with address
 
2800
 
 
2801
        * tex-mode.jl (latex-mode, plain-tex-mode): added autoload tags
 
2802
 
 
2803
1998-11-25  John Harper  <john@dcs.warwick.ac.uk>
 
2804
 
 
2805
        * edit.jl (quoted-insert): new command, bound to C-q
 
2806
 
 
2807
        * keymap.jl (next-event): new function
 
2808
        (read-event): new optional arg COOKED
 
2809
 
 
2810
1998-11-24  John Harper  <john@dcs.warwick.ac.uk>
 
2811
 
 
2812
        * help.jl (describe-function): once more run
 
2813
        substitute-command-keys over the documentation
 
2814
 
 
2815
        * ispell.jl: in misspelt words, bind `C-c C-a' to add the word
 
2816
        to the personal dictionary, and `C-c C-s' to accept the word
 
2817
        for the rest of the Ispell session
 
2818
        (ispell-add-word-for-session, ispell-save-dictionary): new
 
2819
        commands
 
2820
 
 
2821
1998-11-24  John Harper  <john@dcs.warwick.ac.uk>
 
2822
 
 
2823
        * yacc-mode.jl, text-mode.jl, texinfo-mode.jl, tex-mode.jl,
 
2824
        summary.jl, shell.jl, sh-mode.jl, send-mail.jl, replace.jl,
 
2825
        read-mail.jl, rcs.jl, prompt.jl, perl-mode.jl, page-summary.jl,
 
2826
        modes.jl, mime-encode.jl, mail-dir-summary.jl, loadkeys.jl,
 
2827
        lisp.jl, lisp-mode.jl, keymap.jl, isearch.jl, info.jl, help.jl,
 
2828
        gdb.jl, fill.jl, dired.jl, diff.jl, debug.jl, cvs.jl,
 
2829
        c-mode.jl, asm-mode.jl, add-log.jl: updated for new key binding
 
2830
        methods
 
2831
 
 
2832
        * ispell.jl (ispell-minor-mode): in the extents of misspelt
 
2833
        words, bind `C-c RET' and `LMB-Click2' to a command calling the
 
2834
        interactive ispell on the word
 
2835
 
 
2836
1998-11-23  John Harper  <john@dcs.warwick.ac.uk>
 
2837
 
 
2838
        * ispell.jl (ispell-strip-word): if a stripped prefix or suffix
 
2839
        doesn't match, assume it's a literal string including a hyphen
 
2840
 
 
2841
1998-11-19  John Harper  <john@dcs.warwick.ac.uk>
 
2842
 
 
2843
        * rcs.jl (rcs-compare-revisions): when the new variable
 
2844
        rcs-diff-options is set to the symbol `visual', use the
 
2845
        diff-files command to visually display the differences
 
2846
 
 
2847
1998-11-18  John Harper  <john@dcs.warwick.ac.uk>
 
2848
 
 
2849
        * buffers.jl (insert-buffer): new command
 
2850
 
 
2851
1998-11-14  John Harper  <john@dcs.warwick.ac.uk>
 
2852
 
 
2853
        * c-mode.jl (c-indent-pos): don't recognize a semi-colon as
 
2854
        terminating a statement unless (ignoring following whitespace)
 
2855
        it's followed by eol or a comment
 
2856
 
 
2857
1998-11-11  John Harper  <john@dcs.warwick.ac.uk>
 
2858
 
 
2859
        * tex-shell.jl (tex-shell-program, tex-shell-program-args): new
 
2860
        variables
 
2861
 
 
2862
1998-11-09  John Harper  <john@dcs.warwick.ac.uk>
 
2863
 
 
2864
        * tex-mode.jl (latex-mode, plain-tex-mode): added doc strings
 
2865
 
 
2866
        * page-summary.jl: new file, a command to summarise a buffer by
 
2867
        the comments at the start of each page
 
2868
 
 
2869
1998-11-07  John Harper  <john@dcs.warwick.ac.uk>
 
2870
 
 
2871
        * sort.jl (sort): when merging lists ensure that equal keys
 
2872
        retain their original order
 
2873
 
 
2874
1998-11-05  John Harper  <john@dcs.warwick.ac.uk>
 
2875
 
 
2876
        * gdb.jl (gdb-frame-face): new variable, the face used to
 
2877
        highlight the source line of the current stack frame (instead
 
2878
        of using the block)
 
2879
 
 
2880
1998-11-01  John Harper  <john@dcs.warwick.ac.uk>
 
2881
 
 
2882
        * buffers.jl (kill-buffer): call kill-buffer-hook with the
 
2883
        current buffer as the buffer being killed, instead of passing
 
2884
        it as an argument
 
2885
        * server.jl, shell.jl: adapt to new calling method for
 
2886
        kill-buffer-hook
 
2887
 
 
2888
1998-10-31  John Harper  <john@dcs.warwick.ac.uk>
 
2889
 
 
2890
        * tex-shell.jl (bibtex-file, tex-kill-job,
 
2891
        tex-recenter-output-buffer, tex-print, tex-view,
 
2892
        tex-show-print-queue): new commands
 
2893
 
 
2894
        * tex-mode.jl (plain-tex-mode): new function, just so there can
 
2895
        be a plain-tex-mode-hook really
 
2896
 
 
2897
        * shell.jl (shell-kill-buffer-hook): new function, takes most
 
2898
        of shell-mode-kill, but is put in the kill-buffer-hook so that
 
2899
        it actually gets called when the buffer is killed..
 
2900
 
 
2901
1998-10-30  John Harper  <john@dcs.warwick.ac.uk>
 
2902
 
 
2903
        * prompt.jl (prompt-for-lisp): kludge to use lisp-complete-sexp
 
2904
        for completion
 
2905
 
 
2906
        * lisp.jl: add two entries to the format-hooks-alist, `D' and
 
2907
        `F' for file-name-directory and file-name-nondirectory
 
2908
        respectively
 
2909
 
 
2910
        * modes.jl (auto-mode-alist): add latex-mode entry
 
2911
        * tex-mode.jl (latex-mode): derivative of tex-mode, called when
 
2912
        the buffer looks to contain LaTeX source
 
2913
 
 
2914
        * tex-shell.jl: initial (very basic) attempt at running TeX in
 
2915
        a subshell
 
2916
 
 
2917
1998-10-29  John Harper  <john@dcs.warwick.ac.uk>
 
2918
 
 
2919
        * completion.jl (complete-at-point, show-completions): these
 
2920
        replace the -buffer- completion commands. They use the list of
 
2921
        completion generators completion-hooks to do the real work. The
 
2922
        default generator is complete-from-buffer
 
2923
        * lisp.jl (lisp-complete-sexp): this is now just a generator,
 
2924
        put in the completion-hooks in Lisp buffers
 
2925
 
 
2926
        * prompt.jl (prompt-complete-function,
 
2927
        prompt-list-completions-function): deleted. If
 
2928
        prompt-completion-function is `t', call complete-at-point
 
2929
        (before-prompt-hook): new hook
 
2930
 
 
2931
        * completion.jl (completion-insert): new function to handle
 
2932
        inserting from a list of completions at the cursor
 
2933
        (complete-from-buffer, show-buffer-completions): new commands
 
2934
        * loadkeys.jl (global-keymap): bound complete-from-buffer to
 
2935
        M-TAB and show-buffer-completions to M-?
 
2936
        * lisp-mode.jl (lisp-complete-sexp): use completion-insert
 
2937
 
 
2938
        * modes.jl (forward-exp, backward-exp): handle negative COUNTs
 
2939
 
 
2940
        * read-mail.jl (rm-fix-status-info): set buffer-status-id in
 
2941
        the summary buffer as well (if it exists)
 
2942
 
 
2943
        * completion.jl (completion-abbrev-function): new variable
 
2944
        (completion-list): call the above hook on all completions, then
 
2945
        only display the abbreviated versions
 
2946
 
 
2947
        * prompt.jl (prompt-abbreviate-filename): new function, put in
 
2948
        the completion-abbrev-function when completing in the
 
2949
        filesystem
 
2950
 
 
2951
1998-10-28  John Harper  <john@dcs.warwick.ac.uk>
 
2952
 
 
2953
        * buffers.jl (make-backup-file-name): new function, used by
 
2954
        backup-file to find the name of the old version
 
2955
 
 
2956
1998-10-26  John Harper  <john@dcs.warwick.ac.uk>
 
2957
 
 
2958
        * dump.jl (dump-output-strings): output a zero in the new
 
2959
        `next' field of the Lisp_String structure
 
2960
 
 
2961
1998-10-24  John Harper  <john@dcs.warwick.ac.uk>
 
2962
 
 
2963
        * completion.jl (completion-setup-view): when not creating a
 
2964
        new view, ensure that the view chosen isn't currently selected
 
2965
 
 
2966
        * ispell.jl (ispell-strip-word): try again to fix this function
 
2967
 
 
2968
1998-10-23  John Harper  <john@dcs.warwick.ac.uk>
 
2969
 
 
2970
        * rm-mail-dir.jl (rm-mail-dir-scan-messages,
 
2971
        rm-mail-dir-scanner): when invoked by C-k, if an address has no
 
2972
        real name, prompt for one
 
2973
 
 
2974
1998-10-22  John Harper  <john@dcs.warwick.ac.uk>
 
2975
 
 
2976
        * mime-decode.jl (mime-decode-content-disp): check the length
 
2977
        of the string before looking for a `;' character
 
2978
 
 
2979
1998-10-20  John Harper  <john@dcs.warwick.ac.uk>
 
2980
 
 
2981
        * rm-mime.jl (rm-mime-display-markers): command to redisplay
 
2982
        the current message with markers for _all_ MIME parts, bound to
 
2983
        "D" in read-mail mode
 
2984
 
 
2985
        * keymap.jl (lazy-bind-keys): macro to bind keys in a package
 
2986
        that has possibly not been loaded
 
2987
 
 
2988
1998-10-19  John Harper  <john@dcs.warwick.ac.uk>
 
2989
 
 
2990
        * ispell.jl (ispell-strip-word): fixed for words consisting of
 
2991
        a root and nothing else
 
2992
 
 
2993
1998-10-14  John Harper  <john@dcs.warwick.ac.uk>
 
2994
 
 
2995
        * read-mail.jl (rm-get-address-name): new function
 
2996
 
 
2997
1998-10-13  John Harper  <john@dcs.warwick.ac.uk>
 
2998
 
 
2999
        * mime-quoted-printable.jl (mime-encode-quoted-printable):
 
3000
        implemented this function
 
3001
 
 
3002
        * modes.jl (mode-line-format): add a `%m' as the first
 
3003
        character
 
3004
 
 
3005
1998-10-12  John Harper  <john@dcs.warwick.ac.uk>
 
3006
 
 
3007
        * rcs-hooks.jl (rcs-file-p): test if the file is a directory
 
3008
        first
 
3009
 
 
3010
        * dired.jl (dired-create-directory): new command, bound to `+'
 
3011
        (dired-execute-end): test whether the delete item is a file or
 
3012
        a directory, then call delete-file or delete-directory
 
3013
        appropriately
 
3014
 
 
3015
        * remote-ftp.jl (remote-ftp-handler): handle make-directory and
 
3016
        delete-directory
 
3017
        * tilde.jl (tilde-file-handler): handle make-directory and
 
3018
        delete-directory
 
3019
 
 
3020
        * buffers.jl (kill-buffer): delete the buffer from the
 
3021
        buffer-list even in minibuffer views now (for example, isearch
 
3022
        uses with this variable)
 
3023
 
 
3024
1998-10-11  John Harper  <john@dcs.warwick.ac.uk>
 
3025
 
 
3026
        * rm-misc.jl (rm-reply): uses the rm-get-msg-header function
 
3027
        instead of mail-get-header. This works with decoded MIME
 
3028
        messages
 
3029
 
 
3030
        * send-mail.jl: bind `C-c C-m' to the mime-encode-keymap
 
3031
 
 
3032
        * send-mail.jl (mail-send-hook): defvar'd this hook
 
3033
 
 
3034
        * mime-encode.jl: initial attempt at creating MIME messages
 
3035
 
 
3036
        * mime-decode.jl: minor fixes
 
3037
        (mime-current-part): new function
 
3038
 
 
3039
1998-10-09  John Harper  <john@dcs.warwick.ac.uk>
 
3040
 
 
3041
        * mime-decode.jl (mime-decode-mark-inlines): new variable
 
3042
 
 
3043
        * mime-decode.jl, rm-mime.jl: support for Content-Disposition
 
3044
        header, other misc fixes
 
3045
 
 
3046
        * mime-quoted-printable.jl (mime-decode-quoted-printable): this
 
3047
        function has now been implemented
 
3048
 
 
3049
1998-10-08  John Harper  <john@dcs.warwick.ac.uk>
 
3050
 
 
3051
        * rm-mime.jl, mime-quoted-printable.jl, mime-decode.jl,
 
3052
        mime-base64.jl: initial support for decoding of MIME messages.
 
3053
        The quoted-printable stuff is unimplemented; various shortcuts
 
3054
        in mime-decode as well
 
3055
 
 
3056
        * read-mail.jl (rm-display-current-message, rm-proxy-folder):
 
3057
        support for rendering messages to a temporary buffer for
 
3058
        display (used for MIME for example)
 
3059
 
 
3060
        * rm-summary.jl (rm-summary-view): never return a buffer, only
 
3061
        a view
 
3062
 
 
3063
        * compiler.jl (comp-trans-require): tranform to evaluate
 
3064
        embedded require forms before compiling them
 
3065
 
 
3066
1998-10-07  John Harper  <john@dcs.warwick.ac.uk>
 
3067
 
 
3068
        * send-mail.jl (sendmail-send-message): when handling FCC
 
3069
        headers, temporarily mangle ^From_ to >From_ while saving the
 
3070
        message
 
3071
 
 
3072
1998-10-05  John Harper  <john@dcs.warwick.ac.uk>
 
3073
 
 
3074
        * read-mail.jl (rm-command-items): use rm-with-summary instead
 
3075
        of just switching buffers
 
3076
 
 
3077
1998-10-04  John Harper  <john@dcs.warwick.ac.uk>
 
3078
 
 
3079
        * rm-summary.jl, rm-output.jl, rm-mail-dir.jl, read-mail.jl:
 
3080
        support for marking messages then operating on the selected
 
3081
        messages. Currently only the `C-k' and `s' commands do this
 
3082
 
 
3083
        * cvs.jl: use open-buffer to create buffers
 
3084
 
 
3085
        * summary.jl (summary-unmark-all): call the after-marking
 
3086
        vector of each message unmarked
 
3087
        (summary-unmark-item): call after-marking even if the message
 
3088
        status didn't change
 
3089
 
 
3090
1998-10-02  John Harper  <john@dcs.warwick.ac.uk>
 
3091
 
 
3092
        * rcs.jl (rcs-call-callback): don't truncate the log message at
 
3093
        the cursor position, use all the buffer (less any trailing
 
3094
        newlines) 
 
3095
 
 
3096
        * buffers.jl (read-file-into-buffer): assume that the
 
3097
        read-file-hook, if successful, sets default-directory
 
3098
        * gzip.jl, dired-hooks.jl: the functions put in the
 
3099
        read-file-hook now set the default-directory
 
3100
 
 
3101
1998-10-01  John Harper  <john@dcs.warwick.ac.uk>
 
3102
 
 
3103
        * rcs.jl (rcs-process, rcs-output-buffer): deleted these
 
3104
        variables, all processes and buffers are created on demand (to
 
3105
        help garbage collection)
 
3106
 
 
3107
1998-09-30  John Harper  <john@dcs.warwick.ac.uk>
 
3108
 
 
3109
        * html-style.jl: require maildefs (for user-mail-address)
 
3110
 
 
3111
        * remote-ftp.jl (remote-ftp-prompt-regexp): new variable
 
3112
 
 
3113
        * ispell.jl (ispell-region-1): fix some bugs in how the
 
3114
        ispell-ignore-word-hook is used
 
3115
 
 
3116
        * compiler.jl (comp-fold-constants): does what it says, in a
 
3117
        simple sort of way
 
3118
 
 
3119
1998-09-29  John Harper  <john@dcs.warwick.ac.uk>
 
3120
 
 
3121
        * windows.jl, minor-major.jl, ispell.jl, diff.jl: use `defface'
 
3122
        macro to declare/define all faces
 
3123
 
 
3124
        * compiler.jl (comp-compile-cond): where a condition is a
 
3125
        constant, force it to be either t or nil. When dead code is
 
3126
        detected in conditionals, ignore it correctly
 
3127
        (comp-trans-defvar): source transformation to make `defvar'
 
3128
        work at other than the top-level
 
3129
 
 
3130
        * lisp.jl (defface): new macro
 
3131
        * lisp-mode.jl: set indentation property of `defface'
 
3132
 
 
3133
1998-09-22  John Harper  <john@dcs.warwick.ac.uk>
 
3134
 
 
3135
        * sm-mail-dir.jl (expand-mail-aliases): attempts to expand
 
3136
        local addresses in the address book, e.g. if I put "john" in a
 
3137
        header, it looks for john@MY.DOMAIN, and if it exists, expands
 
3138
        it with the real name
 
3139
 
 
3140
        * mail-dir.jl: minor fixes
 
3141
        * mail-dir-summary.jl: miscellaneous minor fixes
 
3142
        (mds-edit-field): used to move to or create new fields when
 
3143
        editing records
 
3144
 
 
3145
        * help.jl (describe-function): don't pass the documentation
 
3146
        through substitute-command-keys anymore
 
3147
 
 
3148
        * maildefs.jl (mail-domain-name): new variable
 
3149
 
 
3150
1998-09-21  John Harper  <john@dcs.warwick.ac.uk>
 
3151
 
 
3152
        * mail-dir.jl: aliases are now kept in the mail-address-list
 
3153
        variable, they're records with :name and :net-alias fields.
 
3154
        This involved changing a few function names..
 
3155
 
 
3156
        * mail-dir-summary.jl: removed the address/alias distinction
 
3157
        and added an edit command, this dumps you to a buffer
 
3158
        containing a pretty-printed copy of the record, you edit the
 
3159
        record (i.e. adding any new fields or whatever) then commit the
 
3160
        changes with C-c C-c
 
3161
 
 
3162
        * compiler.jl, dump.jl: only print the name of the source file
 
3163
        in the header, not all the useless stuff I used to
 
3164
 
 
3165
        * compiler.jl, bytecodes.jl: op-set and op-fset are now more
 
3166
        regular
 
3167
 
 
3168
        * summary.jl (summary-get-index): return nil if the item
 
3169
        specified isn't actually displayed
 
3170
        (summary-highlight-index): only delete the extent of the
 
3171
        highlighted line
 
3172
        (summary-update): call delete-all-extents
 
3173
        (summary-update-item, summary-goto-item): only proceed if the
 
3174
        item is actually displayed
 
3175
 
 
3176
        * read-mail.jl (rm-format-alist): moved the documentation of
 
3177
        the default format conversions here (instead of
 
3178
        rm-summary-format) 
 
3179
        (rm-saved-flags): list of message properties that should be
 
3180
        saved with the message (in the x-jade-flags-v1 header) when
 
3181
        they're non-nil
 
3182
        (rm-auto-delete-rules): deleted
 
3183
        (rm-after-import-rules, rm-after-parse-rules): new variables
 
3184
        (rm-set-flag, rm-clear-flag, rm-test-flag): deleted
 
3185
        (rm-message-put, rm-message-get): replace the flag functions,
 
3186
        now a alist of properties for each message
 
3187
        (rm-status-alist): map non-nil message properties to strings to
 
3188
        put into the staus line
 
3189
 
 
3190
        * rm-restrict.jl: add a load more standard functions as rules,
 
3191
        basically all conditionals and most arithmetic operators
 
3192
        (defrule): rule bodies may now have more than a single form
 
3193
        (put, get): `rules' to access the messsage's plist
 
3194
        (attribute): now just a synonym for `get'
 
3195
 
 
3196
        * rm-thread.jl (rm-sort-predicates): added a predicate `score',
 
3197
        this sorts by the value of each message's `score' property
 
3198
 
 
3199
        * rm-summary.jl (rm-summary-print-item): if the message has a
 
3200
        `summary-face' property use it as the face of the summary line
 
3201
 
 
3202
        * rm-misc.jl, rm-output.jl: use message properties not flags
 
3203
 
 
3204
        * mail-dir.jl: minor fixes for last set of changes
 
3205
 
 
3206
1998-09-18  John Harper  <john@dcs.warwick.ac.uk>
 
3207
 
 
3208
        * mail-dir.jl: made the database a lot more general. Each
 
3209
        record is now a one-to-many mapping from keys to values.
 
3210
        Currently used keys are :net (email addresses) and :name (real
 
3211
        names)
 
3212
        * mail-dir-summary.jl: fixed for the new database. Needs a lot
 
3213
        of work to allow arbitrary fields to be manipulated
 
3214
 
 
3215
        * rm-restrict.jl: fixed a lot of confusion. The
 
3216
        rm-rule-function property was being called rm-rule-symbol in a
 
3217
        lot of places
 
3218
 
 
3219
1998-09-17  John Harper  <john@dcs.warwick.ac.uk>
 
3220
 
 
3221
        * read-mail.jl (rm-format-alist): the %D and %M formats don't
 
3222
        do %02d formatting anymore, just %d
 
3223
 
 
3224
1998-09-13  John Harper  <john@dcs.warwick.ac.uk>
 
3225
 
 
3226
        * ispell.jl (ispell-ignore-word-hook): new hook, called
 
3227
        immediately prior to spell-checking each word, if the hook
 
3228
        returns t, don't check the word and assume it's ok
 
3229
 
 
3230
        * tex-mode.jl (tex-spell-ignore-word-hook): don't spell-check
 
3231
        any words preceded by a backslash (i.e. TeX commands)
 
3232
 
 
3233
1998-09-12  John Harper  <john@dcs.warwick.ac.uk>
 
3234
 
 
3235
        * init.jl: load files for the window- and operating-system,
 
3236
        the relevant name prefixed by "ws-" and "os-" respectively
 
3237
 
 
3238
        * ispell.jl (ispell-handle-failure-interactively): highlight
 
3239
        the misspelt word in the buffer as well as in the list of
 
3240
        options display
 
3241
 
 
3242
        * ws-x11.jl: new file, initialisation for X11, contains
 
3243
        functions for the block-status, after-kill, and pre-yank-hook's
 
3244
        * edit.jl: moved all X11 specific code to ws-x11.jl
 
3245
 
 
3246
        * edit.jl (mouse-select): only kill the block on a single
 
3247
        click, if that click is _inside_ the marked region
 
3248
        (mouse-select-drag): same as above, but only when the current
 
3249
        mouse position is the same as the position of the first click
 
3250
 
 
3251
1998-09-10  John Harper  <john@dcs.warwick.ac.uk>
 
3252
 
 
3253
        * ispell.jl (ispell-highlight-misspellings): support for
 
3254
        aborting if input arrives in the middle of spell-checking
 
3255
 
 
3256
1998-09-09  John Harper  <john@dcs.warwick.ac.uk>
 
3257
 
 
3258
        * ispell.jl (ispell-add-word-to-dictionary): new command
 
3259
        (ispell-cleanup-before-exit): added to the before-exit hook,
 
3260
        saves the dictionary and kills the process
 
3261
 
 
3262
1998-09-08  John Harper  <john@dcs.warwick.ac.uk>
 
3263
 
 
3264
        * ispell.jl (ispell-minor-mode): spell-checking in idle-time
 
3265
        (ispell-set-dictionary): new command
 
3266
 
 
3267
        * ispell.jl: first attempt at interacting with Ispell,
 
3268
        currently two commands `ispell-region' and `ispell-buffer'
 
3269
 
 
3270
1998-09-07  John Harper  <john@dcs.warwick.ac.uk>
 
3271
 
 
3272
        * info.jl (info-highlight-buffer): end highlighted menu entries
 
3273
        only by ":" not by "."
 
3274
        (info-keymap): bind "b" to start-of-buffer not
 
3275
        goto-start-of-buffer
 
3276
 
 
3277
1998-09-06  John Harper  <john@dcs.warwick.ac.uk>
 
3278
 
 
3279
        * read-mail.jl (rm-format-alist): add a `%A' format, like `%a'
 
3280
        but with five characters (all attributes) not three. For the
 
3281
        `%a' make deleted higher precedence than unread
 
3282
 
 
3283
        * buffers.jl (find-file): if the buffer's name would be null,
 
3284
        look for the name of the parent
 
3285
 
 
3286
        * dired.jl (dired-mode): moved the main parts of `dired' to
 
3287
        this function. Calling `dired-mode' on a buffer whose
 
3288
        buffer-file-name points to a directory puts it into Dired mode
 
3289
        * dired-hooks.jl: use the read-, write-, and insert-file hooks
 
3290
        instead of the find-file-hook. This allows the buffer to be
 
3291
        reverted correctly. Inserting and writing to directories signal
 
3292
        errors
 
3293
 
 
3294
1998-09-05  John Harper  <john@dcs.warwick.ac.uk>
 
3295
 
 
3296
        * gzip.jl (gzip-write-file): fix stupid bug
 
3297
        (auto-compression-alist): add support for bzip2 compression
 
3298
 
 
3299
1998-09-04  John Harper  <john@dcs.warwick.ac.uk>
 
3300
 
 
3301
        * remote-ftp.jl: make "550" a failure, not a recoverable error
 
3302
 
 
3303
1998-09-02  John Harper  <john@dcs.warwick.ac.uk>
 
3304
 
 
3305
        * remote-ftp.jl: fixes to password handling while logging in:
 
3306
        only caches passwords that are actually valid, has a sane
 
3307
        method of retrying failed attempts, and allows the retrying
 
3308
        process to be aborted properly
 
3309
 
 
3310
1998-09-01  John Harper  <john@dcs.warwick.ac.uk>
 
3311
 
 
3312
        * remote-ftp.jl (remote-ftp-command): now transparently
 
3313
        reconnects when the server times out
 
3314
 
 
3315
        * diff.jl (diff-backup, diff-auto-save): when prompting, start
 
3316
        with the name of the current file
 
3317
 
 
3318
1998-08-31  John Harper  <john@dcs.warwick.ac.uk>
 
3319
 
 
3320
        * diff.jl: new file, visual diff mode. Commands `diff',
 
3321
        `diff-buffers', `diff-backup' and `diff-auto-save'.
 
3322
 
 
3323
        * replace.jl (query-replace, replace-all): put quotes around
 
3324
        the search string when prompting for its replacement
 
3325
 
 
3326
        * help.jl (describe-function): run substitute-command-keys over
 
3327
        the documentation string
 
3328
 
 
3329
1998-08-30  John Harper  <john@dcs.warwick.ac.uk>
 
3330
 
 
3331
        * info.jl (info-find-node): fix bug with files without indirect
 
3332
        lists being reloaded all the time
 
3333
 
 
3334
        * prompt.jl (prompt): set the glyph-table of the title extent
 
3335
        to the current glyph table (in case a different table is used
 
3336
        for the prompt)
 
3337
 
 
3338
1998-08-29  John Harper  <john@dcs.warwick.ac.uk>
 
3339
 
 
3340
        * prompt.jl (prompt-start-of-line): new command, bound to `C-a'
 
3341
        in prompts
 
3342
 
 
3343
        * windows.jl (enlarge-view): fix bug of not being able to
 
3344
        enlarge minibuffer (unless more than two views are present)
 
3345
 
 
3346
        * prompt.jl: don't use set-status-message to display title.
 
3347
        Instead insert the title at the beginning of the prompt,
 
3348
        covered by a read-only extent (with prompt-title-face).
 
3349
        Also enlarge the minibuffer to two lines temporarily if it's a
 
3350
        single line (to avoid being clobbered by messages)
 
3351
 
 
3352
1998-08-28  John Harper  <john@dcs.warwick.ac.uk>
 
3353
 
 
3354
        * yacc-mode.jl: new major mode, uses indented-text for yacc
 
3355
        grammar, and embeds minor-major c-modes for all C regions
 
3356
        * modes.jl (auto-mode-alist): added yacc-mode
 
3357
 
 
3358
        * send-mail.jl (send-mail-find-header): avoid the read-only
 
3359
        header-separator
 
3360
 
 
3361
        * minor-major.jl (minor-major-mode, delete-minor-major-mode):
 
3362
        new file, allows major-modes to be set for _regions_ of the
 
3363
        current buffer (uses extents and the `catch-variables'
 
3364
        property)
 
3365
 
 
3366
1998-08-27  John Harper  <john@dcs.warwick.ac.uk>
 
3367
 
 
3368
        * buffer-summary.jl: don't print the minor-modes
 
3369
 
 
3370
        * modes.jl (mode-name, minor-mode-alist, mode-line-format): new
 
3371
        variables
 
3372
        (minor-mode-list, add-minor-mode, remove-minor-mode,
 
3373
        minor-mode-installed-p): deleted
 
3374
 
 
3375
        * cvs.jl, edit.jl, fill.jl, rcs.jl: new method of putting minor
 
3376
        mode names in mode-line
 
3377
 
 
3378
        * read-mail.jl: put message flags in mode-name, needs more work
 
3379
        * rm-summary.jl: change mode-line message
 
3380
 
 
3381
        * rm-summary.jl (rm-summarize): set y-scroll-step-ratio to two
 
3382
        in each summary buffer (scroll by half the window)
 
3383
 
 
3384
        * read-mail.jl (rm-auto-sort-key-alist): new variable
 
3385
 
 
3386
        * info.jl (info-locate-file): don't search the current directory
 
3387
        (info-find-node): a couple of fixes in file selection
 
3388
 
 
3389
        * gzip.jl (auto-compression-mode): only display message when
 
3390
        FORCE-ACTIVE isn't t
 
3391
 
 
3392
1998-08-26  John Harper  <john@dcs.warwick.ac.uk>
 
3393
 
 
3394
        * info.jl (info-menu-face, info-xref-face): new variables
 
3395
 
 
3396
        * maildefs.jl (mail-highlight-face): new variable
 
3397
 
 
3398
        * buffers.jl (buffer-read-only-p, set-buffer-read-only):
 
3399
        implemented in lisp now
 
3400
 
 
3401
        * info.jl: highlights menus and links in underline-face
 
3402
 
 
3403
        * isearch.jl: highlights the selection in highlight-face
 
3404
 
 
3405
        * maildefs.jl (mail-highlighted-headers): changed
 
3406
        documentation, made more general
 
3407
 
 
3408
        * print.jl (print-mode-alist): added more entries
 
3409
 
 
3410
        * prompt.jl (prompt): setq the glyph-table, don't use
 
3411
        set-buffer-glyph-table
 
3412
 
 
3413
        * read-mail.jl: add extents for all mail-highlighted-headers
 
3414
 
 
3415
        * send-mail.jl: add a read-only extent covering the
 
3416
        mail-header-separator string
 
3417
 
 
3418
        * summary.jl (summary-highlight-index): use an extent
 
3419
 
 
3420
        * windows.jl (underline-face, bold-face, italic-face): more
 
3421
        default faces, bold and italic aren't supported yet
 
3422
 
 
3423
1998-08-19  John Harper  <john@dcs.warwick.ac.uk>
 
3424
 
 
3425
        * rm-mail-dir.jl (rm-mail-dir-scanner): rewritten. added
 
3426
        parameters FOLDER (unused) and ALL-ADDRESSES. Only scan
 
3427
        recipients when ALL-ADDRESSES is non-nil
 
3428
        (rm-mail-dir-scan-current): prefix arg means scan all addresses
 
3429
 
 
3430
        * read-mail.jl (rm-format): new function, format a string using
 
3431
        a message and the mail-local format specifiers
 
3432
 
 
3433
        * rm-misc.jl (rm-citation-format): format string for citation
 
3434
        line in quoted messages
 
3435
 
 
3436
        * send-mail.jl (send-mail-mode): set paragraph-separate and
 
3437
        paragraph-start to understand the yank-prefix and
 
3438
        header-separator
 
3439
 
 
3440
1998-08-18  John Harper  <john@dcs.warwick.ac.uk>
 
3441
 
 
3442
        * pwd-prompt.jl (pwd-prompt): no need for dubious hacks
 
3443
        anymore, use the prompt-glyph-table variable instead
 
3444
 
 
3445
        * prompt.jl (prompt-complete-function, prompt-list-completions-
 
3446
        function): new variables. When non-nil these completely
 
3447
        override the prompt-complete and prompt-list-completions
 
3448
        functions
 
3449
        (prompt-word-regexps): deleted this variable, a waste of space
 
3450
        (prompt-glyph-table): new variable, the glyph table to use in
 
3451
        prompt buffers
 
3452
        (get-prompt-buffer, return-prompt-buffer): deleted
 
3453
 
 
3454
        * lisp-mode.jl (lisp-complete-sexp): new optional parameter
 
3455
        ONLY-DISPLAY
 
3456
        (lisp-show-sexp-completions): new function, bound to M-?
 
3457
 
 
3458
1998-08-17  John Harper  <john@dcs.warwick.ac.uk>
 
3459
 
 
3460
        * read-mail.jl (rm-open-mailbox): bind enable-local-variables
 
3461
        to nil while calling find-file. Otherwise a mail message
 
3462
        containing a trailing local variables section could cause
 
3463
        problems..
 
3464
 
 
3465
1998-08-14  John Harper  <john@dcs.warwick.ac.uk>
 
3466
 
 
3467
        * completion.jl (completion-setup-view): if reusing an existing
 
3468
        view, make sure that one directly above the minibuffer is used
 
3469
 
 
3470
1998-08-12  John Harper  <john@dcs.warwick.ac.uk>
 
3471
 
 
3472
        * dired.jl (dired-find-file, dired-find-file-other-view,
 
3473
        dired-display-file): these now find all _selected_ files
 
3474
 
 
3475
1998-08-11  John Harper  <john@dcs.warwick.ac.uk>
 
3476
 
 
3477
        * miranda.jl (miranda): ensure that a local-file-name is passed
 
3478
        to the subprocess
 
3479
 
 
3480
        * find-autoloads.jl (autoload-do-magic): allow macros to have
 
3481
        autoload tags
 
3482
        * rm-restrict.jl (defrule): added autoload tag
 
3483
 
 
3484
        * buffers.jl (kill-buffer): fix bug (taking the new current
 
3485
        buffer from the buffer-list of the current view, not the view
 
3486
        being altered)
 
3487
 
 
3488
        * rm-restrict.jl (sender-alias): new rule, tests if a message
 
3489
        was sent by an address in a named alias
 
3490
 
 
3491
        * completion.jl (completion-column-extra): new variable,
 
3492
        controls the column width in completion listings
 
3493
 
 
3494
1998-08-10  John Harper  <john@dcs.warwick.ac.uk>
 
3495
 
 
3496
        * completion.jl: new file, generalises the old code in
 
3497
        prompt.jl for displaying completions
 
3498
        * prompt.jl: use the new completion functions
 
3499
        * lisp-mode.jl (lisp-complete-sexp): new command bound to M-TAB
 
3500
 
 
3501
        * read-mail.jl (rm-auto-delete-rules): new variable, a list of
 
3502
        rules that are applied to newly-received messages. If any
 
3503
        match, the message is marked as deleted
 
3504
 
 
3505
        * rm-restrict.jl (rm-apply-rules): new function, similar to
 
3506
        rm-apply-rule but takes a list of rules to test
 
3507
 
 
3508
        * remote-ftp.jl (remote-ftp-handler): support for opening
 
3509
        remote files with open-file. All access types are supported
 
3510
        (read, write, append), a local copy is used so all operations
 
3511
        on this copy should work
 
3512
 
 
3513
        * remote.jl (remote-file-handler): slight change to the
 
3514
        conventions for working with remote file handles
 
3515
 
 
3516
1998-08-09  John Harper  <john@dcs.warwick.ac.uk>
 
3517
 
 
3518
        * help.jl (apropos-variable): quote the query string when
 
3519
        displaying results
 
3520
 
 
3521
        * windows.jl (scroll-next-view): pass the other-view an
 
3522
        argument `t' to stop it altering the size of any views
 
3523
 
 
3524
        * cvs.jl (cvs-add-change-log-entries): now prompt for the name
 
3525
        of the ChangeLog file associated with each directory
 
3526
 
 
3527
1998-08-06  John Harper  <john@dcs.warwick.ac.uk>
 
3528
 
 
3529
        * dict.jl (dict-lookup): quote the word being queried
 
3530
 
 
3531
1998-08-02  John Harper  <john@dcs.warwick.ac.uk>
 
3532
 
 
3533
        * add-log.jl, buffer-summary.jl, buffers.jl, compile.jl,
 
3534
        info.jl: miscellaneous changes for buffer-file-name returning
 
3535
        nil if the buffer has no file, not the null string as before
 
3536
 
 
3537
1998-08-01  John Harper  <john@dcs.warwick.ac.uk>
 
3538
 
 
3539
        * buffers.jl (find-file): check that the file exists before
 
3540
        testing it's timestamp
 
3541
        (save-file): signal an error if the buffer has no file-name
 
3542
 
 
3543
1998-07-31  John Harper  <john@dcs.warwick.ac.uk>
 
3544
 
 
3545
        * shell.jl (shell-output-filter, shell-output-limit,
 
3546
        shell-echos, shell-last-output): new variables
 
3547
        (shell-filter): new function, the default output stream
 
3548
        (shell-enter-line): uses telnet.jl's method: if at the end of
 
3549
        the buffer, send everything after the position of the last
 
3550
        output, otherwise resort to prompt-matching
 
3551
 
 
3552
        * telnet.jl: moved most of the funky output-filtering to
 
3553
        shell.jl, password prompt grabbing is now done via the
 
3554
        shell-output-filter variable. Also use the shell's send-line
 
3555
        function exclusively
 
3556
 
 
3557
1998-07-17  John Harper  <john@dcs.warwick.ac.uk>
 
3558
 
 
3559
        * compiler.jl (comp-compile-lambda): if a list-style
 
3560
        interactive decl. is found, see if it might be worth compiling
 
3561
        it (if the function is in the `comp-top-level-compiled' list)
 
3562
 
 
3563
1998-07-10  John Harper  <john@dcs.warwick.ac.uk>
 
3564
 
 
3565
        * read-mail.jl (read-mail-folder): before adding the new folder
 
3566
        to the rm-open-folders list, remove any folders that are no
 
3567
        longer pertinent
 
3568
        * rm-summary.jl (rm-configure-views): fix the code to ensure
 
3569
        that the rm-open-folders list has the correct view for the
 
3570
        folder being configured
 
3571
 
 
3572
        * dict.jl (dict-lookup): new file, a simple interface to the
 
3573
        dict(1) client (that speaks the Dictionary Server Protocol)
 
3574
 
 
3575
1998-07-09  John Harper  <john@dcs.warwick.ac.uk>
 
3576
 
 
3577
        * thesaurus.jl (thesaurus-lookup-word, thesaurus-show-words):
 
3578
        new file, two commands for accessing the "th" thesaurus front
 
3579
        end
 
3580
 
 
3581
        * edit.jl (mouse-yank-at-point): new variable, when t (the
 
3582
        default), yank-to-mouse doesn't move to the mouse position
 
3583
        before yanking
 
3584
 
 
3585
1998-07-08  John Harper  <john@dcs.warwick.ac.uk>
 
3586
 
 
3587
        * sh-mode.jl (sh-get-basic-indent): skip blank lines
 
3588
 
 
3589
        * read-mail.jl (rm-append-inbox): be sure to return zero if no
 
3590
        new messages exist, but no errors occurred (not nil as before)
 
3591
        (rm-get-mail-for-box): be sure to return the number of
 
3592
        messages, also make sure that all inboxes are used
 
3593
 
 
3594
        * maildefs.jl (mail-find-inboxes): expand inbox names relative
 
3595
        to mail-folder-dir if they're not absolute
 
3596
 
 
3597
1998-07-07  John Harper  <john@dcs.warwick.ac.uk>
 
3598
 
 
3599
        * edit.jl (insert-block): renamed as yank-block; now sets
 
3600
        yank-last-item so that yank-next works as would be expected
 
3601
        (yank-get-string): removed NOT-BLOCK parameter; under X11 only
 
3602
        returns the selection if it's not owned by us (so no yanking
 
3603
        unkilled blocks anymore)
 
3604
        (yank, yank-rectangle): removed DONT-YANK-BLOCK arg
 
3605
        (yank-next): should work correctly when yank-last-item is nil
 
3606
        * loadkeys.jl: bound RMB-Click1 to copy-block-as-kill
 
3607
 
 
3608
        * edit.jl (paragraph-start): new variable, finer control over
 
3609
        paragraph definition
 
3610
        (forward-paragraph): use paragraph start
 
3611
        * c-mode.jl, lisp-mode.jl, perl-mode.jl, sh-mode.jl,
 
3612
        tex-mode.jl, texinfo-mode.jl: set paragraph-start and
 
3613
        paragraph-separate to sensible values
 
3614
 
 
3615
        * dired.jl (dired-directory-files): new variable, defines how
 
3616
        the list of files is created
 
3617
        (dired): new optional arg, the value of the above variable
 
3618
 
 
3619
1998-07-06  John Harper  <john@dcs.warwick.ac.uk>
 
3620
 
 
3621
        * modes.jl (auto-mode-alist): added sh-mode entries
 
3622
 
 
3623
1998-07-04  John Harper  <john@dcs.warwick.ac.uk>
 
3624
 
 
3625
        * disassembler.jl (disassemble): fixed for bytecode objects
 
3626
        that have less than six elements
 
3627
 
 
3628
        * modes.jl (mode-comment-header): new variable. Provides a
 
3629
        simple method of defining how one-line comments are introduced
 
3630
        in a file
 
3631
        * asm-mode.jl, lisp-mode.jl, texinfo-mode.jl, tex-mode.jl: use
 
3632
        mode-comment-header
 
3633
 
 
3634
        * cvs.jl: add autoload tags for most commands
 
3635
 
 
3636
        * rcs.jl (rcs-mode): replaces both the rcs-controlled-buffer
 
3637
        and rcs-current-info variables in one fell swoop
 
3638
 
 
3639
        * perl-mode.jl: new file. Inherits a lot of code (and the
 
3640
        related problems?) from c-mode
 
3641
        * c-mode.jl: recognize $ and @ characters in symbols to help
 
3642
        perl-mode, improve comment handling
 
3643
        * modes.jl (auto-mode-alist, interpreter-mode-alist): added
 
3644
        regexps for perl-mode
 
3645
 
 
3646
        * compile.jl (compile-push-directory-regexp,
 
3647
        compile-push-directory-expand): make this work properly (match
 
3648
        the `make[X]:' at the start of the line, not just `make:')
 
3649
 
 
3650
        * help.jl, find-autoloads.jl, dump.jl, compiler.jl: change
 
3651
        miscellaneous `X-dir' variables to `X-directory' (jade-dir,
 
3652
        lisp-lib-dir, ..)
 
3653
 
 
3654
1998-07-01  John Harper  <john@dcs.warwick.ac.uk>
 
3655
 
 
3656
        * modes.jl (defun-at-point): check for null mode-defun-header
 
3657
 
 
3658
        * add-log.jl (change-log-date-format,
 
3659
        change-log-date-match-format): new variables, controls how the
 
3660
        dates in ChangeLog separators are constructed and compared
 
3661
 
 
3662
Mon Jun 29 09:55:55 1998  John Harper  <john@dcs.warwick.ac.uk>
 
3663
 
 
3664
        * cvs.jl (cvs-add-change-log-entries): new function, adds
 
3665
        empty change log entries for all selected files
 
3666
 
 
3667
        * add-log.jl (add-change-log-entry): added two optional args
 
3668
        FILE-LIST and FUNCTION-LIST. These define the header of the
 
3669
        inserted entry. When called interactively they default to the
 
3670
        basename of the current file, and the name of the current
 
3671
        function definition
 
3672
 
 
3673
Thu Jun 25 00:50:35 1998  John Harper  <john@dcs.warwick.ac.uk>
 
3674
 
 
3675
        * loadkeys.jl: use find-matching-bracket as a command, not
 
3676
        called as a function
 
3677
 
 
3678
        * help.jl (apropos-output): new function, used by
 
3679
        apropos-function and apropos-variable to format the list of
 
3680
        symbols and their documentation
 
3681
 
 
3682
Mon Jun 22 09:22:53 1998  John Harper  <john@dcs.warwick.ac.uk>
 
3683
 
 
3684
        * read-mail.jl (rm-add-mailbox, rm-subtract-mailbox,
 
3685
        rm-replace-all-mailboxes): check for null mailbox argument
 
3686
        (rm-append-save-and-delete-file): new function
 
3687
        (rm-append-inbox): cleaned up. Also will append .newmail-FOO
 
3688
        files that it finds lying around from previous attempts
 
3689
 
 
3690
        * rm-thread.jl (rm-thread-folder, rm-sort-folder): handle case
 
3691
        of an empty folder without signalling an error, just do very
 
3692
        little
 
3693
 
 
3694
        * mail-headers.jl (mail-parse-date): correctly handle two-digit
 
3695
        years again
 
3696
 
 
3697
Sun Jun 21 01:17:47 1998  John Harper  <john@dcs.warwick.ac.uk>
 
3698
 
 
3699
        * find-url.jl (find-url-ftp): implemented by rewriting the url
 
3700
        as a remote filename, then calling find-file
 
3701
        (find-mailto-url): renamed as find-url-mailto for consistency
 
3702
        (find-url-external-command): redirect all standard streams to
 
3703
        /dev/null to allow the shell process to exit cleanly
 
3704
 
 
3705
        * sh-mode.jl (sh-indent-line): act on "else" and "elif" tokens
 
3706
 
 
3707
        * gzip.jl (auto-compression-alist, auto-compression-mode):
 
3708
        generalised this code, also allow it to be explicitly enabled
 
3709
        and disabled
 
3710
 
 
3711
        * info.jl: minor changes for modified gzip.jl
 
3712
 
 
3713
Sat Jun 20 16:15:41 1998  John Harper  <john@dcs.warwick.ac.uk>
 
3714
 
 
3715
        * rm-restrict.jl (rm-apply-rule): new function, allows a rule
 
3716
        to be applied to a single specified message
 
3717
 
 
3718
        * rm-thread.jl (rm-sort-folder): allow sort keys to specify
 
3719
        order of sorting. Misc. other fixes
 
3720
        * read-mail.jl (rm-install-messages): if a sort key is defined
 
3721
        for the folder, use it
 
3722
 
 
3723
        * rm-output.jl (rm-auto-archive-alist, rm-auto-archive-folder,
 
3724
        rm-archive-folder): support for saving messages by matching
 
3725
        rules, both interactively, and pre-defined
 
3726
        * read-mail.jl, rm-summary.jl: bind "a" to rm-archive-folder
 
3727
        and "A" to rm-auto-archive-folder. Change binding of
 
3728
        rm-sort-folder to "G"
 
3729
 
 
3730
Fri Jun 19 16:51:54 1998  John Harper  <john@dcs.warwick.ac.uk>
 
3731
 
 
3732
        * remote-ftp.jl (remote-ftp-output-filter): only display hash
 
3733
        characters when remote-ftp-display-progress is t
 
3734
 
 
3735
Wed Jun 17 17:11:10 1998  John Harper  <john@dcs.warwick.ac.uk>
 
3736
 
 
3737
        * isearch.jl (isearch-push-match): small fix
 
3738
 
 
3739
Tue Jun 16 12:02:50 1998  John Harper  <john@dcs.warwick.ac.uk>
 
3740
 
 
3741
        * buffers.jl (save-file-as, insert-file): change messages
 
3742
        slightly
 
3743
 
 
3744
Sun Jun 14 11:58:46 1998  John Harper  <john@dcs.warwick.ac.uk>
 
3745
 
 
3746
        * remote-ftp.jl (remote-ftp-bad-msgs): added invalid command
 
3747
        message
 
3748
        (remote-ftp-invalidate-directory): wholesale invalidation of
 
3749
        the directory cache. Called by most commands
 
3750
 
 
3751
        * remote-ftp.jl (remote-ftp-ls-format): new variable
 
3752
 
 
3753
        * remote.jl (remote-file-regexp): only allow sensible
 
3754
        characters in user and host names
 
3755
 
 
3756
        * remote-ftp.jl (remote-ftp-host-user-alist): map host names to
 
3757
        default users
 
3758
        (remote-ftp-default-user): username to use when unspecified
 
3759
        (remote-ftp-get-user): new function
 
3760
        (remote-ftp-output-filter): display raw hash marks
 
3761
        (remote-ftp-get-file-details): use `ls -la' not `dir'
 
3762
 
 
3763
        * remote-ftp.jl: fix remote file copying
 
3764
 
 
3765
Sat Jun 13 11:10:50 1998  John Harper  <john@dcs.warwick.ac.uk>
 
3766
 
 
3767
        * remote-ftp.jl (remote-ftp-passwd-alist,
 
3768
        remote-ftp-get-passwd, remote-ftp-add-passwd): password caching
 
3769
        (remote-ftp-bad-msgs): attempt to differentiate between success
 
3770
        and soft-failures
 
3771
        (remote-ftp-chmod): attempts to use the `chmod' command
 
3772
        (remote-ftp-file-modes): parse mode string to permission bits
 
3773
        (remote-ftp-display-progress): when t, use hash marks
 
3774
        (remote-ftp-transfer-type): allow binary or ascii transfers;
 
3775
        should allow this to be set by file extension
 
3776
 
 
3777
Fri Jun 12 17:34:16 1998  John Harper  <john@dcs.warwick.ac.uk>
 
3778
 
 
3779
        * prompt.jl (prompt-next-history, prompt-previous-history):
 
3780
        check for (null prompt-history)
 
3781
 
 
3782
        * pwd-prompt.jl (pwd-prompt): bind prompt-history to nil to
 
3783
        prevent passwords being stored
 
3784
 
 
3785
        * remote-ftp.jl (remote-ftp-max-sessions,
 
3786
        remote-ftp-anon-users, remote-ftp-anon-passwd): new variables
 
3787
 
 
3788
        * remote-ftp.jl: new file, an FTP backend for accessing remote
 
3789
        files; seems to work quite well
 
3790
 
 
3791
        * remote-rcp.jl: new file, split from remote.jl. Doesn't work
 
3792
        very well
 
3793
 
 
3794
        * mail-headers.jl (mail-parse-date): made a lot more agreeable
 
3795
        in what it will parse
 
3796
 
 
3797
        * debug.jl (debug-error-entry): always print backtrace
 
3798
 
 
3799
Wed Jun 10 08:49:52 1998  John Harper  <john@dcs.warwick.ac.uk>
 
3800
 
 
3801
        * isearch.jl: many changes. Now uses the minibuffer, highlights
 
3802
        the current match, and doesn't use a recursive edit
 
3803
 
 
3804
        * remote.jl: initial attempt at providing remote file access.
 
3805
        Currently just a framework and a pathetic example of using rcp
 
3806
        to implement a backend
 
3807
 
 
3808
        * cvs.jl (cvs-buffer, cvs-output-buffer): deleted, now we
 
3809
        create buffers as required
 
3810
        (cvs-buffer, cvs-output-buffer): new functions, find or create
 
3811
        the two buffers used by cvs-mode
 
3812
        (cvs-default-directory): working directory, needed since there
 
3813
        may or may not be a *cvs* buffer
 
3814
 
 
3815
        * shell.jl (shell-mode-kill): uses kill-all-local-variables to
 
3816
        clean up after itself
 
3817
 
 
3818
        * gdb.jl: install our own callback function that does some
 
3819
        cleanup at process exit. Allows *gdb* to be reclaimed. Also set
 
3820
        buffer-status-id to a meaningful string
 
3821
 
 
3822
        * buffers.jl (default-directory): set its permanent-local
 
3823
        property
 
3824
 
 
3825
        * rm-misc.jl (rm-forward): fix post-send actions
 
3826
 
 
3827
Mon Jun  8 09:50:29 1998  John Harper  <john@dcs.warwick.ac.uk>
 
3828
 
 
3829
        * fill.jl (fill-area): another attempt at fixing this function,
 
3830
        I think I may have it now
 
3831
 
 
3832
        * print.jl (print-build-shell-command): ensure that a local
 
3833
        file name is used when printing to a file
 
3834
 
 
3835
        * edit.jl (yank-next): initially insert the second most
 
3836
        recently yanked item, not the first
 
3837
 
 
3838
        * loadkeys.jl (numeric-arg, negative-arg, universal-arg):
 
3839
        progagate the last-command variable
 
3840
 
 
3841
        * c-mode.jl (c-mode): adjust mode-defun-header slightly
 
3842
 
 
3843
        * help.jl: deleted the help-buffer variable, find and
 
3844
        initialise the buffer dynamically to help gc
 
3845
 
 
3846
        * buffers.jl (kill-current-buffer): new function
 
3847
 
 
3848
        * mail-dir-summary.jl (mds-alias-buffer, mds-address-buffer):
 
3849
        deleted these variables; allow the buffers to be gc'd
 
3850
 
 
3851
        * prompt.jl (y-or-n-p): use the original value of keymap-path
 
3852
        plus the special bindings
 
3853
 
 
3854
        * buffers.jl (rename-buffer): new command
 
3855
 
 
3856
Sun Jun  7 14:57:12 1998  John Harper  <john@dcs.warwick.ac.uk>
 
3857
 
 
3858
        * edit.jl (mouse-select-drag): preserve type of block when
 
3859
        dragging status lines
 
3860
 
 
3861
        * compiler.jl: added source transform to handle setq-default
 
3862
        special form
 
3863
 
 
3864
        * modes.jl (mode-symbol-regexp, mode-defun-header,
 
3865
        mode-defun-footer): new buffer-local variables
 
3866
        (forward-exp, backward-exp): don't call goto explicitly, use
 
3867
        the `@' interactive flag
 
3868
        (symbol-at-point, defun-at-point): new functions, give the
 
3869
        current symbol or function-name respectively
 
3870
        (start-of-defun, end-of-defun, mark-defun): new functions
 
3871
        * loadkeys.jl: C-M-a to start-of-defun, C-M-e to end-of-defun,
 
3872
        C-M-h to mark-defun
 
3873
        * c-mode.jl, lisp-mode.jl: define the new variables
 
3874
 
 
3875
        * windows.jl (expand-view): fixed
 
3876
 
 
3877
        * help.jl (describe-function, describe-variable): use the value
 
3878
        from symbol-at-point as the starting value of the prompt
 
3879
 
 
3880
        * prompt.jl (prompt-for-symbol, prompt-for-lisp,
 
3881
        prompt-for-function, prompt-for-variable, prompt-for-command):
 
3882
        all now take an extra optional argument, the initial contents
 
3883
        of the prompt
 
3884
 
 
3885
        * tilde.jl: use setq-default when fixing default-directory
 
3886
 
 
3887
Sat Jun  6 16:11:57 1998  John Harper  <john@dcs.warwick.ac.uk>
 
3888
 
 
3889
        * windows.jl (goto-next-view): next-view now returns inactive
 
3890
        minibuffer views, so check for this
 
3891
        (scroll-next-view): use other-view instead of next-view, should
 
3892
        really be called scroll-other-view
 
3893
        (enlarge-view): allow minibuffer views to be sized, now the
 
3894
        bottom _two_ views resize into the view above them
 
3895
 
 
3896
        * edit.jl (mouse-pos): add a check with posp
 
3897
        (goto-mouse): return nil or t a la translate-pos-to-view
 
3898
        (mouse-select): handle selecting a status line
 
3899
        (mouse-select-drag): allow dragging status line to resize views
 
3900
 
 
3901
Fri Jun  5 10:21:32 1998  John Harper  <john@dcs.warwick.ac.uk>
 
3902
 
 
3903
        * rm-restrict.jl (rm-rule-symbol): made into a macro
 
3904
 
 
3905
        * compiler.jl (compile-file): ensure that the output file ends
 
3906
        in .jlc; expand all top level uses of macros. Also change how
 
3907
        eval-when-compile works (a default macro definition for it)
 
3908
 
 
3909
        * rm-restrict.jl (defrule): now fully expands the rule. This
 
3910
        allows files of defrule forms to be compiled down to bytecode
 
3911
        (rm-defrule): renamed as define-rule
 
3912
 
 
3913
        * disassembler.jl (disassemble): fix disassembly of nested
 
3914
        bytecode objects
 
3915
 
 
3916
        * info.jl: deleted the info-buffer variable, all state is now
 
3917
        local to the *Info* buffer. This allows multiple info sessions
 
3918
        to run concurrently, and for all buffers to be gc'd (the info
 
3919
        function with a prefix arg creates a new info buffer)
 
3920
 
 
3921
        * compile.jl (compile-buffer): deleted this global variable,
 
3922
        allows *compilation* buffers to be garbage collected
 
3923
 
 
3924
Thu Jun  4 14:53:30 1998  John Harper  <john@dcs.warwick.ac.uk>
 
3925
 
 
3926
        * prompt.jl (prompt-complete): pass prompt-list-fold-case along
 
3927
        to complete-string
 
3928
 
 
3929
        * buffers.jl, bytecodes.jl, compiler.jl, disassembler.jl,
 
3930
        environ.jl, keymap.jl, lisp-mode.jl, lisp.jl, prompt.jl,
 
3931
        server.jl, tags.jl: excise all traces of the return function
 
3932
        and the OP_RETURN instruction
 
3933
 
 
3934
        * sh-mode.jl: new major mode, for bourne shell files
 
3935
 
 
3936
        * modes.jl (interpreter-mode-regexp, interpreter-mode-alist,
 
3937
        normal-mode): choose modes by #! string
 
3938
 
 
3939
        * cvs.jl (cvs-find-file, cvs-find-file-other-view): now handle
 
3940
        more than one selected file
 
3941
 
 
3942
Wed Jun  3 09:19:34 1998  John Harper  <john@dcs.warwick.ac.uk>
 
3943
 
 
3944
        * modes.jl (normal-mode): given an interactive decl
 
3945
 
 
3946
        * rm-summary.jl (rm-summary-print-item): reference
 
3947
        rm-summary-format in the message's buffer
 
3948
 
 
3949
        * read-mail.jl: more minor fixes
 
3950
 
 
3951
Tue Jun  2 09:06:16 1998  John Harper  <john@dcs.warwick.ac.uk>
 
3952
 
 
3953
        * read-mail.jl, rm-misc.jl, rm-output.jl, rm-summary.jl,
 
3954
        rm-thread.jl: more assorted fixes and enhancements
 
3955
 
 
3956
        * lisp.jl (assoc-regexp): abstracted from get-auto-mode, a
 
3957
        function to associate with regexps
 
3958
 
 
3959
        * init.jl: -no-rc option to prevent loading of .jaderc and
 
3960
        site-init files
 
3961
        * Makefile.in: use -no-rc option
 
3962
 
 
3963
        * rm-mail-dir.jl: use new hook name
 
3964
 
 
3965
Mon Jun  1 11:26:39 1998  John Harper  <john@dcs.warwick.ac.uk>
 
3966
 
 
3967
        * mail-headers.jl (mail-parse-address): some reorganisation to
 
3968
        allow parsing of address without domains
 
3969
        (mail-format-address): allow nil NAME
 
3970
        (mail-insert-address-list): new function
 
3971
 
 
3972
        * rm-misc.jl (rm-reply): use message's header cache where
 
3973
        possible
 
3974
 
 
3975
        * rm-restrict.jl (rm-rule:attribute): quote the symbol argument
 
3976
 
 
3977
        * read-mail.jl (rm-append-inbox, rm-rebuild-folder): fixed
 
3978
 
 
3979
        * read-mail.jl (rm-open-mailbox, rm-close-mailbox,
 
3980
        rm-subtract-mailbox, rm-subtract-all-mailboxes): new functions.
 
3981
        Also lots of other fixes, it seems to work quite well now
 
3982
 
 
3983
        * rm-mail-dir.jl: don't bind to `+' anymore (used to add a
 
3984
        mailbox), instead use `Ctrl-k'
 
3985
 
 
3986
        * rm-restrict.jl (subject): new rule. Also some fixes
 
3987
 
 
3988
        * rm-summary.jl (rm-summary-view): fixed to _always_ return a
 
3989
        view or a buffer
 
3990
 
 
3991
        * rm-thread.jl: fix the `date' sort key
 
3992
 
 
3993
        * read-mail.jl (rm-open-mailboxes): list of buffers, this stops
 
3994
        buffers being gc'd while they're still in use (references to
 
3995
        buffers are by marks, which are `weak' references)
 
3996
 
 
3997
        * rm-restrict.jl: minor changes, renamed rule functions from
 
3998
        `rm-rule-X' to `rm-rule:X', added a `(body REGEXP)' rule to
 
3999
        search the body of the message
 
4000
 
 
4001
Sun May 31 12:06:02 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4002
 
 
4003
        * read-mail.jl: more work. pretty much works. getting new mail
 
4004
        doesn't though..
 
4005
        * rm-misc.jl, rm-output.jl, rm-summary.jl, rm-thread.jl:
 
4006
        updated for new read-mail. Mostly untested
 
4007
 
 
4008
        * rm-restrict.jl: allow rules to be defined interactively
 
4009
 
 
4010
        * prompt.jl (prompt-validate-symbol): fixed
 
4011
 
 
4012
        * lisp.jl (identity): new function
 
4013
 
 
4014
        * read-mail.jl: massive changes, there is now a layer between
 
4015
        mailbox files and messages: folders. Each folder can contain
 
4016
        multiple mailboxes and be restricted to only contain messages
 
4017
        meeting a specified restriction rule
 
4018
 
 
4019
        * rm-summary.jl (rm-with-folder, rm-in-folder): moved here from
 
4020
        read-mail.jl. All rm-X.jl files need updating for the new
 
4021
        read-mail
 
4022
 
 
4023
Sat May 30 12:28:09 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4024
 
 
4025
        * buffers.jl (find-file-read-only): added DONT-ACTIVATE option,
 
4026
        like find-file has
 
4027
 
 
4028
        * rm-restrict.jl (rm-filter-by-rule): function to apply a rule
 
4029
 
 
4030
Fri May 29 15:17:38 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4031
 
 
4032
        * html-style.jl (html-style-default, html-style-current,
 
4033
        html-style-alist, html-style-set-style, html-style-add-style):
 
4034
        support for multiple styles
 
4035
 
 
4036
Thu May 28 18:02:48 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4037
 
 
4038
        * mail-headers.jl (mail-timezone-alist): moved to maildefs.jl
 
4039
        * maildefs.jl (mail-month-alist): added full names, as well as
 
4040
        abbreviations
 
4041
 
 
4042
        * rm-restrict.jl (rm-parse-date, rm-rule-sent-date): support
 
4043
        for relative dates (i.e. "2 days ago" and so on)
 
4044
 
 
4045
Tue May 26 13:15:11 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4046
 
 
4047
        * rm-restrict.jl: new file, rule-based message selection
 
4048
 
 
4049
        * mail-headers.jl (mail-parse-date): initialise values to
 
4050
        sensible defaults
 
4051
 
 
4052
        * mail-headers.jl (mail-parse-date): fix epoch-time calculation
 
4053
 
 
4054
Mon May 25 17:12:39 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4055
 
 
4056
        * rm-output.jl (rm-output-message): call 'rm-after-import-hook
 
4057
 
 
4058
        * rm-thread.jl (rm-auto-thread-new-messages): new variable
 
4059
 
 
4060
        * lisp.jl (if, and, or): deleted, they're now special forms
 
4061
        * compiler.jl (if, and, or): source code transformations to
 
4062
        compile these special forms
 
4063
 
 
4064
        * compiler.jl, lisp.jl: support for eval-when-compile
 
4065
        construct, though I'm not sure if it has the correct semantics
 
4066
        at anything but the top-level?
 
4067
 
 
4068
        * read-mail.jl, rm-summary.jl: removed all of the mail summary
 
4069
        code to rm-summary.jl. read-mail.jl still has a few calls to it
 
4070
        though (but only if a summary exists). Deletion marks are now
 
4071
        stored along with all the other message attributes
 
4072
        * rm-misc.jl, rm-output.jl, rm-mail-dir.jl: minor updates to
 
4073
        work with separate summary
 
4074
 
 
4075
        * rm-thread.jl (rm-inter-thread-sort-key,
 
4076
        rm-intra-thread-sort-key): control over how threads are sorted
 
4077
 
 
4078
        * compiler.jl (comp-compile-top-form): when compiling defvars,
 
4079
        if the value is a list but not a constant, compile it to
 
4080
        bytecode
 
4081
 
 
4082
        * mail-headers.jl (mail-parse-date): resolve timezone
 
4083
        specifications to the difference in minutes they specify
 
4084
        (currently I've ignored the single letter `military' zones).
 
4085
        Also calculate the time since the epoch (actually create
 
4086
        (DAYS . SECONDS) to avoid overflow)
 
4087
        (mail-get-actual-subject); function to strip re: prefixes from
 
4088
        a subject string
 
4089
 
 
4090
        * maildefs.jl (mail-re-regexp): regexp defining how we strip
 
4091
        re: prefixes, moved from rm-misc.jl
 
4092
 
 
4093
        * read-mail.jl (rm-keymap, rm-summary-keymap): bind Ctrl-s to
 
4094
        sort the folder, and Ctrl-t to toggle threading
 
4095
        (rm-get-actual-subject): new function
 
4096
        (rm-invalidate-summary-cache): new function
 
4097
 
 
4098
        * rm-misc.jl (rm-Re-regexp): moved to maildefs.jl
 
4099
        (rm-reply): use mail-get-actual-subject
 
4100
 
 
4101
        * rm-thread.jl (rm-thread-using-subject): new variable, when t
 
4102
        use subjects to group messages as well as id's
 
4103
        (rm-sort-predicates): alist of (KEY . PREDICATE) for sorting
 
4104
        folder order
 
4105
        (rm-threaded-folder): new variable, t when folder is threaded
 
4106
        (rm-thread-folder): misc. fixes, use subjects, sort thread
 
4107
        lists, use rm-fix-msg-lists
 
4108
        (rm-fix-msg-lists): function to install a list of messages
 
4109
        preserving the current message
 
4110
        (rm-toggle-threading): new command, toggles between threaded
 
4111
        and sorted by location display
 
4112
        (rm-sort-folder): new command, sorts display order by key
 
4113
 
 
4114
Sun May 24 13:18:54 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4115
 
 
4116
        * read-mail.jl (rm-move-forwards, rm-move-backwards): changed
 
4117
        from macros to functions; also they reuse all cons cells
 
4118
 
 
4119
        * rm-thread.jl: initial attempt at message threading, needs a
 
4120
        lot of work
 
4121
 
 
4122
        * read-mail.jl (rm-get-message-id, rm-get-in-reply-to,
 
4123
        rm-get-references): new functions to use the header cache
 
4124
 
 
4125
        * help.jl (substitute-command-keys): new function, replace
 
4126
        strings in mode documentation with keymap descriptions. Mostly
 
4127
        compatible with Emacs method of doing this
 
4128
        (describe-mode): pass the doc string through the
 
4129
        substitute-command-keys function
 
4130
 
 
4131
        * modes.jl (mode-alist): renamed as auto-mode-alist
 
4132
        (default-major-mode): new variable, defines the major mode of
 
4133
        buffers that otherwise wouldn't have one
 
4134
        (get-mode): renamed get-auto-mode
 
4135
        (init-mode): renamed normal-mode, simplified the semantics
 
4136
 
 
4137
        * asm-mode.jl, buffer-menu.jl, buffer-summary.jl, c-mode.jl,
 
4138
        cvs.jl, debug.jl, dired.jl, gdb.jl, info.jl, lisp-mode.jl,
 
4139
        read-mail.jl, send-mail.jl, shell.jl, tex-mode.jl,
 
4140
        texinfo-mode.jl, text-mode.jl: rewrote major mode documentation
 
4141
        to include keymap formatting directives
 
4142
 
 
4143
        * keymap.jl (map-keymap-recursively): variable controlling
 
4144
        whether map-keymap notices sub-keymaps (t by default)
 
4145
        (substitute-key-definition): new command, change key bindings
 
4146
        to a particular command so that they invoke a different command
 
4147
 
 
4148
Sat May 23 11:30:19 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4149
 
 
4150
        * asm-mode.jl, buffer-menu.jl, buffer-summary.jl, c-mode.jl,
 
4151
        compile.jl, cvs.jl, debug.jl, dired.jl, fill.jl, gdb.jl,
 
4152
        help.jl, info.jl, isearch.jl, keymap.jl, lisp-mode.jl,
 
4153
        loadkeys.jl, mail-dir-summary.jl, prompt.jl, rcs.jl,
 
4154
        read-mail.jl, replace.jl, send-mail.jl, shell.jl, summary.jl,
 
4155
        telnet.jl, tex-mode.jl, texinfo-mode.jl, text-mode.jl: use new
 
4156
        names of make-keytab and make-keylist (make-keymap and
 
4157
        make-sparse-keymap). Also use new method for inheriting
 
4158
        bindings
 
4159
 
 
4160
        * keymap.jl: updated for new key binding structure (uses cons
 
4161
        cells instead of a vector)
 
4162
 
 
4163
Fri May 22 10:15:28 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4164
 
 
4165
        * cvs.jl, dired.jl, gdb.jl, help.jl, isearch.jl, keymap.jl,
 
4166
        loadkeys.jl, rcs.jl, send-mail.jl, tex-mode.jl,
 
4167
        texinfo-mode.jl: altered uses of next-keymap-path to take
 
4168
        account that it's now a function not a variable
 
4169
 
 
4170
        * keymap.jl (map-keymap): new function, allows a function to be
 
4171
        mapped (recursively) over all existing key bindings
 
4172
        (print-keymap): defined in terms of map-keymap
 
4173
        (where-is): new command, searches the key binding hierarchy for
 
4174
        a specified command (using map-keymap)
 
4175
        * help.jl: bind where-is to `Ctrl-h w'
 
4176
 
 
4177
        * c-mode.jl: lots of minor fixes, hopefully correcting a lot of
 
4178
        mis-indentation; some problems still exist
 
4179
 
 
4180
Wed May 20 17:34:48 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4181
 
 
4182
        * buffer-summary.jl: removed bs-buffer variable, now find or
 
4183
        create *buffers* buffer dynamically. This helps garbage
 
4184
        collection
 
4185
 
 
4186
Sun May 17 19:51:41 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4187
 
 
4188
        * rm-misc.jl (rm-forward): new method of deleting trailing
 
4189
        blank lines, this one seems to work
 
4190
 
 
4191
        * send-mail.jl (send-mail-show-output): new variable, when t
 
4192
        output from sendmail is always displayed. Replaces
 
4193
        sendmail-debug
 
4194
 
 
4195
Sat May 16 23:39:14 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4196
 
 
4197
        * mail-dir.jl (mail-dir-auto-expand-aliases): deleted; the user
 
4198
        has to put the function in the mail-send-hook manually now
 
4199
        (add-mail-alias, add-mail-address): protect against adding null
 
4200
        addresses
 
4201
 
 
4202
        * mail-headers.jl (mail-insert-list): be more intelligent when
 
4203
        finding the depth to indent continuation lines to--either the
 
4204
        column following the name of the header, or the current
 
4205
        indentation if inserting in a continuation line
 
4206
 
 
4207
        * sm-mail-dir.jl: bind `Ctrl-c Ctrl-x' to expand any mail
 
4208
        aliases in the message's headers (in send-mail mode)
 
4209
        (sm-mail-dir-expand-aliases): this now seems to work, and is
 
4210
        called expand-mail-aliases. It's not added to mail-send-hook,
 
4211
        but is suitable for use in this hook. Given an interactive
 
4212
        decl. so can now be called as a command
 
4213
 
 
4214
        * edit.jl (save-restriction): when restoring the original
 
4215
        restriction, unrestrict the buffer if there was no original
 
4216
        restriction or it's now invalid
 
4217
 
 
4218
Fri May  8 13:03:43 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4219
 
 
4220
        * windows.jl (other-view): only enlarge an existing view when
 
4221
        the desired size is less than its current size
 
4222
 
 
4223
        * cvs.jl (cvs-show-output-buffer): only call shrink-view-if-..
 
4224
        when the real current buffer isn't the *cvs* buffer to avoid an
 
4225
        annoying effect
 
4226
 
 
4227
Wed May  6 16:23:46 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4228
 
 
4229
        * rcs.jl, rcs-hooks.jl, dired.jl, dired-hooks.jl: use autoload
 
4230
        mechanism to load -hooks files, rcs-mode also autoloads its
 
4231
        main keymap
 
4232
 
 
4233
        * cvs.jl (cvs-keymap): now autoloaded
 
4234
 
 
4235
        * lisp.jl (autoload-variable): new function
 
4236
        * find-autoloads.jl: ignores defmacro, but understands defvar
 
4237
 
 
4238
Tue May  5 10:28:10 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4239
 
 
4240
        * html-style.jl (html-style-header): optional NO-HEADING arg
 
4241
        suppresses the initial heading
 
4242
 
 
4243
        * cvs.jl (cvs-option-alist): remove default options, should be
 
4244
        up to the user
 
4245
 
 
4246
        * cvs.jl (cvs-update-file-list): split the completion function
 
4247
        out into cvs-update-finished, this function takes a single
 
4248
        argument, the _value_ of the hook to call. This is required
 
4249
        due to the asynchronicity in relation to the caller of
 
4250
        cvs-update..
 
4251
 
 
4252
Mon May  4 12:12:22 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4253
 
 
4254
        * cvs.jl (cvs-update-file-list): call cvs-after-update-hook on
 
4255
        completion
 
4256
        (cvs-undo-modification): ensure that buffers aren't reloaded
 
4257
        until _after_ the update has completed
 
4258
 
 
4259
        * info.jl: use the buffer-status-id to display the current node
 
4260
        name, not the mode-name
 
4261
 
 
4262
Sun May  3 12:22:27 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4263
 
 
4264
        * read-mail.jl (rm-next-page, rm-previous-page): detect top and
 
4265
        bottom of buffer properly, not just when the cursor is at the
 
4266
        top or the bottom
 
4267
 
 
4268
        * buffer-summary.jl: use the standard read-only/modified
 
4269
        symbols (as in the status line). Removed the `-' synonym for
 
4270
        the `%' command
 
4271
 
 
4272
        * init.jl, compiler.jl: don't use version-and-build-string
 
4273
        anymore, but use build-id-string instead
 
4274
 
 
4275
Thu Apr 30 10:43:36 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4276
 
 
4277
        * buffer-summary.jl (bs-print-item): substitute `Fundamental'
 
4278
        for `Generic'
 
4279
 
 
4280
        * help.jl (lisp-documentation-file): name of the file
 
4281
        containing the Lisp library's documentation strings
 
4282
        (add-documentation, get-documentation): use the
 
4283
        lisp-documentation-file for Lisp documentation
 
4284
 
 
4285
        * dired.jl (dired-do-copy, dired-do-rename): new commands
 
4286
 
 
4287
        * summary.jl (summary-update, summary-update-item): mark the
 
4288
        buffer as unmodified before calling the after-update vector
 
4289
        (summary-command-items): new function, copied from part of
 
4290
        cvs-command-get-files. This returns a list of items for a
 
4291
        command to manipulate in some way
 
4292
        * cvs.jl (cvs-command-get-files): call summary-command-items
 
4293
 
 
4294
        * cvs.jl (cvs-option-alist): added -v option to status
 
4295
        (cvs-keymap): bindings of `t' and `T'
 
4296
        (cvs-tag, cvs-tag-directory): new commands
 
4297
 
 
4298
Wed Apr 29 09:39:40 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4299
 
 
4300
        * maildefs.jl (mail-summary-lines): renamed as
 
4301
        mail-summary-percent, now defines the percentage of the window,
 
4302
        not the number of lines
 
4303
        * read-mail.jl (rm-configure-views): changed for above switch
 
4304
 
 
4305
        * read-mail.jl (rm-summary-format-alist): new conversions `b',
 
4306
        `n' and `N'.
 
4307
        (rm-status-format): format string for part of status line
 
4308
        (read-mail-folder): don't expand folder name so much
 
4309
        (rm-fix-status-info): cache status line formatted text
 
4310
        (rm-invalidate-status-cache): for above
 
4311
 
 
4312
        * info.jl (info-read-dir): use insert-file instead of
 
4313
        read-file-into-buffer. This doesn't set the buffer's file-name.
 
4314
        Also set the file-name to nil, and the buffer as unmodified.
 
4315
        (info-prompt): rename list-fun to info-list-fun since it's a
 
4316
        dynamic variable
 
4317
        (info-list-menu-items): search from the restriction start, not
 
4318
        the cursor position
 
4319
 
 
4320
Tue Apr 28 16:05:44 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4321
 
 
4322
        * read-mail.jl: use the new buffer-status-id variable to
 
4323
        display current message number with the buffer name
 
4324
 
 
4325
        * cvs.jl (cvs-undo-modification): use cvs-revert-filenames
 
4326
        instead of doing it inline
 
4327
 
 
4328
Mon Apr 27 10:21:09 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4329
 
 
4330
        * buffers.jl (buffer-file-modtime): has permanent-local
 
4331
        property
 
4332
 
 
4333
        * cvs.jl (cvs-commit-callback, cvs-revert-filenames): files
 
4334
        should revert after being committed now
 
4335
 
 
4336
Sun Apr 26 13:39:17 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4337
 
 
4338
        * buffers.jl: call (window-list), instead of variable
 
4339
        window-list
 
4340
        * loadkeys.jl, loadmenus.jl, server.jl: use make- and
 
4341
        delete-window instead of open- and close-window
 
4342
        * windows.jl (window-list, window-closed-hook, open-window,
 
4343
        open-window-on-display, close-window): deleted
 
4344
 
 
4345
        * buffers.jl (mildly-special-buffer): deleted this variable
 
4346
        (kill-buffer): don't destroy-buffer, just remove it from all
 
4347
        buffer-list's. Moved remove-buffer into this function
 
4348
        (bury-buffer): use mapc, and fixed to handle views as well as
 
4349
        windows
 
4350
        (add-buffer): moved here from windows.jl
 
4351
        (rotate-buffers-forward, rotate-buffers-backward): deleted
 
4352
        (find-file): check if the file being opened has changed, if
 
4353
        it's already buffered
 
4354
        (check-changes, save-some-buffers): don't look for
 
4355
        special-ness, but whether the buffer has no file-name
 
4356
        * windows.jl (add-buffer, remove-buffer): deleted
 
4357
        * loadkeys.jl: remove references to rotate-buffers-forward and
 
4358
        rotate-buffer-backward 
 
4359
 
 
4360
        * modes.jl (kill-mode): renamed as fundamental-mode, since this
 
4361
        is what it really does, given an interactive decl
 
4362
 
 
4363
        * compile.jl (compile-parse-errors): fix line numbers being out
 
4364
        by one
 
4365
 
 
4366
        * buffer-menu.jl, compile.jl, compiler.jl, cvs.jl, debug.jl,
 
4367
        disassembler.jl, gdb.jl, help.jl, info.jl, init.jl, keymap.jl,
 
4368
        miranda.jl, prompt.jl, rcs.jl, read-mail.jl, send-mail.jl,
 
4369
        shell.jl, summary.jl, telnet.jl: various fixes for loss of
 
4370
        buffer-special functions, etc.
 
4371
 
 
4372
        * buffers.jl (open-buffer): always call add-buffer, not just
 
4373
        when having to create the buffer
 
4374
 
 
4375
        * windows.jl (add-buffer, remove-buffer): rewritten using mapc
 
4376
        instead of iteration. add-buffer won't add the buffer if it's
 
4377
        already in the view's list
 
4378
 
 
4379
        * cvs.jl (cvs-buffer): variable pointing to the summary buffer
 
4380
        (cvs-update-file-list): install a temporary minor mode whilst
 
4381
        updating (the mode's called cvs-update)
 
4382
        (cvs-buffer-p): macro to test if the current buffer is the
 
4383
        summary buffer
 
4384
        (cvs-summary-select-other-view): fixed
 
4385
 
 
4386
Sat Apr 25 14:38:38 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4387
 
 
4388
        * cvs.jl (cvs-command): handle the `*cvs*' buffer not existing
 
4389
 
 
4390
Fri Apr 24 14:02:50 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4391
 
 
4392
        * cvs.jl: support for calling CVS commands asychronously,
 
4393
        currently, cvs-update, cvs-log, cvs-status,
 
4394
        cvs-commit-callback and cvs-diff-cvs take advantage of this
 
4395
 
 
4396
Thu Apr 23 12:02:57 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4397
 
 
4398
        * cvs.jl (cvs-summary-clean): implemented this command
 
4399
 
 
4400
Wed Apr 22 17:22:48 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4401
 
 
4402
        * windows.jl (open-view, close-view): deleted, replaced by
 
4403
        split-view and delete-view in views.c
 
4404
        (close-other-views): renamed delete-other-views
 
4405
        * buffer-menu.jl, buffer-summary.jl, loadkeys.jl, prompt.jl,
 
4406
        read-mail.jl: replace open-view by split-view, and close-view
 
4407
        by delete-view, etc
 
4408
 
 
4409
Tue Apr 21 11:48:59 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4410
 
 
4411
        * cvs.jl (cvs-diff-backup, cvs-undo-modification): implemented
 
4412
        these commands
 
4413
 
 
4414
        * compile.jl (compile-parse-errors, next-error): rewrote most
 
4415
        of these functions. Now tracks changes of directory while
 
4416
        compiling (see compile-{push,pop}-directory-regexp variables,
 
4417
        by default set up for GNU make)
 
4418
 
 
4419
        * cvs.jl (cvs-command): use (message ... t) instead of (format
 
4420
        t ...) to display calling CVS message
 
4421
 
 
4422
Mon Apr 20 00:20:06 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4423
 
 
4424
        * cvs.jl (cvs-commit-directory): new command, bound to `C'
 
4425
 
 
4426
        * cvs.jl (cvs-summary-mode): defined this function to provide
 
4427
        the mode's documentation
 
4428
        (cvs-command-get-files): in the summary buffer, when no files
 
4429
        are marked, select prefix-arg files, not just one
 
4430
 
 
4431
        * find-url.jl (find-url-alist): deleted the http: method since
 
4432
        it's covered by the default action
 
4433
 
 
4434
Sun Apr 19 15:30:07 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4435
 
 
4436
        * cvs.jl, autoload.jl: a rudimentary CVS mode, inspired by
 
4437
        pcl-cvs.el. Most important shortcoming is lack of control over
 
4438
        which revisions are manipulated
 
4439
 
 
4440
        * dired.jl, summary.jl (dired-mark-if): moved from dired.jl to
 
4441
        summary.jl, and renamed as summary-mark-if
 
4442
 
 
4443
Sat Apr 18 00:19:49 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4444
 
 
4445
        * buffers.jl (revert-buffer): attempt to leave the cursor in
 
4446
        its original position (by saving the surrounding lines, then
 
4447
        searching for them). Also added a new optional argument, FORCE,
 
4448
        which prevents confirmation from the user being asked for
 
4449
 
 
4450
        * rcs.jl (rcs-command): when REREAD-BUFFER is t, use
 
4451
        revert-buffer to achieve this
 
4452
 
 
4453
        * Makefile.in: use JADELISPLIB and JADEDOCFILE to allow proper
 
4454
        compilation of Lisp files before they've been installed
 
4455
 
 
4456
Fri Apr 17 14:18:22 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4457
 
 
4458
        * tilde.jl (tilde-file-handler): handle the expand-file-name
 
4459
        operation separately now, simplify the stuff after the tilde
 
4460
        expression
 
4461
 
 
4462
Wed Apr  8 11:59:44 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4463
 
 
4464
        * pwd-prompt.jl (pwd-prompt): use unwind-protect to ensure that
 
4465
        the old glyph table is re-established
 
4466
 
 
4467
        * telnet.jl (telnet-grab-passwords): variable controlling
 
4468
        whether to scan for password prompts, and if so, for how long
 
4469
        after the start of the session
 
4470
        (rlogin-program): new variable
 
4471
        (telnet): new optional arg, USE-RLOGIN
 
4472
        (rlogin): new command
 
4473
        (telnet-filter): don't try to be clever when telnet-echos is
 
4474
        non-nil
 
4475
        (telnet-send-line): when telnet-echos is non-nil, delete input
 
4476
        immediately after it's sent
 
4477
 
 
4478
Tue Apr  7 10:20:02 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4479
 
 
4480
        * telnet.jl (telnet): specifying a port number now works
 
4481
 
 
4482
        * telnet.jl (telnet): spawns a telnet session in a buffer
 
4483
 
 
4484
        * pwd-prompt.jl (pwd-prompt): prompts for a string
 
4485
        confidentially. Does this by hacking (literally) prompt.jl to
 
4486
        use a special glyph table
 
4487
 
 
4488
        * find-url.jl (find-url-telnet, find-url-mailto): new functions
 
4489
 
 
4490
        * compiler.jl (compile-file): slightly modified comment
 
4491
        prefixed to compiled files
 
4492
 
 
4493
        * loadkeys.c: bound "Ctrl-x Ctrl-Meta-f" to find-url
 
4494
 
 
4495
        * shell.jl (shell-command-on-area): don't popup *shell-output*
 
4496
        buffer if it's totally empty
 
4497
 
 
4498
        * find-url.jl (find-url): new file, new command, it allows urls
 
4499
        to be followed. By default, http urls are redirected to
 
4500
        netscape, and file ones are loaded into the editor. ftp and
 
4501
        telnet (and others?) are still to be implemented
 
4502
 
 
4503
Sun Apr  5 20:13:42 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4504
 
 
4505
        * buffers.jl (save-some-buffers): print a message if no
 
4506
        modified buffers exist on entry
 
4507
 
 
4508
        * compiler.jl (comp-get-lambda-vars): made into a macro; now
 
4509
        uses filter instead of a combination of mapcar and delq
 
4510
 
 
4511
        * compiler.jl (comp-compile-funcall): open code constant lambda
 
4512
        expressions; this isn't going to be useful with existing code,
 
4513
        but it might be in the future (and it's painless..)
 
4514
 
 
4515
Sat Apr  4 19:39:28 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4516
 
 
4517
        * file-subst.jl: provide file-subst
 
4518
        * html-style.jl: require file-subst
 
4519
 
 
4520
        * edit.jl (mouse-select-drag-block, mouse-select-drag-rect):
 
4521
        new functions, calling mouse-select-drag, but not until they've
 
4522
        set or cleared the rect-blocks flag
 
4523
        * loadkeys.jl: bound Ctrl-Mouse events to mark rectangles
 
4524
 
 
4525
Fri Apr  3 12:38:54 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4526
 
 
4527
        * fill.jl (fill-area): hopefully fixed the bug erroneously
 
4528
        leaving single words on the last line of the buffer
 
4529
 
 
4530
Thu Apr  2 10:28:19 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4531
 
 
4532
        * rm-misc.jl (rm-forward): fix deletion of trailing blank lines
 
4533
 
 
4534
Wed Apr  1 00:47:04 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4535
 
 
4536
        * html-style.jl: simplified the default style a lot
 
4537
 
 
4538
        * compiler.jl (comp-compile-mapc): for mapc calls whose
 
4539
        function argument is a constant lambda expression, do the
 
4540
        looping in byte code and open-code the function call. All other
 
4541
        mapc calls use the mapc opcode as before
 
4542
 
 
4543
        * html-style.jl: new file, code to work with file-subst.jl to
 
4544
        create web pages to a common style
 
4545
 
 
4546
Tue Mar 31 00:42:31 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4547
 
 
4548
        * tilde.jl: new file; a file-handler to expand a tilde (~) at
 
4549
        the start of a file name. Understands both ~/ and ~USER/
 
4550
 
 
4551
        * shell.jl: fix TERMCAP entry
 
4552
 
 
4553
        * read-mail.jl, rm-misc.jl, rm-output.jl: more fixes to
 
4554
        ensuring correct separation between messages
 
4555
 
 
4556
        * loadmenus.jl: change for new operating-system variable; I
 
4557
        don't know why I keep this file...
 
4558
 
 
4559
        * lisp.jl (file-name=): no longer a primitive, this now works
 
4560
        by comparing canonical file names
 
4561
 
 
4562
        * init.jl: minor changes to order of loadup; also catch all
 
4563
        errors when executing site-local and user config files
 
4564
 
 
4565
        * info.jl (info-find-node): fixed some bugs
 
4566
 
 
4567
        * help.jl (get-documentation, add-documentation): new
 
4568
        functions, these replace the old get-doc-string and
 
4569
        add-doc-string primitives
 
4570
 
 
4571
        * file-subst.jl: new file, provides a method of generating
 
4572
        arbitrary text files from input templates. Allows the full
 
4573
        expressiveness of Lisp to be used in expansions. I use this to
 
4574
        build all my web pages using the same style
 
4575
 
 
4576
        * environ.jl (getenv, setenv): new file, these functions used
 
4577
        to be primitives, now they use the process-environment variable
 
4578
 
 
4579
        * edit.jl: use (eq window-system 'x11) to test for X
 
4580
 
 
4581
        * dired.jl: added `% d' and `% m' commands. Also cleaned up
 
4582
        some code. Needs more commands
 
4583
 
 
4584
        * compiler.jl: support for comp-transform property in
 
4585
        functions, basically a method for specifying a source code
 
4586
        transformation (i.e. macro) to compile the form
 
4587
 
 
4588
        * buffer-summary.jl (bs-print-item): handle oversized fields
 
4589
        more elegantly
 
4590
 
 
4591
        * add-log.jl, buffers.jl, compile.jl, compiler.jl, dired.jl,
 
4592
        dump.jl, find-autoloads.jl, gdb.jl, gzip.jl, info.jl,
 
4593
        mail-dir.jl, maildefs.jl, miranda.jl, print.jl, prompt.jl,
 
4594
        rcs-hooks.jl, rcs.jl, read-mail.jl, rm-output.jl, send-mail.jl,
 
4595
        shell.jl, tags.jl: changes for new file handling (mainly to
 
4596
        support file names relative to the current buffer; includes
 
4597
        replacing uses of the file-name-concat function by
 
4598
        expand-file-name, and ensuring that subprocesses get given
 
4599
        local-file-name's)
 
4600
 
 
4601
Mon Mar 23 09:29:30 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4602
 
 
4603
        * read-mail.jl, rm-misc.jl, rm-output.jl: was checking if
 
4604
        number of lines in buffer is zero to see if the file's
 
4605
        empty---there's always at least one line (doh!)
 
4606
 
 
4607
        * read-mail.jl (rm-append-inbox): set rm-current-msg-index to
 
4608
        zero if we're adding the first message in the folder
 
4609
 
 
4610
Fri Mar 20 13:49:28 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4611
 
 
4612
        * dired.jl (dired-print): changed the output format slightly
 
4613
        (dired-delete, dired-execute-end): don't confirm deletion one
 
4614
        file at a time; record all files to be deleted, then use
 
4615
        map-y-or-n-p
 
4616
 
 
4617
Thu Mar 19 09:55:21 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4618
 
 
4619
        * info.jl (info-prompt): fix validation function not
 
4620
        constructing the list of options
 
4621
        (info-menu): when searching for entered menu name, search case
 
4622
        insensitively
 
4623
 
 
4624
        * mail-headers.jl (mail-parse-atom): a few minor fixes to allow
 
4625
        null strings, comments and addresses to be recognised
 
4626
 
 
4627
Mon Mar 16 15:48:28 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4628
 
 
4629
        * read-mail.jl, rm-misc.jl, rm-output.jl: miscellaneous fixes
 
4630
        to make the message at the end of the file be handled better;
 
4631
        also changed how the \n\n separator is inserted between
 
4632
        messages
 
4633
 
 
4634
        * compiler.jl, disassembler.jl, bytecodes.jl (op-filter,
 
4635
        op-macrop, op-bytecodep): new opcodes
 
4636
 
 
4637
        * buffers.jl (save-some-buffers): rewritten using map-y-or-n-p
 
4638
        and filter
 
4639
 
 
4640
        * prompt.jl (map-y-or-n-p): new function, apply y-or-n-p to a
 
4641
        list of inputs
 
4642
 
 
4643
Sat Mar 14 16:06:25 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4644
 
 
4645
        * read-mail.jl (rm-summary-print-item): use the all-new and
 
4646
        enhanced format function to do all dirty work
 
4647
 
 
4648
        * summary.jl (summary-mark-item, summary-mark-delete): when
 
4649
        called interactively these now use the prefix arg to find how
 
4650
        many items to mark. Also s-mark-delete just calls s-mark-item
 
4651
 
 
4652
        * summary.jl (summary-assoc-item-function): new variable
 
4653
        (summary-unmark-all): new command, bound to "U"
 
4654
        (summary-execute): always ignore the `mark' symbol, also ensure
 
4655
        that any skipped symbols are preserved in the list of those
 
4656
        pending
 
4657
        (summary-mark-line, summary-map-marked-items): new functions
 
4658
        for working with marked items
 
4659
 
 
4660
        * dired.jl (dired-print): works with broken symlinks
 
4661
 
 
4662
Fri Mar 13 15:03:55 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4663
 
 
4664
        * summary.jl (summary-next-item, summary-previous-item): handle
 
4665
        cursor not being on an item gracefully
 
4666
 
 
4667
        * dired.jl (dired-functions, dired-cursor-column): add an
 
4668
        after-move vector to put the cursor in column
 
4669
        dired-cursor-column; by default the first character of the file
 
4670
        name
 
4671
 
 
4672
        * dired.jl, dired-hooks.jl: first attempt at a dired program
 
4673
        * init.jl: load dired-hooks
 
4674
 
 
4675
        * buffers.jl (find-file-hook): renamed as after-read-file-hook.
 
4676
        There's now a new hook find-file-hook that can take over almost
 
4677
        all find-file functionality
 
4678
        * rcs-hooks.jl: use after-read-file-hook, not find-file-hook
 
4679
 
 
4680
        * rcs.jl, rcs-hooks.jl (rcs-set-default-branch): new command,
 
4681
        bound to "Ctrl-x v b", sets the default branch of the file to
 
4682
        either the currently checked out revision, or the highest (with
 
4683
        a prefix arg)
 
4684
 
 
4685
Thu Mar 12 20:23:28 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4686
 
 
4687
        * mail-headers.jl (mail-quote-phrase, mail-format-address): now
 
4688
        does proper quoting of phrases when necessary
 
4689
 
 
4690
        * mail-dir-summary.jl (mds-alias-functions,
 
4691
        mds-address-functions): bind the mds-compose-mail-to-item
 
4692
        function to the select tag (i.e. pressing RET)
 
4693
        (mds-compose-mail-to-item): make ITEM an argument, but infer
 
4694
        the IN-CC arg from current-prefix-arg
 
4695
 
 
4696
Wed Mar 11 09:30:52 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4697
 
 
4698
        * maildefs.jl (mail-atom-re): fixed this to be [almost] exactly
 
4699
        what RFC-822 specifies. It's now defined exclusively instead of
 
4700
        inclusively (how foolish..)
 
4701
 
 
4702
        * mail-headers.jl (mail-parse-address): build the various
 
4703
        regexps each call, this works even when mail-atom-re changes
 
4704
        behind our back
 
4705
 
 
4706
Tue Mar 10 20:24:28 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4707
 
 
4708
        * shell.jl (shell-mode-kill, shell-start-process): when a
 
4709
        shell-process exists, check that it's in use before complaining
 
4710
 
 
4711
        * tags.jl (find-tag, visit-tags-file): new file, new commands.
 
4712
        Currently only supports etags generated TAGS files
 
4713
        loadkeys.jl (global-keymap): find-tag bound to M-.
 
4714
 
 
4715
Mon Mar  9 09:32:33 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4716
 
 
4717
        * read-mail.jl (rm-current-message-end): renamed as
 
4718
        rm-message-end, with the message as an optional arg
 
4719
        * rm-output.jl (rm-output, rm-output-message): some minor fixes
 
4720
 
 
4721
        * read-mail.jl (rm-summary-format, rm-summary-functions):
 
4722
        variables to define the structure of summary lines
 
4723
        (rm-saved-cache-tags): message cache tags whose contents should
 
4724
        persist across calls to the mail reader
 
4725
        (rm-kill-subject): new command (bound to `k') that deletes all
 
4726
        messages with the same subject as the current message
 
4727
        (rm-pipe-message): new command, calls shell-command-on-area for
 
4728
        the current message (bound to `|')
 
4729
        (rm-msg-): changed the format of the message structure, now
 
4730
        very little info is stored explicitly, everything parsed from
 
4731
        message headers is stored in the rm-msg-cache slot
 
4732
        (rm-cached-form): macro to execute a form whose value may
 
4733
        previously have been cached for the message in question
 
4734
        (rm-tag-cached-p, rm-invalidate-tag): cache utilities
 
4735
        (rm-current-message-end): no longer uses the position of the
 
4736
        next message, instead uses the new rm-msg-total-lines field
 
4737
        (rm-update-flags): as well as the X-Jade-Flags-v1 header, also
 
4738
        outputs X-Jade-Cache-v1 containing persistent items in the
 
4739
        message's cache
 
4740
        (rm-get-msg-header): wrapper for mail-get-header, but on an
 
4741
        arbitrary message
 
4742
        (rm-get-senders, rm-get-recipients, rm-get-subject,
 
4743
        rm-get-date-vector): wrappers to rm-get-msg-header, but working
 
4744
        through the cache
 
4745
        (rm-create-summary): call hook read-mail-summary-mode-hook
 
4746
        immediately before calling summary-mode
 
4747
        (rm-summary-print-item, rm-summary-format-item): functions for
 
4748
        formatting summary lines, the line is cached (non-persistently)
 
4749
        (rm-invalidate-summary): function to remove the cached summary
 
4750
        line
 
4751
 
 
4752
        * rm-mail-dir.jl (rm-mail-dir-scanner): use rm-get-recipients
 
4753
        and rm-get-senders when scanning for new addresses
 
4754
 
 
4755
        * mail-dir-summary.jl (mds-sort-list): command (bound to `s')
 
4756
        to sort the mail directory lists
 
4757
 
 
4758
        * summary.jl (after-marking): ensure that this function tag is
 
4759
        called _before_ the updating takes place
 
4760
        (summary-mark-delete): optional arg can specify item
 
4761
 
 
4762
        * maildefs.jl (mail-month-alist): alist of RFC-822 month
 
4763
        abbrevs to numeric indices (Jan=1, ...)
 
4764
 
 
4765
        * mail-headers.jl: new file, moved all of the functions that
 
4766
        deal with mail headers to this file
 
4767
        (mail-parse-address, mail-parse-date): new functions
 
4768
 
 
4769
        * modes.jl, prompt.jl, rectangle.jl: reversed order of NOCASEP
 
4770
        and START in calls to string-match
 
4771
 
 
4772
Fri Mar  6 10:51:58 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4773
 
 
4774
        * compiler.jl (comp-defuns, comp-defvars): these are always
 
4775
        used now, even if we're not compiling a file (mainly use
 
4776
        comp-defuns as a cache of previously seen functions)
 
4777
        (comp-compile-funcall): open-code funcall forms with op-call
 
4778
 
 
4779
        * sort.jl (sort): new file, new function, sorts a list
 
4780
 
 
4781
        * summary.jl (summary-mode): install a _copy_ of the functions
 
4782
        vector in the buffer, this allows for easier modification later
 
4783
 
 
4784
Wed Mar  4 14:02:40 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4785
 
 
4786
        * edit.jl (goto-mouse): new function, abstracted from
 
4787
        mouse-select, this finds the position and view under the mouse
 
4788
        and moves to them
 
4789
        (mouse-select-drag): when dragging words, find the start of the
 
4790
        word as well as the end
 
4791
 
 
4792
Tue Mar  3 11:53:40 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4793
 
 
4794
        * edit.jl (kill-ring-size): variable controlling size of kill
 
4795
        ring, set to 8 by default
 
4796
        (kill-string): examines relative cursor positions to decide
 
4797
        whether to prepend of append additive kills
 
4798
        (yank, yank-rectangle, yank-next): more or less totally
 
4799
        rewritten, may even work properly now? Uses a truly gruesome
 
4800
        hack to make undo take some of the load
 
4801
        (yank-to-mouse): uses mouse-select to find the mouse position,
 
4802
        this means that view switches work correctly
 
4803
 
 
4804
        * edit.jl (next-line, previous-line): new commands for moving
 
4805
        up and down lines, preserving the original column position
 
4806
        * loadkeys.jl: bind Ctrl-n and Down, and Ctrl-p and Up, to
 
4807
        next-line and previous-line respectively
 
4808
 
 
4809
        * windows.jl (open-window-on-display): calls set-current-window
 
4810
        on the new window, this allows things like "jadeclient -X -f
 
4811
        read-mail" to work as you would expect
 
4812
 
 
4813
        * buffer.jl (maybe-save-buffer): fixed
 
4814
 
 
4815
        * compiler.jl (comp-max-inline-depth): variable controlling
 
4816
        maximum nesting of open-coded functions
 
4817
        (comp-batch-compile): var controlling whether to print messages
 
4818
        to stdout, or to a buffer
 
4819
        (comp-inline-env): alist of functions to open-code
 
4820
        (comp-defuns): alist of seen functions, and the number of args
 
4821
        they require
 
4822
        (comp-defvars): list of defvar'd variables
 
4823
        (comp-bindings): lexical environment of current form
 
4824
        (comp-inline-depth): current inlining nesting
 
4825
        (comp-message, comp-error, comp-warning): rewritten
 
4826
        (comp-remember-fun, comp-remember-var): functions for recording
 
4827
        global variables and functions
 
4828
        (comp-test-varref, comp-test-funcall): functions to emit
 
4829
        warnings if something looks suspicious
 
4830
        (compile-file): initial-pass now scans for all top-level
 
4831
        definitions: defun, defsubst, defvar, and defconst.
 
4832
        (comp-get-lambda-vars): return the symbols that will be bound
 
4833
        by a particular lambda list
 
4834
        (comp-compile-inline-lambda): open-codes a function call, used
 
4835
        both for constant lambda expressions as the first element of
 
4836
        function applications, and for inlining defsubst declared
 
4837
        functions
 
4838
        (comp-compile-inline-function): defsubst puts this into the
 
4839
        compile-fun property of all inline functions
 
4840
 
 
4841
        * lisp.jl (defsubst): new macro, define an inline defun
 
4842
        * lisp-mode.jl: Add intentation hint for defsubst
 
4843
        * dump.jl: Support (untested as yet) for defsubst functions
 
4844
 
 
4845
        * add-log.jl, buffers.jl, compile.jl, debug.jl, dump.jl,
 
4846
        edit.jl, info.jl, isearch.jl, lisp.jl, prompt.jl, rcs.jl,
 
4847
        read-mail.jl, replace.jl, rm-misc.jl, tex-mode.jl,
 
4848
        texinfo-mode.jl, windows.jl: Minor fixes for bugs found via
 
4849
        compiler warning, mainly adding defvars for special variables
 
4850
 
 
4851
        * server.jl (server-find-file): chooses the view to open the
 
4852
        file in, rather than the window
 
4853
 
 
4854
Mon Mar  2 17:15:35 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4855
 
 
4856
        * windows.jl (open-window-on-display): new command, is to
 
4857
        make-window-on-display as open-window is to make-window
 
4858
 
 
4859
Sun Mar  1 11:29:09 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4860
 
 
4861
        * read-mail.jl (rm-summary-keymap): quote rm-followup
 
4862
 
 
4863
        * rm-misc.jl (rm-really-burst-message): call replace-last-match
 
4864
        instead of the non-existant replace-regexp
 
4865
        (rm-reply): only append msg-id to list of references when
 
4866
        making new list of references if msg-id is non-nil
 
4867
 
 
4868
Fri Feb 27 12:26:14 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4869
 
 
4870
        * edit.jl (goto-view-line): new function, bound to Meta-r.
 
4871
        Moves the cursor to the start of a line displayed in the
 
4872
        current view (similar to C-l, but moving the cursor, not the
 
4873
        display)
 
4874
        * loadkeys.jl: bound M-r as described above
 
4875
 
 
4876
        * edit.jl (backward-char, backward-tab, backward-line,
 
4877
        forward-word, backward-word, forward-paragraph,
 
4878
        backward-paragraph, forward-page, backward-page): removed the
 
4879
        hacky MOVE argument, replaced by the new @ interactive flag
 
4880
        (word-start, mouse-pos): added interactive declarations
 
4881
        (goto-start-of-buffer, goto-end-of-buffer): removed
 
4882
        (top-of-buffer, end-of-buffer): don't call goto and
 
4883
        set-auto-mark explicitly, just use the interactive flags
 
4884
        (save-excursion, save-restriction): use ,@ instead of ,
 
4885
        * loadkeys.jl (global-keymap): changed M-> and M-< bindings
 
4886
 
 
4887
Wed Feb 25 10:07:41 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4888
 
 
4889
        * rcs.jl (rcs-init-file): don't check out zero length files, if
 
4890
        the file actually is zero bytes in the repository we'll go into
 
4891
        an infinite loop
 
4892
 
 
4893
        * c-mode.jl, xc.jl: integrated the XC code with the standard C
 
4894
        mode. Of course, there's still a lot of improvements to be made
 
4895
        and bugs to be fixed..
 
4896
 
 
4897
        * keymap.jl (read-event): rewritten to use the minibuffer to
 
4898
        display the prompt, this means that the cursor also appears in
 
4899
        the minibuffer. Also, easier to handle cleanup
 
4900
        (describe-key): handle chained bindings better
 
4901
 
 
4902
        * rcs.jl (rcs-display-diffs): renamed as rcs-compare-revisions,
 
4903
        when called interactively with a prefix arg, the revisions will
 
4904
        be prompted for
 
4905
        (rcs-display-log-args): new variable, a list of arguments to
 
4906
        pass to rlog
 
4907
        (rcs-down-history, rcs-up-history): fixed these functions
 
4908
 
 
4909
Tue Feb 24 12:14:09 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4910
 
 
4911
        * rcs.jl (rcs-make-backup-files): variable controlling whether
 
4912
        or not to make backup files if the file's controlled by RCS
 
4913
        (rcs-only-lock-seen-files): variable controlling whether to
 
4914
        lock when checking out files whose revision is different from
 
4915
        the currently viewed revision
 
4916
        (rcs-revision): local variable containing the revision of the
 
4917
        buffer, or nil
 
4918
        (rcs-version): function renamed as rcs-find-version
 
4919
        (rcs-init-file): when called on a file that doesn't exist, or
 
4920
        is zero bytes in size, check out the current version
 
4921
        (rcs-verify-buffer, rcs-register-buffer, rcs-check-in-buffer,
 
4922
        rcs-lock-buffer, rcs-view-revision, rcs-revert-buffer): removed
 
4923
        the BUFFER argument, all now operate on the current buffer
 
4924
 
 
4925
        * read-mail.jl (rm-display-current-message): when highlighting
 
4926
        headers ensure that any continuation lines are also included
 
4927
 
 
4928
        * maildefs.jl (mail-display-summary): slightly changed
 
4929
        semantics -- set to `bottom' means display summary at bottom of
 
4930
        display, otherwise non-nil means display at top, nil means
 
4931
        don't display (as before)
 
4932
 
 
4933
        * read-mail.jl (rm-configure-views): new function to set up the
 
4934
        window configuration, two views mail and summary
 
4935
 
 
4936
        * summary.jl (summary-highlight-index): highlight to the end of
 
4937
        the line or the right edge of the display, whichever is greater
 
4938
 
 
4939
Sun Feb 22 15:51:24 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4940
 
 
4941
        * dump.jl: enable constant "put" forms to be dumped
 
4942
 
 
4943
Thu Feb 19 00:02:49 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4944
 
 
4945
        * lisp-mode.jl (lisp-forward-sexp, lisp-backward-sexp): treat
 
4946
        the three characters ` , @ as single quote (i.e. step over them
 
4947
        when they occur at the start of a sexp)
 
4948
 
 
4949
        * backquote.jl: don't use (` X), (, X) and (,@ X), the Lisp
 
4950
        reader now parses the usual syntax
 
4951
 
 
4952
        * edit.jl (save-restriction): changed to use normal backquote
 
4953
        syntax
 
4954
        (save-cursor): renamed save-excursion since it does actually
 
4955
        save the current buffer as well as the cursor, this is close
 
4956
        enough to the usual definition of save-excursion for me
 
4957
 
 
4958
        * rm-output.jl, text-mode.jl: change calls to save-cursor to
 
4959
        call save-excursion
 
4960
 
 
4961
Wed Feb 18 23:20:34 1998  John Harper  <john@dcs.warwick.ac.uk>
 
4962
 
 
4963
        * backquote.jl: new file, provides pseudo-backquote operation.
 
4964
        This file was taken from GNU Emacs 19.34 (originally by Rick
 
4965
        Sladkey), with very minor modifications
 
4966
 
 
4967
        * edit.jl (auto-mark): now made buffer-local, i.e. each buffer
 
4968
        gets its own auto-mark
 
4969
        (goto-mark): added optional arg DONT-SET-AUTO which can inhibit
 
4970
        setting the auto-mark before moving
 
4971
        (save-restriction, save-cursor): now implemented using
 
4972
        backquote, both have been improved, save-restriction now uses
 
4973
        marks, both check that the buffer is still resident before
 
4974
        reinstalling it
 
4975
        (mouse-pos): new function
 
4976
        (mouse-select): updated for line wrapping redisplay
 
4977
 
 
4978
        * buffers.jl (goto-mark, set-auto-mark,
 
4979
        swap-cursor-and-auto-mark): moved to edit.jl
 
4980
 
 
4981
        * bookmarks.jl (set-bookmark, goto-bookmark, kill-bookmark,
 
4982
        kill-all-bookmarks, list-bookmarks): new file, provides named
 
4983
        bookmarks
 
4984
 
 
4985
        * windows.jl (shrink-view-if-larger-than-buffer): handle line
 
4986
        wrapping redisplay
 
4987
 
 
4988
        * rm-misc.jl (rm-reply): accept null subject lines gracefully
 
4989
        (rm-forward): minor changes, also don't put empty lines between
 
4990
        the forwarded message and its delimiters
 
4991
 
 
4992
        * loadkeys.jl: removed mark-1, mark-2 and mark-3, and the key
 
4993
        bindings to set and goto them
 
4994
 
 
4995
        * isearch.jl (isearch-accept): call set-auto-mark to do it's
 
4996
        stuff instead of faking it
 
4997
 
 
4998
        * init.jl: load backquote on startup
 
4999
 
 
5000
        * help.jl (describe-function): updated for compiled bytecode
 
5001
        objects
 
5002
 
 
5003
        * fill.jl (unfill-paragraph): new command, changes all newlines
 
5004
        withing the current paragraph(s) to spaces
 
5005
 
 
5006
Mon Feb 16 20:29:06 1998  John Harper  <john@dcs.warwick.ac.uk>
 
5007
 
 
5008
        * replace.jl (replace-last-match): fixed; I was deleting the
 
5009
        matched text before expanding it (doh!)
 
5010
 
 
5011
Thu Feb 12 18:51:44 1998  John Harper  <john@dcs.warwick.ac.uk>
 
5012
 
 
5013
        * dump.jl (dump-batch): options --enable-inline-strings and
 
5014
        --disable-inline-strings
 
5015
        (dump-defvar, dump-defconst): set the property
 
5016
        variable-documentation not just documentation (which is wrong)
 
5017
 
 
5018
        * help.jl (documentation): fix for subr built-in variables
 
5019
 
 
5020
Sun Feb  8 14:46:12 1998  John Harper  <john@dcs.warwick.ac.uk>
 
5021
 
 
5022
        * windows.jl (scroll-next-view): new command, bound to
 
5023
        "Ctrl-Meta-v", scrolls the next view in the window
 
5024
        * loadkeys.jl (global-keymap): binding for above
 
5025
 
 
5026
        * rcs.jl (rcs-goto-buffer): display the RCS output buffer in a
 
5027
        separate view, and call shrink-view-if-larger-than-buffer
 
5028
 
 
5029
Thu Feb  5 17:32:21 1998  John Harper  <john@dcs.warwick.ac.uk>
 
5030
 
 
5031
        * windows.jl (other-view): new interpretation of the LINES
 
5032
        optional argument. If LINES is given then it always specifies
 
5033
        the size of the returned view (even if the view already
 
5034
        exists). If LINES is the symbol t, then the size of an already
 
5035
        existing view is never changed. If LINES is nil the size of the
 
5036
        returned view and the size of the current view are roughly
 
5037
        equal.
 
5038
        (enlarge-view, shrink-view): new functions to add or remove
 
5039
        lines from the current view, shrink-view just calls
 
5040
        enlarge-view with a negative argument
 
5041
        (shrink-view-if-larger-than-buffer): new function to reduce the
 
5042
        size of the current view to the number of lines in its buffer
 
5043
        * loadkeys.jl (ctrl-x-keymap): "Ctrl-x ^" bound to
 
5044
        enlarge-view, "Ctrl-x -" bound to shrink-view-if-larger...
 
5045
 
 
5046
        * read-mail.jl (rm-summary-select-item,
 
5047
        rm-summary-execute-end): both call other-view with LINES set to
 
5048
        t to prevent view resizing
 
5049
 
 
5050
        * shell.jl (shell-command-on-area): when displaying a new
 
5051
        buffer, shrink the view to the buffer's size
 
5052
 
 
5053
        * help.jl (help-wrapper): macro to replace the help-setup
 
5054
        function. This handles shrinking the view to the size of the
 
5055
        final buffer, and leaving the cursor in the original view, not
 
5056
        that of the help-buffer
 
5057
        * help.jl, keymap.jl: all calls to help-setup translated to use
 
5058
        help-wrapper
 
5059
 
 
5060
Wed Feb  4 13:00:03 1998  John Harper  <john@dcs.warwick.ac.uk>
 
5061
 
 
5062
        * read-mail.jl (rm-delete-current-message): was sometimes
 
5063
        leaving a blank line at the start of mailboxes
 
5064
 
 
5065
Mon Feb  2 00:04:01 1998  John Harper  <john@dcs.warwick.ac.uk>
 
5066
 
 
5067
        * buffers.jl (auto-save-function): use message to display the
 
5068
        message not format
 
5069
 
 
5070
Sat Jan 24 17:11:56 1998  John Harper  <john@dcs.warwick.ac.uk>
 
5071
 
 
5072
        * keymap.jl (print-keymap): was initialising the array index
 
5073
        variable one to high (and thereby accessing past the end of the
 
5074
        array)
 
5075
 
 
5076
        * buffers.jl, gzip.jl, read-mail.jl, send-mail.jl: updated for
 
5077
        new function names, write-buffer-contents, read-file-contents
 
5078
        and insert-file-contents.
 
5079
 
 
5080
        * buffers.jl (find-file): absorbs all functionality of
 
5081
        open-file, and gets a new optional arg DONT-ACTIVATE which can
 
5082
        be used to prevent the new buffer being installed in the
 
5083
        current view.
 
5084
        (open-file): deleted
 
5085
        (open-file-hook): renamed as find-file-hook
 
5086
 
 
5087
        * dump.jl: new file, provides dumping of compiled Lisp files to
 
5088
        an assembler file that can be assembled and linked into a
 
5089
        special "jaded" executable. Only forms that are ``constant''
 
5090
        are dumped, the rest get put in a FILE.jld file that cmd_load
 
5091
        knows when to look for
 
5092
 
 
5093
        * lisp.jl (autoload): when the executable contains dumped data,
 
5094
        don't add autoload definitions for any files that were dumped
 
5095
        (since they may overwrite the constant definitions), instead
 
5096
        load the file there and then (unless it's already been loaded)
 
5097
 
 
5098
        * add-log.jl, buffers.jl, find-autoloads, gdb.jl, rcs-hooks.jl,
 
5099
        rcs.jl, server.jl: use find-file instead of open-file
 
5100
 
 
5101
        * compiler.jl, gzip.jl, mail-dir.jl, rm-output.jl,
 
5102
        send-mail.jl: use open-file and close-file instead of open and
 
5103
        close
 
5104
 
 
5105
        * init.jl: now load autoloads.jl after loading windows.jl and
 
5106
        buffers.jl (I can't remember why!?) Also cleaned up how the
 
5107
        command-line-args are used, if a function is called via the -f
 
5108
        option it's guaranteed that the next argument will be the car
 
5109
        of the list
 
5110
 
 
5111
        * debugrc.jl: now catches all errors and prints them before
 
5112
        resuming operation. On catching end-of-stream though it quits
 
5113
 
 
5114
        * text-mode.jl (indented-text-mode): explicitly give
 
5115
        fill-prefix a buffer-local value, in case fill.jl hasn't made
 
5116
        it automatically buffer-local yet
 
5117
 
 
5118
Tue Jan 20 14:28:45 1998  John Harper  <john@dcs.warwick.ac.uk>
 
5119
 
 
5120
        * mail-dir-summary.jl (mds-compose-mail-to-item): command
 
5121
        (bound to "m") that composes a new mail message with the
 
5122
        current item as the recipient (by default in the To: field,
 
5123
        prefix arg means put it in the CC: header)
 
5124
 
 
5125
Mon Jan 19 18:22:52 1998  John Harper  <john@dcs.warwick.ac.uk>
 
5126
 
 
5127
        * compiler.jl (comp-compile-top-form): use defun and defmacro
 
5128
        again now they can handle bytecode objects
 
5129
 
 
5130
Sun Jan 18 21:59:02 1998  John Harper  <john@dcs.warwick.ac.uk>
 
5131
 
 
5132
        * add-log.jl (changelog-mode): explicitly create buffer-local
 
5133
        values of fill-prefix and fill-prefix-width, in case fill.jl is
 
5134
        not yet loaded
 
5135
 
 
5136
        * lisp-mode.jl (lisp-backward-sexp): if an expression is
 
5137
        preceded by #, move onto it.
 
5138
 
 
5139
        * disassembler.jl: only one entry point now: `disassemble',
 
5140
        this handles single forms and function/macro definitions.
 
5141
        Now by default it outputs to the buffer *disassembly*, and
 
5142
        heads the text with some information about the byte code
 
5143
 
 
5144
        * compiler.jl: modifications for byte code subrs. Instead of
 
5145
        compiling functions and macros to a lambda list, we compile
 
5146
        them to a byte code object. Also don't print newlines between
 
5147
        output forms
 
5148
 
 
5149
        * debug.jl: bind to print-escape, not print-escape-newlines
 
5150
 
 
5151
Thu Jan 15 12:38:46 1998  John Harper  <john@dcs.warwick.ac.uk>
 
5152
 
 
5153
        * edit.jl (paragraph-regexp): renamed as paragraph-separate,
 
5154
        this is now a regexp that matches the beginning of a line that
 
5155
        separates two paragraphs
 
5156
        (page-regexp): renamed as page-start
 
5157
        (forward-paragraph, backward-paragraph): totally rewritten,
 
5158
        these work properly now. As with all other forward- and
 
5159
        backward- functions, forward-paragraph find the character
 
5160
        following the end of the paragraph, backward-paragraph finds
 
5161
        the character at the start of the paragraph
 
5162
        (mark-paragraph): renamed as paragraph-edges, this function now
 
5163
        finds the beginning and end of the current COUNT paragraphs.
 
5164
        Marks them as a block when called interactively.
 
5165
        (transpose-paragraphs): does what you'd expect, bound to `Ctrl-x
 
5166
        Ctrl-Meta-t'.
 
5167
        (save-cursor): now uses a mark to store the position
 
5168
 
 
5169
        * fill.jl: renamed from fill-mode.jl, this file has been almost
 
5170
        completely rewritten
 
5171
        (fill-break-re): regexp defining where it's permissable to
 
5172
        break lines (by default: space, tab, newline or form-feed)
 
5173
        (fill-mode-active): what used to be fill-mode-p
 
5174
        (fill-prefix, fill-prefix-width): variable defining the fill
 
5175
        prefix of the buffer. A string or a function, see its
 
5176
        documentation for details.
 
5177
        (set-fill-prefix): new command (bound to `Ctrl-x .') that
 
5178
        saves from the start of the line to the cursor as the fill
 
5179
        prefix for the buffer
 
5180
        (fill-area): new function to fill an arbitrary region of text.
 
5181
        Handles a prefix at the beginning of each line
 
5182
        (fill-paragraph): now calls fill-area
 
5183
        (fill-check-line): rewritten (this is for auto-fill mode)
 
5184
        (center-line, center-paragraph): moved from text-mode.jl,
 
5185
        untested
 
5186
 
 
5187
        * tex-mode.jl (tex-mode): set paragraph-separate to include
 
5188
        "$$" as well as the normal blank lines. Also configures the
 
5189
        generic expression handling code to handle TeX syntax a bit
 
5190
        better ($..$ as delimiters, comments, don't have an escape
 
5191
        character.
 
5192
 
 
5193
        * text-mode.jl (text-mode-init): don't include underscores and
 
5194
        hyphens in word syntax.
 
5195
        (indented-text-mode): set fill-prefix to text-mode-fill-prefix
 
5196
        (text-mode-fill-prefix): function to handle fill prefix as
 
5197
        indentation of the previous line.
 
5198
        (center-line, center-paragraph): moved to fill.jl
 
5199
 
 
5200
        * loadkeys.jl (global-keymap): `Meta-h' bound to paragraph
 
5201
        edges
 
5202
        (ctrl-x-keymap): `Ctrl-x Ctrl-Meta-t' bound to
 
5203
        transpose-paragraphs, `Ctrl-x .' bound to set-fill-prefix
 
5204
        
 
5205
        * lisp.jl (function, return): new macros
 
5206
 
 
5207
        * summary.jl (summary-update-item): don't use save-cursor anymore,
 
5208
        now that uses marks it screws things up
 
5209
 
 
5210
        * compiler.jl (comp-inc-stack): rewritten as a macro, and given
 
5211
        an optional argument N.
 
5212
        (comp-compile-constant): checks if FORM is nil or t, and uses
 
5213
        the special opcodes if it is
 
5214
 
 
5215
        * add-log.jl, asm-mode.jl, buffer-menu.jl, buffers.jl,
 
5216
        c-mode.jl, edit.jl, gdb.jl, lisp-mode.jl, modes.jl,
 
5217
        read-mail.jl, rm-misc.jl, send-mail.jl, shell.jl, summary.jl,
 
5218
        tex-mode.jl, texinfo-mode.jl, text-mode.jl, xc.jl: change calls
 
5219
        to eval-hook to use call-hook instead Note that read-file-hook,
 
5220
        write-file-hook, insert-file-hook, auto-save-hook,
 
5221
        read-mail-delete-message-hook, mail-yank-hooks are all "or"
 
5222
        style hooks
 
5223
 
 
5224
Wed Jan 14 18:02:21 1998  John Harper  <john@dcs.warwick.ac.uk>
 
5225
 
 
5226
        * bytecodes.jl, disassembler.jl: opcode changes for new
 
5227
        exception handling
 
5228
        * compiler.jl (comp-get-label-addr): returns the pc of a
 
5229
        previously-set label
 
5230
        (comp-compile-catch, comp-compile-unwind-protect,
 
5231
        comp-compile-error-protect): modified for new exception
 
5232
        handling mechanisms. error-protect renamed as condition-case.
 
5233
 
 
5234
        * isearch.jl, lisp-mode.jl, read-mail.jl, xc.jl: changed
 
5235
        error-protect to condition-case
 
5236
 
 
5237
Tue Jan 13 00:03:25 1998  John Harper  <john@dcs.warwick.ac.uk>
 
5238
 
 
5239
        * add-log.jl (changelog-mode): new major mode
 
5240
        * modes.jl (mode-alist): added changelog-mode
 
5241
 
 
5242
Mon Jan 12 12:48:41 1998  John Harper  <john@dcs.warwick.ac.uk>
 
5243
 
 
5244
        * bytecodes.jl, compiler.jl, disassembler.jl (op-max, op-min):
 
5245
        new instructions
 
5246
 
 
5247
        * mail-dir.jl: new file, provides an email directory, both of
 
5248
        addresses to names, and aliases to addresses
 
5249
 
 
5250
        * mail-dir-summary.jl (list-mail-addresses, list-mail-aliases):
 
5251
        new file, uses summary-mode to display the email directory
 
5252
        information. Also allows interactive editing of the directory.
 
5253
 
 
5254
        * rm-mail-dir.jl: hooks to interface the mail-dir with
 
5255
        read-mail mode. Adds a new command `+' when reading mail that
 
5256
        allows the address of the sender to be added to the directory.
 
5257
        Also has facilities for doing this (semi-) automatically
 
5258
 
 
5259
        * sm-mail-dir.jl: hooks for send-mail mode. Two new commands,
 
5260
        `Ctrl-c a' inserts an address from the directory (in the style
 
5261
        defined by mail-address-style); `Ctrl-c Ctrl-a' inserts an
 
5262
        alias definition. Also has support (untested as yet) for
 
5263
        expanding aliases automatically prior to a message being sent
 
5264
 
 
5265
Sun Jan 11 13:21:55 1998  John Harper  <john@dcs.warwick.ac.uk>
 
5266
 
 
5267
        * maildefs.jl (mail-format-address): function to create a string
 
5268
        with name and address parts, formatted according to
 
5269
        mail-address-style.
 
5270
        * send-mail.jl (sendmail-send-message): use mail-format-address
 
5271
 
 
5272
        * lisp.jl (eval-after-load): new function, adds entries to
 
5273
        after-load-alist (see `load' command)
 
5274
 
 
5275
        * buffers.jl: reorganised this file so that similar functions
 
5276
        are grouped together
 
5277
        (save-and-quit): optional arg NO-QUERY, when t don't bother
 
5278
        asking whether any unsaved files should be saved.
 
5279
        (before-exit-hook): hook called by save-and-quit before exiting.
 
5280
        (split-line-indent): deleted this function
 
5281
        (goto-line): moved to edit.jl
 
5282
 
 
5283
        * prompt.jl (prompt-from-list): new optional arg DONT-VALIDATE;
 
5284
        when t no validation function is installed, and hence strings
 
5285
        that aren't in the supplied list may be entered.
 
5286
 
 
5287
Fri Jan  9 11:09:51 1998  John Harper  <john@dcs.warwick.ac.uk>
 
5288
 
 
5289
        * replace.jl (query-replace-rest): still invoked the
 
5290
        replace-regexp function which has been deleted.
 
5291
        (query-replace-keymap): bound Ctrl-g to quit
 
5292
        (replace-string, replace-all, query-replace): minor doc-string
 
5293
        changes
 
5294
 
 
5295
Thu Jan  8 15:48:32 1998  John Harper  <john@dcs.warwick.ac.uk>
 
5296
 
 
5297
        * compile.jl: general clean-up. Removed the compile-command,
 
5298
        compile-default-command dichotomy, instead compile-command is
 
5299
        left global (any attempt to set it in a "Local Variables:"
 
5300
        section will make a local value). Also made the grep command
 
5301
        prompt for the whole command string, not just the arguments;
 
5302
        grep-buffer has been made to work again.
 
5303
 
 
5304
Sun Jan  4 23:48:31 1998  John Harper  <john@dcs.warwick.ac.uk>
 
5305
 
 
5306
        * modes.jl (add-minor-mode): changed the optional arg NO-KEYMAP
 
5307
        to be the argument KEYMAP--the keymap of the minor mode being
 
5308
        installed.
 
5309
        (remove-minor-mode): new optional arg KEYMAP--the keymap to be
 
5310
        removed along with the minor mode
 
5311
        (minor-mode-keymap): this variable removed
 
5312
        (minor-mode-installed): renamed as minor-mode-installed-p
 
5313
 
 
5314
        * edit.jl (overwrite-mode): changes for new minor mode style,
 
5315
        also changed the variable overwrite-mode-p to
 
5316
        overwrite-mode-active
 
5317
 
 
5318
        * rcs.jl (rcs-init-file): updated for new minor mode
 
5319
        conventions
 
5320
 
 
5321
Sat Jan  3 21:03:48 1998  John Harper  <john@dcs.warwick.ac.uk>
 
5322
 
 
5323
        * keymaps.jl (km-print-list): when recognising
 
5324
        next-keymap-path being set, check that the thing it's being
 
5325
        set to is a list, before adding it to the list of maps to print
 
5326
 
 
5327
        * gdb.jl (gdb-output-filter, gdb-redisplay-frame): put the
 
5328
        cursor at the indentation position of the line, not at the end.
 
5329
 
 
5330
Sun Dec 21 02:51:44 1997  John Harper  <john@dcs.warwick.ac.uk>
 
5331
 
 
5332
        * buffers.jl, info.jl: fix timestamp usage (now a cons cell)
 
5333
 
 
5334
        * buffers.jl (revert-buffer): delete the auto save file
 
5335
        _before_ loading the original, to remove the annoying `auto
 
5336
        save is newer..' message
 
5337
 
 
5338
Sat Dec 20 00:16:47 1997  John Harper  <john@dcs.warwick.ac.uk>
 
5339
 
 
5340
        * bytecodes.jl, compiler.jl, disassembler.jl (op-pos,
 
5341
        op-posp): new opcodes, for `pos' and `posp' respectively
 
5342
 
 
5343
        * lisp.jl (pos-col, pos-line): new macros
 
5344
 
 
5345
        * buffers.jl (auto-save-file-newer-p, file-newer-than-file-p):
 
5346
        both use the new function time-later-p to compare time stamps
 
5347
 
 
5348
Wed Dec 17 12:34:26 1997  John Harper  <john@dcs.warwick.ac.uk>
 
5349
 
 
5350
        * modes.jl (init-mode): fixed '-*-X-*-' not being recognised
 
5351
 
 
5352
Tue Dec 16 12:01:45 1997  John Harper  <john@dcs.warwick.ac.uk>
 
5353
 
 
5354
        * lisp.jl (or, and): new macros, in place of the old special
 
5355
        forms of the same name
 
5356
        (prin1-to-string, read-from-string): both defined as macros
 
5357
        instead of functions
 
5358
 
 
5359
        * compiler.jl (comp-compile-cond): optimise case where the
 
5360
        last condition list has no action associated with it--just
 
5361
        fall out the bottom with the condition itself as the value
 
5362
        (comp-compile-or, comp-compile-and): deleted
 
5363
 
 
5364
Mon Dec 15 10:49:06 1997  John Harper  <john@dcs.warwick.ac.uk>
 
5365
 
 
5366
        * compiler.jl (comp-compile-while): now puts conditional branch
 
5367
        at the top of the loop to reduce the number of branches
 
5368
        executed, uses the new opcode jpt
 
5369
        * bytecodes.jl (op-jpt, op-jpn): new opcodes, jump-and-pop-if-t
 
5370
        and jump-and-pop-if-nil
 
5371
        * disassembler.jl (dis-opcode-vector): added entries for the
 
5372
        above two opcodes
 
5373
 
 
5374
Sun Dec 14 15:47:25 1997  John Harper  <john@dcs.warwick.ac.uk>
 
5375
 
 
5376
        * Makefile: now compiles the Lisp files in two runs; the first
 
5377
        uses the compiler to bootstrap itself, the second uses the
 
5378
        compiled compiler to build everything else
 
5379
        * compiler.jl (compile-compiler): small function to aid the
 
5380
        above process
 
5381
 
 
5382
        * rectangle.jl (insert-rectangle, copy-rectangle,
 
5383
        delete-rectangle, cut-rectangle): new file, replacing
 
5384
        src/editrect.c. The functions have slightly different names,
 
5385
        but not much has changed
 
5386
        * edit.jl: change all calls to X-rect to be X-rectangle
 
5387
 
 
5388
        * Many changes to almost all files, adapting to the changes
 
5389
        mentioned under the same date in src/ChangeLog. There's sure
 
5390
        to be some fallout still to be fixed.
 
5391
 
 
5392
        * edit.jl (backward-char, backward-tab, backward-line,
 
5393
        split-line, goto-start-of-buffer, goto-end-of-buffer,
 
5394
        top-of-buffer, bottom-of-buffer): new functions
 
5395
        (left-char, right-char): new macros
 
5396
 
 
5397
        * init.jl: now uses version-string when printing the startup
 
5398
        banner
 
5399
 
 
5400
        * replace.jl (replace-last-match): function that replaces the
 
5401
        most recently matched regular expression with the expansion of
 
5402
        its argument
 
5403
        (replace-string): replaces one string with another at a
 
5404
        specified position
 
5405
 
 
5406
Wed Nov 26 00:34:32 1997  John Harper  <john@dcs.warwick.ac.uk>
 
5407
 
 
5408
        * maildefs.jl (mail-default-headers): Added an "X-Mailer"
 
5409
        line
 
5410
        (mail-summary-lines): reduced to eight
 
5411
        (mail-parse-list, mail-parse-group, mail-parse-atom): the
 
5412
        second and third functions are new, split off from
 
5413
        mail-parse-list. It's now possible to read "groups" of
 
5414
        expressions---things not separated by commas. A new optional
 
5415
        arg to mail-parse-list controls this
 
5416
        (mail-get-header): option to read a list of groups, not a list
 
5417
        of comma-separated expressions
 
5418
        (mail-insert-list): option to suppress comma-separators
 
5419
 
 
5420
        * send-mail.jl (mail-setup): now puts the subject immediately
 
5421
        after the recipients. Also inserts the REFERENCES arg as a
 
5422
        list of groups
 
5423
 
 
5424
        * rm-misc.jl (rm-reply): read and generate the "References:"
 
5425
        header
 
5426
 
 
5427
Tue Nov 25 12:01:51 1997  John Harper  <john@dcs.warwick.ac.uk>
 
5428
 
 
5429
        * edit.jl (delete-blank-lines): rewritten to be compatible
 
5430
        with Emacs' command of the same name, remove the infinite
 
5431
        loop bug as well
 
5432
 
 
5433
        * summary.jl: new optional action `current'; if this is
 
5434
        provided by the back-end it should return the index of the
 
5435
        currently selected item
 
5436
 
 
5437
        * read-mail.jl (rm-display-current-message): new optional arg
 
5438
        no-summary-update; controls whether or not to update the
 
5439
        current summary item
 
5440
        (rm-delete-messages): fixed some bugs, also now tracks how
 
5441
        many messages have been moved through, so that when it has
 
5442
        finished the current message is as close as possible to the
 
5443
        current message on entry
 
5444
        (rm-summary-current-item, rm-summary-functions): provide a
 
5445
        `current' action
 
5446
 
 
5447
Fri Nov 21 12:27:10 1997  John Harper  <john@dcs.warwick.ac.uk>
 
5448
 
 
5449
        * compiler.jl: change '%' to use op-rem and 'mod' to use op-mod
 
5450
        (comp-compile-transitive-relation): new function to compile
 
5451
        >, >=, <, and <=. Needed since these functions can now take
 
5452
        more than two arguments 
 
5453
 
 
5454
        * disassembler.jl: Update for op-mod/op-rem stuff
 
5455
 
 
5456
        * compiler.jl (compile-file): emit a validate-byte-code form
 
5457
        * bytecodes.jl (bytecode-major, bytecode-minor): define
 
5458
        instruction set described
 
5459
 
 
5460
Thu Nov 20 19:07:24 1997  John Harper  <john@dcs.warwick.ac.uk>
 
5461
 
 
5462
        * info.jl (info-find-node, info-read-dir): fixed a couple of
 
5463
        minor bugs
 
5464
 
 
5465
Wed Nov 19 10:32:03 1997  John Harper  <john@dcs.warwick.ac.uk>
 
5466
 
 
5467
        * miranda.jl (miranda): new command; runs a Miranda session in
 
5468
        the other view, prompting for the script to use beforehand.
 
5469
 
 
5470
        * summary.jl (summary-add-pending-op): now dispatches the
 
5471
        function vector `after-marking'
 
5472
        (summary-mark-delete): doesn't dispatch `after-marking' since
 
5473
        the above change takes care of it
 
5474
        (summary-quit): only bury the current buffer if the function
 
5475
        vector `on-quit' doesn't exist; otherwise the `on-quit'
 
5476
        function must handle everything
 
5477
 
 
5478
        * buffer-summary.jl (bs-quit): new function, bound to the
 
5479
        summary's `on-quit' vector
 
5480
        (buffer-summary): don't use goto-buffer to install the
 
5481
        summary, to avoid the buffer-list being modified just use
 
5482
        set-current-buffer
 
5483
        (bs-select-item, bs-select-two-views): don't bury-buffer the
 
5484
        summary, just call bs-quit
 
5485
        (bs-mark-save): don't call summary-next-item, it's now called
 
5486
        indirectly by add-pending-op (and the `after-marking' vector)
 
5487
 
 
5488
        * buffers.jl (open-buffer): new optional arg ALWAYS-CREATE.
 
5489
        When t, an already-existing buffer is never returned.
 
5490
 
 
5491
        * compiler.jl (comp-warning): call add-buffer, if necessary,
 
5492
        to add the compiler output buffer to each views list of buffers
 
5493
        * gdb.jl, info.jl, rcs.jl, send-mail.jl, shell.jl: use
 
5494
        open-buffer not make-buffer to create buffers; ensuring they're
 
5495
        in the buffer-lists of all views.
 
5496
 
 
5497
        * prompt.jl (prompt-for-file): new optional arg HISTORY-LIST
 
5498
 
 
5499
        * maildefs.jl (prompt-for-folder): new function to prompt for
 
5500
        a mail folder; uses its own history list and fills in defaults
 
5501
        sensibly.
 
5502
 
 
5503
        * read-mail.jl (rm-next-undeleted-message,
 
5504
        rm-previous-undeleted-message): commands to remove some of the
 
5505
        overloading on rm-next-message and rm-previous-message
 
5506
        (rm-next-message, rm-previous-message): the arg
 
5507
        DONT-SKIP-DELETED has had the DONT- removed, and therefore the
 
5508
        meaning reversed
 
5509
        (rm-keymap): bind "s" to rm-output
 
5510
        (read-mail-folder): use prompt-for-folder
 
5511
        (rm-command-with-folder, rm-command-in-folder): macros to call
 
5512
        a command in the folder buffer, used by rm-summary-keymap
 
5513
 
 
5514
        * rm-output.jl (rm-output): new command to save the next COUNT
 
5515
        messages to another folder. Special action is taken if the
 
5516
        destination folder is currently in a buffer; even more special
 
5517
        action occurs if this buffer has read-mail-mode as its major
 
5518
        mode (the new messages are added to the buffer's list of
 
5519
        message structures). This hasn't really been tested yet.
 
5520
        
 
5521
Sun Nov 16 01:27:32 1997  John Harper  <john@dcs.warwick.ac.uk>
 
5522
 
 
5523
        * edit.jl (mouse-select): now handles views properly, i.e.
 
5524
        activate the view that the mouse was clicked in
 
5525
 
 
5526
Thu Nov  6 15:37:27 1997  John Harper  <john@dcs.warwick.ac.uk>
 
5527
 
 
5528
        * print.jl (print-buffer, print-buffer-to-file,
 
5529
        print-buffer-to-printer, print-area, print-area-to-file,
 
5530
        print-area-to-printer): commands to print text, by default
 
5531
        using the GNU `enscript' command.
 
5532
 
 
5533
        * prompt.jl (prompt-for-string): START arg wasn't being used
 
5534
        correctly.
 
5535
 
 
5536
Mon Nov  3 01:33:51 1997  John Harper  <john@dcs.warwick.ac.uk>
 
5537
 
 
5538
        * edit.jl (mouse-select, mouse-double-select,
 
5539
        mouse-select-drag): implement dragged selections
 
5540
        * (global-keymap): new left mouse button bindings for
 
5541
        drag-select
 
5542
 
 
5543
        * edit.jl (mark-block): does no extra refresh, it's not
 
5544
        necessary anymore
 
5545
        (mark-page): forces non-rectangular blocks
 
5546
 
 
5547
Sun Nov  2 11:01:25 1997  John Harper  <john@dcs.warwick.ac.uk>
 
5548
 
 
5549
        * read-mail.jl (rm-delete-messages): if we can't display the
 
5550
        old current message; try to display the last message in the
 
5551
        folder
 
5552
 
 
5553
Sat Nov  1 12:54:05 1997  John Harper  <john@dcs.warwick.ac.uk>
 
5554
 
 
5555
        * read-mail.jl (rm-build-message-struct, rm-update-flags):
 
5556
        flags are now remembered via the "X-Jade-Flags-v1" header
 
5557
        (rm-display-current-message): looks for a header matching the
 
5558
        `mail-highlighted-headers' regexp, and highlights it
 
5559
        * maildefs.jl (mail-highlighted-headers): regexp matching
 
5560
        headers to highlight
 
5561
        * rm-misc.jl (rm-reply, rm-forward): the callback functions to
 
5562
        set the necessary flags work properly now
 
5563
 
 
5564
        * shell.jl (shell-command-on-area): new arg DELETEP which is
 
5565
        passed to call-process-area. When INSERTP and DELETEP are both
 
5566
        t output replaces the input region
 
5567
        (shell-command-on-buffer): new command, similar to
 
5568
        shell-command-on-area, but over the whole buffer.
 
5569
 
 
5570
        * loadkeys.jl (ctrl-x-keymap): bound `shell-command-on-buffer'
 
5571
        to `Ctrl-x |'
 
5572
 
 
5573
Tue Oct 28 15:09:17 1997  John Harper  <john@dcs.warwick.ac.uk>
 
5574
 
 
5575
        * shell.jl (shell-command, shell-comand-on-area): commands to
 
5576
        run shell commands in a user-friendly manner
 
5577
 
 
5578
        * loadkeys.jl (global-keymap): `M-!' and `M-|' bound to
 
5579
        shell-command and shell-command-on-area respectively
 
5580
 
 
5581
        * rcs.jl (rcs-command): now directs error output to the *rcs*
 
5582
        buffer no matter what the OUTPUT-STREAM parameter is
 
5583
 
 
5584
Sun Oct 19 19:20:49 1997  John Harper  <john@dcs.warwick.ac.uk>
 
5585
 
 
5586
        * loadkeys.jl: Bound sensible commands to "Insert" 
 
5587
        (overwrite-mode), "Home", "End", "Prior" and "Next".
 
5588
 
 
5589
        * tex-mode.jl: `Ctrl-c Ctrl-c m' now inserts "\emph{}", fixed
 
5590
        some bugs in tex-insert-end and tex-insert-braces
 
5591
 
 
5592
Thu Oct 16 15:33:35 1997  John Harper  <john@dcs.warwick.ac.uk>
 
5593
 
 
5594
        * rm-misc.jl (rm-reply): now looks for a "Reply-To" header as
 
5595
        it should, and ensures that the initialised message is marked
 
5596
        as being unmodifed
 
5597
 
 
5598
Wed Oct 15 23:15:43 1997  John Harper  <john@dcs.warwick.ac.uk>
 
5599
 
 
5600
        * send-mail.jl (mail-setup, send-mail-signature): now
 
5601
        inserts "\n-- \n" before signatures as it should do, instead
 
5602
        of "\n--\n"
 
5603
 
 
5604
        * read-mail.jl (rm-enforce-msg-separator): now assumes that
 
5605
        the cursor is at the position to insert at
 
5606
 
 
5607
        * rm-misc.jl (rm-burst-message, rm-really-burst-message): now
 
5608
        works properly, and handles both RFC-934 _and_ RFC-1153
 
5609
        encapsulation schemes; seems to work ok..
 
5610
 
 
5611
        * prompt.jl (prompt-validate-from-list): ensures that the
 
5612
        symbol `t' is returned, not just any old t value
 
5613
 
 
5614
Tue Oct 14 00:53:27 1997  John Harper  <john@dcs.warwick.ac.uk>
 
5615
 
 
5616
        * summary.jl (summary-update-item): now calls after-update
 
5617
        function after doing its stuff
 
5618
 
 
5619
        * rm-misc.jl (rm-forward): now quotes "^-" properly
 
5620
        (rm-burst-message): new command to unburst digests, should
 
5621
        also handle sensibly forwarded messages
 
5622
 
 
5623
        * read-mail.jl (rm-enforce-msg-separator): new function to
 
5624
        ensure "\n\n" exists when inserting new messages. Minor other
 
5625
        fixes.
 
5626
 
 
5627
Sun Oct 12 21:06:30 1997  John Harper  <john@dcs.warwick.ac.uk>
 
5628
 
 
5629
        * modes.jl (generic-forward-exp, generic-backward-exp): two
 
5630
        functions to provide expression handling for many common types
 
5631
        of code. Installed by default in mode-forward-exp and
 
5632
        mode-backward-exp.
 
5633
 
 
5634
Wed Oct  8 11:56:17 1997  John Harper  <john@dcs.warwick.ac.uk>
 
5635
 
 
5636
        * tex-mode.jl: initial revision; a simple mode for editing TeX
 
5637
        and LaTeX. Derived from texinfo.jl with the bonus that
 
5638
        tex-insert-braces works properly with negative args.
 
5639
 
 
5640
        * modes.jl (mode-alist): added tex-mode, some other minor
 
5641
        changes
 
5642
 
 
5643
Tue Oct  7 12:10:23 1997  John Harper  <john@dcs.warwick.ac.uk>
 
5644
 
 
5645
        * rcs.jl (rcs-initial-comment): new variable controlling if an
 
5646
        initial description of a registered file is prompted for
 
5647
        (rcs-command): new optional argument OUTPUT-STREAM
 
5648
        (rcs-register-buffer, rcs-check-in-buffer, rcs-lock-buffer):
 
5649
        now allow the revision number to be specified (by typing 
 
5650
        `Ctrl-u' before calling the command.)
 
5651
        (rcs-view-revision): new command to display an arbitrary
 
5652
        revision of the current buffer. Since stdout and stderr are
 
5653
        linked when getting output from processes, this includes some
 
5654
        unsightly header information.. (for now)
 
5655
 
 
5656
        * rcs-hooks.jl (rcs-keymap): moved here from rcs.jl so that the
 
5657
        `Ctrl-x v ...' bindings work from startup
 
5658
 
 
5659
        * loadkeys.jl (global-keymap): `Ctrl-l' now bound to
 
5660
        center-display not centre-display
 
5661
 
 
5662
        * prompt.jl (prompt-list-fold-case): new variable controlling
 
5663
        whether or not prompt-complete-from-list and
 
5664
        prompt-validate-from-list ignore case
 
5665
 
 
5666
        * info.jl (info-find-node): set info-file-name here; this
 
5667
        seems to fix the weird history problem.
 
5668
        (info-prompt): let prompt-list-fold-case be t
 
5669
 
 
5670
Sun Oct  5 22:04:56 1997  John Harper  <john@dcs.warwick.ac.uk>
 
5671
 
 
5672
        * read-mail.jl (rm-after-marking): won't move to the next
 
5673
        message when it doesn't exist
 
5674
 
 
5675
Fri Oct  3 11:28:34 1997  John Harper  <john@dcs.warwick.ac.uk>
 
5676
 
 
5677
        * rm-misc.jl (rm-default-yank-function): fixed [yet] again,
 
5678
        hopefully it now deletes only _blank_ trailing lines.. 
 
5679
 
 
5680
Thu Oct  2 00:06:54 1997  John Harper  <john@dcs.warwick.ac.uk>
 
5681
 
 
5682
        * read-mail.jl: don't search for mail-message-start in
 
5683
        case-folding mode, this isn't a good idea
 
5684
 
 
5685
        * prompt.jl (prompt-complete-symbol): now regexp-quote's the
 
5686
        word to be completed, this allows things like "let*" to work
 
5687
        properly.
 
5688
 
 
5689
Wed Oct  1 17:04:00 1997  John Harper  <john@dcs.warwick.ac.uk>
 
5690
 
 
5691
        * summary.jl (summary-highlight-index): allows the
 
5692
        highlighting of a single item (via the block marks).
 
5693
        (after-update): new action
 
5694
 
 
5695
        * read-mail.jl: uses summary-highlight to mark the current
 
5696
        message, not the "->" insertion.
 
5697
 
 
5698
        * send-mail.jl (send-mail-signature): now works properly when
 
5699
        a signature already exists
 
5700
 
 
5701
        * read-mail.jl (rm-coalesce-visible-headers): when working on
 
5702
        the headers end the restriction at the blank line following
 
5703
        the last header. This prevents us hitting the end of the
 
5704
        buffer when parsing the last header
 
5705
 
 
5706
        * rm-misc.jl (rm-default-yank-function): now properly deletes
 
5707
        all trailing blank lines (not just empty lines)
 
5708
 
 
5709
        * summary.jl: added some more actions, after-marking,
 
5710
        after-move, and on-quit. Removed the summary-after-execute
 
5711
        hook since it was redundant.
 
5712
 
 
5713
        * buffer-summary.jl: defines an after-marking action that
 
5714
        simply moves to the next item in the display
 
5715
 
 
5716
        * read-mail.jl: uses the after-marking action to move to the
 
5717
        next message. If the current message was the one just marked,
 
5718
        and rm-move-after-deleting is t select this message as well.
 
5719
        Unfortunately this stops Ctrl-d moving backwards, have to fix
 
5720
        this at some point
 
5721
 
 
5722
Sun Sep 28 13:58:33 1997  John Harper  <john@dcs.warwick.ac.uk>
 
5723
 
 
5724
        * buffer-summary.jl (bs-mark-save): advances to next item
 
5725
        explicitly      
 
5726
 
 
5727
        * info.jl (info-prompt): don't define prompt-word-regexps,
 
5728
        they should be okay by default
 
5729
 
 
5730
        * prompt.jl: now does history recall, three history lists by
 
5731
        default: files, symbols and others. Also some more support
 
5732
        for default values, stored at history item -1. Alsi fixed M-?
 
5733
        command, and bound it to M-/ as well
 
5734
 
 
5735
        * summary.jl (summary-unmark-item): new optional arg
 
5736
        MOVE-AFTER-P; whether or not to move to the next item
 
5737
        (summary-update-item): don't trash cursor position anymore
 
5738
        (summary-mark-delete): move to the next item explicitly
 
5739
 
 
5740
        * read-mail.jl (rm-message-count): variable storing the number
 
5741
        of messages in the folder
 
5742
        (rm-keymap): fixed `d' and `Ctrl-d' bindings, added `N' and 
 
5743
        `P' bindings for moving through deleted messages, added `u'
 
5744
        binding to unmark deleted messages
 
5745
        (rm-last-folder): stores name of last read folder. Used when
 
5746
        prompting for folders by read-mail-folder
 
5747
        (rm-fix-status-info): function to set the minor-mode-names
 
5748
        list to something describing the status of the current
 
5749
        message; this isn't always updated when it should be yet
 
5750
        (rm-summary-keymap): added `N' and `P' bindings, removed `d', 
 
5751
        `DEL' and `Ctrl-d' bindings; handled by summary.jl
 
5752
 
 
5753
        * send-mail.jl (mail-setup): promoted to be a command. Now
 
5754
        displays the mail buffer while asking if it's okay to lose its
 
5755
        contents. Calls the text-mode-hook to enable auto-fill or
 
5756
        whatever
 
5757
        * loadkeys.jl (ctrl-x-keymap): bound `x' to mail-setup
 
5758
 
 
5759
        * rcs.jl (rcs-callback-with-description): Made the mode line
 
5760
        description a lot shorter so that it fits in the window. Also
 
5761
        invoke text-mode
 
5762
 
 
5763
        * rm-misc.jl (rm-forward): new argument ALL-HEADERS-P, takes
 
5764
        it value from the raw prefix argument. Controls whether all
 
5765
        headers or just those that are visible are included. Also now
 
5766
        leaves the cursor in the ^To: field when no recipients are
 
5767
        specified
 
5768
 
 
5769
        * read-mail.jl (rm-summary-keymap): calls rm-forward with the
 
5770
        prefix-arg
 
5771
 
 
5772
        * fill-mode.jl (fill-paragraph): first attempt at this. Not
 
5773
        particularly robust yet
 
5774
        * loadkeys.jl (global-keymap): `Meta-q' bound to
 
5775
        fill-paragraph
 
5776
 
 
5777
        * edit.jl (forward-word): doesn't trash its POS argument
 
5778
        anymore.
 
5779
 
 
5780
Sat Sep 27 17:19:54 1997  John Harper  <john@dcs.warwick.ac.uk>
 
5781
 
 
5782
        * debug.jl (debug-entry): let print-escape-newlines be t
 
5783
 
 
5784
        * edit.jl (capitalize-word): works more intuitively when COUNT
 
5785
        is positive now.
 
5786
 
 
5787
Fri Sep 26 15:21:52 1997  John Harper  <john@dcs.warwick.ac.uk>
 
5788
 
 
5789
        * read-mail.jl (rm-auto-next-message, rm-move-after-deleting):
 
5790
        two new configuration variables
 
5791
        (rm-next-page, rm-previous-page): commands for paging
 
5792
        (rm-mark-message-deletion): switches message afterwards
 
5793
 
 
5794
        * read-mail.jl: Added reply, followup and forward commands.
 
5795
        Removed the rm-always-with-X macros; now includes each command
 
5796
        in the summary buffer that needs to run in the folder with
 
5797
        rm-with-folder.
 
5798
        (rm-in-folder): new macro
 
5799
        (rm-summary-buffer): don't set mildly-special buffer, instead
 
5800
        destroy-buffer it manually on exit
 
5801
 
 
5802
        * send-mail.jl (mail-setup): Many fixes. Changed a lot of mail-
 
5803
        symbol prefixes to send-mail-.
 
5804
        Removed mail-buffer-in-use variable, inferred from whether the
 
5805
        buffer is read-only
 
5806
 
 
5807
        * maildefs.jl (mail-yank-hooks, mail-reply-prefix,
 
5808
        mail-fill-column): new variables
 
5809
        (mail-parse-list): returns the list in the order the items
 
5810
        actually occur
 
5811
        (mail-find-header): can optionally specify the position to start
 
5812
        searching
 
5813
        (mail-get-header): when LISTP is t, will look for multiple headers
 
5814
        of the same name
 
5815
        (mail-insert-list): inserts a list of strings (separated by
 
5816
        commas), filled to the mail-fill-column. New lines are indented a
 
5817
        la RFC-822
 
5818
        
 
5819
        * edit.jl (forward-page,backward-page): don't move the cursor
 
5820
        by default; only when optional third arg is non-nil
 
5821
        (capitalize-word): now has a COUNT arg -- which word to change
 
5822
        (transpose-lines): new command
 
5823
        (delete-blank-lines): new command
 
5824
 
 
5825
        * loadkeys.jl (ctrl-x-keymap): "Ctrl-o" bound to
 
5826
        delete-blank-lines, "Ctrl-t" bound to transpose-lines
 
5827
        
 
5828
Thu Sep 25 11:25:22 1997  John Harper  <john@dcs.warwick.ac.uk>
 
5829
 
 
5830
        * buffers.jl (fix-local-variables): fixed
 
5831
 
 
5832
        * maildefs.jl, read-mail.jl: try to be more intelligent when
 
5833
        locating files
 
5834
 
 
5835
Wed Sep 24 11:13:28 1997  John Harper  <john@dcs.warwick.ac.uk>
 
5836
 
 
5837
        * maildefs.jl (mail-default-folder, mail-spool-files,
 
5838
        movemail-program): new configuration variables. Note that
 
5839
        movemail-program defaults to undefined.
 
5840
        (mail-find-inboxes): returns a list of possible spool files
 
5841
        for a particular mail folder
 
5842
 
 
5843
        * read-mail.jl: lots of new features; including the ability to
 
5844
        read mail from spool files :-)  Lots of other things that were
 
5845
        needed before the thing is usable.
 
5846
 
 
5847
        * buffers.jl (goto-buffer): new optional argument VIEW,
 
5848
        defining the view whose buffer should be changed
 
5849
 
 
5850
        * add-log.jl (add-change-log-entry): now surrounds the mail
 
5851
        address with angled brackets
 
5852
 
 
5853
        * edit.jl (after-kill-hook): called after changing the
 
5854
        kill-ring. Used under X11 to install the current-kill as the
 
5855
        primary selection
 
5856
        (yank): won't yank the current selection if it's owned by Jade
 
5857
 
 
5858
Tue Sep 23 10:38:29 1997  John Harper  (john@dcs.warwick.ac.uk)
 
5859
 
 
5860
        * edit.jl (page-regexp, forward-page, backward-page,
 
5861
        mark-page, restrict-to-page): page handling code. Pages are
 
5862
        delimited by ^L
 
5863
        * loadkeys.jl (ctrl-x-keymap): `Ctrl-p' is mark-page,
 
5864
        `[' is backward-page, ']' is forward-page
 
5865
 
 
5866
        * edit.jl (save-cursor): macro to preserve the current cursor
 
5867
        position
 
5868
        * lisp-mode.jl: added indentation hint for save-cursor
 
5869
 
 
5870
        * add-log.jl (change-log-address, change-log-name): removed
 
5871
        these two variables, they're replaced by user-mail-address and
 
5872
        (user-full-name) respectively
 
5873
 
 
5874
Mon Sep 22 17:56:06 1997  John Harper  (john@gem.dcs.warwick.ac.uk)
 
5875
 
 
5876
        * loadkeys.jl (ctrl-x-n-keymap): new keymap, hooked to `Ctrl-x
 
5877
        n'. Three commands "n" restrict to the current block, "w"
 
5878
        unrestrict, and "p" restrict to a page (unimplemented) 
 
5879
 
 
5880
Mon Sep 22 00:13:43 1997  John Harper  (john@orcrist)
 
5881
 
 
5882
        * read-mail.jl: changed the way summaries are used. Now a
 
5883
        summary buffer always exists for each mail buffer, but maybe
 
5884
        not displayed. Also unified some of the summary/mail buffer
 
5885
        commands
 
5886
 
 
5887
        * maildefs.jl (mail-display-summary): new option; displays a
 
5888
        summary as soon as a mail buffer is entered
 
5889
 
 
5890
        * compiler.jl: Correctly handles macros defined after they're
 
5891
        used. The compiler now does two passes through each file it
 
5892
        compiles --- the first builds the macro environment, the
 
5893
        second does the actual compilation
 
5894
 
 
5895
Sun Sep 21 00:34:39 1997  John Harper  (john@orcrist)
 
5896
 
 
5897
        * send-mail.jl: new file provides means to send mail messages.
 
5898
        Currently only via sendmail(8) but hooks allow customisation.
 
5899
 
 
5900
        * maildefs.jl: central definition of all mail configuration
 
5901
        variables, both for reading and sending, and a few mail
 
5902
        utility functions. I've tried to keep the configuration
 
5903
        options as compatible with Emacs as possible.
 
5904
 
 
5905
        * read-mail.jl: moved configuration parameters to maildefs.jl
 
5906
        Also added a `replied' attribute to the message structure;
 
5907
        it's set when the message contains a ^Replied: header; how can
 
5908
        this be made compatible with VM?
 
5909
 
 
5910
        * windows.jl (close-view, close-other-views): make sure that
 
5911
        the minibuffer view isn't closed
 
5912
 
 
5913
        * edit.jl (save-restriction): new macro, preserves the current
 
5914
        buffer's restriction
 
5915
        * lisp-mode.jl: Added indentation hint for save-restriction
 
5916
 
 
5917
Sat Sep 20 00:22:52 1997  John Harper  (john@orcrist)
 
5918
 
 
5919
        * c-mode.jl, lisp-mode.jl: minor changes for new regexp code
 
5920
 
 
5921
        * gdb.jl (gdb-redisplay-frame): doesn't redisplay the frame in
 
5922
        the current view when it's a buffer running gdb; uses the
 
5923
        other-view instead
 
5924
 
 
5925
        * read-mail.jl (mail-header-name): this variable is defined in
 
5926
        both read-mail.jl and send-mail.jl
 
5927
 
 
5928
        * read-mail.jl: a couple of fixes for the new regexp code,
 
5929
        also fixed the rm-summary-update-current function
 
5930
 
 
5931
Fri Sep 19 00:49:09 1997  John Harper  <john@dcs.warwick.ac.uk>
 
5932
 
 
5933
        * info.jl: a couple of minor fixes for the new regexp code
 
5934
 
 
5935
Wed Sep 17 00:33:16 1997  John Harper  (john@orcrist)
 
5936
 
 
5937
        * read-mail.jl: added support for deleting messages; also now
 
5938
        handles an empty folder
 
5939
 
 
5940
        * summary.jl: added `execute-start' and `execute-end' function
 
5941
        vectors that surround the guts of summary-execute.
 
5942
 
 
5943
Tue Sep 16 01:55:37 1997  John Harper  (john@orcrist)
 
5944
 
 
5945
        * summary.jl: removed `n' and `p' keybindings, leave them for
 
5946
        customisation by the deriving summary modes
 
5947
        (summary-update, summary-update-item): print the newline
 
5948
        themselves now.
 
5949
        * summary.jl: various other stuff
 
5950
 
 
5951
        * read-mail.jl: works a lot better now, the summary buffer
 
5952
        works properly, tracking the mail buffer..
 
5953
 
 
5954
        * buffer-summary.jl (bs-print-item): doesn't print newline
 
5955
 
 
5956
Sun Sep 14 00:21:53 1997  John Harper  (john@orcrist)
 
5957
 
 
5958
        * windows.jl (other-view): new optional argument LINES, how
 
5959
        many lines to give a newly created view. Does nothing in the
 
5960
        case that the other view already exists.
 
5961
 
 
5962
        * buffer-summary.jl (buffer-summary-mode): new function that
 
5963
        only contains a documentation string, for the mode.
 
5964
 
 
5965
Sat Sep 13 18:25:13 1997  John Harper  (john@orcrist)
 
5966
 
 
5967
        * summary.jl: new file provides a generic menu system.
 
5968
        Somewhat like the buffer-menu, it can be customised to suit
 
5969
        whatever is being represented underneath. For example it will
 
5970
        be able to provide the summary view of the mail reader
 
5971
 
 
5972
        * buffer-summary.jl: new file, replicates what buffer-menu.jl
 
5973
        does, but using summary.jl for all the complex stuff.
 
5974
 
 
5975
        * read-mail.jl: first go at a basic mail reader. Currently it
 
5976
        just parsers BSD style mailboxes, doesn't manipulate them at
 
5977
        all.
 
5978
 
 
5979
Sun Sep  7 16:17:39 1997  John Harper  (john@orcrist)
 
5980
 
 
5981
        * buffers.jl (read-file-into-buffer): now clears the buffer
 
5982
        before doing anything
 
5983
 
 
5984
        * info.jl: much updated. Now uses the restriction feature,
 
5985
        which in turn allows compressed files to be read. May also be
 
5986
        less brain-damaged on Info files without tag tables.
 
5987
 
 
5988
Sat Sep  6 13:34:23 1997  John Harper  (john@orcrist)
 
5989
 
 
5990
        * gdb.jl: Now displays source code in a different view of the
 
5991
        current window; not a different window
 
5992
 
 
5993
        * rcs.jl (rcs-command): when rereading the buffer try to
 
5994
        preserve the current cursor position (in a particularly
 
5995
        non-bullet-proof manner)
 
5996
 
 
5997
        * rcs.jl (rcs-down-history, rcs-up-history): functions (bound
 
5998
        to Meta-p and Meta-n respectively) used in the RCS callback
 
5999
        buffer to recall the previously entered descriptions
 
6000
 
 
6001
        * All files are now under RCS control except for autoload.jl
 
6002
 
 
6003
Fri Sep  5 20:22:12 1997  John Harper  (john@orcrist)
 
6004
 
 
6005
        * rcs.jl (rcs-version): fixed version numbers containing zeros
 
6006
        not being recognized (regexp [1-9] not [0-9]!)
 
6007
 
 
6008
        * rcs-hooks.jl: new file, contains the function installed in
 
6009
        the open-file-hook to recognize RCS controlled files. This
 
6010
        loads rcs.jl when the first is found.
 
6011
 
 
6012
        * rcs.jl (rcs-file-p): moved to rcs-hooks.jl
 
6013
 
 
6014
Thu Sep  4 00:13:55 1997  John Harper  (john@orcrist)
 
6015
 
 
6016
        * ring.jl (set-ring-head): was setting the next free position,
 
6017
        not the previously accessed slot
 
6018
 
 
6019
        * prompt.jl: now displays messages in the status line after
 
6020
        the title message
 
6021
 
 
6022
Wed Sep  3 20:39:34 1997  John Harper  (john@orcrist)
 
6023
 
 
6024
        * bytecodes.jl, compiler.jl, disassembler.jl: Moved all byte
 
6025
        code definitions from the compiler to bytecodes.jl. Also many
 
6026
        of the opcodes have been renamed. op-setq and op-set
 
6027
        (previously op-vsetc and op-vset) now leave the set value on
 
6028
        the stack.
 
6029
 
 
6030
Tue Sep  2 23:43:49 1997  John Harper  (john@orcrist)
 
6031
 
 
6032
        * compiler.jl: uses the new bind-{buffer,view,window} opcodes
 
6033
        when compiling with-{buffer,view,window} special forms.
 
6034
        Also modified compilation of unwind-protect to use the new
 
6035
        binding mechanism
 
6036
 
 
6037
        * disassembler.jl: updated for new opcodes
 
6038
 
 
6039
Mon Sep  1 21:54:24 1997  John Harper  (john@orcrist)
 
6040
 
 
6041
        * lisp.jl (if, when, unless): new macros, defined in terms of
 
6042
        cond.
 
6043
 
 
6044
        * compiler.jl: fine-tuned the comp-compile-cond function; this
 
6045
        now produces exactly the same code as the specialist if, when
 
6046
        and unless functions. This is why they're now macros
 
6047
 
 
6048
Sun Aug 31 10:49:45 1997  John Harper  (john@orcrist)
 
6049
 
 
6050
        * buffer-menu.jl: now understands multiple views; defines
 
6051
        the commands `1', `2', and `o' accordingly. Still displays
 
6052
        itself in the current view, no matter what that is.
 
6053
 
 
6054
        * compiler.jl (op-viewp, op-swap-view, op-current-view,
 
6055
        op-swap2): new opcodes. `swap2' makes the top of the stack
 
6056
        be beneath the next two stack values. `swap-buffer' now
 
6057
        takes two arguments the buffer and the current view, and
 
6058
        leaves them both on the stack. This is incompatible with
 
6059
        old code!
 
6060
        (comp-top-level-compiled): added `with-view' to the list
 
6061
        (comp-compile-with-form): meta function to compile
 
6062
        `with-window' and `with-view'.
 
6063
        (comp-compile-with-buffer): uses new form of swap-buffer.
 
6064
 
 
6065
        * disassembler.jl (dis-opcode-vector): added new instructions.
 
6066
 
 
6067
        * edit.jl (forward-word, word-start): tries to handle hitting
 
6068
        the start of the buffer more gracefully.
 
6069
 
 
6070
        * edit.jl (x11-block-status-function): new function, added to
 
6071
        the `block-status-hook' when in X11. It sets up the current
 
6072
        block as the current primary selection when necessary.
 
6073
 
 
6074
        * edit.jl (kill-ring, kill-string, killed-string): the new
 
6075
        variable `kill-ring' is a ring-buffer (see ring.jl) holding
 
6076
        killed text.
 
6077
        (yank, yank-rectangle, yank-next): now use the kill-ring; 
 
6078
        `yank-next' allows the contents of the kill-ring to be cycled
 
6079
        through (but not with rectangles yet).
 
6080
 
 
6081
        * help.jl (help-setup): switches to the `other-view'
 
6082
 
 
6083
        * info.jl (info-prompt): uses the new minibuffer `prompt'
 
6084
        instead of `prompt2'
 
6085
 
 
6086
        * init.jl: '(load prompt)' removed; the prompt functions are
 
6087
        now autoloaded.
 
6088
 
 
6089
        * lisp-mode.jl: added hints for `with-view'
 
6090
 
 
6091
        * loadkeys.jl ("Meta-y"): bound to `yank-next'
 
6092
        ("Ctrl-x 0", "Ctrl-x 1", "Ctrl-x 2", "Ctrl-x o"): now work
 
6093
        with views
 
6094
        ("Ctrl-x 4 ..."): now works in the `other-view'
 
6095
 
 
6096
        * ring.jl (make-ring, ring-capacity, ring-size, add-to-ring,
 
6097
        get-from-ring, set-ring-head): New file, provides a ring-
 
6098
        buffer type.
 
6099
 
 
6100
        * prompt.jl (prompt2): renamed as `prompt' and made to work
 
6101
        with in the minibuffer view. Completions in a separate view.
 
6102
        (prompt, prompt-for-directory, prompt-for-buffer,
 
6103
        prompt-for-symbol, prompt-for-lisp, prompt-for-function,
 
6104
        prompt-for-variable, prompt-for-command, prompt-for-string,
 
6105
        prompt-for-number): all autoloaded now
 
6106
 
 
6107
        * prompt.jl (yes-or-no-p, y-or-n-p): moved here from ask.jl,
 
6108
        both autoloaded anyway so makes no difference.
 
6109
 
 
6110
        * windows.jl (open-view, close-view, close-other-views,
 
6111
        in-other-view, goto-other-view, other-view, goto-next-view):
 
6112
        new functions to provide some level of interface to views.
 
6113
        open and close should be used instead of make and destroy.
 
6114
        (add-buffer, remove-buffer): now cycles through every view in
 
6115
        every window, since `buffer-list' is now view-local.
 
6116
 
 
6117
Mon Aug 25 00:42:24 1997  John Harper  (john@orcrist)
 
6118
 
 
6119
        * rcs.jl: New file providing a particularly simple interface
 
6120
        to RCS. Do (require 'rcs) to install it.
 
6121
 
 
6122
Sun Aug 24 20:43:30 1997  John Harper  (john@orcrist)
 
6123
 
 
6124
        * buffers.jl (read-file-into-buffer): new function, split off
 
6125
        from open file to handle initialisation when loading a file.
 
6126
        (revert-buffer): calls read-file-into-buffer
 
6127
 
 
6128
        * edit.jl (toggle-buffer-read-only): new function
 
6129
        (toggle-read-only-function): new hook
 
6130
 
 
6131
        * buffers.jl (maybe-save-buffer): new function, asks whether or
 
6132
        not to save a buffer if it contains unsaved modifications.
 
6133
 
 
6134
Sun Jun 25 12:01:01 1995  John Harper  (jsh@orcrist)
 
6135
 
 
6136
        * gzip.jl (gzip-uncompress): Checks if a file exists before
 
6137
        attempting to expand it -- this allows non-existent files with
 
6138
        names ending in .gz or .Z to be edited properly.
 
6139
 
 
6140
Tue Mar 21 16:33:04 1995  John Harper  (jsh@orcrist)
 
6141
 
 
6142
        * help.jl (help-prompt-keymap): Got rid of the incorrect
 
6143
        `Ctrl-i' binding.
 
6144
 
 
6145
Mon Mar 20 19:29:01 1995  John Harper  (jsh@orcrist)
 
6146
 
 
6147
        * text-mode.jl (word-count-area): New function to count the
 
6148
        number of words in a region of text, bound to `Meta-=' in the
 
6149
        text-mode-keymap.
 
6150
 
 
6151
Fri Jan 13 18:07:56 1995  John Harper  (jsh@orcrist)
 
6152
 
 
6153
        * info.jl (info-parse-menu-line): Now ignores spaces between
 
6154
        the name of the node and the `::' in a menu line.
 
6155
 
 
6156
Thu Jan 12 16:19:21 1995  John Harper  (jsh@orcrist)
 
6157
 
 
6158
        * c-mode.jl (c-backslash-area): General fixes.
 
6159
 
 
6160
        * edit.jl (just-spaces): Doesn't miss the space at the
 
6161
        beginning of a line anymore.
 
6162
 
 
6163
Wed Jan 11 14:42:58 1995  John Harper  (jsh@orcrist)
 
6164
 
 
6165
        * info.jl (info-visit-file): Command to prompt for a file then
 
6166
        load it into Info.
 
6167
 
 
6168
Thu Jan  5 00:03:37 1995  John Harper  (jsh@orcrist)
 
6169
 
 
6170
        * loadkeys.jl: `Ctrl-x Ctrl-q' is now the key sequence to
 
6171
        toggle read-only-ness
 
6172
 
 
6173
Mon Jan  2 15:32:32 1995  John Harper  (jsh@orcrist)
 
6174
 
 
6175
        * loadmenus.jl: Changed the ``Print Keymap'' item to call the
 
6176
        describe-keymap command
 
6177
 
 
6178
Tue Dec 27 15:08:14 1994  John Harper  (jsh@orcrist)
 
6179
 
 
6180
        * xc.jl (xc-indent-pos): Doesn't recognize do_... as a `do while'
 
6181
        statement anymore.      
 
6182
 
 
6183
Sat Dec 24 15:10:38 1994  John Harper  (jsh@orcrist)
 
6184
 
 
6185
        * c-mode.jl (c-backward-exp): Hopefully I've fixed the infinite
 
6186
        loop which used to happen when the start of some files was reached.
 
6187
 
 
6188
Wed Dec 21 00:18:28 1994  John Harper  (jsh@orcrist)
 
6189
 
 
6190
        * c-mode.jl (c-backward-exp): Doesn't get confused when it
 
6191
        finds punctuation in the middle of an expression.
 
6192
 
 
6193
        * buffer-menu.jl: The key table now binds `LMB-Off' to `nop' to
 
6194
        avoid it getting caught by the unbound-key-hook thing (and
 
6195
        being really annoying). 
 
6196
 
 
6197
        * edit.jl (nop): New command, does absolutely nothing.
 
6198
 
 
6199
Tue Dec 13 20:56:11 1994  John Harper  (jsh@orcrist)
 
6200
 
 
6201
        * c-mode.jl (c-mode-ctrl-c-keymap): Now this binds `c-backslash-area'
 
6202
        to `Ctrl-c Ctrl-\' as it should have done before
 
6203
 
 
6204
Sat Nov 26 18:00:55 1994  John Harper  (jsh@orcrist)
 
6205
 
 
6206
        * fill-mode.jl: `RET' is also made to check whether the line
 
6207
        needs to be broken, as well as `SPC'.
 
6208
 
 
6209
        * xc.jl (xc-indent-pos): Fixed the regexp used to match goto
 
6210
        labels, it now checks the character after the colon to be
 
6211
        white space of eol.
 
6212
 
 
6213
Sun Nov 13 19:49:54 1994  John Harper  (jsh@orcrist)
 
6214
 
 
6215
        * compile.jl (compile): unless an argument is given the command is
 
6216
        *always* prompted for. Whatever the command is that is eventually
 
6217
        executed is, it's stored in the `compile-command' variable.
 
6218
 
 
6219
        * buffers.jl (revert-buffer): doesn't ask if you want to revert
 
6220
        to the most recent auto-save; use `recover-file' to do that!
 
6221
 
 
6222
        * xc.jl (xc-indent-pos): now indents `{' properly (I fixed a
 
6223
        couple of typos -- `exp-ind' for `exp-pos')
 
6224
 
 
6225
Tue Nov  8 09:22:19 1994  John Harper  (jsh@orcrist)
 
6226
 
 
6227
        * lisp.jl (require): this can now be called interactively --
 
6228
        it prompts for its first argument (the feature symbol).
 
6229
 
 
6230
Mon Nov  7 17:47:43 1994  John Harper  (jsh@orcrist)
 
6231
 
 
6232
        * buffer-menu.jl (bm-list-buffers): now prints the mode name
 
6233
        properly; i.e. chains through the list of minor mode names,
 
6234
        printing each in turn.
 
6235
 
 
6236
        * fill-mode.jl (fill-mode-spc): takes account of the glyph
 
6237
        position of the cursor, not the char position. Also the hack to
 
6238
        auto indent indented-text-mode buffers properly works even if
 
6239
        the previous line wasn't indented at all.
 
6240
 
 
6241
Thu Oct 27 23:24:42 1994  John Harper  (jsh@orcrist)
 
6242
 
 
6243
        * asm-mode.jl: removed the `.' command. Also `RET' deletes
 
6244
        any trailing TAB or SPC characters from the end of the line it
 
6245
        breaks.
 
6246
 
 
6247
Wed Oct 26 17:51:47 1994  John Harper  (jsh@orcrist)
 
6248
 
 
6249
        * gdb.jl (gdb): changed `kill-all-buffer-variables' to
 
6250
        `kill-all-local-variables' -- now it works!
 
6251
 
 
6252
Sun Oct 23 20:03:38 1994  John Harper  (jsh@orcrist)
 
6253
 
 
6254
        * compiler.jl: added some warnings
 
6255
 
 
6256
        * compiler.jl (compile-function): New command
 
6257
        
 
6258
Fri Oct  7 15:12:56 1994  John Harper  (jsh@orcrist)
 
6259
 
 
6260
        * Version 3.2 released
 
6261
 
 
6262
Wed Oct  5 16:31:39 1994  John Harper  (jsh@orcrist)
 
6263
 
 
6264
        * edit.jl (transpose-items): now this actually does what it
 
6265
        says it does
 
6266
 
 
6267
Tue Oct  4 00:33:37 1994  John Harper  (jsh@orcrist)
 
6268
 
 
6269
        * buffers.jl (fix-local-variables): new function; scans the
 
6270
        end of a newly-loaded buffer for Emacs-style local variable
 
6271
        definitions. Called from `open-file'.
 
6272
 
 
6273
Mon Oct  3 17:59:44 1994  John Harper  (jsh@orcrist)
 
6274
 
 
6275
        * buffers.jl (recover-file): sets the `modified' flag
 
6276
 
 
6277
Sun Oct  2 15:17:26 1994  John Harper  (jsh@orcrist)
 
6278
 
 
6279
        * fill-mode.jl (fill-mode-spc): this now auto-indents the newly
 
6280
        created line when the major mode is indented-text-mode.
 
6281
 
 
6282
        * xc.jl: many improvements.
 
6283
 
 
6284
        * c-mode.jl (c-forward-exp, c-backward-exp): cpp lines don't
 
6285
        count as an expression anymore
 
6286
 
 
6287
Sat Oct  1 16:41:42 1994  John Harper  (jsh@orcrist)
 
6288
 
 
6289
        * modes.jl: expression functions now use word syntax if expressions
 
6290
        aren't defined in the buffer
 
6291
 
 
6292
Wed Sep 21 15:12:26 1994  John Harper  (jsh@orcrist)
 
6293
 
 
6294
        * c-mode.jl (c-forward-exp, c-backward-exp): minor fixups plus
 
6295
        cpp lines are now recognised
 
6296
 
 
6297
Tue Sep 13 20:55:14 1994  John Harper  (jsh@orcrist)
 
6298
 
 
6299
        * shell.jl: now sets the termcap environment variables correctly
 
6300
 
 
6301
Sat Sep  3 15:23:02 1994  John Harper  (jsh@orcrist)
 
6302
 
 
6303
        * gzip.jl (gzip-insert-file): this hooks into `insert-file-hook'
 
6304
        so inserted files can be decompressed
 
6305
 
 
6306
        * buffers.jl (insert-file): now calls the hook `insert-file-hook'
 
6307
 
 
6308
        * buffers.jl, gzip.jl: the read-file-hook now has to set the
 
6309
        modtime of the buffer
 
6310
 
 
6311
Thu Sep  1 20:12:18 1994  John Harper  (jsh@orcrist)
 
6312
 
 
6313
        * ask.jl (y-or-n-p): now resets its values in the proper buffer
 
6314
 
 
6315
Wed Aug 31 20:26:36 1994  John Harper  (jsh@orcrist)
 
6316
 
 
6317
        * buffer-menu.jl (bm-select-buffer): now burys the buffer-menu
 
6318
        buffer
 
6319
 
 
6320
        * loadkeys.jl, windows.jl (window-closed-hook): since this was
 
6321
        renamed (from `close-gadget-hook') it's a good time to put it
 
6322
        in a better place
 
6323
 
 
6324
Tue Aug 30 11:05:09 1994  John Harper  (jsh@orcrist)
 
6325
 
 
6326
        * help.jl (describe-function): now prints a macro's arguments
 
6327
        properly
 
6328
 
 
6329
Tue Aug 23 17:51:19 1994  John Harper  (jsh@orcrist)
 
6330
 
 
6331
        * disassembler.jl (disassemble-fun): now knows about interactive
 
6332
        declarations
 
6333
 
 
6334
        * compiler.jl, disassembler.jl (op-logxor-2): new opcode
 
6335
 
 
6336
Thu Aug 18 16:29:30 1994  John Harper  (jsh@orcrist)
 
6337
 
 
6338
        * shell.jl (shell-start-process): the default output stream
 
6339
        is now `(BUFFER . t)' not `BUFFER'
 
6340
 
 
6341
        * edit.jl (set-variable, show-variable): both removed;
 
6342
        `set' can be called interactively and `describe-variable'
 
6343
        can be used to see the value of a variable
 
6344
 
 
6345
Tue Jul 19 16:56:46 1994  John Harper  (jsh@orcrist)
 
6346
 
 
6347
        * lisp.jl (eval-and-print): interactive version of eval
 
6348
 
 
6349
Mon Jul 18 21:45:29 1994  John Harper  (jsh@orcrist)
 
6350
 
 
6351
        * edit.jl (transpose-items): new function to swap items of text
 
6352
        defined by two functions
 
6353
        (transpose-words, transpose-chars): commands using the above; bound
 
6354
        to Meta-t and Ctrl-t respectively
 
6355
        * modes.jl (transpose-exps): new command, bound to Ctrl-Meta-t
 
6356
 
 
6357
Sun Jul 17 13:04:59 1994  John Harper  (jsh@orcrist)
 
6358
 
 
6359
        * edit.jl (just-one-space): renamed to `just-spaces', now
 
6360
        takes a COUNT arg; the number of spaces wanted.
 
6361
        (no-spaces): new command, bound to Meta-\
 
6362
 
 
6363
Sat Jul 16 17:47:57 1994  John Harper  (jsh@orcrist)
 
6364
 
 
6365
        * compiler.jl (compile-file): only selected top-level forms are
 
6366
        compiled -- those which may(?) benefit from it
 
6367
 
 
6368
Wed Jul 13 18:19:35 1994  John Harper  (jsh@orcrist)
 
6369
 
 
6370
        * compiler.jl: added op-eql
 
6371
 
 
6372
Tue Jul 12 13:06:14 1994  John Harper  (jsh@orcrist)
 
6373
 
 
6374
        * compiler.jl: many more opcodes added.
 
6375
        * disassembler.jl: synchronised with the above additions
 
6376
 
 
6377
Mon Jul 11 19:50:48 1994  John Harper  (jsh@orcrist)
 
6378
 
 
6379
        * c-mode.jl (c-backward-exp): better method of skipping comments;
 
6380
        doesn't loop for ever anymore :-)
 
6381
 
 
6382
        * edit.jl: many more commands use the prefix argument now
 
6383
        (kill-line): can now kill backwards and uses the prefix-arg to
 
6384
        specify the number of lines to kill
 
6385
 
 
6386
Wed Jul  6 19:45:35 1994  John Harper  (jsh@orcrist)
 
6387
 
 
6388
        * buffers.jl (buffer-list): removed, now in ../src/windows.c
 
6389
 
 
6390
Tue Jul  5 18:19:40 1994  John Harper  (jsh@orcrist)
 
6391
 
 
6392
        * ask.jl (ask-yes-or-no): renamed as `yes-or-no-p'
 
6393
        (ask-y-or-n): renamed as `y-or-n-p'
 
6394
 
 
6395
Sun Jul  3 15:18:44 1994  John Harper  (jsh@orcrist)
 
6396
 
 
6397
        * debug.jl: now uses a (semi-) proper mode `debug-mode'
 
6398
 
 
6399
        * help.jl (describe-function): now prints the name of the function
 
6400
        and, if it's not a subr, its argument specification
 
6401
 
 
6402
        * compiler.jl: defconst forms handled (more) properly now
 
6403
 
 
6404
        * All occurrences of `file-length', `file-name', `set-file-name',
 
6405
        `file-start', `goto-file-start', `file-end' and `goto-file-end'
 
6406
        have been replaced by their new names (see ../src/ChangeLog for
 
6407
        more details).
 
6408
 
 
6409
Fri Jul  1 17:52:41 1994  John Harper  (jsh@orcrist)
 
6410
 
 
6411
        * prompt.jl (prompt-file-exclude): under UNIX the `.' and `..'
 
6412
        directory nodes are ignored
 
6413
 
 
6414
        * info.jl (info-find-node): uses the `inhibit-read-only' variable
 
6415
        instead of manually calling `set-buffer-read-only' all the
 
6416
        time.
 
6417
 
 
6418
Thu Jun 30 21:59:20 1994  John Harper  (jsh@orcrist)
 
6419
 
 
6420
        * buffer-menu.jl: new file
 
6421
 
 
6422
Tue Jun 28 15:03:20 1994  John Harper  (jsh@orcrist)
 
6423
 
 
6424
        * help.jl (describe-variable): takes the value of the variable from
 
6425
        the buffer which was active when this command is called.
 
6426
 
 
6427
        * shell.jl (shell-whole-line): new option; shell-send-line sends the
 
6428
        *whole* line.
 
6429
 
 
6430
Fri Jun 24 21:46:46 1994  John Harper  (jsh@orcrist)
 
6431
 
 
6432
        * xc.jl: experimental indentation functions for C mode; these
 
6433
        give much better indentation but are a tad slower...
 
6434
 
 
6435
Thu Jun 23 20:33:41 1994  John Harper  (jsh@orcrist)
 
6436
 
 
6437
        * All packages which define esc keymaps have had them put into
 
6438
        their main keymaps (with each key Meta-qualified).
 
6439
 
 
6440
Tue Jun 21 22:12:29 1994  John Harper  (jsh@orcrist)
 
6441
 
 
6442
        * prompt.jl: attempts to only record undo information for user edits,
 
6443
        not completions
 
6444
 
 
6445
Sat Jun 18 18:21:31 1994  John Harper  (jsh@orcrist)
 
6446
 
 
6447
        * texinfo-mode.jl (texinfo-insert-@end): now tries to find
 
6448
        what is being ended.
 
6449
 
 
6450
        * c-mode.jl (c-forward-exp, c-backward-exp): expression handling
 
6451
 
 
6452
        * modes.jl (mode-indent-function, indent-area): hooks for
 
6453
        doing indentation
 
6454
        (mode-forward-exp, mode-backward-exp, forward-exp, backward-exp,
 
6455
        kill-exp, backward-kill-exp): expression handling
 
6456
 
 
6457
Thu Jun 16 21:22:56 1994  John Harper  (jsh@orcrist)
 
6458
 
 
6459
        * buffers.jl (mildly-special-buffer): controls whether kill-buffer
 
6460
        will actually nuke a `special' buffer
 
6461
 
 
6462
Wed Jun 15 19:46:55 1994  John Harper  (jsh@orcrist)
 
6463
 
 
6464
        * gdb.jl: interface to gdb; highlights the source of the current
 
6465
        frame plus some other nice stuff
 
6466
 
 
6467
Mon Jun 13 01:09:09 1994  John Harper  (jsh@orcrist)
 
6468
 
 
6469
        * shell.jl: simple interface to a shell subprocess
 
6470
 
 
6471
        * modes.jl (init-mode): tries -*-X-*- before mode-name
 
6472
 
 
6473
        * gzip.jl: provides editing of gzipped files
 
6474
 
 
6475
Sun Jun 12 02:15:18 1994  John Harper  (jsh@orcrist)
 
6476
 
 
6477
        * buffers.jl (write-file-hook): order of arguments changed (to
 
6478
        match read-file-hook
 
6479
        (backup-file): new function
 
6480
 
 
6481
        * loadkeys.jl (user-keymap): keymap hung from `Ctrl-c', intended
 
6482
        for user bindings
 
6483
 
 
6484
Fri Jun 10 13:58:20 1994  John Harper  (jsh@orcrist)
 
6485
 
 
6486
        * latin-1.jl: This now looks like a minor mode. The function
 
6487
        `latin-1-mode' toggles the Latin-1 character in *all* buffers.
 
6488
 
 
6489
        * lisp-mode.jl: functions to eval Lisp in a buffer now use sexps
 
6490
        not paragraphs
 
6491
        (lisp-forward-sexp, lisp-backward-sexp): now understands #<...>
 
6492
        style expressions
 
6493
        (lisp-indent-pos): now notices when there are no previous sexps to
 
6494
        indent against.
 
6495
 
 
6496
        * keymap.jl (read-event): new function
 
6497
        (describe-key): interactive command to print the command that is
 
6498
        bound to an entered key sequence
 
6499
 
 
6500
Thu Jun  9 22:13:27 1994  John Harper  (jsh@orcrist)
 
6501
 
 
6502
        * info.jl: where regexps are made with concat the necessary strings
 
6503
        are regexp-quote'd
 
6504
 
 
6505
        * keymap.jl (print-keymap): function to print the contents of
 
6506
        a list of keymaps
 
6507
 
 
6508
Wed Jun  8 20:55:36 1994  John Harper  (jsh@orcrist)
 
6509
 
 
6510
        * help.jl (describe-variable): now works with unbound variables
 
6511
 
 
6512
Tue Jun  7 20:32:18 1994  John Harper  (jsh@orcrist)
 
6513
 
 
6514
        * edit.jl (just-one-space): new command, bound to `ESC SPC'
 
6515
 
 
6516
Mon Jun  6 19:55:58 1994  John Harper  (jsh@orcrist)
 
6517
 
 
6518
        * buffers.jl (write-file): new backup option `else-backup-by-copying'
 
6519
        when it's unsafe to rename the file it's copied instead
 
6520
 
 
6521
        * add-log.jl (log-in-same-day-p): changed `substr' to `substring'
 
6522
 
 
6523
        * init.jl: uses file-concat to make the .jaderc file's path
 
6524
 
 
6525
        * modes.jl (mode-alist): fixed some case confusion
 
6526
 
 
6527
Sun Jun  5 17:53:59 1994  John Harper  (jsh@orcrist)
 
6528
 
 
6529
        * lisp-mode.jl (lisp-indent-pos): rewritten, now this works properly!
 
6530
 
 
6531
Sat Jun  4 19:29:19 1994  John Harper  (jsh@orcrist)
 
6532
 
 
6533
        * edit.jl (yank-to-mouse): new function, bound to the middle mouse
 
6534
        button
 
6535
 
 
6536
        * buffers.jl (bury-buffer): new function
 
6537
 
 
6538
Fri Jun  3 20:41:00 1994  John Harper  (jsh@orcrist)
 
6539
 
 
6540
        * edit.jl (kill-string, kill-area, copy-area-as-kill): new functions
 
6541
        plus some other functions have been rewritten/created to use them
 
6542
        (yank, yank-rectangle): new functions
 
6543
 
 
6544
        * info.jl (info-read-dir): deletes all lines before the first `file:'
 
6545
        line
 
6546
 
 
6547
Thu Jun  2 12:29:41 1994  John Harper  (jsh@orcrist)
 
6548
 
 
6549
        * Version 3.1 released
 
6550
 
 
6551
Wed Jun  1 21:04:22 1994  John Harper  (jsh@orcrist)
 
6552
 
 
6553
        * info.jl (info-read-dir): discards the preamble of all supplementary
 
6554
        dir files
 
6555
 
 
6556
Wed May 25 20:52:31 1994  John Harper  (jsh@orcrist)
 
6557
 
 
6558
        * lisp-mode.jl (lisp-forward-sexp, lisp-backward-sexp): new functions
 
6559
 
 
6560
Tue May 24 21:25:34 1994  John Harper  (jsh@orcrist)
 
6561
 
 
6562
        * disassembler.jl: now uses a lookup table to get the names of
 
6563
        opcodes.
 
6564
 
 
6565
        * compiler.jl (compile-file): Compiles top-level forms now (except
 
6566
        for defX and require). Also writes a header to the compiled file.
 
6567
 
 
6568
        * compiler.jl: Changed the names of the conditional jump instructions
 
6569
 
 
6570
Mon May 23 19:16:16 1994  John Harper  (jsh@orcrist)
 
6571
 
 
6572
        * texinfo-mode.jl: TAB inserts spaces now
 
6573
 
 
6574
        * Changed lots of stuff to cope with coordinate origin at (0,0)
 
6575
 
 
6576
        * info.jl (info-locate-file): now tries the lowercase version of
 
6577
        the filename
 
6578
 
 
6579
Sun May 22 23:20:19 1994  John Harper  (jsh@orcrist)
 
6580
 
 
6581
        * info.jl (info-read-dir): function to read all `dir' files in the
 
6582
        info-directory-list
 
6583
 
 
6584
Sat May 21 19:57:51 1994  John Harper  (jsh@orcrist)
 
6585
 
 
6586
        * windows.jl (in-new-window, goto-new-window): new
 
6587
 
 
6588
        * modes.jl: support for inserting comments
 
6589
 
 
6590
        * help.jl (describe-mode): works now
 
6591
 
 
6592
        * asm-mode.jl: new file
 
6593
 
 
6594
Thu May 19 21:40:29 1994  John Harper  (jsh@orcrist)
 
6595
 
 
6596
        * fill-mode.jl (fill-mode-spc): deletes the trailing space it leaves.
 
6597
        (set-fill-column): now uses the glyph position of the cursor.
 
6598
 
 
6599
Sun May 15 23:14:12 1994  John Harper  (jsh@orcrist)
 
6600
 
 
6601
        * compiler.jl (compile-file, compile-directory): now prompt for
 
6602
        their argument if necessary. Also new instruction `return'.
 
6603
        
 
6604
        * replace.jl: new file, user commands for replacing, `replace-all'
 
6605
        replaces all occurrences of a regexp after the cursor, and
 
6606
        `query-replace' an Emacs style interactive replace. Both these
 
6607
        commands work on regexps not strings.
 
6608
 
 
6609
Sat May 14 18:47:31 1994  John Harper  (jsh@orcrist)
 
6610
 
 
6611
        * isearch.jl: new file, provides an Emacs'ish incremental search
 
6612
 
 
6613
Thu May 12 20:42:57 1994  John Harper  (jsh@orcrist)
 
6614
 
 
6615
        * compiler.jl: bytes no longer have their high-bit set -- this
 
6616
        means bigger arguments are possible. Generates forms which
 
6617
        call `lisp-code2'.
 
6618
 
 
6619
Wed May 11 00:02:10 1994  John Harper  (jsh@orcrist)
 
6620
 
 
6621
        * find-autoloads.jl: reorganised, also now copies any forms
 
6622
        after the `;;;###autoload' marker.
 
6623
 
 
6624
Tue May 10 23:28:41 1994  John Harper  (jsh@orcrist)
 
6625
 
 
6626
        * init.jl: `loadkeys.jl' is now loaded before `autoload.jl'
 
6627
 
 
6628
Sun May  8 19:39:00 1994  John Harper  (jsh@orcrist)
 
6629
 
 
6630
        * info.jl: double-clicking the left mouse button selects menu
 
6631
        items and xrefs.
 
6632
 
 
6633
Sat May  7 13:55:37 1994  John Harper  (jsh@orcrist)
 
6634
 
 
6635
        * latin-1.jl: new file, makes the default glyph-table use Latin1
 
6636
        character set
 
6637
 
 
6638
Fri May  6 22:25:03 1994  John Harper  (jsh@orcrist)
 
6639
 
 
6640
        * buffers.jl (save-file-as): tried to delete the auto-save'd file
 
6641
        itself, failed if it didn't exist
 
6642
 
 
6643
Tue May  3 20:48:04 1994  John Harper  (jsh@orcrist)
 
6644
 
 
6645
        * Changed occurrences of `goto' to `goto-char' or `goto-glyph'
 
6646
 
 
6647
Mon May  2 10:37:04 1994  John Harper  (jsh@orcrist)
 
6648
 
 
6649
        * debug.jl: changed keybindings
 
6650
 
 
6651
        * lisp.jl (format-string): renamed as format-to-string
 
6652
        (prin1-to-string): new function
 
6653
 
 
6654
Sun May  1 09:45:16 1994  John Harper  (jsh@orcrist)
 
6655
 
 
6656
        * prompt.jl (prompt-complete-filename): Discards files which match
 
6657
        the regexp `prompt-file-exclude'
 
6658
 
 
6659
        * info.jl (info-parse-ref): didn't work if the *Note was the last
 
6660
        thing on the line
 
6661
 
 
6662
        * find-autoloads.jl: new file
 
6663
 
 
6664
        * help.jl: `documentation' and `document-var' functions moved
 
6665
        here from lisp.jl
 
6666
 
 
6667
        * lisp.jl (require): optional second arg, the file to load the
 
6668
        feature from
 
6669
 
 
6670
Sat Apr 30 21:40:11 1994  John Harper  (jsh@orcrist)
 
6671
 
 
6672
        * loadsyms.jl: renamed as autoload.jl, more sensible
 
6673
 
 
6674
        * compiler.jl (compile-directory): new arg, EXCLUDE-LIST
 
6675
        (compile-lisp-lib): takes advantage of the above new arg to
 
6676
        compile-directory
 
6677
 
 
6678
Fri Apr 29 23:20:58 1994  John Harper  (jsh@orcrist)
 
6679
 
 
6680
        * info.jl (info-parse-menu-line): *another* bug fixed
 
6681
 
 
6682
        * server.jl: code to handle client/server stuff
 
6683
 
 
6684
Fri Apr 29 11:32:56 1994  J.S.Harper  (jsh@raven.ukc.ac.uk)
 
6685
 
 
6686
        * prompt.jl: You can now double click the lmb to select a completion
 
6687
 
 
6688
Thu Apr 28 21:15:30 1994  John Harper  (jsh@orcrist)
 
6689
 
 
6690
        * info.jl (info-parse-menu-line): didn't allow punctuation in
 
6691
        file names
 
6692
 
 
6693
Thu Apr 28 10:59:05 1994  J.S.Harper  (jsh@raven.ukc.ac.uk)
 
6694
 
 
6695
        * texinfo-mode.jl (texinfo-mode): now calls `text-mode-hook'
 
6696
 
 
6697
        * init.jl: now loads files properly
 
6698
 
 
6699
Thu Apr 28 01:20:58 1994  John Harper  (jsh@orcrist)
 
6700
 
 
6701
        * text-mode.jl (text-mode-indent-tab): this works properly now
 
6702
 
 
6703
Wed Apr 27 22:34:14 1994  John Harper  (jsh@orcrist)
 
6704
 
 
6705
        * edit.jl (overwrite-mode): moved from overwrite-mode.jl
 
6706
 
 
6707
Tue Apr 26 01:04:18 1994  John Harper  (jsh@orcrist)
 
6708
 
 
6709
        * buffers.jl (auto-save-mode): minor-mode interface to toggle
 
6710
        auto-saving buffers.
 
6711
 
 
6712
        * fill-mode.jl: new minor-mode
 
6713
 
 
6714
Mon Apr 25 20:57:51 1994  John Harper  (jsh@orcrist)
 
6715
 
 
6716
        * overwrite-mode.jl: new minor-mode (the first!)
 
6717
 
 
6718
        * modes.jl (add-minor-mode, remove-minor-mode): support for minor-
 
6719
        modes.
 
6720
 
 
6721
        * buffers.jl (write-file): remembers the modes of the file and resets
 
6722
        them after the file has been saved.
 
6723
 
 
6724
Sun Apr 24 11:33:30 1994  John Harper  (jsh@orcrist)
 
6725
 
 
6726
        * edit.jl (capitalize-word): new function, bound to `ESC c'
 
6727
 
 
6728
        * *-mode.jl: new way of working to allow the user to just call the
 
6729
        mode's function, possibly when a different mode is already in effect.
 
6730
        Every mode must check for a non-nil `major-mode-kill' when it starts,
 
6731
        calling this function if necessary.
 
6732
 
 
6733
        * text-mode.jl: new file
 
6734
 
 
6735
        * help.jl (describe-variable): says whether var is buffer-local,
 
6736
        window-local or global, and whether it's a constant.
 
6737
 
 
6738
        * add-log.jl: fixed problem of null strings not being treated as
 
6739
        directories. Also added some defvar's to override the stuff that
 
6740
        gets put into the header.
 
6741
 
 
6742
        * prompt.jl: When prompting for a file now copes with `~' characters
 
6743
 
 
6744
        * disassembler.jl (disassemble): sets `disk-tab' as well as `screen-tab'
 
6745
 
 
6746
        * info.jl (info-read-tags): didn't close the file it opened, this
 
6747
        is now done in an unwind-protect for safety.
 
6748
 
 
6749
Sat Apr 23 20:06:15 1994  John Harper  (jsh@orcrist)
 
6750
 
 
6751
        * lisp.jl (defvar, defconst): these are now special-forms
 
6752
 
 
6753
        * compiler.jl (comp-compile-file-form): now does macro-expansion
 
6754
        of top-level forms.
 
6755
 
 
6756
        * info.jl (info-has-tags-p): new var, set when a tag-table is loaded.
 
6757
        If a file doesn't have a tag-table the whole file is loaded. This is
 
6758
        mainly so the `dir' file can be edited by hand.
 
6759
        (info-directory-list): replaces `info-directory', a list of directorys
 
6760
        to search.
 
6761
        (info-parse-menu): didn't like punctuation in comments
 
6762
        (info-goto-link, info-next-link, info-prev-link): for moving around
 
6763
        menus and refs, bound to RET, TAB and SHIFT-TAB respectively.
 
6764
        (info-parse-ref): new function to extract the guts of an xref
 
6765
        (info-follow-ref): no menu yet, just finds the next ref
 
6766
 
 
6767
Wed Apr 20 16:02:51 1994  John Harper  (jsh@orcrist)
 
6768
 
 
6769
        * Version 3.0 released
 
6770
 
 
6771
Mon Apr 18 13:27:55 1994  John Harper  (jsh@deep)
 
6772
 
 
6773
        * c-mode.jl (c-indent-pos-empty): handles opening braces on the same
 
6774
        line as the keyword now
 
6775
 
 
6776
Sun Apr 17 19:40:05 1994  John Harper  (jsh@orcrist)
 
6777
 
 
6778
        * buffers.jl (write-buffer): now copes better with backup files,
 
6779
        if `backup-by-copying' is non-nil the file is copied not renamed.
 
6780
        Else, the file is only renamed if it won't damage anything.
 
6781
 
 
6782
Sat Apr 16 14:04:45 1994  John Harper  (jsh@orcrist)
 
6783
 
 
6784
        * info.jl (info-find-node): Protection against info-file being
 
6785
        modified while we're viewing it, if this happens it reloads the
 
6786
        tags table.
 
6787
 
 
6788
        * info.jl (info): Doesn't always show `(dir)' if no NODE-NAME is
 
6789
        given, uses the currently loaded node if one exists.
 
6790
 
 
6791
        * Added license notices at the beginning of all Lisp files
 
6792
 
 
6793
        * All instances of the string `jed' have been changed to `jade'. I
 
6794
        decided to change its name since there is at least one other editor
 
6795
        called jed.
 
6796
 
 
6797
Fri Apr 15 16:14:48 1994  John Harper  (jsh@deep)
 
6798
 
 
6799
        * init.jl: Now sets the status line while initialising. Also
 
6800
        loads `loadmenus' if necessary.
 
6801
 
 
6802
        * loadmenus.jl: New file, sets up a small menu strip, but only
 
6803
        on Amigas
 
6804
 
 
6805
Tue Apr 12 14:54:57 1994  John Harper  (jsh@orcrist)
 
6806
 
 
6807
        * lisp.jl (add-command-arg, clear-command-args, command-prompt): new
 
6808
        functions -- provide a method of giving arguments to commands invoked
 
6809
        with `ESC x'
 
6810
 
 
6811
        * edit.jl (mark-paragraph): now works properly on a paragraph boundary
 
6812
 
 
6813
        * prompt.jl: Now keeps a list of the buffers it's used so they
 
6814
        can be recycled.
 
6815
 
 
6816
        * edit.jl: Rewrote word handling, now it works :)
 
6817
 
 
6818
Mon Apr 11 16:12:05 1994  John Harper  (jsh@orcrist)
 
6819
 
 
6820
        * All occurrences of `make-*-variable' changed to `set-*-variable'
 
6821
 
 
6822
        * c-mode.jl, texinfo-mode.jl: Doesn't bother to redefine
 
6823
        `paragraph-start' anymore.
 
6824
 
 
6825
        * edit.jl (prev-paragraph): Now goes to the start of the current
 
6826
        paragraph, or start of previous one if already at start.
 
6827
        (mark-paragraph): Marks line which ends paragraph as well.
 
6828
        (paragraph-start): Deleted
 
6829
 
 
6830
        * lisp-mode.jl: Got rid of `lisp-interactive-mode' entry point, the
 
6831
        only difference it had with `lisp-mode' was the name!
 
6832
 
 
6833
Fri Apr  8 20:22:10 1994  John Harper  (jsh@orcrist)
 
6834
 
 
6835
        * loadsyms.jl: Removed `void-symbol-function'
 
6836
 
 
6837
Tue Apr 05 19:34:24 1994  John Harper  (jsh@deep)
 
6838
 
 
6839
        * buffers.jl: New option `amiga-use-file-req-p' -- makes find-file
 
6840
        and friends use the ASL file requester
 
6841
 
 
6842
Sun Apr  3 17:12:21 1994  John Harper  (jsh@orcrist)
 
6843
 
 
6844
        * add-log.jl: Now asks for the directory whose ChangeLog should
 
6845
        be updated.
 
6846
 
 
6847
Thu Mar 24 09:51:07 1994  John Harper  (jsh@orcrist)
 
6848
 
 
6849
        * compiler.jl (comp-compile-body): Fixed for null lists (it
 
6850
        wasn't incrementing the stack counter).
 
6851
        (comp-compile-file-form): Now copes with doc-strings in defvar and
 
6852
        defconst (ie, they're written to disk if necessary).
 
6853
 
 
6854
Sat Mar 19 03:45:03 1994  John Harper  (jsh@orcrist)
 
6855
 
 
6856
        * info.jl: Braindead support for viewing info files
 
6857
 
 
6858
Sat Mar 12 22:25:36 1994  John Harper  (jsh@orcrist)
 
6859
 
 
6860
        * compile.jl: Renamed `grep' to `grep-buffer'. New function
 
6861
        `grep' which executes the program grep.
 
6862
        * compile.jl: Error descriptions are now stored in the error-list
 
6863
        * compile.jl: Some new options to `start-compile-command'
 
6864
 
 
6865
Mon Mar  7 21:27:25 1994  John Harper  (jsh@orcrist)
 
6866
 
 
6867
        * compiler.jl: New options `comp-eval-constants-p' and
 
6868
        `comp-write-docs-p'. New function `compile-lisp-lib'. General
 
6869
        support for writing doc strings to the file.
 
6870
 
 
6871
Sat Mar  5 01:21:35 1994  John Harper  (jsh@orcrist)
 
6872
 
 
6873
        * edit.jl: Various upcase/downcase functions to use the stuff
 
6874
        noted below.
 
6875
 
 
6876
Fri Mar  4 18:55:38 1994  John Harper  (jsh@orcrist)
 
6877
 
 
6878
        * loadkeys.jl: Lots of changes.
 
6879
 
 
6880
        * compile.jl: Variables to control extraction of error details.
 
6881
        Also takes note of the directory that the compilation was run in.
 
6882
 
 
6883
        * c-mode.jl: Now handles if (etc) constructs which have a space
 
6884
        between the keyword and the parenthesised expression.
 
6885
 
 
6886
Sun Feb 27 20:48:56 1994  John Harper  (jsh@orcrist)
 
6887
 
 
6888
        * edit.jl: paragraph handling functions, `next-paragraph',
 
6889
        `prev-paragraph', `paragraph-start', `mark-paragraph' and variable
 
6890
        `paragraph-regexp'.
 
6891
 
 
6892
Sat Feb 19 00:45:53 1994  John Harper  (jsh@orcrist)
 
6893
 
 
6894
        * debug.jl: Support for debugging errors and getting
 
6895
        backtraces.
 
6896
 
 
6897
Sat Feb 12 01:28:01 1994  John Harper  (jsh@orcrist)
 
6898
 
 
6899
        * c-mode.jl: Now handles `do' keyword properly.
 
6900
 
 
6901
Thu Feb 10 03:15:12 1994  John Harper  (jsh@orcrist)
 
6902
 
 
6903
        * c-mode.jl: Now copes with empty lines and preprocessor
 
6904
        directives. Still fairly braindead though.
 
6905
 
 
6906
Sun Feb  6 01:25:15 1994  John Harper  (jsh@orcrist)
 
6907
 
 
6908
        * help.jl: No longer uses recursive-edit, just some deft
 
6909
        keymap manipulation.
 
6910
 
 
6911
Sat Feb  5 21:36:22 1994  John Harper  (jsh@orcrist)
 
6912
 
 
6913
        * buffers.jl, windows.jl: Made each window have its own
 
6914
        `buffer-list'. This means some new functions, `add-buffer' and
 
6915
        `remove-buffer'.
 
6916
        * windows.jl: `window-list' variable -- list of all open windows.