ChangeLog-2008 14 KB

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