* Add non-libguile Elisp support files to CVS trunk. (NB work in progress.)
[bpt/guile.git] / lang / elisp / ChangeLog
1 2001-11-03 Neil Jerram <neil@ossau.uklinux.net>
2
3 * README (Resources): Fill in missing URLs.
4
5 2001-11-02 Neil Jerram <neil@ossau.uklinux.net>
6
7 * Makefile.am (elisp_sources): Added base.scm, example.el,
8 interface.scm; removed emacs.scm.
9
10 * README: Updated accordingly.
11
12 * internals/load.scm (load): Avoid using `load-path' if the
13 supplied file name begins with a slash.
14
15 * internals/fset.scm: Support export of defuns, defmacros and
16 defvars to a module specified by the fluid `elisp-export-module'.
17 This allows us to automate the importing of Elisp definitions into
18 Scheme.
19
20 * example.el: New file: example code for `load-elisp-file'.
21
22 * interface.scm: New file - mechanisms to exchange definitions
23 between Scheme and Elisp.
24
25 Following changes try to make the Elisp evaluation module less
26 Emacs-dependent; in other words, so that it isn't necessary to try
27 to load the whole Emacs environment before evaluating basic
28 non-Emacs-specific Elisp code.
29
30 * variables.scm, internals/evaluation.scm: Changed (lang elisp
31 emacs) to (lang elisp base).
32
33 * emacs.scm (lang): Removed.
34
35 * base.scm (lang): New file (non-emacs-specific replacement for
36 emacs.scm).
37
38 2001-10-28 Neil Jerram <neil@ossau.uklinux.net>
39
40 * primitives/symprop.scm (symbol-name): New primitive.
41
42 * primitives/strings.scm (stringp): New primitive.
43
44 * primitives/pure.scm (purify-flag): New variable.
45
46 * primitives/numbers.scm (numberp): New primitive.
47
48 * internals/fset.scm (fset): Set procedure and macro name
49 properties usefully to match Elisp symbol names. Also bind Elisp
50 function definition variables to similarly named symbols in the
51 (lang elisp variables) module.
52
53 * transform.scm (transformer, m-unwind-protect): Added support for
54 `unwind-protect'.
55 (m-quasiquote): Use 'quasiquote rather than 'quote.
56 (transform-lambda, m-defmacro): When no rest arguments, set the
57 rest parameter to '() rather than #f. It shouldn't make any
58 difference, but it feels more right.
59
60 * README: Enlarged description of current status.
61
62 * Makefile.am (elisp_sources): Added variables.scm.
63
64 * variables.scm: New file.
65
66 2001-10-26 Neil Jerram <neil@ossau.uklinux.net>
67
68 * buffers.scm, calling.scm: Removed. These should have
69 disappeared during the reorganization described below, but I
70 missed them by mistake.
71
72 * primitives/symprop.scm (set, boundp, symbol-value): Changed to
73 use (module-xx the-elisp-module ...) rather than (local-xx ...).
74 (symbolp): Accept either symbols or keywords.
75 (set-default, default-boundp, default-value,
76 local-variable-if-set-p): New.
77
78 * primitives/match.scm (string-match, match-data): Store last
79 match data in Emacs rather than Guile form, to simplify
80 implementation of ...
81 (set-match-data, store-match-data): New.
82
83 * primitives/load.scm (autoload, current-load-list): New. (But
84 autoload is just stubbed, not properly implemented.)
85
86 * primitives/lists.scm (nth, listp, consp, nconc): New.
87
88 * primitives/fns.scm (byte-code-function-p, run-hooks): New.
89
90 * transform.scm (transform-application, transformer-macro): New
91 scheme for transforming procedure arguments while leaving macro
92 args untransformed. (See also associated change in libguile.)
93 (m-defconst): Simplified, now uses m-setq.
94
95 * Makefile.am: Changed so that it only deals with files directly
96 in this directory; otherwise files don't install cleanly.
97
98 * internals/Makefile.am, primitives/Makefile.am,
99 internals/.cvsignore, primitives/.cvsignore: New files.
100
101 2001-10-26 Neil Jerram <neil@ossau.uklinux.net>
102
103 * transform.scm (transformer): New handling for (1) quasiquoting
104 syntax like "(` ...)" as well as the more normal "` ..."; (2)
105 `function'; (3) interactive specification in lambda body.
106 Simplied handling for `setq'.
107 (transform-inside-qq): Fixed to handle improper as well as proper
108 lists.
109 (transform-lambda/interactive): New; wraps transform-lambda to
110 handle setting of various procedure properties.
111 (transform-lambda, m-defmacro): Changed `args' and `num-args' to
112 `%--args' and `%--num-args' in the hope of avoiding lexical
113 vs. dynamic name clashes.
114 (m-and): Use #f instead of '() where a condition fails.
115
116 Plus big hierarchy reorganization, in which most of the previous
117 occupants of lang/elisp moved to lang/elisp/primitives, with some
118 internal processing being split out into lang/elisp/internals.
119 The upshot looks like this:
120
121 * internals/trace.scm, internals/set.scm, internals/load.scm,
122 internals/fset.scm, internals/signal.scm, internals/time.scm,
123 internals/format.scm, internals/null.scm,
124 internals/evaluation.scm, primitives/buffers.scm,
125 primitives/features.scm, primitives/format.scm,
126 primitives/time.scm, primitives/guile.scm, primitives/keymaps.scm,
127 primitives/lists.scm, primitives/load.scm, primitives/match.scm,
128 primitives/numbers.scm, primitives/pure.scm, primitives/read.scm,
129 primitives/signal.scm, primitives/strings.scm,
130 primitives/symprop.scm, primitives/system.scm, primitives/fns.scm:
131 New files.
132
133 * features.scm, format.scm, fset.scm, guile.scm, keymaps.scm,
134 lists.scm, load.scm, match.scm, numbers.scm, pure.scm, read.scm,
135 signal.scm, strings.scm, symprop.scm, system.scm, time.scm,
136 trace.scm: Removed files.
137
138 2001-10-23 Neil Jerram <neil@ossau.uklinux.net>
139
140 * match.scm (string-match): New implementation using new
141 `make-emacs-regexp' primitive; old workaround implementation
142 renamed to `string-match-workaround'.
143
144 2001-10-21 Neil Jerram <neil@ossau.uklinux.net>
145
146 * transform.scm (m-defun, m-defmacro, m-let, m-defvar,
147 m-defconst): Use more selective tracing mechanism (provided by new
148 file trace.scm).
149
150 * symprop.scm (get, boundp), transform.scm (transform-lambda,
151 m-defmacro): Remove unnecessary uses of nil-ify and t-ify.
152
153 * match.scm (string-match): Workaround Guile/libc regex
154 parenthesis bug.
155
156 * emacs.scm: Move elisp primitive definitions into more specific
157 files, so that emacs.scm contains only overall code.
158
159 * Makefile.am: Added new files.
160
161 * numbers.scm, trace.scm, time.scm, pure.scm, system.scm,
162 read.scm, calling.scm, guile.scm: New files.
163
164 2001-10-20 Neil Jerram <neil@ossau.uklinux.net>
165
166 * Makefile.am (elisp_sources): Added match.scm and strings.scm.
167
168 * match.scm, strings.scm: New files.
169
170 2001-10-19 Neil Jerram <neil@ossau.uklinux.net>
171
172 * transform.scm: Replace uses of `nil' by `#f' or `'()'.
173
174 * Makefile.am (elisp_sources): Added lists.scm.
175
176 * load.scm (the-elisp-module): Corrected (lang elisp emacs) module
177 name.
178
179 * lists.scm (lang): New file containing list-related primitives.
180
181 * emacs.scm: Corrected module name.
182
183 2001-10-19 Neil Jerram <neil@ossau.uklinux.net>
184
185 Initial implementation of an Emacs Lisp translator, based on
186 transformer code originally written by Mikael Djurfeldt.
187
188 * Makefile.am, .cvsignore: New.
189
190 * ChangeLog, README, buffers.scm, emacs.scm, features.scm,
191 format.scm, fset.scm, keymaps.scm, load.scm, signal.scm,
192 symprop.scm, transform.scm: New files.
193
194