]> git.donarmstrong.com Git - lilypond.git/blob - guile18/lang/elisp/ChangeLog-2008
Import guile-1.8 as multiple upstream tarball component
[lilypond.git] / guile18 / lang / elisp / ChangeLog-2008
1 2008-04-14  Neil Jerram  <neil@ossau.uklinux.net>
2
3         * primitives/symprop.scm (get): Use lambda->nil.
4
5         * primitives/strings.scm (aset): New primitive.
6
7         * internals/load.scm (load): Use in-vicinity (instead of
8         string-append) to add a slash if needed.
9
10 2004-02-08  Mikael Djurfeldt  <djurfeldt@nada.kth.se>
11
12         * primitives/Makefile.am (TAGS_FILES), internals/Makefile.am
13         (TAGS_FILES), Makefile.am (TAGS_FILES): Use this variable instead
14         of ETAGS_ARGS so that TAGS can be built using separate build
15         directory.
16
17 2003-11-01  Neil Jerram  <neil@ossau.uklinux.net>
18
19         * internals/format.scm (format), internals/signal.scm (error),
20         internals/load.scm (load): Export using #:replace to avoid
21         duplicate binding warnings.
22
23 2003-01-05  Marius Vollmer  <mvo@zagadka.ping.de>
24
25         * primitives/Makefile.am (elisp_sources): Added char-table.scm.
26
27 2002-12-28  Neil Jerram  <neil@ossau.uklinux.net>
28
29         * base.scm (lang): Use char-table module.
30
31         * primitives/char-table.scm (lang): New (stub definitions).
32
33 2002-12-08  Rob Browning  <rlb@defaultvalue.org>
34
35         * Makefile.am (subpkgdatadir): VERSION -> GUILE_EFFECTIVE_VERSION.
36
37         * primitives/Makefile.am (subpkgdatadir): VERSION ->
38         GUILE_EFFECTIVE_VERSION.
39
40         * internals/Makefile.am (subpkgdatadir): VERSION ->
41         GUILE_EFFECTIVE_VERSION.
42
43 2002-02-13  Neil Jerram  <neil@ossau.uklinux.net>
44
45         * base.scm (load-emacs): Add optional parameters for specifying an
46         alternative load path, and for debugging this.  (Thanks to
47         Thien-Thi Nguyen!)
48
49         * primitives/syntax.scm (setq): Use `set'.
50
51         * internals/set.scm (set): Fixed to support variables that are
52         imported from other modules.
53
54 2002-02-12  Neil Jerram  <neil@ossau.uklinux.net>
55
56         * transform.scm (scheme): Use set-current-module to ensure
57         expected behaviour of resolve-module.
58
59 2002-02-08  Neil Jerram  <neil@ossau.uklinux.net>
60
61         * STATUS: New file.
62
63         * README: Updated.
64
65         * interface.scm (translate-elisp): New exported procedure.
66         (elisp-function): Symbol var is `obj', not `symbol'.
67         
68         * internals/lambda.scm, primitives/fns.scm: Fix confusion between
69         interactive-spec and interactive-specification.
70         
71         * internals/lambda.scm (transform-lambda), primitives/syntax.scm
72         (defmacro): Bind unspecified optional and rest arguments to #nil,
73         not #f.
74
75         * internals/null.scm (->nil, lambda->nil): New, exported.
76         (null): Use ->nil.
77
78         * primitives/features.scm (featurep), primitives/fns.scm
79         (fboundp, subrp): Use ->nil.
80
81         * internals/lists.scm (cons, setcdr, memq, member, assq, assoc):
82         Simplified.
83         (car, cdr): Return #nil rather than #f.
84
85         * primitives/load.scm (current-load-list), primitives/pure.scm
86         (purify-flag): Set to #nil, not #f.
87
88         * primitives/match.scm (string-match): Return #nil rather than #f.
89
90         * primitives/numbers.scm (integerp, numberp),
91         primitives/strings.scm (string-lessp, stringp): Use lambda->nil.
92
93         * primitives/symprop.scm (boundp): Use ->nil.
94         (symbolp, local-variable-if-set-p): Return #nil rather than #f.
95
96         * primitives/syntax.scm (prog1, prog2): Mangle variable names
97         further to lessen possibility of conflicts.
98         (if, and, or, cond): Return #nil rather than #f.
99         (cond): Return #t rather than t (which is undefined).
100         (let, let*): Bind uninitialized variables to #nil, not #f.
101         
102         * transform.scm: Resolve inconsistency in usage of `map', and add
103         an explanatory note.  Also cleaned up use of subsidiary
104         transformation functions.  Also use cons-source wherever possible.
105         (transform-datum, transform-quote): New.
106         (transform-quasiquote): Renamed from `transform-inside-qq'.
107         (transform-application): Apply `transform-quote' to application
108         args.
109         (cars->nil): Removed.
110         
111         * internals/null.scm (null), primitives/lists.scm (cons, car, cdr,
112         setcdr, memq, member, assq, assoc, nth): Update to take into
113         account new libguile support for Elisp nil value.
114
115 2002-02-06  Neil Jerram  <neil@ossau.uklinux.net>
116
117         * example.el (time): New macro, for performance measurement.
118         Accompanying comment compares results for Guile and Emacs.
119         
120         * transform.scm (scheme): New macro.
121         (transformer): New implementation of `scheme' escape that doesn't
122         rely on (lang elisp base) importing Guile bindings.
123
124         * base.scm: No longer import anything from (guile).
125         (load-emacs): Add scheme form to ensure that keywords
126         read option is set correctly.
127
128         * primitives/syntax.scm (defmacro, let, let*): Unquote uses of
129         `@bind' in transformed code.
130         (if): Unquote uses of `nil-cond' in transformed code.
131
132         * internals/lambda.scm (transform-lambda): Unquote use of `@bind'
133         in transformed code.
134
135         * transform.scm (transformer-macro): Don't quote `list' in
136         transformed code.
137         (transform-application): Don't quote `@fop' in transformed code.
138         (transformer): No need to treat `@bind' and `@fop' as special
139         cases in input to the transformer.
140
141 2002-02-04  Neil Jerram  <neil@ossau.uklinux.net>
142
143         * primitives/syntax.scm (parse-formals, transform-lambda,
144         interactive-spec, set-not-subr!, transform-lambda/interactive):
145         Move into internals/lambda.scm so that these can also be used
146         by...
147         
148         * internals/fset.scm (elisp-apply): Use `eval' and 
149         `transform-lambda/interactive' to turn a quoted lambda expression
150         into a Scheme procedure.
151
152         * transform.scm (m-quasiquote): Don't quote `quasiquote' in
153         transformed code.
154         (transformer): Transform '() to #nil.
155
156 2002-02-03  Neil Jerram  <neil@ossau.uklinux.net>
157
158         * internals/Makefile.am (elisp_sources): Add lambda.scm.
159
160         * internals/lambda.scm (lang): New file.
161
162 2002-02-01  Neil Jerram  <neil@ossau.uklinux.net>
163
164         * transform.scm (transformer), primitives/syntax.scm (let*):
165         Unquote uses of `begin' in transformed code.
166
167 2002-01-29  Neil Jerram  <neil@ossau.uklinux.net>
168
169         * transform.scm (transform-1, transform-2, transform-3,
170         transform-list): Removed (unused).
171         
172         * transform.scm, primitives/syntax.scm: Add commas everywhere
173         before use of (guile) primitives in generated code, so that (lang
174         elisp base) doesn't have to import bindings from (guile).
175         
176         * base.scm: Move use-modules expressions inside the define-module,
177         and add #:pure so that we don't import bindings from (guile).
178
179 2002-01-25  Neil Jerram  <neil@ossau.uklinux.net>
180
181         * transform.scm (transform-application): Preserve source
182         properties of original elisp expression by using cons-source.
183
184         * transform.scm: Don't handle special forms specially in the
185         translator.  Instead, define them as macros in ...
186         
187         * primitives/syntax.scm: New file; special form definitions.
188
189         * primitives/fns.scm (run-hooks): Rewritten correctly.
190
191         * primitives/symprop.scm (symbol-value): Use `value'.
192
193         * internals/set.scm (value): New function.
194
195         * primitives/fns.scm: Use (lang elisp internals null), as null is
196         no longer a primitive.  Change generated #f values to %nil.
197
198         * internals/null.scm (null): Handle nil symbol.
199
200         * primitives/lists.scm (memq, member, assq, assoc): Handle all
201         possible nil values.
202
203         * transform.scm (transformer): Translate `nil' and `t' to #nil and
204         #t.
205
206         * base.scm: Remove setting of 'language read-option.
207
208 2001-11-03  Neil Jerram  <neil@ossau.uklinux.net>
209
210         * README (Resources): Fill in missing URLs.
211
212 2001-11-02  Neil Jerram  <neil@ossau.uklinux.net>
213
214         * Makefile.am (elisp_sources): Added base.scm, example.el,
215         interface.scm; removed emacs.scm.
216
217         * README: Updated accordingly.
218
219         * internals/load.scm (load): Avoid using `load-path' if the
220         supplied file name begins with a slash.
221         
222         * internals/fset.scm: Support export of defuns, defmacros and
223         defvars to a module specified by the fluid `elisp-export-module'.
224         This allows us to automate the importing of Elisp definitions into
225         Scheme.
226         
227         * example.el: New file: example code for `load-elisp-file'.
228
229         * interface.scm: New file - mechanisms to exchange definitions
230         between Scheme and Elisp.
231
232         Following changes try to make the Elisp evaluation module less
233         Emacs-dependent; in other words, so that it isn't necessary to try
234         to load the whole Emacs environment before evaluating basic
235         non-Emacs-specific Elisp code.
236         
237         * variables.scm, internals/evaluation.scm: Changed (lang elisp
238         emacs) to (lang elisp base).
239         
240         * emacs.scm (lang): Removed.
241
242         * base.scm (lang): New file (non-emacs-specific replacement for
243         emacs.scm).
244
245 2001-10-28  Neil Jerram  <neil@ossau.uklinux.net>
246
247         * primitives/symprop.scm (symbol-name): New primitive.
248
249         * primitives/strings.scm (stringp): New primitive.
250
251         * primitives/pure.scm (purify-flag): New variable.
252
253         * primitives/numbers.scm (numberp): New primitive.
254
255         * internals/fset.scm (fset): Set procedure and macro name
256         properties usefully to match Elisp symbol names.  Also bind Elisp
257         function definition variables to similarly named symbols in the
258         (lang elisp variables) module.
259
260         * transform.scm (transformer, m-unwind-protect): Added support for
261         `unwind-protect'.
262         (m-quasiquote): Use 'quasiquote rather than 'quote.
263         (transform-lambda, m-defmacro): When no rest arguments, set the
264         rest parameter to '() rather than #f.  It shouldn't make any
265         difference, but it feels more right.
266
267         * README: Enlarged description of current status.
268
269         * Makefile.am (elisp_sources): Added variables.scm.
270
271         * variables.scm: New file.
272
273 2001-10-26  Neil Jerram  <neil@ossau.uklinux.net>
274
275         * buffers.scm, calling.scm: Removed.  These should have
276         disappeared during the reorganization described below, but I
277         missed them by mistake.
278         
279         * primitives/symprop.scm (set, boundp, symbol-value): Changed to
280         use (module-xx the-elisp-module ...) rather than (local-xx ...).
281         (symbolp): Accept either symbols or keywords.
282         (set-default, default-boundp, default-value,
283         local-variable-if-set-p): New.
284
285         * primitives/match.scm (string-match, match-data): Store last
286         match data in Emacs rather than Guile form, to simplify
287         implementation of ...
288         (set-match-data, store-match-data): New.
289
290         * primitives/load.scm (autoload, current-load-list): New.  (But
291         autoload is just stubbed, not properly implemented.)
292
293         * primitives/lists.scm (nth, listp, consp, nconc): New.
294
295         * primitives/fns.scm (byte-code-function-p, run-hooks): New.
296
297         * transform.scm (transform-application, transformer-macro): New
298         scheme for transforming procedure arguments while leaving macro
299         args untransformed.  (See also associated change in libguile.)
300         (m-defconst): Simplified, now uses m-setq.
301
302         * Makefile.am: Changed so that it only deals with files directly
303         in this directory; otherwise files don't install cleanly.
304
305         * internals/Makefile.am, primitives/Makefile.am,
306         internals/.cvsignore, primitives/.cvsignore: New files.
307
308 2001-10-26  Neil Jerram  <neil@ossau.uklinux.net>
309
310         * transform.scm (transformer): New handling for (1) quasiquoting
311         syntax like "(` ...)" as well as the more normal "` ..."; (2)
312         `function'; (3) interactive specification in lambda body.
313         Simplied handling for `setq'.
314         (transform-inside-qq): Fixed to handle improper as well as proper
315         lists.
316         (transform-lambda/interactive): New; wraps transform-lambda to
317         handle setting of various procedure properties.
318         (transform-lambda, m-defmacro): Changed `args' and `num-args' to
319         `%--args' and `%--num-args' in the hope of avoiding lexical
320         vs. dynamic name clashes.
321         (m-and): Use #f instead of '() where a condition fails.
322
323         Plus big hierarchy reorganization, in which most of the previous
324         occupants of lang/elisp moved to lang/elisp/primitives, with some
325         internal processing being split out into lang/elisp/internals.
326         The upshot looks like this:
327
328         * internals/trace.scm, internals/set.scm, internals/load.scm,
329         internals/fset.scm, internals/signal.scm, internals/time.scm,
330         internals/format.scm, internals/null.scm,
331         internals/evaluation.scm, primitives/buffers.scm,
332         primitives/features.scm, primitives/format.scm,
333         primitives/time.scm, primitives/guile.scm, primitives/keymaps.scm,
334         primitives/lists.scm, primitives/load.scm, primitives/match.scm,
335         primitives/numbers.scm, primitives/pure.scm, primitives/read.scm,
336         primitives/signal.scm, primitives/strings.scm,
337         primitives/symprop.scm, primitives/system.scm, primitives/fns.scm:
338         New files.
339
340         * features.scm, format.scm, fset.scm, guile.scm, keymaps.scm,
341         lists.scm, load.scm, match.scm, numbers.scm, pure.scm, read.scm,
342         signal.scm, strings.scm, symprop.scm, system.scm, time.scm,
343         trace.scm: Removed files.
344         
345 2001-10-23  Neil Jerram  <neil@ossau.uklinux.net>
346
347         * match.scm (string-match): New implementation using new
348         `make-emacs-regexp' primitive; old workaround implementation
349         renamed to `string-match-workaround'.
350
351 2001-10-21  Neil Jerram  <neil@ossau.uklinux.net>
352
353         * transform.scm (m-defun, m-defmacro, m-let, m-defvar,
354         m-defconst): Use more selective tracing mechanism (provided by new
355         file trace.scm).
356         
357         * symprop.scm (get, boundp), transform.scm (transform-lambda,
358         m-defmacro): Remove unnecessary uses of nil-ify and t-ify.
359         
360         * match.scm (string-match): Workaround Guile/libc regex
361         parenthesis bug.
362
363         * emacs.scm: Move elisp primitive definitions into more specific
364         files, so that emacs.scm contains only overall code.
365
366         * Makefile.am: Added new files.
367         
368         * numbers.scm, trace.scm, time.scm, pure.scm, system.scm,
369         read.scm, calling.scm, guile.scm: New files.
370
371 2001-10-20  Neil Jerram  <neil@ossau.uklinux.net>
372
373         * Makefile.am (elisp_sources): Added match.scm and strings.scm.
374
375         * match.scm, strings.scm: New files.
376
377 2001-10-19  Neil Jerram  <neil@ossau.uklinux.net>
378
379         * transform.scm: Replace uses of `nil' by `#f' or `'()'.
380
381         * Makefile.am (elisp_sources): Added lists.scm.
382
383         * load.scm (the-elisp-module): Corrected (lang elisp emacs) module
384         name.
385
386         * lists.scm (lang): New file containing list-related primitives.
387
388         * emacs.scm: Corrected module name.
389
390 2001-10-19  Neil Jerram  <neil@ossau.uklinux.net>
391
392         Initial implementation of an Emacs Lisp translator, based on
393         transformer code originally written by Mikael Djurfeldt.
394         
395         * Makefile.am, .cvsignore: New.
396
397         * ChangeLog, README, buffers.scm, emacs.scm, features.scm,
398         format.scm, fset.scm, keymaps.scm, load.scm, signal.scm,
399         symprop.scm, transform.scm: New files.
400         
401