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