1 2001-11-03 Neil Jerram <neil@ossau.uklinux.net>
3 * README (Resources): Fill in missing URLs.
5 2001-11-02 Neil Jerram <neil@ossau.uklinux.net>
7 * Makefile.am (elisp_sources): Added base.scm, example.el,
8 interface.scm; removed emacs.scm.
10 * README: Updated accordingly.
12 * internals/load.scm (load): Avoid using `load-path' if the
13 supplied file name begins with a slash.
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
20 * example.el: New file: example code for `load-elisp-file'.
22 * interface.scm: New file - mechanisms to exchange definitions
23 between Scheme and Elisp.
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.
30 * variables.scm, internals/evaluation.scm: Changed (lang elisp
31 emacs) to (lang elisp base).
33 * emacs.scm (lang): Removed.
35 * base.scm (lang): New file (non-emacs-specific replacement for
38 2001-10-28 Neil Jerram <neil@ossau.uklinux.net>
40 * primitives/symprop.scm (symbol-name): New primitive.
42 * primitives/strings.scm (stringp): New primitive.
44 * primitives/pure.scm (purify-flag): New variable.
46 * primitives/numbers.scm (numberp): New primitive.
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.
53 * transform.scm (transformer, m-unwind-protect): Added support for
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.
60 * README: Enlarged description of current status.
62 * Makefile.am (elisp_sources): Added variables.scm.
64 * variables.scm: New file.
66 2001-10-26 Neil Jerram <neil@ossau.uklinux.net>
68 * buffers.scm, calling.scm: Removed. These should have
69 disappeared during the reorganization described below, but I
70 missed them by mistake.
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.
78 * primitives/match.scm (string-match, match-data): Store last
79 match data in Emacs rather than Guile form, to simplify
81 (set-match-data, store-match-data): New.
83 * primitives/load.scm (autoload, current-load-list): New. (But
84 autoload is just stubbed, not properly implemented.)
86 * primitives/lists.scm (nth, listp, consp, nconc): New.
88 * primitives/fns.scm (byte-code-function-p, run-hooks): New.
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.
95 * Makefile.am: Changed so that it only deals with files directly
96 in this directory; otherwise files don't install cleanly.
98 * internals/Makefile.am, primitives/Makefile.am,
99 internals/.cvsignore, primitives/.cvsignore: New files.
101 2001-10-26 Neil Jerram <neil@ossau.uklinux.net>
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
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.
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:
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:
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.
138 2001-10-23 Neil Jerram <neil@ossau.uklinux.net>
140 * match.scm (string-match): New implementation using new
141 `make-emacs-regexp' primitive; old workaround implementation
142 renamed to `string-match-workaround'.
144 2001-10-21 Neil Jerram <neil@ossau.uklinux.net>
146 * transform.scm (m-defun, m-defmacro, m-let, m-defvar,
147 m-defconst): Use more selective tracing mechanism (provided by new
150 * symprop.scm (get, boundp), transform.scm (transform-lambda,
151 m-defmacro): Remove unnecessary uses of nil-ify and t-ify.
153 * match.scm (string-match): Workaround Guile/libc regex
156 * emacs.scm: Move elisp primitive definitions into more specific
157 files, so that emacs.scm contains only overall code.
159 * Makefile.am: Added new files.
161 * numbers.scm, trace.scm, time.scm, pure.scm, system.scm,
162 read.scm, calling.scm, guile.scm: New files.
164 2001-10-20 Neil Jerram <neil@ossau.uklinux.net>
166 * Makefile.am (elisp_sources): Added match.scm and strings.scm.
168 * match.scm, strings.scm: New files.
170 2001-10-19 Neil Jerram <neil@ossau.uklinux.net>
172 * transform.scm: Replace uses of `nil' by `#f' or `'()'.
174 * Makefile.am (elisp_sources): Added lists.scm.
176 * load.scm (the-elisp-module): Corrected (lang elisp emacs) module
179 * lists.scm (lang): New file containing list-related primitives.
181 * emacs.scm: Corrected module name.
183 2001-10-19 Neil Jerram <neil@ossau.uklinux.net>
185 Initial implementation of an Emacs Lisp translator, based on
186 transformer code originally written by Mikael Djurfeldt.
188 * Makefile.am, .cvsignore: New.
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.