[librep] Remove scheme and unscheme modules
- From: Christopher Bratusek <chrisb src gnome org>
- To: svn-commits-list gnome org
- Subject: [librep] Remove scheme and unscheme modules
- Date: Wed, 6 May 2009 14:00:06 -0400 (EDT)
commit 2e87f94680bb2fce0bf2ac2fc33c82628f61be20
Author: chrisb <zanghar freenet de>
Date: Wed May 6 19:56:55 2009 +0200
Remove scheme and unscheme modules
---
ChangeLog | 13 +
configure.in | 2 +-
intl/ChangeLog | 1086 ------
lisp/ChangeLog | 7058 ----------------------------------
lisp/Makefile.in | 2 +-
lisp/rep/user.jl | 8 -
lisp/rep/vm/compiler.jl | 2 -
lisp/rep/vm/compiler/scheme.jl | 327 --
lisp/rep/vm/compiler/unscheme.jl | 123 -
lisp/scheme.jl | 123 -
lisp/scheme/data.jl | 264 --
lisp/scheme/misc.jl | 177 -
lisp/scheme/syntax-funs.jl | 174 -
lisp/scheme/syntax.jl | 62 -
lisp/scheme/utils.jl | 48 -
lisp/unscheme.jl | 115 -
lisp/unscheme/data.jl | 248 --
lisp/unscheme/misc.jl | 172 -
lisp/unscheme/syntax-funs.jl | 52 -
lisp/unscheme/syntax.jl | 62 -
man/news.texi | 7 +
src/ChangeLog | 7882 --------------------------------------
22 files changed, 22 insertions(+), 17985 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 6649aff..bea02c0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,19 @@
2009-05-06 Christopher Bratusek <zanghar freenet de>
* Makefile.in: remove tar target [Ritz]
+ * configure.in: 0.17.4 released, bump to 0.90.0
+
+ * lisp/scheme/
+ * lisp/scheme.jl
+ * lisp/unscheme/
+ * lisp/unscheme.jl
+ * lisp/rep/vm/compiler/scheme.jl
+ * lisp/rep/vm/compiler/unscheme.jl: removed
+
+ * lisp/rep/vm/compiler.jl
+ * lisp/rep/user.jl
+ * lisp/Makefile: updated
+
2009-05-05 Christopher Bratusek <zanghar freenet de>
* man/lang.tex
* man/librep.texi
diff --git a/configure.in b/configure.in
index 17ea59e..63cb2f7 100644
--- a/configure.in
+++ b/configure.in
@@ -27,7 +27,7 @@ AC_CONFIG_MACRO_DIR([m4])
AM_PROG_LIBTOOL
dnl Release versioning info
-version="0.17.4"
+version="0.90.0"
dnl libtool versioning info: `CURRENT:REVISION:AGE'. CURRENT is the
dnl current interface id, REVISION is the version number of this
diff --git a/intl/ChangeLog b/intl/ChangeLog
deleted file mode 100644
index 1989501..0000000
--- a/intl/ChangeLog
+++ /dev/null
@@ -1,1086 +0,0 @@
-1998-04-29 Ulrich Drepper <drepper cygnus com>
-
- * intl/localealias.c (read_alias_file): Use unsigned char for
- local variables. Remove unused variable tp.
- * intl/l10nflist.c (_nl_normalize_codeset): Use unsigned char *
- for type of codeset. For loosing Solaris systems.
- * intl/loadinfo.h: Adapt prototype of _nl_normalize_codeset.
- * intl/bindtextdom.c (BINDTEXTDOMAIN): Don't define local variable
- len if not needed.
- Patches by Jim Meyering.
-
-1998-04-28 Ulrich Drepper <drepper cygnus com>
-
- * loadmsgcat.c (_nl_load_domain): Don't assign the element use_mmap if
- mmap is not supported.
-
- * hash-string.h: Don't include <values.h>.
-
-1998-04-27 Ulrich Drepper <drepper cygnus com>
-
- * textdomain.c: Use strdup is available.
-
- * localealias.c: Define HAVE_MEMPCPY so that we can use this
- function. Define and use semapahores to protect modfication of
- global objects when compiling for glibc. Add code to allow
- freeing alias table.
-
- * l10nflist.c: Don't assume stpcpy not being a macro.
-
- * gettextP.h: Define internal_function macri if not already done.
- Use glibc byte-swap macros instead of defining SWAP when compiled
- for glibc.
- (struct loaded_domain): Add elements to allow unloading.
-
- * Makefile.in (distclean): Don't remove libintl.h here.
-
- * bindtextdomain.c: Carry over changes from glibc. Use strdup if
- available.
-
- * dcgettext.c: Don't assume stpcpy not being a macro. Mark internal
- functions. Add memory freeing code for glibc.
-
- * dgettext.c: Update copyright.
-
- * explodename.c: Include stdlib.h and string.h only if they exist.
- Use strings.h eventually.
-
- * finddomain.c: Mark internal functions. Use strdup if available.
- Add memory freeing code for glibc.
-
-1997-10-10 20:00 Ulrich Drepper <drepper cygnus com>
-
- * libgettext.h: Fix dummy textdomain and bindtextdomain macros.
- They should return reasonable values.
- Reported by Tom Tromey <tromey cygnus com>.
-
-1997-09-16 03:33 Ulrich Drepper <drepper cygnus com>
-
- * libgettext.h: Define PARAMS also to `args' if __cplusplus is defined.
- * intlh.inst.in: Likewise.
- Reported by Jean-Marc Lasgouttes <Jean-Marc Lasgouttes inria fr>.
-
- * libintl.glibc: Update from current glibc version.
-
-1997-09-06 02:10 Ulrich Drepper <drepper cygnus com>
-
- * intlh.inst.in: Reformat copyright.
-
-1997-08-19 15:22 Ulrich Drepper <drepper cygnus com>
-
- * dcgettext.c (DCGETTEXT): Remove wrong comment.
-
-1997-08-16 00:13 Ulrich Drepper <drepper cygnus com>
-
- * Makefile.in (install-data): Don't change directory to install.
-
-1997-08-01 14:30 Ulrich Drepper <drepper cygnus com>
-
- * cat-compat.c: Fix copyright.
-
- * localealias.c: Don't define strchr unless !HAVE_STRCHR.
-
- * loadmsgcat.c: Update copyright. Fix typos.
-
- * l10nflist.c: Don't define strchr unless !HAVE_STRCHR.
- (_nl_make_l10nflist): Handle sponsor and revision correctly.
-
- * gettext.c: Update copyright.
- * gettext.h: Likewise.
- * hash-string.h: Likewise.
-
- * finddomain.c: Remoave dead code. Define strchr only if
- !HAVE_STRCHR.
-
- * explodename.c: Include <sys/types.h>.
-
- * explodename.c: Reformat copyright text.
- (_nl_explode_name): Fix typo.
-
- * dcgettext.c: Define and use __set_errno.
- (guess_category_value): Don't use setlocale if HAVE_LC_MESSAGES is
- not defined.
-
- * bindtextdom.c: Pretty printing.
-
-1997-05-01 02:25 Ulrich Drepper <drepper cygnus com>
-
- * dcgettext.c (guess_category_value): Don't depend on
- HAVE_LC_MESSAGES. We don't need the macro here.
- Patch by Bruno Haible <haible ilog fr>.
-
- * cat-compat.c (textdomain): DoN't refer to HAVE_SETLOCALE_NULL
- macro. Instead use HAVE_LOCALE_NULL and define it when using
- glibc, as in dcgettext.c.
- Patch by Bruno Haible <haible ilog fr>.
-
- * Makefile.in (CPPFLAGS): New variable. Reported by Franc,ois
- Pinard.
-
-Mon Mar 10 06:51:17 1997 Ulrich Drepper <drepper cygnus com>
-
- * Makefile.in: Implement handling of libtool.
-
- * gettextP.h: Change data structures for use of generic lowlevel
- i18n file handling.
-
-Wed Dec 4 20:21:18 1996 Ulrich Drepper <drepper cygnus com>
-
- * textdomain.c: Put parentheses around arguments of memcpy macro
- definition.
- * localealias.c: Likewise.
- * l10nflist.c: Likewise.
- * finddomain.c: Likewise.
- * bindtextdom.c: Likewise.
- Reported by Thomas Esken.
-
-Mon Nov 25 22:57:51 1996 Ulrich Drepper <drepper cygnus com>
-
- * textdomain.c: Move definition of `memcpy` macro to right
- position.
-
-Fri Nov 22 04:01:58 1996 Ulrich Drepper <drepper cygnus com>
-
- * finddomain.c [!HAVE_STRING_H && !_LIBC]: Define memcpy using
- bcopy if not already defined. Reported by Thomas Esken.
- * bindtextdom.c: Likewise.
- * l10nflist.c: Likewise.
- * localealias.c: Likewise.
- * textdomain.c: Likewise.
-
-Tue Oct 29 11:10:27 1996 Ulrich Drepper <drepper cygnus com>
-
- * Makefile.in (libdir): Change to use exec_prefix instead of
- prefix. Reported by Knut-HåvardAksnes <etokna eto ericsson se>.
-
-Sat Aug 31 03:07:09 1996 Ulrich Drepper <drepper cygnus com>
-
- * l10nflist.c (_nl_normalize_codeset): We convert to lower case,
- so don't prepend uppercase `ISO' for only numeric arg.
-
-Fri Jul 19 00:15:46 1996 Ulrich Drepper <drepper cygnus com>
-
- * l10nflist.c: Move inclusion of argz.h, ctype.h, stdlib.h after
- definition of _GNU_SOURCE. Patch by Roland McGrath.
-
- * Makefile.in (uninstall): Fix another bug with `for' loop and
- empty arguments. Patch by Jim Meyering. Correct name os
- uninstalled files: no intl- prefix anymore.
-
- * Makefile.in (install-data): Again work around shells which
- cannot handle mpty for list. Reported by Jim Meyering.
-
-Sat Jul 13 18:11:35 1996 Ulrich Drepper <drepper cygnus com>
-
- * Makefile.in (install): Split goal. Now depend on install-exec
- and install-data.
- (install-exec, install-data): New goals. Created from former
- install goal.
- Reported by Karl Berry.
-
-Sat Jun 22 04:58:14 1996 Ulrich Drepper <drepper cygnus com>
-
- * Makefile.in (MKINSTALLDIRS): New variable. Path to
- mkinstalldirs script.
- (install): use MKINSTALLDIRS variable or if the script is not present
- try to find it in the $top_scrdir).
-
-Wed Jun 19 02:56:56 1996 Ulrich Drepper <drepper cygnus com>
-
- * l10nflist.c: Linux libc *partly* includes the argz_* functions.
- Grr. Work around by renaming the static version and use macros
- for renaming.
-
-Tue Jun 18 20:11:17 1996 Ulrich Drepper <drepper cygnus com>
-
- * l10nflist.c: Correct presence test macros of __argz_* functions.
-
- * l10nflist.c: Include <argz.h> based on test of it instead when
- __argz_* functions are available.
- Reported by Andreas Schwab.
-
-Thu Jun 13 15:17:44 1996 Ulrich Drepper <drepper cygnus com>
-
- * explodename.c, l10nflist.c: Define NULL for dumb systems.
-
-Tue Jun 11 17:05:13 1996 Ulrich Drepper <drepper cygnus com>
-
- * intlh.inst.in, libgettext.h (dcgettext): Rename local variable
- result to __result to prevent name clash.
-
- * l10nflist.c, localealias.c, dcgettext.c: Define _GNU_SOURCE to
- get prototype for stpcpy and strcasecmp.
-
- * intlh.inst.in, libgettext.h: Move declaration of
- `_nl_msg_cat_cntr' outside __extension__ block to prevent warning
- from gcc's -Wnested-extern option.
-
-Fri Jun 7 01:58:00 1996 Ulrich Drepper <drepper cygnus com>
-
- * Makefile.in (install): Remove comment.
-
-Thu Jun 6 17:28:17 1996 Ulrich Drepper <drepper cygnus com>
-
- * Makefile.in (install): Work around for another Buglix stupidity.
- Always use an `else' close for `if's. Reported by Nelson Beebe.
-
- * Makefile.in (intlh.inst): Correct typo in phony rule.
- Reported by Nelson Beebe.
-
-Thu Jun 6 01:49:52 1996 Ulrich Drepper <drepper cygnus com>
-
- * dcgettext.c (read_alias_file): Rename variable alloca_list to
- block_list as the macro calls assume.
- Patch by Eric Backus.
-
- * localealias.c [!HAVE_ALLOCA]: Define alloca as macro using
- malloc.
- (read_alias_file): Rename varriabe alloca_list to block_list as the
- macro calls assume.
- Patch by Eric Backus.
-
- * l10nflist.c: Correct conditional for <argz.h> inclusion.
- Reported by Roland McGrath.
-
- * Makefile.in (all): Depend on all- USE_INCLUDED_LIBINTL@, not
- all- USE_NLS@.
-
- * Makefile.in (install): intlh.inst comes from local dir, not
- $(srcdir).
-
- * Makefile.in (intlh.inst): Special handling of this goal. If
- used in gettext, this is really a rul to construct this file. If
- used in any other package it is defined as a .PHONY rule with
- empty body.
-
- * finddomain.c: Extract locale file information handling into
- l10nfile.c. Rename local stpcpy__ function to stpcpy.
-
- * dcgettext.c (stpcpy): Add local definition.
-
- * l10nflist.c: Solve some portability problems. Patches partly by
- Thomas Esken. Add local definition of stpcpy.
-
-Tue Jun 4 02:47:49 1996 Ulrich Drepper <drepper cygnus com>
-
- * intlh.inst.in: Don't depend including <locale.h> on
- HAVE_LOCALE_H. Instead configure must rewrite this fiile
- depending on the result of the configure run.
-
- * Makefile.in (install): libintl.inst is now called intlh.inst.
- Add rules for updating intlh.inst from intlh.inst.in.
-
- * libintl.inst: Renamed to intlh.inst.in.
-
- * localealias.c, dcgettext.c [__GNUC__]: Define HAVE_ALLOCA to 1
- because gcc has __buitlin_alloca.
- Reported by Roland McGrath.
-
-Mon Jun 3 00:32:16 1996 Ulrich Drepper <drepper cygnus com>
-
- * Makefile.in (installcheck): New goal to fulfill needs of
- automake's distcheck.
-
- * Makefile.in (install): Reorder commands so that VERSION is
- found.
-
- * Makefile.in (gettextsrcdir): Now use subdirectory intl/ in
- @datadir@/gettext.
- (COMSRCS): Add l10nfile.c.
- (OBJECTS): Add l10nfile.o.
- (DISTFILES): Rename to DISTFILE.normal. Remove $(DISTFILES.common).
- (DISTFILE.gettext): Remove $(DISTFILES.common).
- (all-gettext): Remove goal.
- (install): If $(PACKAGE) = gettext install, otherwose do nothing. No
- package but gettext itself should install libintl.h + headers.
- (dist): Extend goal to work for gettext, too.
- (dist-gettext): Remove goal.
-
- * dcgettext.c [!HAVE_ALLOCA]: Define macro alloca by using malloc.
-
-Sun Jun 2 17:33:06 1996 Ulrich Drepper <drepper cygnus com>
-
- * loadmsgcat.c (_nl_load_domain): Parameter is now comes from
- find_l10nfile.
-
-Sat Jun 1 02:23:03 1996 Ulrich Drepper <drepper cygnus com>
-
- * l10nflist.c (__argz_next): Add definition.
-
- * dcgettext.c [!HAVE_ALLOCA]: Add code for handling missing alloca
- code. Use new l10nfile handling.
-
- * localealias.c [!HAVE_ALLOCA]: Add code for handling missing
- alloca code.
-
- * l10nflist.c: Initial revision.
-
-Tue Apr 2 18:51:18 1996 Ulrich Drepper <drepper myware>
-
- * Makefile.in (all-gettext): New goal. Same as all-yes.
-
-Thu Mar 28 23:01:22 1996 Karl Eichwalder <ke ke central de>
-
- * Makefile.in (gettextsrcdir): Define using @datadir
-
-Tue Mar 26 12:39:14 1996 Ulrich Drepper <drepper myware>
-
- * finddomain.c: Include <ctype.h>. Reported by Roland McGrath.
-
-Sat Mar 23 02:00:35 1996 Ulrich Drepper <drepper myware>
-
- * finddomain.c (stpcpy): Rename to stpcpy__ to prevent clashing
- with external declaration.
-
-Sat Mar 2 00:47:09 1996 Ulrich Drepper <drepper myware>
-
- * Makefile.in (all-no): Rename from all_no.
-
-Sat Feb 17 00:25:59 1996 Ulrich Drepper <drepper myware>
-
- * gettextP.h [loaded_domain]: Array `successor' must now contain up
- to 63 elements (because of codeset name normalization).
-
- * finddomain.c: Implement codeset name normalization.
-
-Thu Feb 15 04:39:09 1996 Ulrich Drepper <drepper myware>
-
- * Makefile.in (all): Define to `all- USE_NLS@'.
- (all-yes, all_no): New goals. `all-no' is noop, `all-yes'
- is former all.
-
-Mon Jan 15 21:46:01 1996 Howard Gayle <howard hal com>
-
- * localealias.c (alias_compare): Increment string pointers in loop
- of strcasecmp replacement.
-
-Fri Dec 29 21:16:34 1995 Ulrich Drepper <drepper myware>
-
- * Makefile.in (install-src): Who commented this goal out ? :-)
-
-Fri Dec 29 15:08:16 1995 Ulrich Drepper <drepper myware>
-
- * dcgettext.c (DCGETTEXT): Save `errno'. Failing system calls
- should not effect it because a missing catalog is no error.
- Reported by Harald K<o:>nig <koenig tat physik uni-tuebingen de>.
-
-Tue Dec 19 22:09:13 1995 Ulrich Drepper <drepper myware>
-
- * Makefile.in (Makefile): Explicitly use $(SHELL) for running
- shell scripts.
-
-Fri Dec 15 17:34:59 1995 Andreas Schwab <schwab issan informatik uni-dortmund de>
-
- * Makefile.in (install-src): Only install library and header when
- we use the own implementation. Don't do it when using the
- system's gettext or catgets functions.
-
- * dcgettext.c (find_msg): Must not swap domain->hash_size here.
-
-Sat Dec 9 16:24:37 1995 Ulrich Drepper <drepper myware>
-
- * localealias.c, libintl.inst, libgettext.h, hash-string.h,
- gettextP.h, finddomain.c, dcgettext.c, cat-compat.c:
- Use PARAMS instead of __P. Suggested by Roland McGrath.
-
-Tue Dec 5 11:39:14 1995 Larry Schwimmer <rosebud cyclone stanford edu>
-
- * libgettext.h: Use `#if !defined (_LIBINTL_H)' instead of `#if
- !_LIBINTL_H' because Solaris defines _LIBINTL_H as empty.
-
-Mon Dec 4 15:42:07 1995 Ulrich Drepper <drepper myware>
-
- * Makefile.in (install-src):
- Install libintl.inst instead of libintl.h.install.
-
-Sat Dec 2 22:51:38 1995 Marcus Daniels <marcus sysc pdx edu>
-
- * cat-compat.c (textdomain):
- Reverse order in which files are tried you load. First
- try local file, when this failed absolute path.
-
-Wed Nov 29 02:03:53 1995 Nelson H. F. Beebe <beebe math utah edu>
-
- * cat-compat.c (bindtextdomain): Add missing { }.
-
-Sun Nov 26 18:21:41 1995 Ulrich Drepper <drepper myware>
-
- * libintl.inst: Add missing __P definition. Reported by Nelson Beebe.
-
- * Makefile.in:
- Add dummy `all' and `dvi' goals. Reported by Tom Tromey.
-
-Sat Nov 25 16:12:01 1995 Franc,ois Pinard <pinard iro umontreal ca>
-
- * hash-string.h: Capitalize arguments of macros.
-
-Sat Nov 25 12:01:36 1995 Ulrich Drepper <drepper myware>
-
- * Makefile.in (DISTFILES): Prevent files names longer than 13
- characters. libintl.h.glibc->libintl.glibc,
- libintl.h.install->libintl.inst. Reported by Joshua R. Poulson.
-
-Sat Nov 25 11:31:12 1995 Eric Backus <ericb lsid hp com>
-
- * dcgettext.c: Fix bug in preprocessor conditionals.
-
-Sat Nov 25 02:35:27 1995 Nelson H. F. Beebe <beebe math utah edu>
-
- * libgettext.h: Solaris cc does not understand
- #if !SYMBOL1 && !SYMBOL2. Sad but true.
-
-Thu Nov 23 16:22:14 1995 Ulrich Drepper <drepper myware>
-
- * hash-string.h (hash_string):
- Fix for machine with >32 bit `unsigned long's.
-
- * dcgettext.c (DCGETTEXT):
- Fix horrible bug in loop for alternative translation.
-
-Thu Nov 23 01:45:29 1995 Ulrich Drepper <drepper myware>
-
- * po2tbl.sed.in, linux-msg.sed, xopen-msg.sed:
- Some further simplifications in message number generation.
-
-Mon Nov 20 21:08:43 1995 Ulrich Drepper <drepper myware>
-
- * libintl.h.glibc: Use __const instead of const in prototypes.
-
- * Makefile.in (install-src):
- Install libintl.h.install instead of libintl.h. This
- is a stripped-down version. Suggested by Peter Miller.
-
- * libintl.h.install, libintl.h.glibc: Initial revision.
-
- * localealias.c (_nl_expand_alias, read_alias_file):
- Protect prototypes in type casts by __P.
-
-Tue Nov 14 16:43:58 1995 Ulrich Drepper <drepper myware>
-
- * hash-string.h: Correct prototype for hash_string.
-
-Sun Nov 12 12:42:30 1995 Ulrich Drepper <drepper myware>
-
- * hash-string.h (hash_string): Add prototype.
-
- * gettextP.h: Fix copyright.
- (SWAP): Add prototype.
-
-Wed Nov 8 22:56:33 1995 Ulrich Drepper <drepper myware>
-
- * localealias.c (read_alias_file): Forgot sizeof.
- Avoid calling *printf function. This introduces a big overhead.
- Patch by Roland McGrath.
-
-Tue Nov 7 14:21:08 1995 Ulrich Drepper <drepper myware>
-
- * finddomain.c, cat-compat.c: Wrong indentation in #if for stpcpy.
-
- * finddomain.c (stpcpy):
- Define substitution function local. The macro was to flaky.
-
- * cat-compat.c: Fix typo.
-
- * xopen-msg.sed, linux-msg.sed:
- While bringing message number to right place only accept digits.
-
- * linux-msg.sed, xopen-msg.sed: Now that the counter does not have
- leading 0s we don't need to remove them. Reported by Marcus
- Daniels.
-
- * Makefile.in (../po/cat-id-tbl.o): Use $(top_srdir) in
- dependency. Reported by Marcus Daniels.
-
- * cat-compat.c: (stpcpy) [!_LIBC && !HAVE_STPCPY]: Define replacement.
- Generally cleanup using #if instead of #ifndef.
-
- * Makefile.in: Correct typos in comment. By Franc,ois Pinard.
-
-Mon Nov 6 00:27:02 1995 Ulrich Drepper <drepper myware>
-
- * Makefile.in (install-src): Don't install libintl.h and libintl.a
- if we use an available gettext implementation.
-
-Sun Nov 5 22:02:08 1995 Ulrich Drepper <drepper myware>
-
- * libgettext.h: Fix typo: HAVE_CATGETTS -> HAVE_CATGETS. Reported
- by Franc,ois Pinard.
-
- * libgettext.h: Use #if instead of #ifdef/#ifndef.
-
- * finddomain.c:
- Comments describing what has to be done should start with FIXME.
-
-Sun Nov 5 19:38:01 1995 Ulrich Drepper <drepper myware>
-
- * Makefile.in (DISTFILES): Split. Use DISTFILES with normal meaning.
- DISTFILES.common names the files common to both dist goals.
- DISTFILES.gettext are the files only distributed in GNU gettext.
-
-Sun Nov 5 17:32:54 1995 Ulrich Drepper <drepper myware>
-
- * dcgettext.c (DCGETTEXT): Correct searching in derived locales.
- This was necessary since a change in _nl_find_msg several weeks
- ago. I really don't know this is still not fixed.
-
-Sun Nov 5 12:43:12 1995 Ulrich Drepper <drepper myware>
-
- * loadmsgcat.c (_nl_load_domain): Test for FILENAME == NULL. This
- might mark a special condition.
-
- * finddomain.c (make_entry_rec): Don't make illegal entry as decided.
-
- * Makefile.in (dist): Suppress error message when ln failed.
- Get files from $(srcdir) explicitly.
-
- * libgettext.h (gettext_const): Rename to gettext_noop.
-
-Fri Nov 3 07:36:50 1995 Ulrich Drepper <drepper myware>
-
- * finddomain.c (make_entry_rec):
- Protect against wrong locale names by testing mask.
-
- * libgettext.h (gettext_const): Add macro definition.
- Capitalize macro arguments.
-
-Thu Nov 2 23:15:51 1995 Ulrich Drepper <drepper myware>
-
- * finddomain.c (_nl_find_domain):
- Test for pointer != NULL before accessing value.
- Reported by Tom Tromey.
-
- * gettext.c (NULL):
- Define as (void*)0 instad of 0. Reported by Franc,ois Pinard.
-
-Mon Oct 30 21:28:52 1995 Ulrich Drepper <drepper myware>
-
- * po2tbl.sed.in: Serious typo bug fixed by Jim Meyering.
-
-Sat Oct 28 23:20:47 1995 Ulrich Drepper <drepper myware>
-
- * libgettext.h: Disable dcgettext optimization for Solaris 2.3.
-
- * localealias.c (alias_compare):
- Peter Miller reported that tolower in some systems is
- even dumber than I thought. Protect call by `isupper'.
-
-Fri Oct 27 22:22:51 1995 Ulrich Drepper <drepper myware>
-
- * Makefile.in (libdir, includedir): New variables.
- (install-src): Install libintl.a and libintl.h in correct dirs.
-
-Fri Oct 27 22:07:29 1995 Ulrich Drepper <drepper myware>
-
- * Makefile.in (SOURCES): Fix typo: intrl.compat.c -> intl-compat.c.
-
- * po2tbl.sed.in: Patch for buggy SEDs by Christian von Roques.
-
- * localealias.c:
- Fix typo and superflous test. Reported by Christian von Roques.
-
-Fri Oct 6 11:52:05 1995 Ulrich Drepper <drepper myware>
-
- * finddomain.c (_nl_find_domain):
- Correct some remainder from the pre-CEN syntax. Now
- we don't have a constant number of successors anymore.
-
-Wed Sep 27 21:41:13 1995 Ulrich Drepper <drepper myware>
-
- * Makefile.in (DISTFILES): Add libintl.h.glibc.
-
- * Makefile.in (dist-libc): Add goal for packing sources for glibc.
- (COMSRCS, COMHDRS): Splitted to separate sources shared with glibc.
-
- * loadmsgcat.c: Forget to continue #if line.
-
- * localealias.c:
- [_LIBC]: Rename strcasecmp to __strcasecmp to keep ANSI C name
- space clean.
-
- * dcgettext.c, finddomain.c: Better comment to last change.
-
- * loadmsgcat.c:
- [_LIBC]: Rename fstat, open, close, read, mmap, and munmap to
- __fstat, __open, __close, __read, __mmap, and __munmap resp
- to keep ANSI C name space clean.
-
- * finddomain.c:
- [_LIBC]: Rename stpcpy to __stpcpy to keep ANSI C name space clean.
-
- * dcgettext.c:
- [_LIBC]: Rename getced and stpcpy to __getcwd and __stpcpy resp to
- keep ANSI C name space clean.
-
- * libgettext.h:
- Include sys/types.h for those old SysV systems out there.
- Reported by Francesco Potorti`.
-
- * loadmsgcat.c (use_mmap): Define if compiled for glibc.
-
- * bindtextdom.c: Include all those standard headers
- unconditionally if _LIBC is defined.
-
- * finddomain.c: Fix 2 times defiend -> defined.
-
- * textdomain.c: Include libintl.h instead of libgettext.h when
- compiling for glibc. Include all those standard headers
- unconditionally if _LIBC is defined.
-
- * localealias.c, loadmsgcat.c: Prepare to be compiled in glibc.
-
- * gettext.c:
- Include libintl.h instead of libgettext.h when compiling for glibc.
- Get NULL from stddef.h if we compile for glibc.
-
- * finddomain.c: Include libintl.h instead of libgettext.h when
- compiling for glibc. Include all those standard headers
- unconditionally if _LIBC is defined.
-
- * dcgettext.c: Include all those standard headers unconditionally
- if _LIBC is defined.
-
- * dgettext.c: If compiled in glibc include libintl.h instead of
- libgettext.h.
- (locale.h): Don't rely on HAVE_LOCALE_H when compiling for glibc.
-
- * dcgettext.c: If compiled in glibc include libintl.h instead of
- libgettext.h.
- (getcwd): Don't rely on HAVE_GETCWD when compiling for glibc.
-
- * bindtextdom.c:
- If compiled in glibc include libintl.h instead of libgettext.h.
-
-Mon Sep 25 22:23:06 1995 Ulrich Drepper <drepper myware>
-
- * localealias.c (_nl_expand_alias): Don't call bsearch if NMAP <= 0.
- Reported by Marcus Daniels.
-
- * cat-compat.c (bindtextdomain):
- String used in putenv must not be recycled.
- Reported by Marcus Daniels.
-
- * libgettext.h (__USE_GNU_GETTEXT):
- Additional symbol to signal that we use GNU gettext
- library.
-
- * cat-compat.c (bindtextdomain):
- Fix bug with the strange stpcpy replacement.
- Reported by Nelson Beebe.
-
-Sat Sep 23 08:23:51 1995 Ulrich Drepper <drepper myware>
-
- * cat-compat.c: Include <string.h> for stpcpy prototype.
-
- * localealias.c (read_alias_file):
- While expand strdup code temporary variable `cp' hided
- higher level variable with same name. Rename to `tp'.
-
- * textdomain.c (textdomain):
- Avoid warning by using temporary variable in strdup code.
-
- * finddomain.c (_nl_find_domain): Remove unused variable `application'.
-
-Thu Sep 21 15:51:44 1995 Ulrich Drepper <drepper myware>
-
- * localealias.c (alias_compare):
- Use strcasecmp() only if available. Else use
- implementation in place.
-
- * intl-compat.c:
- Wrapper functions now call *__ functions instead of __*.
-
- * libgettext.h: Declare prototypes for *__ functions instead for __*.
-
- * cat-compat.c, loadmsgcat.c:
- Don't use xmalloc, xstrdup, and stpcpy. These functions are not part
- of the standard libc and so prevent libintl.a from being used
- standalone.
-
- * bindtextdom.c:
- Don't use xmalloc, xstrdup, and stpcpy. These functions are not part
- of the standard libc and so prevent libintl.a from being used
- standalone.
- Rename to bindtextdomain__ if not used in GNU C Library.
-
- * dgettext.c:
- Rename function to dgettext__ if not used in GNU C Library.
-
- * gettext.c:
- Don't use xmalloc, xstrdup, and stpcpy. These functions are not part
- of the standard libc and so prevent libintl.a from being used
- standalone.
- Functions now called gettext__ if not used in GNU C Library.
-
- * dcgettext.c, localealias.c, textdomain.c, finddomain.c:
- Don't use xmalloc, xstrdup, and stpcpy. These functions are not part
- of the standard libc and so prevent libintl.a from being used
- standalone.
-
-Sun Sep 17 23:14:49 1995 Ulrich Drepper <drepper myware>
-
- * finddomain.c: Correct some bugs in handling of CEN standard
- locale definitions.
-
-Thu Sep 7 01:49:28 1995 Ulrich Drepper <drepper myware>
-
- * finddomain.c: Implement CEN syntax.
-
- * gettextP.h (loaded_domain): Extend number of successors to 31.
-
-Sat Aug 19 19:25:29 1995 Ulrich Drepper <drepper myware>
-
- * Makefile.in (aliaspath): Remove path to X11 locale dir.
-
- * Makefile.in: Make install-src depend on install. This helps
- gettext to install the sources and other packages can use the
- install goal.
-
-Sat Aug 19 15:19:33 1995 Ulrich Drepper <drepper myware>
-
- * Makefile.in (uninstall): Remove stuff installed by install-src.
-
-Tue Aug 15 13:13:53 1995 Ulrich Drepper <drepper myware>
-
- * VERSION.in: Initial revision.
-
- * Makefile.in (DISTFILES):
- Add VERSION file. This is not necessary for gettext, but
- for other packages using this library.
-
-Tue Aug 15 06:16:44 1995 Ulrich Drepper <drepper myware>
-
- * gettextP.h (_nl_find_domain):
- New prototype after changing search strategy.
-
- * finddomain.c (_nl_find_domain):
- We now try only to find a specified catalog. Fall back to other
- catalogs listed in the locale list is now done in __dcgettext.
-
- * dcgettext.c (__dcgettext):
- Now we provide message fall back even to different languages.
- I.e. if a message is not available in one language all the other
- in the locale list a tried. Formerly fall back was only possible
- within one language. Implemented by moving one loop from
- _nl_find_domain to here.
-
-Mon Aug 14 23:45:50 1995 Ulrich Drepper <drepper myware>
-
- * Makefile.in (gettextsrcdir):
- Directory where source of GNU gettext library are made
- available.
- (INSTALL, INSTALL_DATA): Programs used for installing sources.
- (gettext-src): New. Rule to install GNU gettext sources for use in
- gettextize shell script.
-
-Sun Aug 13 14:40:48 1995 Ulrich Drepper <drepper myware>
-
- * loadmsgcat.c (_nl_load_domain):
- Use mmap for loading only when munmap function is
- also available.
-
- * Makefile.in (install): Depend on `all' goal.
-
-Wed Aug 9 11:04:33 1995 Ulrich Drepper <drepper myware>
-
- * localealias.c (read_alias_file):
- Do not overwrite '\n' when terminating alias value string.
-
- * localealias.c (read_alias_file):
- Handle long lines. Ignore the rest not fitting in
- the buffer after the initial `fgets' call.
-
-Wed Aug 9 00:54:29 1995 Ulrich Drepper <drepper myware>
-
- * gettextP.h (_nl_load_domain):
- Add prototype, replacing prototype for _nl_load_msg_cat.
-
- * finddomain.c (_nl_find_domain):
- Remove unneeded variable filename and filename_len.
- (expand_alias): Remove prototype because functions does not
- exist anymore.
-
- * localealias.c (read_alias_file):
- Change type of fname_len parameter to int.
- (xmalloc): Add prototype.
-
- * loadmsgcat.c: Better prototypes for xmalloc.
-
-Tue Aug 8 22:30:39 1995 Ulrich Drepper <drepper myware>
-
- * finddomain.c (_nl_find_domain):
- Allow alias name to be constructed from the four components.
-
- * Makefile.in (aliaspath): New variable. Set to preliminary value.
- (SOURCES): Add localealias.c.
- (OBJECTS): Add localealias.o.
-
- * gettextP.h: Add prototype for _nl_expand_alias.
-
- * finddomain.c: Aliasing handled in intl/localealias.c.
-
- * localealias.c: Aliasing for locale names.
-
- * bindtextdom.c: Better prototypes for xmalloc and xstrdup.
-
-Mon Aug 7 23:47:42 1995 Ulrich Drepper <drepper myware>
-
- * Makefile.in (DISTFILES): gettext.perl is now found in misc/.
-
- * cat-compat.c (bindtextdomain):
- Correct implementation. dirname parameter was not used.
- Reported by Marcus Daniels.
-
- * gettextP.h (loaded_domain):
- New fields `successor' and `decided' for oo, lazy
- message handling implementation.
-
- * dcgettext.c:
- Adopt for oo, lazy message handliing.
- Now we can inherit translations from less specific locales.
- (find_msg): New function.
-
- * loadmsgcat.c, finddomain.c:
- Complete rewrite. Implement oo, lazy message handling :-).
- We now have an additional environment variable `LANGUAGE' with
- a higher priority than LC_ALL for the LC_MESSAGE locale.
- Here we can set a colon separated list of specifications each
- of the form `language[_territory[ codeset]][ modifier]'.
-
-Sat Aug 5 09:55:42 1995 Ulrich Drepper <drepper myware>
-
- * finddomain.c (unistd.h):
- Include to get _PC_PATH_MAX defined on system having it.
-
-Fri Aug 4 22:42:00 1995 Ulrich Drepper <drepper myware>
-
- * finddomain.c (stpcpy): Include prototype.
-
- * Makefile.in (dist): Remove `copying instead' message.
-
-Wed Aug 2 18:52:03 1995 Ulrich Drepper <drepper myware>
-
- * Makefile.in (ID, TAGS): Do not use $^.
-
-Tue Aug 1 20:07:11 1995 Ulrich Drepper <drepper myware>
-
- * Makefile.in (TAGS, ID): Use $^ as command argument.
- (TAGS): Give etags -o option t write to current directory,
- not $(srcdir).
- (ID): Use $(srcdir) instead os $(top_srcdir)/src.
- (distclean): Remove ID.
-
-Sun Jul 30 11:51:46 1995 Ulrich Drepper <drepper myware>
-
- * Makefile.in (gnulocaledir):
- New variable, always using share/ for data directory.
- (DEFS): Add GNULOCALEDIR, used in finddomain.c.
-
- * finddomain.c (_nl_default_dirname):
- Set to GNULOCALEDIR, because it always has to point
- to the directory where GNU gettext Library writes it to.
-
- * intl-compat.c (textdomain, bindtextdomain):
- Undefine macros before function definition.
-
-Sat Jul 22 01:10:02 1995 Ulrich Drepper <drepper myware>
-
- * libgettext.h (_LIBINTL_H):
- Protect definition in case where this file is included as
- libgettext.h on Solaris machines. Add comment about this.
-
-Wed Jul 19 02:36:42 1995 Ulrich Drepper <drepper myware>
-
- * intl-compat.c (textdomain): Correct typo.
-
-Wed Jul 19 01:51:35 1995 Ulrich Drepper <drepper myware>
-
- * dcgettext.c (dcgettext): Function now called __dcgettext.
-
- * dgettext.c (dgettext): Now called __dgettext and calls
- __dcgettext.
-
- * gettext.c (gettext):
- Function now called __gettext and calls __dgettext.
-
- * textdomain.c (textdomain): Function now called __textdomain.
-
- * bindtextdom.c (bindtextdomain): Function now called
- __bindtextdomain.
-
- * intl-compat.c: Initial revision.
-
- * Makefile.in (SOURCES): Add intl-compat.c.
- (OBJECTS): We always compile the GNU gettext library functions.
- OBJECTS contains all objects but cat-compat.o, ../po/cat-if-tbl.o,
- and intl-compat.o.
- (GETTOBJS): Contains now only intl-compat.o.
-
- * libgettext.h:
- Re-include protection matches dualistic character of libgettext.h.
- For all functions in GNU gettext library define __ counter part.
-
- * finddomain.c (strchr): Define as index if not found in C library.
- (_nl_find_domain): For relative paths paste / in between.
-
-Tue Jul 18 16:37:45 1995 Ulrich Drepper <drepper myware>
-
- * loadmsgcat.c, finddomain.c: Add inclusion of sys/types.h.
-
- * xopen-msg.sed: Fix bug with `msgstr ""' lines.
- A little bit better comments.
-
-Tue Jul 18 01:18:27 1995 Ulrich Drepper <drepper myware>
-
- * Makefile.in:
- po-mode.el, makelinks, combine-sh are now found in ../misc.
-
- * po-mode.el, makelinks, combine-sh, elisp-comp:
- Moved to ../misc/.
-
- * libgettext.h, gettextP.h, gettext.h: Uniform test for __STDC__.
-
-Sun Jul 16 22:33:02 1995 Ulrich Drepper <drepper myware>
-
- * Makefile.in (INSTALL, INSTALL_DATA): New variables.
- (install-data, uninstall): Install/uninstall .elc file.
-
- * po-mode.el (Installation comment):
- Add .pox as possible extension of .po files.
-
-Sun Jul 16 13:23:27 1995 Ulrich Drepper <drepper myware>
-
- * elisp-comp: Complete new version by Franc,ois: This does not
- fail when not compiling in the source directory.
-
-Sun Jul 16 00:12:17 1995 Ulrich Drepper <drepper myware>
-
- * Makefile.in (../po/cat-id-tbl.o):
- Use $(MAKE) instead of make for recursive make.
-
- * Makefile.in (.el.elc): Use $(SHELL) instead of /bin/sh.
- (install-exec): Add missing dummy goal.
- (install-data, uninstall): @ in multi-line shell command at
- beginning, not in front of echo. Reported by Eric Backus.
-
-Sat Jul 15 00:21:28 1995 Ulrich Drepper <drepper myware>
-
- * Makefile.in (DISTFILES):
- Rename libgettext.perl to gettext.perl to fit in 14 chars
- file systems.
-
- * gettext.perl:
- Rename to gettext.perl to fit in 14 chars file systems.
-
-Thu Jul 13 23:17:20 1995 Ulrich Drepper <drepper myware>
-
- * cat-compat.c: If !STDC_HEADERS try to include malloc.h.
-
-Thu Jul 13 20:55:02 1995 Ulrich Drepper <drepper myware>
-
- * po2tbl.sed.in: Pretty printing.
-
- * linux-msg.sed, xopen-msg.sed:
- Correct bugs with handling substitute flags in branches.
-
- * hash-string.h (hash_string):
- Old K&R compilers don't under stand `unsigned char'.
-
- * gettext.h (nls_uint32):
- Some old K&R compilers (eg HP) don't understand `unsigned int'.
-
- * cat-compat.c (msg_to_cat_id): De-ANSI-fy prototypes.
-
-Thu Jul 13 01:34:33 1995 Ulrich Drepper <drepper myware>
-
- * Makefile.in (ELCFILES): New variable.
- (DISTFILES): Add elisp-comp.
- Add implicit rule for .el -> .elc compilation.
- (install-data): install $ELCFILES
- (clean): renamed po-to-tbl and po-to-msg to po2tbl and po2msg resp.
-
- * elisp-comp: Initial revision
-
-Wed Jul 12 16:14:52 1995 Ulrich Drepper <drepper myware>
-
- * Makefile.in:
- cat-id-tbl.c is now found in po/. This enables us to use an identical
- intl/ directory in all packages.
-
- * dcgettext.c (dcgettext): hashing does not work for table size <= 2.
-
- * textdomain.c: fix typo (#if def -> #if defined)
-
-Tue Jul 11 18:44:43 1995 Ulrich Drepper <drepper myware>
-
- * Makefile.in (stamp-cat-id): use top_srcdir to address source files
- (DISTFILES,distclean): move tupdate.perl to src/
-
- * po-to-tbl.sed.in:
- add additional jump to clear change flag to recognize multiline strings
-
-Tue Jul 11 01:32:50 1995 Ulrich Drepper <drepper myware>
-
- * textdomain.c: Protect inclusion of stdlib.h and string.h.
-
- * loadmsgcat.c: Protect inclusion of stdlib.h.
-
- * libgettext.h: Protect inclusion of locale.h.
- Allow use in C++ programs.
- Define NULL is not happened already.
-
- * Makefile.in (DISTFILES): ship po-to-tbl.sed.in instead of
- po-to-tbl.sed.
- (distclean): remove po-to-tbl.sed and tupdate.perl.
-
- * tupdate.perl.in: Substitute Perl path even in exec line.
- Don't include entries without translation from old .po file.
-
-Tue Jul 4 00:41:51 1995 Ulrich Drepper <drepper myware>
-
- * tupdate.perl.in: use "Updated: " in msgid "".
-
- * cat-compat.c: Fix typo (LOCALDIR -> LOCALEDIR).
- Define getenv if !__STDC__.
-
- * bindtextdom.c: Protect stdlib.h and string.h inclusion.
- Define free if !__STDC__.
-
- * finddomain.c: Change DEF_MSG_DOM_DIR to LOCALEDIR.
- Define free if !__STDC__.
-
- * cat-compat.c: Change DEF_MSG_DOM_DIR to LOCALEDIR.
-
-Mon Jul 3 23:56:30 1995 Ulrich Drepper <drepper myware>
-
- * Makefile.in: Use LOCALEDIR instead of DEF_MSG_DOM_DIR.
- Remove unneeded $(srcdir) from Makefile.in dependency.
-
- * makelinks: Add copyright and short description.
-
- * po-mode.el: Last version for 0.7.
-
- * tupdate.perl.in: Fix die message.
-
- * dcgettext.c: Protect include of string.h.
-
- * gettext.c: Protect include of stdlib.h and further tries to get NULL.
-
- * finddomain.c: Some corrections in includes.
-
- * Makefile.in (INCLUDES): Prune list correct path to Makefile.in.
-
- * po-to-tbl.sed: Adopt for new .po file format.
-
- * linux-msg.sed, xopen-msg.sed: Adopt for new .po file format.
-
-Sun Jul 2 23:55:03 1995 Ulrich Drepper <drepper myware>
-
- * tupdate.perl.in: Complete rewrite for new .po file format.
-
-Sun Jul 2 02:06:50 1995 Ulrich Drepper <drepper myware>
-
- * First official release. This directory contains all the code
- needed to internationalize own packages. It provides functions
- which allow to use the X/Open catgets function with an interface
- like the Uniforum gettext function. For system which does not
- have neither of those a complete implementation is provided.
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
deleted file mode 100644
index 45268f6..0000000
--- a/lisp/ChangeLog
+++ /dev/null
@@ -1,7058 +0,0 @@
-2007-11-02 John Harper <jsh unfactored org>
-
- * rep/util/repl.jl: integrated patch from Timo Korvola to do
- meta command completion (scavenged from sawfish list archives)
-
-2004-10-06 John Harper <jsh unfactored org>
-
- * rep/util/repl.jl: added ,compile-file command
-
-2004-02-21 John Harper <jsh unfactored org>
-
- * rep/xml/reader.jl (read-exclam-body): swallow the closing '>'
- character
-
-2003-11-24 John Harper <jsh unfactored org>
-
- * version 0.17
-
-2003-05-08 John Harper <jsh unfactored org>
-
- * rep/util/repl.jl (,collect): print memory usage statistics
-
-2003-07-08 John Harper <jsh unfactored org>
-
- * rep/xml/reader.jl (read-tag-body): unreverse items when
- creating the item. Adapted from a patch from Alexander V.
- Nikolaev <avn altlinux ru>
-
-2003-03-18 John Harper <jsh unfactored org>
-
- * rep/data/string-util.jl (string-capitalized-p,
- capitalize-string): fixed zero-length string case. Pointed out
- and fixed by Charles Stewart <cas linearity org>, though I used
- a slightly different patch
-
-2003-02-25 John Harper <jsh unfactored org>
-
- * version 0.16.2
-
-2002-09-29 John Harper <jsh unfactored org>
-
- * rep/lang/interpreter.jl (define-special-variable): define
- manually, not using backquote, which seems to sometimes not be
- loaded when this is used
-
-2002-09-21 John Harper <jsh unfactored org>
-
- * rep/vm/compiler/modules.jl (compiler-boundp): check if arg is
- a symbol
-
-2002-08-01 John Harper <jsh unfactored org>
-
- * rep/xml/reader.jl (read-param-list): skip whitespace around
- '=' characters in attribute lists
-
-2002-06-22 John Harper <jsh unfactored org>
-
- * version 0.16.1
-
- * Makefile.in: include rep/xml in installed modules
-
- * rep/vm/compiler/modules.jl (find-structure): catch the error
- that happens if the module can't be loaded and return nil
-
-2002-06-20 John Harper <jsh unfactored org>
-
- * version 0.16
-
- * rep/xml/reader.jl, rep/xml/printer.jl: some code I wrote when
- I was interested in making rep speak xml-rpc. I didn't finish
- it, but, if I recall correctly, the xml parser and printer
- worked well enough that it might be useful for toy problems..
-
-2002-04-21 John Harper <jsh unfactored org>
-
- * rep/util/autoloader.jl (make-autoloader): propagate arbitrary
- arguments after the two we're interested in
-
-2002-04-14 John Harper <jsh unfactored org>
-
- * rep/data/queues.jl: rewritten so that enqueuing is O(1) not
- O(n)
-
-2002-04-13 John Harper <jsh unfactored org>
-
- * rep/threads/proxy.jl: new module, untested, written a long
- time ago and never used
-
- * rep/lang/profiler.jl: don't use the "interval" when printing
- results, it's totally bogus..
-
- * rep/user.jl (parse-options): in --debug mode, break on failed
- checks, etc
-
-2002-03-30 John Harper <jsh unfactored org>
-
- * rep/net/rpc.jl: more reliable/predictable error handling.
- Also when closing a socket, report failures on any requests
- pending on that socket (avoids hanging forever..)
-
-2002-03-24 John Harper <jsh unfactored org>
-
- * rep/vm/compiler/inline.jl (max-inline-depth): increased from
- 8 to 64
-
-2002-03-09 John Harper <jsh pixelslut com>
-
- * rep/util/repl.jl (repl-eval, define-repl-command): export
- these functions - they may be useful for custom repls
-
-2002-03-03 John Harper <jsh pixelslut com>
-
- * rep/data/objects.jl: added an object-lambda macro that's
- useful when the body of the object (i.e. the method switch)
- needs to be implemented by hand
-
-2002-02-27 John Harper <jsh pixelslut com>
-
- * rep/net/rpc.jl (make-proxy): use a table of weak references
- to cache rpc proxies
-
-2002-02-09 John Harper <jsh unfactored org>
-
- * rep/util/repl.jl (do-readline): new function to avoid loading
- and using readline if stdin isn't a tty
-
-2002-01-20 John Harper <jsh unfactored org>
-
- * rep/data/trie.jl: new module. A useful data structure for
- encoding word lists as character trees
-
-2001-12-20 John Harper <jsh unfactored org>
-
- * rep/net/rpc.jl: new (incompatible) rpc protocol. It now
- allows three types of calls, synchronous, asynchronous (a
- callback will be called with the result) and one-way
-
-2001-12-14 John Harper <jsh unfactored org>
-
- * rep/io/streams.jl (format-hooks-alist): initialize this
- correctly, so the function values are added, not their names
-
-2001-10-28 John Harper <jsh unfactored org>
-
- * version 0.15.2
-
-2001-10-19 John Harper <jsh unfactored org>
-
- * rep/util/repl.jl: renamed ,dis as ,disassemble (since the
- unique prefix thing will accept ,dis anyway)
-
-2001-10-11 John Harper <jsh unfactored org>
-
- * rep/lang/interpreter.jl (default-error-handler): catch and
- ignore errors that happen in the error handler (to avoid a
- possible infinite loop..)
-
-2001-10-01 John Harper <jsh unfactored org>
-
- * version 0.15
-
-2001-09-15 John Harper <jsh unfactored org>
-
- * rep/www/cgi-get.jl (self-test): new function. Some test cases
-
- * rep/www/quote-url.jl (quote-url, unquote-url): defined in
- terms of string-replace now
- (self-test): new function. A few test cases for this module
-
- * rep/regexp.jl (string-replace): the TEMPLATE parameter may
- now be a function, e.g. (string-replace "[ab]" (lambda (s) (1+
- (aref s (match-start)))) "foobar") -> "foocbr"
-
-2001-09-02 John Harper <jsh pixelslut com>
-
- * rep/io/file-handlers/tilde.jl (tilde-file-handler): fixed
- last change to this file so that it actually does expand the
- stuff after the tilde sometimes!
-
- * rep/vm/compiler/rep.jl (compile-log): new function, handles
- the new `log' function (which optionally has a BASE parameter).
- Compiles this into two calls to log and a divide
-
- * rep/util/repl.jl: fixed ,reload and ,unload commands not to
- try to unload structures that don't actually exist
-
-2001-08-31 John Harper <jsh pixelslut com>
-
- * rep/test/framework.jl (run-all-self-tests,
- run-module-self-tests): these both return the number of failed
- tests now
-
-2001-08-27 John Harper <jsh pixelslut com>
-
- * rep/util/repl.jl: meta commands may now be specified using
- unique prefixes, instead of their whole name
-
-2001-08-24 John Harper <jsh pixelslut com>
-
- * rep/io/file-handlers/tilde.jl (tilde-file-handler): in
- expand-file-name handler, only try to expand non-null things
- after the tilde
-
-2001-08-16 John Harper <jsh pixelslut com>
-
- * rep/vm/compiler/rep.jl (compile-set): raise an error if
- trying to set value of a non-symbol
-
-2001-08-13 John Harper <jsh pixelslut com>
-
- * rep/vm/compiler/rep.jl (compile-letrec): when compiling the
- lambda for the second time, turn off all output (to avoid
- repeating error messages)
-
- * rep/vm/compiler/utils.jl (silence-compiler): new fluid
- variable
- (compiler-message): only print messages if silence-compiler is
- false
-
- * rep/threads/message-port.jl (message-fetch): rewrote wait
- loop so it always tries once after condition-wait failed
-
- * rep/lang/debugger.jl (print-backtrace): print backtrace in
- top to bottom order, not bottom to top
-
-2001-08-10 John Harper <jsh pixelslut com>
-
- * rep/threads/message-port.jl (message-send): remembered to
- actually signal the condition after enqueuing the message!
-
-2001-08-09 John Harper <jsh pixelslut com>
-
- * rep/threads/message-port.jl: new module, implements a simple
- message queue for threads using mutexes and condition variables
-
- * rep/net/rpc.jl: one minor bug fix
-
-2001-08-08 John Harper <jsh pixelslut com>
-
- * rep/user.jl, rep/lang/debugger.jl: renamed --rep-debug as
- --debug and --rep-emacs-debugger as --emacs-debug
-
-2001-08-07 John Harper <jsh pixelslut com>
-
- * rep/lang/define.jl (define-scan-body): only return new list
- structure if it's different to the original. This prevents line
- number information being discarded needlessly
-
- * rep/lang/debugger.jl: much improved. Supports line numbers
- (with emacs style embedded cookies), better backtraces, etc..
-
- * rep/user.jl: support --rep-debug option -- launches into the
- debugger
-
- * rep/data/ring.jl, rep/data/queues.jl:
- * rep/io/file-handlers/remote/rep.jl,
- rep/io/file-handlers/remote/ftp.jl:
- * rep/lang/interpreter.jl:
- * rep/threads/condition-variable.jl:
- * rep/util/repl.jl:
- * scheme/misc.jl, scheme/data.jl:
- * unscheme/misc.jl, unscheme/data.jl:
-
- Declarations to silence compiler warnings about unused
- parameters
-
- * rep/vm/compiler.jl:
- * rep/vm/compiler/utils.jl, rep/vm/compiler/scheme.jl,
- rep/vm/compiler/rep.jl, rep/vm/compiler/modules.jl,
- rep/vm/compiler/inline.jl, rep/vm/compiler/bindings.jl,
- rep/vm/compiler/basic.jl:
-
- Better error reporting, including (gasp) line numbers
-
-2001-08-02 John Harper <jsh pixelslut com>
-
- * rep/threads/condition-variable.jl (condition-variable-wait):
- new optional TIMEOUT parameter. The function returns false if
- the timeout expires. Note that even if this is the case the
- function will still re-obtain the mutex before exiting. Also,
- release the mutex and suspend the thread atomically
-
- * rep/threads/mutex.jl (obtain-mutex): new optional TIMEOUT
- parameter. The function returns false if the timeout expired
- and the mutex couldn't be obtained, true otherwise
-
-2001-08-01 John Harper <jsh pixelslut com>
-
- * rep/vm/compiler/modules.jl (symbol-value-1): return false for
- variables with local bindings
-
- (compiler-macroexpand-1): ignore macro calls whose name has a
- local bindings
-
- * rep/util/repl.jl (repl-iterate): ignore empty lines
-
-2001-07-31 John Harper <jsh pixelslut com>
-
- * rep/data/objects.jl (object): reverted last change (factoring
- out lambda expressions). It moves them out of the scope of the
- `self' parameter, which is a bad thing
-
-2001-07-30 John Harper <jsh pixelslut com>
-
- * rep/data/objects.jl: move method bodies that are lambda
- expressions into a let block outside the object's lambda in the
- expansion, then reference their new names. This avoids consing
- a new closure each time a method is called
-
-2001-07-28 John Harper <jsh pixelslut com>
-
- * rep/io/file-handlers/tilde.jl: fixed the logic for
- substituting ~ for the user's home directory at initialization
-
- * rep/lang/error-helper.jl (for-each-structure): ignore null
- structures (possible if called while creating a structure?)
-
-2001-07-26 John Harper <jsh pixelslut com>
-
- * rep/util/repl.jl: don't print results that are #undefined
-
- * rep/lang/interpreter.jl, rep/util/gaol.jl (define-value):
- finally deleted
-
- * rep/lang/interpreter.jl: export a self-referential binding of
- #undefined
-
- * rep/lang/error-helper.jl: new module -- given an error, try
- to deduce what could have caused, and how the user can avoid it
- in future. Currently only handles some void-value errors
-
- * rep/lang/interpreter.jl (default-error-handler): call the
- error-helper function
-
- * rep/data/objects.jl: objects now have an implicit `self'
- binding -- the object representing themself (or their derived
- self). Also fixed a bug where the BASE-OBJECT parameter could
- be evaluated zero or multiple times, instead of just once
-
-2001-07-22 John Harper <jsh pixelslut com>
-
- * rep/util/repl.jl: use the standard error handler, instead of
- a cut-and-pasted version
-
-2001-07-17 John Harper <jsh pixelslut com>
-
- * rep/lang/interpreter.jl (letrec): allow right-hand-sides of
- letrec bindings to have more than one form
-
- * rep/io/file-handlers/remote/rep.jl
- (remote-rep-output-filter): don't print annoying messages about
- unhandled input
-
-2001-07-15 John Harper <jsh pixelslut com>
-
- * rep/user.jl: catch errors signalled during command line
- option processing, pass them to the default error handler and
- quit. This avoids the horrible `error -> (void-value foo)'
- style error messages
-
-2001-07-02 John Harper <jsh pixelslut com>
-
- * version 0.14
-
-2001-06-29 John Harper <jsh pixelslut com>
-
- * rep/net/rpc.jl: added some (disabled) debugging code
-
- * rep/net/rpc.jl: minor changes
-
-2001-06-28 John Harper <jsh pixelslut com>
-
- * rep/net/rpc.jl (async-rpc-call, make-proxy,
- rpc-output-handler): support async (`one way') rpc requests
-
- * rep/data.jl (vector->list, list->vector): new functions
-
- * rep/net/rpc.jl (make-proxy): precalculate global-id value
-
-2001-06-27 John Harper <jsh pixelslut com>
-
- * rep/net/rpc.jl: added some comments, some API changes
-
-2001-06-26 John Harper <jsh pixelslut com>
-
- * rep/net/rpc.jl (call-with-rpc-servant): new function
-
- * rep/net/rpc.jl: misc changes. Added support for global
- servant ids (prefixed with ip address and port number)
-
- * rep/net/rpc.jl: new module -- simple Lisp syntax based RPC
- mechanism over TCP streams
-
-2001-06-14 John Harper <jsh pixelslut com>
-
- * rep/vm/compiler/rep.jl (compile-cond): disabled dead-code
- warnings after constant conditions, they're too annoying to be
- useful
-
-2001-05-04 John Harper <jsh eazel com>
-
- * rep/vm/compiler/rep.jl (trans-defvar): fixed typo in the last
- change (using , in a non-backquote form)
-
-2001-05-01 John Harper <jsh eazel com>
-
- * rep/vm/compiler/rep.jl (trans-defvar): if the defvar has a
- constant doc string, add it to the documentation database
-
-2001-04-30 John Harper <jsh eazel com>
-
- * rep/lang/interpreter.jl (define-special-variable): new macro,
- a combination of defvar and setq. It always declares the
- variable special and it always sets the value
-
-2001-03-26 John Harper <jsh eazel com>
-
- Work to make rep self-testing. The framework and some tests
- exist, but I still need to add unit tests for many modules:
-
- * rep/test/framework.jl: self-testing framework. Provides
- `assert', 'check' and `test' macros, as well as random other
- stuff for supporting these.
-
- * rep/test/data.jl: tests for rep.data module
-
- * rep/data/queues.jl: added self tests
-
- * rep/user.jl: added --check option
- * rep/util/repl.jl: added a `,check' command
- * Makefile.in: added a `check' target
-
- * rep/io/file-handlers/remote/rep.jl (remote-rep-while): use
- accept-process-output-1 instead of accept-process-output
- (remote-rep-output-filter): ignore blank lines
-
-2001-03-22 John Harper <jsh eazel com>
-
- * version 0.13.5
-
-2001-03-21 John Harper <jsh eazel com>
-
- * rep/io/file-handlers/tar.jl (tarfh-call-tar): only call
- tarfh-check-tar-program if the given tar file actually exists
-
-2001-03-12 John Harper <jsh eazel com>
-
- * rep/io/file-handlers/tar.jl
- (tarfh-alternative-gnu-tar-programs): added `gnutar' and the
- GNU tar emulation script to this list
-
- (tarfh-list-regexp): hacked this to also recognize the date
- format used by Solaris tar
-
-2001-02-13 John Harper <jsh eazel com>
-
- * rep.jl (debug-entry, debug-exit, debug-error-entry): declare
- using defvar
-
-2001-02-12 John Harper <jsh eazel com>
-
- * rep/data/string-util.jl (string-upper-case-p,
- string-lower-case-p): only return t if the string contains at
- least one upper/lower case character
-
-2001-01-27 John Harper <jsh eazel com>
-
- * rep/i18n/xgettext.jl (scan): fixed typo when scanning
- `lambda' forms (was scanning the car (!?) instead of the cddr)
-
-2001-01-14 John Harper <jsh eazel com>
-
- * rep/util/gaol.jl (gaol-safe-functions): added listp
-
-2001-01-08 John Harper <jsh eazel com>
-
- * rep/util/repl.jl (repl-iterate): change the error handler
- reading normal forms to catch premature-end-of-stream, not
- end-of-stream
-
-2001-01-04 John Harper <jsh eazel com>
-
- * version 0.13.4
-
-2000-12-29 John Harper <jsh eazel com>
-
- * rep/threads/condition-variable.jl: new file, implemented
- the usual condition variable interface (but not quite strong
- enough for SRFI-18 compatibility, condition-variable-wait would
- need a TIMEOUT parameter)
-
-2000-12-20 John Harper <jsh eazel com>
-
- * rep/util/gaol.jl (gaol-safe-functions): added string-split
- and string-replace
-
-2000-12-03 John Harper <jsh eazel com>
-
- * version 0.13.3
-
-2000-11-27 John Harper <jsh eazel com>
-
- * scheme/data.jl: when defining `>' and similar predicates, use
- `rep#FOO' to get the rep versions, instead of just relying on
- the fact that their local bindings haven't been created yet
-
-2000-11-26 John Harper <jsh eazel com>
-
- * rep/lang/define.jl (define-scan-form): don't expand (i.e.
- delete) declaration forms
-
-2000-11-21 John Harper <jsh eazel com>
-
- * rep/vm/peephole.jl (peephole-optimizer): added transformation
- `{jpt,jpn,jtp,jnp} X; jmp Y; X: --> {jnp,jtp,jpn.jpt} Y; X:',
- can help some `do' loops e.g.
-
-2000-11-12 John Harper <jsh eazel com>
-
- * rep/util/repl.jl (completion-generator): pass this function
- as an argument to `readline' (i.e. don't call it
- rl-completion-generator)
-
-2000-10-23 John Harper <jsh eazel com>
-
- * version 0.13.2
-
-2000-10-18 John Harper <john dcs warwick ac uk>
-
- * Makefile.in: patch from Scott Heavner <sdh po cwru edu> to
- fix `install' shell scripting
-
-2000-09-29 John Harper <john dcs warwick ac uk>
-
- * rep/lang/define.jl: track bound variables, then don't expand
- calls to these special forms or macros
-
-2000-09-28 John Harper <john dcs warwick ac uk>
-
- * version 0.13.1
-
-2000-09-27 John Harper <john dcs warwick ac uk>
-
- * rep/io/file-handlers/remote/ftp.jl (remote-ftp-get-file):
- work around bug in `ls .' with my (wu) ftpd
-
- * rep/system/pwd-prompt.jl: import rep.io.streams and
- rep.lang.math
-
-2000-09-26 John Harper <john dcs warwick ac uk>
-
- * rep/lang/define.jl (define-scan-form): don't expand structure
- or define-structure forms (any internal definitions they
- contain should be treated as top-level within the structure)
-
-2000-09-24 John Harper <john dcs warwick ac uk>
-
- * rep/data.jl (remove-if, remove-if-not): new functions
-
-2000-09-22 John Harper <john dcs warwick ac uk>
-
- * rep/vm/compiler/modules.jl (note-require): try to fix this
- slightly in the presence of unmodularized files
-
-2000-09-20 John Harper <john dcs warwick ac uk>
-
- * version 0.13
-
-2000-09-19 John Harper <john dcs warwick ac uk>
-
- * rep/net/domain-name.jl: new file, some domain name functions
- (from TITAN)
-
- * rep/regexp.jl (string-split): new function
-
- * rep.jl, rep/user.jl, rep/io/files.jl,
- rep/vm/compiler/modules.jl: *root-structure* is now replaced by
- *user-structure*
-
-2000-09-18 John Harper <john dcs warwick ac uk>
-
- * rep/vm/compiler/modules.jl (current-module): this now
- defaults to *user-structure* not *root-structure*
-
-2000-09-17 John Harper <john dcs warwick ac uk>
-
- * rep/lang/doc.jl (describe-value): replaced `Built-in' by
- `Native' to describe subrs
-
- * rep/util/repl.jl (,describe): pass structure name to
- describe-value
-
- * rep/lang/interpreter.jl (nil, t, defmacro): use third arg of
- %define to specify documentation of these bindings
-
- * rep/lang/doc.jl (describe-value): include special-variable
- and immutable-binding information in the type description.
- Don't surround the name in parentheses unless we have details
- of the parameter list
-
- (documentation): don't use boundp/symbol-value to look for
- in-core documentation
-
-2000-09-14 John Harper <john dcs warwick ac uk>
-
- * rep/util/repl.jl (locate-binding*): only check the current
- module for a binding when one isn't imported, not the other way
- around
-
-2000-09-12 John Harper <john dcs warwick ac uk>
-
- * rep/vm/compiler/rep.jl: after lifting top-level progn forms,
- add progns to coalesce forms that wouldn't be compiled
- specially at top-level. Each progn then forms a single byte
- code form
-
-2000-09-11 John Harper <john dcs warwick ac uk>
-
- * Makefile.in: invoke compile-assembler before compile-compiler
-
- * rep/vm/compiler.jl (compile-assembler): new function
-
- * rep/vm/peephole.jl: rep.vm.compiler.opt moved here since it
- may be useful outside the compiler
-
- * rep/vm/compiler/opt.jl: remove dependences on other compiler
- modules
-
- * rep/util/repl.jl (locate-binding*): check the current module
- before looking in the imports
-
- * rep/lang/define.jl: groks doc strings in `(define SYMBOL
- VALUE DOC)' forms. Will move them to the body of defuns, or
- else leave them in the %define form
-
- * rep/vm/compiler/rep.jl (do-pass-2): extract doc strings from
- %define forms
-
-2000-09-10 John Harper <john dcs warwick ac uk>
-
- * rep.jl: `rep.io.streams' is exported from `rep' again. I've
- decided it's too fundamental not to. Changed all the modules
- that imported it explicitly
-
-2000-09-09 John Harper <john dcs warwick ac uk>
-
- * rep/vm/compiler/modules.jl: when compiling module definition
- forms, after compiling the top-level forms, ensure that the
- resulting lambda expression is compiled in the correct module
- environment
-
-2000-09-08 John Harper <john dcs warwick ac uk>
-
- * rep.jl: don't export rep.repexp, rep.system, rep.io.streams,
- rep.io.files, rep.io.processes, rep.io.file-handlers. If
- they're needed, they'll need to be imported explicitly
-
- The rationale is that `(open rep)' should just specify the
- language, and not unrelated random parts of the runtime
- environment. Also, I can imagine systems where some of these
- modules (e.g. rep.io.processes) aren't available
-
- * rep/vm/compiler/utils.jl (test-variable-ref,
- test-variable-bind, test-function-call): never use boundp to
- check for validity of reference. Use compiler-boundp instead.
- Similar for symbol-value and compiler-symbol-value
-
- * rep/vm/compiler/modules.jl (compiler-boundp): new function
-
- * rep/system.jl, rep/lang/interpreter.jl (nop, interactive):
- moved from rep.system to rep.lang.interpreter
-
- * rep/data.jl, rep/data/string-util.jl, rep/regexp.jl
- (string-replace): moved from rep.data to rep.regexp
-
- * scheme/misc.jl, unscheme/misc.jl: explicitly reference all
- used bindings in rep.io.streams
-
- * rep/user.jl:
- * rep/data/records.jl:
- * rep/i18n/xgettext.jl:
- * rep/io/file-handlers/tilde.jl, rep/io/file-handlers/tar.jl,
- rep/io/file-handlers/remote.jl:
- * rep/io/file-handlers/remote/utils.jl,
- rep/io/file-handlers/remote/rep.jl,
- rep/io/file-handlers/remote/rcp.jl,
- rep/io/file-handlers/remote/ftp.jl:
- * rep/lang/profiler.jl, rep/lang/doc.jl, rep/lang/debugger.jl:
- * rep/mail/addr.jl:
- * rep/util/ispell.jl, rep/util/gaol.jl, rep/util/date.jl,
- rep/util/base64.jl:
- * rep/vm/disassembler.jl, rep/vm/compiler.jl:
- * rep/vm/compiler/inline.jl, rep/vm/compiler/basic.jl:
- * rep/www/quote-url.jl, rep/www/fetch-url.jl,
- rep/www/cgi-get.jl:
-
- Added necessary imports of the modules removed from `rep'
- interface
-
- * rep/util/repl.jl: new command `,whereis VAR'
-
-2000-09-07 John Harper <john dcs warwick ac uk>
-
- * rep/util/time.jl: new module, a few utilities for converting
- timestamps to scalars and vice versa. From TITAN
-
-2000-09-06 John Harper <john dcs warwick ac uk>
-
- * rep/vm/compiler/modules.jl: added `(declare (language LANG))'
- declaration
-
- * rep/data/objects.jl (object): added a second method syntax:
- (METHOD-NAME FUNCTION) (in addition to ((METHOD-NAME .
- PARAM-LIST) BODY...)). This allows arbitrary functions to be
- used as method implementations
-
-2000-09-05 John Harper <john dcs warwick ac uk>
-
- * rep/module-system.jl: don't explcitly export `provide',
- `require' and `featurep', this is done from C code now
-
- * rep/data/records.jl: instead of using a static (higher-order)
- record-constructor function, create a local function for each
- record type. This allows the constructor parameter list to
- include all standard rep lambda-list features (i.e. including
- keywords and default values, etc..)
-
- * Makefile.in: lisp depends on ../src/.libexec
-
-2000-09-04 John Harper <john dcs warwick ac uk>
-
- * rep/vm/compiler/scheme.jl: when compiling let* and letrec
- forms, scan out inner defines before passing the forms to the
- rep compilers
- * rep/vm/compiler/unscheme.jl: same thing
-
- * scheme/syntax-funs.jl (expand-letrec): expand inner defines
- in body by hand; `lambda' would miss them since they come after
- the initialising `set!' forms
-
- * rep/i18n/xgettext.jl: track the current module name while
- scanning, and export it via the current-module fluid
-
-2000-09-03 John Harper <john dcs warwick ac uk>
-
- * rep/util/repl.jl: added command `,locate SYM' to find the
- module that a variable is bound in
-
- * rep/lang/doc.jl (describe-value): fixed bug of not looking
- for the documentation of functions not yet autoloaded
-
- * rep/structures.jl (locate-binding): new function
-
- * rep/data/string-util.jl (string-replace): new function
- * rep/data.jl: autoload string-replace
-
- * rep/lang/doc.jl: store doc strings under keys `MODULE#SYMBOL'
- instead of just `SYMBOL'. (The old-style keys are still checked
- when searching for documentation.) Changed some function
- parameter lists to include a STRUCTURE parameter
-
- * rep/lang/compat-doc.jl: new file, a compatibility layer for
- the 'lisp-doc module in the last rep release
-
- * rep/util/repl.jl: `,describe' command scans the imported
- modules for the binding of the thing being queried
-
- * rep/vm/compiler/modules.jl: export current-module
- * rep/vm/compiler/rep.jl, rep/vm/compiler/basic.jl: changed for
- new rep.lang.doc function parameters
-
- * rep/util/repl.jl (repl-completions): new function
-
-2000-09-02 John Harper <john dcs warwick ac uk>
-
- * rep/util/gaol.jl (define-gaol-structure): new function, used
- to assign a module name to a gaol
-
- * rep/util/ispell.jl: use accept-process-input-1 so as not to
- call other process handlers asynchronously
-
-2000-08-27 John Harper <john dcs warwick ac uk>
-
- * rep/vm/compiler/inline.jl, rep/vm/compiler/basic.jl: now
- evaluate default values of #!optional and #!key parameters
-
- * rep/vm/disassembler.jl, rep/vm/bytecode-defs.jl:
- foo-arg-with-default is now foo-arg*, these now push a variable
- number of values
-
- * rep/data.jl (remove, remq): new functions
-
-2000-08-25 John Harper <john dcs warwick ac uk>
-
- * rep/vm/compiler/rep.jl (pass-1): recursively flatten `progn'
- forms (correctly now)
-
- * rep/vm/compiler/utils.jl (compiler-constant-p,
- compiler-constant-value): handle keyword symbols
-
-2000-08-21 John Harper <john dcs warwick ac uk>
-
- * rep/i18n/xgettext.jl (scan): scan bodies of define-structure
- and structure forms
-
-2000-08-17 John Harper <john dcs warwick ac uk>
-
- * rep/util/gaol.jl (gaol-define-vm): new function, installs a
- given virtual machine in the gaol
-
- * rep/vm/compiler/bindings.jl: added `(unused VARS...)'
- declaration to selectively turn off unused variable warnings
-
- * rep/lang/doc.jl, rep/vm/compiler/utils.jl,
- rep/vm/compiler/inline.jl, rep/vm/compiler/basic.jl: support
- default values in #!optional and #!key params
-
- * rep/vm/disassembler.jl, rep/vm/bytecode-defs.jl
- (optional-arg-with-default, keyword-arg-with-default): new
- instructions
-
- * rep/util/gaol.jl: added `intern' and `do'
-
-2000-08-16 John Harper <john dcs warwick ac uk>
-
- * rep/vm/compiler/utils.jl (test-function-call): don't warn
- about too many args if the function has #!key params
-
- * rep/vm/compiler/rep.jl (compile-condition-case): when
- creating an unused binding for `(condition-case nil ...)' mark
- it as referenced to avoid a compiler warning
-
- * rep/vm/compiler/utils.jl (remember-function): handle
- #!optional, #!rest and #!key
- (compiler-deprecated): new function
-
- * rep/vm/compiler/inline.jl (push-inline-args): handle
- #!optional and #!rest. Error out if #!key is encountered
-
- * rep/vm/compiler/basic.jl (compile-form-1): compile keyword
- symbols as constants
- (compile-lambda-spec): handle #!optional, #!rest and #!key,
- deprecated &optional and &rest
-
- * all lisp files: use #!optional and #!rest instead of
- deprecated &optional and &rest
-
-2000-08-15 John Harper <john dcs warwick ac uk>
-
- * scheme/data.jl (symbol?, string-ci>?, string-ci>=?): fixed
- these functions
-
- * scheme/data.jl: use standard rep cons accessors. R5RS says
- that ``it is an error to take the c[ad]r of the empty list''.
- But §1.3.2 notes that detection of ``is an error'' situations
- is not required
-
- * rep/vm/compiler/scheme.jl: use standard cons accessors;
- compile `list-ref' and `list-tail' using `nth' and `nthcdr'
- instructions
- * rep/vm/compiler/unscheme.jl: use `list-ref' and `list-tail'
- inliners from the scheme compiler
-
- * rep/vm/compiler/rep.jl: added inliner properties for cadddr
-
- * rep/vm/compiler/unscheme.jl, rep/vm/compiler/scheme.jl: when
- copying rep-compile-fun properties, also copy
- rep-compile-opcode if it's present
-
-2000-08-13 John Harper <john dcs warwick ac uk>
-
- * rep/vm/compiler/opt.jl: new patterns, `push 0; num-eq ->
- zerop', `zerop; not -> not-zero-p'
-
- * rep/vm/bytecodes.jl, disassembler.jl (not-zero-p): new
- instruction
-
- * rep/data/sort.jl, rep/io/file-handlers/tar.jl,
- rep/io/file-handlers/remote/utils.jl,
- rep/io/file-handlers/remote/rep.jl,
- rep/io/file-handlers/remote/rcp.jl,
- rep/io/file-handlers/remote/ftp.jl, rep/lang/doc.jl,
- rep/lang/define.jl, rep/lang/backquote.jl, rep/util/date.jl,
- rep/util/base64.jl, rep/vm/disassembler.jl, rep/vm/compiler.jl,
- rep/vm/compiler/utils.jl, rep/vm/compiler/src.jl,
- rep/vm/compiler/opt.jl, rep/vm/compiler/modules.jl,
- rep/vm/compiler/lap.jl, rep/vm/compiler/inline.jl,
- rep/vm/compiler/basic.jl, rep/www/cgi-get.jl: added `(declare
- (unsafe-for-call/cc))'
-
- * rep/system/environ.jl: rewritten to use tail recursion
- instead of side effects
-
- * rep/vm/compiler/bindings.jl: don't allocate variables to
- slots if they're modified after a function has been called.
- (Due to call/cc the function could return multiple times, but
- it would get the _same_ values for any slot-allocated bindings,
- even if they have since been modified). The
- `(unsafe-for-call/cc)' declaration can be used to prevent this
- (but it may lead to incrorrect results...)
-
- * rep/util/repl.jl (repl): install a low-level exception
- handler to catch interrupt signals
-
-2000-08-12 John Harper <john dcs warwick ac uk>
-
- * rep/vm/compiler/modules.jl (compile-structure-def): fixed
- compilation of non-top-level structure definitions
-
-2000-08-11 John Harper <john dcs warwick ac uk>
-
- * rep/lang/doc.jl (doc-file-set): pass 'no-lock flag to
- gdbm-open
-
- * rep/vm/compiler/rep.jl (compile-cond): fixed bug of not
- propagating return-follows information to body-less final
- conditions. This meant that things like `(define (test a) (and
- a (test a)))' wouldn't have had the tail call made into a jump
-
- This has a _huge_ effect on the prime benchmark, iterations per
- minute increases by 60%! For comparison:
-
- current rep 2580 (1.0)
- qscheme-0.3.3 1860 (.72)
- scheme48-0.53 835 (.32) ; in benchmark mode
- guile-0.4 314 (.12) ; with (debug-disable 'debug)
-
- 300MHz mobile Pentium II; code as follows:
-
-(define (prime n)
- (letrec ((primep (lambda (n primes)
- (or (null primes)
- (and (not (zerop (remainder n (car primes))))
- (primep n (cdr primes)))))))
- (let loop ((i 2) (candidate 2) (primes '()))
- (cond ((not (primep candidate primes)) (loop i (+ 1 candidate) primes))
- ((= i n) candidate)
- (t (loop (+ 1 i) (+ 1 candidate) (cons candidate primes)))))))
-
-(define (test)
- (let loop ((count 1))
- (prime 100)
- (format standard-output "%d\n" count)
- (loop (+ 1 count))))
-
- I need a new benchmark now..
-
-2000-08-10 John Harper <john dcs warwick ac uk>
-
- * rep/lang/doc.jl (describe-value): bytecode subrs no longer
- include arg spec
-
- * rep/vm/compiler.jl, rep/vm/compiler/utils.jl,
- rep/vm/compiler/unscheme.jl, rep/vm/compiler/src.jl,
- rep/vm/compiler/scheme.jl, rep/vm/compiler/rep.jl,
- rep/vm/compiler/opt.jl, rep/vm/compiler/no-lang.jl,
- rep/vm/compiler/modules.jl, rep/vm/compiler/lap.jl,
- rep/vm/compiler/inline.jl, rep/vm/compiler/bindings.jl,
- rep/vm/compiler/basic.jl:
-
- Many compiler improvements: first order closure analysis; stack
- allocation of uncaptured bindings; fixed `case' statements
- without else clauses
-
- * rep/vm/compiler/const.jl, rep/vm/compiler/asm.jl: deleted
-
- * rep/util/repl.jl: fixed ,compile-proc command
-
- * rep/vm/disassembler.jl, rep/vm/bytecodes.jl,
- rep/vm/bytecode-defs.jl, rep/vm/assembler.jl: various changes
- to the vm architecture. Bumped major version
-
-2000-08-03 John Harper <john dcs warwick ac uk>
-
- * rep/i18n/xgettext.jl: yanked the useful bits of
- src/rep-xgettext.jl into a library module to enable customized
- xgettext scripts to be written
-
- * rep/vm/assembler.jl: a higher-level assembler
-
- * rep/vm/disassembler.jl: split into two functions
-
- * rep/vm/bytecodes.jl, rep/vm/bytecode-defs.jl (bytecode-ref):
- new function
-
-2000-08-02 John Harper <john dcs warwick ac uk>
-
- * rep/module-system.jl (define-structures): new macro, for
- defining >1 structure from the same set of definitions
-
- * rep/vm/compiler/modules.jl (module-exports-p): handle
- first-class structures in imports list
-
-2000-08-01 John Harper <john dcs warwick ac uk>
-
- * rep/io/file-handlers/tar.jl,
- rep/io/file-handlers/remote/rep.jl,
- rep/io/file-handlers/remote/rcp.jl,
- rep/io/file-handlers/remote/ftp.jl, rep/util/base64.jl: don't
- use 0NN octal syntax
-
-2000-07-31 John Harper <john dcs warwick ac uk>
-
- * rep.jl: always define _
-
- * unscheme.jl, scheme.jl, scheme/syntax-funs.jl: export
- \#define as %define, then use this for `define' forms
-
- * rep/data/symbol-table.jl, rep/io/file-handlers.jl,
- rep/util/gaol.jl: use structure-define instead of structure-set
-
- * rep/user.jl: setq creates bindings in this structure
-
- * rep/vm/compiler/unscheme.jl, rep/vm/compiler/scheme.jl,
- rep/vm/compiler/rep.jl: use %define instruction
-
- * rep/vm/compiler/modules.jl (compile-structure-def): don't
- drop unknown configuration items
-
- * rep/vm/disassembler.jl, rep/vm/bytecode-defs.jl (%define):
- new instruction
-
- * rep/lang/interpreter.jl (#f, #t): set to '() and 't respectively
-
- * rep/lang/interpreter.jl, rep/lang/math.jl,
- rep/lang/define.jl, rep/lang/data.jl,
- rep/lang/module-system.jl: use %define to create definitions
-
- * rep/lang/module-system.jl: new clauses `(set-binds)' and
- `(export-all)' in module configuration language
-
-2000-07-30 John Harper <john dcs warwick ac uk>
-
- * dump.jl: deleted this file, it needs a lot of attention
- before being useful again..
-
- * unscheme.jl, scheme.jl, scheme/syntax-funs.jl,
- scheme/data.jl, unscheme/data.jl: various changes for distinct
- () object. This means that the scheme implementations no longer
- have to confuse 'nil and '()
-
- * rep/vm/compiler/const.jl (compile-constant): check for '()
- not 'nil when emitting `nil' instruction
-
- * rep/lang/interpreter.jl: (defconst `nil' ()) and (defconst t t),
- exporting both of them
-
- * rep/user.jl: call this structure `user', not `rep.user'
-
- * rep/vm/compiler/rep.jl (compile-list*): compile `list*' forms
- into a sequence of `cons' instructions
- * rep/vm/compiler/unscheme.jl, rep/vm/compiler/scheme.jl: use
- rep list* compiler
-
-2000-07-29 John Harper <john dcs warwick ac uk>
-
- * rep/vm/compiler/rep.jl (compile-apply): compiles `apply'
- calls
-
- * rep/vm/disassembler.jl, rep/vm/bytecode-defs.jl: new
- instruction `apply'. Bumped bytecode minor version
-
- * rep/vm/compiler.jl, rep/vm/compiler/unscheme.jl: support
- for unscheme language
-
- * unscheme.jl, unscheme/syntax.jl, unscheme/syntax-funs.jl,
- unscheme/misc.jl, unscheme/data.jl: _Another_ scheme
- implementation! This one intentionally ignores the Scheme
- standard where it helps the language fit the rep environment
- (see unscheme.jl for the details)
-
- * scheme/utils.jl: define and export #f and #t as themselves
-
- * scheme/syntax-funs.jl: don't depend on value of #f, just
- quote and return it where necessary
-
- * scheme/data.jl: no need for special `/'. Redefine symbol? to
- ignore #f and #t
-
-2000-07-28 John Harper <john dcs warwick ac uk>
-
- * rep/lang/define.jl (define-macro): new macro, similar to
- `define' but not quite so general
-
- * rep/util/repl.jl (repl): fixed bug when completing
-
- * scheme/misc.jl: export `load-file' as `load'
-
-2000-07-27 John Harper <john dcs warwick ac uk>
-
- * rep/util/repl.jl: core repl is now called for each line of
- input. Also functions to create repl state objects. Allows
- tricks like running a replicated repl on a remote system
-
- * rep/user.jl: handle --help option if seen
-
-2000-07-25 John Harper <john dcs warwick ac uk>
-
- * rep/util/base64.jl: more code borrowed from Jade that may be
- useful
-
- * rep/util/ispell.jl: ripped this code from Jade to provide a
- generally useful ispell interface
-
-2000-07-24 John Harper <john dcs warwick ac uk>
-
- * rep/vm/compiler/scheme.jl (compile-case): compile `case'
- forms, cut-n-pasted from the `rep' compiler
-
- * rep/vm/compiler/modules.jl (compiler-macroexpand-1): handle
- autoloading macros
-
-2000-07-23 John Harper <john dcs warwick ac uk>
-
- Wholesale reorganization of the lisp code, to support the new
- hierarchical module layout. Various other changes to support
- this. Also changed `case' to be a macro.
-
- * rep/user.jl: new location of user-startup code
-
- * rep/www/quote-url.jl, rep/www/fetch-url.jl: a couple of
- modules for doing www/url stuff
-
- * rep/vm/compiler/no-lang.jl: new compiler language module,
- supports the module configuration language, and nothing else
-
- * rep/util/autoloader.jl: new file, for doing generic
- autoloading of modules that provide arbitrary features
-
- * rep/data/objects.jl: new file, a macro for basic
- message-passing objects, with single inheritance of methods
-
- * rep/data/symbol-table.jl, rep/data/string-util.jl,
- rep/data/sort.jl, rep/data/ring.jl, rep/data/records.jl,
- rep/data/queues.jl:
- * rep/io/file-handlers/tilde.jl, rep/io/file-handlers/tar.jl,
- rep/io/file-handlers/remote.jl:
- * rep/io/file-handlers/remote/utils.jl,
- rep/io/file-handlers/remote/rep.jl,
- rep/io/file-handlers/remote/rcp.jl,
- rep/io/file-handlers/remote/ftp.jl:
- * rep/lang/profiler.jl, rep/lang/doc.jl, rep/lang/define.jl,
- rep/lang/debugger.jl, rep/lang/backquote.jl:
- * rep/mail/addr.jl:
- * rep/system/pwd-prompt.jl, rep/system/environ.jl:
- * rep/threads/utils.jl, rep/threads/mutex.jl:
- * rep/util/repl.jl, rep/util/memoize.jl, rep/util/gaol.jl,
- rep/util/date.jl:
- * rep/vm/disassembler.jl, rep/vm/compiler.jl,
- rep/vm/bytecodes.jl, rep/vm/bytecode-defs.jl:
- * rep/vm/compiler/utils.jl, rep/vm/compiler/src.jl,
- rep/vm/compiler/scheme.jl, rep/vm/compiler/rep.jl,
- rep/vm/compiler/opt.jl, rep/vm/compiler/modules.jl,
- rep/vm/compiler/lap.jl, rep/vm/compiler/inline.jl,
- rep/vm/compiler/const.jl, rep/vm/compiler/bindings.jl,
- rep/vm/compiler/basic.jl, rep/vm/compiler/asm.jl:
- * rep/www/cgi-get.jl:
- * scheme/utils.jl, scheme/syntax.jl, scheme/syntax-funs.jl,
- scheme/misc.jl, scheme/data.jl:
-
- New locations for these old files. Many have aliases so the old
- names still work
-
- * rep.jl, rep/system.jl, rep/structures.jl, rep/lang.jl,
- rep/lang/interpreter.jl, rep/lang/math.jl,
- rep/module-system.jl, rep/data.jl, rep/io/streams.jl,
- rep/io/files.jl, rep/io/file-handlers.jl: bootstrap code for
- the various modules in the new configuration
-
- * tilde.jl, threads.jl, tar-file-handler.jl, symbol-table.jl,
- string-util.jl, sort.jl, scheme-utils.jl, scheme-syntax.jl,
- scheme-syntax-funs.jl, scheme-misc.jl, scheme-data.jl, ring.jl,
- rep-repl.jl, rep-packages.jl, rep-autoload.jl, remote.jl,
- remote-utils.jl, remote-rep.jl, remote-rcp.jl, remote-ftp.jl,
- records.jl, queues.jl, pwd-prompt.jl, profiler.jl, mutex.jl,
- memoize.jl, mailaddr.jl, lisp-doc.jl, init.jl, gaol.jl,
- environ.jl, disassembler.jl, define.jl, debug.jl, date.jl,
- compiler.jl, compiler-utils.jl, compiler-src.jl,
- compiler-scheme.jl, compiler-rep.jl, compiler-opt.jl,
- compiler-modules.jl, compiler-lap.jl, compiler-inline.jl,
- compiler-const.jl, compiler-bindings.jl, compiler-basic.jl,
- compiler-asm.jl, cgi-get.jl, bytecodes.jl, bytecode-defs.jl,
- backquote.jl, autoload.jl: deleted or moved to a deeper
- position
-
-2000-07-21 John Harper <john dcs warwick ac uk>
-
- * rep-repl.jl, rep-packages.jl, init.jl, gaol.jl,
- symbol-table.jl: updated for removal of `%' from some function
- names
-
- * init.jl (define-structure-alias): new macro
-
- * compiler.jl, compiler-utils.jl, compiler-scheme.jl,
- compiler-rep.jl, compiler-opt.jl, compiler-modules.jl,
- compiler-inline.jl, compiler-basic.jl: reorganized some modules
-
- * compiler.jl (compile-directory): Recurse into subdirectories
-
-2000-07-20 John Harper <john dcs warwick ac uk>
-
- * version 0.12.4
-
- * rep-repl.jl (repl): fixed bug of not prompting for
- continuation lines when a whole form isn't read
-
-2000-07-19 John Harper <john dcs warwick ac uk>
-
- * compiler-rep.jl (trans-defvar): call make-variable-special on
- the symbol (but this is still broken..)
-
-2000-07-18 John Harper <john dcs warwick ac uk>
-
- * lisp-doc.jl (documentation): only try to deref SYMBOL if it's
- bound (otherwise interpreted code may fall over?)
-
- * gaol.jl: store all state in gaol, don't keep it locally then
- rebuild the gaol from that. Deprecated some old functions, new
- interface is basically gaol-define, gaol-define-special,
- gaol-define-file-handler. Also added gaol-open
-
- * compiler-modules.jl: signal errors when trying to reference
- unknown structures
-
-2000-07-16 John Harper <john dcs warwick ac uk>
-
- * gaol.jl (gaol-safe-functions): added more safe functions
-
-2000-07-15 John Harper <john dcs warwick ac uk>
-
- * gaol.jl (make-gaol): install a null virtual machine
-
-2000-07-14 John Harper <john dcs warwick ac uk>
-
- * compiler-utils.jl (declare-inline): handler for `(declare
- (inline NAMES...))' marking functions that should be inlined
- (remember-function): optional arg BODY, so that functions
- previously declared inline can be stored
-
- * compiler-rep.jl (do-pass-1): pass defun bodies to
- remember-function, in case they've been declared inline
- (do-pass-2): defsubst forms are compiled as defuns now
-
- * compiler-modules.jl (variable-stem): new function to extract
- the local name of a variable
-
- * compiler-basic.jl (compile-form-1): removed code to check for
- 'compile-inline property. This was totally bogus after the
- module system arrived
- * compiler-inline.jl (compile-inline-function): deleted
-
- * init.jl (defsubst): just an alias for defun now
-
- * init.jl (throw): now in lisp
- (raise-exception): deleted, now in C
-
-2000-07-12 John Harper <john dcs warwick ac uk>
-
- * define.jl (define-scan-form): don't expand let-fluids forms
- since compiler handles them specially
-
- * version 0.12.3
-
-2000-07-11 John Harper <john dcs warwick ac uk>
-
- * define.jl (define-scan-form): expand macros one at a time,
- checking the results for things that shouldn't be expanded
-
- * compiler-modules.jl (compiler-macroexpand-1): set
- macro-environment to compiler-macroexpand-1, not
- compiler-macroexpand
-
- * init.jl (let): don't wrap named lets expansions in a progn
- block anymore, the misfeature being worked around is fixed now
-
-2000-07-09 John Harper <john dcs warwick ac uk>
-
- * lisp-doc.jl (doc-file-ref): pass `no-lock' flag to gdbm-open
-
- * rep-repl.jl (repl): only catch end-of-stream errors when
- reading, not when evaluating
-
- * init.jl (setcar, setcdr): no longer pseudonyms for rplaca and
- rplacd (they return the inserted value, not the cell)
- * compiler-rep.jl: removed code making setc[ad]r compile as rplac[ad]
-
-2000-07-08 John Harper <john dcs warwick ac uk>
-
- * compiler-modules.jl (compile-structure-def): compile bodies
- of non-top-level structures (so they can access their
- environment)
-
- * init.jl (catch, unwind-protect, condition-case): these are
- all now macros (in terms of call-with-catch,
- call-with-unwind-protect and call-with-error-handlers
- respectively. These functions are written in terms of the
- call-with-exception handler primitive). This has no effect on
- compiled code
-
- * rep-packages.jl, gaol.jl (call-with-catch,
- call-with-unwind-protect, call-with-error-handlers): added
-
-2000-07-07 John Harper <john dcs warwick ac uk>
-
- * rep.jl (rep): do the file-exists-p test when loading scheme
- scripts
-
- * mutex.jl, disassembler.jl, date.jl, cgi-get.jl, bytecodes.jl:
- use define-structure instead of structure
-
-2000-07-05 John Harper <john dcs warwick ac uk>
-
- * rep.jl: load-all "autoload" not "autoload.jl"
-
-2000-07-03 John Harper <john dcs warwick ac uk>
-
- * gaol.jl (gaol-safe-functions): added define-value
-
-2000-06-29 John Harper <john dcs warwick ac uk>
-
- * define.jl (define-scan-form): fix bug when extracting doc
- strings and interactive decls
-
-2000-06-27 John Harper <john dcs warwick ac uk>
-
- * profiler.jl: front-end for a basic profiler
- * rep-repl.jl: added `,profile FORM' command
-
-2000-06-25 John Harper <john dcs warwick ac uk>
-
- * ring.jl (ring->list): new function
-
-2000-06-23 John Harper <john dcs warwick ac uk>
-
- * ring.jl: encapsulate rings in datums, cleaned up the api
- (added ring-append, ring-ref, ring-replace. ring-ref counts
- from zero unlike the old get-from-ring), no longer uses macros
- for inlining
-
-2000-06-22 John Harper <john dcs warwick ac uk>
-
- * version 0.12.2
-
- * compiler-inline.jl (compile-tail-call): when modifying
- bindings in-place, remember to emit a `pop-all' instruction if
- the value stack is non-empty
-
- * init.jl (member-if): new function
-
-2000-06-21 John Harper <john dcs warwick ac uk>
-
- * compiler-rep.jl (compile-list): if (= #args 0) emit `push
- nil' instead of `list #0' (also fixes a bug of stack use not
- being incremented with zero args)
-
-2000-06-19 John Harper <john dcs warwick ac uk>
-
- * compiler-rep.jl (do-pass-2): don't evaluate constants, pass-1
- doesn't
-
- * init.jl (defconst): don't evaluate constants (the compiler
- doesn't)
-
- * dump.jl, disassembler.jl, compiler-utils.jl,
- bytecode-defs.jl: s/0x/#x/ and s/0[0-9]/#o[0-9]/
-
- * gaol.jl: can now create multiple gaols (though each has the
- same default contents). This allows gaolled code to defun to
- its heart's content without affecting anything else. New
- function make-gaol returns a gaol (a structure), gaol-eval and
- gaol-load optionally take a gaol as their second arg
-
- * tar-file-handler.jl: when reading files from (non-huge) tar
- archives unpack the entire contents. This unpacked version is
- kept around for a while to service subsequent reads to other
- files in the same archive (this is a huge win when reading
- compressed sawfish themes)
-
-2000-06-18 John Harper <john dcs warwick ac uk>
-
- * version 0.12.1
-
- * compiler-rep.jl (compile-declare): push `nil' onto the stack
- (since all forms are assumed to leave a value on the stack)
-
-2000-06-16 John Harper <john dcs warwick ac uk>
-
- * version 0.12
-
-2000-06-14 John Harper <john dcs warwick ac uk>
-
- * define.jl (define): strip leading progn's from expanded
- bodies of defines that expand to defuns (so that doc strings
- etc are visible)
-
-2000-06-10 John Harper <john dcs warwick ac uk>
-
- * compiler-opt.jl (peephole-optimizer): remove some zero
- additions and subtractions
-
-2000-06-09 John Harper <john dcs warwick ac uk>
-
- * init.jl: added some more doc strings
-
-2000-06-08 John Harper <john dcs warwick ac uk>
-
- * records.jl (record-printer): if the value returned from the
- discloser function is a string, print it without surrounding
- quotes
-
- * records.jl (define-record-type): removed the NAME argument,
- it's not very useful, and conflicts with the definition in
- SRFI 9 (http://srfi.schemers.org/srfi-9/)
-
-2000-06-07 John Harper <john dcs warwick ac uk>
-
- * compiler-basic.jl (compile-lambda): when adding doc strings,
- don't concatenate lambda-doc onto actual doc, add two separate
- items to the database
-
- * lisp-doc.jl (doc-file-ref, doc-file-set): functions to access
- doc files
- (add-documentation-params): store a parameter-list for a named
- function in the doc file
-
- * compiler-opt.jl (peephole-optimizer): when threading jmp
- instructions, ignore instructions that wouldn't change
- (fixes a non-termination case)
-
- * compiler-opt.jl (constant-optimizer): remember to update
- constant-index so that the resulting vector contains no unused
- entries
-
-2000-06-05 John Harper <john dcs warwick ac uk>
-
- * compiler-modules.jl (compile-top-level-structure,
- compile-top-level-define-structure): new exported functions
- * compiler-rep.jl: leave top-level structure definitions
- unexpanded in output
-
- * rep-repl.jl (,load-file): will now load more than one file
-
- * scheme.jl, scheme-utils.jl, scheme-syntax-funs.jl,
- scheme-misc.jl, scheme-data.jl, compiler-scheme.jl: prefix most
- exported non-r4rs symbols by `#' (not allowed in scheme
- identifiers)
-
- * compiler-modules.jl (compile-structure-ref): check
- open-modules for structure being referenced as well
-
- * scheme-data.jl (symbol?): (symbol? '()) => #f
- (string->symbol): copy the name if a symbol needs to be created
- and interned
-
- * define.jl (define-scan-form): don't mistake (let () ..) for a
- named let
-
-2000-06-04 John Harper <john dcs warwick ac uk>
-
- * rep-repl.jl (rl-completion-generator): fix from Ceri to
- prepend `^' to start of word, also quote the word being
- completed
-
- * define.jl (define-scan-form): don't expand `structure-ref'
- forms
-
- * compiler-rep.jl: merge `normal' top-level forms into progn
- statements in pass-1, which then get compiled in pass-2
-
- * compiler-modules.jl (compile-structure-def): leave `open' and
- `access' config statements as-is
-
- * compiler-basic.jl (macroexpand-pred): used to stop expanding
- macros when a form with a special compiler is found
-
- * compiler-modules.jl (parse-interface): fix typo
-
- * scheme.jl: no need to export %while anymore
-
- * compiler-utils.jl (compiler-constant-p,
- compiler-constant-value): anything that isn't a cons or a
- symbol is now treated as a (self-evaluating) constant, mainly
- to allow #f and #t to be constant-folded
-
- * compiler-scheme.jl: enabled constant folding support
-
- * compiler-modules.jl: pass-1 and pass-2 functions now take and
- return the complete list of forms, not just one at a time
-
- * compiler-scheme.jl, compiler-rep.jl (pass-1, pass-2): operate
- on the entire body in one go
-
-2000-06-02 John Harper <john dcs warwick ac uk>
-
- * init.jl (fluid-let): renamed as `let-fluids'. Updated all
- users
-
- * rep-repl.jl: removed *repl-in-struct* defvar, replaced by
- fluid repl-in-struct
-
-2000-06-01 John Harper <john dcs warwick ac uk>
-
- * rep-repl.jl (rl-completion-generator): new function,
- generates completions for readline (from Ceri Storey
- <cez phi uklinux net>)
-
- * compiler-basic.jl (compile-form-1): don't call
- test-function-call if the form has a special handler
-
- * compiler-rep.jl: handle non-top-level declarations
-
- * compiler-bindings.jl: support (declare (bound VARS...)) and
- (declare (special VARS...)) to flag variable bindings that the
- compiler would otherwise be unaware of
-
- * remote-ftp.jl, disassembler.jl, compiler-utils.jl: added
- declarations to prevent warnings for jade-only functions
-
- * backquote.jl (backquote-listify): don't call `eval' to
- unquote constants, use a special purpose backquote-eval to
- avoid security breaches
-
- * scheme-syntax-funs.jl: new file, defines expand-FOO functions
- for each non-trivial Scheme syntax form. Since nothing is
- redefined here, doing this removes the need for the gratuitous
- rep# and hand-expanded macros
- * scheme-syntax.jl: most macros just call expand-FOO
-
- * init.jl (make-guardian): use a rest argument in the returned
- closure so that `(G nil)' can be distinguished from `(G)'
-
- * init.jl (call-after-load): new function, eval-after-load just
- calls this now
-
-2000-05-31 John Harper <john dcs warwick ac uk>
-
- * init.jl (with-object): new macro, uses call-with-object
- * compiler-rep.jl (with-object): flushed compiler for this
- special form
- * disassembler.jl, bytecode-defs.jl (bindobj): flushed this insn
-
- * init.jl (prog1): new macro, in terms of lambda
-
-2000-05-30 John Harper <john dcs warwick ac uk>
-
- * init.jl (while): new macro, basic tail-recursive definition
-
- * define.jl (define-scan-form): removed `while' from the list
- of special forms
-
-2000-05-27 John Harper <john dcs warwick ac uk>
-
- * scheme-misc.jl, records.jl, queues.jl: updated for datum
- printer interface
-
-2000-05-26 John Harper <john dcs warwick ac uk>
-
- * compiler-src.jl (coalesce-constants, mash-constants): new
- functions, in preparation for more constant optimizations
-
- * lisp-doc.jl (describe-lambda-list): new function
-
- * compiler-scheme.jl: list? no longer == listp
-
- * compiler-basic.jl (compile-lambda): add the argument spec to
- the front of any doc string
-
- * scheme-data.jl (boolean?): fixed
- (list?): no longer equivalent to rep's listp, scheme standard
- says this must only return #t if its last cdr is the empty list
- (string-ci>?): fixed
-
- * init.jl (lcm): handle 0...N args
-
-2000-05-25 John Harper <john dcs warwick ac uk>
-
- * compiler-basic.jl (compile-lambda-spec): if the spec contains
- special variables, don't encode it
- (compile-lambda): don't error out if special variables in spec
-
- * compiler-rep.jl: added special handlers for `defun' and
- `defmacro', otherwise non-top-level calls to these macros don't
- get compiled properly
-
- * rep-repl.jl: added `,time' command
-
- * lisp-doc.jl (describe-value): don't check for calls to
- jade-byte-code
-
- * init.jl (eval-after-load): don't use `&aux'
-
- * dump.jl: don't `set' lexical variables
-
- * disassembler.jl: understand new opcodes, new parameter list
- encoding
-
- * debug.jl: updated for new lexical environment structure (of
- interpreted code)
-
- * compiler.jl (compile-form): generate calls to `run-byte-code'
- instead of `jade-byte-code'
-
- * compiler-utils.jl (remember-function): don't `set' lexical
- variables
- (get-lambda-vars): ignore `&aux' keys
-
- * compiler-src.jl (fold-constants): use `compiler-symbol-value'
- instead of `eval' to dereference functions
-
- * compiler-rep.jl: don't compile calls to `eval'
- (compile-condition-case): changed this for the modified
- semantics of the `errorpro' instruction (doesn't require name
- of variable to bind, always binds the next lexical slot)
-
- * compiler-opt.jl: added some peephole patterns for changing
- simple constant add and subtract sequences into `inc' or `dec'
- instructions
-
- * compiler-inline.jl: removed all support for `&aux' keyword
-
- * compiler-bindings.jl (emit-binding): don't emit arg when
- binding lexically
-
- * compiler-basic.jl (compile-lambda): generate the new-style
- byte code subrs (with parameter spec encoded as a fixnum)
-
- * bytecode-defs.jl: deleted `eval', `bind' is now arg-less (and
- uses the old eval opcode)
- * bytecodes.jl (byte-insns-with-constants): removed `bind'
-
-2000-05-23 John Harper <john dcs warwick ac uk>
-
- * scheme-misc.jl (eof-object?): fixed to return #f or #t
-
- * compiler-scheme.jl: code and properties to piggyback the rep
- compiler for predicates that just needs boolean results translated
-
- * compiler-opt.jl: delete `test-scm[-f]; scm-test' pairs of
- instructions
-
- * bytecodes.jl, bytecode-defs.jl, disassembler.jl (test-scm,
- test-scm-f): new instructions, map from rep booleans to scheme
- booleans
-
- * rep.jl: option aliases: --call -> -f, --load -> -l, --quit -> -q
- New option --scheme,-s to load a file of Scheme code
-
- * scheme.jl, scheme-misc.jl: export %load-suffixes
-
- * scheme-syntax.jl (delay): don't use `rep#lambda' in
- expansion, probably not available in caller's environment
-
- * scheme-misc.jl (write-char): use `rep#write', not `write'
- (load): removed this definition, must use the subr (so the file
- is loaded in the caller's environment..)
-
- * compiler-modules.jl (compile-module-body): remember to create
- a binding of `current-language'
-
-2000-05-22 John Harper <john dcs warwick ac uk>
-
- * scheme-syntax.jl (cond): now expands into an `if' chain, this
- is to enable simple handling of `(TEST => FUNCTION)' syntax
- (case): remember to add the key to the expansion
-
- * scheme-misc.jl (close-input-port, close-output-port): detect
- and ignore files that have already been closed
-
- * scheme-data.jl (char?): defined and exported
- (complex?): always returns #t not #f
- (string->number): defined using make-nil-predicate
-
- * memoize.jl (memoize-function): renamed as `memoize' and
- removed the code to work on symbol values
-
-2000-05-17 John Harper <john dcs warwick ac uk>
-
- * debug.jl: added `up' and `down' commands; catch errors during
- `print' commands
-
- * compiler-rep.jl (compile-fluid-let): re-enabled this, the
- segmentation faults it used to cause seem to have mysteriously
- disappeared
-
-2000-05-16 John Harper <john dcs warwick ac uk>
-
- * debug.jl (error-entry): make this work again
-
- * init.jl (default-error-handler): new function, stuffed into
- error-handler-function
-
- * rep.jl, rep-repl.jl: call default-error-handler or
- error-handler-function to print errors
-
-2000-05-15 John Harper <john dcs warwick ac uk>
-
- * gaol.jl: added some more safe functions
-
- * date.jl, remote-ftp.jl, remote-rep.jl, tar-file-handler.jl:
- use string->number to parse numbers, not read-from-string
- (otherwise e.g. 08 causes a read error)
-
- * scheme-data.jl (string->number, number->string): deleted, use
- built-in versions of these functions
-
- * debug.jl: adapted for new return from debug-frame-environment
- (but this doesn't work 100%?)
-
-2000-05-14 John Harper <john dcs warwick ac uk>
-
- * init.jl (and): fixed bug `(and 1 nil) => 1'
-
- * compiler-modules.jl (compile-module): added interactive spec
-
-2000-05-13 John Harper <john dcs warwick ac uk>
-
- * compiler-rep.jl: compile `=' using num-eq insn
- (compile-case): use memql and eql for comparisons instead of
- memq and eq
-
- * bytecode-defs.jl, disassembler.jl (memql, num-eq): new insns
-
- * scheme-data.jl (memv): defined by wrapping memql
-
-2000-05-12 John Harper <john dcs warwick ac uk>
-
- * lisp-doc.jl (apropos-output, apropos-function,
- apropos-variable, describe-variable, describe-variable-1,
- describe-function): deleted these functions, they're all
- useless since they call symbol-value (from the wrong structure)
-
- (describe-function-1): renamed describe-value, takes two args
- VALUE and NAME (optional), then describes the value to
- standard-output. Handles both functions and variables
-
- (documentation): added optional second arg VALUE, the value of
- the symbol in the caller's environment
-
- * rep-repl.jl: added `,describe' and `,apropos' commands,
- removed `,doc'
-
-2000-05-11 John Harper <john dcs warwick ac uk>
-
- * init.jl (or, and): implement base cases explicitly, (or) =>
- nil, (and) => t
- * scheme-syntax.jl (and): add base case (and) => #t
-
- * init.jl (structure, define-structure): INTERFACE is now
- optional
-
- * init.jl, compiler-modules.jl (%parse-interface,
- parse-interface): accept `()' as null interface
-
-2000-04-30 John Harper <john dcs warwick ac uk>
-
- * string-util.jl (mapconcat): new function
-
-2000-04-28 John Harper <john dcs warwick ac uk>
-
- * records.jl: detect and report unknown fields
-
-2000-04-24 John Harper <john dcs warwick ac uk>
-
- * rep-repl.jl: new commands `,compile' and `,compile-proc'
-
- * init.jl, scheme.jl, scheme-data.jl: added cons accessors c....r
-
- * compiler.jl: export compile-module
- (compile-function): ignore already compiled functions, don't
- signal an error. And fix the method of testing for compiledness
-
- * compiler-modules.jl (compile-module): new function, compile
- all non-compiled functions in a named structure
-
-2000-04-23 John Harper <john dcs warwick ac uk>
-
- * records.jl: implements record-like data structures. Based on
- the Scheme48 record interface
-
-2000-04-22 John Harper <john dcs warwick ac uk>
-
- * compiler.jl (compile-function): this now works properly since
- it respects the structure that the closure is made in
-
- * compiler-utils.jl (compiler-constant-p): don't check that the
- `quote' symbol is from the `rep' structure (kludge)
-
- * compiler-scheme.jl, compiler-rep.jl: at top-level, splice in
- `begin' and `progn' forms, allows macros to expand to blocks of
- top-level definitions
-
- * compiler-modules.jl: track the current language being
- compiled, also provides a means for telling the compiler which
- module is being compiled in
-
- * compiler-basic.jl (compile-lambda): removed the SEQUENCER
- arg, use the compiler-sequencer language property
-
- * compiler-utils.jl (compiler-constant-p,
- compiler-constant-value): accept all numeric types
-
- * compiler-const.jl (compile-constant): only emit fixnums using
- immediate push insns
-
-2000-04-21 John Harper <john dcs warwick ac uk>
-
- * queues.jl: new file, implement the scheme48 queue interface
-
- * init.jl (fluid-let): new macro
-
- * debug.jl: rewritten to use fluid instead of special variables
-
- * bytecode-defs.jl, disassembler.jl (fluid-ref, fluid-set,
- fluid-bind): new insns
-
- * compiler.jl, compiler-vars.jl, compiler-utils.jl,
- compiler-src.jl, compiler-scheme.jl, compiler-rep.jl,
- compiler-opt.jl, compiler-modules.jl, compiler-lap.jl,
- compiler-inline.jl, compiler-const.jl, compiler-bindings.jl,
- compiler-basic.jl: rewritten to use fluid instead of special
- variables
-
- * symbol-table.jl: new file, wrapper around anonymous
- structures for efficient symbol tables
-
- * init.jl (realp, rationalp, inexactp): new functions
-
-2000-04-18 John Harper <john dcs warwick ac uk>
-
- * compiler.jl, compiler-vars.jl, compiler-utils.jl,
- compiler-rep.jl, compiler-inline.jl: track the maximum depth of
- the binding stack while compiling forms, then embed this into
- the `stack' property of byte code forms/subrs
-
- * disassembler.jl: groks the new layout of the `stack' arg
-
-2000-04-17 John Harper <john dcs warwick ac uk>
-
- * scheme-misc.jl (input-port?, output-port?, peek-char):
- implemented properly now
-
- * init.jl (streamp): in lisp now
-
- * compiler-modules.jl (compiler-symbol-value): this now
- recognizes autoload values, loading them before returning
-
-2000-04-16 John Harper <john dcs warwick ac uk>
-
- * scheme-syntax.jl (lambda): now scans out leading internal
- defines into a letrec
-
- * compiler*.jl: track which lexical bindings have been modified
- and which have been captured by closures, then use this
- information to optimize tail recursion. Also renamed a load of
- compiler functions to get rid of needless `comp-' prefixes
-
- * define.jl, scheme-syntax.jl (define): now supports curried
- functions, e.g. (define ((plus a) b) (+ a b)), then (plus 1)
- evaluates to the function that adds one to its argument
-
-2000-04-15 John Harper <john dcs warwick ac uk>
-
- * gaol.jl: don't need to build trampoline code anymore, can
- just use %eval-in-structure
-
- * compiler-rep.jl (compile-save-environment): deleted
-
- * bytecode-defs.jl, disassembler.jl: removed `bindenv'
- instruction
-
- * gaol.jl: updated for special environment being stored with
- the structure
-
-2000-04-14 John Harper <john dcs warwick ac uk>
-
- * disassembler.jl, bytecode-defs.jl: removed `dset' bytecode
-
- * compiler-basic.jl (comp-compile-lambda): when noting the
- parameter bindings, reverse the list
-
- * bytecode-defs.jl: bumped major version to 10
- (unbindall-0, pop-all): new instructions
- * disassembler.jl: updated for new insns
-
- * scheme-syntax.jl (do): implemented using named let, not
- while, since the Scheme report requires that each iteration
- get new bindings for each variable
-
- * init.jl (do): implemented this iteration syntax from Scheme,
- expands to a named let
-
- * compiler-inline.jl (comp-do-tail-call): don't just setq the
- new values of the variables, create wholly new bindings (in
- case the previous bindings have been captured by any closures)
-
-2000-04-12 John Harper <john dcs warwick ac uk>
-
- * gaol.jl: updated for new set-file-handler-environment semantics
-
- * rep-repl.jl: added commands `,step' and `,expand'. `,help'
- now prints two columns
-
- * debug.jl: now works with the module system
-
- * init.jl, compiler-modules.jl: changed module definition
- syntax, the config section is now a single form or list of
- forms, instead of the kludge of extracting them from the head
- of the module body. This way no extra indentation is introduced
- for the body. Existing modules only need changing if they have
- more than one config form
-
- * scheme.jl, scheme-syntax.jl, scheme-misc.jl, scheme-data.jl:
- updated for new module configuration syntax
-
-2000-04-11 John Harper <john dcs warwick ac uk>
-
- * remote-rep.jl, remote-ftp.jl: export all interactive
- functions
-
- * init.jl (let): fixed bug of interpreting (let () ..) as a
- named let (due to (symbolp '()))
-
-2000-04-10 John Harper <john dcs warwick ac uk>
-
- * rep-packages.jl (rep-files-interface): added jade-only file
- operations (since they need to be in the `rep' structure)
-
- * init.jl (eval-and-print): deleted, probably evals in the
- wrong structure for most uses
-
-2000-04-09 John Harper <john dcs warwick ac uk>
-
- Changes to make sawmill work with the module system, and to
- make things in general work more smoothly
-
- * init.jl: set `*root-structure*' to rep
- (declare): macro to ignore declarations
- (defsubst): put the actual function body in the
- `compiler-inline' property
-
- * compiler.jl, compiler-vars.jl, compiler-utils.jl,
- compiler-rep.jl, compiler-modules.jl, compiler-inline.jl:
- various compiler fixes/improvements to make things work largely
- as they did before (!)
-
- Also now supports top-level declarations, currently only
- `(declare (in-module FOO))' to tell the compiler where to look
- for bindings outside any actual module definition
-
- * rep.jl: set `*root-structure*' to user
-
- * gaol.jl: removed support for redefining `require',
- miscellaneous fixes
-
- * define.jl: reverted to handling all let forms specially,
- macroexpanding them prevents the compiler doing some
- optimizations
-
- * threads.jl, string-util.jl, sort.jl, rep-repl.jl,
- rep-packages.jl, environ.jl, define.jl, debug.jl, backquote.jl:
- added `(in-module rep)' declaration
-
-2000-04-07 John Harper <john dcs warwick ac uk>
-
- Many changes to support the new module system:
-
- * init.jl: subsumes lisp.jl, defines all module syntax
- (define-interface, structure, define-structure, etc..),
- defconst now declares _lexically_ scoped constants
-
- * rep-packages.jl: defines the various interfaces that the rep
- package implements, plus other basic structures
-
- * rep-repl.jl: implements the default repl, borrows Scheme48's
- idea of using `,' to introduce meta-commands (e.g. to control
- and inspect the state of the module system)
-
- * rep.jl: use the new repl; try to work out when to `require'
- and when to `load' command line options
-
- * rep-autoload.jl, autoload.jl: split autoloading into two
- parts, rep-autoload contains decls for the `rep' module,
- autoload contains those for the default user module
-
- * gaol.jl: modularized; uses an anonymous structure to create
- the sandboxed environment
-
- * bytecodes.jl, bytecode-defs.jl: split into two modules, no
- longer exports op-FOO constants, instead a macro `(bytecode FOO)'
-
- * compiler.jl, compiler-vars.jl, compiler-utils.jl,
- compiler-src.jl, compiler-scheme.jl, compiler-rep.jl,
- compiler-opt.jl, compiler-modules.jl, compiler-lap.jl,
- compiler-inline.jl, compiler-const.jl, compiler-bindings.jl,
- compiler-basic.jl, compiler-asm.jl: the compiler has now been
- modularized; it also groks the module configuration forms, and
- can compile for whatever base language (rep, scheme, ..?) a
- module is actually using. Scheme support is currently minimal
- (working but sub-optimal code)
-
- * scheme.jl, scheme-utils.jl, scheme-syntax.jl, scheme-misc.jl,
- scheme-data.jl: support for interpreting scheme code, any
- modules with `(open scheme)' instead of `(open rep)' will find
- a minimal r4rs scheme environment (without macros)
-
- * tilde.jl, tar-file-handler.jl, remote.jl, remote-utils.jl,
- remote-rep.jl, remote-rcp.jl, remote-ftp.jl: updated to use new
- method of declaring file handlers (the define-file-handler
- function)
-
- * ring.jl, mutex.jl, memoize.jl, lisp-doc.jl, disassembler.jl,
- date.jl, cgi-get.jl: modularized
-
- * define.jl: macroexpand fully, then just scan through lambda
- bodies
-
-2000-04-13 John Harper <john dcs warwick ac uk>
-
- * version 0.11.3
-
-2000-04-11 John Harper <john dcs warwick ac uk>
-
- * init.jl (let): fixed bug of interpreting (let () ..) as a
- named let (due to (symbolp '()))
-
-2000-04-09 John Harper <john dcs warwick ac uk>
-
- * version 0.11.2
-
-2000-03-29 John Harper <john dcs warwick ac uk>
-
- * compiler.jl (compile-file): prevent top-level macro
- expansions being expanded again if we want to see them in their
- original form
-
- * lisp.jl (define-value): support non-constant variable forms..
- but for how long..?
-
- * lisp.jl (defmacro, defun, defconst, define-value): now macros
- * compiler.jl (comp-compile-defun, comp-compile-defmacro): deleted
-
-2000-03-24 John Harper <john dcs warwick ac uk>
-
- * remote-ftp.jl: some lisp-1 fixes
-
-2000-03-21 John Harper <john dcs warwick ac uk>
-
- * lisp.jl (call-with-current-continuation): just define-value
- to the value of call/cc instead of using a lambda
-
- * gaol.jl (gaol-safe-functions): added case
-
-2000-03-20 John Harper <john dcs warwick ac uk>
-
- * mutex.jl: fixed some stupid typos (by Damon Anderson
- <damon get topica com>)
-
-2000-03-14 John Harper <john dcs warwick ac uk>
-
- * lisp.jl (prog2): now a macro
- * compiler.jl (comp-compile-prog2): deleted
-
- * lisp.jl (setq-default): now a macro
- * compiler.jl (comp-trans-setq-default): deleted
-
- * lisp.jl (dynamic-wind): defined in terms of call-with-barrier
-
- * lisp-doc.jl (describe-function-1): handle macros, improper
- parameter lists; some cosmetic improvements
-
-2000-03-13 John Harper <john dcs warwick ac uk>
-
- * compiler.jl (compile-file): only expand macros if the form
- wouldn't be compiled anyway
- (comp-trans-if, comp-trans-and, comp-trans-or): deleted
- (comp-compile-let): deleted
-
- * lisp.jl (let, let*): now defined as macros, `let' supports
- Scheme's named lets for iteration
- (if, and, or, function): defined as macros
-
- * define.jl: only expand macros when absolutely necessary;
- handle named lets; handle multi-action setq and setq-default
- forms
-
-2000-03-12 John Harper <john dcs warwick ac uk>
-
- * version 0.11.1
-
-2000-03-11 John Harper <john dcs warwick ac uk>
-
- * lisp.jl (load-all): added back the restriction of not loading
- from the current directory
-
- * compiler.jl (compile-file): copy permissions from source to
- dest file
-
-2000-03-10 John Harper <john dcs warwick ac uk>
-
- * compiler.jl: compile (null X) using `not', instead of `null'
-
-2000-03-09 John Harper <john dcs warwick ac uk>
-
- * compiler.jl: non-trivial changes to make the compiler
- eliminate intra-function tail recursion. Also fixed some bugs
- when handling defsubst's
-
- * compiler-opt.jl: modified `jmp X; ... Y: --> jmp X; Y:'
- pattern to handle `return' instructions as well as gotos, and
- to delete until the end of the instruction stream if no
- subsequence label. Also fixed bug stopping the optimization
- being applied
-
-2000-03-08 John Harper <john dcs warwick ac uk>
-
- * compiler.jl (comp-compile-case): don't dup before the default
- branch
-
-2000-03-05 John Harper <john dcs warwick ac uk>
-
- * version 0.11
-
-2000-03-04 John Harper <john dcs warwick ac uk>
-
- * string-util.jl: new file, some string functions (case
- manipulation)
-
- * dump.jl: replaced most instances of integerp by fixnump
-
-2000-03-01 John Harper <john dcs warwick ac uk>
-
- * dump.jl: dump strings correctly again (still doesn't handle
- non-fixnum numbers though)
-
- * lisp-doc.jl: use GDBM instead of SDBM (no data size limits)
-
-2000-02-29 John Harper <john dcs warwick ac uk>
-
- * define.jl: bug fixes -- handle interactive decls and doc
- strings
-
-2000-02-28 John Harper <john dcs warwick ac uk>
-
- * define.jl (define-parse): remember in `(define FOO BAR)' to
- scan BAR for internal definitions
-
-2000-02-27 John Harper <john dcs warwick ac uk>
-
- * gaol.jl: added a load more safe functions to the list. Also
- allow `tables' to be required
-
- * compiler.jl: misc fixes for math stuff. Also fixed
- compilation of transitive comparisons (no guarantee they would
- evaluate all arguments previously)
-
- * bytecodes.jl, disassembler.jl: deleted op-numeq and
- op-num-noteq. op-lsh changed to op-ash
-
-2000-02-25 John Harper <john dcs warwick ac uk>
-
- * lisp.jl (positivep, negativep, oddp, evenp, abs, %, modulo,
- lcm): new functions (some are just pseudonyms)
-
- * bytecodes.jl (op-quotient, op-floor, op-ceiling, op-truncate,
- op-round, op-exp, op-log, op-sin, op-cos, op-tan, op-sqrt,
- op-expt): new instructions
- * compiler.jl: generate code for math functions
- * diassembler.jl: grok the math functions
-
- * sort.jl, date.jl: use `quotient' instead of `/'
-
-2000-02-20 John Harper <john dcs warwick ac uk>
-
- * compiler.jl: remember that define-value defines lexical
- variables. When compiling files, don't read-and-macroexpand in
- both passes, just the first, storing the results for input to
- the second pass
-
-2000-02-19 John Harper <john dcs warwick ac uk>
-
- * threads.jl (with-threads-blocked): now autoloaded
-
- * gaol.jl (gaol-safe-functions): added define and
- with-internal-definitions
-
-2000-02-17 John Harper <john dcs warwick ac uk>
-
- * lisp.jl (load-all): remove the (broken) restiction on not
- loading from the current directory
-
- * lisp.jl (prin1-to-string, read-from-string, setcar, setcdr,
- string=, string<, caar, cadr, cadr, cdar, cdar, cddr, cddr,
- caddr, caddr, call-with-current-continuation): changed these
- from macros to functions
-
- * compiler.jl (caar, cadr, cadr, cdar, cdar, cddr, cddr, caddr,
- caddr, setcar, setcar, setcdr, setcdr, string=, string=,
- string<, string<): generate single instructions for these
- functions
-
- * remote-rep.jl: make this work again
-
-2000-02-10 John Harper <john dcs warwick ac uk>
-
- * gaol.jl: added macro-environment to safe specials
-
- * define.jl (with-internal-definitions): new macro, scans its
- body for internal defines
- (define-scan-form): fixed scanning `case' forms
-
-2000-02-09 John Harper <john dcs warwick ac uk>
-
- * lisp.jl (autoload-macro): new function
-
-2000-02-08 John Harper <john dcs warwick ac uk>
-
- * compiler.jl (comp-compile-case): fixed this, wasn't dup'ing
- the key before each comparison, only before the first
-
- * define.jl: now that macros can find the macro environment
- they were invoked through, it's possible to implement this
- properly, scanning out define's from all suitable forms
- automatically
-
- * compiler-opt.jl (comp-peephole-opt): fix typo in `jt X; nil
- --> jpt X' pattern
-
-2000-02-06 John Harper <john dcs warwick ac uk>
-
- * mutex.jl: new file, moved the mutexes from threads.jl
- * threads.jl (with-threads-blocked): new macro
-
- * disassembler.jl, compiler.jl, bytecodes.jl: new instructions
- op-permit, op-forbid
-
- * threads.jl: removed the thread functions, they're in C code
- now
-
-2000-02-03 John Harper <john dcs warwick ac uk>
-
- * compiler.jl (compile-file): write a newline character at the
- end of the output file
-
-2000-02-01 John Harper <john dcs warwick ac uk>
-
- * memoize.jl (memoize-function): use `equal' hash-tables to
- cache results
-
- * define.jl (lambda*): macro similar to lambda, but scans out
- internal definitions
-
- * compiler.jl (comp-constant-function-p,
- comp-constant-function-value): expand macros before testing
-
-2000-01-31 John Harper <john dcs warwick ac uk>
-
- * lisp-doc.jl (documentation): fix for macro objects
-
- * define.jl: new file, scheme-like `define' macro
-
- * compiler.jl: handle improper lists in lambda expressions
- (i.e. (foo . bar) == (foo &rest bar))
-
-2000-01-30 John Harper <john dcs warwick ac uk>
-
- * debug.jl: better support for debugging in lexical
- environments
-
- * compiler-opt.jl (comp-peephole-opt): added pattern `jt X; nil
- --> jpt X'
-
- * compiler.jl (compile-compiler): compile `sort.jl' as well
- (it's used by compiler-opt)
-
- * lisp-doc.jl (describe-function-1): dereference closures
-
- * threads.jl: first attempt at a (very basic) threading
- interface
-
-2000-01-26 John Harper <john dcs warwick ac uk>
-
- * lisp-doc.jl (describe-variable): remove reference to
- current-buffer (not used anyway)
-
-2000-01-24 John Harper <john dcs warwick ac uk>
-
- * compiler.jl (comp-compile-case): support the new `case'
- statement (similar to in scheme)
-
- * lisp.jl (when): expand to an if statement, not a cond. This
- makes `(when t)' behave consistently with `(if t)' (pointed out
- by Dave Pearson)
-
- * compiler-opt.jl (comp-peephole-opt): fix error when
- transforming `bind X; refn #0' --> `dup; bind X'
-
-2000-01-23 John Harper <john dcs warwick ac uk>
-
- * bytecodes.jl (op-return, op-unbindall): new instructions (for
- tail call elimination)
- * compiler.jl (compile-form): emit a return instruction at the
- end of each code string
- * compiler-opt.jl (comp-peephole-opt): new patterns to
- back-propagate return instructions, and remove unneeded unbind
- instructions
- * disassembler.jl: output the two new instructions
-
-2000-01-22 John Harper <john dcs warwick ac uk>
-
- * bytecodes.jl: new bytecode version 9.0
- (op-refn, op-setn): lexical address instructions
- (op-refg, op-setg): global lexical instructions
- (op-bindspec): create a special binding (op-bind _always_
- creates lexical bindings now)
-
- * compiler.jl: separately track lexical and special bindings,
- then generate code as required (i.e. use lexical addressing)
-
- * compiler-opt.jl (comp-peephole-opt): updated to grok the new
- instructions
-
- * disassembler.jl: updated for new instructions
-
-2000-01-14 John Harper <john dcs warwick ac uk>
-
- * gaol.jl: removed redefinition of make-timer, added it to list
- of safe functions (since we are a lisp-1)
-
-2000-01-12 John Harper <john dcs warwick ac uk>
-
- * memoize.jl (memoize-function): wrap a function with a cache
- (needs a hash-table implementation to be useful..)
-
- * tar-file-handler.jl: use a guardian to allow finalization of
- file handles
-
- * remote.jl (remote-register-file-handle): new function, uses a
- guardian and a function in the after-gc-hook to correctly
- finalize open remote files when they are garbage collected
-
- * remote-ftp.jl, remote-rep.jl: register file handles for
- finalization
-
- * lisp.jl (make-guardian): new function, a means for protecting
- objects from being deallocated when they have no references
-
-src/2000-01-09 John Harper <john dcs warwick ac uk>
-
- * version 0.10
-
-2000-01-03 John Harper <john dcs warwick ac uk>
-
- * compiler.jl (comp-compile-defun, comp-compile-defmacro):
- remember the functions being defined
-
-1999-12-31 John Harper <john dcs warwick ac uk>
-
- * tilde.jl: added provide decl
-
- * lisp.jl (featurep, provide, require): removed (in C again)
- (autoload): a function again
-
- * init.jl: require libraries instead of loading (in case
- they've been dumped)
-
- * dump.jl: updated for lisp-1 rep with closures
-
-1999-12-22 John Harper <john dcs warwick ac uk>
-
- * compiler.jl (comp-trans-setq, comp-trans-setq-default):
- signal an error if an odd number of arguments is given
-
-1999-12-12 John Harper <john dcs warwick ac uk>
-
- * version 0.9
-
- * disassembler.jl (disassemble): escape all control codes when
- printing, not just newlines
-
-1999-12-11 John Harper <john dcs warwick ac uk>
-
- * date.jl (parse-date): fix calculation of day-of-week
-
- * bytecodes. (op-caar, op-cadr, op-cdar, op-cddr, op-caddr,
- op-cadddr, op-caddddr, op-cadddddr, op-caddddddr,
- op-cadddddddr): new instructions
- * disassembler.jl, gaol.jl: added c..r instructions
-
- * compiler.jl: optimise constant index nth and nthcdr calls to
- single c...r instructions where possible
-
- * compiler-opt.jl (comp-peephole-opt): fixed optimisation
- looking for `const; const|dup...'
- (comp-peephole-opt): optimise pairs of car or cdr instructions
- to a single instruction
-
- * lisp.jl (caar, ..., cddr, caaar, ..., cdddr): new functions
-
-1999-12-10 John Harper <john dcs warwick ac uk>
-
- * rep.jl, debug.jl: use proper readline
-
- * lisp.jl (in-hook-p): new function
- (add-hook): if variable is unbound, make it special before
- setting it
-
-1999-12-07 John Harper <john dcs warwick ac uk>
-
- * disassembler.jl, compiler.jl, bytecodes.jl (op-enclose): new
- instruction
-
- * lisp.jl (unless): if the condition evaluates true, then
- return nil, not the value of the condition (this is the
- behaviour in cl and elisp)
-
-1999-12-06 John Harper <john dcs warwick ac uk>
-
- * lisp.jl (letrec): new macro, as in scheme, creates mutually
- recursive bindings
-
-1999-12-05 John Harper <john dcs warwick ac uk>
-
- * version 0.8.1
-
-1999-11-29 John Harper <john dcs warwick ac uk>
-
- * lisp-doc.jl, compiler.jl: fixed the documentation functions
- for unified namespace
-
-1999-11-28 John Harper <john dcs warwick ac uk>
-
- * version 0.8
-
-1999-11-25 John Harper <john dcs warwick ac uk>
-
- * tilde.jl, tar-file-handler.jl, sort.jl, rep.jl,
- remote-rep.jl, remote-rcp.jl, remote-ftp.jl, lisp.jl,
- lisp-doc.jl, gaol.jl, environ.jl, dump.jl, disassembler.jl,
- debug.jl, compiler.jl, compiler-opt.jl, cgi-get.jl,
- bytecodes.jl, backquote.jl, autoload.jl: updated for single
- namespace and scheme-like function semantics
-
-1999-11-21 John Harper <john dcs warwick ac uk>
-
- * gaol.jl (gaol-add-file-handler, gaol-replace-file-handler):
- new functions, allow access to be granted to file handlers
- without letting any operation be performed
-
-1999-11-20 John Harper <john dcs warwick ac uk>
-
- * lisp.jl (string-equal-p, string-less-p): deleted
-
- * compiler.jl (comp-test-funcall): check if a locally-bound
- function before warning that it's undefined
-
-1999-11-18 John Harper <john dcs warwick ac uk>
-
- * lisp.jl: unless it's already bound, make the _ function
- return it's sole argument (until redefined by gettext module)
-
-1999-11-15 John Harper <john dcs warwick ac uk>
-
- * gaol.jl: wrapped make-timer, rebuild function env after doing
- a safe require, rebuilding environment affects existing
- restricted environments
-
-1999-11-11 John Harper <john dcs warwick ac uk>
-
- * gaol.jl: new file, provides a restricted environment for
- untrusted code
-
-1999-11-10 John Harper <john dcs warwick ac uk>
-
- * disassembler.jl, compiler.jl, bytecodes.jl: handle lexically
- scoped functions (new opcodes and special forms). macrolet form
- is still unimplemented in compiled code
-
- * tar-file-handler.jl, remote-rep.jl, remote-ftp.jl: updated
- for lexical scoping
-
- * lisp.jl (features, featurep, provide, require): defined these
- in Lisp now (so they get enclosed)
- (function): this is now a special form
-
-1999-11-01 John Harper <john dcs warwick ac uk>
-
- * tar-file-handler.jl (tarfh-alternative-gnu-tar-programs): new
- variable, a list of alternative programs to check when looking
- for GNU tar
-
-1999-10-24 John Harper <john dcs warwick ac uk>
-
- * version 0.7
-
-1999-10-17 John Harper <john dcs warwick ac uk>
-
- * tar-file-handler.jl: read-only access to files stored in tar
- archives, access files like `foo.tar.gz#tar/bar'; still has
- some problems, but works well enough
-
-1999-10-13 John Harper <john dcs warwick ac uk>
-
- * rep.jl: don't add the current directory to the head of the
- load-path, it's already at the end of the path where it should be
-
- * lisp.jl (load-all): don't search in the current directory
- (since it's unpredictable)
-
- * compiler.jl: fix bug of `last' instruction being thought to
- require two arguments
-
-1999-09-14 John Harper <john dcs warwick ac uk>
-
- * version 0.6
-
- * environ.jl (unsetenv): new function
-
-1999-09-12 John Harper <john dcs warwick ac uk>
-
- * version 0.5
-
-1999-08-31 John Harper <john dcs warwick ac uk>
-
- * version 0.4
-
-1999-08-27 John Harper <john dcs warwick ac uk>
-
- * dump.jl: changed for new string data layout
-
-1999-08-22 John Harper <john dcs warwick ac uk>
-
- * version 0.3
-
-1999-08-21 John Harper <john dcs warwick ac uk>
-
- * compiler.jl (compile-batch): new command line option
- `--write-docs'
- (comp-compile-top-form): remember any declared variables that
- haven't already registered, change the error on finding an
- unregistered constant to a warning
-
-1999-08-16 John Harper <john dcs warwick ac uk>
-
- * version 0.2
-
-1999-08-03 John Harper <john dcs warwick ac uk>
-
- * version 0.1
-
-1999-07-22 John Harper <john dcs warwick ac uk>
-
- * rep.jl (rep): clear the cached input when an error occurs
-
- * debug.jl (debug-rep): implements a proper terminal-based
- debugger loop
-
-1999-07-07 John Harper <john dcs warwick ac uk>
-
- * remote-rep.jl (remote-rep-read-length): fix this for large
- numbers
-
-1999-07-06 John Harper <john dcs warwick ac uk>
-
- * remote-rep.jl, remote-ftp.jl (remote-rep-lookup-file,
- remote-ftp-lookup-file): new functions, chase symbolic links
- until the actual file is found
-
- * remote-rep.jl: new file, mostly copied from remote-ftp, but
- uses the rep-remote program (rsh'd onto the remote host) for
- all file access. Supports all file operations (unlike ftp)
-
- * remote-ftp.jl (remote-ftp-host-user-alist,
- remote-ftp-default-user): deleted
- * remote.jl (remote-host-user-alist, remote-default-user): new
- variables
- (remote-get-user): new function
-
-1999-07-04 John Harper <john dcs warwick ac uk>
-
- * tilde.jl, remote-ftp.jl: handle new operations read-symlink
- and make-symlink (actually, ftp doesn't do make-symlink)
-
- * compiler.jl (compile-file): preserve `#! ... !#' at start of
- file if present
-
-1999-07-02 John Harper <john dcs warwick ac uk>
-
- * remote-ftp.jl (remote-ftp-empty-cache): new command
-
-1999-06-09 John Harper <john dcs warwick ac uk>
-
- * rep.jl (rep): don't use `read' to read an entire form at
- once, instead use `read-line' to read strings until there's
- enough to parse a whole form
-
- * pwd-prompt.jl (pwd-prompt): fixed to actually delete the
- line-terminating newline, also print a newline before exiting
-
-1999-06-06 John Harper <john dcs warwick ac uk>
-
- * compiler.jl: generate an intermediate form between Lisp forms
- and bytecodes, a list of instructions and labels. Then run an
- optimisation pass (peephole) over the intermediate code before
- assembling it to bytecodes
- * compiler-opt.jl: new file, implements the low-level
- optimisations. Does peephole and constant-vector layout
- optimisations
-
- * bytecodes.jl: op-setq now pops the value from the stack.
- Deleted op-pushi-pair, replaced by op-pushi-neg and
- op-pushi-pair-pos, for pushing negative and positive values
- respectively
- * disassembler.jl: updated for new opcodes
-
- * pwd-prompt.jl: new file, implement pwd-prompt function for
- the console
-
-1999-06-03 John Harper <john dcs warwick ac uk>
-
- * rep.jl: loading a script implies --batch (but not when loaded
- via the -l option). Don't print the banner until immediately
- before entering the read-eval-print loop
-
-1999-05-27 John Harper <john dcs warwick ac uk>
-
- * cgi-get.jl (cgi-get-params): new file, process the
- QUERY_STRING from a CGI get command
-
-1999-05-15 John Harper <john dcs warwick ac uk>
-
- * date.jl (date-day-of-week): new function, given
- date/day/month, gives the day of week
- (parse-date): accept ISO 8601 calendar format
-
-1999-04-28 John Harper <john dcs warwick ac uk>
-
- * compiler.jl (compile-batch): new function
-
-1999-04-19 John Harper <john dcs warwick ac uk>
-
- * compiler.jl (compile-file): minor fix to error handling
-
-1999-03-30 John Harper <john dcs warwick ac uk>
-
- * remote-ftp.jl (remote-ftp-chmod): make errors give a warning
- since some (many?) ftpd's don't support it and it's probably
- mostly harmless
-
- * compiler.jl (comp-compile-lambda): minor fix
-
-1999-03-17 John Harper <john dcs warwick ac uk>
-
- * rep.jl (rep): don't catch 'quit
-
-1999-03-14 John Harper <john dcs warwick ac uk>
-
- * rep.jl: add the current directory to the load-path
-
-1999-03-12 John Harper <john dcs warwick ac uk>
-
- * rep.jl: any bare command-line arguments are passed to load
-
-1999-03-10 John Harper <john dcs warwick ac uk>
-
- * compiler.jl (compile-file): ensure that the temporary output
- file is deleted
-
-1999-03-07 John Harper <john dcs warwick ac uk>
-
- * compiler.jl (comp-compile-lambda): only put the doc-string in
- the bytecode vector if it wasn't written to the db
-
- * lisp-doc.jl (documentation): only try to get the value of the
- function or variable if it's actually bound
-
-1999-03-03 John Harper <john dcs warwick ac uk>
-
- * rep.jl: print a message if unknown command-line options are
- encountered
-
-src/1999-02-28 John Harper <john dcs warwick ac uk>
-
- * MAJOR CHANGES: separated all LISP interpreter specific parts
- into a separate library, librep (Read-Eval-Print)
-
-1999-02-12 John Harper <john dcs warwick ac uk>
-
- * tilde.jl: canonicalise the user-home-directory before
- comparing it against the original default-directory
-
-1999-02-02 John Harper <john dcs warwick ac uk>
-
- * compiler.jl (comp-push-label-addr): new function, replaces
- comp-get-label-addr
- (comp-write-raw-op): deleted this function
-
-1999-02-01 John Harper <john dcs warwick ac uk>
-
- * rm-mail-dir.jl (rm-mail-dir-auto-scan-hook): new hook
-
-1999-01-31 John Harper <john dcs warwick ac uk>
-
- * html-decode.jl: only underline links (anchors with href
- field). Add anchors to a list that's returned to the caller
- * html-display.jl (html-display-goto-anchor): new command
- * find-url.jl: support for anchors specified in URLs
-
- * bytecodes.jl: several pushi instructions
- * compiler.jl (comp-write-raw-op): new function
- (comp-compile-constant): use pushi instructions to compile
- integers where possible
- * disassembler.jl (disassemble): support pushi instructions
-
-1999-01-28 John Harper <john dcs warwick ac uk>
-
- * find-url.jl (find-file-as-url): new command
-
- * html-display.jl (html-display): if the given URL is nil, and
- the source buffer has a file name, set the URL to the file:
- version of the filename
-
- * html-decode.jl (html-decode): more bug fixes
-
-1999-01-27 John Harper <john dcs warwick ac uk>
-
- * mime-decode.jl (mime-encode-mmencode): new function, wrapper
- for the base64 and quoted-printable coders, if possible and
- desirable, then an external `mmencode' program is used to do
- the translation
-
- * find-url.jl, html-display.jl: fix which view to display in
-
-1999-01-26 John Harper <john dcs warwick ac uk>
-
- * rm-mime.jl: bind the `w' prefix in read-mail mode to the
- `html-display-map'
-
- * html-display.jl (html-display-current-link): search up the
- extent stack correctly
- (html-display-map): autoload'able
-
- * mime-decode.jl (mime-decode): handle `text/html' MIME parts
- by calling html-decode
-
- * html-decode.jl: more bug fixes
-
-1999-01-25 John Harper <john dcs warwick ac uk>
-
- * remote-ftp.jl (remote-ftp-close-all): new function
- (remote-ftp-close-host): made interactive
-
-1999-01-24 John Harper <john dcs warwick ac uk>
-
- * remote-ftp.jl: misc fixes to try and handle non-successful
- logins more gracefully; not 100% successful yet..
-
- * ispell.jl (ispell-kill-process): keep looping while
- accept-process-output times out, not while it doesn't!
-
- * html-display.jl (html-display-select): handle URL's that are
- specified relative to the root of the current server
-
-1999-01-22 John Harper <john dcs warwick ac uk>
-
- * html-decode.jl: parse <frameset> sections half-heartedly, and
- be slightly more clueful about unnested close tags
-
-1999-01-21 John Harper <john dcs warwick ac uk>
-
- * find-url.jl (find-url-file, find-url-ftp): detect if a file:
- URL contains HTML code, if so decode it
-
- * html-decode.jl (html-decode): bind html-decode-source and
- html-decode-point to the position of the next item to be
- parsed, called functions may then alter these
- (html-decode:script): skip <script> sections
-
-1999-01-20 John Harper <john dcs warwick ac uk>
-
- * find-url.jl (find-url-asynchronously): new variable, only
- find-url-http takes note of it, calling wget asynchronously
- when it's non-nil
-
- * html-display.jl (html-display): the OTHER-VIEW parameter may
- be the actual view to display in, or nil, or anything else to
- switch to the other view
-
-1999-01-19 John Harper <john dcs warwick ac uk>
-
- * html-display.jl (html-display): new function, a mode to tie
- find-url and html-decode to form a basic web-browser
-
- * find-url.jl (find-url-http): new function, uses wget to
- download the url, then if it's html data, html-display to view
- it
-
- * html-decode.jl: many bug fixes, implemented most list tags
-
-1999-01-18 John Harper <john dcs warwick ac uk>
-
- * html-decode.jl (html-decode): initial version of this module,
- a basic HTML to editor-buffer translator
-
-1999-01-14 John Harper <john dcs warwick ac uk>
-
- * mime-decode.jl (mime-display-part): use name of attachment
- (if given) as name of buffer
- (mime-decode-buffer): fix nil-decoder decoding
-
- * send-mail.jl (mail-setup): when putting an address in the BCC
- header for the mail-self-blind option, use user-mail-address,
- not (user-login-name)
-
- * mail-headers.jl (mail-compare-addresses): new function,
- compare two mail addresses
-
- * rm-misc.jl (rm-reply): when following-up a message, only put
- those address in the CC header that aren't in the To or BCC
- headers
-
- * mime-decode.jl (mime-decode): don't display parts whose
- bodies contain zero lines
- (mime-decode-insert-stub, mime-save-part): look in content-type
- param lists for file name, as well as in content-disposition
- (though content-disposition takes precedence)
-
-1999-01-13 John Harper <john dcs warwick ac uk>
-
- * keymap.jl (active-keymaps): dereference symbols in the list
- of keymaps
- (map-keymap): deref. symbol in the correct buffer
- (next-event, read-event, describe-key): miscellaneous fixes
-
-1999-01-12 John Harper <john dcs warwick ac uk>
-
- * dired.jl (dired-do-copy): only call summary-update when
- copying to the displayed directory
-
- * help.jl (describe-function): handle nil doc string
-
- * buffers.jl (find-file): expand the file name before doing
- anything with it, also if it's a directory, call
- directory-file-name on it
-
- * remote-ftp.jl: cache more than one directory listing, and
- expire cached directories after X minutes (default X=5).
- (remote-ftp-command): instead of just returning t if the
- command succeeded, signal a file-error if it failed; nothing
- really checked the return value anyway..
- (remote-ftp-open-session): if remote-ftp-login fails (i.e.
- signals an error), close the session before propagating the
- error
-
-1999-01-11 John Harper <john dcs warwick ac uk>
-
- * dired.jl (dired-do-copy, dired-do-rename): set default file
- name to name of source file
-
- * prompt.jl (prompt-for-file, prompt-for-directory): when
- setting prompt-default-value, call expand-file-name on it
-
-1999-01-10 John Harper <john dcs warwick ac uk>
-
- * edit.jl (save-excursion, save-restriction): use un-interned
- symbols to store temproary values
-
- * edit.jl (map-extents-at): macro mapping a function over all
- extents containing an arbitrary position
-
- * lisp-mode.jl (lisp-mode): fix mode-defun-header to match
- macros and defsubsts as well as functions
-
-1999-01-07 John Harper <john dcs warwick ac uk>
-
- * mime-decode.jl (mime-display-part): new function, decodes a
- MIME subpart to a temporary buffer
- * rm-mime.jl: bind C-RET to mime-display-part in read-mail mode
-
-1999-01-07 John Harper <john dcs warwick ac uk>
-
- * tex-mode.jl (tex-mode, latex-mode, plain-tex-mode): make sure
- that when text-mode-hook is called, the major-mode is set to
- its final value
-
-1999-01-05 John Harper <john dcs warwick ac uk>
-
- * ispell.jl: protect against multiple concurrent-readers
-
-1998-12-21 John Harper <john dcs warwick ac uk>
-
- * modes.jl (auto-mode-alist): made .sty suffix use tex-mode
-
- * diff.jl: some fixes for handling narrowed buffers
-
- * ispell.jl (ispell-idle-function): minor fix to identifying
- the region to scan (when the buffer is narrowed)
-
-1998-12-16 John Harper <john dcs warwick ac uk>
-
- * cvs.jl (cvs-add): new argument WITH-LOG, controlling whether
- or not to prompt for a log message before adding the file
-
-1998-12-15 John Harper <john dcs warwick ac uk>
-
- * mime-encode.jl: fix keymap autoloading problem
-
-1998-12-09 John Harper <john dcs warwick ac uk>
-
- * miranda.jl (miranda): take program arguments from variable
- miranda-program-args (not including file name)
-
-1998-12-08 John Harper <john dcs warwick ac uk>
-
- * rcs.jl (rcs-callback-with-description): install local keymap
- _after_ calling text-mode. This loses text-mode's bindings,
- should really install the rcs bindings as a minor-mode..
-
-1998-12-04 John Harper <john dcs warwick ac uk>
-
- * prompt.jl (prompt): only add result to prompt-history if it's
- a string (amongst other things)
-
-1998-12-01 John Harper <john dcs warwick ac uk>
-
- * latin-1.jl (insert-latin-1-character): new function, entry of
- latin 1 chars by name
-
- * tex-mode.jl (tex-mode, latex-mode, plain-tex-mode): fix
- documentation strings
-
-1998-11-29 John Harper <john dcs warwick ac uk>
-
- * loadkeys.jl (global-keymap): no longer buffer-local
-
- * replace.jl (query-replace): use overriding-local-keymap to
- install the keymap
-
-1998-11-26 John Harper <john dcs warwick ac uk>
-
- * mail-dir.jl (insert-mail-item): fix for when no name
- associated with address
-
- * tex-mode.jl (latex-mode, plain-tex-mode): added autoload tags
-
-1998-11-25 John Harper <john dcs warwick ac uk>
-
- * edit.jl (quoted-insert): new command, bound to C-q
-
- * keymap.jl (next-event): new function
- (read-event): new optional arg COOKED
-
-1998-11-24 John Harper <john dcs warwick ac uk>
-
- * help.jl (describe-function): once more run
- substitute-command-keys over the documentation
-
- * ispell.jl: in misspelt words, bind `C-c C-a' to add the word
- to the personal dictionary, and `C-c C-s' to accept the word
- for the rest of the Ispell session
- (ispell-add-word-for-session, ispell-save-dictionary): new
- commands
-
-1998-11-24 John Harper <john dcs warwick ac uk>
-
- * yacc-mode.jl, text-mode.jl, texinfo-mode.jl, tex-mode.jl,
- summary.jl, shell.jl, sh-mode.jl, send-mail.jl, replace.jl,
- read-mail.jl, rcs.jl, prompt.jl, perl-mode.jl, page-summary.jl,
- modes.jl, mime-encode.jl, mail-dir-summary.jl, loadkeys.jl,
- lisp.jl, lisp-mode.jl, keymap.jl, isearch.jl, info.jl, help.jl,
- gdb.jl, fill.jl, dired.jl, diff.jl, debug.jl, cvs.jl,
- c-mode.jl, asm-mode.jl, add-log.jl: updated for new key binding
- methods
-
- * ispell.jl (ispell-minor-mode): in the extents of misspelt
- words, bind `C-c RET' and `LMB-Click2' to a command calling the
- interactive ispell on the word
-
-1998-11-23 John Harper <john dcs warwick ac uk>
-
- * ispell.jl (ispell-strip-word): if a stripped prefix or suffix
- doesn't match, assume it's a literal string including a hyphen
-
-1998-11-19 John Harper <john dcs warwick ac uk>
-
- * rcs.jl (rcs-compare-revisions): when the new variable
- rcs-diff-options is set to the symbol `visual', use the
- diff-files command to visually display the differences
-
-1998-11-18 John Harper <john dcs warwick ac uk>
-
- * buffers.jl (insert-buffer): new command
-
-1998-11-14 John Harper <john dcs warwick ac uk>
-
- * c-mode.jl (c-indent-pos): don't recognize a semi-colon as
- terminating a statement unless (ignoring following whitespace)
- it's followed by eol or a comment
-
-1998-11-11 John Harper <john dcs warwick ac uk>
-
- * tex-shell.jl (tex-shell-program, tex-shell-program-args): new
- variables
-
-1998-11-09 John Harper <john dcs warwick ac uk>
-
- * tex-mode.jl (latex-mode, plain-tex-mode): added doc strings
-
- * page-summary.jl: new file, a command to summarise a buffer by
- the comments at the start of each page
-
-1998-11-07 John Harper <john dcs warwick ac uk>
-
- * sort.jl (sort): when merging lists ensure that equal keys
- retain their original order
-
-1998-11-05 John Harper <john dcs warwick ac uk>
-
- * gdb.jl (gdb-frame-face): new variable, the face used to
- highlight the source line of the current stack frame (instead
- of using the block)
-
-1998-11-01 John Harper <john dcs warwick ac uk>
-
- * buffers.jl (kill-buffer): call kill-buffer-hook with the
- current buffer as the buffer being killed, instead of passing
- it as an argument
- * server.jl, shell.jl: adapt to new calling method for
- kill-buffer-hook
-
-1998-10-31 John Harper <john dcs warwick ac uk>
-
- * tex-shell.jl (bibtex-file, tex-kill-job,
- tex-recenter-output-buffer, tex-print, tex-view,
- tex-show-print-queue): new commands
-
- * tex-mode.jl (plain-tex-mode): new function, just so there can
- be a plain-tex-mode-hook really
-
- * shell.jl (shell-kill-buffer-hook): new function, takes most
- of shell-mode-kill, but is put in the kill-buffer-hook so that
- it actually gets called when the buffer is killed..
-
-1998-10-30 John Harper <john dcs warwick ac uk>
-
- * prompt.jl (prompt-for-lisp): kludge to use lisp-complete-sexp
- for completion
-
- * lisp.jl: add two entries to the format-hooks-alist, `D' and
- `F' for file-name-directory and file-name-nondirectory
- respectively
-
- * modes.jl (auto-mode-alist): add latex-mode entry
- * tex-mode.jl (latex-mode): derivative of tex-mode, called when
- the buffer looks to contain LaTeX source
-
- * tex-shell.jl: initial (very basic) attempt at running TeX in
- a subshell
-
-1998-10-29 John Harper <john dcs warwick ac uk>
-
- * completion.jl (complete-at-point, show-completions): these
- replace the -buffer- completion commands. They use the list of
- completion generators completion-hooks to do the real work. The
- default generator is complete-from-buffer
- * lisp.jl (lisp-complete-sexp): this is now just a generator,
- put in the completion-hooks in Lisp buffers
-
- * prompt.jl (prompt-complete-function,
- prompt-list-completions-function): deleted. If
- prompt-completion-function is `t', call complete-at-point
- (before-prompt-hook): new hook
-
- * completion.jl (completion-insert): new function to handle
- inserting from a list of completions at the cursor
- (complete-from-buffer, show-buffer-completions): new commands
- * loadkeys.jl (global-keymap): bound complete-from-buffer to
- M-TAB and show-buffer-completions to M-?
- * lisp-mode.jl (lisp-complete-sexp): use completion-insert
-
- * modes.jl (forward-exp, backward-exp): handle negative COUNTs
-
- * read-mail.jl (rm-fix-status-info): set buffer-status-id in
- the summary buffer as well (if it exists)
-
- * completion.jl (completion-abbrev-function): new variable
- (completion-list): call the above hook on all completions, then
- only display the abbreviated versions
-
- * prompt.jl (prompt-abbreviate-filename): new function, put in
- the completion-abbrev-function when completing in the
- filesystem
-
-1998-10-28 John Harper <john dcs warwick ac uk>
-
- * buffers.jl (make-backup-file-name): new function, used by
- backup-file to find the name of the old version
-
-1998-10-26 John Harper <john dcs warwick ac uk>
-
- * dump.jl (dump-output-strings): output a zero in the new
- `next' field of the Lisp_String structure
-
-1998-10-24 John Harper <john dcs warwick ac uk>
-
- * completion.jl (completion-setup-view): when not creating a
- new view, ensure that the view chosen isn't currently selected
-
- * ispell.jl (ispell-strip-word): try again to fix this function
-
-1998-10-23 John Harper <john dcs warwick ac uk>
-
- * rm-mail-dir.jl (rm-mail-dir-scan-messages,
- rm-mail-dir-scanner): when invoked by C-k, if an address has no
- real name, prompt for one
-
-1998-10-22 John Harper <john dcs warwick ac uk>
-
- * mime-decode.jl (mime-decode-content-disp): check the length
- of the string before looking for a `;' character
-
-1998-10-20 John Harper <john dcs warwick ac uk>
-
- * rm-mime.jl (rm-mime-display-markers): command to redisplay
- the current message with markers for _all_ MIME parts, bound to
- "D" in read-mail mode
-
- * keymap.jl (lazy-bind-keys): macro to bind keys in a package
- that has possibly not been loaded
-
-1998-10-19 John Harper <john dcs warwick ac uk>
-
- * ispell.jl (ispell-strip-word): fixed for words consisting of
- a root and nothing else
-
-1998-10-14 John Harper <john dcs warwick ac uk>
-
- * read-mail.jl (rm-get-address-name): new function
-
-1998-10-13 John Harper <john dcs warwick ac uk>
-
- * mime-quoted-printable.jl (mime-encode-quoted-printable):
- implemented this function
-
- * modes.jl (mode-line-format): add a `%m' as the first
- character
-
-1998-10-12 John Harper <john dcs warwick ac uk>
-
- * rcs-hooks.jl (rcs-file-p): test if the file is a directory
- first
-
- * dired.jl (dired-create-directory): new command, bound to `+'
- (dired-execute-end): test whether the delete item is a file or
- a directory, then call delete-file or delete-directory
- appropriately
-
- * remote-ftp.jl (remote-ftp-handler): handle make-directory and
- delete-directory
- * tilde.jl (tilde-file-handler): handle make-directory and
- delete-directory
-
- * buffers.jl (kill-buffer): delete the buffer from the
- buffer-list even in minibuffer views now (for example, isearch
- uses with this variable)
-
-1998-10-11 John Harper <john dcs warwick ac uk>
-
- * rm-misc.jl (rm-reply): uses the rm-get-msg-header function
- instead of mail-get-header. This works with decoded MIME
- messages
-
- * send-mail.jl: bind `C-c C-m' to the mime-encode-keymap
-
- * send-mail.jl (mail-send-hook): defvar'd this hook
-
- * mime-encode.jl: initial attempt at creating MIME messages
-
- * mime-decode.jl: minor fixes
- (mime-current-part): new function
-
-1998-10-09 John Harper <john dcs warwick ac uk>
-
- * mime-decode.jl (mime-decode-mark-inlines): new variable
-
- * mime-decode.jl, rm-mime.jl: support for Content-Disposition
- header, other misc fixes
-
- * mime-quoted-printable.jl (mime-decode-quoted-printable): this
- function has now been implemented
-
-1998-10-08 John Harper <john dcs warwick ac uk>
-
- * rm-mime.jl, mime-quoted-printable.jl, mime-decode.jl,
- mime-base64.jl: initial support for decoding of MIME messages.
- The quoted-printable stuff is unimplemented; various shortcuts
- in mime-decode as well
-
- * read-mail.jl (rm-display-current-message, rm-proxy-folder):
- support for rendering messages to a temporary buffer for
- display (used for MIME for example)
-
- * rm-summary.jl (rm-summary-view): never return a buffer, only
- a view
-
- * compiler.jl (comp-trans-require): tranform to evaluate
- embedded require forms before compiling them
-
-1998-10-07 John Harper <john dcs warwick ac uk>
-
- * send-mail.jl (sendmail-send-message): when handling FCC
- headers, temporarily mangle ^From_ to >From_ while saving the
- message
-
-1998-10-05 John Harper <john dcs warwick ac uk>
-
- * read-mail.jl (rm-command-items): use rm-with-summary instead
- of just switching buffers
-
-1998-10-04 John Harper <john dcs warwick ac uk>
-
- * rm-summary.jl, rm-output.jl, rm-mail-dir.jl, read-mail.jl:
- support for marking messages then operating on the selected
- messages. Currently only the `C-k' and `s' commands do this
-
- * cvs.jl: use open-buffer to create buffers
-
- * summary.jl (summary-unmark-all): call the after-marking
- vector of each message unmarked
- (summary-unmark-item): call after-marking even if the message
- status didn't change
-
-1998-10-02 John Harper <john dcs warwick ac uk>
-
- * rcs.jl (rcs-call-callback): don't truncate the log message at
- the cursor position, use all the buffer (less any trailing
- newlines)
-
- * buffers.jl (read-file-into-buffer): assume that the
- read-file-hook, if successful, sets default-directory
- * gzip.jl, dired-hooks.jl: the functions put in the
- read-file-hook now set the default-directory
-
-1998-10-01 John Harper <john dcs warwick ac uk>
-
- * rcs.jl (rcs-process, rcs-output-buffer): deleted these
- variables, all processes and buffers are created on demand (to
- help garbage collection)
-
-1998-09-30 John Harper <john dcs warwick ac uk>
-
- * html-style.jl: require maildefs (for user-mail-address)
-
- * remote-ftp.jl (remote-ftp-prompt-regexp): new variable
-
- * ispell.jl (ispell-region-1): fix some bugs in how the
- ispell-ignore-word-hook is used
-
- * compiler.jl (comp-fold-constants): does what it says, in a
- simple sort of way
-
-1998-09-29 John Harper <john dcs warwick ac uk>
-
- * windows.jl, minor-major.jl, ispell.jl, diff.jl: use `defface'
- macro to declare/define all faces
-
- * compiler.jl (comp-compile-cond): where a condition is a
- constant, force it to be either t or nil. When dead code is
- detected in conditionals, ignore it correctly
- (comp-trans-defvar): source transformation to make `defvar'
- work at other than the top-level
-
- * lisp.jl (defface): new macro
- * lisp-mode.jl: set indentation property of `defface'
-
-1998-09-22 John Harper <john dcs warwick ac uk>
-
- * sm-mail-dir.jl (expand-mail-aliases): attempts to expand
- local addresses in the address book, e.g. if I put "john" in a
- header, it looks for john MY DOMAIN, and if it exists, expands
- it with the real name
-
- * mail-dir.jl: minor fixes
- * mail-dir-summary.jl: miscellaneous minor fixes
- (mds-edit-field): used to move to or create new fields when
- editing records
-
- * help.jl (describe-function): don't pass the documentation
- through substitute-command-keys anymore
-
- * maildefs.jl (mail-domain-name): new variable
-
-1998-09-21 John Harper <john dcs warwick ac uk>
-
- * mail-dir.jl: aliases are now kept in the mail-address-list
- variable, they're records with :name and :net-alias fields.
- This involved changing a few function names..
-
- * mail-dir-summary.jl: removed the address/alias distinction
- and added an edit command, this dumps you to a buffer
- containing a pretty-printed copy of the record, you edit the
- record (i.e. adding any new fields or whatever) then commit the
- changes with C-c C-c
-
- * compiler.jl, dump.jl: only print the name of the source file
- in the header, not all the useless stuff I used to
-
- * compiler.jl, bytecodes.jl: op-set and op-fset are now more
- regular
-
- * summary.jl (summary-get-index): return nil if the item
- specified isn't actually displayed
- (summary-highlight-index): only delete the extent of the
- highlighted line
- (summary-update): call delete-all-extents
- (summary-update-item, summary-goto-item): only proceed if the
- item is actually displayed
-
- * read-mail.jl (rm-format-alist): moved the documentation of
- the default format conversions here (instead of
- rm-summary-format)
- (rm-saved-flags): list of message properties that should be
- saved with the message (in the x-jade-flags-v1 header) when
- they're non-nil
- (rm-auto-delete-rules): deleted
- (rm-after-import-rules, rm-after-parse-rules): new variables
- (rm-set-flag, rm-clear-flag, rm-test-flag): deleted
- (rm-message-put, rm-message-get): replace the flag functions,
- now a alist of properties for each message
- (rm-status-alist): map non-nil message properties to strings to
- put into the staus line
-
- * rm-restrict.jl: add a load more standard functions as rules,
- basically all conditionals and most arithmetic operators
- (defrule): rule bodies may now have more than a single form
- (put, get): `rules' to access the messsage's plist
- (attribute): now just a synonym for `get'
-
- * rm-thread.jl (rm-sort-predicates): added a predicate `score',
- this sorts by the value of each message's `score' property
-
- * rm-summary.jl (rm-summary-print-item): if the message has a
- `summary-face' property use it as the face of the summary line
-
- * rm-misc.jl, rm-output.jl: use message properties not flags
-
- * mail-dir.jl: minor fixes for last set of changes
-
-1998-09-18 John Harper <john dcs warwick ac uk>
-
- * mail-dir.jl: made the database a lot more general. Each
- record is now a one-to-many mapping from keys to values.
- Currently used keys are :net (email addresses) and :name (real
- names)
- * mail-dir-summary.jl: fixed for the new database. Needs a lot
- of work to allow arbitrary fields to be manipulated
-
- * rm-restrict.jl: fixed a lot of confusion. The
- rm-rule-function property was being called rm-rule-symbol in a
- lot of places
-
-1998-09-17 John Harper <john dcs warwick ac uk>
-
- * read-mail.jl (rm-format-alist): the %D and %M formats don't
- do %02d formatting anymore, just %d
-
-1998-09-13 John Harper <john dcs warwick ac uk>
-
- * ispell.jl (ispell-ignore-word-hook): new hook, called
- immediately prior to spell-checking each word, if the hook
- returns t, don't check the word and assume it's ok
-
- * tex-mode.jl (tex-spell-ignore-word-hook): don't spell-check
- any words preceded by a backslash (i.e. TeX commands)
-
-1998-09-12 John Harper <john dcs warwick ac uk>
-
- * init.jl: load files for the window- and operating-system,
- the relevant name prefixed by "ws-" and "os-" respectively
-
- * ispell.jl (ispell-handle-failure-interactively): highlight
- the misspelt word in the buffer as well as in the list of
- options display
-
- * ws-x11.jl: new file, initialisation for X11, contains
- functions for the block-status, after-kill, and pre-yank-hook's
- * edit.jl: moved all X11 specific code to ws-x11.jl
-
- * edit.jl (mouse-select): only kill the block on a single
- click, if that click is _inside_ the marked region
- (mouse-select-drag): same as above, but only when the current
- mouse position is the same as the position of the first click
-
-1998-09-10 John Harper <john dcs warwick ac uk>
-
- * ispell.jl (ispell-highlight-misspellings): support for
- aborting if input arrives in the middle of spell-checking
-
-1998-09-09 John Harper <john dcs warwick ac uk>
-
- * ispell.jl (ispell-add-word-to-dictionary): new command
- (ispell-cleanup-before-exit): added to the before-exit hook,
- saves the dictionary and kills the process
-
-1998-09-08 John Harper <john dcs warwick ac uk>
-
- * ispell.jl (ispell-minor-mode): spell-checking in idle-time
- (ispell-set-dictionary): new command
-
- * ispell.jl: first attempt at interacting with Ispell,
- currently two commands `ispell-region' and `ispell-buffer'
-
-1998-09-07 John Harper <john dcs warwick ac uk>
-
- * info.jl (info-highlight-buffer): end highlighted menu entries
- only by ":" not by "."
- (info-keymap): bind "b" to start-of-buffer not
- goto-start-of-buffer
-
-1998-09-06 John Harper <john dcs warwick ac uk>
-
- * read-mail.jl (rm-format-alist): add a `%A' format, like `%a'
- but with five characters (all attributes) not three. For the
- `%a' make deleted higher precedence than unread
-
- * buffers.jl (find-file): if the buffer's name would be null,
- look for the name of the parent
-
- * dired.jl (dired-mode): moved the main parts of `dired' to
- this function. Calling `dired-mode' on a buffer whose
- buffer-file-name points to a directory puts it into Dired mode
- * dired-hooks.jl: use the read-, write-, and insert-file hooks
- instead of the find-file-hook. This allows the buffer to be
- reverted correctly. Inserting and writing to directories signal
- errors
-
-1998-09-05 John Harper <john dcs warwick ac uk>
-
- * gzip.jl (gzip-write-file): fix stupid bug
- (auto-compression-alist): add support for bzip2 compression
-
-1998-09-04 John Harper <john dcs warwick ac uk>
-
- * remote-ftp.jl: make "550" a failure, not a recoverable error
-
-1998-09-02 John Harper <john dcs warwick ac uk>
-
- * remote-ftp.jl: fixes to password handling while logging in:
- only caches passwords that are actually valid, has a sane
- method of retrying failed attempts, and allows the retrying
- process to be aborted properly
-
-1998-09-01 John Harper <john dcs warwick ac uk>
-
- * remote-ftp.jl (remote-ftp-command): now transparently
- reconnects when the server times out
-
- * diff.jl (diff-backup, diff-auto-save): when prompting, start
- with the name of the current file
-
-1998-08-31 John Harper <john dcs warwick ac uk>
-
- * diff.jl: new file, visual diff mode. Commands `diff',
- `diff-buffers', `diff-backup' and `diff-auto-save'.
-
- * replace.jl (query-replace, replace-all): put quotes around
- the search string when prompting for its replacement
-
- * help.jl (describe-function): run substitute-command-keys over
- the documentation string
-
-1998-08-30 John Harper <john dcs warwick ac uk>
-
- * info.jl (info-find-node): fix bug with files without indirect
- lists being reloaded all the time
-
- * prompt.jl (prompt): set the glyph-table of the title extent
- to the current glyph table (in case a different table is used
- for the prompt)
-
-1998-08-29 John Harper <john dcs warwick ac uk>
-
- * prompt.jl (prompt-start-of-line): new command, bound to `C-a'
- in prompts
-
- * windows.jl (enlarge-view): fix bug of not being able to
- enlarge minibuffer (unless more than two views are present)
-
- * prompt.jl: don't use set-status-message to display title.
- Instead insert the title at the beginning of the prompt,
- covered by a read-only extent (with prompt-title-face).
- Also enlarge the minibuffer to two lines temporarily if it's a
- single line (to avoid being clobbered by messages)
-
-1998-08-28 John Harper <john dcs warwick ac uk>
-
- * yacc-mode.jl: new major mode, uses indented-text for yacc
- grammar, and embeds minor-major c-modes for all C regions
- * modes.jl (auto-mode-alist): added yacc-mode
-
- * send-mail.jl (send-mail-find-header): avoid the read-only
- header-separator
-
- * minor-major.jl (minor-major-mode, delete-minor-major-mode):
- new file, allows major-modes to be set for _regions_ of the
- current buffer (uses extents and the `catch-variables'
- property)
-
-1998-08-27 John Harper <john dcs warwick ac uk>
-
- * buffer-summary.jl: don't print the minor-modes
-
- * modes.jl (mode-name, minor-mode-alist, mode-line-format): new
- variables
- (minor-mode-list, add-minor-mode, remove-minor-mode,
- minor-mode-installed-p): deleted
-
- * cvs.jl, edit.jl, fill.jl, rcs.jl: new method of putting minor
- mode names in mode-line
-
- * read-mail.jl: put message flags in mode-name, needs more work
- * rm-summary.jl: change mode-line message
-
- * rm-summary.jl (rm-summarize): set y-scroll-step-ratio to two
- in each summary buffer (scroll by half the window)
-
- * read-mail.jl (rm-auto-sort-key-alist): new variable
-
- * info.jl (info-locate-file): don't search the current directory
- (info-find-node): a couple of fixes in file selection
-
- * gzip.jl (auto-compression-mode): only display message when
- FORCE-ACTIVE isn't t
-
-1998-08-26 John Harper <john dcs warwick ac uk>
-
- * info.jl (info-menu-face, info-xref-face): new variables
-
- * maildefs.jl (mail-highlight-face): new variable
-
- * buffers.jl (buffer-read-only-p, set-buffer-read-only):
- implemented in lisp now
-
- * info.jl: highlights menus and links in underline-face
-
- * isearch.jl: highlights the selection in highlight-face
-
- * maildefs.jl (mail-highlighted-headers): changed
- documentation, made more general
-
- * print.jl (print-mode-alist): added more entries
-
- * prompt.jl (prompt): setq the glyph-table, don't use
- set-buffer-glyph-table
-
- * read-mail.jl: add extents for all mail-highlighted-headers
-
- * send-mail.jl: add a read-only extent covering the
- mail-header-separator string
-
- * summary.jl (summary-highlight-index): use an extent
-
- * windows.jl (underline-face, bold-face, italic-face): more
- default faces, bold and italic aren't supported yet
-
-1998-08-19 John Harper <john dcs warwick ac uk>
-
- * rm-mail-dir.jl (rm-mail-dir-scanner): rewritten. added
- parameters FOLDER (unused) and ALL-ADDRESSES. Only scan
- recipients when ALL-ADDRESSES is non-nil
- (rm-mail-dir-scan-current): prefix arg means scan all addresses
-
- * read-mail.jl (rm-format): new function, format a string using
- a message and the mail-local format specifiers
-
- * rm-misc.jl (rm-citation-format): format string for citation
- line in quoted messages
-
- * send-mail.jl (send-mail-mode): set paragraph-separate and
- paragraph-start to understand the yank-prefix and
- header-separator
-
-1998-08-18 John Harper <john dcs warwick ac uk>
-
- * pwd-prompt.jl (pwd-prompt): no need for dubious hacks
- anymore, use the prompt-glyph-table variable instead
-
- * prompt.jl (prompt-complete-function, prompt-list-completions-
- function): new variables. When non-nil these completely
- override the prompt-complete and prompt-list-completions
- functions
- (prompt-word-regexps): deleted this variable, a waste of space
- (prompt-glyph-table): new variable, the glyph table to use in
- prompt buffers
- (get-prompt-buffer, return-prompt-buffer): deleted
-
- * lisp-mode.jl (lisp-complete-sexp): new optional parameter
- ONLY-DISPLAY
- (lisp-show-sexp-completions): new function, bound to M-?
-
-1998-08-17 John Harper <john dcs warwick ac uk>
-
- * read-mail.jl (rm-open-mailbox): bind enable-local-variables
- to nil while calling find-file. Otherwise a mail message
- containing a trailing local variables section could cause
- problems..
-
-1998-08-14 John Harper <john dcs warwick ac uk>
-
- * completion.jl (completion-setup-view): if reusing an existing
- view, make sure that one directly above the minibuffer is used
-
-1998-08-12 John Harper <john dcs warwick ac uk>
-
- * dired.jl (dired-find-file, dired-find-file-other-view,
- dired-display-file): these now find all _selected_ files
-
-1998-08-11 John Harper <john dcs warwick ac uk>
-
- * miranda.jl (miranda): ensure that a local-file-name is passed
- to the subprocess
-
- * find-autoloads.jl (autoload-do-magic): allow macros to have
- autoload tags
- * rm-restrict.jl (defrule): added autoload tag
-
- * buffers.jl (kill-buffer): fix bug (taking the new current
- buffer from the buffer-list of the current view, not the view
- being altered)
-
- * rm-restrict.jl (sender-alias): new rule, tests if a message
- was sent by an address in a named alias
-
- * completion.jl (completion-column-extra): new variable,
- controls the column width in completion listings
-
-1998-08-10 John Harper <john dcs warwick ac uk>
-
- * completion.jl: new file, generalises the old code in
- prompt.jl for displaying completions
- * prompt.jl: use the new completion functions
- * lisp-mode.jl (lisp-complete-sexp): new command bound to M-TAB
-
- * read-mail.jl (rm-auto-delete-rules): new variable, a list of
- rules that are applied to newly-received messages. If any
- match, the message is marked as deleted
-
- * rm-restrict.jl (rm-apply-rules): new function, similar to
- rm-apply-rule but takes a list of rules to test
-
- * remote-ftp.jl (remote-ftp-handler): support for opening
- remote files with open-file. All access types are supported
- (read, write, append), a local copy is used so all operations
- on this copy should work
-
- * remote.jl (remote-file-handler): slight change to the
- conventions for working with remote file handles
-
-1998-08-09 John Harper <john dcs warwick ac uk>
-
- * help.jl (apropos-variable): quote the query string when
- displaying results
-
- * windows.jl (scroll-next-view): pass the other-view an
- argument `t' to stop it altering the size of any views
-
- * cvs.jl (cvs-add-change-log-entries): now prompt for the name
- of the ChangeLog file associated with each directory
-
-1998-08-06 John Harper <john dcs warwick ac uk>
-
- * dict.jl (dict-lookup): quote the word being queried
-
-1998-08-02 John Harper <john dcs warwick ac uk>
-
- * add-log.jl, buffer-summary.jl, buffers.jl, compile.jl,
- info.jl: miscellaneous changes for buffer-file-name returning
- nil if the buffer has no file, not the null string as before
-
-1998-08-01 John Harper <john dcs warwick ac uk>
-
- * buffers.jl (find-file): check that the file exists before
- testing it's timestamp
- (save-file): signal an error if the buffer has no file-name
-
-1998-07-31 John Harper <john dcs warwick ac uk>
-
- * shell.jl (shell-output-filter, shell-output-limit,
- shell-echos, shell-last-output): new variables
- (shell-filter): new function, the default output stream
- (shell-enter-line): uses telnet.jl's method: if at the end of
- the buffer, send everything after the position of the last
- output, otherwise resort to prompt-matching
-
- * telnet.jl: moved most of the funky output-filtering to
- shell.jl, password prompt grabbing is now done via the
- shell-output-filter variable. Also use the shell's send-line
- function exclusively
-
-1998-07-17 John Harper <john dcs warwick ac uk>
-
- * compiler.jl (comp-compile-lambda): if a list-style
- interactive decl. is found, see if it might be worth compiling
- it (if the function is in the `comp-top-level-compiled' list)
-
-1998-07-10 John Harper <john dcs warwick ac uk>
-
- * read-mail.jl (read-mail-folder): before adding the new folder
- to the rm-open-folders list, remove any folders that are no
- longer pertinent
- * rm-summary.jl (rm-configure-views): fix the code to ensure
- that the rm-open-folders list has the correct view for the
- folder being configured
-
- * dict.jl (dict-lookup): new file, a simple interface to the
- dict(1) client (that speaks the Dictionary Server Protocol)
-
-1998-07-09 John Harper <john dcs warwick ac uk>
-
- * thesaurus.jl (thesaurus-lookup-word, thesaurus-show-words):
- new file, two commands for accessing the "th" thesaurus front
- end
-
- * edit.jl (mouse-yank-at-point): new variable, when t (the
- default), yank-to-mouse doesn't move to the mouse position
- before yanking
-
-1998-07-08 John Harper <john dcs warwick ac uk>
-
- * sh-mode.jl (sh-get-basic-indent): skip blank lines
-
- * read-mail.jl (rm-append-inbox): be sure to return zero if no
- new messages exist, but no errors occurred (not nil as before)
- (rm-get-mail-for-box): be sure to return the number of
- messages, also make sure that all inboxes are used
-
- * maildefs.jl (mail-find-inboxes): expand inbox names relative
- to mail-folder-dir if they're not absolute
-
-1998-07-07 John Harper <john dcs warwick ac uk>
-
- * edit.jl (insert-block): renamed as yank-block; now sets
- yank-last-item so that yank-next works as would be expected
- (yank-get-string): removed NOT-BLOCK parameter; under X11 only
- returns the selection if it's not owned by us (so no yanking
- unkilled blocks anymore)
- (yank, yank-rectangle): removed DONT-YANK-BLOCK arg
- (yank-next): should work correctly when yank-last-item is nil
- * loadkeys.jl: bound RMB-Click1 to copy-block-as-kill
-
- * edit.jl (paragraph-start): new variable, finer control over
- paragraph definition
- (forward-paragraph): use paragraph start
- * c-mode.jl, lisp-mode.jl, perl-mode.jl, sh-mode.jl,
- tex-mode.jl, texinfo-mode.jl: set paragraph-start and
- paragraph-separate to sensible values
-
- * dired.jl (dired-directory-files): new variable, defines how
- the list of files is created
- (dired): new optional arg, the value of the above variable
-
-1998-07-06 John Harper <john dcs warwick ac uk>
-
- * modes.jl (auto-mode-alist): added sh-mode entries
-
-1998-07-04 John Harper <john dcs warwick ac uk>
-
- * disassembler.jl (disassemble): fixed for bytecode objects
- that have less than six elements
-
- * modes.jl (mode-comment-header): new variable. Provides a
- simple method of defining how one-line comments are introduced
- in a file
- * asm-mode.jl, lisp-mode.jl, texinfo-mode.jl, tex-mode.jl: use
- mode-comment-header
-
- * cvs.jl: add autoload tags for most commands
-
- * rcs.jl (rcs-mode): replaces both the rcs-controlled-buffer
- and rcs-current-info variables in one fell swoop
-
- * perl-mode.jl: new file. Inherits a lot of code (and the
- related problems?) from c-mode
- * c-mode.jl: recognize $ and @ characters in symbols to help
- perl-mode, improve comment handling
- * modes.jl (auto-mode-alist, interpreter-mode-alist): added
- regexps for perl-mode
-
- * compile.jl (compile-push-directory-regexp,
- compile-push-directory-expand): make this work properly (match
- the `make[X]:' at the start of the line, not just `make:')
-
- * help.jl, find-autoloads.jl, dump.jl, compiler.jl: change
- miscellaneous `X-dir' variables to `X-directory' (jade-dir,
- lisp-lib-dir, ..)
-
-1998-07-01 John Harper <john dcs warwick ac uk>
-
- * modes.jl (defun-at-point): check for null mode-defun-header
-
- * add-log.jl (change-log-date-format,
- change-log-date-match-format): new variables, controls how the
- dates in ChangeLog separators are constructed and compared
-
-Mon Jun 29 09:55:55 1998 John Harper <john dcs warwick ac uk>
-
- * cvs.jl (cvs-add-change-log-entries): new function, adds
- empty change log entries for all selected files
-
- * add-log.jl (add-change-log-entry): added two optional args
- FILE-LIST and FUNCTION-LIST. These define the header of the
- inserted entry. When called interactively they default to the
- basename of the current file, and the name of the current
- function definition
-
-Thu Jun 25 00:50:35 1998 John Harper <john dcs warwick ac uk>
-
- * loadkeys.jl: use find-matching-bracket as a command, not
- called as a function
-
- * help.jl (apropos-output): new function, used by
- apropos-function and apropos-variable to format the list of
- symbols and their documentation
-
-Mon Jun 22 09:22:53 1998 John Harper <john dcs warwick ac uk>
-
- * read-mail.jl (rm-add-mailbox, rm-subtract-mailbox,
- rm-replace-all-mailboxes): check for null mailbox argument
- (rm-append-save-and-delete-file): new function
- (rm-append-inbox): cleaned up. Also will append .newmail-FOO
- files that it finds lying around from previous attempts
-
- * rm-thread.jl (rm-thread-folder, rm-sort-folder): handle case
- of an empty folder without signalling an error, just do very
- little
-
- * mail-headers.jl (mail-parse-date): correctly handle two-digit
- years again
-
-Sun Jun 21 01:17:47 1998 John Harper <john dcs warwick ac uk>
-
- * find-url.jl (find-url-ftp): implemented by rewriting the url
- as a remote filename, then calling find-file
- (find-mailto-url): renamed as find-url-mailto for consistency
- (find-url-external-command): redirect all standard streams to
- /dev/null to allow the shell process to exit cleanly
-
- * sh-mode.jl (sh-indent-line): act on "else" and "elif" tokens
-
- * gzip.jl (auto-compression-alist, auto-compression-mode):
- generalised this code, also allow it to be explicitly enabled
- and disabled
-
- * info.jl: minor changes for modified gzip.jl
-
-Sat Jun 20 16:15:41 1998 John Harper <john dcs warwick ac uk>
-
- * rm-restrict.jl (rm-apply-rule): new function, allows a rule
- to be applied to a single specified message
-
- * rm-thread.jl (rm-sort-folder): allow sort keys to specify
- order of sorting. Misc. other fixes
- * read-mail.jl (rm-install-messages): if a sort key is defined
- for the folder, use it
-
- * rm-output.jl (rm-auto-archive-alist, rm-auto-archive-folder,
- rm-archive-folder): support for saving messages by matching
- rules, both interactively, and pre-defined
- * read-mail.jl, rm-summary.jl: bind "a" to rm-archive-folder
- and "A" to rm-auto-archive-folder. Change binding of
- rm-sort-folder to "G"
-
-Fri Jun 19 16:51:54 1998 John Harper <john dcs warwick ac uk>
-
- * remote-ftp.jl (remote-ftp-output-filter): only display hash
- characters when remote-ftp-display-progress is t
-
-Wed Jun 17 17:11:10 1998 John Harper <john dcs warwick ac uk>
-
- * isearch.jl (isearch-push-match): small fix
-
-Tue Jun 16 12:02:50 1998 John Harper <john dcs warwick ac uk>
-
- * buffers.jl (save-file-as, insert-file): change messages
- slightly
-
-Sun Jun 14 11:58:46 1998 John Harper <john dcs warwick ac uk>
-
- * remote-ftp.jl (remote-ftp-bad-msgs): added invalid command
- message
- (remote-ftp-invalidate-directory): wholesale invalidation of
- the directory cache. Called by most commands
-
- * remote-ftp.jl (remote-ftp-ls-format): new variable
-
- * remote.jl (remote-file-regexp): only allow sensible
- characters in user and host names
-
- * remote-ftp.jl (remote-ftp-host-user-alist): map host names to
- default users
- (remote-ftp-default-user): username to use when unspecified
- (remote-ftp-get-user): new function
- (remote-ftp-output-filter): display raw hash marks
- (remote-ftp-get-file-details): use `ls -la' not `dir'
-
- * remote-ftp.jl: fix remote file copying
-
-Sat Jun 13 11:10:50 1998 John Harper <john dcs warwick ac uk>
-
- * remote-ftp.jl (remote-ftp-passwd-alist,
- remote-ftp-get-passwd, remote-ftp-add-passwd): password caching
- (remote-ftp-bad-msgs): attempt to differentiate between success
- and soft-failures
- (remote-ftp-chmod): attempts to use the `chmod' command
- (remote-ftp-file-modes): parse mode string to permission bits
- (remote-ftp-display-progress): when t, use hash marks
- (remote-ftp-transfer-type): allow binary or ascii transfers;
- should allow this to be set by file extension
-
-Fri Jun 12 17:34:16 1998 John Harper <john dcs warwick ac uk>
-
- * prompt.jl (prompt-next-history, prompt-previous-history):
- check for (null prompt-history)
-
- * pwd-prompt.jl (pwd-prompt): bind prompt-history to nil to
- prevent passwords being stored
-
- * remote-ftp.jl (remote-ftp-max-sessions,
- remote-ftp-anon-users, remote-ftp-anon-passwd): new variables
-
- * remote-ftp.jl: new file, an FTP backend for accessing remote
- files; seems to work quite well
-
- * remote-rcp.jl: new file, split from remote.jl. Doesn't work
- very well
-
- * mail-headers.jl (mail-parse-date): made a lot more agreeable
- in what it will parse
-
- * debug.jl (debug-error-entry): always print backtrace
-
-Wed Jun 10 08:49:52 1998 John Harper <john dcs warwick ac uk>
-
- * isearch.jl: many changes. Now uses the minibuffer, highlights
- the current match, and doesn't use a recursive edit
-
- * remote.jl: initial attempt at providing remote file access.
- Currently just a framework and a pathetic example of using rcp
- to implement a backend
-
- * cvs.jl (cvs-buffer, cvs-output-buffer): deleted, now we
- create buffers as required
- (cvs-buffer, cvs-output-buffer): new functions, find or create
- the two buffers used by cvs-mode
- (cvs-default-directory): working directory, needed since there
- may or may not be a *cvs* buffer
-
- * shell.jl (shell-mode-kill): uses kill-all-local-variables to
- clean up after itself
-
- * gdb.jl: install our own callback function that does some
- cleanup at process exit. Allows *gdb* to be reclaimed. Also set
- buffer-status-id to a meaningful string
-
- * buffers.jl (default-directory): set its permanent-local
- property
-
- * rm-misc.jl (rm-forward): fix post-send actions
-
-Mon Jun 8 09:50:29 1998 John Harper <john dcs warwick ac uk>
-
- * fill.jl (fill-area): another attempt at fixing this function,
- I think I may have it now
-
- * print.jl (print-build-shell-command): ensure that a local
- file name is used when printing to a file
-
- * edit.jl (yank-next): initially insert the second most
- recently yanked item, not the first
-
- * loadkeys.jl (numeric-arg, negative-arg, universal-arg):
- progagate the last-command variable
-
- * c-mode.jl (c-mode): adjust mode-defun-header slightly
-
- * help.jl: deleted the help-buffer variable, find and
- initialise the buffer dynamically to help gc
-
- * buffers.jl (kill-current-buffer): new function
-
- * mail-dir-summary.jl (mds-alias-buffer, mds-address-buffer):
- deleted these variables; allow the buffers to be gc'd
-
- * prompt.jl (y-or-n-p): use the original value of keymap-path
- plus the special bindings
-
- * buffers.jl (rename-buffer): new command
-
-Sun Jun 7 14:57:12 1998 John Harper <john dcs warwick ac uk>
-
- * edit.jl (mouse-select-drag): preserve type of block when
- dragging status lines
-
- * compiler.jl: added source transform to handle setq-default
- special form
-
- * modes.jl (mode-symbol-regexp, mode-defun-header,
- mode-defun-footer): new buffer-local variables
- (forward-exp, backward-exp): don't call goto explicitly, use
- the `@' interactive flag
- (symbol-at-point, defun-at-point): new functions, give the
- current symbol or function-name respectively
- (start-of-defun, end-of-defun, mark-defun): new functions
- * loadkeys.jl: C-M-a to start-of-defun, C-M-e to end-of-defun,
- C-M-h to mark-defun
- * c-mode.jl, lisp-mode.jl: define the new variables
-
- * windows.jl (expand-view): fixed
-
- * help.jl (describe-function, describe-variable): use the value
- from symbol-at-point as the starting value of the prompt
-
- * prompt.jl (prompt-for-symbol, prompt-for-lisp,
- prompt-for-function, prompt-for-variable, prompt-for-command):
- all now take an extra optional argument, the initial contents
- of the prompt
-
- * tilde.jl: use setq-default when fixing default-directory
-
-Sat Jun 6 16:11:57 1998 John Harper <john dcs warwick ac uk>
-
- * windows.jl (goto-next-view): next-view now returns inactive
- minibuffer views, so check for this
- (scroll-next-view): use other-view instead of next-view, should
- really be called scroll-other-view
- (enlarge-view): allow minibuffer views to be sized, now the
- bottom _two_ views resize into the view above them
-
- * edit.jl (mouse-pos): add a check with posp
- (goto-mouse): return nil or t a la translate-pos-to-view
- (mouse-select): handle selecting a status line
- (mouse-select-drag): allow dragging status line to resize views
-
-Fri Jun 5 10:21:32 1998 John Harper <john dcs warwick ac uk>
-
- * rm-restrict.jl (rm-rule-symbol): made into a macro
-
- * compiler.jl (compile-file): ensure that the output file ends
- in .jlc; expand all top level uses of macros. Also change how
- eval-when-compile works (a default macro definition for it)
-
- * rm-restrict.jl (defrule): now fully expands the rule. This
- allows files of defrule forms to be compiled down to bytecode
- (rm-defrule): renamed as define-rule
-
- * disassembler.jl (disassemble): fix disassembly of nested
- bytecode objects
-
- * info.jl: deleted the info-buffer variable, all state is now
- local to the *Info* buffer. This allows multiple info sessions
- to run concurrently, and for all buffers to be gc'd (the info
- function with a prefix arg creates a new info buffer)
-
- * compile.jl (compile-buffer): deleted this global variable,
- allows *compilation* buffers to be garbage collected
-
-Thu Jun 4 14:53:30 1998 John Harper <john dcs warwick ac uk>
-
- * prompt.jl (prompt-complete): pass prompt-list-fold-case along
- to complete-string
-
- * buffers.jl, bytecodes.jl, compiler.jl, disassembler.jl,
- environ.jl, keymap.jl, lisp-mode.jl, lisp.jl, prompt.jl,
- server.jl, tags.jl: excise all traces of the return function
- and the OP_RETURN instruction
-
- * sh-mode.jl: new major mode, for bourne shell files
-
- * modes.jl (interpreter-mode-regexp, interpreter-mode-alist,
- normal-mode): choose modes by #! string
-
- * cvs.jl (cvs-find-file, cvs-find-file-other-view): now handle
- more than one selected file
-
-Wed Jun 3 09:19:34 1998 John Harper <john dcs warwick ac uk>
-
- * modes.jl (normal-mode): given an interactive decl
-
- * rm-summary.jl (rm-summary-print-item): reference
- rm-summary-format in the message's buffer
-
- * read-mail.jl: more minor fixes
-
-Tue Jun 2 09:06:16 1998 John Harper <john dcs warwick ac uk>
-
- * read-mail.jl, rm-misc.jl, rm-output.jl, rm-summary.jl,
- rm-thread.jl: more assorted fixes and enhancements
-
- * lisp.jl (assoc-regexp): abstracted from get-auto-mode, a
- function to associate with regexps
-
- * init.jl: -no-rc option to prevent loading of .jaderc and
- site-init files
- * Makefile.in: use -no-rc option
-
- * rm-mail-dir.jl: use new hook name
-
-Mon Jun 1 11:26:39 1998 John Harper <john dcs warwick ac uk>
-
- * mail-headers.jl (mail-parse-address): some reorganisation to
- allow parsing of address without domains
- (mail-format-address): allow nil NAME
- (mail-insert-address-list): new function
-
- * rm-misc.jl (rm-reply): use message's header cache where
- possible
-
- * rm-restrict.jl (rm-rule:attribute): quote the symbol argument
-
- * read-mail.jl (rm-append-inbox, rm-rebuild-folder): fixed
-
- * read-mail.jl (rm-open-mailbox, rm-close-mailbox,
- rm-subtract-mailbox, rm-subtract-all-mailboxes): new functions.
- Also lots of other fixes, it seems to work quite well now
-
- * rm-mail-dir.jl: don't bind to `+' anymore (used to add a
- mailbox), instead use `Ctrl-k'
-
- * rm-restrict.jl (subject): new rule. Also some fixes
-
- * rm-summary.jl (rm-summary-view): fixed to _always_ return a
- view or a buffer
-
- * rm-thread.jl: fix the `date' sort key
-
- * read-mail.jl (rm-open-mailboxes): list of buffers, this stops
- buffers being gc'd while they're still in use (references to
- buffers are by marks, which are `weak' references)
-
- * rm-restrict.jl: minor changes, renamed rule functions from
- `rm-rule-X' to `rm-rule:X', added a `(body REGEXP)' rule to
- search the body of the message
-
-Sun May 31 12:06:02 1998 John Harper <john dcs warwick ac uk>
-
- * read-mail.jl: more work. pretty much works. getting new mail
- doesn't though..
- * rm-misc.jl, rm-output.jl, rm-summary.jl, rm-thread.jl:
- updated for new read-mail. Mostly untested
-
- * rm-restrict.jl: allow rules to be defined interactively
-
- * prompt.jl (prompt-validate-symbol): fixed
-
- * lisp.jl (identity): new function
-
- * read-mail.jl: massive changes, there is now a layer between
- mailbox files and messages: folders. Each folder can contain
- multiple mailboxes and be restricted to only contain messages
- meeting a specified restriction rule
-
- * rm-summary.jl (rm-with-folder, rm-in-folder): moved here from
- read-mail.jl. All rm-X.jl files need updating for the new
- read-mail
-
-Sat May 30 12:28:09 1998 John Harper <john dcs warwick ac uk>
-
- * buffers.jl (find-file-read-only): added DONT-ACTIVATE option,
- like find-file has
-
- * rm-restrict.jl (rm-filter-by-rule): function to apply a rule
-
-Fri May 29 15:17:38 1998 John Harper <john dcs warwick ac uk>
-
- * html-style.jl (html-style-default, html-style-current,
- html-style-alist, html-style-set-style, html-style-add-style):
- support for multiple styles
-
-Thu May 28 18:02:48 1998 John Harper <john dcs warwick ac uk>
-
- * mail-headers.jl (mail-timezone-alist): moved to maildefs.jl
- * maildefs.jl (mail-month-alist): added full names, as well as
- abbreviations
-
- * rm-restrict.jl (rm-parse-date, rm-rule-sent-date): support
- for relative dates (i.e. "2 days ago" and so on)
-
-Tue May 26 13:15:11 1998 John Harper <john dcs warwick ac uk>
-
- * rm-restrict.jl: new file, rule-based message selection
-
- * mail-headers.jl (mail-parse-date): initialise values to
- sensible defaults
-
- * mail-headers.jl (mail-parse-date): fix epoch-time calculation
-
-Mon May 25 17:12:39 1998 John Harper <john dcs warwick ac uk>
-
- * rm-output.jl (rm-output-message): call 'rm-after-import-hook
-
- * rm-thread.jl (rm-auto-thread-new-messages): new variable
-
- * lisp.jl (if, and, or): deleted, they're now special forms
- * compiler.jl (if, and, or): source code transformations to
- compile these special forms
-
- * compiler.jl, lisp.jl: support for eval-when-compile
- construct, though I'm not sure if it has the correct semantics
- at anything but the top-level?
-
- * read-mail.jl, rm-summary.jl: removed all of the mail summary
- code to rm-summary.jl. read-mail.jl still has a few calls to it
- though (but only if a summary exists). Deletion marks are now
- stored along with all the other message attributes
- * rm-misc.jl, rm-output.jl, rm-mail-dir.jl: minor updates to
- work with separate summary
-
- * rm-thread.jl (rm-inter-thread-sort-key,
- rm-intra-thread-sort-key): control over how threads are sorted
-
- * compiler.jl (comp-compile-top-form): when compiling defvars,
- if the value is a list but not a constant, compile it to
- bytecode
-
- * mail-headers.jl (mail-parse-date): resolve timezone
- specifications to the difference in minutes they specify
- (currently I've ignored the single letter `military' zones).
- Also calculate the time since the epoch (actually create
- (DAYS . SECONDS) to avoid overflow)
- (mail-get-actual-subject); function to strip re: prefixes from
- a subject string
-
- * maildefs.jl (mail-re-regexp): regexp defining how we strip
- re: prefixes, moved from rm-misc.jl
-
- * read-mail.jl (rm-keymap, rm-summary-keymap): bind Ctrl-s to
- sort the folder, and Ctrl-t to toggle threading
- (rm-get-actual-subject): new function
- (rm-invalidate-summary-cache): new function
-
- * rm-misc.jl (rm-Re-regexp): moved to maildefs.jl
- (rm-reply): use mail-get-actual-subject
-
- * rm-thread.jl (rm-thread-using-subject): new variable, when t
- use subjects to group messages as well as id's
- (rm-sort-predicates): alist of (KEY . PREDICATE) for sorting
- folder order
- (rm-threaded-folder): new variable, t when folder is threaded
- (rm-thread-folder): misc. fixes, use subjects, sort thread
- lists, use rm-fix-msg-lists
- (rm-fix-msg-lists): function to install a list of messages
- preserving the current message
- (rm-toggle-threading): new command, toggles between threaded
- and sorted by location display
- (rm-sort-folder): new command, sorts display order by key
-
-Sun May 24 13:18:54 1998 John Harper <john dcs warwick ac uk>
-
- * read-mail.jl (rm-move-forwards, rm-move-backwards): changed
- from macros to functions; also they reuse all cons cells
-
- * rm-thread.jl: initial attempt at message threading, needs a
- lot of work
-
- * read-mail.jl (rm-get-message-id, rm-get-in-reply-to,
- rm-get-references): new functions to use the header cache
-
- * help.jl (substitute-command-keys): new function, replace
- strings in mode documentation with keymap descriptions. Mostly
- compatible with Emacs method of doing this
- (describe-mode): pass the doc string through the
- substitute-command-keys function
-
- * modes.jl (mode-alist): renamed as auto-mode-alist
- (default-major-mode): new variable, defines the major mode of
- buffers that otherwise wouldn't have one
- (get-mode): renamed get-auto-mode
- (init-mode): renamed normal-mode, simplified the semantics
-
- * asm-mode.jl, buffer-menu.jl, buffer-summary.jl, c-mode.jl,
- cvs.jl, debug.jl, dired.jl, gdb.jl, info.jl, lisp-mode.jl,
- read-mail.jl, send-mail.jl, shell.jl, tex-mode.jl,
- texinfo-mode.jl, text-mode.jl: rewrote major mode documentation
- to include keymap formatting directives
-
- * keymap.jl (map-keymap-recursively): variable controlling
- whether map-keymap notices sub-keymaps (t by default)
- (substitute-key-definition): new command, change key bindings
- to a particular command so that they invoke a different command
-
-Sat May 23 11:30:19 1998 John Harper <john dcs warwick ac uk>
-
- * asm-mode.jl, buffer-menu.jl, buffer-summary.jl, c-mode.jl,
- compile.jl, cvs.jl, debug.jl, dired.jl, fill.jl, gdb.jl,
- help.jl, info.jl, isearch.jl, keymap.jl, lisp-mode.jl,
- loadkeys.jl, mail-dir-summary.jl, prompt.jl, rcs.jl,
- read-mail.jl, replace.jl, send-mail.jl, shell.jl, summary.jl,
- telnet.jl, tex-mode.jl, texinfo-mode.jl, text-mode.jl: use new
- names of make-keytab and make-keylist (make-keymap and
- make-sparse-keymap). Also use new method for inheriting
- bindings
-
- * keymap.jl: updated for new key binding structure (uses cons
- cells instead of a vector)
-
-Fri May 22 10:15:28 1998 John Harper <john dcs warwick ac uk>
-
- * cvs.jl, dired.jl, gdb.jl, help.jl, isearch.jl, keymap.jl,
- loadkeys.jl, rcs.jl, send-mail.jl, tex-mode.jl,
- texinfo-mode.jl: altered uses of next-keymap-path to take
- account that it's now a function not a variable
-
- * keymap.jl (map-keymap): new function, allows a function to be
- mapped (recursively) over all existing key bindings
- (print-keymap): defined in terms of map-keymap
- (where-is): new command, searches the key binding hierarchy for
- a specified command (using map-keymap)
- * help.jl: bind where-is to `Ctrl-h w'
-
- * c-mode.jl: lots of minor fixes, hopefully correcting a lot of
- mis-indentation; some problems still exist
-
-Wed May 20 17:34:48 1998 John Harper <john dcs warwick ac uk>
-
- * buffer-summary.jl: removed bs-buffer variable, now find or
- create *buffers* buffer dynamically. This helps garbage
- collection
-
-Sun May 17 19:51:41 1998 John Harper <john dcs warwick ac uk>
-
- * rm-misc.jl (rm-forward): new method of deleting trailing
- blank lines, this one seems to work
-
- * send-mail.jl (send-mail-show-output): new variable, when t
- output from sendmail is always displayed. Replaces
- sendmail-debug
-
-Sat May 16 23:39:14 1998 John Harper <john dcs warwick ac uk>
-
- * mail-dir.jl (mail-dir-auto-expand-aliases): deleted; the user
- has to put the function in the mail-send-hook manually now
- (add-mail-alias, add-mail-address): protect against adding null
- addresses
-
- * mail-headers.jl (mail-insert-list): be more intelligent when
- finding the depth to indent continuation lines to--either the
- column following the name of the header, or the current
- indentation if inserting in a continuation line
-
- * sm-mail-dir.jl: bind `Ctrl-c Ctrl-x' to expand any mail
- aliases in the message's headers (in send-mail mode)
- (sm-mail-dir-expand-aliases): this now seems to work, and is
- called expand-mail-aliases. It's not added to mail-send-hook,
- but is suitable for use in this hook. Given an interactive
- decl. so can now be called as a command
-
- * edit.jl (save-restriction): when restoring the original
- restriction, unrestrict the buffer if there was no original
- restriction or it's now invalid
-
-Fri May 8 13:03:43 1998 John Harper <john dcs warwick ac uk>
-
- * windows.jl (other-view): only enlarge an existing view when
- the desired size is less than its current size
-
- * cvs.jl (cvs-show-output-buffer): only call shrink-view-if-..
- when the real current buffer isn't the *cvs* buffer to avoid an
- annoying effect
-
-Wed May 6 16:23:46 1998 John Harper <john dcs warwick ac uk>
-
- * rcs.jl, rcs-hooks.jl, dired.jl, dired-hooks.jl: use autoload
- mechanism to load -hooks files, rcs-mode also autoloads its
- main keymap
-
- * cvs.jl (cvs-keymap): now autoloaded
-
- * lisp.jl (autoload-variable): new function
- * find-autoloads.jl: ignores defmacro, but understands defvar
-
-Tue May 5 10:28:10 1998 John Harper <john dcs warwick ac uk>
-
- * html-style.jl (html-style-header): optional NO-HEADING arg
- suppresses the initial heading
-
- * cvs.jl (cvs-option-alist): remove default options, should be
- up to the user
-
- * cvs.jl (cvs-update-file-list): split the completion function
- out into cvs-update-finished, this function takes a single
- argument, the _value_ of the hook to call. This is required
- due to the asynchronicity in relation to the caller of
- cvs-update..
-
-Mon May 4 12:12:22 1998 John Harper <john dcs warwick ac uk>
-
- * cvs.jl (cvs-update-file-list): call cvs-after-update-hook on
- completion
- (cvs-undo-modification): ensure that buffers aren't reloaded
- until _after_ the update has completed
-
- * info.jl: use the buffer-status-id to display the current node
- name, not the mode-name
-
-Sun May 3 12:22:27 1998 John Harper <john dcs warwick ac uk>
-
- * read-mail.jl (rm-next-page, rm-previous-page): detect top and
- bottom of buffer properly, not just when the cursor is at the
- top or the bottom
-
- * buffer-summary.jl: use the standard read-only/modified
- symbols (as in the status line). Removed the `-' synonym for
- the `%' command
-
- * init.jl, compiler.jl: don't use version-and-build-string
- anymore, but use build-id-string instead
-
-Thu Apr 30 10:43:36 1998 John Harper <john dcs warwick ac uk>
-
- * buffer-summary.jl (bs-print-item): substitute `Fundamental'
- for `Generic'
-
- * help.jl (lisp-documentation-file): name of the file
- containing the Lisp library's documentation strings
- (add-documentation, get-documentation): use the
- lisp-documentation-file for Lisp documentation
-
- * dired.jl (dired-do-copy, dired-do-rename): new commands
-
- * summary.jl (summary-update, summary-update-item): mark the
- buffer as unmodified before calling the after-update vector
- (summary-command-items): new function, copied from part of
- cvs-command-get-files. This returns a list of items for a
- command to manipulate in some way
- * cvs.jl (cvs-command-get-files): call summary-command-items
-
- * cvs.jl (cvs-option-alist): added -v option to status
- (cvs-keymap): bindings of `t' and `T'
- (cvs-tag, cvs-tag-directory): new commands
-
-Wed Apr 29 09:39:40 1998 John Harper <john dcs warwick ac uk>
-
- * maildefs.jl (mail-summary-lines): renamed as
- mail-summary-percent, now defines the percentage of the window,
- not the number of lines
- * read-mail.jl (rm-configure-views): changed for above switch
-
- * read-mail.jl (rm-summary-format-alist): new conversions `b',
- `n' and `N'.
- (rm-status-format): format string for part of status line
- (read-mail-folder): don't expand folder name so much
- (rm-fix-status-info): cache status line formatted text
- (rm-invalidate-status-cache): for above
-
- * info.jl (info-read-dir): use insert-file instead of
- read-file-into-buffer. This doesn't set the buffer's file-name.
- Also set the file-name to nil, and the buffer as unmodified.
- (info-prompt): rename list-fun to info-list-fun since it's a
- dynamic variable
- (info-list-menu-items): search from the restriction start, not
- the cursor position
-
-Tue Apr 28 16:05:44 1998 John Harper <john dcs warwick ac uk>
-
- * read-mail.jl: use the new buffer-status-id variable to
- display current message number with the buffer name
-
- * cvs.jl (cvs-undo-modification): use cvs-revert-filenames
- instead of doing it inline
-
-Mon Apr 27 10:21:09 1998 John Harper <john dcs warwick ac uk>
-
- * buffers.jl (buffer-file-modtime): has permanent-local
- property
-
- * cvs.jl (cvs-commit-callback, cvs-revert-filenames): files
- should revert after being committed now
-
-Sun Apr 26 13:39:17 1998 John Harper <john dcs warwick ac uk>
-
- * buffers.jl: call (window-list), instead of variable
- window-list
- * loadkeys.jl, loadmenus.jl, server.jl: use make- and
- delete-window instead of open- and close-window
- * windows.jl (window-list, window-closed-hook, open-window,
- open-window-on-display, close-window): deleted
-
- * buffers.jl (mildly-special-buffer): deleted this variable
- (kill-buffer): don't destroy-buffer, just remove it from all
- buffer-list's. Moved remove-buffer into this function
- (bury-buffer): use mapc, and fixed to handle views as well as
- windows
- (add-buffer): moved here from windows.jl
- (rotate-buffers-forward, rotate-buffers-backward): deleted
- (find-file): check if the file being opened has changed, if
- it's already buffered
- (check-changes, save-some-buffers): don't look for
- special-ness, but whether the buffer has no file-name
- * windows.jl (add-buffer, remove-buffer): deleted
- * loadkeys.jl: remove references to rotate-buffers-forward and
- rotate-buffer-backward
-
- * modes.jl (kill-mode): renamed as fundamental-mode, since this
- is what it really does, given an interactive decl
-
- * compile.jl (compile-parse-errors): fix line numbers being out
- by one
-
- * buffer-menu.jl, compile.jl, compiler.jl, cvs.jl, debug.jl,
- disassembler.jl, gdb.jl, help.jl, info.jl, init.jl, keymap.jl,
- miranda.jl, prompt.jl, rcs.jl, read-mail.jl, send-mail.jl,
- shell.jl, summary.jl, telnet.jl: various fixes for loss of
- buffer-special functions, etc.
-
- * buffers.jl (open-buffer): always call add-buffer, not just
- when having to create the buffer
-
- * windows.jl (add-buffer, remove-buffer): rewritten using mapc
- instead of iteration. add-buffer won't add the buffer if it's
- already in the view's list
-
- * cvs.jl (cvs-buffer): variable pointing to the summary buffer
- (cvs-update-file-list): install a temporary minor mode whilst
- updating (the mode's called cvs-update)
- (cvs-buffer-p): macro to test if the current buffer is the
- summary buffer
- (cvs-summary-select-other-view): fixed
-
-Sat Apr 25 14:38:38 1998 John Harper <john dcs warwick ac uk>
-
- * cvs.jl (cvs-command): handle the `*cvs*' buffer not existing
-
-Fri Apr 24 14:02:50 1998 John Harper <john dcs warwick ac uk>
-
- * cvs.jl: support for calling CVS commands asychronously,
- currently, cvs-update, cvs-log, cvs-status,
- cvs-commit-callback and cvs-diff-cvs take advantage of this
-
-Thu Apr 23 12:02:57 1998 John Harper <john dcs warwick ac uk>
-
- * cvs.jl (cvs-summary-clean): implemented this command
-
-Wed Apr 22 17:22:48 1998 John Harper <john dcs warwick ac uk>
-
- * windows.jl (open-view, close-view): deleted, replaced by
- split-view and delete-view in views.c
- (close-other-views): renamed delete-other-views
- * buffer-menu.jl, buffer-summary.jl, loadkeys.jl, prompt.jl,
- read-mail.jl: replace open-view by split-view, and close-view
- by delete-view, etc
-
-Tue Apr 21 11:48:59 1998 John Harper <john dcs warwick ac uk>
-
- * cvs.jl (cvs-diff-backup, cvs-undo-modification): implemented
- these commands
-
- * compile.jl (compile-parse-errors, next-error): rewrote most
- of these functions. Now tracks changes of directory while
- compiling (see compile-{push,pop}-directory-regexp variables,
- by default set up for GNU make)
-
- * cvs.jl (cvs-command): use (message ... t) instead of (format
- t ...) to display calling CVS message
-
-Mon Apr 20 00:20:06 1998 John Harper <john dcs warwick ac uk>
-
- * cvs.jl (cvs-commit-directory): new command, bound to `C'
-
- * cvs.jl (cvs-summary-mode): defined this function to provide
- the mode's documentation
- (cvs-command-get-files): in the summary buffer, when no files
- are marked, select prefix-arg files, not just one
-
- * find-url.jl (find-url-alist): deleted the http: method since
- it's covered by the default action
-
-Sun Apr 19 15:30:07 1998 John Harper <john dcs warwick ac uk>
-
- * cvs.jl, autoload.jl: a rudimentary CVS mode, inspired by
- pcl-cvs.el. Most important shortcoming is lack of control over
- which revisions are manipulated
-
- * dired.jl, summary.jl (dired-mark-if): moved from dired.jl to
- summary.jl, and renamed as summary-mark-if
-
-Sat Apr 18 00:19:49 1998 John Harper <john dcs warwick ac uk>
-
- * buffers.jl (revert-buffer): attempt to leave the cursor in
- its original position (by saving the surrounding lines, then
- searching for them). Also added a new optional argument, FORCE,
- which prevents confirmation from the user being asked for
-
- * rcs.jl (rcs-command): when REREAD-BUFFER is t, use
- revert-buffer to achieve this
-
- * Makefile.in: use JADELISPLIB and JADEDOCFILE to allow proper
- compilation of Lisp files before they've been installed
-
-Fri Apr 17 14:18:22 1998 John Harper <john dcs warwick ac uk>
-
- * tilde.jl (tilde-file-handler): handle the expand-file-name
- operation separately now, simplify the stuff after the tilde
- expression
-
-Wed Apr 8 11:59:44 1998 John Harper <john dcs warwick ac uk>
-
- * pwd-prompt.jl (pwd-prompt): use unwind-protect to ensure that
- the old glyph table is re-established
-
- * telnet.jl (telnet-grab-passwords): variable controlling
- whether to scan for password prompts, and if so, for how long
- after the start of the session
- (rlogin-program): new variable
- (telnet): new optional arg, USE-RLOGIN
- (rlogin): new command
- (telnet-filter): don't try to be clever when telnet-echos is
- non-nil
- (telnet-send-line): when telnet-echos is non-nil, delete input
- immediately after it's sent
-
-Tue Apr 7 10:20:02 1998 John Harper <john dcs warwick ac uk>
-
- * telnet.jl (telnet): specifying a port number now works
-
- * telnet.jl (telnet): spawns a telnet session in a buffer
-
- * pwd-prompt.jl (pwd-prompt): prompts for a string
- confidentially. Does this by hacking (literally) prompt.jl to
- use a special glyph table
-
- * find-url.jl (find-url-telnet, find-url-mailto): new functions
-
- * compiler.jl (compile-file): slightly modified comment
- prefixed to compiled files
-
- * loadkeys.c: bound "Ctrl-x Ctrl-Meta-f" to find-url
-
- * shell.jl (shell-command-on-area): don't popup *shell-output*
- buffer if it's totally empty
-
- * find-url.jl (find-url): new file, new command, it allows urls
- to be followed. By default, http urls are redirected to
- netscape, and file ones are loaded into the editor. ftp and
- telnet (and others?) are still to be implemented
-
-Sun Apr 5 20:13:42 1998 John Harper <john dcs warwick ac uk>
-
- * buffers.jl (save-some-buffers): print a message if no
- modified buffers exist on entry
-
- * compiler.jl (comp-get-lambda-vars): made into a macro; now
- uses filter instead of a combination of mapcar and delq
-
- * compiler.jl (comp-compile-funcall): open code constant lambda
- expressions; this isn't going to be useful with existing code,
- but it might be in the future (and it's painless..)
-
-Sat Apr 4 19:39:28 1998 John Harper <john dcs warwick ac uk>
-
- * file-subst.jl: provide file-subst
- * html-style.jl: require file-subst
-
- * edit.jl (mouse-select-drag-block, mouse-select-drag-rect):
- new functions, calling mouse-select-drag, but not until they've
- set or cleared the rect-blocks flag
- * loadkeys.jl: bound Ctrl-Mouse events to mark rectangles
-
-Fri Apr 3 12:38:54 1998 John Harper <john dcs warwick ac uk>
-
- * fill.jl (fill-area): hopefully fixed the bug erroneously
- leaving single words on the last line of the buffer
-
-Thu Apr 2 10:28:19 1998 John Harper <john dcs warwick ac uk>
-
- * rm-misc.jl (rm-forward): fix deletion of trailing blank lines
-
-Wed Apr 1 00:47:04 1998 John Harper <john dcs warwick ac uk>
-
- * html-style.jl: simplified the default style a lot
-
- * compiler.jl (comp-compile-mapc): for mapc calls whose
- function argument is a constant lambda expression, do the
- looping in byte code and open-code the function call. All other
- mapc calls use the mapc opcode as before
-
- * html-style.jl: new file, code to work with file-subst.jl to
- create web pages to a common style
-
-Tue Mar 31 00:42:31 1998 John Harper <john dcs warwick ac uk>
-
- * tilde.jl: new file; a file-handler to expand a tilde (~) at
- the start of a file name. Understands both ~/ and ~USER/
-
- * shell.jl: fix TERMCAP entry
-
- * read-mail.jl, rm-misc.jl, rm-output.jl: more fixes to
- ensuring correct separation between messages
-
- * loadmenus.jl: change for new operating-system variable; I
- don't know why I keep this file...
-
- * lisp.jl (file-name=): no longer a primitive, this now works
- by comparing canonical file names
-
- * init.jl: minor changes to order of loadup; also catch all
- errors when executing site-local and user config files
-
- * info.jl (info-find-node): fixed some bugs
-
- * help.jl (get-documentation, add-documentation): new
- functions, these replace the old get-doc-string and
- add-doc-string primitives
-
- * file-subst.jl: new file, provides a method of generating
- arbitrary text files from input templates. Allows the full
- expressiveness of Lisp to be used in expansions. I use this to
- build all my web pages using the same style
-
- * environ.jl (getenv, setenv): new file, these functions used
- to be primitives, now they use the process-environment variable
-
- * edit.jl: use (eq window-system 'x11) to test for X
-
- * dired.jl: added `% d' and `% m' commands. Also cleaned up
- some code. Needs more commands
-
- * compiler.jl: support for comp-transform property in
- functions, basically a method for specifying a source code
- transformation (i.e. macro) to compile the form
-
- * buffer-summary.jl (bs-print-item): handle oversized fields
- more elegantly
-
- * add-log.jl, buffers.jl, compile.jl, compiler.jl, dired.jl,
- dump.jl, find-autoloads.jl, gdb.jl, gzip.jl, info.jl,
- mail-dir.jl, maildefs.jl, miranda.jl, print.jl, prompt.jl,
- rcs-hooks.jl, rcs.jl, read-mail.jl, rm-output.jl, send-mail.jl,
- shell.jl, tags.jl: changes for new file handling (mainly to
- support file names relative to the current buffer; includes
- replacing uses of the file-name-concat function by
- expand-file-name, and ensuring that subprocesses get given
- local-file-name's)
-
-Mon Mar 23 09:29:30 1998 John Harper <john dcs warwick ac uk>
-
- * read-mail.jl, rm-misc.jl, rm-output.jl: was checking if
- number of lines in buffer is zero to see if the file's
- empty---there's always at least one line (doh!)
-
- * read-mail.jl (rm-append-inbox): set rm-current-msg-index to
- zero if we're adding the first message in the folder
-
-Fri Mar 20 13:49:28 1998 John Harper <john dcs warwick ac uk>
-
- * dired.jl (dired-print): changed the output format slightly
- (dired-delete, dired-execute-end): don't confirm deletion one
- file at a time; record all files to be deleted, then use
- map-y-or-n-p
-
-Thu Mar 19 09:55:21 1998 John Harper <john dcs warwick ac uk>
-
- * info.jl (info-prompt): fix validation function not
- constructing the list of options
- (info-menu): when searching for entered menu name, search case
- insensitively
-
- * mail-headers.jl (mail-parse-atom): a few minor fixes to allow
- null strings, comments and addresses to be recognised
-
-Mon Mar 16 15:48:28 1998 John Harper <john dcs warwick ac uk>
-
- * read-mail.jl, rm-misc.jl, rm-output.jl: miscellaneous fixes
- to make the message at the end of the file be handled better;
- also changed how the \n\n separator is inserted between
- messages
-
- * compiler.jl, disassembler.jl, bytecodes.jl (op-filter,
- op-macrop, op-bytecodep): new opcodes
-
- * buffers.jl (save-some-buffers): rewritten using map-y-or-n-p
- and filter
-
- * prompt.jl (map-y-or-n-p): new function, apply y-or-n-p to a
- list of inputs
-
-Sat Mar 14 16:06:25 1998 John Harper <john dcs warwick ac uk>
-
- * read-mail.jl (rm-summary-print-item): use the all-new and
- enhanced format function to do all dirty work
-
- * summary.jl (summary-mark-item, summary-mark-delete): when
- called interactively these now use the prefix arg to find how
- many items to mark. Also s-mark-delete just calls s-mark-item
-
- * summary.jl (summary-assoc-item-function): new variable
- (summary-unmark-all): new command, bound to "U"
- (summary-execute): always ignore the `mark' symbol, also ensure
- that any skipped symbols are preserved in the list of those
- pending
- (summary-mark-line, summary-map-marked-items): new functions
- for working with marked items
-
- * dired.jl (dired-print): works with broken symlinks
-
-Fri Mar 13 15:03:55 1998 John Harper <john dcs warwick ac uk>
-
- * summary.jl (summary-next-item, summary-previous-item): handle
- cursor not being on an item gracefully
-
- * dired.jl (dired-functions, dired-cursor-column): add an
- after-move vector to put the cursor in column
- dired-cursor-column; by default the first character of the file
- name
-
- * dired.jl, dired-hooks.jl: first attempt at a dired program
- * init.jl: load dired-hooks
-
- * buffers.jl (find-file-hook): renamed as after-read-file-hook.
- There's now a new hook find-file-hook that can take over almost
- all find-file functionality
- * rcs-hooks.jl: use after-read-file-hook, not find-file-hook
-
- * rcs.jl, rcs-hooks.jl (rcs-set-default-branch): new command,
- bound to "Ctrl-x v b", sets the default branch of the file to
- either the currently checked out revision, or the highest (with
- a prefix arg)
-
-Thu Mar 12 20:23:28 1998 John Harper <john dcs warwick ac uk>
-
- * mail-headers.jl (mail-quote-phrase, mail-format-address): now
- does proper quoting of phrases when necessary
-
- * mail-dir-summary.jl (mds-alias-functions,
- mds-address-functions): bind the mds-compose-mail-to-item
- function to the select tag (i.e. pressing RET)
- (mds-compose-mail-to-item): make ITEM an argument, but infer
- the IN-CC arg from current-prefix-arg
-
-Wed Mar 11 09:30:52 1998 John Harper <john dcs warwick ac uk>
-
- * maildefs.jl (mail-atom-re): fixed this to be [almost] exactly
- what RFC-822 specifies. It's now defined exclusively instead of
- inclusively (how foolish..)
-
- * mail-headers.jl (mail-parse-address): build the various
- regexps each call, this works even when mail-atom-re changes
- behind our back
-
-Tue Mar 10 20:24:28 1998 John Harper <john dcs warwick ac uk>
-
- * shell.jl (shell-mode-kill, shell-start-process): when a
- shell-process exists, check that it's in use before complaining
-
- * tags.jl (find-tag, visit-tags-file): new file, new commands.
- Currently only supports etags generated TAGS files
- loadkeys.jl (global-keymap): find-tag bound to M-.
-
-Mon Mar 9 09:32:33 1998 John Harper <john dcs warwick ac uk>
-
- * read-mail.jl (rm-current-message-end): renamed as
- rm-message-end, with the message as an optional arg
- * rm-output.jl (rm-output, rm-output-message): some minor fixes
-
- * read-mail.jl (rm-summary-format, rm-summary-functions):
- variables to define the structure of summary lines
- (rm-saved-cache-tags): message cache tags whose contents should
- persist across calls to the mail reader
- (rm-kill-subject): new command (bound to `k') that deletes all
- messages with the same subject as the current message
- (rm-pipe-message): new command, calls shell-command-on-area for
- the current message (bound to `|')
- (rm-msg-): changed the format of the message structure, now
- very little info is stored explicitly, everything parsed from
- message headers is stored in the rm-msg-cache slot
- (rm-cached-form): macro to execute a form whose value may
- previously have been cached for the message in question
- (rm-tag-cached-p, rm-invalidate-tag): cache utilities
- (rm-current-message-end): no longer uses the position of the
- next message, instead uses the new rm-msg-total-lines field
- (rm-update-flags): as well as the X-Jade-Flags-v1 header, also
- outputs X-Jade-Cache-v1 containing persistent items in the
- message's cache
- (rm-get-msg-header): wrapper for mail-get-header, but on an
- arbitrary message
- (rm-get-senders, rm-get-recipients, rm-get-subject,
- rm-get-date-vector): wrappers to rm-get-msg-header, but working
- through the cache
- (rm-create-summary): call hook read-mail-summary-mode-hook
- immediately before calling summary-mode
- (rm-summary-print-item, rm-summary-format-item): functions for
- formatting summary lines, the line is cached (non-persistently)
- (rm-invalidate-summary): function to remove the cached summary
- line
-
- * rm-mail-dir.jl (rm-mail-dir-scanner): use rm-get-recipients
- and rm-get-senders when scanning for new addresses
-
- * mail-dir-summary.jl (mds-sort-list): command (bound to `s')
- to sort the mail directory lists
-
- * summary.jl (after-marking): ensure that this function tag is
- called _before_ the updating takes place
- (summary-mark-delete): optional arg can specify item
-
- * maildefs.jl (mail-month-alist): alist of RFC-822 month
- abbrevs to numeric indices (Jan=1, ...)
-
- * mail-headers.jl: new file, moved all of the functions that
- deal with mail headers to this file
- (mail-parse-address, mail-parse-date): new functions
-
- * modes.jl, prompt.jl, rectangle.jl: reversed order of NOCASEP
- and START in calls to string-match
-
-Fri Mar 6 10:51:58 1998 John Harper <john dcs warwick ac uk>
-
- * compiler.jl (comp-defuns, comp-defvars): these are always
- used now, even if we're not compiling a file (mainly use
- comp-defuns as a cache of previously seen functions)
- (comp-compile-funcall): open-code funcall forms with op-call
-
- * sort.jl (sort): new file, new function, sorts a list
-
- * summary.jl (summary-mode): install a _copy_ of the functions
- vector in the buffer, this allows for easier modification later
-
-Wed Mar 4 14:02:40 1998 John Harper <john dcs warwick ac uk>
-
- * edit.jl (goto-mouse): new function, abstracted from
- mouse-select, this finds the position and view under the mouse
- and moves to them
- (mouse-select-drag): when dragging words, find the start of the
- word as well as the end
-
-Tue Mar 3 11:53:40 1998 John Harper <john dcs warwick ac uk>
-
- * edit.jl (kill-ring-size): variable controlling size of kill
- ring, set to 8 by default
- (kill-string): examines relative cursor positions to decide
- whether to prepend of append additive kills
- (yank, yank-rectangle, yank-next): more or less totally
- rewritten, may even work properly now? Uses a truly gruesome
- hack to make undo take some of the load
- (yank-to-mouse): uses mouse-select to find the mouse position,
- this means that view switches work correctly
-
- * edit.jl (next-line, previous-line): new commands for moving
- up and down lines, preserving the original column position
- * loadkeys.jl: bind Ctrl-n and Down, and Ctrl-p and Up, to
- next-line and previous-line respectively
-
- * windows.jl (open-window-on-display): calls set-current-window
- on the new window, this allows things like "jadeclient -X -f
- read-mail" to work as you would expect
-
- * buffer.jl (maybe-save-buffer): fixed
-
- * compiler.jl (comp-max-inline-depth): variable controlling
- maximum nesting of open-coded functions
- (comp-batch-compile): var controlling whether to print messages
- to stdout, or to a buffer
- (comp-inline-env): alist of functions to open-code
- (comp-defuns): alist of seen functions, and the number of args
- they require
- (comp-defvars): list of defvar'd variables
- (comp-bindings): lexical environment of current form
- (comp-inline-depth): current inlining nesting
- (comp-message, comp-error, comp-warning): rewritten
- (comp-remember-fun, comp-remember-var): functions for recording
- global variables and functions
- (comp-test-varref, comp-test-funcall): functions to emit
- warnings if something looks suspicious
- (compile-file): initial-pass now scans for all top-level
- definitions: defun, defsubst, defvar, and defconst.
- (comp-get-lambda-vars): return the symbols that will be bound
- by a particular lambda list
- (comp-compile-inline-lambda): open-codes a function call, used
- both for constant lambda expressions as the first element of
- function applications, and for inlining defsubst declared
- functions
- (comp-compile-inline-function): defsubst puts this into the
- compile-fun property of all inline functions
-
- * lisp.jl (defsubst): new macro, define an inline defun
- * lisp-mode.jl: Add intentation hint for defsubst
- * dump.jl: Support (untested as yet) for defsubst functions
-
- * add-log.jl, buffers.jl, compile.jl, debug.jl, dump.jl,
- edit.jl, info.jl, isearch.jl, lisp.jl, prompt.jl, rcs.jl,
- read-mail.jl, replace.jl, rm-misc.jl, tex-mode.jl,
- texinfo-mode.jl, windows.jl: Minor fixes for bugs found via
- compiler warning, mainly adding defvars for special variables
-
- * server.jl (server-find-file): chooses the view to open the
- file in, rather than the window
-
-Mon Mar 2 17:15:35 1998 John Harper <john dcs warwick ac uk>
-
- * windows.jl (open-window-on-display): new command, is to
- make-window-on-display as open-window is to make-window
-
-Sun Mar 1 11:29:09 1998 John Harper <john dcs warwick ac uk>
-
- * read-mail.jl (rm-summary-keymap): quote rm-followup
-
- * rm-misc.jl (rm-really-burst-message): call replace-last-match
- instead of the non-existant replace-regexp
- (rm-reply): only append msg-id to list of references when
- making new list of references if msg-id is non-nil
-
-Fri Feb 27 12:26:14 1998 John Harper <john dcs warwick ac uk>
-
- * edit.jl (goto-view-line): new function, bound to Meta-r.
- Moves the cursor to the start of a line displayed in the
- current view (similar to C-l, but moving the cursor, not the
- display)
- * loadkeys.jl: bound M-r as described above
-
- * edit.jl (backward-char, backward-tab, backward-line,
- forward-word, backward-word, forward-paragraph,
- backward-paragraph, forward-page, backward-page): removed the
- hacky MOVE argument, replaced by the new @ interactive flag
- (word-start, mouse-pos): added interactive declarations
- (goto-start-of-buffer, goto-end-of-buffer): removed
- (top-of-buffer, end-of-buffer): don't call goto and
- set-auto-mark explicitly, just use the interactive flags
- (save-excursion, save-restriction): use ,@ instead of ,
- * loadkeys.jl (global-keymap): changed M-> and M-< bindings
-
-Wed Feb 25 10:07:41 1998 John Harper <john dcs warwick ac uk>
-
- * rcs.jl (rcs-init-file): don't check out zero length files, if
- the file actually is zero bytes in the repository we'll go into
- an infinite loop
-
- * c-mode.jl, xc.jl: integrated the XC code with the standard C
- mode. Of course, there's still a lot of improvements to be made
- and bugs to be fixed..
-
- * keymap.jl (read-event): rewritten to use the minibuffer to
- display the prompt, this means that the cursor also appears in
- the minibuffer. Also, easier to handle cleanup
- (describe-key): handle chained bindings better
-
- * rcs.jl (rcs-display-diffs): renamed as rcs-compare-revisions,
- when called interactively with a prefix arg, the revisions will
- be prompted for
- (rcs-display-log-args): new variable, a list of arguments to
- pass to rlog
- (rcs-down-history, rcs-up-history): fixed these functions
-
-Tue Feb 24 12:14:09 1998 John Harper <john dcs warwick ac uk>
-
- * rcs.jl (rcs-make-backup-files): variable controlling whether
- or not to make backup files if the file's controlled by RCS
- (rcs-only-lock-seen-files): variable controlling whether to
- lock when checking out files whose revision is different from
- the currently viewed revision
- (rcs-revision): local variable containing the revision of the
- buffer, or nil
- (rcs-version): function renamed as rcs-find-version
- (rcs-init-file): when called on a file that doesn't exist, or
- is zero bytes in size, check out the current version
- (rcs-verify-buffer, rcs-register-buffer, rcs-check-in-buffer,
- rcs-lock-buffer, rcs-view-revision, rcs-revert-buffer): removed
- the BUFFER argument, all now operate on the current buffer
-
- * read-mail.jl (rm-display-current-message): when highlighting
- headers ensure that any continuation lines are also included
-
- * maildefs.jl (mail-display-summary): slightly changed
- semantics -- set to `bottom' means display summary at bottom of
- display, otherwise non-nil means display at top, nil means
- don't display (as before)
-
- * read-mail.jl (rm-configure-views): new function to set up the
- window configuration, two views mail and summary
-
- * summary.jl (summary-highlight-index): highlight to the end of
- the line or the right edge of the display, whichever is greater
-
-Sun Feb 22 15:51:24 1998 John Harper <john dcs warwick ac uk>
-
- * dump.jl: enable constant "put" forms to be dumped
-
-Thu Feb 19 00:02:49 1998 John Harper <john dcs warwick ac uk>
-
- * lisp-mode.jl (lisp-forward-sexp, lisp-backward-sexp): treat
- the three characters ` , @ as single quote (i.e. step over them
- when they occur at the start of a sexp)
-
- * backquote.jl: don't use (` X), (, X) and (,@ X), the Lisp
- reader now parses the usual syntax
-
- * edit.jl (save-restriction): changed to use normal backquote
- syntax
- (save-cursor): renamed save-excursion since it does actually
- save the current buffer as well as the cursor, this is close
- enough to the usual definition of save-excursion for me
-
- * rm-output.jl, text-mode.jl: change calls to save-cursor to
- call save-excursion
-
-Wed Feb 18 23:20:34 1998 John Harper <john dcs warwick ac uk>
-
- * backquote.jl: new file, provides pseudo-backquote operation.
- This file was taken from GNU Emacs 19.34 (originally by Rick
- Sladkey), with very minor modifications
-
- * edit.jl (auto-mark): now made buffer-local, i.e. each buffer
- gets its own auto-mark
- (goto-mark): added optional arg DONT-SET-AUTO which can inhibit
- setting the auto-mark before moving
- (save-restriction, save-cursor): now implemented using
- backquote, both have been improved, save-restriction now uses
- marks, both check that the buffer is still resident before
- reinstalling it
- (mouse-pos): new function
- (mouse-select): updated for line wrapping redisplay
-
- * buffers.jl (goto-mark, set-auto-mark,
- swap-cursor-and-auto-mark): moved to edit.jl
-
- * bookmarks.jl (set-bookmark, goto-bookmark, kill-bookmark,
- kill-all-bookmarks, list-bookmarks): new file, provides named
- bookmarks
-
- * windows.jl (shrink-view-if-larger-than-buffer): handle line
- wrapping redisplay
-
- * rm-misc.jl (rm-reply): accept null subject lines gracefully
- (rm-forward): minor changes, also don't put empty lines between
- the forwarded message and its delimiters
-
- * loadkeys.jl: removed mark-1, mark-2 and mark-3, and the key
- bindings to set and goto them
-
- * isearch.jl (isearch-accept): call set-auto-mark to do it's
- stuff instead of faking it
-
- * init.jl: load backquote on startup
-
- * help.jl (describe-function): updated for compiled bytecode
- objects
-
- * fill.jl (unfill-paragraph): new command, changes all newlines
- withing the current paragraph(s) to spaces
-
-Mon Feb 16 20:29:06 1998 John Harper <john dcs warwick ac uk>
-
- * replace.jl (replace-last-match): fixed; I was deleting the
- matched text before expanding it (doh!)
-
-Thu Feb 12 18:51:44 1998 John Harper <john dcs warwick ac uk>
-
- * dump.jl (dump-batch): options --enable-inline-strings and
- --disable-inline-strings
- (dump-defvar, dump-defconst): set the property
- variable-documentation not just documentation (which is wrong)
-
- * help.jl (documentation): fix for subr built-in variables
-
-Sun Feb 8 14:46:12 1998 John Harper <john dcs warwick ac uk>
-
- * windows.jl (scroll-next-view): new command, bound to
- "Ctrl-Meta-v", scrolls the next view in the window
- * loadkeys.jl (global-keymap): binding for above
-
- * rcs.jl (rcs-goto-buffer): display the RCS output buffer in a
- separate view, and call shrink-view-if-larger-than-buffer
-
-Thu Feb 5 17:32:21 1998 John Harper <john dcs warwick ac uk>
-
- * windows.jl (other-view): new interpretation of the LINES
- optional argument. If LINES is given then it always specifies
- the size of the returned view (even if the view already
- exists). If LINES is the symbol t, then the size of an already
- existing view is never changed. If LINES is nil the size of the
- returned view and the size of the current view are roughly
- equal.
- (enlarge-view, shrink-view): new functions to add or remove
- lines from the current view, shrink-view just calls
- enlarge-view with a negative argument
- (shrink-view-if-larger-than-buffer): new function to reduce the
- size of the current view to the number of lines in its buffer
- * loadkeys.jl (ctrl-x-keymap): "Ctrl-x ^" bound to
- enlarge-view, "Ctrl-x -" bound to shrink-view-if-larger...
-
- * read-mail.jl (rm-summary-select-item,
- rm-summary-execute-end): both call other-view with LINES set to
- t to prevent view resizing
-
- * shell.jl (shell-command-on-area): when displaying a new
- buffer, shrink the view to the buffer's size
-
- * help.jl (help-wrapper): macro to replace the help-setup
- function. This handles shrinking the view to the size of the
- final buffer, and leaving the cursor in the original view, not
- that of the help-buffer
- * help.jl, keymap.jl: all calls to help-setup translated to use
- help-wrapper
-
-Wed Feb 4 13:00:03 1998 John Harper <john dcs warwick ac uk>
-
- * read-mail.jl (rm-delete-current-message): was sometimes
- leaving a blank line at the start of mailboxes
-
-Mon Feb 2 00:04:01 1998 John Harper <john dcs warwick ac uk>
-
- * buffers.jl (auto-save-function): use message to display the
- message not format
-
-Sat Jan 24 17:11:56 1998 John Harper <john dcs warwick ac uk>
-
- * keymap.jl (print-keymap): was initialising the array index
- variable one to high (and thereby accessing past the end of the
- array)
-
- * buffers.jl, gzip.jl, read-mail.jl, send-mail.jl: updated for
- new function names, write-buffer-contents, read-file-contents
- and insert-file-contents.
-
- * buffers.jl (find-file): absorbs all functionality of
- open-file, and gets a new optional arg DONT-ACTIVATE which can
- be used to prevent the new buffer being installed in the
- current view.
- (open-file): deleted
- (open-file-hook): renamed as find-file-hook
-
- * dump.jl: new file, provides dumping of compiled Lisp files to
- an assembler file that can be assembled and linked into a
- special "jaded" executable. Only forms that are ``constant''
- are dumped, the rest get put in a FILE.jld file that cmd_load
- knows when to look for
-
- * lisp.jl (autoload): when the executable contains dumped data,
- don't add autoload definitions for any files that were dumped
- (since they may overwrite the constant definitions), instead
- load the file there and then (unless it's already been loaded)
-
- * add-log.jl, buffers.jl, find-autoloads, gdb.jl, rcs-hooks.jl,
- rcs.jl, server.jl: use find-file instead of open-file
-
- * compiler.jl, gzip.jl, mail-dir.jl, rm-output.jl,
- send-mail.jl: use open-file and close-file instead of open and
- close
-
- * init.jl: now load autoloads.jl after loading windows.jl and
- buffers.jl (I can't remember why!?) Also cleaned up how the
- command-line-args are used, if a function is called via the -f
- option it's guaranteed that the next argument will be the car
- of the list
-
- * debugrc.jl: now catches all errors and prints them before
- resuming operation. On catching end-of-stream though it quits
-
- * text-mode.jl (indented-text-mode): explicitly give
- fill-prefix a buffer-local value, in case fill.jl hasn't made
- it automatically buffer-local yet
-
-Tue Jan 20 14:28:45 1998 John Harper <john dcs warwick ac uk>
-
- * mail-dir-summary.jl (mds-compose-mail-to-item): command
- (bound to "m") that composes a new mail message with the
- current item as the recipient (by default in the To: field,
- prefix arg means put it in the CC: header)
-
-Mon Jan 19 18:22:52 1998 John Harper <john dcs warwick ac uk>
-
- * compiler.jl (comp-compile-top-form): use defun and defmacro
- again now they can handle bytecode objects
-
-Sun Jan 18 21:59:02 1998 John Harper <john dcs warwick ac uk>
-
- * add-log.jl (changelog-mode): explicitly create buffer-local
- values of fill-prefix and fill-prefix-width, in case fill.jl is
- not yet loaded
-
- * lisp-mode.jl (lisp-backward-sexp): if an expression is
- preceded by #, move onto it.
-
- * disassembler.jl: only one entry point now: `disassemble',
- this handles single forms and function/macro definitions.
- Now by default it outputs to the buffer *disassembly*, and
- heads the text with some information about the byte code
-
- * compiler.jl: modifications for byte code subrs. Instead of
- compiling functions and macros to a lambda list, we compile
- them to a byte code object. Also don't print newlines between
- output forms
-
- * debug.jl: bind to print-escape, not print-escape-newlines
-
-Thu Jan 15 12:38:46 1998 John Harper <john dcs warwick ac uk>
-
- * edit.jl (paragraph-regexp): renamed as paragraph-separate,
- this is now a regexp that matches the beginning of a line that
- separates two paragraphs
- (page-regexp): renamed as page-start
- (forward-paragraph, backward-paragraph): totally rewritten,
- these work properly now. As with all other forward- and
- backward- functions, forward-paragraph find the character
- following the end of the paragraph, backward-paragraph finds
- the character at the start of the paragraph
- (mark-paragraph): renamed as paragraph-edges, this function now
- finds the beginning and end of the current COUNT paragraphs.
- Marks them as a block when called interactively.
- (transpose-paragraphs): does what you'd expect, bound to `Ctrl-x
- Ctrl-Meta-t'.
- (save-cursor): now uses a mark to store the position
-
- * fill.jl: renamed from fill-mode.jl, this file has been almost
- completely rewritten
- (fill-break-re): regexp defining where it's permissable to
- break lines (by default: space, tab, newline or form-feed)
- (fill-mode-active): what used to be fill-mode-p
- (fill-prefix, fill-prefix-width): variable defining the fill
- prefix of the buffer. A string or a function, see its
- documentation for details.
- (set-fill-prefix): new command (bound to `Ctrl-x .') that
- saves from the start of the line to the cursor as the fill
- prefix for the buffer
- (fill-area): new function to fill an arbitrary region of text.
- Handles a prefix at the beginning of each line
- (fill-paragraph): now calls fill-area
- (fill-check-line): rewritten (this is for auto-fill mode)
- (center-line, center-paragraph): moved from text-mode.jl,
- untested
-
- * tex-mode.jl (tex-mode): set paragraph-separate to include
- "$$" as well as the normal blank lines. Also configures the
- generic expression handling code to handle TeX syntax a bit
- better ($..$ as delimiters, comments, don't have an escape
- character.
-
- * text-mode.jl (text-mode-init): don't include underscores and
- hyphens in word syntax.
- (indented-text-mode): set fill-prefix to text-mode-fill-prefix
- (text-mode-fill-prefix): function to handle fill prefix as
- indentation of the previous line.
- (center-line, center-paragraph): moved to fill.jl
-
- * loadkeys.jl (global-keymap): `Meta-h' bound to paragraph
- edges
- (ctrl-x-keymap): `Ctrl-x Ctrl-Meta-t' bound to
- transpose-paragraphs, `Ctrl-x .' bound to set-fill-prefix
-
- * lisp.jl (function, return): new macros
-
- * summary.jl (summary-update-item): don't use save-cursor anymore,
- now that uses marks it screws things up
-
- * compiler.jl (comp-inc-stack): rewritten as a macro, and given
- an optional argument N.
- (comp-compile-constant): checks if FORM is nil or t, and uses
- the special opcodes if it is
-
- * add-log.jl, asm-mode.jl, buffer-menu.jl, buffers.jl,
- c-mode.jl, edit.jl, gdb.jl, lisp-mode.jl, modes.jl,
- read-mail.jl, rm-misc.jl, send-mail.jl, shell.jl, summary.jl,
- tex-mode.jl, texinfo-mode.jl, text-mode.jl, xc.jl: change calls
- to eval-hook to use call-hook instead Note that read-file-hook,
- write-file-hook, insert-file-hook, auto-save-hook,
- read-mail-delete-message-hook, mail-yank-hooks are all "or"
- style hooks
-
-Wed Jan 14 18:02:21 1998 John Harper <john dcs warwick ac uk>
-
- * bytecodes.jl, disassembler.jl: opcode changes for new
- exception handling
- * compiler.jl (comp-get-label-addr): returns the pc of a
- previously-set label
- (comp-compile-catch, comp-compile-unwind-protect,
- comp-compile-error-protect): modified for new exception
- handling mechanisms. error-protect renamed as condition-case.
-
- * isearch.jl, lisp-mode.jl, read-mail.jl, xc.jl: changed
- error-protect to condition-case
-
-Tue Jan 13 00:03:25 1998 John Harper <john dcs warwick ac uk>
-
- * add-log.jl (changelog-mode): new major mode
- * modes.jl (mode-alist): added changelog-mode
-
-Mon Jan 12 12:48:41 1998 John Harper <john dcs warwick ac uk>
-
- * bytecodes.jl, compiler.jl, disassembler.jl (op-max, op-min):
- new instructions
-
- * mail-dir.jl: new file, provides an email directory, both of
- addresses to names, and aliases to addresses
-
- * mail-dir-summary.jl (list-mail-addresses, list-mail-aliases):
- new file, uses summary-mode to display the email directory
- information. Also allows interactive editing of the directory.
-
- * rm-mail-dir.jl: hooks to interface the mail-dir with
- read-mail mode. Adds a new command `+' when reading mail that
- allows the address of the sender to be added to the directory.
- Also has facilities for doing this (semi-) automatically
-
- * sm-mail-dir.jl: hooks for send-mail mode. Two new commands,
- `Ctrl-c a' inserts an address from the directory (in the style
- defined by mail-address-style); `Ctrl-c Ctrl-a' inserts an
- alias definition. Also has support (untested as yet) for
- expanding aliases automatically prior to a message being sent
-
-Sun Jan 11 13:21:55 1998 John Harper <john dcs warwick ac uk>
-
- * maildefs.jl (mail-format-address): function to create a string
- with name and address parts, formatted according to
- mail-address-style.
- * send-mail.jl (sendmail-send-message): use mail-format-address
-
- * lisp.jl (eval-after-load): new function, adds entries to
- after-load-alist (see `load' command)
-
- * buffers.jl: reorganised this file so that similar functions
- are grouped together
- (save-and-quit): optional arg NO-QUERY, when t don't bother
- asking whether any unsaved files should be saved.
- (before-exit-hook): hook called by save-and-quit before exiting.
- (split-line-indent): deleted this function
- (goto-line): moved to edit.jl
-
- * prompt.jl (prompt-from-list): new optional arg DONT-VALIDATE;
- when t no validation function is installed, and hence strings
- that aren't in the supplied list may be entered.
-
-Fri Jan 9 11:09:51 1998 John Harper <john dcs warwick ac uk>
-
- * replace.jl (query-replace-rest): still invoked the
- replace-regexp function which has been deleted.
- (query-replace-keymap): bound Ctrl-g to quit
- (replace-string, replace-all, query-replace): minor doc-string
- changes
-
-Thu Jan 8 15:48:32 1998 John Harper <john dcs warwick ac uk>
-
- * compile.jl: general clean-up. Removed the compile-command,
- compile-default-command dichotomy, instead compile-command is
- left global (any attempt to set it in a "Local Variables:"
- section will make a local value). Also made the grep command
- prompt for the whole command string, not just the arguments;
- grep-buffer has been made to work again.
-
-Sun Jan 4 23:48:31 1998 John Harper <john dcs warwick ac uk>
-
- * modes.jl (add-minor-mode): changed the optional arg NO-KEYMAP
- to be the argument KEYMAP--the keymap of the minor mode being
- installed.
- (remove-minor-mode): new optional arg KEYMAP--the keymap to be
- removed along with the minor mode
- (minor-mode-keymap): this variable removed
- (minor-mode-installed): renamed as minor-mode-installed-p
-
- * edit.jl (overwrite-mode): changes for new minor mode style,
- also changed the variable overwrite-mode-p to
- overwrite-mode-active
-
- * rcs.jl (rcs-init-file): updated for new minor mode
- conventions
-
-Sat Jan 3 21:03:48 1998 John Harper <john dcs warwick ac uk>
-
- * keymaps.jl (km-print-list): when recognising
- next-keymap-path being set, check that the thing it's being
- set to is a list, before adding it to the list of maps to print
-
- * gdb.jl (gdb-output-filter, gdb-redisplay-frame): put the
- cursor at the indentation position of the line, not at the end.
-
-Sun Dec 21 02:51:44 1997 John Harper <john dcs warwick ac uk>
-
- * buffers.jl, info.jl: fix timestamp usage (now a cons cell)
-
- * buffers.jl (revert-buffer): delete the auto save file
- _before_ loading the original, to remove the annoying `auto
- save is newer..' message
-
-Sat Dec 20 00:16:47 1997 John Harper <john dcs warwick ac uk>
-
- * bytecodes.jl, compiler.jl, disassembler.jl (op-pos,
- op-posp): new opcodes, for `pos' and `posp' respectively
-
- * lisp.jl (pos-col, pos-line): new macros
-
- * buffers.jl (auto-save-file-newer-p, file-newer-than-file-p):
- both use the new function time-later-p to compare time stamps
-
-Wed Dec 17 12:34:26 1997 John Harper <john dcs warwick ac uk>
-
- * modes.jl (init-mode): fixed '-*-X-*-' not being recognised
-
-Tue Dec 16 12:01:45 1997 John Harper <john dcs warwick ac uk>
-
- * lisp.jl (or, and): new macros, in place of the old special
- forms of the same name
- (prin1-to-string, read-from-string): both defined as macros
- instead of functions
-
- * compiler.jl (comp-compile-cond): optimise case where the
- last condition list has no action associated with it--just
- fall out the bottom with the condition itself as the value
- (comp-compile-or, comp-compile-and): deleted
-
-Mon Dec 15 10:49:06 1997 John Harper <john dcs warwick ac uk>
-
- * compiler.jl (comp-compile-while): now puts conditional branch
- at the top of the loop to reduce the number of branches
- executed, uses the new opcode jpt
- * bytecodes.jl (op-jpt, op-jpn): new opcodes, jump-and-pop-if-t
- and jump-and-pop-if-nil
- * disassembler.jl (dis-opcode-vector): added entries for the
- above two opcodes
-
-Sun Dec 14 15:47:25 1997 John Harper <john dcs warwick ac uk>
-
- * Makefile: now compiles the Lisp files in two runs; the first
- uses the compiler to bootstrap itself, the second uses the
- compiled compiler to build everything else
- * compiler.jl (compile-compiler): small function to aid the
- above process
-
- * rectangle.jl (insert-rectangle, copy-rectangle,
- delete-rectangle, cut-rectangle): new file, replacing
- src/editrect.c. The functions have slightly different names,
- but not much has changed
- * edit.jl: change all calls to X-rect to be X-rectangle
-
- * Many changes to almost all files, adapting to the changes
- mentioned under the same date in src/ChangeLog. There's sure
- to be some fallout still to be fixed.
-
- * edit.jl (backward-char, backward-tab, backward-line,
- split-line, goto-start-of-buffer, goto-end-of-buffer,
- top-of-buffer, bottom-of-buffer): new functions
- (left-char, right-char): new macros
-
- * init.jl: now uses version-string when printing the startup
- banner
-
- * replace.jl (replace-last-match): function that replaces the
- most recently matched regular expression with the expansion of
- its argument
- (replace-string): replaces one string with another at a
- specified position
-
-Wed Nov 26 00:34:32 1997 John Harper <john dcs warwick ac uk>
-
- * maildefs.jl (mail-default-headers): Added an "X-Mailer"
- line
- (mail-summary-lines): reduced to eight
- (mail-parse-list, mail-parse-group, mail-parse-atom): the
- second and third functions are new, split off from
- mail-parse-list. It's now possible to read "groups" of
- expressions---things not separated by commas. A new optional
- arg to mail-parse-list controls this
- (mail-get-header): option to read a list of groups, not a list
- of comma-separated expressions
- (mail-insert-list): option to suppress comma-separators
-
- * send-mail.jl (mail-setup): now puts the subject immediately
- after the recipients. Also inserts the REFERENCES arg as a
- list of groups
-
- * rm-misc.jl (rm-reply): read and generate the "References:"
- header
-
-Tue Nov 25 12:01:51 1997 John Harper <john dcs warwick ac uk>
-
- * edit.jl (delete-blank-lines): rewritten to be compatible
- with Emacs' command of the same name, remove the infinite
- loop bug as well
-
- * summary.jl: new optional action `current'; if this is
- provided by the back-end it should return the index of the
- currently selected item
-
- * read-mail.jl (rm-display-current-message): new optional arg
- no-summary-update; controls whether or not to update the
- current summary item
- (rm-delete-messages): fixed some bugs, also now tracks how
- many messages have been moved through, so that when it has
- finished the current message is as close as possible to the
- current message on entry
- (rm-summary-current-item, rm-summary-functions): provide a
- `current' action
-
-Fri Nov 21 12:27:10 1997 John Harper <john dcs warwick ac uk>
-
- * compiler.jl: change '%' to use op-rem and 'mod' to use op-mod
- (comp-compile-transitive-relation): new function to compile
- >, >=, <, and <=. Needed since these functions can now take
- more than two arguments
-
- * disassembler.jl: Update for op-mod/op-rem stuff
-
- * compiler.jl (compile-file): emit a validate-byte-code form
- * bytecodes.jl (bytecode-major, bytecode-minor): define
- instruction set described
-
-Thu Nov 20 19:07:24 1997 John Harper <john dcs warwick ac uk>
-
- * info.jl (info-find-node, info-read-dir): fixed a couple of
- minor bugs
-
-Wed Nov 19 10:32:03 1997 John Harper <john dcs warwick ac uk>
-
- * miranda.jl (miranda): new command; runs a Miranda session in
- the other view, prompting for the script to use beforehand.
-
- * summary.jl (summary-add-pending-op): now dispatches the
- function vector `after-marking'
- (summary-mark-delete): doesn't dispatch `after-marking' since
- the above change takes care of it
- (summary-quit): only bury the current buffer if the function
- vector `on-quit' doesn't exist; otherwise the `on-quit'
- function must handle everything
-
- * buffer-summary.jl (bs-quit): new function, bound to the
- summary's `on-quit' vector
- (buffer-summary): don't use goto-buffer to install the
- summary, to avoid the buffer-list being modified just use
- set-current-buffer
- (bs-select-item, bs-select-two-views): don't bury-buffer the
- summary, just call bs-quit
- (bs-mark-save): don't call summary-next-item, it's now called
- indirectly by add-pending-op (and the `after-marking' vector)
-
- * buffers.jl (open-buffer): new optional arg ALWAYS-CREATE.
- When t, an already-existing buffer is never returned.
-
- * compiler.jl (comp-warning): call add-buffer, if necessary,
- to add the compiler output buffer to each views list of buffers
- * gdb.jl, info.jl, rcs.jl, send-mail.jl, shell.jl: use
- open-buffer not make-buffer to create buffers; ensuring they're
- in the buffer-lists of all views.
-
- * prompt.jl (prompt-for-file): new optional arg HISTORY-LIST
-
- * maildefs.jl (prompt-for-folder): new function to prompt for
- a mail folder; uses its own history list and fills in defaults
- sensibly.
-
- * read-mail.jl (rm-next-undeleted-message,
- rm-previous-undeleted-message): commands to remove some of the
- overloading on rm-next-message and rm-previous-message
- (rm-next-message, rm-previous-message): the arg
- DONT-SKIP-DELETED has had the DONT- removed, and therefore the
- meaning reversed
- (rm-keymap): bind "s" to rm-output
- (read-mail-folder): use prompt-for-folder
- (rm-command-with-folder, rm-command-in-folder): macros to call
- a command in the folder buffer, used by rm-summary-keymap
-
- * rm-output.jl (rm-output): new command to save the next COUNT
- messages to another folder. Special action is taken if the
- destination folder is currently in a buffer; even more special
- action occurs if this buffer has read-mail-mode as its major
- mode (the new messages are added to the buffer's list of
- message structures). This hasn't really been tested yet.
-
-Sun Nov 16 01:27:32 1997 John Harper <john dcs warwick ac uk>
-
- * edit.jl (mouse-select): now handles views properly, i.e.
- activate the view that the mouse was clicked in
-
-Thu Nov 6 15:37:27 1997 John Harper <john dcs warwick ac uk>
-
- * print.jl (print-buffer, print-buffer-to-file,
- print-buffer-to-printer, print-area, print-area-to-file,
- print-area-to-printer): commands to print text, by default
- using the GNU `enscript' command.
-
- * prompt.jl (prompt-for-string): START arg wasn't being used
- correctly.
-
-Mon Nov 3 01:33:51 1997 John Harper <john dcs warwick ac uk>
-
- * edit.jl (mouse-select, mouse-double-select,
- mouse-select-drag): implement dragged selections
- * (global-keymap): new left mouse button bindings for
- drag-select
-
- * edit.jl (mark-block): does no extra refresh, it's not
- necessary anymore
- (mark-page): forces non-rectangular blocks
-
-Sun Nov 2 11:01:25 1997 John Harper <john dcs warwick ac uk>
-
- * read-mail.jl (rm-delete-messages): if we can't display the
- old current message; try to display the last message in the
- folder
-
-Sat Nov 1 12:54:05 1997 John Harper <john dcs warwick ac uk>
-
- * read-mail.jl (rm-build-message-struct, rm-update-flags):
- flags are now remembered via the "X-Jade-Flags-v1" header
- (rm-display-current-message): looks for a header matching the
- `mail-highlighted-headers' regexp, and highlights it
- * maildefs.jl (mail-highlighted-headers): regexp matching
- headers to highlight
- * rm-misc.jl (rm-reply, rm-forward): the callback functions to
- set the necessary flags work properly now
-
- * shell.jl (shell-command-on-area): new arg DELETEP which is
- passed to call-process-area. When INSERTP and DELETEP are both
- t output replaces the input region
- (shell-command-on-buffer): new command, similar to
- shell-command-on-area, but over the whole buffer.
-
- * loadkeys.jl (ctrl-x-keymap): bound `shell-command-on-buffer'
- to `Ctrl-x |'
-
-Tue Oct 28 15:09:17 1997 John Harper <john dcs warwick ac uk>
-
- * shell.jl (shell-command, shell-comand-on-area): commands to
- run shell commands in a user-friendly manner
-
- * loadkeys.jl (global-keymap): `M-!' and `M-|' bound to
- shell-command and shell-command-on-area respectively
-
- * rcs.jl (rcs-command): now directs error output to the *rcs*
- buffer no matter what the OUTPUT-STREAM parameter is
-
-Sun Oct 19 19:20:49 1997 John Harper <john dcs warwick ac uk>
-
- * loadkeys.jl: Bound sensible commands to "Insert"
- (overwrite-mode), "Home", "End", "Prior" and "Next".
-
- * tex-mode.jl: `Ctrl-c Ctrl-c m' now inserts "\emph{}", fixed
- some bugs in tex-insert-end and tex-insert-braces
-
-Thu Oct 16 15:33:35 1997 John Harper <john dcs warwick ac uk>
-
- * rm-misc.jl (rm-reply): now looks for a "Reply-To" header as
- it should, and ensures that the initialised message is marked
- as being unmodifed
-
-Wed Oct 15 23:15:43 1997 John Harper <john dcs warwick ac uk>
-
- * send-mail.jl (mail-setup, send-mail-signature): now
- inserts "\n-- \n" before signatures as it should do, instead
- of "\n--\n"
-
- * read-mail.jl (rm-enforce-msg-separator): now assumes that
- the cursor is at the position to insert at
-
- * rm-misc.jl (rm-burst-message, rm-really-burst-message): now
- works properly, and handles both RFC-934 _and_ RFC-1153
- encapsulation schemes; seems to work ok..
-
- * prompt.jl (prompt-validate-from-list): ensures that the
- symbol `t' is returned, not just any old t value
-
-Tue Oct 14 00:53:27 1997 John Harper <john dcs warwick ac uk>
-
- * summary.jl (summary-update-item): now calls after-update
- function after doing its stuff
-
- * rm-misc.jl (rm-forward): now quotes "^-" properly
- (rm-burst-message): new command to unburst digests, should
- also handle sensibly forwarded messages
-
- * read-mail.jl (rm-enforce-msg-separator): new function to
- ensure "\n\n" exists when inserting new messages. Minor other
- fixes.
-
-Sun Oct 12 21:06:30 1997 John Harper <john dcs warwick ac uk>
-
- * modes.jl (generic-forward-exp, generic-backward-exp): two
- functions to provide expression handling for many common types
- of code. Installed by default in mode-forward-exp and
- mode-backward-exp.
-
-Wed Oct 8 11:56:17 1997 John Harper <john dcs warwick ac uk>
-
- * tex-mode.jl: initial revision; a simple mode for editing TeX
- and LaTeX. Derived from texinfo.jl with the bonus that
- tex-insert-braces works properly with negative args.
-
- * modes.jl (mode-alist): added tex-mode, some other minor
- changes
-
-Tue Oct 7 12:10:23 1997 John Harper <john dcs warwick ac uk>
-
- * rcs.jl (rcs-initial-comment): new variable controlling if an
- initial description of a registered file is prompted for
- (rcs-command): new optional argument OUTPUT-STREAM
- (rcs-register-buffer, rcs-check-in-buffer, rcs-lock-buffer):
- now allow the revision number to be specified (by typing
- `Ctrl-u' before calling the command.)
- (rcs-view-revision): new command to display an arbitrary
- revision of the current buffer. Since stdout and stderr are
- linked when getting output from processes, this includes some
- unsightly header information.. (for now)
-
- * rcs-hooks.jl (rcs-keymap): moved here from rcs.jl so that the
- `Ctrl-x v ...' bindings work from startup
-
- * loadkeys.jl (global-keymap): `Ctrl-l' now bound to
- center-display not centre-display
-
- * prompt.jl (prompt-list-fold-case): new variable controlling
- whether or not prompt-complete-from-list and
- prompt-validate-from-list ignore case
-
- * info.jl (info-find-node): set info-file-name here; this
- seems to fix the weird history problem.
- (info-prompt): let prompt-list-fold-case be t
-
-Sun Oct 5 22:04:56 1997 John Harper <john dcs warwick ac uk>
-
- * read-mail.jl (rm-after-marking): won't move to the next
- message when it doesn't exist
-
-Fri Oct 3 11:28:34 1997 John Harper <john dcs warwick ac uk>
-
- * rm-misc.jl (rm-default-yank-function): fixed [yet] again,
- hopefully it now deletes only _blank_ trailing lines..
-
-Thu Oct 2 00:06:54 1997 John Harper <john dcs warwick ac uk>
-
- * read-mail.jl: don't search for mail-message-start in
- case-folding mode, this isn't a good idea
-
- * prompt.jl (prompt-complete-symbol): now regexp-quote's the
- word to be completed, this allows things like "let*" to work
- properly.
-
-Wed Oct 1 17:04:00 1997 John Harper <john dcs warwick ac uk>
-
- * summary.jl (summary-highlight-index): allows the
- highlighting of a single item (via the block marks).
- (after-update): new action
-
- * read-mail.jl: uses summary-highlight to mark the current
- message, not the "->" insertion.
-
- * send-mail.jl (send-mail-signature): now works properly when
- a signature already exists
-
- * read-mail.jl (rm-coalesce-visible-headers): when working on
- the headers end the restriction at the blank line following
- the last header. This prevents us hitting the end of the
- buffer when parsing the last header
-
- * rm-misc.jl (rm-default-yank-function): now properly deletes
- all trailing blank lines (not just empty lines)
-
- * summary.jl: added some more actions, after-marking,
- after-move, and on-quit. Removed the summary-after-execute
- hook since it was redundant.
-
- * buffer-summary.jl: defines an after-marking action that
- simply moves to the next item in the display
-
- * read-mail.jl: uses the after-marking action to move to the
- next message. If the current message was the one just marked,
- and rm-move-after-deleting is t select this message as well.
- Unfortunately this stops Ctrl-d moving backwards, have to fix
- this at some point
-
-Sun Sep 28 13:58:33 1997 John Harper <john dcs warwick ac uk>
-
- * buffer-summary.jl (bs-mark-save): advances to next item
- explicitly
-
- * info.jl (info-prompt): don't define prompt-word-regexps,
- they should be okay by default
-
- * prompt.jl: now does history recall, three history lists by
- default: files, symbols and others. Also some more support
- for default values, stored at history item -1. Alsi fixed M-?
- command, and bound it to M-/ as well
-
- * summary.jl (summary-unmark-item): new optional arg
- MOVE-AFTER-P; whether or not to move to the next item
- (summary-update-item): don't trash cursor position anymore
- (summary-mark-delete): move to the next item explicitly
-
- * read-mail.jl (rm-message-count): variable storing the number
- of messages in the folder
- (rm-keymap): fixed `d' and `Ctrl-d' bindings, added `N' and
- `P' bindings for moving through deleted messages, added `u'
- binding to unmark deleted messages
- (rm-last-folder): stores name of last read folder. Used when
- prompting for folders by read-mail-folder
- (rm-fix-status-info): function to set the minor-mode-names
- list to something describing the status of the current
- message; this isn't always updated when it should be yet
- (rm-summary-keymap): added `N' and `P' bindings, removed `d',
- `DEL' and `Ctrl-d' bindings; handled by summary.jl
-
- * send-mail.jl (mail-setup): promoted to be a command. Now
- displays the mail buffer while asking if it's okay to lose its
- contents. Calls the text-mode-hook to enable auto-fill or
- whatever
- * loadkeys.jl (ctrl-x-keymap): bound `x' to mail-setup
-
- * rcs.jl (rcs-callback-with-description): Made the mode line
- description a lot shorter so that it fits in the window. Also
- invoke text-mode
-
- * rm-misc.jl (rm-forward): new argument ALL-HEADERS-P, takes
- it value from the raw prefix argument. Controls whether all
- headers or just those that are visible are included. Also now
- leaves the cursor in the ^To: field when no recipients are
- specified
-
- * read-mail.jl (rm-summary-keymap): calls rm-forward with the
- prefix-arg
-
- * fill-mode.jl (fill-paragraph): first attempt at this. Not
- particularly robust yet
- * loadkeys.jl (global-keymap): `Meta-q' bound to
- fill-paragraph
-
- * edit.jl (forward-word): doesn't trash its POS argument
- anymore.
-
-Sat Sep 27 17:19:54 1997 John Harper <john dcs warwick ac uk>
-
- * debug.jl (debug-entry): let print-escape-newlines be t
-
- * edit.jl (capitalize-word): works more intuitively when COUNT
- is positive now.
-
-Fri Sep 26 15:21:52 1997 John Harper <john dcs warwick ac uk>
-
- * read-mail.jl (rm-auto-next-message, rm-move-after-deleting):
- two new configuration variables
- (rm-next-page, rm-previous-page): commands for paging
- (rm-mark-message-deletion): switches message afterwards
-
- * read-mail.jl: Added reply, followup and forward commands.
- Removed the rm-always-with-X macros; now includes each command
- in the summary buffer that needs to run in the folder with
- rm-with-folder.
- (rm-in-folder): new macro
- (rm-summary-buffer): don't set mildly-special buffer, instead
- destroy-buffer it manually on exit
-
- * send-mail.jl (mail-setup): Many fixes. Changed a lot of mail-
- symbol prefixes to send-mail-.
- Removed mail-buffer-in-use variable, inferred from whether the
- buffer is read-only
-
- * maildefs.jl (mail-yank-hooks, mail-reply-prefix,
- mail-fill-column): new variables
- (mail-parse-list): returns the list in the order the items
- actually occur
- (mail-find-header): can optionally specify the position to start
- searching
- (mail-get-header): when LISTP is t, will look for multiple headers
- of the same name
- (mail-insert-list): inserts a list of strings (separated by
- commas), filled to the mail-fill-column. New lines are indented a
- la RFC-822
-
- * edit.jl (forward-page,backward-page): don't move the cursor
- by default; only when optional third arg is non-nil
- (capitalize-word): now has a COUNT arg -- which word to change
- (transpose-lines): new command
- (delete-blank-lines): new command
-
- * loadkeys.jl (ctrl-x-keymap): "Ctrl-o" bound to
- delete-blank-lines, "Ctrl-t" bound to transpose-lines
-
-Thu Sep 25 11:25:22 1997 John Harper <john dcs warwick ac uk>
-
- * buffers.jl (fix-local-variables): fixed
-
- * maildefs.jl, read-mail.jl: try to be more intelligent when
- locating files
-
-Wed Sep 24 11:13:28 1997 John Harper <john dcs warwick ac uk>
-
- * maildefs.jl (mail-default-folder, mail-spool-files,
- movemail-program): new configuration variables. Note that
- movemail-program defaults to undefined.
- (mail-find-inboxes): returns a list of possible spool files
- for a particular mail folder
-
- * read-mail.jl: lots of new features; including the ability to
- read mail from spool files :-) Lots of other things that were
- needed before the thing is usable.
-
- * buffers.jl (goto-buffer): new optional argument VIEW,
- defining the view whose buffer should be changed
-
- * add-log.jl (add-change-log-entry): now surrounds the mail
- address with angled brackets
-
- * edit.jl (after-kill-hook): called after changing the
- kill-ring. Used under X11 to install the current-kill as the
- primary selection
- (yank): won't yank the current selection if it's owned by Jade
-
-Tue Sep 23 10:38:29 1997 John Harper (john dcs warwick ac uk)
-
- * edit.jl (page-regexp, forward-page, backward-page,
- mark-page, restrict-to-page): page handling code. Pages are
- delimited by ^L
- * loadkeys.jl (ctrl-x-keymap): `Ctrl-p' is mark-page,
- `[' is backward-page, ']' is forward-page
-
- * edit.jl (save-cursor): macro to preserve the current cursor
- position
- * lisp-mode.jl: added indentation hint for save-cursor
-
- * add-log.jl (change-log-address, change-log-name): removed
- these two variables, they're replaced by user-mail-address and
- (user-full-name) respectively
-
-Mon Sep 22 17:56:06 1997 John Harper (john gem dcs warwick ac uk)
-
- * loadkeys.jl (ctrl-x-n-keymap): new keymap, hooked to `Ctrl-x
- n'. Three commands "n" restrict to the current block, "w"
- unrestrict, and "p" restrict to a page (unimplemented)
-
-Mon Sep 22 00:13:43 1997 John Harper (john orcrist)
-
- * read-mail.jl: changed the way summaries are used. Now a
- summary buffer always exists for each mail buffer, but maybe
- not displayed. Also unified some of the summary/mail buffer
- commands
-
- * maildefs.jl (mail-display-summary): new option; displays a
- summary as soon as a mail buffer is entered
-
- * compiler.jl: Correctly handles macros defined after they're
- used. The compiler now does two passes through each file it
- compiles --- the first builds the macro environment, the
- second does the actual compilation
-
-Sun Sep 21 00:34:39 1997 John Harper (john orcrist)
-
- * send-mail.jl: new file provides means to send mail messages.
- Currently only via sendmail(8) but hooks allow customisation.
-
- * maildefs.jl: central definition of all mail configuration
- variables, both for reading and sending, and a few mail
- utility functions. I've tried to keep the configuration
- options as compatible with Emacs as possible.
-
- * read-mail.jl: moved configuration parameters to maildefs.jl
- Also added a `replied' attribute to the message structure;
- it's set when the message contains a ^Replied: header; how can
- this be made compatible with VM?
-
- * windows.jl (close-view, close-other-views): make sure that
- the minibuffer view isn't closed
-
- * edit.jl (save-restriction): new macro, preserves the current
- buffer's restriction
- * lisp-mode.jl: Added indentation hint for save-restriction
-
-Sat Sep 20 00:22:52 1997 John Harper (john orcrist)
-
- * c-mode.jl, lisp-mode.jl: minor changes for new regexp code
-
- * gdb.jl (gdb-redisplay-frame): doesn't redisplay the frame in
- the current view when it's a buffer running gdb; uses the
- other-view instead
-
- * read-mail.jl (mail-header-name): this variable is defined in
- both read-mail.jl and send-mail.jl
-
- * read-mail.jl: a couple of fixes for the new regexp code,
- also fixed the rm-summary-update-current function
-
-Fri Sep 19 00:49:09 1997 John Harper <john dcs warwick ac uk>
-
- * info.jl: a couple of minor fixes for the new regexp code
-
-Wed Sep 17 00:33:16 1997 John Harper (john orcrist)
-
- * read-mail.jl: added support for deleting messages; also now
- handles an empty folder
-
- * summary.jl: added `execute-start' and `execute-end' function
- vectors that surround the guts of summary-execute.
-
-Tue Sep 16 01:55:37 1997 John Harper (john orcrist)
-
- * summary.jl: removed `n' and `p' keybindings, leave them for
- customisation by the deriving summary modes
- (summary-update, summary-update-item): print the newline
- themselves now.
- * summary.jl: various other stuff
-
- * read-mail.jl: works a lot better now, the summary buffer
- works properly, tracking the mail buffer..
-
- * buffer-summary.jl (bs-print-item): doesn't print newline
-
-Sun Sep 14 00:21:53 1997 John Harper (john orcrist)
-
- * windows.jl (other-view): new optional argument LINES, how
- many lines to give a newly created view. Does nothing in the
- case that the other view already exists.
-
- * buffer-summary.jl (buffer-summary-mode): new function that
- only contains a documentation string, for the mode.
-
-Sat Sep 13 18:25:13 1997 John Harper (john orcrist)
-
- * summary.jl: new file provides a generic menu system.
- Somewhat like the buffer-menu, it can be customised to suit
- whatever is being represented underneath. For example it will
- be able to provide the summary view of the mail reader
-
- * buffer-summary.jl: new file, replicates what buffer-menu.jl
- does, but using summary.jl for all the complex stuff.
-
- * read-mail.jl: first go at a basic mail reader. Currently it
- just parsers BSD style mailboxes, doesn't manipulate them at
- all.
-
-Sun Sep 7 16:17:39 1997 John Harper (john orcrist)
-
- * buffers.jl (read-file-into-buffer): now clears the buffer
- before doing anything
-
- * info.jl: much updated. Now uses the restriction feature,
- which in turn allows compressed files to be read. May also be
- less brain-damaged on Info files without tag tables.
-
-Sat Sep 6 13:34:23 1997 John Harper (john orcrist)
-
- * gdb.jl: Now displays source code in a different view of the
- current window; not a different window
-
- * rcs.jl (rcs-command): when rereading the buffer try to
- preserve the current cursor position (in a particularly
- non-bullet-proof manner)
-
- * rcs.jl (rcs-down-history, rcs-up-history): functions (bound
- to Meta-p and Meta-n respectively) used in the RCS callback
- buffer to recall the previously entered descriptions
-
- * All files are now under RCS control except for autoload.jl
-
-Fri Sep 5 20:22:12 1997 John Harper (john orcrist)
-
- * rcs.jl (rcs-version): fixed version numbers containing zeros
- not being recognized (regexp [1-9] not [0-9]!)
-
- * rcs-hooks.jl: new file, contains the function installed in
- the open-file-hook to recognize RCS controlled files. This
- loads rcs.jl when the first is found.
-
- * rcs.jl (rcs-file-p): moved to rcs-hooks.jl
-
-Thu Sep 4 00:13:55 1997 John Harper (john orcrist)
-
- * ring.jl (set-ring-head): was setting the next free position,
- not the previously accessed slot
-
- * prompt.jl: now displays messages in the status line after
- the title message
-
-Wed Sep 3 20:39:34 1997 John Harper (john orcrist)
-
- * bytecodes.jl, compiler.jl, disassembler.jl: Moved all byte
- code definitions from the compiler to bytecodes.jl. Also many
- of the opcodes have been renamed. op-setq and op-set
- (previously op-vsetc and op-vset) now leave the set value on
- the stack.
-
-Tue Sep 2 23:43:49 1997 John Harper (john orcrist)
-
- * compiler.jl: uses the new bind-{buffer,view,window} opcodes
- when compiling with-{buffer,view,window} special forms.
- Also modified compilation of unwind-protect to use the new
- binding mechanism
-
- * disassembler.jl: updated for new opcodes
-
-Mon Sep 1 21:54:24 1997 John Harper (john orcrist)
-
- * lisp.jl (if, when, unless): new macros, defined in terms of
- cond.
-
- * compiler.jl: fine-tuned the comp-compile-cond function; this
- now produces exactly the same code as the specialist if, when
- and unless functions. This is why they're now macros
-
-Sun Aug 31 10:49:45 1997 John Harper (john orcrist)
-
- * buffer-menu.jl: now understands multiple views; defines
- the commands `1', `2', and `o' accordingly. Still displays
- itself in the current view, no matter what that is.
-
- * compiler.jl (op-viewp, op-swap-view, op-current-view,
- op-swap2): new opcodes. `swap2' makes the top of the stack
- be beneath the next two stack values. `swap-buffer' now
- takes two arguments the buffer and the current view, and
- leaves them both on the stack. This is incompatible with
- old code!
- (comp-top-level-compiled): added `with-view' to the list
- (comp-compile-with-form): meta function to compile
- `with-window' and `with-view'.
- (comp-compile-with-buffer): uses new form of swap-buffer.
-
- * disassembler.jl (dis-opcode-vector): added new instructions.
-
- * edit.jl (forward-word, word-start): tries to handle hitting
- the start of the buffer more gracefully.
-
- * edit.jl (x11-block-status-function): new function, added to
- the `block-status-hook' when in X11. It sets up the current
- block as the current primary selection when necessary.
-
- * edit.jl (kill-ring, kill-string, killed-string): the new
- variable `kill-ring' is a ring-buffer (see ring.jl) holding
- killed text.
- (yank, yank-rectangle, yank-next): now use the kill-ring;
- `yank-next' allows the contents of the kill-ring to be cycled
- through (but not with rectangles yet).
-
- * help.jl (help-setup): switches to the `other-view'
-
- * info.jl (info-prompt): uses the new minibuffer `prompt'
- instead of `prompt2'
-
- * init.jl: '(load prompt)' removed; the prompt functions are
- now autoloaded.
-
- * lisp-mode.jl: added hints for `with-view'
-
- * loadkeys.jl ("Meta-y"): bound to `yank-next'
- ("Ctrl-x 0", "Ctrl-x 1", "Ctrl-x 2", "Ctrl-x o"): now work
- with views
- ("Ctrl-x 4 ..."): now works in the `other-view'
-
- * ring.jl (make-ring, ring-capacity, ring-size, add-to-ring,
- get-from-ring, set-ring-head): New file, provides a ring-
- buffer type.
-
- * prompt.jl (prompt2): renamed as `prompt' and made to work
- with in the minibuffer view. Completions in a separate view.
- (prompt, prompt-for-directory, prompt-for-buffer,
- prompt-for-symbol, prompt-for-lisp, prompt-for-function,
- prompt-for-variable, prompt-for-command, prompt-for-string,
- prompt-for-number): all autoloaded now
-
- * prompt.jl (yes-or-no-p, y-or-n-p): moved here from ask.jl,
- both autoloaded anyway so makes no difference.
-
- * windows.jl (open-view, close-view, close-other-views,
- in-other-view, goto-other-view, other-view, goto-next-view):
- new functions to provide some level of interface to views.
- open and close should be used instead of make and destroy.
- (add-buffer, remove-buffer): now cycles through every view in
- every window, since `buffer-list' is now view-local.
-
-Mon Aug 25 00:42:24 1997 John Harper (john orcrist)
-
- * rcs.jl: New file providing a particularly simple interface
- to RCS. Do (require 'rcs) to install it.
-
-Sun Aug 24 20:43:30 1997 John Harper (john orcrist)
-
- * buffers.jl (read-file-into-buffer): new function, split off
- from open file to handle initialisation when loading a file.
- (revert-buffer): calls read-file-into-buffer
-
- * edit.jl (toggle-buffer-read-only): new function
- (toggle-read-only-function): new hook
-
- * buffers.jl (maybe-save-buffer): new function, asks whether or
- not to save a buffer if it contains unsaved modifications.
-
-Sun Jun 25 12:01:01 1995 John Harper (jsh orcrist)
-
- * gzip.jl (gzip-uncompress): Checks if a file exists before
- attempting to expand it -- this allows non-existent files with
- names ending in .gz or .Z to be edited properly.
-
-Tue Mar 21 16:33:04 1995 John Harper (jsh orcrist)
-
- * help.jl (help-prompt-keymap): Got rid of the incorrect
- `Ctrl-i' binding.
-
-Mon Mar 20 19:29:01 1995 John Harper (jsh orcrist)
-
- * text-mode.jl (word-count-area): New function to count the
- number of words in a region of text, bound to `Meta-=' in the
- text-mode-keymap.
-
-Fri Jan 13 18:07:56 1995 John Harper (jsh orcrist)
-
- * info.jl (info-parse-menu-line): Now ignores spaces between
- the name of the node and the `::' in a menu line.
-
-Thu Jan 12 16:19:21 1995 John Harper (jsh orcrist)
-
- * c-mode.jl (c-backslash-area): General fixes.
-
- * edit.jl (just-spaces): Doesn't miss the space at the
- beginning of a line anymore.
-
-Wed Jan 11 14:42:58 1995 John Harper (jsh orcrist)
-
- * info.jl (info-visit-file): Command to prompt for a file then
- load it into Info.
-
-Thu Jan 5 00:03:37 1995 John Harper (jsh orcrist)
-
- * loadkeys.jl: `Ctrl-x Ctrl-q' is now the key sequence to
- toggle read-only-ness
-
-Mon Jan 2 15:32:32 1995 John Harper (jsh orcrist)
-
- * loadmenus.jl: Changed the ``Print Keymap'' item to call the
- describe-keymap command
-
-Tue Dec 27 15:08:14 1994 John Harper (jsh orcrist)
-
- * xc.jl (xc-indent-pos): Doesn't recognize do_... as a `do while'
- statement anymore.
-
-Sat Dec 24 15:10:38 1994 John Harper (jsh orcrist)
-
- * c-mode.jl (c-backward-exp): Hopefully I've fixed the infinite
- loop which used to happen when the start of some files was reached.
-
-Wed Dec 21 00:18:28 1994 John Harper (jsh orcrist)
-
- * c-mode.jl (c-backward-exp): Doesn't get confused when it
- finds punctuation in the middle of an expression.
-
- * buffer-menu.jl: The key table now binds `LMB-Off' to `nop' to
- avoid it getting caught by the unbound-key-hook thing (and
- being really annoying).
-
- * edit.jl (nop): New command, does absolutely nothing.
-
-Tue Dec 13 20:56:11 1994 John Harper (jsh orcrist)
-
- * c-mode.jl (c-mode-ctrl-c-keymap): Now this binds `c-backslash-area'
- to `Ctrl-c Ctrl-\' as it should have done before
-
-Sat Nov 26 18:00:55 1994 John Harper (jsh orcrist)
-
- * fill-mode.jl: `RET' is also made to check whether the line
- needs to be broken, as well as `SPC'.
-
- * xc.jl (xc-indent-pos): Fixed the regexp used to match goto
- labels, it now checks the character after the colon to be
- white space of eol.
-
-Sun Nov 13 19:49:54 1994 John Harper (jsh orcrist)
-
- * compile.jl (compile): unless an argument is given the command is
- *always* prompted for. Whatever the command is that is eventually
- executed is, it's stored in the `compile-command' variable.
-
- * buffers.jl (revert-buffer): doesn't ask if you want to revert
- to the most recent auto-save; use `recover-file' to do that!
-
- * xc.jl (xc-indent-pos): now indents `{' properly (I fixed a
- couple of typos -- `exp-ind' for `exp-pos')
-
-Tue Nov 8 09:22:19 1994 John Harper (jsh orcrist)
-
- * lisp.jl (require): this can now be called interactively --
- it prompts for its first argument (the feature symbol).
-
-Mon Nov 7 17:47:43 1994 John Harper (jsh orcrist)
-
- * buffer-menu.jl (bm-list-buffers): now prints the mode name
- properly; i.e. chains through the list of minor mode names,
- printing each in turn.
-
- * fill-mode.jl (fill-mode-spc): takes account of the glyph
- position of the cursor, not the char position. Also the hack to
- auto indent indented-text-mode buffers properly works even if
- the previous line wasn't indented at all.
-
-Thu Oct 27 23:24:42 1994 John Harper (jsh orcrist)
-
- * asm-mode.jl: removed the `.' command. Also `RET' deletes
- any trailing TAB or SPC characters from the end of the line it
- breaks.
-
-Wed Oct 26 17:51:47 1994 John Harper (jsh orcrist)
-
- * gdb.jl (gdb): changed `kill-all-buffer-variables' to
- `kill-all-local-variables' -- now it works!
-
-Sun Oct 23 20:03:38 1994 John Harper (jsh orcrist)
-
- * compiler.jl: added some warnings
-
- * compiler.jl (compile-function): New command
-
-Fri Oct 7 15:12:56 1994 John Harper (jsh orcrist)
-
- * Version 3.2 released
-
-Wed Oct 5 16:31:39 1994 John Harper (jsh orcrist)
-
- * edit.jl (transpose-items): now this actually does what it
- says it does
-
-Tue Oct 4 00:33:37 1994 John Harper (jsh orcrist)
-
- * buffers.jl (fix-local-variables): new function; scans the
- end of a newly-loaded buffer for Emacs-style local variable
- definitions. Called from `open-file'.
-
-Mon Oct 3 17:59:44 1994 John Harper (jsh orcrist)
-
- * buffers.jl (recover-file): sets the `modified' flag
-
-Sun Oct 2 15:17:26 1994 John Harper (jsh orcrist)
-
- * fill-mode.jl (fill-mode-spc): this now auto-indents the newly
- created line when the major mode is indented-text-mode.
-
- * xc.jl: many improvements.
-
- * c-mode.jl (c-forward-exp, c-backward-exp): cpp lines don't
- count as an expression anymore
-
-Sat Oct 1 16:41:42 1994 John Harper (jsh orcrist)
-
- * modes.jl: expression functions now use word syntax if expressions
- aren't defined in the buffer
-
-Wed Sep 21 15:12:26 1994 John Harper (jsh orcrist)
-
- * c-mode.jl (c-forward-exp, c-backward-exp): minor fixups plus
- cpp lines are now recognised
-
-Tue Sep 13 20:55:14 1994 John Harper (jsh orcrist)
-
- * shell.jl: now sets the termcap environment variables correctly
-
-Sat Sep 3 15:23:02 1994 John Harper (jsh orcrist)
-
- * gzip.jl (gzip-insert-file): this hooks into `insert-file-hook'
- so inserted files can be decompressed
-
- * buffers.jl (insert-file): now calls the hook `insert-file-hook'
-
- * buffers.jl, gzip.jl: the read-file-hook now has to set the
- modtime of the buffer
-
-Thu Sep 1 20:12:18 1994 John Harper (jsh orcrist)
-
- * ask.jl (y-or-n-p): now resets its values in the proper buffer
-
-Wed Aug 31 20:26:36 1994 John Harper (jsh orcrist)
-
- * buffer-menu.jl (bm-select-buffer): now burys the buffer-menu
- buffer
-
- * loadkeys.jl, windows.jl (window-closed-hook): since this was
- renamed (from `close-gadget-hook') it's a good time to put it
- in a better place
-
-Tue Aug 30 11:05:09 1994 John Harper (jsh orcrist)
-
- * help.jl (describe-function): now prints a macro's arguments
- properly
-
-Tue Aug 23 17:51:19 1994 John Harper (jsh orcrist)
-
- * disassembler.jl (disassemble-fun): now knows about interactive
- declarations
-
- * compiler.jl, disassembler.jl (op-logxor-2): new opcode
-
-Thu Aug 18 16:29:30 1994 John Harper (jsh orcrist)
-
- * shell.jl (shell-start-process): the default output stream
- is now `(BUFFER . t)' not `BUFFER'
-
- * edit.jl (set-variable, show-variable): both removed;
- `set' can be called interactively and `describe-variable'
- can be used to see the value of a variable
-
-Tue Jul 19 16:56:46 1994 John Harper (jsh orcrist)
-
- * lisp.jl (eval-and-print): interactive version of eval
-
-Mon Jul 18 21:45:29 1994 John Harper (jsh orcrist)
-
- * edit.jl (transpose-items): new function to swap items of text
- defined by two functions
- (transpose-words, transpose-chars): commands using the above; bound
- to Meta-t and Ctrl-t respectively
- * modes.jl (transpose-exps): new command, bound to Ctrl-Meta-t
-
-Sun Jul 17 13:04:59 1994 John Harper (jsh orcrist)
-
- * edit.jl (just-one-space): renamed to `just-spaces', now
- takes a COUNT arg; the number of spaces wanted.
- (no-spaces): new command, bound to Meta-\
-
-Sat Jul 16 17:47:57 1994 John Harper (jsh orcrist)
-
- * compiler.jl (compile-file): only selected top-level forms are
- compiled -- those which may(?) benefit from it
-
-Wed Jul 13 18:19:35 1994 John Harper (jsh orcrist)
-
- * compiler.jl: added op-eql
-
-Tue Jul 12 13:06:14 1994 John Harper (jsh orcrist)
-
- * compiler.jl: many more opcodes added.
- * disassembler.jl: synchronised with the above additions
-
-Mon Jul 11 19:50:48 1994 John Harper (jsh orcrist)
-
- * c-mode.jl (c-backward-exp): better method of skipping comments;
- doesn't loop for ever anymore :-)
-
- * edit.jl: many more commands use the prefix argument now
- (kill-line): can now kill backwards and uses the prefix-arg to
- specify the number of lines to kill
-
-Wed Jul 6 19:45:35 1994 John Harper (jsh orcrist)
-
- * buffers.jl (buffer-list): removed, now in ../src/windows.c
-
-Tue Jul 5 18:19:40 1994 John Harper (jsh orcrist)
-
- * ask.jl (ask-yes-or-no): renamed as `yes-or-no-p'
- (ask-y-or-n): renamed as `y-or-n-p'
-
-Sun Jul 3 15:18:44 1994 John Harper (jsh orcrist)
-
- * debug.jl: now uses a (semi-) proper mode `debug-mode'
-
- * help.jl (describe-function): now prints the name of the function
- and, if it's not a subr, its argument specification
-
- * compiler.jl: defconst forms handled (more) properly now
-
- * All occurrences of `file-length', `file-name', `set-file-name',
- `file-start', `goto-file-start', `file-end' and `goto-file-end'
- have been replaced by their new names (see ../src/ChangeLog for
- more details).
-
-Fri Jul 1 17:52:41 1994 John Harper (jsh orcrist)
-
- * prompt.jl (prompt-file-exclude): under UNIX the `.' and `..'
- directory nodes are ignored
-
- * info.jl (info-find-node): uses the `inhibit-read-only' variable
- instead of manually calling `set-buffer-read-only' all the
- time.
-
-Thu Jun 30 21:59:20 1994 John Harper (jsh orcrist)
-
- * buffer-menu.jl: new file
-
-Tue Jun 28 15:03:20 1994 John Harper (jsh orcrist)
-
- * help.jl (describe-variable): takes the value of the variable from
- the buffer which was active when this command is called.
-
- * shell.jl (shell-whole-line): new option; shell-send-line sends the
- *whole* line.
-
-Fri Jun 24 21:46:46 1994 John Harper (jsh orcrist)
-
- * xc.jl: experimental indentation functions for C mode; these
- give much better indentation but are a tad slower...
-
-Thu Jun 23 20:33:41 1994 John Harper (jsh orcrist)
-
- * All packages which define esc keymaps have had them put into
- their main keymaps (with each key Meta-qualified).
-
-Tue Jun 21 22:12:29 1994 John Harper (jsh orcrist)
-
- * prompt.jl: attempts to only record undo information for user edits,
- not completions
-
-Sat Jun 18 18:21:31 1994 John Harper (jsh orcrist)
-
- * texinfo-mode.jl (texinfo-insert- end): now tries to find
- what is being ended.
-
- * c-mode.jl (c-forward-exp, c-backward-exp): expression handling
-
- * modes.jl (mode-indent-function, indent-area): hooks for
- doing indentation
- (mode-forward-exp, mode-backward-exp, forward-exp, backward-exp,
- kill-exp, backward-kill-exp): expression handling
-
-Thu Jun 16 21:22:56 1994 John Harper (jsh orcrist)
-
- * buffers.jl (mildly-special-buffer): controls whether kill-buffer
- will actually nuke a `special' buffer
-
-Wed Jun 15 19:46:55 1994 John Harper (jsh orcrist)
-
- * gdb.jl: interface to gdb; highlights the source of the current
- frame plus some other nice stuff
-
-Mon Jun 13 01:09:09 1994 John Harper (jsh orcrist)
-
- * shell.jl: simple interface to a shell subprocess
-
- * modes.jl (init-mode): tries -*-X-*- before mode-name
-
- * gzip.jl: provides editing of gzipped files
-
-Sun Jun 12 02:15:18 1994 John Harper (jsh orcrist)
-
- * buffers.jl (write-file-hook): order of arguments changed (to
- match read-file-hook
- (backup-file): new function
-
- * loadkeys.jl (user-keymap): keymap hung from `Ctrl-c', intended
- for user bindings
-
-Fri Jun 10 13:58:20 1994 John Harper (jsh orcrist)
-
- * latin-1.jl: This now looks like a minor mode. The function
- `latin-1-mode' toggles the Latin-1 character in *all* buffers.
-
- * lisp-mode.jl: functions to eval Lisp in a buffer now use sexps
- not paragraphs
- (lisp-forward-sexp, lisp-backward-sexp): now understands #<...>
- style expressions
- (lisp-indent-pos): now notices when there are no previous sexps to
- indent against.
-
- * keymap.jl (read-event): new function
- (describe-key): interactive command to print the command that is
- bound to an entered key sequence
-
-Thu Jun 9 22:13:27 1994 John Harper (jsh orcrist)
-
- * info.jl: where regexps are made with concat the necessary strings
- are regexp-quote'd
-
- * keymap.jl (print-keymap): function to print the contents of
- a list of keymaps
-
-Wed Jun 8 20:55:36 1994 John Harper (jsh orcrist)
-
- * help.jl (describe-variable): now works with unbound variables
-
-Tue Jun 7 20:32:18 1994 John Harper (jsh orcrist)
-
- * edit.jl (just-one-space): new command, bound to `ESC SPC'
-
-Mon Jun 6 19:55:58 1994 John Harper (jsh orcrist)
-
- * buffers.jl (write-file): new backup option `else-backup-by-copying'
- when it's unsafe to rename the file it's copied instead
-
- * add-log.jl (log-in-same-day-p): changed `substr' to `substring'
-
- * init.jl: uses file-concat to make the .jaderc file's path
-
- * modes.jl (mode-alist): fixed some case confusion
-
-Sun Jun 5 17:53:59 1994 John Harper (jsh orcrist)
-
- * lisp-mode.jl (lisp-indent-pos): rewritten, now this works properly!
-
-Sat Jun 4 19:29:19 1994 John Harper (jsh orcrist)
-
- * edit.jl (yank-to-mouse): new function, bound to the middle mouse
- button
-
- * buffers.jl (bury-buffer): new function
-
-Fri Jun 3 20:41:00 1994 John Harper (jsh orcrist)
-
- * edit.jl (kill-string, kill-area, copy-area-as-kill): new functions
- plus some other functions have been rewritten/created to use them
- (yank, yank-rectangle): new functions
-
- * info.jl (info-read-dir): deletes all lines before the first `file:'
- line
-
-Thu Jun 2 12:29:41 1994 John Harper (jsh orcrist)
-
- * Version 3.1 released
-
-Wed Jun 1 21:04:22 1994 John Harper (jsh orcrist)
-
- * info.jl (info-read-dir): discards the preamble of all supplementary
- dir files
-
-Wed May 25 20:52:31 1994 John Harper (jsh orcrist)
-
- * lisp-mode.jl (lisp-forward-sexp, lisp-backward-sexp): new functions
-
-Tue May 24 21:25:34 1994 John Harper (jsh orcrist)
-
- * disassembler.jl: now uses a lookup table to get the names of
- opcodes.
-
- * compiler.jl (compile-file): Compiles top-level forms now (except
- for defX and require). Also writes a header to the compiled file.
-
- * compiler.jl: Changed the names of the conditional jump instructions
-
-Mon May 23 19:16:16 1994 John Harper (jsh orcrist)
-
- * texinfo-mode.jl: TAB inserts spaces now
-
- * Changed lots of stuff to cope with coordinate origin at (0,0)
-
- * info.jl (info-locate-file): now tries the lowercase version of
- the filename
-
-Sun May 22 23:20:19 1994 John Harper (jsh orcrist)
-
- * info.jl (info-read-dir): function to read all `dir' files in the
- info-directory-list
-
-Sat May 21 19:57:51 1994 John Harper (jsh orcrist)
-
- * windows.jl (in-new-window, goto-new-window): new
-
- * modes.jl: support for inserting comments
-
- * help.jl (describe-mode): works now
-
- * asm-mode.jl: new file
-
-Thu May 19 21:40:29 1994 John Harper (jsh orcrist)
-
- * fill-mode.jl (fill-mode-spc): deletes the trailing space it leaves.
- (set-fill-column): now uses the glyph position of the cursor.
-
-Sun May 15 23:14:12 1994 John Harper (jsh orcrist)
-
- * compiler.jl (compile-file, compile-directory): now prompt for
- their argument if necessary. Also new instruction `return'.
-
- * replace.jl: new file, user commands for replacing, `replace-all'
- replaces all occurrences of a regexp after the cursor, and
- `query-replace' an Emacs style interactive replace. Both these
- commands work on regexps not strings.
-
-Sat May 14 18:47:31 1994 John Harper (jsh orcrist)
-
- * isearch.jl: new file, provides an Emacs'ish incremental search
-
-Thu May 12 20:42:57 1994 John Harper (jsh orcrist)
-
- * compiler.jl: bytes no longer have their high-bit set -- this
- means bigger arguments are possible. Generates forms which
- call `lisp-code2'.
-
-Wed May 11 00:02:10 1994 John Harper (jsh orcrist)
-
- * find-autoloads.jl: reorganised, also now copies any forms
- after the `;;;###autoload' marker.
-
-Tue May 10 23:28:41 1994 John Harper (jsh orcrist)
-
- * init.jl: `loadkeys.jl' is now loaded before `autoload.jl'
-
-Sun May 8 19:39:00 1994 John Harper (jsh orcrist)
-
- * info.jl: double-clicking the left mouse button selects menu
- items and xrefs.
-
-Sat May 7 13:55:37 1994 John Harper (jsh orcrist)
-
- * latin-1.jl: new file, makes the default glyph-table use Latin1
- character set
-
-Fri May 6 22:25:03 1994 John Harper (jsh orcrist)
-
- * buffers.jl (save-file-as): tried to delete the auto-save'd file
- itself, failed if it didn't exist
-
-Tue May 3 20:48:04 1994 John Harper (jsh orcrist)
-
- * Changed occurrences of `goto' to `goto-char' or `goto-glyph'
-
-Mon May 2 10:37:04 1994 John Harper (jsh orcrist)
-
- * debug.jl: changed keybindings
-
- * lisp.jl (format-string): renamed as format-to-string
- (prin1-to-string): new function
-
-Sun May 1 09:45:16 1994 John Harper (jsh orcrist)
-
- * prompt.jl (prompt-complete-filename): Discards files which match
- the regexp `prompt-file-exclude'
-
- * info.jl (info-parse-ref): didn't work if the *Note was the last
- thing on the line
-
- * find-autoloads.jl: new file
-
- * help.jl: `documentation' and `document-var' functions moved
- here from lisp.jl
-
- * lisp.jl (require): optional second arg, the file to load the
- feature from
-
-Sat Apr 30 21:40:11 1994 John Harper (jsh orcrist)
-
- * loadsyms.jl: renamed as autoload.jl, more sensible
-
- * compiler.jl (compile-directory): new arg, EXCLUDE-LIST
- (compile-lisp-lib): takes advantage of the above new arg to
- compile-directory
-
-Fri Apr 29 23:20:58 1994 John Harper (jsh orcrist)
-
- * info.jl (info-parse-menu-line): *another* bug fixed
-
- * server.jl: code to handle client/server stuff
-
-Fri Apr 29 11:32:56 1994 J.S.Harper (jsh raven ukc ac uk)
-
- * prompt.jl: You can now double click the lmb to select a completion
-
-Thu Apr 28 21:15:30 1994 John Harper (jsh orcrist)
-
- * info.jl (info-parse-menu-line): didn't allow punctuation in
- file names
-
-Thu Apr 28 10:59:05 1994 J.S.Harper (jsh raven ukc ac uk)
-
- * texinfo-mode.jl (texinfo-mode): now calls `text-mode-hook'
-
- * init.jl: now loads files properly
-
-Thu Apr 28 01:20:58 1994 John Harper (jsh orcrist)
-
- * text-mode.jl (text-mode-indent-tab): this works properly now
-
-Wed Apr 27 22:34:14 1994 John Harper (jsh orcrist)
-
- * edit.jl (overwrite-mode): moved from overwrite-mode.jl
-
-Tue Apr 26 01:04:18 1994 John Harper (jsh orcrist)
-
- * buffers.jl (auto-save-mode): minor-mode interface to toggle
- auto-saving buffers.
-
- * fill-mode.jl: new minor-mode
-
-Mon Apr 25 20:57:51 1994 John Harper (jsh orcrist)
-
- * overwrite-mode.jl: new minor-mode (the first!)
-
- * modes.jl (add-minor-mode, remove-minor-mode): support for minor-
- modes.
-
- * buffers.jl (write-file): remembers the modes of the file and resets
- them after the file has been saved.
-
-Sun Apr 24 11:33:30 1994 John Harper (jsh orcrist)
-
- * edit.jl (capitalize-word): new function, bound to `ESC c'
-
- * *-mode.jl: new way of working to allow the user to just call the
- mode's function, possibly when a different mode is already in effect.
- Every mode must check for a non-nil `major-mode-kill' when it starts,
- calling this function if necessary.
-
- * text-mode.jl: new file
-
- * help.jl (describe-variable): says whether var is buffer-local,
- window-local or global, and whether it's a constant.
-
- * add-log.jl: fixed problem of null strings not being treated as
- directories. Also added some defvar's to override the stuff that
- gets put into the header.
-
- * prompt.jl: When prompting for a file now copes with `~' characters
-
- * disassembler.jl (disassemble): sets `disk-tab' as well as `screen-tab'
-
- * info.jl (info-read-tags): didn't close the file it opened, this
- is now done in an unwind-protect for safety.
-
-Sat Apr 23 20:06:15 1994 John Harper (jsh orcrist)
-
- * lisp.jl (defvar, defconst): these are now special-forms
-
- * compiler.jl (comp-compile-file-form): now does macro-expansion
- of top-level forms.
-
- * info.jl (info-has-tags-p): new var, set when a tag-table is loaded.
- If a file doesn't have a tag-table the whole file is loaded. This is
- mainly so the `dir' file can be edited by hand.
- (info-directory-list): replaces `info-directory', a list of directorys
- to search.
- (info-parse-menu): didn't like punctuation in comments
- (info-goto-link, info-next-link, info-prev-link): for moving around
- menus and refs, bound to RET, TAB and SHIFT-TAB respectively.
- (info-parse-ref): new function to extract the guts of an xref
- (info-follow-ref): no menu yet, just finds the next ref
-
-Wed Apr 20 16:02:51 1994 John Harper (jsh orcrist)
-
- * Version 3.0 released
-
-Mon Apr 18 13:27:55 1994 John Harper (jsh deep)
-
- * c-mode.jl (c-indent-pos-empty): handles opening braces on the same
- line as the keyword now
-
-Sun Apr 17 19:40:05 1994 John Harper (jsh orcrist)
-
- * buffers.jl (write-buffer): now copes better with backup files,
- if `backup-by-copying' is non-nil the file is copied not renamed.
- Else, the file is only renamed if it won't damage anything.
-
-Sat Apr 16 14:04:45 1994 John Harper (jsh orcrist)
-
- * info.jl (info-find-node): Protection against info-file being
- modified while we're viewing it, if this happens it reloads the
- tags table.
-
- * info.jl (info): Doesn't always show `(dir)' if no NODE-NAME is
- given, uses the currently loaded node if one exists.
-
- * Added license notices at the beginning of all Lisp files
-
- * All instances of the string `jed' have been changed to `jade'. I
- decided to change its name since there is at least one other editor
- called jed.
-
-Fri Apr 15 16:14:48 1994 John Harper (jsh deep)
-
- * init.jl: Now sets the status line while initialising. Also
- loads `loadmenus' if necessary.
-
- * loadmenus.jl: New file, sets up a small menu strip, but only
- on Amigas
-
-Tue Apr 12 14:54:57 1994 John Harper (jsh orcrist)
-
- * lisp.jl (add-command-arg, clear-command-args, command-prompt): new
- functions -- provide a method of giving arguments to commands invoked
- with `ESC x'
-
- * edit.jl (mark-paragraph): now works properly on a paragraph boundary
-
- * prompt.jl: Now keeps a list of the buffers it's used so they
- can be recycled.
-
- * edit.jl: Rewrote word handling, now it works :)
-
-Mon Apr 11 16:12:05 1994 John Harper (jsh orcrist)
-
- * All occurrences of `make-*-variable' changed to `set-*-variable'
-
- * c-mode.jl, texinfo-mode.jl: Doesn't bother to redefine
- `paragraph-start' anymore.
-
- * edit.jl (prev-paragraph): Now goes to the start of the current
- paragraph, or start of previous one if already at start.
- (mark-paragraph): Marks line which ends paragraph as well.
- (paragraph-start): Deleted
-
- * lisp-mode.jl: Got rid of `lisp-interactive-mode' entry point, the
- only difference it had with `lisp-mode' was the name!
-
-Fri Apr 8 20:22:10 1994 John Harper (jsh orcrist)
-
- * loadsyms.jl: Removed `void-symbol-function'
-
-Tue Apr 05 19:34:24 1994 John Harper (jsh deep)
-
- * buffers.jl: New option `amiga-use-file-req-p' -- makes find-file
- and friends use the ASL file requester
-
-Sun Apr 3 17:12:21 1994 John Harper (jsh orcrist)
-
- * add-log.jl: Now asks for the directory whose ChangeLog should
- be updated.
-
-Thu Mar 24 09:51:07 1994 John Harper (jsh orcrist)
-
- * compiler.jl (comp-compile-body): Fixed for null lists (it
- wasn't incrementing the stack counter).
- (comp-compile-file-form): Now copes with doc-strings in defvar and
- defconst (ie, they're written to disk if necessary).
-
-Sat Mar 19 03:45:03 1994 John Harper (jsh orcrist)
-
- * info.jl: Braindead support for viewing info files
-
-Sat Mar 12 22:25:36 1994 John Harper (jsh orcrist)
-
- * compile.jl: Renamed `grep' to `grep-buffer'. New function
- `grep' which executes the program grep.
- * compile.jl: Error descriptions are now stored in the error-list
- * compile.jl: Some new options to `start-compile-command'
-
-Mon Mar 7 21:27:25 1994 John Harper (jsh orcrist)
-
- * compiler.jl: New options `comp-eval-constants-p' and
- `comp-write-docs-p'. New function `compile-lisp-lib'. General
- support for writing doc strings to the file.
-
-Sat Mar 5 01:21:35 1994 John Harper (jsh orcrist)
-
- * edit.jl: Various upcase/downcase functions to use the stuff
- noted below.
-
-Fri Mar 4 18:55:38 1994 John Harper (jsh orcrist)
-
- * loadkeys.jl: Lots of changes.
-
- * compile.jl: Variables to control extraction of error details.
- Also takes note of the directory that the compilation was run in.
-
- * c-mode.jl: Now handles if (etc) constructs which have a space
- between the keyword and the parenthesised expression.
-
-Sun Feb 27 20:48:56 1994 John Harper (jsh orcrist)
-
- * edit.jl: paragraph handling functions, `next-paragraph',
- `prev-paragraph', `paragraph-start', `mark-paragraph' and variable
- `paragraph-regexp'.
-
-Sat Feb 19 00:45:53 1994 John Harper (jsh orcrist)
-
- * debug.jl: Support for debugging errors and getting
- backtraces.
-
-Sat Feb 12 01:28:01 1994 John Harper (jsh orcrist)
-
- * c-mode.jl: Now handles `do' keyword properly.
-
-Thu Feb 10 03:15:12 1994 John Harper (jsh orcrist)
-
- * c-mode.jl: Now copes with empty lines and preprocessor
- directives. Still fairly braindead though.
-
-Sun Feb 6 01:25:15 1994 John Harper (jsh orcrist)
-
- * help.jl: No longer uses recursive-edit, just some deft
- keymap manipulation.
-
-Sat Feb 5 21:36:22 1994 John Harper (jsh orcrist)
-
- * buffers.jl, windows.jl: Made each window have its own
- `buffer-list'. This means some new functions, `add-buffer' and
- `remove-buffer'.
- * windows.jl: `window-list' variable -- list of all open windows.
diff --git a/lisp/Makefile.in b/lisp/Makefile.in
index 2d06220..8d50388 100644
--- a/lisp/Makefile.in
+++ b/lisp/Makefile.in
@@ -26,7 +26,7 @@ INSTALL_FILES = *.jl *.jlc
INSTALL_DIRS := . rep rep rep/lang rep/vm rep/vm/compiler rep/io \
rep/io/file-handlers rep/io/file-handlers/remote rep/i18n \
rep/data rep/www rep/util rep/mail rep/threads rep/system \
- rep/net rep/test rep/xml scheme unscheme
+ rep/net rep/test rep/xml
all : lisp
diff --git a/lisp/rep/user.jl b/lisp/rep/user.jl
index 097cf9b..6ba1758 100644
--- a/lisp/rep/user.jl
+++ b/lisp/rep/user.jl
@@ -51,13 +51,6 @@
(setq arg (car command-line-args))
(setq command-line-args (cdr command-line-args))
(do-load arg))
- ((member arg '("-s" "--scheme"))
- (setq arg (car command-line-args))
- (setq command-line-args (cdr command-line-args))
- (setq batch-mode t)
- (if (file-exists-p arg)
- (structure () (open scheme) (load arg '() 1 1))
- (structure () (open scheme) (load arg))))
((string= arg "--check")
(require 'rep.test.framework)
(run-self-tests-and-exit))
@@ -80,7 +73,6 @@ where OPTIONS are any of:
--load FILE load the file of Lisp forms called FILE
-l FILE
- --scheme FILE load the file of Scheme forms called FILE
-s FILE (implies --batch mode)
--check run self tests and exit
diff --git a/lisp/rep/vm/compiler.jl b/lisp/rep/vm/compiler.jl
index 0ac45a6..3f7af8d 100644
--- a/lisp/rep/vm/compiler.jl
+++ b/lisp/rep/vm/compiler.jl
@@ -68,8 +68,6 @@
;; map languages to compiler modules
(put 'rep 'compiler-module 'rep.vm.compiler.rep)
- (put 'scheme 'compiler-module 'rep.vm.compiler.scheme)
- (put 'unscheme 'compiler-module 'rep.vm.compiler.unscheme)
(put 'no-lang 'compiler-module 'rep.vm.compiler.no-lang)
;; since we default to rep langauge..
diff --git a/lisp/rep/vm/compiler/scheme.jl b/lisp/rep/vm/compiler/scheme.jl
deleted file mode 100644
index b3c6173..0000000
--- a/lisp/rep/vm/compiler/scheme.jl
+++ /dev/null
@@ -1,327 +0,0 @@
-#| scheme.jl -- inliners for compiling Scheme code
-
- $Id$
-
- Copyright (C) 2000 John Harper <john dcs warwick ac uk>
-
- This file is part of librep.
-
- librep is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- librep is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with librep; see the file COPYING. If not, write to
- the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
-|#
-
-;; XXX this is pretty much untested..
-
-(declare (unsafe-for-call/cc))
-
-(define-structure rep.vm.compiler.scheme ()
-
- (open rep
- rep.lang.doc
- scheme.syntax-funs
- rep.vm.compiler.modules
- rep.vm.compiler.utils
- rep.vm.compiler.basic
- rep.vm.compiler.inline
- rep.vm.compiler.lap
- rep.vm.compiler.bindings
- rep.vm.compiler.rep
- rep.vm.bytecodes)
-
- ;; List of side-effect-free functions. They should always return the
- ;; same value when given the same inputs. Used when constant folding.
- (define constant-functions
- '(not eqv? eq? equal? boolean? pair? car cdr caar cadr cdar cddr caaar
- caadr cadar caddr cdaar cdadr cddar cdddr null? list? length?
- list-tail list-ref memq memv member assq assv assoc symbol?
- symbol->string string->symbol number? complex? real? rational?
- integer? exact? inexact? = < > <= >= zero? positive? negative?
- odd? even? max min + * - / abs quotient remainder modulo gcd
- lcm numerator denominator floor ceiling truncate round rationalize
- exp log sin cos tan asin acos atan sqrt expt exact->inexact
- inexact->exact string->number number->string char=? char<? char>?
- char<=? char>=? char-ci=? char-ci<? char-ci>? char-ci<=? char-ci>=?
- char-alphabetic? char-numeric? char-whitespace? char-upper-case?
- char-lower-case? char->integer integer->char char-upcase char-downcase
- string? string-length string-ref string=? string-ci=? string<?
- string>? string<=? string>=? string-ci<? string-ci>? string-ci<=?
- string-ci>=? vector? vector-length vector-ref procedure?))
-
- ;; List of symbols, when the name of the function called by a top-level
- ;; form is one of these that form is compiled.
- (define top-level-compiled
- '(if cond when unless let let* letrec begin and or case))
-
-
-;;; pass 1 support
-
- (defun pass-1 (forms)
- (let loop ((rest forms)
- (out '()))
- (if (null rest)
- (nreverse out)
- (loop (cdr rest) (cons (do-pass-1 (car rest)) out)))))
-
- (defun do-pass-1 (form)
- (unless (or (eq (car form) 'define) (memq (car form) top-level-compiled))
- (setq form (compiler-macroexpand
- form (lambda (in out)
- (or (eq in out) (memq (car out) '(define begin))
- (memq (car out) top-level-compiled))))))
- (case (car form)
- ((define)
- (let ((name (cadr form)))
- (cond ((symbolp name)
- (remember-lexical-variable (compiler-constant-value name)))
- ((and (consp name) (symbolp (car name)))
- (remember-function (car name) (cdr name)))
- (t (compiler-error
- "invalid define statement: `%s'" form)))))
-
- ((begin)
- (setq form (cons 'begin (mapcar do-pass-1 (cdr form))))))
-
- form)
-
-
-;;; pass 2 support
-
- (defun pass-2 (forms)
- (let loop ((rest forms)
- (out '()))
- (if (null rest)
- (nreverse out)
- (loop (cdr rest) (cons (do-pass-2 (car rest)) out)))))
-
- (defun do-pass-2 (form)
- (cond ((eq (car form) 'define)
- (setq form (compile-define form)))
- ((eq (car form) 'begin)
- (cons 'begin (mapcar do-pass-2 (cdr form))))
- ((memq (car form) top-level-compiled)
- (setq form (compile-form form))))
- form)
-
- ;; XXX this is broken, e.g.: (define ((foo a) b) (+ a b))
- (defun compile-define (form)
- (let ((name (cadr form)))
- (if (symbolp name)
- `(define ,name
- ,(if (memq (car (nth 2 form)) top-level-compiled)
- (compile-form (nth 2 form))
- (nth 2 form)))
- `(define ,(car name)
- (make-closure
- ,(compile-lambda `(lambda ,(cdr name) ,@(cddr form)) (car name))
- ',(car name))))))
-
-
-;;; source code transformations
-
- ;; tells the constant-folder which functions can be removed
- (defun foldablep (name)
- (memq name constant-functions))
-
-
-;;; special compilers
-
- ;; module compilers from compiler-modules
- (put 'structure 'scheme-compile-fun compile-structure)
- (put 'define-structure 'scheme-compile-fun compile-define-structure)
- (put 'structure-ref 'scheme-compile-fun compile-structure-ref)
-
- (put 'quote 'scheme-compile-fun (get 'quote 'rep-compile-fun))
- (put '\#lambda 'scheme-compile-fun (get 'lambda 'rep-compile-fun))
- (put '\#progn 'scheme-compile-fun (get 'progn 'rep-compile-fun))
-
- (defun compile-set! (form)
- (let ((sym (nth 1 form))
- (val (nth 2 form)))
- (compile-form-1 val)
- (emit-insn '(dup))
- (increment-stack)
- (emit-varset sym)
- (note-binding-modified sym)
- (decrement-stack)))
- (put 'set! 'scheme-compile-fun compile-set!)
-
- (put '\#define 'scheme-compile-fun (get '%define 'rep-compile-fun))
-
- (defun compile-\#test (form)
- (compile-form-1 (cadr form))
- (emit-insn '(scm-test)))
- (put '\#test 'scheme-compile-fun compile-\#test)
-
- ;; this function is used to scan-out inner defines so that scheme let*
- ;; and letrec forms can be compiled by the standard rep translators
- (defun compile-let-form (form return-follows)
- (let loop ((body (nthcdr 2 form))
- (header '()))
- (if (eq (caar body) 'define)
- (loop (cdr body) (cons (parse-define (car body)) header))
- ((get (car form) 'rep-compile-fun)
- (if header
- `(,(car form) ,(cadr form)
- (letrec ,(nreverse header) ,@body))
- form) return-follows))))
-
- ;; compile let* specially to coalesce all bindings into a single frame
- (put 'let* 'scheme-compile-fun compile-let-form)
-
- ;; let can be compiled straight from its macro definition
-
- ;; compile letrec specially to handle tail recursion elimination
- (put 'letrec 'scheme-compile-fun compile-let-form)
-
- (put '\#cond 'scheme-compile-fun (get 'cond 'rep-compile-fun))
-
- ;; adapted from rep.vm.compiler.rep
- (defun compile-case (form #!optional return-follows)
- (let
- ((end-label (make-label)))
- (setq form (cdr form))
- (unless form
- (compiler-error "no key value in case statement"))
- ;; XXX if key is constant optimise case away..
- (compile-form-1 (car form))
- (setq form (cdr form))
- (while (consp form)
- (unless (consp form)
- (compiler-error "badly formed clause in case statement"))
- (let
- ((cases (caar form))
- (forms (cdar form))
- (next-label (make-label)))
- (cond ((consp cases)
- (emit-insn '(dup))
- (increment-stack)
- (if (consp (cdr cases))
- ;; >1 possible case
- (progn
- (compile-constant cases)
- (emit-insn '(memql)))
- ;; only one case, use eql
- (compile-constant (car cases))
- (emit-insn '(eql)))
- (decrement-stack)
- (emit-insn `(jn ,next-label))
- (decrement-stack))
- ((not (eq cases 'else))
- (compiler-error
- "badly formed clause in case statement")))
- (compile-body forms return-follows)
- (decrement-stack)
- (emit-insn `(jmp ,end-label))
- (fix-label next-label)
- (setq form (cdr form))))
- (increment-stack)
- (fix-label end-label)
- (emit-insn '(swap))
- (emit-insn '(pop))))
- (put 'case 'scheme-compile-fun compile-case)
-
- (define (compile-list-tail form)
- ((get 'nthcdr 'rep-compile-fun) `(nthcdr ,(nth 2 form) ,(nth 1 form))))
- (put 'list-tail 'scheme-compile-fun compile-list-tail)
-
- (define (compile-list-ref form)
- ((get 'nth 'rep-compile-fun) `(nth ,(nth 2 form) ,(nth 1 form))))
- (put 'list-ref 'scheme-compile-fun compile-list-ref)
-
- (defun do-predicate (form)
- (let* ((rep-fun (or (get (car form) 'scheme-compile-rep) (car form)))
- (rep-compiler (get rep-fun 'rep-compile-fun)))
- (rep-compiler (cons rep-fun (cdr form)))))
-
- (defun compile-predicate (form)
- (do-predicate form)
- (emit-insn '(test-scm)))
-
- (defun compile-nil-predicate (form)
- (do-predicate form)
- (emit-insn '(test-scm-f)))
-
- ;; set properties of scheme functions that are pseudonyms of rep fns
- (mapc (lambda (cell)
- (if (symbolp cell)
- (put cell 'scheme-compile-fun (get cell 'rep-compile-fun))
- (put (car cell) 'scheme-compile-fun
- (get (cdr cell) 'rep-compile-fun))
- (let ((op (get (cdr cell) 'rep-compile-opcode)))
- (when op
- (put (car cell) 'rep-compile-opcode op)))))
- '(list list* cons car cdr apply
- caar cadr cdar cddr caddr cadddr
- (set-car! . rplaca)
- (set-cdr! . rplacd)
- (string-set! . aset)
- (vector-set! . aset)
- (string-ref . aref)
- (vector-ref . aref)
- length
- (string-length . length)
- (vector-length . length)
- - + * / remainder modulo quotient max min floor ceiling
- truncate round exp log sin cos tan sqrt expt
- (string-copy . copy-sequence)
- (vector-copy . copy-sequence)))
-
- ;; set properties of scheme predicates that are just rep fns with
- ;; booleans mapped from rep->scheme
- (mapc (lambda (cell)
- (if (symbolp cell)
- (put cell 'scheme-compile-fun compile-predicate)
- (put (car cell) 'scheme-compile-fun compile-predicate)
- (put (car cell) 'scheme-compile-rep (cdr cell))))
- '((eqv? . eql)
- (eq? . eq)
- (equal? . equal)
- (pair? . consp)
- (null? . null)
- (symbol? . symbolp)
- (number? . numberp)
- = < > <= >=
- (zero? . zerop)
- (char=? . =)
- (char<? . <)
- (char>? . >)
- (char<=? . <=)
- (char>=? . >=)
- (string? . stringp)
- (string=? . =)
- (string<? . <)
- (string>? . >)
- (string<=? . <=)
- (string>=? . >=)
- (vector? . vectorp)
- (procedure? . functionp)))
-
- ;; set properties of scheme predicates that are just rep fns with
- ;; nil mapped to #f
- (mapc (lambda (cell)
- (if (symbolp cell)
- (put cell 'scheme-compile-fun compile-nil-predicate)
- (put (car cell) 'scheme-compile-fun compile-nil-predicate)
- (put (car cell) 'scheme-compile-rep (cdr cell))))
- '(memq memv member assq assoc))
-
- ;; setup properties to tell the compiler where to look for symbols
- ;; in the `scheme' package
- (unless (get 'scheme 'compiler-handler-property)
- (put 'scheme 'compiler-handler-property 'scheme-compile-fun)
- (put 'scheme 'compiler-transform-property 'scheme-compile-transform)
- (put 'scheme 'compiler-sequencer 'begin)
- (put 'scheme 'compiler-pass-1 pass-1)
- (put 'scheme 'compiler-pass-2 pass-2)
- (put 'scheme 'compiler-foldablep foldablep)))
diff --git a/lisp/rep/vm/compiler/unscheme.jl b/lisp/rep/vm/compiler/unscheme.jl
deleted file mode 100644
index e8709b1..0000000
--- a/lisp/rep/vm/compiler/unscheme.jl
+++ /dev/null
@@ -1,123 +0,0 @@
-#| unscheme.jl -- inliners for compiling unScheme code
-
- $Id$
-
- Copyright (C) 2000 John Harper <john dcs warwick ac uk>
-
- This file is part of librep.
-
- librep is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- librep is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with librep; see the file COPYING. If not, write to
- the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
-|#
-
-(define-structure rep.vm.compiler.unscheme ()
-
- (open rep
- rep.lang.doc
- rep.vm.compiler.modules
- rep.vm.compiler.utils
- rep.vm.compiler.basic
- rep.vm.compiler.inline
- rep.vm.compiler.lap
- rep.vm.compiler.bindings
- rep.vm.compiler.rep
- rep.vm.compiler.scheme
- rep.vm.bytecodes)
-
-
-;;; special compilers
-
- ;; module compilers from compiler-modules
- (put 'structure 'unscheme-compile-fun compile-structure)
- (put 'define-structure 'unscheme-compile-fun compile-define-structure)
- (put 'structure-ref 'unscheme-compile-fun compile-structure-ref)
-
- (put 'quote 'unscheme-compile-fun (get 'quote 'rep-compile-fun))
- (put '\#lambda 'unscheme-compile-fun (get 'lambda 'rep-compile-fun))
- (put '\#progn 'unscheme-compile-fun (get 'progn 'rep-compile-fun))
-
- (put 'set! 'unscheme-compile-fun (get 'set! 'scheme-compile-fun))
- (put '\#define 'unscheme-compile-fun (get '%define 'rep-compile-fun))
-
- ;; compile let* specially to coalesce all bindings into a single frame
- (put 'let* 'unscheme-compile-fun (get 'let* 'scheme-compile-fun))
-
- ;; let can be compiled straight from its macro definition
-
- ;; compile letrec specially to handle tail recursion elimination
- (put 'letrec 'unscheme-compile-fun (get 'letrec 'scheme-compile-fun))
-
- (put '\#cond 'unscheme-compile-fun (get 'cond 'rep-compile-fun))
- (put 'case 'unscheme-compile-fun (get 'case 'scheme-compile-fun))
-
- (put 'list-tail 'unscheme-compile-fun (get 'scheme-compile-fun 'list-tail))
- (put 'list-ref 'unscheme-compile-fun (get 'scheme-compile-fun 'list-ref))
-
- ;; set properties of scheme functions that are pseudonyms of rep fns
- (mapc (lambda (cell)
- (if (symbolp cell)
- (put cell 'unscheme-compile-fun (get cell 'rep-compile-fun))
- (put (car cell) 'unscheme-compile-fun
- (get (cdr cell) 'rep-compile-fun))
- (let ((op (get (cdr cell) 'rep-compile-opcode)))
- (when op
- (put (car cell) 'rep-compile-opcode op)))))
- '(list list* cons car cdr apply
- caar cadr cdar cddr caddr cadddr
- (set-car! . rplaca)
- (set-cdr! . rplacd)
- (string-set! . aset)
- (vector-set! . aset)
- (string-ref . aref)
- (vector-ref . aref)
- length
- (string-length . length)
- (vector-length . length)
- - + * / remainder modulo quotient max min floor ceiling
- truncate round exp log sin cos tan sqrt expt
- (string-copy . copy-sequence)
- (vector-copy . copy-sequence)
- (eqv? . eql)
- (eq? . eq)
- (equal? . equal)
- (pair? . consp)
- (null? . null)
- (symbol? . symbolp)
- (number? . numberp)
- = < > <= >=
- (zero? . zerop)
- (char=? . =)
- (char<? . <)
- (char>? . >)
- (char<=? . <=)
- (char>=? . >=)
- (string? . stringp)
- (string=? . =)
- (string<? . <)
- (string>? . >)
- (string<=? . <=)
- (string>=? . >=)
- (vector? . vectorp)
- (procedure? . functionp)
- memq memv member assq assoc))
-
- ;; setup properties to tell the compiler where to look for symbols
- ;; in the `unscheme' package
- (unless (get 'unscheme 'compiler-handler-property)
- (put 'unscheme 'compiler-handler-property 'unscheme-compile-fun)
- (put 'unscheme 'compiler-transform-property 'unscheme-compile-transform)
- (put 'unscheme 'compiler-sequencer 'begin)
- (put 'unscheme 'compiler-pass-1 (get 'scheme 'compiler-pass-1))
- (put 'unscheme 'compiler-pass-2 (get 'scheme 'compiler-pass-2))
- (put 'unscheme 'compiler-foldablep (get 'scheme 'compiler-foldablep))))
diff --git a/lisp/scheme.jl b/lisp/scheme.jl
deleted file mode 100644
index e45a36a..0000000
--- a/lisp/scheme.jl
+++ /dev/null
@@ -1,123 +0,0 @@
-#| scheme.jl -- foolish attempt to run Scheme code
-
- $Id$
-
- Copyright (C) 2000 John Harper <john dcs warwick ac uk>
-
- This file is part of librep.
-
- librep is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- librep is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with Jade; see the file COPYING. If not, write to
- the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
-|#
-
-;; the only things really missing from r5rs are macros and multiple
-;; values, r4rs should be reasonably okay
-
-;; other warts:
-
-;; (eq? 'FOO 'foo) => #f, guile also fails here
-;; `(..) => (backquote ..) not (quasiquote ..)
-;; no separate character type
-;; reader doesn't handle numbers like: 15#
-
-;; to test this, run the repl, then: ",new test" and ",open scheme"
-
-(define-structure scheme (export
-
- #f #t
-
- ;; syntax
-
- quote lambda if set! cond case and or
- let let* letrec begin do delay define
-
- ;; built-in procedures
-
- not eqv? eq? equal? boolean?
-
- pair? cons car cdr set-car! set-cdr!
- caar cadr cdar cddr
- caaar caadr cadar caddr
- cdaar cdadr cddar cdddr
- caaaar caaadr caadar caaddr
- cadaar cadadr caddar cadddr
- cdaaar cdaadr cdadar cdaddr
- cddaar cddadr cdddar cddddr
-
- null? list? list length append reverse
- list-tail list-ref memq memv member
- assq assv assoc
-
- symbol? symbol->string string->symbol
-
- number? complex? real? rational? integer?
- exact? inexact? = < > <= >= zero? positive?
- negative? odd? even? max min + * - /
- abs quotient remainder modulo gcd lcm
- numerator denominator floor ceiling
- truncate round rationalize exp log sin cos
- tan asin acos atan sqrt expt exact->inexact
- inexact->exact string->number number->string
-
- char? char=? char<? char>? char<=? char>=?
- char-ci=? char-ci<? char-ci>? char-ci<=?
- char-ci>=? char-alphabetic? char-numeric?
- char-whitespace? char-upper-case?
- char-lower-case? char->integer integer->char
- char-upcase char-downcase
-
- string? make-string string string-length
- string-ref string-set! string=? string-ci=?
- string<? string>? string<=? string>=?
- string-ci<? string-ci>? string-ci<=?
- string-ci>=? substring string-append
- string->list list->string string-copy
- string-fill!
-
- vector? make-vector vector vector-length
- vector-ref vector-set! vector->list
- list->vector vector-fill!
-
- procedure? apply map for-each force
- \#make-promise call-with-current-continuation
- call/cc dynamic-wind eval
- scheme-report-environment null-environment
- interaction-environment
-
- call-with-input-file call-with-output-file
- input-port? output-port? current-input-port
- current-output-port with-input-from-file
- with-output-to-file open-input-file
- open-output-file close-input-port
- close-output-port
-
- read read-char peek-char eof-object?
- write display newline write-char load
-
- ;; exported local kludges
- \#cond \#setq \#define \#progn \#test \#lambda
- backquote list* %load-suffixes)
- ((access rep)
- (open scheme.utils
- scheme.syntax
- scheme.data
- scheme.misc))
-
- (rep#%define \#cond rep#cond)
- (rep#%define \#setq rep#setq)
- (rep#%define \#define rep#%define)
- (rep#%define \#progn rep#progn)
- (rep#%define \#lambda rep#lambda)
- (rep#%define backquote rep#backquote)
- (rep#%define list* rep#list*))
diff --git a/lisp/scheme/data.jl b/lisp/scheme/data.jl
deleted file mode 100644
index 6629224..0000000
--- a/lisp/scheme/data.jl
+++ /dev/null
@@ -1,264 +0,0 @@
-#| data.jl -- data type functions
-
- $Id$
-
- Copyright (C) 2000 John Harper <john dcs warwick ac uk>
-
- This file is part of librep.
-
- librep is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- librep is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with Jade; see the file COPYING. If not, write to
- the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
-|#
-
-(define-structure scheme.data
-
- (export not eqv? eq? equal? boolean?
-
- pair? cons car cdr set-car! set-cdr!
- caar cadr cdar cddr
- caaar caadr cadar caddr
- cdaar cdadr cddar cdddr
- caaaar caaadr caadar caaddr
- cadaar cadadr caddar cadddr
- cdaaar cdaadr cdadar cdaddr
- cddaar cddadr cdddar cddddr
-
- null? list? list length append reverse
- list-tail list-ref memq memv member
- assq assv assoc
-
- symbol? symbol->string string->symbol
-
- number? complex? real? rational? integer?
- exact? inexact? = < > <= >= zero? positive?
- negative? odd? even? max min + * - /
- abs quotient remainder modulo gcd lcm
- numerator denominator floor ceiling
- truncate round rationalize exp log sin cos
- tan asin acos atan sqrt expt exact->inexact
- inexact->exact string->number number->string
-
- char? char=? char<? char>? char<=? char>=?
- char-ci=? char-ci<? char-ci>? char-ci<=?
- char-ci>=? char-alphabetic? char-numeric?
- char-whitespace? char-upper-case?
- char-lower-case? char->integer integer->char
- char-upcase char-downcase
-
- string? make-string string string-length
- string-ref string-set! string=? string-ci=?
- string<? string>? string<=? string>=?
- string-ci<? string-ci>? string-ci<=?
- string-ci>=? substring string-append
- string->list list->string string-copy
- string-fill!
-
- vector? make-vector vector vector-length
- vector-ref vector-set! vector->list
- list->vector vector-fill!)
-
- ((open rep scheme.utils)
- (access rep))
-
-;;; equivalence
-
- (define (not obj)
- (if (\#test obj) #f #t))
-
- (define eqv? (make-predicate eql))
- (define eq? (make-predicate eq))
- (define equal? (make-predicate equal))
-
- (define boolean? (make-predicate (lambda (obj) (rep#memq obj '(#f #t)))))
-
-;;; pairs (cons cells)
-
- (define pair? (make-predicate consp))
-
- (define set-car! rplaca)
- (define set-cdr! rplacd)
-
-;;; lists
-
- (define null? (make-predicate null))
-
- (define (list? x)
- (let loop ((slow x)
- (fast (cdr x)))
- (cond ((null slow) #t)
- ((rep#not (consp slow)) #f)
- ((eq slow fast) #f)
- (t (loop (cdr slow) (cddr fast))))))
-
- (define (list-tail lst i) (nthcdr i lst))
- (define (list-ref lst i) (nth i lst))
-
- (define memq (make-nil-predicate rep#memq))
- (define memv (make-nil-predicate rep#memql))
- (define member (make-nil-predicate rep#member))
-
- (define assq (make-nil-predicate rep#assq))
-
- (define (assv obj alist)
- (let loop ((rest alist))
- (cond ((null rest) #f)
- ((eql (caar rest) obj) (car rest))
- (t (loop (cdr rest))))))
-
- (define assoc (make-nil-predicate rep#assoc))
-
-;;; symbols
-
- (define (symbol? arg)
- (cond ((rep#memq arg '(#f #t)) #f)
- ((symbolp arg) #t)
- (t #f)))
-
- (define symbol->string symbol-name)
-
- (define (string->symbol name)
- (if (string= name "nil")
- 'nil
- (or (find-symbol name)
- ;; The copying is needed to pass test.scm..
- (intern (copy-sequence name)))))
-
-;;; numbers
-
- (define number? (make-predicate numberp))
- (define (complex? obj)
- (declare (unused obj))
- #t)
- (define real? (make-predicate realp))
- (define rational? (make-predicate rationalp))
- (define integer? (make-predicate integerp))
-
- (define exact? (make-predicate exactp))
- (define inexact? (make-predicate inexactp))
-
- (define = (make-predicate rep#=))
- (define < (make-predicate rep#<))
- (define > (make-predicate rep#>))
- (define <= (make-predicate rep#<=))
- (define >= (make-predicate rep#>=))
-
- (define zero? (make-predicate zerop))
- (define positive? (make-predicate positivep))
- (define negative? (make-predicate negativep))
- (define odd? (make-predicate oddp))
- (define even? (make-predicate evenp))
-
- (define (rationalize x y)
- (declare (unused x y))
- (error "rationalize is unimplemented"))
-
- (define string->number (make-nil-predicate rep#string->number))
-
-;;; characters
-
- (define char? (make-predicate fixnump))
-
- (define char=? =)
- (define char<? <)
- (define char>? >)
- (define char<=? <=)
- (define char>=? >=)
-
- ;; XXX slow...
- (define (char-ci=? . args) (apply char=? (mapcar char-upcase args)))
- (define (char-ci<? . args) (apply char<? (mapcar char-upcase args)))
- (define (char-ci>? . args) (apply char>? (mapcar char-upcase args)))
- (define (char-ci<=? . args) (apply char<=? (mapcar char-upcase args)))
- (define (char-ci>=? . args) (apply char>=? (mapcar char-upcase args)))
-
- (define char-alphabetic? (make-predicate alpha-char-p))
- (define char-numeric? (make-predicate digit-char-p))
- (define char-whitespace? (make-predicate space-char-p))
- (define char-upper-case? (make-predicate upper-case-p))
- (define char-lower-case? (make-predicate lower-case-p))
-
- (define char->integer identity)
- (define integer->char identity)
-
-;;; strings
-
- (define string? (make-predicate stringp))
-
- (define string concat)
- (define string-length length)
- (define string-ref aref)
- (define string-set! aset)
-
- (define string=? =)
- (define string<? <)
- (define string>? >)
- (define string<=? <=)
- (define string>=? >=)
-
- (define string-ci=? (make-predicate string-equal))
- (define string-ci<? (make-predicate string-lessp))
- (define string-ci>? (make-predicate
- (lambda args
- (rep#not (or (apply string-equal args)
- (apply string-lessp args))))))
- (define string-ci<=? (make-predicate
- (lambda args
- (or (apply string-lessp args)
- (apply string-equal args)))))
- (define string-ci>=? (make-predicate
- (lambda args
- (rep#not (apply string-lessp args)))))
-
- (define string-append concat)
-
- (define (string->list string)
- (let loop ((i (1- (length string)))
- (out nil))
- (if (rep#>= i 0)
- (loop (1- i) (cons (aref string i) out))
- out)))
-
- (define list->string concat)
-
- (define string-copy copy-sequence)
-
- (define (string-fill! string char)
- (let loop ((i (1- (length string))))
- (cond ((rep#>= i 0)
- (aset string i char)
- (loop (1- i))))))
-
-;;; vectors
-
- (define vector? (make-predicate vectorp))
-
- (define vector-length length)
- (define vector-ref aref)
- (define vector-set! aset)
-
- (define (vector->list vect)
- (let loop ((i (1- (length vect)))
- (out nil))
- (if (rep#>= i 0)
- (loop (1- i) (cons (aref vect i) out))
- out)))
-
- (define (list->vector lst)
- (apply vector lst))
-
- (define (vector-fill! vect char)
- (let loop ((i (1- (length vect))))
- (cond ((rep#>= i 0)
- (aset vect i char)
- (loop (1- i)))))))
diff --git a/lisp/scheme/misc.jl b/lisp/scheme/misc.jl
deleted file mode 100644
index 91daea6..0000000
--- a/lisp/scheme/misc.jl
+++ /dev/null
@@ -1,177 +0,0 @@
-#| misc.jl -- miscellaneous scheme support
-
- $Id$
-
- Copyright (C) 2000 John Harper <john dcs warwick ac uk>
-
- This file is part of librep.
-
- librep is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- librep is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with Jade; see the file COPYING. If not, write to
- the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
-|#
-
-(define-structure scheme.misc
-
- (export procedure? apply map for-each force
- \#make-promise call-with-current-continuation
- call/cc dynamic-wind eval
- scheme-report-environment null-environment
- interaction-environment
-
- call-with-input-file call-with-output-file
- input-port? output-port? current-input-port
- current-output-port with-input-from-file
- with-output-to-file open-input-file
- open-output-file close-input-port
- close-output-port
-
- read read-char peek-char eof-object?
- write display newline write-char
- load %load-suffixes)
-
- ((open rep
- scheme.utils
- rep.io.files
- rep.data.datums)
- (access rep.io.streams))
-
-;;; control features
-
- (define procedure? (make-predicate functionp))
-
- (define (map proc . lists)
- (if (null (cdr lists))
- (mapcar proc (car lists))
- (let loop ((out nil)
- (in lists))
- (if (car in)
- (loop (cons (apply proc (mapcar car in)) out)
- (mapcar cdr in))
- (nreverse out)))))
-
- (define (for-each proc . lists)
- (if (null (cdr lists))
- (mapc proc (car lists))
- (let loop ((in lists))
- (when (car in)
- (apply proc (mapcar car in))
- (loop (mapcar cdr in))))))
-
- (define (force promise) (promise))
-
- (define (\#make-promise thunk)
- (let ((result-ready nil)
- result)
- (lambda ()
- (unless result-ready
- (let ((x (thunk)))
- (unless result-ready
- (setq result-ready t)
- (setq result x))))
- result)))
-
- (define (eval form . env)
- (declare (unused env))
- (rep#eval form))
-
- ;; XXX support these (and in the above)
- (define (scheme-report-environment version)
- (declare (unused version))
- #f)
- (define (null-environment version)
- (declare (unused version))
- #f)
- (define (interaction-environment) #f)
-
-;;; input and output
-
- (define (call-with-input-file name proc)
- (let ((file (open-input-file name)))
- (prog1
- (proc file)
- (close-file file))))
-
- (define (call-with-output-file name proc)
- (let ((file (open-output-file name)))
- (prog1
- (proc file)
- (close-file file))))
-
- (define input-port? (make-predicate rep.io.streams#input-stream-p))
- (define output-port? (make-predicate rep.io.streams#output-stream-p))
-
- (define (current-input-port) standard-input)
- (define (current-output-port) standard-output)
-
- (define (with-input-from-file name thunk)
- (let ((standard-input (open-input-file name)))
- (prog1
- (thunk)
- (close-file standard-input))))
-
- (define (with-output-to-file name thunk)
- (let ((standard-output (open-output-file name)))
- (prog1
- (thunk)
- (close-file standard-output))))
-
- (define (open-input-file name) (open-file name 'read))
- (define (open-output-file name) (open-file name 'write))
-
- (define (close-input-port f)
- (unless (and (filep f) (null (file-binding f)))
- close-file))
- (define close-output-port close-input-port)
-
-;;; input
-
- (define eof-object (make-datum nil 'scheme-eof-object))
- (define-datum-printer 'scheme-eof-object
- (lambda (x s)
- (declare (unused x))
- (rep.io.streams#write s "#<scheme-eof>")))
-
- (define (read #!optional port)
- (condition-case nil
- (rep.io.streams#read port)
- (end-of-stream eof-object)))
-
- (define (read-char #!optional port)
- (or (rep.io.streams#read-char (or port standard-input)) eof-object))
-
- (define (peek-char #!optional port)
- (or (rep.io.streams#peek-char (or port standard-input)) eof-object))
-
- (define eof-object? (make-predicate (lambda (obj) (eq obj eof-object))))
-
-;;; output
-
- (define (write obj #!optional port)
- (rep.io.streams#format (or port standard-output) "%S" obj))
-
- (define (display obj #!optional port)
- (rep.io.streams#format (or port standard-output) "%s" obj))
-
- (define (newline #!optional port)
- (rep.io.streams#write (or port standard-output) #\newline))
-
- (define (write-char char #!optional port)
- (rep.io.streams#write (or port standard-output) char))
-
-;;; system interface
-
- ;; load-file doesn't search path or add suffixes. So it fits r5rs
- (define load load-file)
-
- (define %load-suffixes '(".scm" . ".scmc")))
diff --git a/lisp/scheme/syntax-funs.jl b/lisp/scheme/syntax-funs.jl
deleted file mode 100644
index e4a7d72..0000000
--- a/lisp/scheme/syntax-funs.jl
+++ /dev/null
@@ -1,174 +0,0 @@
-#| syntax-funs.jl -- syntax expansion functions
-
- $Id$
-
- Copyright (C) 2000 John Harper <john dcs warwick ac uk>
-
- This file is part of librep.
-
- librep is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- librep is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with Jade; see the file COPYING. If not, write to
- the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
-|#
-
-(define-structure scheme.syntax-funs
-
- (export parse-define
- expand-lambda
- expand-if
- expand-set!
- expand-cond
- expand-case
- expand-and
- expand-or
- expand-let
- expand-let*
- expand-letrec
- expand-do
- expand-delay
- expand-define)
-
- (open rep)
-
-;;; syntax
-
- ;; returns (VAR BODY) suitable for putting in a letrec
- (define (parse-define form)
- (let loop ((name (cadr form))
- (body (caddr form)))
- (if (symbolp name)
- `(,name ,body)
- (loop (car name) `(lambda ,(cdr name) ,body)))))
-
- (define (expand-lambda vars . body)
- (let (header)
- (while (eq (caar body) 'define)
- (setq header (cons (parse-define (car body)) header))
- (setq body (cdr body)))
- (if header
- `(\#lambda ,vars (letrec ,(nreverse header) ,@body))
- `(\#lambda ,vars ,@body))))
-
- (define (expand-if test consequent . alternative)
- (cond ((cdr alternative)
- (error "Scheme `if' only takes one else form"))
- (alternative
- `(\#cond ((\#test ,test) ,consequent)
- ('t ,(car alternative))))
- (t `(\#cond ((\#test ,test) ,consequent)))))
-
- (define (expand-set! variable expression)
- `(\#setq ,variable ,expression))
-
- (define (expand-cond . args)
- (let ((first (car args))
- (rest (cdr args)))
- (cond ((null args) '#f)
- ((eq (car first) 'else)
- `(begin ,@(cdr first)))
- ((eq (cadr first) '=>)
- (let ((tem (gensym)))
- `(let ((,tem ,(car first)))
- (if ,tem
- (,(caddr first) ,tem)
- ,@(and rest `((cond ,@rest)))))))
- (t `(if ,(car first)
- (begin ,@(cdr first))
- ,@(and rest `((cond ,@rest))))))))
-
- (define (expand-case key . clauses)
- (let ((tem (gensym)))
- (let loop ((body nil)
- (rest clauses))
- (if rest
- (let ((this (car rest)))
- (loop (cons (cond ((eq (car this) 'else) `(else ,@(cdr this)))
- ((cdar this)
- `((memv ,tem ',(car this)) ,@(cdr this)))
- (t `((eqv? ,tem ',(caar this)) ,@(cdr this))))
- body)
- (cdr rest)))
- `(let ((,tem ,key))
- (cond ,@(nreverse body)))))))
-
- (define (expand-or . args)
- (cond
- ((null args) '#f)
- ((null (cdr args)) (car args))
- (t (let ((tem (gensym)))
- `((lambda (,tem)
- (if ,tem ,tem (or ,@(cdr args))))
- ,(car args))))))
-
- (define (expand-and . args)
- (cond
- ((null args) '#t)
- ((null (cdr args)) (car args))
- (t `(cond (,(car args) (and ,@(cdr args))) (else #f)))))
-
- (define (expand-let . args)
- (let (fun vars values)
- (when (and (car args) (symbolp (car args)))
- ;; named let
- (setq fun (car args))
- (setq args (cdr args)))
- (setq vars (mapcar car (car args)))
- (setq values (mapcar cadr (car args)))
- (if fun
- ;; use the progn so the compiler notices the inner letrec
- ;; (else it will get macroexpanded away too soon)
- `(begin (letrec
- ((,fun (lambda ,vars ,@(cdr args))))
- (,fun ,@values)))
- `((lambda ,vars ,@(cdr args)) ,@values))))
-
- (define (expand-let* bindings . body)
- (if (null bindings)
- `((lambda () ,@body))
- `((lambda (,(caar bindings))
- (let* ,(cdr bindings) ,@body))
- ,(cadar bindings))))
-
- (define (expand-letrec bindings . body)
- (let ((vars (mapcar car bindings))
- (setters (mapcar (lambda (x) `(set! ,@x)) bindings))
- (initial (make-list (length bindings) ''())))
- (let loop ((header '())
- (body body))
- (if (eq (caar body) 'define)
- (loop (cons (parse-define (car body)) header) (cdr body))
- (if header
- `((lambda ,vars ,@setters
- (letrec ,(nreverse header) ,@body)) ,@initial)
- `((lambda ,vars ,@setters ,@body) ,@initial))))))
-
- (define (expand-do vars test . body)
- (let ((tem (gensym)))
- `(let ,tem ,(mapcar (lambda (var)
- (list (car var) (cadr var))) vars)
- (if ,(car test)
- (begin ,@(cdr test))
- (begin
- ,@body
- (,tem ,@(mapcar (lambda (var)
- (if (cddr var)
- (caddr var)
- (car var))) vars)))))))
-
- (define (expand-delay expression)
- `(\#make-promise (lambda () ,expression)))
-
- (define (expand-define . args)
- (if (symbolp (car args))
- (cons '\#define args)
- `(define ,(caar args) (lambda ,(cdar args) ,@(cdr args))))))
diff --git a/lisp/scheme/syntax.jl b/lisp/scheme/syntax.jl
deleted file mode 100644
index ba790fb..0000000
--- a/lisp/scheme/syntax.jl
+++ /dev/null
@@ -1,62 +0,0 @@
-#| scheme-syntax.jl -- syntax macros
-
- $Id$
-
- Copyright (C) 2000 John Harper <john dcs warwick ac uk>
-
- This file is part of librep.
-
- librep is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- librep is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with Jade; see the file COPYING. If not, write to
- the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
-|#
-
-;; ugh! rep's macros really suck when used across module boundaries..
-
-(define-structure scheme.syntax
-
- (export quote lambda if set! cond case
- and or let let* letrec begin do
- delay define)
-
- (open rep scheme.syntax-funs)
-
-;;; syntax
-
- (defmacro lambda args (apply expand-lambda args))
-
- (defmacro if args (apply expand-if args))
-
- (defmacro set! args (apply expand-set! args))
-
- (defmacro cond args (apply expand-cond args))
-
- (defmacro case args (apply expand-case args))
-
- (defmacro or args (apply expand-or args))
-
- (defmacro and args (apply expand-and args))
-
- (defmacro let args (apply expand-let args))
-
- (defmacro let* args (apply expand-let* args))
-
- (defmacro letrec args (apply expand-letrec args))
-
- (defmacro begin forms (cons '\#progn forms))
-
- (defmacro do args (apply expand-do args))
-
- (defmacro delay args (apply expand-delay args))
-
- (defmacro define args (apply expand-define args)))
diff --git a/lisp/scheme/utils.jl b/lisp/scheme/utils.jl
deleted file mode 100644
index 11d85fe..0000000
--- a/lisp/scheme/utils.jl
+++ /dev/null
@@ -1,48 +0,0 @@
-#| utils.jl -- misc functions
-
- $Id$
-
- Copyright (C) 2000 John Harper <john dcs warwick ac uk>
-
- This file is part of librep.
-
- librep is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- librep is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with Jade; see the file COPYING. If not, write to
- the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
-|#
-
-(define-structure scheme.utils
-
- (export #f #t \#test
- make-predicate
- make-nil-predicate)
-
- (open rep)
-
- (defconst #f #f)
- (defconst #t #t)
-
- ;; given a scheme boolean, convert to a rep boolean
- (define (\#test value) (not (eq value #f)))
-
- ;; create a scheme predicate from the rep predicate PRED
- (define (make-predicate pred)
- (lambda args
- (if (apply pred args) #t #f)))
-
- ;; create a scheme `pseudo-predicate' from the rep `pseudo-predicate'
- ;; PRED. `pseudo-predicate' means that it returns false or an
- ;; interesting non-false value
- (define (make-nil-predicate pred)
- (lambda args
- (cond ((apply pred args)) (t #f)))))
diff --git a/lisp/unscheme.jl b/lisp/unscheme.jl
deleted file mode 100644
index d54a7c7..0000000
--- a/lisp/unscheme.jl
+++ /dev/null
@@ -1,115 +0,0 @@
-#| unscheme.jl -- cross between scheme and rep
-
- $Id$
-
- Copyright (C) 2000 John Harper <john dcs warwick ac uk>
-
- This file is part of librep.
-
- librep is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- librep is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with librep; see the file COPYING. If not, write to
- the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
-|#
-
-;; The idea here is to make a Scheme-like language that fits better
-;; with the rep environment. This is not, and does not claim to be,
-;; standards compliant Scheme!
-
-;; The various aberrations that have been introduced are:
-
-;; #f => ()
-;; #t => t
-;; (eq? #f '()) => #t
-;; (boolean? '()) => #t
-;; (list? #f) => #t
-;; (eq? 'FOO 'foo) => #f
-;; no separate character type
-
-;; and maybe others. But there is a reason for this -- `unscheme' code
-;; is able to painlessly call rep code, and vice versa, whereas
-;; programs using the stricter `scheme' module cannot do this. It also
-;; enables programs to compile down to more efficient byte-code
-
-(define-structure unscheme
-
- (export
-
- #f #t
-
- ;; syntax
-
- quote lambda if set! cond case and or let let* letrec begin do
- delay define
-
- ;; built-in procedures
-
- not eqv? eq? equal? boolean?
-
- pair? cons car cdr set-car! set-cdr! caar cadr cdar cddr caaar
- caadr cadar caddr cdaar cdadr cddar cdddr caaaar caaadr caadar
- caaddr cadaar cadadr caddar cadddr cdaaar cdaadr cdadar cdaddr
- cddaar cddadr cdddar cddddr
-
- null? list? list length append reverse list-tail list-ref memq
- memv member assq assv assoc
-
- symbol? symbol->string string->symbol
-
- number? complex? real? rational? integer? exact? inexact? = < > <=
- >= zero? positive? negative? odd? even? max min + * - / abs
- quotient remainder modulo gcd lcm numerator denominator floor
- ceiling truncate round rationalize exp log sin cos tan asin acos
- atan sqrt expt exact->inexact inexact->exact string->number
- number->string
-
- char? char=? char<? char>? char<=? char>=? char-ci=? char-ci<?
- char-ci>? char-ci<=? char-ci>=? char-alphabetic? char-numeric?
- char-whitespace? char-upper-case? char-lower-case? char->integer
- integer->char char-upcase char-downcase
-
- string? make-string string string-length string-ref string-set!
- string=? string-ci=? string<? string>? string<=? string>=?
- string-ci<? string-ci>? string-ci<=? string-ci>=? substring
- string-append string->list list->string string-copy string-fill!
-
- vector? make-vector vector vector-length vector-ref vector-set!
- vector->list list->vector vector-fill!
-
- procedure? apply map for-each force \#make-promise
- call-with-current-continuation call/cc dynamic-wind eval
- scheme-report-environment null-environment interaction-environment
-
- call-with-input-file call-with-output-file input-port?
- output-port? current-input-port current-output-port
- with-input-from-file with-output-to-file open-input-file
- open-output-file close-input-port close-output-port
-
- read read-char peek-char eof-object? write display newline
- write-char load
-
- ;; exported local kludges
- \#cond \#setq \#define \#progn \#lambda backquote list*
- %load-suffixes)
-
- ((access rep)
- (open unscheme.syntax
- unscheme.data
- unscheme.misc))
-
- (rep#%define \#cond rep#cond)
- (rep#%define \#setq rep#setq)
- (rep#%define \#define rep#%define)
- (rep#%define \#progn rep#progn)
- (rep#%define \#lambda rep#lambda)
- (rep#%define backquote rep#backquote)
- (rep#%define list* rep#list*))
diff --git a/lisp/unscheme/data.jl b/lisp/unscheme/data.jl
deleted file mode 100644
index 583530c..0000000
--- a/lisp/unscheme/data.jl
+++ /dev/null
@@ -1,248 +0,0 @@
-#| data.jl -- data type functions
-
- $Id$
-
- Copyright (C) 2000 John Harper <john dcs warwick ac uk>
-
- This file is part of librep.
-
- librep is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- librep is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with Jade; see the file COPYING. If not, write to
- the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
-|#
-
-(define-structure unscheme.data
-
- (export #f #t not eqv? eq? equal? boolean?
-
- pair? cons car cdr set-car! set-cdr!
- caar cadr cdar cddr
- caaar caadr cadar caddr
- cdaar cdadr cddar cdddr
- caaaar caaadr caadar caaddr
- cadaar cadadr caddar cadddr
- cdaaar cdaadr cdadar cdaddr
- cddaar cddadr cdddar cddddr
-
- null? list? list length append reverse
- list-tail list-ref memq memv member
- assq assv assoc
-
- symbol? symbol->string string->symbol
-
- number? complex? real? rational? integer?
- exact? inexact? = < > <= >= zero? positive?
- negative? odd? even? max min + * - /
- abs quotient remainder modulo gcd lcm
- numerator denominator floor ceiling
- truncate round rationalize exp log sin cos
- tan asin acos atan sqrt expt exact->inexact
- inexact->exact string->number number->string
-
- char? char=? char<? char>? char<=? char>=?
- char-ci=? char-ci<? char-ci>? char-ci<=?
- char-ci>=? char-alphabetic? char-numeric?
- char-whitespace? char-upper-case?
- char-lower-case? char->integer integer->char
- char-upcase char-downcase
-
- string? make-string string string-length
- string-ref string-set! string=? string-ci=?
- string<? string>? string<=? string>=?
- string-ci<? string-ci>? string-ci<=?
- string-ci>=? substring string-append
- string->list list->string string-copy
- string-fill!
-
- vector? make-vector vector vector-length
- vector-ref vector-set! vector->list
- list->vector vector-fill!)
-
- ((open rep)
- (access rep))
-
- (defconst #f ())
- (defconst #t t)
-
-;;; equivalence
-
- (define eqv? eql)
- (define eq? eq)
- (define equal? equal)
-
- (define (boolean? obj) (and (memq obj '(() t #f #t)) #t))
-
-;;; pairs (cons cells)
-
- (define pair? consp)
-
- (define set-car! rplaca)
- (define set-cdr! rplacd)
-
-;;; lists
-
- (define null? null)
-
- (define (list? x)
- (let loop ((slow x)
- (fast (cdr x)))
- (cond ((null slow) #t)
- ((not (consp slow)) #f)
- ((eq slow fast) #f)
- (t (loop (cdr slow) (cddr fast))))))
-
- ;; XXX return nil if I > (length LST)
- (define (list-tail lst i) (nthcdr i lst))
- (define (list-ref lst i) (nth i lst))
-
- (define memv memql)
-
- (define (assv obj alist)
- (let loop ((rest alist))
- (cond ((null rest) #f)
- ((eql (caar rest) obj) (car rest))
- (t (loop (cdr rest))))))
-
-;;; symbols
-
- (define (symbol? arg)
- (cond ((memq arg '(#f #t)) #f)
- ((symbolp arg) #t)
- (t #f)))
-
- (define symbol->string symbol-name)
-
- (define (string->symbol name)
- (if (string= name "nil")
- 'nil
- (or (find-symbol name)
- ;; The copying is needed to pass test.scm..
- (intern (copy-sequence name)))))
-
-;;; numbers
-
- (define number? numberp)
- (define (complex? obj)
- (declare (unused obj))
- #t)
- (define real? realp)
- (define rational? rationalp)
- (define integer? integerp)
-
- (define exact? exactp)
- (define inexact? inexactp)
-
- (define zero? zerop)
- (define positive? positivep)
- (define negative? negativep)
- (define odd? oddp)
- (define even? evenp)
-
- (define (rationalize x y)
- (declare (unused x y))
- (error "rationalize is unimplemented"))
-
-;;; characters
-
- (define char? fixnump)
-
- (define char=? =)
- (define char<? <)
- (define char>? >)
- (define char<=? <=)
- (define char>=? >=)
-
- ;; XXX slow...
- (define (char-ci=? . args) (apply char=? (mapcar char-upcase args)))
- (define (char-ci<? . args) (apply char<? (mapcar char-upcase args)))
- (define (char-ci>? . args) (apply char>? (mapcar char-upcase args)))
- (define (char-ci<=? . args) (apply char<=? (mapcar char-upcase args)))
- (define (char-ci>=? . args) (apply char>=? (mapcar char-upcase args)))
-
- (define char-alphabetic? alpha-char-p)
- (define char-numeric? digit-char-p)
- (define char-whitespace? space-char-p)
- (define char-upper-case? upper-case-p)
- (define char-lower-case? lower-case-p)
-
- (define char->integer identity)
- (define integer->char identity)
-
-;;; strings
-
- (define string? stringp)
-
- (define string concat)
- (define string-length length)
- (define string-ref aref)
- (define string-set! aset)
-
- (define string=? =)
- (define string<? <)
- (define string>? >)
- (define string<=? <=)
- (define string>=? >=)
-
- (define string-ci=? string-equal)
- (define string-ci<? string-lessp)
- (define string-ci>? (lambda args
- (not (or (apply string-equal args)
- (apply string-lessp args)))))
- (define string-ci<=? (lambda args
- (or (apply string-lessp args)
- (apply string-equal args))))
- (define string-ci>=? (lambda args
- (not (apply string-lessp args))))
-
- (define string-append concat)
-
- (define (string->list string)
- (let loop ((i (1- (length string)))
- (out nil))
- (if (>= i 0)
- (loop (1- i) (cons (aref string i) out))
- out)))
-
- (define list->string concat)
-
- (define string-copy copy-sequence)
-
- (define (string-fill! string char)
- (let loop ((i (1- (length string))))
- (cond ((>= i 0)
- (aset string i char)
- (loop (1- i))))))
-
-;;; vectors
-
- (define vector? vectorp)
-
- (define vector-length length)
- (define vector-ref aref)
- (define vector-set! aset)
-
- (define (vector->list vect)
- (let loop ((i (1- (length vect)))
- (out nil))
- (if (>= i 0)
- (loop (1- i) (cons (aref vect i) out))
- out)))
-
- (define (list->vector lst)
- (apply vector lst))
-
- (define (vector-fill! vect char)
- (let loop ((i (1- (length vect))))
- (cond ((>= i 0)
- (aset vect i char)
- (loop (1- i)))))))
diff --git a/lisp/unscheme/misc.jl b/lisp/unscheme/misc.jl
deleted file mode 100644
index dab5560..0000000
--- a/lisp/unscheme/misc.jl
+++ /dev/null
@@ -1,172 +0,0 @@
-#| misc.jl -- miscellaneous scheme support
-
- $Id$
-
- Copyright (C) 2000 John Harper <john dcs warwick ac uk>
-
- This file is part of librep.
-
- librep is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- librep is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with Jade; see the file COPYING. If not, write to
- the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
-|#
-
-(define-structure unscheme.misc
-
- (export procedure? apply map for-each force
- \#make-promise call-with-current-continuation
- call/cc dynamic-wind eval
- scheme-report-environment null-environment
- interaction-environment
-
- call-with-input-file call-with-output-file
- input-port? output-port? current-input-port
- current-output-port with-input-from-file
- with-output-to-file open-input-file
- open-output-file close-input-port
- close-output-port
-
- read read-char peek-char eof-object?
- write display newline write-char
- load %load-suffixes)
-
- ((open rep
- rep.io.files
- rep.data.datums)
- (access rep.io.streams))
-
-;;; control features
-
- (define procedure? functionp)
-
- (define (map proc . lists)
- (if (null (cdr lists))
- (mapcar proc (car lists))
- (let loop ((out nil)
- (in lists))
- (if (car in)
- (loop (cons (apply proc (mapcar car in)) out)
- (mapcar cdr in))
- (nreverse out)))))
-
- (define (for-each proc . lists)
- (if (null (cdr lists))
- (mapc proc (car lists))
- (let loop ((in lists))
- (when (car in)
- (apply proc (mapcar car in))
- (loop (mapcar cdr in))))))
-
- (define (force promise) (promise))
-
- (define (\#make-promise thunk)
- (let ((result-ready nil)
- result)
- (lambda ()
- (unless result-ready
- (let ((x (thunk)))
- (unless result-ready
- (setq result-ready t)
- (setq result x))))
- result)))
-
- ;; XXX support these
- (define (scheme-report-environment version)
- (declare (unused version))
- nil)
- (define (null-environment version)
- (declare (unused version))
- nil)
- (define (interaction-environment) nil)
-
-;;; input and output
-
- (define (call-with-input-file name proc)
- (let ((file (open-input-file name)))
- (prog1
- (proc file)
- (close-file file))))
-
- (define (call-with-output-file name proc)
- (let ((file (open-output-file name)))
- (prog1
- (proc file)
- (close-file file))))
-
- (define input-port? rep.io.streams#input-stream-p)
- (define output-port? rep.io.streams#output-stream-p)
-
- (define (current-input-port) standard-input)
- (define (current-output-port) standard-output)
-
- (define (with-input-from-file name thunk)
- (let ((standard-input (open-input-file name)))
- (prog1
- (thunk)
- (close-file standard-input))))
-
- (define (with-output-to-file name thunk)
- (let ((standard-output (open-output-file name)))
- (prog1
- (thunk)
- (close-file standard-output))))
-
- (define (open-input-file name) (open-file name 'read))
- (define (open-output-file name) (open-file name 'write))
-
- (define (close-input-port f)
- (unless (and (filep f) (null (file-binding f)))
- close-file))
- (define close-output-port close-input-port)
-
-;;; input
-
- (define eof-object (make-datum nil 'scheme-eof-object))
- (define-datum-printer 'scheme-eof-object
- (lambda (x s)
- (declare (unused x))
- (rep.io.streams#write s "#<scheme-eof>")))
-
- (define (read #!optional port)
- (condition-case nil
- (rep.io.streams#read port)
- (end-of-stream eof-object)))
-
- (define (read-char #!optional port)
- (or (rep.io.streams#read-char (or port standard-input)) eof-object))
-
- (define (peek-char #!optional port)
- (or (rep.io.streams#peek-char (or port standard-input)) eof-object))
-
- (define eof-object? (lambda (obj) (eq obj eof-object)))
-
-;;; output
-
- (define (write obj #!optional port)
- (rep.io.streams#format (or port standard-output) "%S" obj))
-
- (define (display obj #!optional port)
- (rep.io.streams#format (or port standard-output) "%s" obj))
-
- (define (newline #!optional port)
- (rep.io.streams#write (or port standard-output) #\newline))
-
- (define (write-char char #!optional port)
- (rep.io.streams#write (or port standard-output) char))
-
-;;; system interface
-
- ;; load-file doesn't search path or add suffixes. So it fits r5rs
- (define load load-file)
-
- (define %load-suffixes '(".scm" . ".scmc")))
diff --git a/lisp/unscheme/syntax-funs.jl b/lisp/unscheme/syntax-funs.jl
deleted file mode 100644
index f69e5f2..0000000
--- a/lisp/unscheme/syntax-funs.jl
+++ /dev/null
@@ -1,52 +0,0 @@
-#| syntax-funs.jl -- syntax expansion functions
-
- $Id$
-
- Copyright (C) 2000 John Harper <john dcs warwick ac uk>
-
- This file is part of librep.
-
- librep is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- librep is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with Jade; see the file COPYING. If not, write to
- the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
-|#
-
-(define-structure unscheme.syntax-funs
-
- (export expand-lambda
- expand-if
- expand-set!
- expand-cond
- expand-case
- expand-and
- expand-or
- expand-let
- expand-let*
- expand-letrec
- expand-do
- expand-delay
- expand-define)
-
- ((open rep
- scheme.syntax-funs)
- (access unscheme.data))
-
-;;; syntax
-
- (define (expand-if test consequent . alternative)
- (cond ((cdr alternative)
- (error "Scheme `if' only takes one else form"))
- (alternative
- `(\#cond (,test ,consequent)
- ('t ,(car alternative))))
- (t `(\#cond (,test ,consequent))))))
diff --git a/lisp/unscheme/syntax.jl b/lisp/unscheme/syntax.jl
deleted file mode 100644
index ec7bc07..0000000
--- a/lisp/unscheme/syntax.jl
+++ /dev/null
@@ -1,62 +0,0 @@
-#| scheme-syntax.jl -- syntax macros
-
- $Id$
-
- Copyright (C) 2000 John Harper <john dcs warwick ac uk>
-
- This file is part of librep.
-
- librep is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- librep is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with Jade; see the file COPYING. If not, write to
- the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
-|#
-
-;; ugh! rep's macros really suck when used across module boundaries..
-
-(define-structure unscheme.syntax
-
- (export quote lambda if set! cond case
- and or let let* letrec begin do
- delay define)
-
- (open rep unscheme.syntax-funs)
-
-;;; syntax
-
- (defmacro lambda args (apply expand-lambda args))
-
- (defmacro if args (apply expand-if args))
-
- (defmacro set! args (apply expand-set! args))
-
- (defmacro cond args (apply expand-cond args))
-
- (defmacro case args (apply expand-case args))
-
- (defmacro or args (apply expand-or args))
-
- (defmacro and args (apply expand-and args))
-
- (defmacro let args (apply expand-let args))
-
- (defmacro let* args (apply expand-let* args))
-
- (defmacro letrec args (apply expand-letrec args))
-
- (defmacro begin forms (cons '\#progn forms))
-
- (defmacro do args (apply expand-do args))
-
- (defmacro delay args (apply expand-delay args))
-
- (defmacro define args (apply expand-define args)))
diff --git a/man/news.texi b/man/news.texi
index d11448d..7d9ba51 100644
--- a/man/news.texi
+++ b/man/news.texi
@@ -3,6 +3,13 @@
@appendix News
@cindex News
+ heading 0.90.0
+
+ itemize @bullet
+
+ item Remove scheme and unscheme modules
+ end itemize
+
@heading 0.17.4
@itemize @bullet
diff --git a/src/ChangeLog b/src/ChangeLog
deleted file mode 100644
index 472ffc0..0000000
--- a/src/ChangeLog
+++ /dev/null
@@ -1,7882 +0,0 @@
-2007-11-02 John Harper <jsh unfactored org>
-
- * values.c, lispmach.h, unix_processes.c, rep-md5.c, streams.c,
- message.c, lisp.c, numbers.c, rep-remote.c, gettext.c,
- regexp.c, unix_dl.c, rep_subrs.h, sockets.c, rep_lisp.h,
- unix_main.c, unix_files.c, rep_regexp.h, tables.c, lispcmds.c,
- find.c, main.c, symbols.c, misc.c: fix about a thousand
- compiler warnings by doing s/u_char/char/ in a number of places
- (in some other places cast back to u_char* to correctly convert
- characters to integers)
-
-2007-11-02 John Harper <jsh unfactored org>
-
- * src/rep_subrs.h, src/unix_main.c: allow apps to override body
- of wait_for_input ()
-
-2007-01-01 John Harper <jsh unfactored org>
-
- * timers.c (fix_time): fix this function for ms == 1000 (from
- Michal Jaegermann)
-
- * rep-remote.c: need to include <sys/types.h>
-
-2006-12-29 John Harper <jsh unfactored org>
-
- * timers.c: use fix_time () to validate initial secs/msecs
- timer values
-
-2006-01-31 John Harper <jsh unfactored org>
-
- * main.c (check_configuration): on GCC 4 and later, mark this
- function "noinline" - otherwise the stack direction check may fail
- erroneously
-
-2005-04-07 John Harper <jsh unfactored org>
-
- * unix_processes.c: patch from Eric Mangold
- <teratorn world-net net> to add close-process function
-
-2005-04-02 John Harper <jsh unfactored org>
-
- * ffi.c: support FFI_TYPE_LONGDOUBLE == FFI_TYPE_DOUBLE
-
-2005-02-06 John Harper <jsh unfactored org>
-
- * lisp.c: backtrace-on-error and debug-on-error ignore
- end-of-stream errors when set to `t'
-
-2005-01-19 John Harper <jsh unfactored org>
-
- * continuations.c (save_stack): don't use __builtin_frame_address
- on x86_64 architecture, it doesn't seem to give an address on the
- stack
-
- * lisp.c (Fbacktrace): fix long->int warning on 64 bit systems
-
- * sockets.c: use socklen_t instead of size_t where appropriate,
- fixes warnings on 64 bit systems
-
-2003-12-06 John Harper <jsh unfactored org>
-
- * librep.sym: added Fexport_binding to the list
-
- * Makefile.in: refer to librep.sym relative to $(srcdir), patch
- from Mike Castle <dalgoda ix netcom com>
-
-2003-11-24 John Harper <jsh unfactored org>
-
- * version 0.17
-
-2003-10-28 John Harper <jsh unfactored org>
-
- * unix_processes.c (rep_system): rearranged code so we don't
- wait in select () when the process has already exited
-
- * readline.c: include <unistd.h>, and conditionalize header
- inclusions where appropriate
-
-2003-09-03 John Harper <jsh unfactored org>
-
- * unix_dl.c: fixes for Mac OS X
-
- * lispmach.h: added ppc register assignments
-
-2003-07-26 John Harper <jsh unfactored org>
-
- * ffi.c: bug fixes; implemented code to compare types and
- interfaces
-
- * ffi.c: tweaks, added functions to give lisp code low-level
- access to memory structures
-
- * unix_dl.c (rep_lookup_dl_symbol): passing an out of bounds
- value as index means use RTLD_GLOBAL
-
-2003-07-26 John Harper <jsh unfactored org>
-
- * unix_dl.c, structures.c, repint_subrs.h, ffi.c, fake-libexec,
- Makefile.in: added rep.ffi module for calling native functions
- from lisp. Barely tested, incomplete, requires libffi from gcc
-
-2003-05-04 John Harper <jsh unfactored org>
-
- * rep_gh.h, gh.c, Makefile.in: partial implementation of
- guile's (deprecated) GH interface
-
-2003-02-25 John Harper <jsh unfactored org>
-
- * version 0.16.2
-
-2002-10-07 John Harper <jsh unfactored org>
-
- * numbers.c (Fplus, Fminus, Fdivide, Fmultiply, Fmin, Fmax,
- Flogior, Flogxor, Flogand, Fgcd): rewritten as SubrV
-
- * lispcmds.c (Fnum_eq, Fnum_noteq, Fgtthan, Fltthan, Fgethan,
- Fltthan): rewritten as SubrV
-
-2002-10-05 John Harper <jsh unfactored org>
-
- * rep_lisp.h, lispmach.h, lisp.c: support rep_SubrV functions
- (rep_SubrN type with a special bit set). These take a counted
- array of arguments. Is often more efficient to call (no
- consing)
-
- * lispcmds.c (Flist, Flist_star, Fappend, Fnconc, Fvector,
- Fconcat): rewritten to be SubrV instead of SubrN
-
-2002-10-04 John Harper <jsh unfactored org>
-
- * lispcmds.c (Fconcat): changed to use two passes, one to
- measure length of new string, one to build it. Increases speed
- of string-append benchmark by ~40%. (Now ~50% of time is gc)
-
-2002-09-21 John Harper <jsh unfactored org>
-
- * numbers.c (Finexact_to_exact, Fnumerator, Fdenominator):
- rewrote these functions to work correctly without gmp, and to
- be more logical
-
-2002-07-12 John Harper <jsh unfactored org>
-
- * unix_files.c (rep_expand_file_name): avoid referencing
- uninitialized data
-
- * tuples.c (rep_make_tuple): initialize car field of new tuples
- to zero, since the gc sweeper checks it (from #88015)
-
-2002-06-25 John Harper <jsh unfactored org>
-
- * numbers.c: only use GMP random numbers with version 4 and
- later
-
-2002-06-20 John Harper <jsh unfactored org>
-
- * version 0.16
-
-2002-05-06 John Harper <jsh unfactored org>
-
- * gettext.c (bindtextdomaincodeset): new stub. Patch from
- Christophe Fergeau <teuf users sourceforge net>. Only does
- anything when not using the build in gettext implementation
- (which needs to be updated)
-
-2002-03-30 John Harper <jsh unfactored org>
-
- * sockets.c: added IS_REGISTERED flag so we never try to call
- rep_deregister_input_fd () on a fd that isn't actually
- registered (which rep-gtk doesn't like)
-
-2002-03-01 John Harper <jsh pixelslut com>
-
- * timers.c: #ifdef rep_HAVE_UNIX not HAVE_UNIX (from Michael
- Eriksson <Michael Eriksson era-t ericsson se>)
-
-2002-02-13 John Harper <jsh unfactored org>
-
- * numbers.c (Frandom): when seeding, factor in the pid of the
- process as well as the current time
-
- * unix_main.c (rep_getpid): new function
-
- * streams.c (Fformat): deleted unused end_of_input label
-
-2001-12-21 John Harper <jsh unfactored org>
-
- * rep.c: call setlocale (LC_ALL, "") at startup. Patch from
- Bruno Haible <haible ilog fr> (with some extra preprocessor
- stuff)
-
-2001-12-18 John Harper <jsh unfactored org>
-
- * repgdbm.c (Fgdbm_delete): don't add one to the length of the
- string when calculating dkey.dsize (none of the other functions
- do)
-
-2001-12-17 John Harper <jsh unfactored org>
-
- * rep-config.sh, Makefile.in: added --lispdir option
-
- * streams.c (Fformat): signal an error on unknown format
- conversions and end of input string in the middle of a format
- directive
-
-2001-12-04 John Harper <jsh unfactored org>
-
- * numbers.c (Finexact_to_exact): made this handle fractional
- values now
-
- (Fnumerator, Fdenominator): if given a float, rationalize it
- using inexact->exact
-
-2001-11-14 John Harper <jsh unfactored org>
-
- * files.c (Ffile_ttyp): new function
-
-2001-10-28 John Harper <jsh unfactored org>
-
- * version 0.15.2
-
-2001-10-20 John Harper <jsh unfactored org>
-
- * numbers.c (random_new): call mpz_init () on the output value
- before passing it to mpz_urandomm (). This seems to stop things
- crashing
-
- (Frandom): signal an error if LIMIT <= 0
-
-2001-10-19 John Harper <jsh unfactored org>
-
- * repgdbm.c (Fgdbm_walk): fixed doc string
-
- * readline.c (match_paren): should return an int, not void
- (pointed out by Karl M. Hegbloom <karlheg microsharp com>)
-
- * librep.sym: removed Fdebug_frame_environment,
- Fdebug_inner_frame and Fdebug_outer_frame
-
- * lisp.c (skip_chars): don't accept, say, `#!keyX' when asked
- for `#!key'; check that the input character after the end of
- the asked for characters is a token delimiter
-
-2001-10-03 John Harper <jsh unfactored org>
-
- * version 0.15.1
-
- * numbers.c: disabled gmp random numbers, they crash
-
-2001-10-01 John Harper <jsh unfactored org>
-
- * version 0.15
-
- * numbers.c: also check for HAVE_GMP_RANDINIT
-
-2001-09-23 John Harper <jsh unfactored org>
-
- * numbers.c, misc.c (Frandom): moved to numbers.c. When gmp is
- present, always use gmp random integer functions. They should
- give `good' results for limits up to at least 128 bits, then
- they start concatenating multiple random values to get their
- result
-
-2001-09-15 John Harper <jsh unfactored org>
-
- * continuations.c: allocate continuation and thread typecodes
- lazily (when they're first needed)
-
- * numbers.c (promote_to): don't canonicalize the created
- rational, since it's denominator is known to be 1 (suggested by
- Kevin Ryde <user42 zip com au>)
-
-2001-09-14 John Harper <jsh unfactored org>
-
- Integrated patch from Tom Bates <Tom Bates compaq com> to fix
- some bugs on mips-compaq-nonstopux architecture:
-
- * unix_files.c, rep-remote.c, realpath.c: if S_ISLINK or
- S_ISSOCK macros aren't defined, define them in terms of
- S_IFLNK and S_IFSOCK
-
- * misc.c (Fcomplete_string): don't assume strcmp () and strncmp
- () have exactly the same type or are functions
-
-2001-09-11 John Harper <jsh pixelslut com>
-
- * rep_subrs.h, repint_subrs.h: made rep_undefined_value public
- * librep.sym: added rep_undefined_value
-
- * rep_lisp.h (rep_File): new bit, rep_LFF_SILENT_ERRORS. When
- set file errors aren't signalled for this file. They're just
- ignored and sensible values are returned
-
- * files.c (Fset_file_ignore_errors): new function
-
- * streams.c (rep_stream_puts, rep_stream_putc): don't signal
- end-of-stream errors if files have been marked to ignore them
-
-2001-09-02 John Harper <jsh pixelslut com>
-
- * misc.c: a couple of small fixes
-
- * numbers.c (Flog): now takes an optional BASE parameter - the
- base of the logarithm to take, instead of defaulting to taking
- natural logarithms. E.g. (log 4 2) -> 2
-
-2001-08-31 John Harper <jsh pixelslut com>
-
- * streams.c: signal an error if it's not possible to write as
- many bytes as asked for. Writing is always assumed to block,
- and no one actually checks the return values of the various
- output functions, so this is best..
-
- * sockets.c (blocking_write): if an error occurs, shutdown the
- socket and call the sentinel
-
- * unix_processes.c (write_to_process): loop if write () handles
- fewer characters than we need
-
- * weak-refs.c (rep_scan_weak_refs): trivial change
-
- * lisp.c (lisp_prin): print address of closures, helps
- debugging
-
- * lisp.c (apply): don't assert that either an exception or a
- value is returned from every function, instead just print
- annoying warning messages when this happens
-
- * lispmach.h, lisp.c: when searching for keyword arguments,
- don't check every other argument, check every argument (there's
- no way of knowing how keywords will be aligned)
-
-2001-08-23 John Harper <jsh pixelslut com>
-
- * weak-refs.c: new file, provide simple weak-reference cells
-
- * main.c (rep_init_from_dump): call rep_weak_refs_init ()
- * values.c (Fgarbage_collect): call rep_scan_weak_refs () after
- calling run_guardians ()
-
-2001-08-13 John Harper <jsh pixelslut com>
-
- * continuations.c (Fthread_suspend): reversed test to check if
- timeout occurred so it matches the documentation
-
- * misc.c (Fcurrent_time_string): fixed returning rep_NULL in
- some unusual cases
-
- * lisp.c (Fbacktrace): print backtrace in top to bottom order,
- not bottom to top
-
-2001-08-09 John Harper <jsh pixelslut com>
-
- * lisp.c (Ffuncall): use apply () instead of rep_funcall ()
-
-2001-08-08 John Harper <jsh pixelslut com>
-
- * main.c (get_main_options): --interp also means record line
- number information. Removed --line-numbers option
-
-2001-08-07 John Harper <jsh pixelslut com>
-
- * origin.c: new file. Records and fetches line numbering
- information for lisp forms (when enabled). Adds non-trivial
- memory overhead, but is invaluable for debugging (both at
- compile- and at run-time)
-
- * lisp.c (read_list): call rep_record_origin () on the produced
- list, giving the stream and starting line of the read form
- (where possible)
-
- (copy_to_vector, bind_lambda_list, bind_lambda_list_1,
- eval_lambda, apply): removed the eval_args and (kludgey)
- eval_in_env parameters. Now all function applications going
- through apply () (ne funcall) must have an _evaluated_ list of
- arguments. This may cons more in interpreted mode, but
- simplifies a lot of things and is better for debugging (since
- only evaluated arguments are put in the stack frame)
-
- (Fbacktrace): made output more elegant (again)
-
- (Fstack_frame_ref): return a list representing a given frame on
- the stack
-
- (Fdebug_frame_environment, Fdebug_outer_frame,
- Fdebug_inner_frame): deleted these functions
-
- * unix_main.c: adapted a couple of functions for new backtrace
- format
-
- * values.c, symbols.c, repint.h, macros.c, lispmach.h,
- lispcmds.c, continuations.c: removed the args_evalled_p field
- of the rep_Call structure, replaced by a current_form field
-
- * files.c (Fseek_file): recognize that seeks to the start of
- the file should reset the line number to one, not munge it
-
-2001-08-02 John Harper <jsh pixelslut com>
-
- * lisp.c: signal an error if EOF is read while parsing a block
- comment
-
- * continuations.c: abuse exit_val field of thread structure
- while threads are suspended to allow thread-suspend to return
- true or false depending on whether the timeout was reached or
- not
-
- * rep_lisp.h (rep_DECLARE[1-5]_OPT): new macros, test for arg
- being false or the given type
-
- * numbers.c (rep_get_long_int): fixed some unsignedness
- problems
-
- * unix_processes.c, timers.c, misc.c, lispcmds.c, find.c,
- files.c, continuations.c: in various places check that optional
- integer arguments really are integers or false. Also use
- rep_get_long_int () etc where it makes sense to truncate
- non-integer values
-
-2001-08-01 John Harper <jsh pixelslut com>
-
- * tables.c (Ftable_unset): fixed bug of not decrementing
- total_nodes
-
- * tables.c (Ftable_size): new function
-
-2001-07-29 John Harper <jsh pixelslut com>
-
- * continuations.c (Fcurrent_thread, Fall_threads): if operating
- in the zero'th root, and there is no default thread, create one
- (instead of returning false)
-
-2001-07-26 John Harper <jsh pixelslut com>
-
- * lisp.c (readl): parse `#undefined'. Fixed bug when reading
- `(#\A)' (would signal an eof too soon)
-
- * lisp.c (signal_reader_error): new function, used to signal
- parse errors. Reports filename and line number for file
- streams. Also gives a description of why the error occurred in
- most cases
-
- * symbols.c (F_define): return #undefined
-
- * symbols.c (rep_undefined_value):: new symbol called
- `#undefined'
-
- * rep_lisp.h, files.c: files get a new field `line_number', and
- a new flag rep_LFF_BOGUS_LINE_NUMBER.
-
- * streams.c (rep_stream_getc, rep_stream_ungetc): update the
- line_number field of files
-
- * lisp.c (fast_getc): handle line_number field of files
-
-2001-07-22 John Harper <jsh pixelslut com>
-
- * lisp.c (readl): don't signal an error when reading EOF
- immediately after `#\[a-zA-Z]', just return the given character
-
-2001-07-21 John Harper <jsh pixelslut com>
-
- * lisp.c (Fbacktrace): made backtraces cleaner. Added an option
- backtrace-verbosely which turns on printing argument lists
-
-2001-07-17 John Harper <jsh pixelslut com>
-
- * rep-remote.c (do_readdir): output mode in decimal not octal
- (since the 0nn octal read syntax was deprecated in rep)
-
- * unix_files.c (rep_canonical_file_name): don't preserve
- trailing slashes, always remove any trailing slashes. Also if
- realpath () fails (e.g. the file doesn't exist), delete
- trailing slashes before returning the input
-
- * unix_files.c (rep_file_size): use rep_make_long_uint () to
- create the returned value, instead of always using a fixnum
-
-2001-07-15 John Harper <jsh pixelslut com>
-
- * rep_lisp.h: only do the `#define Qnil &rep_eol_datum'
- shortcut if __APPLE__ isn't defined, since it doesn't seem to
- work with Mac OS X (for at least some versions of the
- toolchain)
-
-2001-07-02 John Harper <jsh pixelslut com>
-
- * version 0.14
-
-2001-06-29 John Harper <jsh pixelslut com>
-
- * streams.c (rep_stream_getc): don't test for end of input by
- looking for a null byte! Check the actual length of the string!
-
- * sockets.c (blocking_write): new function, used to write ()
- into a non-blocking fd, simulating blocking using select ().
- Used when writing data into sockets
-
-2001-06-26 John Harper <jsh pixelslut com>
-
- * sockets.c (Fsocket_peer_address, Fsocket_peer_port): new
- functions
- (Fsocket_address, Fsocket_port): only ever return the details
- of the local connection point (not the peer in the case of
- accepted connections)
-
- * sockets.c (make_inet_socket): if binding to INADDR_ANY, try
- to find out the actual address of the server and the actual
- port number.
- (Fsocket_server): if PORT is false, use a port of zero, which
- means `any unused port'
-
- * sockets.c (Fsocket_server): HOSTNAME arg can now be nil,
- meaning to use INADDR_ANY when binding to the socket (listen
- for all addresses)
-
-2001-06-18 John Harper <jsh pixelslut com>
-
- * repgdbm.c, repsdbm.c (rep_dl_kill): new functions, close all
- databases before exiting
-
-2001-06-15 John Harper <jsh pixelslut com>
-
- * rep-md5.c: added some comments and doc strings
-
-2001-06-14 John Harper <jsh pixelslut com>
-
- * numbers.c (rep_parse_number): don't call mpz_init_set_str ()
- on BUF since it may not be zero-terminated. Instead copy the
- string to the stack and terminate it there
-
- * rep-md5.c: new module, rep.util.md5. Exports two functions
- currently, md5-string and md5-local-file.
-
- * fake-libexec, Makefile.in: build rep.util.md5 module
-
- * md5.c, md5.h: MD5 message digest implementation. Taken from
- GNU textutils-1.22 (originally written by Ulrich Drepper)
-
- * misc.c (Fcrypt): new function, wrapper for crypt(3) if it's
- available
-
-2001-06-12 John Harper <jsh pixelslut com>
-
- * repint_subrs.h, lisp.c: don't declare Qrep_lang_interpreter
- in lisp.c as well as in structures.c. Instead add declarations
- for all values declared in structures.c
-
-2001-06-08 John Harper <jsh pixelslut com>
-
- * lispmach.h: disable mc68000 register assignments - I've had
- one report of them causing the vm to crash while building the
- compiler
-
- * unix_processes.c (run_process): open and initialize the slave
- side of the pty connection _before_ forking (instead of in the
- child process). This avoids a race condition where the master
- side may try to write into its side of the pty before the slave
- side has been initialized correctly. Thanks to Paolo Bonzini
- for pointing out this problem (and the solution)
-
-2001-06-04 John Harper <jsh pixelslut com>
-
- * continuations.c (Fmake_suspended_thread): new function
-
- * continuations.c (make_thread): when creating the default
- thread, save _it's_ environment, don't resave the environment
- of the other created thread!
-
-2001-04-22 John Harper <jsh eazel com>
-
- * unix_main.c (rep_event_loop): only wait for input events if
- no unhandled exception. Now if rep_redisplay_fun calls lisp
- code, errors will be handled more promptly
-
-2001-04-20 John Harper <jsh eazel com>
-
- * structures.c (Fexport_bindings): flush the symbol from the
- cache even if we just set the is_exported bit
-
-2001-04-16 John Harper <jsh eazel com>
-
- * unix_dl.c: include <sys/dl.h> if HAVE_SYS_DL_H is defined and
- HAVE_DL_H isn't (for UnixWare)
-
- * misc.c: include <strings.h> (needed for strncasecmp () on
- UnixWare)
-
-2001-04-09 John Harper <jsh eazel com>
-
- * version 0.13.6 (from branch-0-13)
-
-2001-04-05 John Harper <jsh eazel com>
-
- * numbers.c (INSTALL_LOCALE): fixed a really stupid bug in this
- macro. It never actually installed the new locale!
-
-2001-03-26 John Harper <jsh eazel com>
-
- * Makefile.in: added a `check' target
-
-2001-03-22 John Harper <jsh eazel com>
-
- * version 0.13.5
-
- * numbers.c (rep_parse_number, rep_print_number_to_string): use
- a macro to save and install the locale. The old way was broken
- since I didn't realize that setlocale returns the current
- locale, not the previous one
-
-2001-03-21 John Harper <jsh eazel com>
-
- * unix_processes.c (run_process, rep_system): if the child
- process has to abort for some reason (e.g. exec fails), use
- _exit () instead of exit (). This avoids calling any atexit
- handlers (which were inherited from the parent process, and
- may, for example, close the X connection if GTK+ is loaded)
-
- This fixes the tar-file-handler-broken-on-solaris problem
-
-2001-03-12 John Harper <jsh eazel com>
-
- * numbers.c (rep_parse_number): if strto[l]l gives a range
- error, it's not possible to fall back to the float parsing code
- (since the radix may not be decimal). Instead, use a special
- helper function to parse an integer with an arbitrary base to a
- double, then if this succeeds decide whether to use an inexact
- or exact representation to store the number
-
- [ This fixes a bug reported on HP-UX, when using --without-gmp
- and there is no known strtoll function ]
-
-2001-02-20 John Harper <jsh eazel com>
-
- * rep_subrs.h (rep_message_fun): declared using extern (patch
- from albert chin <china thewrittenword com>)
-
-2001-02-19 John Harper <jsh eazel com>
-
- * lispmach.h: fixed comment
-
- * repdoc.c: include <stdlib.h>
-
-2001-02-10 John Harper <jsh eazel com>
-
- * sockets.c (make_inet_socket): remember to convert the port
- number to network byte order before storing it in sin_port
- (fill_in_address): convert the port number from network to host
- byte order
-
-2001-01-28 John Harper <jsh eazel com>
-
- * continuations.c (Fthread_join): as part of the THREAD
- declaration, check that it's a member of the current dynamic
- root
-
-2001-01-21 John Harper <jsh eazel com>
-
- * symbols.c (Fdefvar): the DEFAULT-VALUE parameter is now
- optional, it defaults to false
-
-2001-01-08 John Harper <jsh eazel com>
-
- * lisp.c: changed the Lisp reader to treat #\return characters
- as whitespace. (Fixes sawfish bug 5231)
-
-2001-01-04 John Harper <jsh eazel com>
-
- * version 0.13.4
-
-2000-12-20 John Harper <jsh eazel com>
-
- * librep.sym: added rep_file_type and rep_guardian_type (doh!)
-
-2000-12-04 John Harper <jsh eazel com>
-
- * version 0.13.3
-
- * symbols.c (Funintern): should use OB_NIL to mark end of
- symbol buckets, not rep_NULL
-
-2000-11-28 John Harper <jsh eazel com>
-
- * timers.c (Lisp_Timer): made bitfields unsigned
-
-2000-11-27 John Harper <jsh eazel com>
-
- * lisp.c: fixes for previous [premature-]end-of-stream changes
-
-2000-11-24 John Harper <jsh eazel com>
-
- * lisp.c (Qpremature_end_of_stream): new error type. This is
- used to mark eof being received while in the middle of parsing
- something. Qend_of_stream is now only raised when an eof is
- read before anything but whitespace has been read.
-
- This fixes the bug that Fload_file () would swallow
- end-of-stream errors (assuming that they just represent reading
- upto the end of the file), hiding real errors where eof occurs
- in the middle of a construct being parsed
-
-2000-11-15 John Harper <jsh eazel com>
-
- * repint_subrs.h, rep_subrs.h: moved the low-level unix file
- operations to repint_subrs.h
-
- * Makefile.in, librep.sym: when building librep.la, use the
- librep.sym file and the -export-symbols libtool option to
- define which symbols should be retained in the library
-
-2000-11-14 John Harper <jsh eazel com>
-
- * rep_regexp.h, regexp.c: be sure to use unsigned char's when
- converting values to int (for <ctype.h> functions, etc. Adapted
- from a patch to Jade by Andrew Rodionoff <arnost mail ru>)
-
-2000-11-12 John Harper <jsh eazel com>
-
- * readline.c (Freadline): accept optional second arg the
- function to call to generate completions of a given word. When
- supplied this overrides the `rl-completion-generator' global.
- Also, when no libreadline is present, don't use printf to print
- a user-supplied string, use fputs (and send it to stderr, not
- stdout)
-
-2000-11-11 John Harper <jsh eazel com>
-
- * lisp.c (rep_readl, fast_getc): instead of checking whether
- the stream is a local file each time fast_getc () is called,
- check in rep_readl () then save the result. Added a local
- function readl () -- the body of rep_readl ()
-
-2000-11-10 John Harper <jsh eazel com>
-
- * rep_regexp.h, regexp.c (rep_regexp_max_depth): new variable,
- upper bound on the number of times that regmatch () may be
- called recursively. Prevents the stack from exploding on
- pathological matches
-
-2000-11-03 John Harper <jsh eazel com>
-
- * numbers.c: if LONG_LONG_{MIN,MAX} aren't defined, define as
- LONG_{MIN,MAX} (evil hack, but should allow compilation to
- succeed)
-
-2000-10-27 John Harper <jsh eazel com>
-
- * unix_files.c (rep_expand_file_name): added extra case to
- translate `/..' to `/'
-
-2000-10-25 John Harper <jsh eazel com>
-
- * numbers.c, main.c: instead of doing setlocale (LC_NUMERIC,
- "C") at init-time, do it each time that a floating point number
- is read or written (need to remove the code from gtk/gnome
- bindings also)
-
-2000-10-23 John Harper <jsh eazel com>
-
- * version 0.13.2
-
-2000-10-06 John Harper <john dcs warwick ac uk>
-
- * Makefile.in (check-dl): a target to check that each plugin
- .la file contains a non-null `dlname=' entry. (Which would
- prevent rep being able to load the library)
-
-2000-09-28 John Harper <john dcs warwick ac uk>
-
- * version 0.13.1
-
- * fake-libexec: patch from John H. Palmieri
- <palmieri math washington edu> to link to libfoo.so as well as
- foo.la (for Tru64?)
-
-2000-09-27 John Harper <john dcs warwick ac uk>
-
- * misc.c (strncasecmp): define if the system doesn't have it
-
-2000-09-24 John Harper <john dcs warwick ac uk>
-
- * find.c (rep_string_modified): new function, removes the
- modified string from the regexp cache if it's stored there
-
- * lispcmds.c, misc.c (Faset, Ftranslate_string): call
- rep_string_modified ()
-
-2000-09-23 John Harper <john dcs warwick ac uk>
-
- * lisp.c (rep_read_symbol): accept an OBARRAY parameter
- (rep_readl): read keywords into their own obarray
-
- * symbols.c (Fmake_keyword, rep_keyword_obarray): use a
- dedicated obarray for keyword symbols
-
- * lisp.c: use uninterned symbols for #!optional, #!rest and
- #!key
-
- * symbols.c (rep_scm_f, rep_scm_t): now uninterned symbols
-
-2000-09-22 John Harper <john dcs warwick ac uk>
-
- * unix_dl.c (rep_open_dl_library): check if snprintf () exists
- before using it (patch from Philippe Defert cern ch)
-
-2000-09-20 John Harper <john dcs warwick ac uk>
-
- * version 0.13
-
-2000-09-19 John Harper <john dcs warwick ac uk>
-
- * structures.c (Fintern_structure): load into the
- *user-structure* instead of the *root-structure*
-
-2000-09-18 John Harper <john dcs warwick ac uk>
-
- * main.c (rep_init_from_dump): call setlocal (LC_NUMERIC, "C")
- so that floating point I/O always uses `.' as fraction
- separator (e.g. fr locale uses `,')
-
-2000-09-14 John Harper <john dcs warwick ac uk>
-
- * sockets.c (Fsocketp): new function
- (socket_putc, socket_puts): signal an error for inactive
- sockets, return 0 if nothing can be written, not -1
-
- * unix_processes.c, sockets.c (read_from_one_fd,
- client_socket_output): only ever check errno if actual < 0
-
- * sockets.c (make_socket): was testing if result of socket ()
- == 0 not -1 to check for errors
- (make_local_socket): call Flocal_file_name () on the address
-
- * sockets.c: if [AP]F_LOCAL isn't defined, but [AP]F_UNIX is,
- use that instead
-
-2000-09-11 John Harper <john dcs warwick ac uk>
-
- * symbols.c (F_define): optional third-arg DOC-STRING, use
- rep_documentation_property to find the property to store it
- under
-
- * structures.c (rep_documentation_property): new function,
- returns the property used to store documentation in a symbol's
- plist for a binding in a patrticular module
-
-2000-09-10 John Harper <john dcs warwick ac uk>
-
- * fake-libexec: delete .libexec before [re]creating it
-
-2000-09-09 John Harper <john dcs warwick ac uk>
-
- * sockets.c: new module rep.io.sockets; provides interface to
- SOCK_STREAM sockets, unix and internet domains
-
- * unix_main.c (rep_add_event_loop_callback): new function
- (rep_proc_periodically): moved this function from
- unix_processes.c, it now runs a sequence of callbacks added by
- the above function
-
- * unix_processes.c (rep_proc_periodically): now a local
- function, added as an event loop callback (can this be made
- into a plugin now?)
-
-2000-09-08 John Harper <john dcs warwick ac uk>
-
- * symbols.c: moved some functions out of rep.lang.symbols into
- rep.lang.interpreter or rep.structures
-
- * main.c (rep_load_environment): added rep.regexp to list of
- structures that have lisp initial code
-
-2000-09-05 John Harper <john dcs warwick ac uk>
-
- * structures.c (rep_structures_init): moved `provide',
- `require' and `featurep' from rep.structures to
- rep.module-system
-
- * Makefile.in: .libexec depends on $(DL_OBJS)
-
- * lispmach.h: when OPTIMIZE_FOR_SPACE is defined don't bother
- inlining SAFE_NEXT, the assertions add too much overhead
-
-2000-09-04 John Harper <john dcs warwick ac uk>
-
- * unix_dl.c (rep_open_dl_library): when no `dlname=' line was
- found, include the name of the file when signalling an error
-
- * structures.c (Fintern_structure): don't name the module after
- the thing we're trying to load (this means that module files
- must contain `define-structure' not `structure forms
-
-2000-09-03 John Harper <john dcs warwick ac uk>
-
- * values.c, unix_processes.c, unix_main.c, timers.c, tables.c,
- symbols.c, structures.c, streams.c, repsdbm.c, repint_subrs.h,
- repgdbm.c, rep_subrs.h, numbers.c, misc.c, main.c, macros.c,
- lispmach.c, lispcmds.c, lisp.c, fluids.c, find.c, files.c,
- datums.c, continuations.c: changed magic doc string tags from
- `::doc:SYMBOL::' to `::doc:MODULE#SYMBOL::'
-
-2000-09-02 John Harper <john dcs warwick ac uk>
-
- * lisp.c (rep_assign_args): new function, for binding C
- variables to a list of arguments
-
- * main.c (rep_handle_input_exception): fixed bug of returning
- with a null result after catching Qquit
-
- * unix_main.c (rep_accept_input_for_callbacks): new function,
- obsoletes rep_accept_input which just accepted a single
- callback
- (rep_accept_input_for_fds): new function
-
- * unix_processes.c (rep_register_process_input_handler): new
- function, adds a handler to those dispatched by
- accept-process-input
- (Faccept_process_input): able to accept input for more than
- one source (will be used by the mythical `socket' plugin)
- (Faccept_process_input_1): new function, just listens for
- input from a single subprocess
-
-2000-09-01 John Harper <john dcs warwick ac uk>
-
- * unix_files.c (rep_expand_file_name): fix bug of expanding
- `../..' to `'. Also, don't allow null strings to be returned,
- output `.' instead
-
-2000-08-31 John Harper <john dcs warwick ac uk>
-
- * rep.h, rep_config.h.in, Makefile.in, rep-config.sh: don't
- have machine-local defs in rep.h (under $prefix/include). Let
- configure build rep_config.h, install it under libexec, then
- include it from rep.h
-
-2000-08-30 John Harper <john dcs warwick ac uk>
-
- * rep_subrs.h: s/new/new_/ and s/template/template_/ in
- argument names to allow inclusion by C++ code
-
-2000-08-28 John Harper <john dcs warwick ac uk>
-
- * tables.c: added doc strings
-
- * symbols.c (Fmake_keyword): signal an error if the argument is
- itself a keyword
-
-2000-08-27 John Harper <john dcs warwick ac uk>
-
- * lispmach.h: implemented OP_FOO_ARG_ changes; optimized gc
- protection handling; fixed bug of exiting the vm and possibly
- gc'ing with undefined protection
-
- * bytecodes.h: renamed OP_FOO_ARG_WITH_DEFAULT as OP_FOO_ARG_.
- These now leave one or two values on the stack, first a bool
- signifying whether the parameter was defined or not, and, if it
- was, its value
-
- * lisp.c (bind_lambda_list_1): now evaluates default values of
- #!optional and #!key arguments (in the environment of the
- closure being called, _without_ any of the bindings currently
- being instantiated)
-
- * tables.c (Ftable_bound_p): new function
-
-2000-08-25 John Harper <john dcs warwick ac uk>
-
- * numbers.c (rep_print_number_to_string): minor changes to
- non-gmp bignum case
-
-2000-08-24 John Harper <john dcs warwick ac uk>
-
- * main.c (rep_top_level_recursive_edit): new function, called
- by apps as their top-level event-loop. Calls recursive-edit but
- with extra protection for unhandled exceptions that shouldn't
- terminate the program
-
- * symbols.c (Fdefvar): only eval the value form if setting the
- value of the special variable
-
-2000-08-18 John Harper <john dcs warwick ac uk>
-
- * continuations.c (thread_suspend): POLL-ARG is now `void *'
- not `repv'
-
-2000-08-17 John Harper <john dcs warwick ac uk>
-
- * continuations.c: moved get_stack_top () into save_stack ();
- should remove possibility from reading above current top of
- stack
-
- * rep_regexp.h, regexp.c, continuations.c, find.c: renamed
- NSUBEXP as rep_NSUBEXP to avoid namespace pollution
-
- * lispmach.h: factored out the core of the vm from lispmach.c;
- it's parameterized by a number of preprocessor macros
-
- * lispmach.c: include lispmach.h
-
- * safemach.c: module `rep.vm.safe-interpreter'. An error
- checking virtual machine as a plugin
-
- * symbols.c (rep_bind_special): new function
-
- * lisp.c (rep_bind_lambda_list_1): support default values for
- #!optional and #!key parameters. Syntax is `(<var> <default>)'.
- But note that unlike CL, <default> is _not_ evaluated. This may
- change in the future, so only use self-evaluating objects for
- now..
-
- * lispmach.c, bytecodes.h (OP_OPTIONAL_ARG_WITH_DEFAULT,
- OP_KEYWORD_ARG_WITH_DEFAULT): new instructions
-
-2000-08-16 John Harper <john dcs warwick ac uk>
-
- * rep_lisp.h (rep_SF_KEYWORD, rep_SF_LITERAL): new flags
- (rep_SF_KEYWORDP, rep_SYMBOL_LITERAL_P): new macros
-
- * lisp.c (rep_readl): read #!SYMBOL as a symbol, and #:SYMBOL
- as a keyword symbol (self evaluating)
- (rep_bind_lambda_list_1): deprecated &optional and &rest, they
- intrude too much on the symbol syntax. Replaced by #!optional
- and #!rest (syntax from MIT Scheme). Also support #!key
- defining keyword parameters. E.g. `((lambda (#!key a b) (list a
- b)) #:b 2 #:a 1) -> (1 2)'
-
- * symbols.c (Fmake_keyword, Fkeywordp): new functions
- (lisp_print): if rep_SF_LITERAL is set, print without any
- quoting; if a keyword, don't quote the initial `#'
-
- * lispmach.c, bytecodes.h (OP_KEYWORD_ARG): new instruction,
- extracts argument for a given keyword symbol
-
-2000-08-15 John Harper <john dcs warwick ac uk>
-
- * lispmach.c: put cfa in a register variable, may help sparc
-
- * lispmach.c: minor tweaks, mainly for the sparc
-
-2000-08-13 John Harper <john dcs warwick ac uk>
-
- * lispmach.c, bytecodes.h (OP_NOT_ZERO_P): new instruction
-
- * lispcmds.c (Fload_file): fixed to close the file if aborting
- due to an error while evaluating
-
- * lispmach.c (Fvalidate_byte_code): signal a more meaningful
- error if validation fails (including the current value of
- `load-filename')
-
-2000-08-12 John Harper <john dcs warwick ac uk>
-
- * continuations.c (Fcontinuation_callable_p): fixed the
- extraction of the continuation object from the closure
-
-2000-08-11 John Harper <john dcs warwick ac uk>
-
- * lisp.c (read_comment): new function. Also `#| ... #|' and
- `<SOF>#! ... !#' comments now nest
- (read_list, rep_readl): use read_comment ()
-
- * repdoc.c (main): pass GDBM_NOLOCK to gdbm_open ()
-
- * rep_lisp.h (DEFUN): cast the Ffoo value to (repv (*)()) when
- assigning to the rep_xsubr struct (needed for C++, from Matt
- Tucker <tuck whistlingfish net>)
-
- * lispmach.c: changed repv_memset to repv_bzero and made it a
- macro. Experimented with inline asm `cld; rep; stosl' on i386,
- but no visible improvement. Move gc-protection initialization
- before the `again:' label, then update it by hand when tail
- calling
-
-2000-08-10 John Harper <john dcs warwick ac uk>
-
- * lispmach.c: implemented the vm architecture changes; these
- include:
-
- - `slot-ref', `slot-set' instructions. Each vm instance gets
- how ever many slots it requires, basically registers. Used
- to avoid heap allocating variables that don't get captured
-
- - Removed `refq' and `setq' insns. Use `%set' and `ref'
- instead
-
- - subrs don't include their parameter spec. Each vm gets a
- vector of arguments; the `required-arg', `optional-arg' and
- `rest-arg' instructions access these (only guaranteed until
- the first gc)
-
- - when TRUST_NO_ONE is defined, heavy-duty assertions are
- included to check for compiler bugs
-
- - don't use GCC variable-length arrays to allocate stacks;
- use alloca. When tail-calling try to swap argv and stack
- arrays
-
- - remove `list' instruction; compiled to sequence of `cons'
-
- * symbols.c (Fdefault_boundp): fixed bug of not converting C
- boolean to lisp
-
- * streams.c (rep_stream_getc): if an unbound file is given as
- the stream, return EOF, not an error
-
- * rep_lisp.h: removed rep_COMPILED_LAMBDA field
-
- * lisp.c (rep_readl): when reading compiled subrs, check that
- elements have correct type
- (funcall): assert that either result or rep_throw_value isn't
- rep_NULL
-
- * bytecodes.h: various changes to the vm architecture. Bumped
- major version
-
-2000-08-03 John Harper <john dcs warwick ac uk>
-
- * rep-xgettext.jl: use rep.i18n.gettext module, removed
- --only-commands option
-
- * numbers.c: use strtoq () if strtoll () isn't available
-
-2000-08-02 John Harper <john dcs warwick ac uk>
-
- * structures.c (lookup_recursively, Fopen_structures): allow
- structures to be in `imports' list, not just names of
- structures. This allows anonymous structures to be imported
-
-2000-08-01 John Harper <john dcs warwick ac uk>
-
- * continuations.c (primitive_call_cc): added an arg, the
- continuation to overwrite with the current state
- (thread_invoke): pass the current continuation in to
- primitive_call_cc for updating, instead of allocating a new one
-
- [ this drastically reduces thread-switch time when the current
- stack copy is suitable to be overwritten. Current thread switch
- latency seems to be ~7.5us on my 300MHz PII ]
-
- * lispmach.c: fixed top-of-stack caching bugs
-
- * continuations.c (exit_barrier_cell): cdr of this is set to
- raw rep_throw_value, don't use Qnil if rep_throw_value is null
- (and this was only done in one of the two uses anyway)
-
- (make_thread): don't call thread_invoke after thread_delete
- (since the thread is current, thread_delete will already have
- called invoke)
-
- * lisp.c (read_symbol): deprecated `0xNN' and `0NN' read
- syntaxes for hexadecimal and octal numbers (use `#xNN' and
- `#oNN')
-
- * main.c (rep_deprecated): new internal function for reporting
- deprecated features. Only reports each feature once
-
- * gettext.c: if using gettext in ../intl/, define gnu_foo as
- foo__, removes the need to patch the intl files
-
-2000-07-31 John Harper <john dcs warwick ac uk>
-
- * numbers.c (rep_parse_number): fixed bounds checking of
- characters for non-base10 conversion
-
- * lispmach.c: added code to cache the top of the stack in a
- [register] variable. Only enabled on non-x86 platforms (i.e.
- those with a reasonable number of registers). Gets about 8%
- speedup on sparc
-
- * lisp.c: changed error message for void-value
-
- * symbols.c, record-profile.c, files.c: use Fstructure_define
- instead of Fstructure_set where appropriate
-
- * symbols.c (Fset): now uses Fstructure_define (for C code)
- (Freal_set): the actual Lisp `set' function (doesn't define)
- (F_define): new special form
-
- * structures.c (Fstructure_define): new function
- (Fstructure_set): only create bindings if rep_STF_SET_BINDS
- flag is set for the structure (unset by default)
- (Fbinding_immutable_p): check imported bindings as well
- (Fstructure_exports_all, rep_structure_exports_all): added
-
- * repint.h (rep_STF_SET_BINDS): new flag
-
- * lispmach.c, bytecodes.h (OP__DEFINE): new instruction
-
- * symbols.c (Fdefvar): ignore non-stringp documentation
-
-2000-07-30 John Harper <john dcs warwick ac uk>
-
- * repint.h: added `#define rep_INTERNAL 1'
-
- * rep_lisp.h, datums.c: allocate the '() datum statically, then
- #define Qnil to this location internally to the library
-
- * values.c, repint.h, main.c: hid dumping-specific code behind
- `#ifdef ENABLE_BROKEN_DUMPING'
-
- * values.c (rep_mark_value): removed some redundant tests
-
- * datums.c (Qnil): now defined here, no longer a symbol, but a
- datum denoting end-of-list and boolean-false
- * symbols.c: don't intern `nil'
-
- * lispcmds.c, lisp.c: minor changes for Qnil no longer being a
- symbol
-
-2000-07-29 John Harper <john dcs warwick ac uk>
-
- * lispmach.c, bytecodes.h (OP_APPLY): new instruction, applies
- a function to a list of arguments. Implementation handles tail
- recursive calls properly (also bumped bytecode minor version)
-
- * lisp.c (eval): when recognizing tail recursive function
- calls, also handle calls made using the `apply' subr
-
- * symbols.c, datums.c: #f and #t are now just normal symbols.
- However their `#' doesn't get quoted when printed
-
- * numbers.c (Fdivide): if only one argument, compute (/ 1 X)
-
-2000-07-28 John Harper <john dcs warwick ac uk>
-
- * lispcmds.c (rep_lispcmds_init): check REP_LOAD_PATH and
- REP_DL_LOAD_PATH for colon-separated directories to prepend to
- load-path and dl-load-path respectively. Don't add
- LD_LIBRARY_PATH anymore
-
- * lispmach.c: reimplemented bytecode profiling
-
- * lispcmds.c (Fload_file, Fload_dl_file): abstracted from
- Fload, provide a more primitive interface to loading files (no
- path searching of file-suffixing)
-
- * lispcmds.c (Fload): don't declare trying_dl inside #ifdef
- HAVE_DYNAMIC_LOADING, it's used always
-
-2000-07-27 John Harper <john dcs warwick ac uk>
-
- * structures.c, repint.h, lispmach.c, lisp.c: apply_bytecode
- field of structures is now null to denote the default
- interpreter, and anything else just gets called. Non-bytecode
- enabled closures get a function that just returns an error
-
- * rep.c: deleted usage function
-
- * main.c: make no effort to handle --help, let applications or
- scripts do it instead
-
- * lispcmds.c (Fload): when looking for an entry in the
- after-load-alist, if a structure was returned, search for the
- name of that structure
-
-2000-07-25 John Harper <john dcs warwick ac uk>
-
- * repint.h: make all bitfields unsigned (patch from Albert
- Chin-A-Young <china thewrittenword com>)
-
- * numbers.c: on Solaris use LLONG_{MIN,MAX} (patch from Albert
- Chin-A-Young <china thewrittenword com>). Always define
- LONG_LONG_{MIN,MAX} if it doesn't already exist, not only if
- not using gmp
-
-2000-07-24 John Harper <john dcs warwick ac uk>
-
- * macros.c (Fmacroexpand_1): do autoloading of macros here
- * lisp.c (funcall): remove kludge to call macros
-
- [ fixes the bug where macros could be called when they
- shouldn't have been able to be (because the above-mentioned
- kludge had a test inverted) ]
-
-2000-07-23 John Harper <john dcs warwick ac uk>
-
- * fake-libexec: script to fake the module hierarchy for
- uninstalled shared objects
-
- * values.c, unix_processes.c, unix_main.c, unix_dl.c, timers.c,
- tables.c, symbols.c, structures.c, streams.c, repsdbm.c,
- repint_subrs.h, repint.h, repgdbm.c, rep_subrs.h, rep.c,
- record-profile.c, readline.c, numbers.c, misc.c, main.c,
- macros.c, lispmach.c, lispcmds.c, lisp.c, gettext.c, fluids.c,
- find.c, files.c, datums.c, continuations.c: changed the module
- layout that's used when adding subroutines
-
- [ previous names are given aliases to preserve compatibility ]
-
- * files.c (file_handler_ref): new function, looks for symbol in
- rep.io.file-handlers module
-
- * unix_dl.c: don't handle `rep_dl_feature' or `rep_dl_subrs'
- anymore, just print a message to the effect that they're being
- ignored
-
- * structures.c (Fexport_bindings): new function
-
- * structures.c: changed to using a 4-way set-associative cache
- instead of direct-mapped. Avoids almost all conflict misses
- induced by the larger number of modules. Also halved the number
- of sets (so the overall size doubles)
-
- * repint.h, structures.c: divide by 8 instead of 16 when
- hashing symbol addresses
-
- * rep.c: load `rep/user' instead of `rep'
-
- * numbers.c: on AIX use LONGLONG_INT instead of LONG_LONG_INT
- (adapted from Dan McNichol <mcnichol austin ibm com>)
-
- * lispcmds.c (Fcase): deleted, now a macro
-
-2000-07-21 John Harper <john dcs warwick ac uk>
-
- * unix_files.c (rep_structure_file): new function, do the
- structure-name -> file-name conversion (currently: `tr . /')
-
- * structures.c (Fintern_structure): convert the structure name
- to a file name before trying to load it
-
- * structures.c: renamed all the %foo functions as foo (except
- for %structure-ref, since it may return #<void>). Updated all
- callers
-
- * structures.c (rep_alias_structure): new function, create an
- extra name for the current structure
- (rep_push_structure_name): new version of rep_push_structure
- that accepts a lisp string or symbol
-
-2000-07-20 John Harper <john dcs warwick ac uk>
-
- * version 0.12.4
-
- * Makefile.in: include $(LIBS) and $(GMP_LIBS) when linking
- librep.la
-
- * Makefile.in: libtool needs to be told what mode to use,
- because sometimes $(CC) is a wrapper script with a funny name
- (from David Kaelbling <drk sgi com>)
-
- * lisp.c (rep_call_lisp4): fix stupid typo (from David
- Kaelbling <drk sgi com>)
-
-2000-07-19 John Harper <john dcs warwick ac uk>
-
- * structures.c (F_structure_set): if setting to a void value,
- remove the binding
-
-2000-07-18 John Harper <john dcs warwick ac uk>
-
- * structures.c: only keep hit/miss info when DEBUG is defined.
- Also record type of misses: collision, conflict or other
- (F_structure_set): don't invalidate the binding we modify, it's
- the _binding_ itself that's cached, not its value
- (lookup_or_add): removed all cached bindings for the symbol
- being added
-
-2000-07-17 John Harper <john dcs warwick ac uk>
-
- * lisp.c (rep_load_autoload): removed stuff to autoload modules
- -- it was broken anyway
-
-2000-07-16 John Harper <john dcs warwick ac uk>
-
- * numbers.c: check for overflow when using rep_longlong as
- makeshift bignums. Convert to flonums when they overflow
-
-2000-07-15 John Harper <john dcs warwick ac uk>
-
- Work to allow alternative bytecode interpreters to be used:
-
- * lisp.c (rep_bytecode_interpreter): deleted
-
- * structures.c (F_make_structure): inherit `apply_bytecode'
- field from current structure (or use default bytecode
- interpreter if no current structure)
- (F_structure_install_vm): new function
-
- * lispmach.c (vm): when calling bytecode, check if calling the
- same virtual machine or a different one
- (Frun_byte_code): when called with a structure as first arg,
- install the vm into that structure
-
- * repint.h (rep_struct): moved `exclusion' and `export_all'
- flags into the car. Added `apply_bytecode' field -- the
- bytecode interpreter to use for functions with this structure
- in their closure
- (rep_USE_FUNARG, rep_USE_DEFAULT_ENV, rep_PUSH_CALL,
- rep_POP_CALL): don't need to handle bytecode interpreter now
-
- * rep_lisp.h (rep_FF_NO_BYTE_CODE): deleted
-
- * symbols.c (Fmake_closure): don't set NO_BYTE_CODE flag
-
-2000-07-15 John Harper <john dcs warwick ac uk>
-
- * symbols.c (symbol_print): stop `+' and `-' symbols being
- escaped
-
- * Makefile.in: make rep-config depend on Makefile
-
- * lisp.c (rep_call_lispn): was checking for
- `rep_bytecode_interpreter == 0' too early
-
- * continuations.c: only include call/cc and threading if
- preprocessor macro `WITH_CONTINUATIONS' is defined
-
- * numbers.c: only include bignum/rational support if
- preprocessor macro `WITH_GMP' is defined. Else use `long long'
- for non-fixnum integers, and flonums for everything else.
- (Doesn't check for overflow from long long)
-
-2000-07-14 John Harper <john dcs warwick ac uk>
-
- * lispcmds.c (Fraise_exception): this replaces Fthrow as most
- primitive
-
- * files.c (rep_get_fh_env): made static, only this file uses it
-
- * numbers.c, values.c: don't declare non-static inline
- functions, C99 makes `inline' imply `static'
-
- * record-profile.c: added alloca magic to start of file
-
-2000-07-13 John Harper <john dcs warwick ac uk>
-
- * record-profile.c (test_interrupt): add null statement after
- `skip:' label to make it ANSI-legal
-
- * lisp.c (rep_string_print): print to a fixed size local
- buffer, instead of outputting a character at a time (this
- avoids unneeded system calls when printing to processes)
-
- * symbols.c (symbol_print): print to a local buffer, then
- output in one shot. Also correctly quote symbol names that
- would otherwise be read as numbers
-
- * unix_main.c (rep_sys_os_init): check that `environ != 0'
-
-2000-07-12 John Harper <john dcs warwick ac uk>
-
- * version 0.12.3
-
-2000-07-11 John Harper <john dcs warwick ac uk>
-
- * macros.c (Fmacroexpand_1): new function, does a single macro
- expansion (without caching the result). `macro-environment' may
- now be a structure instead of a function, in which case it
- defines the module in which to dereference symbols. Also if a
- function, it's a function to do a _single_ macro expansion
-
- * lispcmds.c (Fload): return nil if file is empty, not null
-
- * repgdbm.c (Fgdbm_open): check for defined (GDBM_NOLOCK)
- before using it
-
-2000-07-06 John Harper <john dcs warwick ac uk>
-
- * tuples.c (rep_sweep_tuples): performance tweaks
-
-2000-07-10 John Harper <john dcs warwick ac uk>
-
- * unix_processes.c, lispcmds.c, lisp.c, continuations.c: use
- static DEFSTRINGs instead of heap-allocating static C strings
-
- * numbers.c (rep_get_longlong_int): remember to mpz_clear ()
- the temporary bignum before exiting (prevents space leak)
-
- * rep.c: removed inner_main, make rep_call_with_barrier call
- rep_load_environment directly
-
- * Makefile.in: include LDFLAGS in the --libs data when creating
- rep-config
-
-2000-07-09 John Harper <john dcs warwick ac uk>
-
- * repgdbm.c (Fgdbm_open): added optional arg FLAGS, a list of
- symbols. Only current flag is `no-lock' which means to pass the
- GDBM_NOLOCK flag when opening the db
-
- * lispmach.c, bytecodes.h: expand OP_REFN into OP_REFN_[0-7],
- then implement each variant separately. This allows the first
- six to know exactly how many cdr's to take, at compile time,
- giving a 10% speedup (on the `prime' kernel)
-
- * unix_dl.c (load_requires): use F_intern_structure instead of
- Frequire (so that the secondary modules aren't opened in the
- caller's environment)
- (rep_open_dl_library): provide the feature (if not a
- structure), event when it was already loaded
-
-2000-05-31 Karl M. Hegbloom <karlheg debian org>
-
- * lispcmds.c (Frplaca, Frplacd): Make both return CONS, like
- Common Lisp. Update docstrings.
-
-2000-07-08 John Harper <john dcs warwick ac uk>
-
- * lispcmds.c (Fcall_with_exception_handler): new function, used
- to implement all exception handling syntax
-
- * lispcmds.c (Fcatch, Funwind_protect): deleted, now macros
- * lisp.c (Fcondition_case): deleted now a macro
-
-2000-07-07 John Harper <john dcs warwick ac uk>
-
- * lisp.c (rep_mem_error): made this just print a message abort
- (). Too many functions don't check the return value of
- allocators (such as Fcons). Perhaps have a mode where rep_alloc
- loops until it can allocate the memory..?
-
- * numbers.c (rep_foldl): new function, as rep_number_foldl, but
- doesn't check that arguments are numeric, used by Fmin and Fmax
-
- * values.c (rep_allocate_cons): fixed type error
-
-2000-07-05 John Harper <john dcs warwick ac uk>
-
- * repint.h: allocate cons cells in blocks of 8k instead of 4k
- (16 instead of 8 on 64-bit)
-
- * lispcmds.c (Fload): _only ever_ try without a suffix if the
- NO-SUFFIX option is t. This avoids picking up un-suffixed files
- by mistake (e.g. from the current directory)
-
-2000-07-04 John Harper <john dcs warwick ac uk>
-
- * rep_lisp.h (rep_INTERN_SPECIAL): call Fmake_variable_special
- () on the symbol so that it gets any default value the user has
- given it [this is compatible with previous library versions]
-
- * symbols.c (search_special_environment): inline this when
- rep_SPECIAL_ENV == Qt
-
-2000-07-03 John Harper <john dcs warwick ac uk>
-
- * rep-config.sh: source `../libtool --config' then use the
- libtool method of extracting the flags to hardcode library dirs
- when linking (-R, etc..). With help from Mark Hewitt and Dan
- Winship
-
- * lisp.c (rep_call_lispn): new function, used by
- rep_call_lisp[0-4] to call bytecode functions without consing
-
-2000-06-27 John Harper <john dcs warwick ac uk>
-
- * record-profile.c: mechanism for a basic profiler
-
-2000-06-26 John Harper <john dcs warwick ac uk>
-
- * continuations.c (rep_thread): added fields `exit_val' (value
- returned from last form in thread), `poll' and `poll_arg'
- (callback for polling when trying to wake suspended threads)
- (thread_invoke, thread_yield): poll suspended threads
- (thread_invoke): set exit_val of exited threads if they exited
- normally
- (thread_suspend): two extra args, `poll' and `poll_arg'
- (Fthread_join): new function
-
-2000-06-24 John Harper <john dcs warwick ac uk>
-
- * lispmach.c, lispcmds.c, lisp.c: when signalling Qbad_arg or
- Qmissing_arg, first element of error data is function object if
- known, else nil
-
- * readline.c (completion_generator): call the function
- rl-completion-generator in a separate thread context
-
-2000-06-23 John Harper <john dcs warwick ac uk>
-
- * gettext.c (rep_dl_init): set binding of `_' in `rep' module
- to point to the `gettext' function
-
-2000-06-22 John Harper <john dcs warwick ac uk>
-
- * lisp.c (read_symbol): don't treat `0/...' as symbols
-
- * numbers.c (rep_parse_number): [rational case] don't modify
- the input string, error out if divide-by-zero
-
- * version 0.12.2
-
- * lisp.c (read_symbol): if first character is a non-symbol
- character signal an error instead of just returning null
-
- * repint.h (inline_Fcons): only declare this `extern inline' if
- __OPTIMIZE__ is defined as well as __GNUC__ (GCC only inlines
- in optimizing compilations)
-
-2000-06-21 John Harper <john dcs warwick ac uk>
-
- * numbers.c (dup, maybe_demote, promote_dup): inline calls to
- these functions wherever their arguments are fixnums
- (promote): declare this function inline
- (ZEROP): new macro, inlines fixnum comparsion for zero
-
- [ these changes give 10% speedup on `prime' benchmark ]
-
-2000-06-19 John Harper <john dcs warwick ac uk>
-
- * structures.c (structure_exports_inherited_p): if export_all
- flag is set, then return t immediately
- (F_structure_exports_all): new function
-
-2000-06-18 John Harper <john dcs warwick ac uk>
-
- * version 0.12.1
-
- * rep.c (usage): added \n\ line terminations, from Sam Falkner
- <Sam Falkner central sun com>
-
- * lispmach.c: when CHECK_STACK_USAGE is defined, embed the
- stack assertions into the SAFE_NEXT macro. This ensures that
- the stack is checked after _all_ instructions
-
- * structures.c, macros.c: include <string.h> (and <memory.h> if
- needed) (from George Lebl <jirka 5z com>)
-
- * numbers.c: if SIZEOF_LONG == SIZEOF_LONG_LONG, then use long
- conversion functions to define long long conversions (from
- George Lebl <jirka 5z com>)
-
-2000-06-16 John Harper <john dcs warwick ac uk>
-
- * repint.h (inline_Fcons): when using GCC define this function
- `external inline'. It mimics Fcons except it will only cause a
- procedure call if the cons heap needs to grow
-
- * values.c (rep_allocate_cons): new function, factored from
- Fcons, allocates a new cons block
-
- * lispmach.c (make_bytecode_frame, vm): use inline_Fcons where
- appropriate (for speedup of 4-5%)
-
-2000-06-16 John Harper <john dcs warwick ac uk>
-
- * version 0.12
-
-2000-06-14 John Harper <john dcs warwick ac uk>
-
- * lispmach.c (vm): put rep_void_value into call stack when we
- don't have the actual arguments as a list, not Qnil
-
-2000-06-12 John Harper <john dcs warwick ac uk>
-
- * main.c (rep_handle_input_exception): don't catch uncaught
- throws at top-level, it prevents scripts throwing out of
- top-level recursive edits (maybe make this optional..?)
-
- * tables.c: don't store hash values in signed integers
-
-2000-06-10 John Harper <john dcs warwick ac uk>
-
- * lispmach.c (vm): miscellaneous minor tweaks and cleanups
-
-2000-06-09 John Harper <john dcs warwick ac uk>
-
- * repint.h: don't include <build.h>
- * lispcmds.c: include "build.h"
-
-2000-06-08 John Harper <john dcs warwick ac uk>
-
- * lispcmds.c (Fnconc): allow last arg to be non-proper-list
-
-2000-06-07 John Harper <john dcs warwick ac uk>
-
- * symbols.c (Fclosure_name): new function
-
- * numbers.c (Fquotient): raise an arith-error if tryign to
- divide by zero
-
- * datums.c: added a comparison function, recursively compares
- datum values if keys are the same
-
-2000-06-05 John Harper <john dcs warwick ac uk>
-
- * unix_processes.c: allocate a cell16 type instead of cell8
-
- * structures.c (F_external_structure_ref): allow foo#bar refs
- to succeed if `foo' has been opened but not accessed
-
- * datums.c, lisp.c: moved rep_scm_f and rep_scm_t to datums.c;
- initialize always, not just when first read
-
-2000-06-01 John Harper <john dcs warwick ac uk>
-
- * readline.c (rep_dl_init): rl-completion-generator is no
- longer declared special
-
- * lisp.c (eval): only handle ((lambda ..) ..) forms inline if
- Qlambda is still bound to #<subr lambda>
-
- * lispcmds.c (Fload): Qafter_load_alist now contains thunks,
- not forms
-
-2000-05-31 John Harper <john dcs warwick ac uk>
-
- * bytecodes.h, lispmach.c (OP_BINDOBJ): flushed
- * lispmach.c: no longer worry about object bindings, so removed
- rep_[un]bind_object
-
- * continuations.c (Fcall_with_object): do object binding
- locally (rep_[un]bind_object are gone)
-
- * lispcmds.c (Fprog1, Fwith_object): removed, now in lisp
-
-2000-05-30 John Harper <john dcs warwick ac uk>
-
- * lispcmds.c (Fwhile): removed, now in lisp
-
-2000-05-29 John Harper <john dcs warwick ac uk>
-
- Work to make the interpreter tail recursive:
-
- * lisp.c: special form subrs are now called with two repv
- arguments, the list of parameters and a boolean marking whether
- or not they occur in a function's tail position
-
- (rep_eval, funcall): new functions, as Feval or rep_funcall,
- but with an extra arg passing in tail position
-
- (rep_apply): new function
-
- (eval): where possible to tail call (tail position is t,
- called object is a closure) package the closure and evaluated
- arguments, then throw them back to the innermost
- non-tail-position lambda application
-
- (eval_lambda): when catching a tail call throw, and this is the
- innermost non-tail-position, unpackage the call and evaluate it
-
- * symbols.c, lispcmds.c: use rep_eval instead of Feval, support
- tail position arguments
-
- * lisp.c (rep_readl): fix bug when reading `#!' when not at the
- start of a file
-
- * lisp.c (rep_readl): recognize #F and #T
-
-2000-05-28 John Harper <john dcs warwick ac uk>
-
- * lisp.c, numbers.c (read_symbol, rep_readl,
- Fstring_to_number): added support for the scheme numeric
- prefixes, i.e. #b, #o, #d, #x, and #e, #i
-
-2000-05-27 John Harper <john dcs warwick ac uk>
-
- * rep_lisp.h (rep_tuple, rep_TUPLE): new structure
- (rep_CELL8P): new macro
-
- * tuples.c: abstracted the old symbol cell memory management to
- work for any cells containing two values (plus the car)
-
- * values.c (Fgarbage_collect): call rep_sweep_tuples
-
- * symbols.c, datums.c: use tuples for memory management of
- symbols and datums
-
- * datums.c (Fmake_datum): removed the PRINTER arg
- (Fdefine_datum_printer): new function, associates a datum ID
- with a PRINTER function
-
-2000-05-26 John Harper <john dcs warwick ac uk>
-
- * repint.h (POS, ABS): new macros
-
- * numbers.c (rep_parse_number): better error checking
- (rep_integer_foldl): new function, checks for INTEGERP args
- (rep_integer_gcd): new function
- (Fgcd): generalised to any number of arguments
-
-2000-05-25 John Harper <john dcs warwick ac uk>
-
- * lisp.c (rep_bind_lambda_list_1): now takes a BINDER arg, a
- function to call to bind each variable
-
- * lispmach.c: support old-style parameter specs as well as
- encoded ones
-
- * symbols.c (rep_call_with_closure): new function
-
- * repint.h, rep_lisp.h: moved closure macros and all backtrace
- stuff from rep_lisp.h to repint.h
-
- * lisp.c (rep_funcall): check if rep_bytecode_interpreter == 0
- _after_ installing the function's closure
-
- * symbols.c: lexical environment for interpreted code is now a
- list of (LEXTAG . (SYMBOL . VALUE)) so that search_environment
- can ignore bindings from compiled code. LEXTAG is a value that
- can't appear normally
- (rep_add_binding_to_env): new function
-
- * structures.c (F_eval_in_structure): now called Feval (the
- changes to the environment structure mean that it's usually
- meaningless to eval within a non-null lexical environment)
-
- * repint.h: moved some more structure defs here, so that
- lispmach.c can open-code the `refg' instruction
-
- * misc.c (Fcurrent_utime): new function, returns the current
- unix time in microseconds
- * unix_main.c (rep_utime): new function
-
- * lispmach.c (Fjade_byte_code): now called Frun_byte_code
-
- * lispmach.c: many changes, byte code subrs now store parameter
- spec as an integer (number of <required, optional, rest>
- parameters), these must now be lexical bindings. This was added
- since function-call heavy programs were spending too much time
- in rep_bind_lambda_list_1 (e.g. 17% for qscheme's fibonacci
- benchmark). The lexical environment of compiled code is no
- longer an alist (SYMBOL . VALUE); it's now just the list of
- values
-
- * lisp.c (copy_to_vector): new function, factored out of
- rep_bind_lambda_list
- (rep_bind_lambda_list_1): removed `&aux' code
- (rep_funcall): obey the new bytecode interpreter calling
- conventions (passing arg values in an array)
- (Feval): this is no longer the lisp-visible `eval' function
-
- * lisp.c (init_scm_booleans): remember to statically mark these
- objects
-
- * bytecodes.h (OP_EVAL): deleted
- (OP_BIND): no longer has an argument, has the OP_EVAL opcode
-
-2000-05-24 John Harper <john dcs warwick ac uk>
-
- * lispcmds.c (Fload): gc-protect the file name while opening
- the file
-
-2000-05-23 John Harper <john dcs warwick ac uk>
-
- * bytecodes.h, lispmach.c (OP_TEST_SCM, OP_TEST_SCM_F): new
- instructions
-
- * rep.c: updated usage text for new options
-
-2000-05-22 John Harper <john dcs warwick ac uk>
-
- * numbers.c (Fstring_to_number): return Qnil if the string
- couldn't be parsed (not rep_NULL!)
-
- * lispcmds.c (Fappend): last arg may be a non-list now, to form
- an improper output list
-
-2000-05-21 John Harper <john dcs warwick ac uk>
-
- * values.c (cons_sweep): don't update global variables each
- iteration, update temps then copy to globals before exiting
-
-2000-05-18 John Harper <john dcs warwick ac uk>
-
- * rep.h.in (rep_PTR_SIZED_INT_SIZEOF): new define, set by
- configure (this used to be a sizeof () statement, but it's
- needed at cpp-time now)
-
- * rep_lisp.h (rep_CELL_ALIGNMENT): this is now set to the size
- of the `repv' type (not hardcoded to 4). Apparently this is
- needed for ia64
-
- * main.c (check_configuration): function to check some of the
- values supplied to configure, will suggest suitable values if
- any are set wrongly
-
- * main.c (rep_init_from_dump): switched order of calls to
- rep_values_init () and rep_lisp_init ()
-
-2000-05-17 John Harper <john dcs warwick ac uk>
-
- * lisp.c (Fdebug_frame_environment): was matching frame
- pointers one link too late
- (Fdebug_inner_frame, Fdebug_outer_frame): new functions for
- traversing the frame pointers
-
-2000-05-16 John Harper <john dcs warwick ac uk>
-
- * unix_dl.c (rep_open_dl_library): don't call Fprovide on
- features that are provided by structures (since the structure
- hasn't been imported yet)
-
- * regexp.c (regnarrate, regprop): made non-static
-
- * lisp.c (rep_handle_error): removed all code to print errors,
- rely totally on Qerror_handler_function
-
-2000-05-15 John Harper <john dcs warwick ac uk>
-
- * numbers.c (string->number, number->string): implemented these
- functions
-
- * lisp.c (Fdebug_frame_environment): only need to return two
- values now, the saved environment and the saved structure, do
- this in a cons cell not a list
-
- * lisp.c (read_symbol): fix bug of allowing first non-zero
- digit of octal numbers to be 8 or 9
-
- * unix_dl.c (rep_open_dl_library): ignore null dlname entries
-
-2000-05-13 John Harper <john dcs warwick ac uk>
-
- * structures.c (F_eval_in_structure): optional third arg, the
- environment to install
-
- * numbers.c (rep_compare_numbers): new function, the original
- comparison method that ignores exactness
- (number_cmp): now treats inexact and exact versions of the same
- number as being different (i.e. for eql and equal)
- (rep_number_max, rep_number_min): new functions, propagate
- any inexactness in their arguments
-
- * lispmach.c: handle numeric comparisons correctly, call out to
- handle max and min
-
- * lispcmds.c (Fmemql): new function, member using eql
- for comparisons
- (=, >, <, >=, <=): compare numbers specially (folding exactness)
- (min, max): moved to numbers.c
- (Fcase): use Feql for comparisons
-
- * bytecodes.h, lispmac.h.c (OP_MEMQL, OP_NUM_EQ): new insns
-
-2000-04-29 John Harper <john dcs warwick ac uk>
-
- * lispmach.c: borrowed and adapted some code from OCaml virtual
- machine to explicitly assign vm registers to physical registers
-
-2000-04-24 John Harper <john dcs warwick ac uk>
-
- * lispmach.c: if GNU CC is detected, then build an indirectly
- threaded interpreter using its computed goto, and label
- address, features. Initially from Ceri Storey, completed by me
-
- * main.c, lisp.c, lispmach.c: call Fgarbage_collect with nil
- arg not t
-
-2000-04-23 John Harper <john dcs warwick ac uk>
-
- * repint.h (rep_struct): new flag `export_all'. When set, _all_
- local bindings in the structure are exported automatically
-
- * structures.c: handle the `export_all' structure flag
- (rep_structure_exports_all): new function
-
- [ Note that this auto-export feature is intended for
- dynamically defined modules, e.g. the *root-structure* of
- extensible programs. ]
-
-2000-04-22 John Harper <john dcs warwick ac uk>
-
- * macros.c: set macro-environment to nil initially
-
- * symbols.c (Fclosure_structure): new function, for the
- compiler
-
- * numbers.c (Fintegerp): return t for inexact integers (i.e.
- floats with no fractional part)
-
-2000-04-21 John Harper <john dcs warwick ac uk>
-
- * misc.c (Qoperating_system, Qrep_version, Qrep_interface_id,
- Qrep_build_id, Qupcase_table, Qdowncase_table, Qflatten_table):
- now lexically bound
-
- * bytecodes.h, lispmach.c (OP_FLUID_REF, OP_FLUID_SET,
- OP_FLUID_BIND): new insns
-
- * fluids.c: new file, provides anonymous dynamic bindings
- * main.c: call rep_fluids_init ()
-
- * numbers.c (Frealp, Finexactp, Frationalp): deleted, in lisp
-
-2000-04-20 John Harper <john dcs warwick ac uk>
-
- * numbers.c: don't produce exact results from inexact inputs
-
-2000-04-18 John Harper <john dcs warwick ac uk>
-
- More work to reduce VM consing, increases performance
- noticeably:
-
- * lisp.c (rep_bind_lambda_list_1): the inner core of
- rep_bind_lambda_list in a separate function, takes an array of
- values to bind to variables
-
- * lispmach.c: when calling compiled functions use
- rep_bind_lambda_list_1 to avoid consing a list of arguments
-
- * lispmach.c: the binding stack is now a vector allocated on
- the C stack (like the value stack), this reduces the amount
- consing done by the VM. The maximum size of the binding stack
- is stored in the upper 16 bits of the STKREQ argument
-
- * lispcmds.c (Fload): never return an unitialized result value
-
- * rep_lisp.h (rep_COMPILED_STACK): don't unbox this
-
-2000-04-17 John Harper <john dcs warwick ac uk>
-
- * symbols.c, repint.h, lispmach.c: track number of variable
- bindings in frame using a single integer, not a pair (limits
- number of bindings in each frame to 2^16)
-
- * structures.c (F_name_structure): flush the ref cache
-
- * streams.c (Fstreamp): deleted
- (Fpeek_char, Finput_stream_p, Foutput_stream_p): added
-
- * lisp.c (F_load_autoload): lisp function for loading autoload
- stubs
-
-2000-04-15 John Harper <john dcs warwick ac uk>
-
- * structures.c (F_eval_in_structure): set rep_env to Qnil while
- evaluating
-
- * lisp.c (rep_env): removed the kludge that only if the last
- element is dotted to `t' will the global environment be
- searched
- * lispcmds.c (Fload): set rep_env to Qnil not Qt while loading
- * lispmach.c, bytecodes.h: removed OP_BINDENV and related code
- * rep_lisp.h (rep_USE_DEFAULT_ENV): set rep_env to Qnil
-
- * symbols.c (Fsave_environment, Fset_environment): deleted
- (search_environment): only ever returns cons cell or nil
-
- * symbols.c (Fsymbol_value, Fdefault_value): fixed bug of
- allowing special variables not in the environment to be read
- (i.e. the gaol was broken for specials)
-
- * unix_dl.c (rep_open_dl_library): use rep_STRUCTUREP instead
- of F_structurep
-
- * symbols.c (Fset_special_environment): now takes a second
- argument, the structure whose environment should be set
-
- * repint.h, structures.c: moved rep_structure type definition
- and some macros to <repint.h>
-
- * rep_lisp.h (rep_funarg): removed `special_env' field, now
- stored per structure (module)
-
-2000-04-14 John Harper <john dcs warwick ac uk>
-
- * lispmach.c, bytecodes.h: removed OP_DSET bytecode
-
- * lisp.c (rep_bind_lambda_list): bind parameters in last-first
- order so that they end up in the environment in first-first
- order (same as when bound by the compiler)
-
- * bytecodes.h: bumped major version to 10 to reflect the new
- order of lexical bindings made by function application
- (OP_UNQUOTEALL_0, OP_POP_ALL): new instructions
- * lispmach.c (OP_UNBINDALL_0, OP_POP_ALL): implemented
-
-2000-04-12 John Harper <john dcs warwick ac uk>
-
- * values.c (Fgarbage_collect): return stats if arg is t, not if
- it's nil
-
- * rep_lisp.h (rep_funarg): removed next and fh_env fields
- * files.c: store fh_env in current structure, associated with
- an uninterned symbol
- * symbols.c: allocate closures in blocks of N
-
- * lisp.c (Qdebug_entry, Qdebug_exit, Qdebug_error_entry): these
- are now special variables, so they can be accessed from within
- any structure
-
- * datums.c (Fdatum_set): new function
-
- * structures.c (F_set_interface): remove the clause that the
- passed-in interface may be modified, liable to introduce bugs
-
- * symbols.c (Fdefault_value, Fset_default, Fdefault_boundp):
- don't only look at special bindings, look for global lexical
- bindings as well
-
- * lisp.c (rep_load_autoload): when throwing error, don't refer
- to uninitialized variable
-
-2000-04-11 John Harper <john dcs warwick ac uk>
-
- * symbols.c (Fdefvar): use default-boundp instead of boundp
- when checking if whether or not to set the value
- (Fset_default): if symbol isn't already special, call
- Fmake_variable_special () on the symbol
- (Fmake_variable_special): if symbol isn't already special, call
- rep_get_initial_special_value () to try to forward an existing
- value
-
-2000-04-10 John Harper <john dcs warwick ac uk>
-
- * symbols.c (Fdefvar): fixes for working with predefined
- specials
-
- * lispcmds.c (Fload): ignore the NO-SUFFIX parameter while
- searching for dl libraries
-
- * unix_dl.c (rep_open_dl_library): when opening a structure,
- correctly set feature_sym to the name of the structure
-
-2000-04-09 John Harper <john dcs warwick ac uk>
-
- * rep_lisp.h (rep_symbol): removed `prop_list' field
- * symbols.c (plist_structure): namespace for property lists
-
- * unix_dl.c (rep_open_dl_library): don't return 0 if the dl has
- already been loaded
-
- * structures.c (F_intern_structure): always load from within
- the `*root-structure*'
- (Frequire): don't call %intern-structure, for the above reason,
- do everything locally
- (F_make_closure_in_structure): new function
-
-2000-04-07 John Harper <john dcs warwick ac uk>
-
- Many changes to give rep a module system:
-
- * structures.c: new file, provides the first-class environment
- objects needed to implement the module system, and the core of
- the module system itself (mostly inspired by Scheme48)
-
- * symbols.c: dereference global bindings through structures
- (print_symbol): escape `#' characters
- (Fdefvar): if first defvar for the symbol, call
- rep_get_initial_special_value to try to forward any value set
- by the user
- (Fmark_symbol_defined): deleted
- (Fset_const_variable, Fconst_variable_p): deleted, immutable
- bindings are provided by structures.c
- (Qnil, Qt): no longer made special
-
- * rep_lisp.h (rep_funarg, struct rep_call_stack): added fields
- to store the current structure
- (rep_ADD_INTERNAL_SUBR): new macro, doesn't export the subr
- (rep_symbol): removed the `value' field
-
- * values.c (rep_gc_threshold): doubled to 200k
- (rep_mark_value): updated for object changes
-
- * unix_dl.c (rep_open_dl_library): return a repv result, the
- structure provided by the dl if applicable
-
- * main.c (rep_init_from_dump): call rep_structures_init () and
- rep_datums_init ()
- (rep_load_environment): handle the caller having a different
- current structure than the default structure
-
- * macros.c (Fmacroexpand): ENVIRONMENT is now a function to
- call to do the actual expansion if non-nil; this also
- simplifies the memoization
-
- * lispmach.c (Fjade_byte_code): access globals in current
- structure, deprecated OP_DSET, added OP_STRUCT_REF and
- OP_SCM_TEST
-
- * bytecodes.h (OP_STRUCT_REF, OP_SCM_TEST): new bytecodes
-
- * lispcmds.c (Fload): removed the IN-CURRENT-ENV option;
- filename suffixes are stored in a cons cell in %load-suffixes
- in the current structure; return value of last loaded form
- evaluated
- (Ffeaturep, Fprovide, Frequire): moved to structures.c
-
- * lisp.c (rep_readl): read foo#bar as (structure-ref foo bar)
- (rep_readl, rep_scm_f, rep_scm_t): support scheme booleans
- (rep_load_autoload): if the filename is a symbol, require that
- module
- (eval): increment and check recursion depth counter
-
- * timers.c, tables.c, repsdbm.c, repgdbm.c, readline.c,
- gettext.c: modularized -- these each create their own structure
-
- * files.c (rep_call_file_handler): for now, dereference file
- handler names in the default structure (should probably use a
- separate namespace..)
-
- * datums.c: unmodularized, now part of the core
-
- * continuations.c: track addition of structure field to call
- stack
-
-2000-04-13 John Harper <john dcs warwick ac uk>
-
- * version 0.11.3
-
-2000-04-12 John Harper <john dcs warwick ac uk>
-
- * lisp.c (rep_load_autoload): when throwing error, don't refer
- to uninitialized variable (merged from HEAD)
-
-2000-04-09 John Harper <john dcs warwick ac uk>
-
- * version 0.11.2
-
-2000-04-06 John Harper <john dcs warwick ac uk>
-
- * values.c, lispmach.c, lisp.c: removed all min-stack stuff, an
- ancient relic from the Amiga
-
- * lisp.c (fast_getc): inlined getc function that handles
- reading from files locally (seems to decrease start up time by
- around 25%), only called from within loops
-
- * values.c (cons_sweep): don't try to free unused allocation
- blocks, profiling shows this function takes around 10% time
- cumulatively, so attempt to optimize it
-
- * continuations.c (primitive_call_cc): save current regexp data
- across continuations
-
-2000-04-03 John Harper <john dcs warwick ac uk>
-
- * symbols.c (symbol_cmp): compare symbol names if non-equal
-
- * main.c (rep_load_environment): remember to protect the file
- name until it's actually used
-
-2000-03-29 John Harper <john dcs warwick ac uk>
-
- * misc.c (rep_misc_init): removed references to `value' field
- of symbols
-
- * symbols.c (Fmark_symbol_defined): new function, sets
- rep_SF_DEFVAR flag if allowed to
- (Fdefine_value): deleted, now a macro
-
- * lispmach.c (Fjade_byte_code): implement the OP_DSET
- instruction inline (with comment that it's deprecated)
-
- * lispcmds.c (Fdefmacro, Fdefun, Fdefconst): deleted, now
- macros
-
-2000-03-28 John Harper <john dcs warwick ac uk>
-
- * numbers.c (rep_number_mul): fix small typo
-
-2000-03-22 John Harper <john dcs warwick ac uk>
-
- * lisp.c (rep_readl): handle EOF terminated `#\X' formatted
- characters
-
-2000-03-21 John Harper <john dcs warwick ac uk>
-
- * unix_dl.c: `#define RTLD_GLOBAL 0' if configure detected a
- version of Tru64 with a broker loader; this means that librep
- now fully supports Tru64 (from Aron Griffis
- <agriffis bigfoot com>)
-
-2000-03-20 John Harper <john dcs warwick ac uk>
-
- * continuations.c (thread_invoke): calculate rep_sleep_for ()
- length correctly (was subtracting twice!)
-
-2000-03-19 John Harper <john dcs warwick ac uk>
-
- * lisp.c (rep_bind_lambda_list, rep_eval_lambda): both have an
- extra argument, EVAL-IN-ENV. When true rep_bind_lambda_list
- won't evaluate the arguments in the _previous_ innermost
- environment, but the _current_ innermost environment. All
- callers changed.
-
- (eval): call inline lambda expressions directly, without
- evaluating the car to a closure that is then discarded
- immediately
-
-2000-03-15 John Harper <john dcs warwick ac uk>
-
- * datums.c: plugin for user-defined opaque data types
-
-2000-03-14 John Harper <john dcs warwick ac uk>
-
- * lisp.c (rep_readl): some work to accept standard CL and
- Scheme syntax -- recognize `#| ... |#' block comments; read
- characters as #\X or #\WORD for WORD in: space, newline,
- backspace, tab, linefeed, return, page, rubout; read vectors as
- `#(...)'
-
- * lispcmds.c (Fprog2): deleted, now a macro
-
- * lispcmds.c (Funwind_protect): noted in doc string that
- behaviour in conjunction with call/cc is undefined
-
- * symbols.c (Fsetq_default): deleted, now a macro
-
-2000-03-13 John Harper <john dcs warwick ac uk>
-
- * lisp.c (rep_bind_lambda_list): call Fcopy_sequence () on
- &rest values (may prevent the program being modified)
-
- * macros.c: new file, implements Fmacroexpand (). Added a
- memoization facility for when env == nil. Caches all macro
- expansions in an eq hash table, discards cached values each gc
-
- * lispcmds.c (Fdefmacro): call rep_macros_clear_history ()
- * main.c (rep_init_from_dump): call rep_macros_init ()
- * values.c (Fgarbage_collect): call rep_macros_before_gc ()
-
- * symbols.c (Flet, Fletstar): deleted, now macros
- * lispcmds.c (Ffunction, Fif, Fand, For): ditto
-
-2000-03-12 John Harper <john dcs warwick ac uk>
-
- * version 0.11.1
-
- * lispmach.c (Fjade_byte_code): open-coded some fixnum
- arithmetic operations
-
- * unix_dl.c (x_dlsym) [DLSYM_NEED_USCORE]: use alloca instead
- of malloc
-
- * numbers.c (rep_parse_number): some optimizations
-
-2000-03-11 John Harper <john dcs warwick ac uk>
-
- * lispcmds.c (Fload): use Fexpand_file_name to concatenate
- file names with directories
-
- * tables.c (Fequal_hash): handle non-fixnum numbers
-
-2000-03-10 John Harper <john dcs warwick ac uk>
-
- * rep.c, main.c: updated usage information
-
- * repgdbm.c (Fgdbm_fetch): always copy the returned string,
- since it may not be zero terminated
-
-2000-03-07 John Harper <john dcs warwick ac uk>
-
- * numbers.c (maybe_demote): fixed typo when demoting rationals
- to bignums
-
- * streams.c (Fformat): implemented the `+' and ` ' flags
-
-2000-03-05 John Harper <john dcs warwick ac uk>
-
- * version 0.11
-
-2000-03-02 John Harper <john dcs warwick ac uk>
-
- * numbers.c: in most functions possibly returning floats,
- return integers where possible
-
-2000-03-01 John Harper <john dcs warwick ac uk>
-
- * numbers.c (rep_print_number_to_string): avoid trying to print
- non-numeric things as numbers
-
- * misc.c (Fsystem): given an interactive decl
-
- * repgdbm.c: new file, binding for GDBM. Mostly compatible with
- sdbm binding
-
- * repdoc.c: use GDBM instead of SDBM
-
- * values.c (rep_box_string): new function, create a lisp string
- from a malloc-allocated string (and assume responsibility for
- its memory)
-
-2000-02-29 John Harper <john dcs warwick ac uk>
-
- * symbols.c (symbol_print): try harder to never print something
- that may be read as a number
-
- * numbers.c (number_cmp): fix stupid bug of subtracting floats
- to see if they're equal, but then truncating result to an
- integer (e.g. (= 0.2 0.8) -> t)
-
-2000-02-28 John Harper <john dcs warwick ac uk>
-
- * timers.c, repsdbm.c, readline.c, gettext.c: don't use
- rep_dl_subrs or rep_dl_feature (some BSD systems have (had?)
- problems with data segment relocations)
-
-2000-02-27 John Harper <john dcs warwick ac uk>
-
- * values.c: represents strings as a two-word header and a
- separate chunk of data. This saves one word per string, and may
- also improve gc performance (only need to touch (contiguous)
- headers when gc-ing, so better dcache performance)
-
- * streams.c (Fformat): use rep_print_number_to_string for all
- numeric conversions
-
- * rep_lisp.h: moved unnecessary definitions to .c files.
- Changed how strings are represented
-
- * lispcmds.c (=, /=): these functions now accept N arguments,
- and do a general (i.e. not just numeric) comparison
-
- * lispmach.c, bytecodes.h: deleted OP_NUMEQ and OP_NUM_NOTEQ;
- OP_LSH becomes OP_ASH
-
-2000-02-25 John Harper <john dcs warwick ac uk>
-
- * rep.h.in: added rep_long_long define, will be `long long' if
- available, `long' otherwise
-
- * rep_lisp.h: new type rep_Number, only the bits in the car are
- publicly accessible
- * numbers.c: new file, handles all numeric stuff
- * values.c: don't register numeric types, mark rep_Number
- * main.c: call rep_numbers_init ()
- * lisp.c: parse new number representations correctly
- * lispcmds.c: moved all arithmetic functions to numbers.c
-
- * bytecodes.h, lispmach.c (OP_QUOTIENT, OP_FLOOR, OP_CEILING,
- OP_TRUNCATE, OP_ROUND, OP_EXP, OP_LOG, OP_SIN, OP_COS, OP_TAN,
- OP_SQRT, OP_EXPT): new instructions
-
-2000-02-23 John Harper <john dcs warwick ac uk>
-
- * continuations.c (rep_max_sleep_for): handle root_barrier == 0
-
-2000-02-17 John Harper <john dcs warwick ac uk>
-
- * lispmach.c (OP_DSET): call Fdefine_value () to implement this
- instruction
-
- * lispcmds.c (Ffunction): dereference symbols, instead of
- enclosing them
-
-2000-02-14 John Harper <john dcs warwick ac uk>
-
- * lispmach.c (Fjade_byte_code): fix typo in OP_SETG instruction
-
- * tables.c: added support for weakly-keyed hash tables
-
- * continuations.c: test if root_barrier == 0 at sensible points
-
-2000-02-12 John Harper <john dcs warwick ac uk>
-
- * files.c (rep_file_fdopen): new function, open a file object
- from a file descriptor and libc mode string
-
-2000-02-09 John Harper <john dcs warwick ac uk>
-
- * lisp.c (rep_load_autoload): handle overwriting macro
- definitions
- (rep_funcall): fixed the macro autoload magic
-
- * lispmach.c (Fmake_byte_code_subr): allow a single symbol as
- the arg spec
-
-2000-02-08 John Harper <john dcs warwick ac uk>
-
- * lisp.c (Fmacroexpand): while evaluating the macro expansion,
- bind the special variable macro-environment to the environment
- passed into macroexpand. This allows macros to expand inner
- macro forms correctly
-
- * continuations.c (Fthread_queue_length): deleted this
- function, it's pretty useless
-
- * readline.c (rep_dl_init): set rl_basic_quote_characters to
- include only the double-quote character (from Matt Krai)
-
- * continuations.c (rep_max_sleep_for): new function, returns
- the maximum number of milliseconds that the current thread may
- sleep for
- * unix_main.c (wait_for_input): use rep_max_sleep_for
-
- * continuations.c (make_thread): protect the thunk against gc
- until it's actually called
-
- * lisp.c (rep_funcall): remember to switch environment before
- loading autoload cells
-
-2000-02-07 John Harper <john dcs warwick ac uk>
-
- * continuations.c (unlink_thread): unlink from the actual
- barrier the thread is in, not the current root
- (thread_suspend): don't use LONG_MAX when setting timeval
- members, it produces warning with the weird Solaris definition
-
- * lisp.c (rep_funcall): don't install closed environments until
- last possible moment (notably, not until _after_ evaluating any
- arguments)
-
- * lisp.c (read_symbol): make "," and "`" terminate symbols
-
- * lispmach.c (bound_specials): fixed for new way of remembering
- bound variables
-
- * lispcmds.c (Fload): fix interpreted-mode breaking dl loads
-
-2000-02-06 John Harper <john dcs warwick ac uk>
-
- * lispmach.c, bytecodes.h (rep_FORBID, rep_PERMIT): new
- instructions
-
- * lisp.c: call debugger in its own dynamic root
-
- * rep.c: create a dynamic root
-
- * continuations.c: introduced the idea of continuation
- barriers, a method of limiting and/or detecting control flow
- when using continuations. Can be similar to Guile's dynamic
- roots. Added support for software threads
-
- (call-with-object, call-with-dynamic-root, call-with-barrier,
- continuation-callable-p): functions for manipulating barriers
-
- (make-thread, thread-yield, thread-delete, thread-suspend,
- thread-wake, threadp, thread-suspended-p, current-thread,
- thread-queue-length, thread-forbid, thread-permit): thread
- functions
-
- * rep_lisp.h (rep_MAY_YIELD, rep_FORBID, rep_PERMIT): new
- macros dealing with thread preemption
- (rep_TEST_INT_SLOW): call rep_MAY_YIELD
-
- * lisp.c, lispmach.c (rep_funcall, Fjade_byte_code): call
- rep_MAY_YIELD (preempt threads) at suitable points
-
- * unix_main.c (wait_for_input): if it might be beneficial,
- don't sleep in select (), just poll then yield
-
- * misc.c (rep-interface-id): new variable
-
-2000-02-04 John Harper <john dcs warwick ac uk>
-
- * tables.c (table_mark): remember to mark hash_fun and
- compare_fun
-
- * tables.c (Fequal_hash): improved this to break off at a
- certain depth of recursion, not to resort to eq hashing for
- unknown types (use their type code instead), and don't use XOR
- to combine cons hashes
- (hash_value): do direct calls for all predefined hash functions
-
-2000-02-03 John Harper <john dcs warwick ac uk>
-
- * lispmach.c: handle new binding mechanisms, new way of binding
- exception handlers `(error . (PC . SP))', try to optimize
- function inlining (for ultrasparc anyway)
-
- * lisp.c (rep_special_bindings): new variable, alist of special
- variable bindings currently in effect
- (max-lisp-depth): now a single-parameter function
-
- * symbols.c (rep_bind_symbol, rep_unbind_symbols): now store
- binding history as a _single_ cons cell (SPECIALS . LEXICALS),
- the number of bindings of each type
- (Fset, Fsymbol_value, Fdefault_value, Fset_default): handle
- deep binding of special variables
-
- * values.c (garbage-threshold, idle-garbage-threshold): now
- single-parameter functions, not variables
-
- * lisp.c, lispcmds.c, rep_lisp.h, symbols.c, values.c: removed
- all rep_Var cruft
-
- * files.c, lisp.c, lispcmds.c, main.c, misc.c, unix_dl.c,
- unix_main.c: don't access `SYM->value' directly, use Fset and
- Fsymbol_value
-
- * main.c: removed --warn-shadowing option
-
- * continuations.c: save and restore rep_special_bindings in the
- environment now that special bindings are deep-bound
-
-2000-02-02 John Harper <john dcs warwick ac uk>
-
- * main.c (rep_stack_bottom): moved here from continuations.c
- * continuations.c: made into a plugin (feature `callcc')
-
- * lispcmds.c (Fload): search for foo.la before libfoo.la
-
-2000-02-01 John Harper <john dcs warwick ac uk>
-
- * tables.c: new file, implements hash tables
-
- * lispmach.c (Fjade_byte_code): check if needing to gc before
- entering the main loop (needed when tail-calling). Also, check
- for exceeding max-lisp-depth. (First pointed out by Ceri Storey)
-
- * rep-xgettext.jl: new options --include and --only-commands
-
- * unix_dl.c, timers.c: remember alloca preprocessor magic
- (pointed out by Daniel Burrows)
-
-2000-01-31 John Harper <john dcs warwick ac uk>
-
- * repdoc.c: check for errors from sdbm_store ()
-
- * lisp.c (rep_bind_lambda_list): now handles improper lists of
- bound variables (i.e. (foo . bar) == (foo &rest bar))
-
- * lispmach.c (Fjade_byte_code): fixed bug in `unbindall'
- instruction (not resetting impurity correctly)
-
-2000-01-30 John Harper <john dcs warwick ac uk>
-
- * values.c (rep_box_pointer, rep_unbox_pointer): new functions,
- translate from C pointers to lisp data, and back again
-
- * lisp.c (Fdebug_frame_environment): new function, returns an
- environment given a frame pointer
- (Feval): call debug-entry, debug-exit and debug-error-entry
- with an extra argument, a boxed frame pointer
-
- * lispmach.c (Fjade_byte_code): handle calling subrs that are
- wrapped in closures
-
- * continuations.c: removed unused STACK_SLOP definition,
- removed extra call to FLUSH_REGISTER_WINDOWS
-
-2000-01-28 John Harper <john dcs warwick ac uk>
-
- * main.c (rep_init_from_dump): find the stack base by looking
- at the passed in address of `argc'. This is a kludge, but it's
- the best method I can find..
-
- * continuations.c: fixes for Linux/ix86, let's hope it still
- works on sparc!
-
- * continuations.c: support for `call/cc' (also has the alias
- call-with-current-continuation). Only tested on sparc so far,
- may need tweaking for other architectures. Doesn't attempt to
- save or restore dynamic bindings
-
- * main.c (rep_init_from_dump): init continuations, and save
- initial stack pointer
-
- * find.c (saved_regexp_data): made global, and added rep_ prefix
- * files.c, repint.h: moved file-ops enum decl and blocked_ops
- structure decl to repint.h, since continuations need access
- * lisp.c (lisp_depth, max_lisp_depth): added rep_ prefix and
- made global
-
-2000-01-27 John Harper <john dcs warwick ac uk>
-
- * symbols.c (Fget, Fput): properties don't have to be symbols
- now, use `equal' comparisons as in scheme
-
-2000-01-25 John Harper <john dcs warwick ac uk>
-
- * unix_main.c (interrupt_signal_handler,
- termination_signal_handler): if a signal arrives before a
- previous signal has been handled (i.e. the system is
- unreponsive) then raise the signal causing the default action
- (i.e. termination)
-
- * rep-xgettext.jl: support for outputting strings as a file of
- C code
-
- * rep-xgettext.jl (scan): support `case' statement
-
- * main.c (rep_top_level_exit): call before-exit-hook
-
- * unix_main.c (rep_sig_restart): use siginterrupt () instead of
- sigaction () when possible (it seems to be more reliable in
- certain cases?)
-
-2000-01-24 John Harper <john dcs warwick ac uk>
-
- * lispcmds.c (Fcase): new special form, similar to in scheme
- but with `t' instead of `else'
-
- * lispmach.c (Fjade_byte_code): if GCC, use its variable length
- auto arrays to allocate the VM stack. This allows tail-calls to
- deallocate and free stack as required, cf. alloca () which
- gives no method for freeing allocations except by exiting the
- function
-
-2000-01-23 John Harper <john dcs warwick ac uk>
-
- * bytecodes.h (OP_RETURN, OP_UNBINDALL): new instructions
-
- * lispmach.c: implement OP_RETURN and OP_UNBINDALL (which
- actually unbinds to the argument values, not all the way).
- Keep track of dynamic `impurity', the number of dynamic
- bindings (of any type) currently in place. When this value is
- zero, and there's a call to bytecode followed by a return
- instruction, just goto the top of the function, snapping all
- arguments
-
- * symbols.c (rep_unbind_symbols): now returns an int, the
- number of _special_ bindings it removed
-
- * lisp.c (rep_funcall): explicitly protect fun and args, now.
- Tail-calling may remove them from the call stack
- (rep_bind_lambda_list): try to optimize lexical binding
- (rep_funcall): call bytecode interpreter with new fourth
- argument, and don't unbind its frame on return
-
-2000-01-22 John Harper <john dcs warwick ac uk>
-
- * bytecodes.h: new bytecode version 9.0
- (OP_REFN, OP_SETN): lexical address instructions
- (OP_REFG, OP_SETG): global lexical instructions
- (OP_BINDSPEC): create a special binding
-
- * lispmach.c: support the new instructions
- (OP_SETQ, OP_REFQ): remove optimisations for lexical scope
- (OP_BIND): always creates lexical bindings
-
- * rep_lisp.h (rep_cons_block): ensure that the cons cells are
- aligned to sizeof (rep_cons) -- prevents any cell straddling a
- cache line boundary
-
- * rep_lisp.h, lispmach.c, lisp.c, symbols.c: closures now have
- a flag in their car marking whether or not they're allowed to
- call the bytecode interpreter. The variable rep_bytecode_interpreter
- contains either the interpreter to call, or a null pointer.
- Fset_environment scans for Qjade_byte_code
-
-2000-01-19 John Harper <john dcs warwick ac uk>
-
- * lisp.c (rep_handle_error): if error-handler-function is
- defined and functionp, then call it, otherwise handle the error
- locally
-
- * rep.h.in: define rep_INTERFACE to the current library
- interface version
-
- * lisp.c (rep_handle_error): for errors with >3 data values,
- print as a list
-
- * values.c (run_guardians): fixed bug where cons GC mark bits
- could be mangled when moving list items
-
- * lisp.c (rep_lisp_prin): when printing closures, don't
- truncate long names
-
-2000-01-18 John Harper <john dcs warwick ac uk>
-
- * values.c (rep_register_type): if no comparison function is
- given, just compare repv's
-
-2000-01-15 John Harper <john dcs warwick ac uk>
-
- * unix_files.c (rep_expand_file_name): merge contiguous slashes
- in filenames, instead of assuming they represent a new root
-
-2000-01-12 John Harper <john dcs warwick ac uk>
-
- * rep_lisp.h (rep_guardian): new data type (cell16)
- * values.c (Fmake_primitive_guardian, Sprimitive_guardian_push,
- Sprimitive_guardian_pop): new functions, they provide the
- underlying mechanism for the make-guardian function (see
- ftp://ftp.cs.indiana.edu/pub/scheme-repository/doc/pubs/guardians.ps.gz)
-
- * values.c (Qafter_gc_hook): new hook, called after each gc
-
-2000-01-09 John Harper <john dcs warwick ac uk>
-
- * version 0.10
-
-2000-01-08 John Harper <john dcs warwick ac uk>
-
- * Makefile.in: only include ../intl objects in libgettext.la if
- USE_INCLUDED_LIBINTL is set to `yes'. Also ensure that
- libgettext.la exports its symbols
-
- * gettext.c: if LIBC_GETTEXT is defined remove the gnu_
- prefixes to libintl function invocations
-
-2000-01-07 John Harper <john dcs warwick ac uk>
-
- * debug-buffer.c: don't generate stack backtraces if gcc's
- __builtin_return_address () is broken (patch from George
- <jirka 5z com>)
-
- * symbols.c (Fdefvar): allow symbols to be re-defvar'd from
- restricted environments, but only if it was originally defvar'd
- from a restricted environment. Also, only set the value if it's
- unbound, or weak, but not weak-mod, and we're unrestricted
-
-1999-12-31 John Harper <john dcs warwick ac uk>
-
- * unix_dl.c: use stdio method of signalling errors when things
- haven't been initialised yet; also read Qdl_load_reloc_now
- safely
-
- * rep_lisp.h, symbols.c, values.c: some tweaks for new dumping
- regime
-
- * rep.c: use rep_load_environment () and rep_top_level_exit ()
-
- * main.c (rep_init_from_dump): new function, as rep_init but
- with a file of dumped definitions
- (rep_load_environment): new function, called with a single arg,
- the script to load (after loading init.jl) to boot the system
- (rep_top_level_exit): new function, returns the value that the
- process should return when it exits
-
- * lispcmds.c (Ffeaturep, Fprovide, Frequire): in C again
-
-1999-12-23 Ceri Storey <cez nomorespam freeserve co uk>
-
- * readline.c (init_bouncing_parens, find_matching_paren,
- match_paren): steal parentheses bouncing code from guile
-
-1999-12-21 John Harper <john dcs warwick ac uk>
-
- * regexp.c (regmatch): fix typo in non-greedy operator match
- (from Matt Kraai <kraai ghs com>)
-
- * lispcmds.c (Fif): make (if t) => nil, not nil
-
-1999-12-19 John Harper <john dcs warwick ac uk>
-
- * unix_dl.c (rep_open_dl_library): protect `file_name' against
- gc while calling load_requires ()
-
- * lispcmds.c (Fload): scan after-load-alist when loading dl
- objects, as well as lisp files
-
-1999-12-17 John Harper <john dcs warwick ac uk>
-
- * symbols.c (Fdefine_value): new function, a combination of set
- and defvar (but doesn't imply dynamic scoping)
-
- * unix_dl.c (rep_open_dl_library): the .la file may have a line
- "rep_requires='FEATURES...'" naming other dl objects to load
- before this one. Treat the returned value of rep_dl_init as a
- feature if it's a symbol and isn't nil or t. Add the feature by
- hand, instead of calling provide
-
- * lispcmds.c (Qfeatures): new symbol, initialised to nil
-
- * timers.c, repsdbm.c, readline.c, gettext.c: don't use
- rep_dl_feature anymore, just return the feature symbol
-
-1999-12-16 John Harper <john dcs warwick ac uk>
-
- * unix_dl.c: check .la files for `rep_open_globally=yes' line,
- if so, open with RTLD_GLOBAL to export all symbols
-
-1999-12-12 John Harper <john dcs warwick ac uk>
-
- * version 0.9
-
-1999-12-11 John Harper <john dcs warwick ac uk>
-
- * rep-xgettext.jl (output): fixed checking for multiple
- occurrences in the same file
-
- * bytecodes.h (OP_CAAR, OP_CADR, OP_CDAR, OP_CDDR, OP_CADDR,
- OP_CADDDR, OP_CADDDDR, OP_CADDDDDR, OP_CADDDDDDR,
- OP_CADDDDDDDR): new instructions
-
- * lispmach.c: execute c..r instructions
-
-1999-12-10 John Harper <john dcs warwick ac uk>
-
- * readline.c: new plugin, wraps the readline () function, or
- calls Fread_line if not available
-
-1999-12-07 John Harper <john dcs warwick ac uk>
-
- * rep-xgettext.jl: scan the car of lists as well as the cdr;
- only emit duplicated strings once
-
- * lispmach.c, bytecodes.h (OP_ENCLOSE): new instruction, a
- single-argument version of OP_MAKE_CLOSURE
-
- * symbols.c (Fmake_variable_special): new function
-
-1999-12-06 John Harper <john dcs warwick ac uk>
-
- * main.c (usage): fix backslash lossage (pointed out by Conrad
- Steenberg <conrad srl caltech edu)
-
-1999-12-05 John Harper <john dcs warwick ac uk>
-
- * version 0.8.1
-
-1999-12-04 John Harper <john dcs warwick ac uk>
-
- * symbols.c (Fdefvar): set `documentation' property not
- `variable-documentation'
-
-1999-11-29 John Harper <john dcs warwick ac uk>
-
- * values.c, unix_processes.c, unix_main.c, timers.c, symbols.c,
- streams.c, repsdbm.c, misc.c, main.c, lispmach.c, lispcmds.c,
- lisp.c, find.c, files.c: changed embedded doc keys
-
-1999-11-28 John Harper <john dcs warwick ac uk>
-
- * version 0.8
-
-1999-11-27 John Harper <john dcs warwick ac uk>
-
- * unix_processes.c, timers.c, symbols.c, repsdbm.c, files.c:
- remember to add to rep_data_after_gc when allocating data
-
-1999-11-25 John Harper <john dcs warwick ac uk>
-
- * values.c, unix_dl.c, timers.c, symbols.c, rep_subrs.h,
- rep_lisp.h, rep.c, rep-xgettext.jl, main.c, lispmach.c,
- lispcmds.c, lisp.c, files.c, bytecodes.h:
-
- More big changes: unified the value/function namespaces,
- evaluate the function argument of list forms as normal, don't
- allow function names in place of actual functions (subrs or
- closures), lambda is now a special form evaluating to a closure
-
- In case you hadn't noticed, this is very scheme-like; the
- reason is that gaolled code can escape through naming functions
- that it can't call itself
-
-1999-11-21 John Harper <john dcs warwick ac uk>
-
- * lispcmds.c (Ffunctionp, Fmacrop, Fspecial_form_p,
- Fsubr_name): use Fsymbol_function for dereferencing the symbol,
- instead of just looking in the function slot
-
- * files.c (Fset_file_handler_environment): new function, gives
- a safe method of granting access to checked file handlers
- (provided the actual invoking function is accessible)
-
- * symbols.c (Fmake_closure): initialise fh_env
- * values.c (mark_value): mark fh_env
-
- * rep_lisp.h (rep_USE_DEFAULT_ENV): new macro
-
-1999-11-19 John Harper <john dcs warwick ac uk>
-
- * gettext.c: all gettext functions are now prefixed by gnu_
-
-1999-11-18 John Harper <john dcs warwick ac uk>
-
- * lispcmds.c (Fstring_equal, Fstring_lessp): case-insensitive
- string comparisons
-
- * rep-xgettext.jl: new script, scan lisp files for strings that
- should be translated
- * gettext.c: new plugin, provides _, bindtextdomain and
- textdomain functions
-
-1999-11-16 John Harper <john dcs warwick ac uk>
-
- * streams.c (Fformat): support the `n$' prefix for i18n, i.e.
- doing (format nil "%2$s, %1$s" "hello" "world") gives "world,
- hello"
-
-1999-11-15 John Harper <john dcs warwick ac uk>
-
- * repint_subrs.h, rep_subrs.h (rep_call_stack): now in rep_subrs.h
-
- * rep_lisp.h (rep_SF_DEFVAR): new flag, has the symbol been
- defvar'd (set by rep_INTERN_SPECIAL)
- * symbols.c (Fdefvar): moved here from lispcmds.c, allow
- restricted environments to defvar un-defvar'd symbols
-
- * unix_processes.c (run_process, rep_system): reset SIGPIPE to
- SIG_DFL before calling exec () (from lantz moore
- <lmoore contigo com>)
-
-1999-11-11 John Harper <john dcs warwick ac uk>
-
- * symbols.c (Fsetplist, Fsymbol_plist, Fput): symbol must be in
- caller's special environment
-
- * lisp.c, lispmach.c: only allow bytecode subrs to be called if
- jade-byte-code is in the function environment of the called
- function
-
-1999-11-10 John Harper <john dcs warwick ac uk>
-
- * rep_lisp.h (rep_Funarg): new cell8 type, replaces rep_File,
- describes an enclosed function
- (rep_SF_SPECIAL, rep_SF_WEAK, rep_SF_WEAK_MOD): new symbol
- flags, for special variables
- (rep_COMPILED_MACRO_P): deleted, there's now no difference
- between bytecode objects representing functions or macros
- (rep_PUSH_CALL, rep_POP_CALL): new macros for handling the Lisp
- call stack
- (rep_INTERN_SPECIAL): new macro, similar to rep_INTERN, but
- marks the variable as being special
-
- * lisp.c (rep_env, rep_fenv, rep_special_env): the environments
- for lexical variables, functions and special variables (need
- special environment for access-control purposes)
- (rep_funcall): lambda expressions and bytecode objects are no
- longer considered functions -- only closures, subrs and
- autoloads are functions (it may not be secure to call an
- unclosed function)
-
- * symbols.c (Fmake_closure, Fclosure_function,
- Fset_closure_function, Fclosurep, Fset_variable_environment,
- Fset_function_environment, Fset_special_environment): new
- functions
- (Fsave_environment): new special form
- (rep_bind_symbol, rep_unbind_symbols): handle both lexical and
- special variables
- (rep_bind_function, rep_unbind_functions): new functions
- (Fsymbol_value, Fset, Fdefault_value, Fset_default): handle
- lexical scoping and dynamic scoping, and the new access rules
- for special variables (the WEAK and WEAK_MOD flags to protect
- exploits from restricted special environments)
- (Fflet, Fmacrolet): new special forms
- (Fspecial_variable_p): new function
-
- * values.c: support Funarg type (closures)
-
- * lispcmds.c (Ffunction): special form to create closures from
- constant lambda expressions
- (Fdefvar): access control/protection when a restricted special
- environment has already defined the special variable (and
- therefore it's already in the restricted environment)
- (Fload): new optional fifth arg: IN-CURRENT-ENVIRONMENT, unless
- non-nil evaluate forms in a new lexical environment
- (Ffeaturep, Fprovide, Frequire): deleted, now in lisp.jl
-
- * lispmach.c (Fjade_byte_code): handle the new instructions,
- special-case lexical binding in OP_SETQ and OP_REFQ instead of
- dynamic bindings
-
- * bytecodes.h: create a new major bytecode version
- (OP_MAKE_CLOSURE, OP_FBIND, OP_CLOSUREP, OP_BINDENV): new
- virtual machine instructions
-
- * streams.c, rep.c, misc.c, main.c: misc changes for lexical
- scoping
-
- * files.c: allocate the file type dynamically, since we stole
- its cell8 slot for closures
-
- * unix_dl.c (rep_open_dl_library): provide is now defined by
- Lisp code
-
-1999-11-01 John Harper <john dcs warwick ac uk>
-
- * unix_dl.c: define RTLD_LAZY to 1 if it's not already defined
- anywhere (from remark in the Perl sources, via glib)
-
-1999-10-31 John Harper <john dcs warwick ac uk>
-
- * version 0.7.1
-
-1999-10-29 John Harper <john dcs warwick ac uk>
-
- * regexp.c: ANSII-fy function definitions
-
-1999-10-28 John Harper <john dcs warwick ac uk>
-
- * rep-config.sh: expect ${libdir} as second argument, not
- ${exec_prefix}
- * Makefile.in: pass ${libdir} to rep-config.sh
-
- * rep_lisp.h: comment out use of #warning, doesn't work on
- solaris cc
-
- * dlmalloc.c: change the sbrk () thing again for FreeBSD
-
- * timers.c (insert_timer): fix problem when inserting new timer
- before existing timer (with same seconds, but less
- milliseconds)
-
-1999-10-27 John Harper <john dcs warwick ac uk>
-
- * unix_main.c: make the rep_alloc tracking work once more
-
- * dlmalloc.c: fix sbrk () declaration on FreeBSD (from Yukihiro
- Nakai <nakai internetsolutions co jp>)
-
-1999-10-24 John Harper <john dcs warwick ac uk>
-
- * version 0.7
-
- * lispcmds.c (Fload): remember to call Fclose_file on any
- opened streams
-
-1999-10-23 John Harper <john dcs warwick ac uk>
-
- * lispmach.c: some more small optimisations
-
- * unix_processes.c (rep_system): fix child termination on being
- unable to exec /bin/sh
-
-1999-10-21 John Harper <john dcs warwick ac uk>
-
- * streams.c (Fformat): revert the long-int printing, since it
- truncates the values and generally doesn't work. But added some
- fixes for printing on sizeof(int) != sizeof(repv) systems
-
- * lispmach.c: some optimisations; disable stack usage checking
- unless CHECK_STACK_USAGE is defined
-
- * misc.c (Frandom): if LIMIT is <= 0, set LIMIT = MAXINT
-
-1999-10-20 John Harper <john dcs warwick ac uk>
-
- * streams.c (Fformat): handle long-integers in the integer
- conversions
-
-1999-10-14 John Harper <john dcs warwick ac uk>
-
- * unix_dl.c: support underscore-prefixed symbol names
-
-1999-10-13 John Harper <john dcs warwick ac uk>
-
- * unix_processes.c (Fprocess_id): return pid of interpreter if
- given a nil argument
-
- * main.c (get_main_options): don't handle --version
- * rep.c (main): handle --version option
-
-1999-10-06 John Harper <john dcs warwick ac uk>
-
- * unix_dl.c: untested support for shl_load () (HP-UX)
-
-1999-10-03 John Harper <john dcs warwick ac uk>
-
- * version 0.6.2
-
-1999-10-01 John Harper <john dcs warwick ac uk>
-
- * rep_lisp.h: remove rep_ALIGN macro, since it's only used
- once, by rep_ALIGN_CELL. This now knows about implicit
- alignment on the DEC C compiler
-
-1999-09-20 John Harper <john dcs warwick ac uk>
-
- * lisp.c (Qautoload_verbose): only print autoloading messages
- if this is non-nil (it is by default)
-
- * version 0.6.1
-
- * lispcmds.c (Fload): only try to load files if they're
- readable and not a directory (not if they just exist)
-
-1999-09-17 John Harper <john dcs warwick ac uk>
-
- * realpath.c: bracketed function definition by #ifndef
- HAVE_REALPATH just in case
-
-1999-09-15 John Harper <john dcs warwick ac uk>
-
- * unix_files.c (rep_file_modes_as_string): change ulong to u_long
-
-1999-09-14 John Harper <john dcs warwick ac uk>
-
- * version 0.6
-
- * unix_processes.c (rep_system): construct environ from
- process-environment as with start-process and call-process
-
- * regexp.c (regrepeat): workaround a bug in GCC 2.95 on sparcs
-
-1999-09-12 John Harper <john dcs warwick ac uk>
-
- * version 0.5
-
-1999-09-11 John Harper <john dcs warwick ac uk>
-
- * rep_lisp.h: updated and expanded some comments
-
-1999-09-10 John Harper <john dcs warwick ac uk>
-
- * rep.c (main): by default, always load a script named `rep',
- not a script defined by argv[0]
-
- * unix_main.c (fatal_signal_handler): finally changed message
- from `jade: ...' to `rep: ...'
-
-1999-09-09 John Harper <john dcs warwick ac uk>
-
- * unix_processes.c (check_for_zombies): removed the assertion
- that every pid must have a process structure
-
-1999-09-08 John Harper <john dcs warwick ac uk>
-
- * files.c (Fset_input_handler): new function, allows async
- input on a file handle
-
-1999-08-30 John Harper <john dcs warwick ac uk>
-
- * version 0.4
-
- * unix_main.c (usr_signal_handler): now invoked by USR2 as well
- as USR1. USR2 prints all debug buffers to stderr
-
-1999-08-29 John Harper <john dcs warwick ac uk>
-
- * unix_processes.c, unix_main.c, test-dl.c, repsdbm.c,
- rep_lisp.h, rep.c, misc.c, message.c, lisp.c, debug-buffer.c:
- fixed some possible compiler errors (from `-ansi -pedantic')
-
-1999-08-28 John Harper <john dcs warwick ac uk>
-
- * rep.h.in: (rep_PTR_SIZED_INT_SUFFIX, rep_PTR_SIZED_INT_CONV):
- new macros
- (rep_PTR_SIZED_INT_BITS): now defined in terms of sizeof () and
- CHAR_BIT instead of statically
-
- * rep_lisp.h (rep_VALUE_CONST): new macro, uses
- rep_PTR_SIZED_INT_SUFFIX to make a constant of the needed width
- (rep_vector): define the data as a one-element array not a
- zero-element array (for ansii-ness)
-
- * misc.c (Frandom): don't use `#if' to decide how many random
- samples to take, use normal `if' instead, since the parameters
- are known at compile-time the compiler should eliminate
- unneeded stuff
-
- * main.c: don't check rep_PTR_SIZED_INT_BITS anymore since we
- use sizeof to define it now
-
- * lispmach.c, lisp.c: use rep_PTR_SIZED_INT_CONV when
- printf-ing lisp integers
-
-1999-08-27 John Harper <john dcs warwick ac uk>
-
- * main.c (rep_init): changed some of the type consistency
- checking done on initialisation -- just check that the values
- are within the correct bounds, not that they exactly match the
- size of void *
-
- * unix_dl.c (rep_find_c_symbol): check for HAVE_DLADDR
-
- * rep_lisp.h: changed string type layout -- removed the inline
- static string option since it's a hack, but more importantly,
- since it defines the library's interface, and shouldn't change
-
- * rep_lisp.h, files.c, misc.c: changed some instances of `1 <<
- X' to `1L << X' for when sizeof(int) < sizeof(long)
- * values.c (rep_make_string, rep_string_dupn): changed `length'
- arg from int to long
-
-1999-08-22 John Harper <john dcs warwick ac uk>
-
- * version 0.3
-
-1999-08-17 John Harper <john dcs warwick ac uk>
-
- * values.c (Fgarbage_collect): defining DEBUG_GC and setting
- debug_gc = 1 enables code to print the current backtrace at
- each garbage collection
-
-1999-08-16 John Harper <john dcs warwick ac uk>
-
- * version 0.2
-
- * lispcmds.c (lispcmds_init): add REP_COMMON_EXEC_DIRECTORY to
- the dl-load-path
-
-1999-08-15 John Harper <john dcs warwick ac uk>
-
- * timers.c: added some documentation strings
-
-1999-08-13 John Harper <john dcs warwick ac uk>
-
- * rep_lisp.h (rep_CELL8_TYPE_MASK): changed from 0x1f to 0x3f
- to include the rep_CELL_IS_16 bit (otherwise all cell16 types
- are reported as being symbolp!)
-
-1999-08-06 John Harper <john dcs warwick ac uk>
-
- * main.c (rep_handle_input_exception): if Qerror_mode is
- `top-level', then only the top-level event loop handles errors,
- if it's `exit' then errors cause the interpreter to exit.
- Qinterrupt_mode works similarly for user interrupts
-
- * unix_main.c: make SIGINT, SIGTERM and SIGHUP non-restartable
-
-1999-08-03 John Harper <john dcs warwick ac uk>
-
- * version 0.1
-
-1999-07-29 John Harper <john dcs warwick ac uk>
-
- * unix_main.c (rep_sig_restart): make syscalls restart or not
- restart for any signal
- (wait_for_input): make both SIGCHLD and SIGALRM non-restartable
- during select ()
-
- * unix_processes.c (rep_sigchld_restart): replaced by the more
- general rep_sig_restart
-
- * timers.c: new file, a dynamically loadable module providing
- multiple one-shot timers
-
-1999-07-27 John Harper <john dcs warwick ac uk>
-
- * misc.c (Frandom): return zero if LIMIT <= 0
-
-1999-07-22 John Harper <john dcs warwick ac uk>
-
- * lispcmds.c (Fload): while evaluating the forms from a file,
- bind load-filename to the full name of the file being loaded
-
- * debug-buffer.c: dladdr seems to work again under linux
-
-1999-07-09 John Harper <john dcs warwick ac uk>
-
- * rep-remote.c (do_get, do_put): don't assume an error if
- reading doesn't get as much as we asked for
-
-1999-07-07 John Harper <john dcs warwick ac uk>
-
- * rep-remote.c (do_readlink): don't assume the output of
- readlink() is null-terminated
-
- * streams.c (Fcopy_stream): fixed this when the buffer
- overflows (was dropping every 512th character)
-
-1999-07-06 John Harper <john dcs warwick ac uk>
-
- * unix_processes.c: new process-connection-type: `socketpair'
-
- * unix_main.c (wait_for_input): fixed for when input doesn't
- arrive within the first second (the input fdset used to be
- munged)
- (usr1_signal_handler): connected to SIGUSR1, outputs the Lisp
- backtrace when called
-
- * rep-remote.c: new program, provides a method of accessing
- files on a remote host (using the remote-rep.jl Lisp backend)
-
-1999-07-05 John Harper <john dcs warwick ac uk>
-
- * streams.c (Fread_chars): new function
-
-1999-07-04 John Harper <john dcs warwick ac uk>
-
- * unix_files.c, files.c: new file operations: read-symlink and
- make-symlink
-
-1999-06-29 John Harper <john dcs warwick ac uk>
-
- * unix_processes.c (rep_proc_init): don't create a new process
- group anymore
-
-1999-06-06 John Harper <john dcs warwick ac uk>
-
- * bytecodes.h: OP_SETQ now pops the value from the stack.
- Deleted OP_PUSHIW, replaced by OP_PUSHIWN and OP_PUSHIWP, for
- pushing negative and positive values respectively
-
- * unix_dl.c (rep_kill_dl_libraries): never call dlclose, it's
- not possible to know if any references to the library still
- exist
-
- * unix_main.c (rep_map_inputs): new function, call a specified
- function for all registered (fd, callback) pairs
-
- * misc.c (Fsystem): new function, execute a shell command
- * unix_processes.c (rep_system): back-end of Fsystem
-
- * lisp.c (rep_readl): don't return nil on EOF, instead signal
- an end-of-stream error
- * lispcmds.c (Fload): catch any end-of-stream error's signalled
- while reading the file
-
- * files.c (Fclose_file): when closing a file with
- rep_LFF_DONT_CLOSE set, freopen it onto /dev/null
-
-1999-06-03 John Harper <john dcs warwick ac uk>
-
- * misc.c (default_beep): new function, echo ^G, used to
- initialise the rep_beep_fun hook
-
- * main.c (Fget_command_line_option): don't return rep_NULL when
- an option requiring an argument isn't given
-
- * lispmach.c (Fjade_byte_code): optimise common cases of
- OP_REFQ and OP_SETQ instructions, when accessing a variable
- which can't be locally stored, and isn't a rep_Var type
-
- * unix_processes.c (Fsignal_process): new function
-
-1999-05-31 John Harper <john dcs warwick ac uk>
-
- * rep_regexp.h (NGSTAR, NGPLUS): new operators, non-greedy plus
- and minus
- * regexp.c: implemented non-greedy *, + and ? operators: *?, +?
- and ?? (as in Perl)
-
-1999-05-30 John Harper <john dcs warwick ac uk>
-
- * rep_regexp.h, regexp.c (WORD, NWORD, WSPC, NWSPC, DIGI,
- NDIGI, WEDGE, NWEDGE): new operators; they are Perl's \w, \W,
- \s, \S, \d, \D, \b, \B syntax, respectively
-
-1999-05-29 John Harper <john dcs warwick ac uk>
-
- * lispcmds.c (rep_lispcmds_init): add a null string to the end
- of the load-path (i.e. the current directory)
-
- * lisp.c (rep_load_autoload): only display messages if not in
- batch-mode
-
-1999-05-26 John Harper <john dcs warwick ac uk>
-
- * repsdbm.c (Fsdbm_open): call local-file-name on the file
- parameter
-
-1999-05-15 John Harper <john dcs warwick ac uk>
-
- * added `#define _GNU_SOURCE' at the top of all source files. This
- seems to be necessary with glibc 2.1
-
-1999-04-25 John Harper <john dcs warwick ac uk>
-
- * main.c (rep_kill): kill the dl libraries a bit later down the
- line
- * unix_processes.c (rep_proc_kill): disable SIGCHLD _before_
- killing the processes
-
-1999-04-24 John Harper <john dcs warwick ac uk>
-
- * lispmach.c (Fjade_byte_code): yow! if a subr with five
- parameters has four values applied to it, it was being called
- _twice_ (a missing break statement). This bug must have existed
- forever!
-
-1999-03-28 John Harper <john dcs warwick ac uk>
-
- * lispmach.c (Fjade_byte_code): don't test for called function
- returning rep_NULL individually, since some don't even though
- an error has been signalled. Instead check for, and handle,
- errors outside the big switch
-
-1999-03-23 John Harper <john dcs warwick ac uk>
-
- * unix_processes.c (rep_sigchld_fun): new hook, called by the
- sigchld handler
-
- * repsdbm.c (rep_dl_init): set a rep_dl_feature value
-
- * unix_dl.c (struct dl_lib_info): new field `feature_sym', a
- symbol noting the feature provided by this library
- (find_dl_by_feature): new function
- (rep_open_dl_library): if a symbol `rep_dl_feature' exists in
- the opened object, it's assumed to contain the name of the
- feature provided by this object, Fprovide is called
- (rep_find_dl_symbol): new function, given a feature and a
- symbol name, return the address
-
- * main.c (Frecursive_edit): update the rep_recurse_depth
- variable here now
-
-1999-03-19 John Harper <john dcs warwick ac uk>
-
- * main.c (rep_event_loop_fun): new hook, allows the standard
- event loop to be replaced
-
- * unix_main.c (rep_register_input_fd_fun,
- rep_deregister_input_fd_fun): new hooks, allows non-standard
- event loops to catch inputs
-
-1999-03-18 John Harper <john dcs warwick ac uk>
-
- * repsdbm.c (rep_dl_init): return Qt
-
- * lisp.c (rep_test_int_period): this was a about factor of 100
- too large
-
- * unix_main.c (wait_for_input): break the timeout period into a
- series of second-long timeouts, with a check for an interrupt
- occurring between each call to select
-
-1999-03-17 John Harper <john dcs warwick ac uk>
-
- * rep.c (main): test for (throw 'quit RC) when exiting
-
- * lisp.c (rep_readl): when `#!' is encountered at the start of
- a file, skip until `!#' is found
-
-1999-03-16 John Harper <john dcs warwick ac uk>
-
- * values.c: allocate the buffer of static gc roots dynamically
-
- * rep_lisp.h: define some new macros, rep_CDRLOC, and various
- rep_CAAR, rep_CADR combinations (up to four dereferences)
-
- * rep-config.sh: new option `--execdir'
-
- * main.c (Qprogram_name): new symbol argv[0] of the invoking
- program
-
- * lispcmds.c (Qdl_load_reloc_now): new symbol
- * unix_dl.c (rep_open_dl_library): when dl-load-reloc-now is
- non-nil, open with the RTLD_NOW mode, not RTLD_LAZY
-
-1999-03-15 John Harper <john dcs warwick ac uk>
-
- * rep_lisp.h (rep_DECLARE): the third argument is now the
- entire predicate expression, not just the name of the
- predicate. The rep_DECLAREX variants are unchanged
-
-1999-03-12 John Harper <john dcs warwick ac uk>
-
- * files.c (file_prin): the `name' field is _nil_ if unbound,
- not rep_NULL
-
- * misc.c (Fchar_downcase): this was using toupper not tolower
-
-1999-03-09 John Harper <john dcs warwick ac uk>
-
- * repsdbm.c: changed all function names from dbm- to sdbm-
-
- * sdbm_pair.c, sdbm_hash.c, sdbm.h, sdbm.c: replaced dbm_ by
- sdbm_ and DBM by SDBM to prevent clashing with libc dbm
-
- * repdoc.c: removed the -a option, never open the db O_TRUNC,
- replace dbm_ by sdbm_
-
-1999-03-06 John Harper <john dcs warwick ac uk>
-
- * main.c (rep_get_option): accept `--foo=bar' as well as `--foo
- bar'
- (Fget_command_line_option): wrapper for rep_get_option
-
-1999-03-02 John Harper <john dcs warwick ac uk>
-
- * main.c (rep_get_option): new function, searches the
- command-line-args variable for a specified option
-
- * main.c (get_main_options): new option `--interp', this sets
- the LISP variable interpreted-mode
- * lispcmds.c (Fload): if interpreted-mode is non-nil, don't
- load .jlc or .jld files
-
- * unix_processes.c (proc_puts): remember that the input data may
- be a C or LISP string
-
-1999-02-28 John Harper <john dcs warwick ac uk>
-
- * MAJOR CHANGES: separated all LISP interpreter specific parts
- into a separate library, librep (Read-Eval-Print)
-
-1999-02-17 John Harper <john dcs warwick ac uk>
-
- * unix_processes.c (check_for_zombies): always check for
- zombies, even if we received no SIGCHLD
-
-1999-02-12 John Harper <john dcs warwick ac uk>
-
- * unix_files.c (sys_canonical_file_name): preserve the trailing
- slash or lack thereof
-
-1999-01-31 John Harper <john dcs warwick ac uk>
-
- * bytecodes.h: several OP_PUSHI opcodes for pushing immediate
- integers (of various sizes)
- * lispmach.c (cmd_jade_byte_code): added PUSHI instructions
-
- * lispmach.c (cmd_validate_byte_code): had the minor
- comparisons the wrong way around
-
- * x11_windowsys.h (struct x11_display): added `name' field
- * x11_main.c (x11_get_display): new function, searches for a
- named open display
- (x11_open_display): call x11_get_display before creating a new
- one
-
-1999-01-29 John Harper <john dcs warwick ac uk>
-
- * unix_processes.c (run_process): clean up better when fork
- fails
-
-1999-01-27 John Harper <john dcs warwick ac uk>
-
- * views.c (cmd_with_view): fix bug when switching windows as
- well as views
-
-1999-01-24 John Harper <john dcs warwick ac uk>
-
- * views.c (format_mode_string, format_mode_value,
- update_status_buffer): buf_len is now signed, so that negative
- values are detected, not wrapped around!
-
-1999-01-20 John Harper <john dcs warwick ac uk>
-
- * buffers.c (make_marks_non_resident): add a comment noting that
- any TX fields used must be explicitly gc marked
- * values.c (mark_value): in the V_Mark case, remember to mark
- tx_File, now that make_marks_non_resident accesses it
-
-1999-01-17 John Harper <john dcs warwick ac uk>
-
- * lisp.c (cmd_eval): preserve regexp matches while calling the
- debugger
-
-1999-01-14 John Harper <john dcs warwick ac uk>
-
- * buffers.c (cmd_set_mark_file): bug-fixes
-
-1999-01-13 John Harper <john dcs warwick ac uk>
-
- * keys.c (cmd_lookup_event_binding): return multiple prefix
- keymaps correctly, by faking a call to next-keymap-path. Also,
- remove the optional RESET parameter, always reset
- next-keymap-path to null
-
- * edit.h (Lisp_Mark): new field `canon_file' used in
- non-resident marks to store the canonical file name, `file'
- reverts to being the possibly abbreviated file name
- * buffers.c: changes for the modified Lisp_Mark structure, also
- fix the mark_cmp function for non-resident marks
- * values.c (mark_value): updated for `canon_file' mark field
-
-1998-12-09 John Harper <john dcs warwick ac uk>
-
- * keys.c (eval_input_event): don't overwrite prefix-arg after
- handling prefix-keymap
-
-1998-12-08 John Harper <john dcs warwick ac uk>
-
- * unix_files.c (sys_expand_file_name): handle "foo/../bar"
- correctly (where we have to backtrack to the start of the
- output buffer)
-
-1998-12-03 John Harper <john dcs warwick ac uk>
-
- * misc.c (cmd_user_full_name): if given a parameter, it's the
- chosen name of the user
-
-1998-11-29 John Harper <john jsh org>
-
- * keys.c (overriding-local-keymap): new variable, when non-nil,
- overrides all local keymaps
-
-1998-11-24 John Harper <john dcs warwick ac uk>
-
- * keys.c: big changes. No longer have the keymap-path variable,
- instead we steal Emacs' notion of a set of active keymaps;
- these include the variables global-keymap, and local-keymap,
- the minor-mode-keymap-alist associating minor modes and their
- keymaps, and the `keymap' extent properties of all extents
- under the cursor (in reverse order of priority).
- Also, when evaluating events, a command that is a symbol with
- the function value `keymap' is used as a prefix key (keymap in
- the value slot). Multiple bindings to the same prefix keys are
- allowed, the union of their specified keymaps is used to
- resolve the next event
- (cmd_search_keymap): new function, scan a single keymap for a
- binding of a specified event
-
-1998-11-20 John Harper <john dcs warwick ac uk>
-
- * lists.c, lists.h: removed these files, nothing uses them
- anymore
-
-1998-11-14 John Harper <john dcs warwick ac uk>
-
- * unix_main.c (handle_input): fixes to the input_pending stuff
-
-1998-11-12 John Harper <john dcs warwick ac uk>
-
- * unix_main.c (sys_mark_input_pending): new function, records
- that an input fd has input read but not yet handled (and
- therefore needs to be disposed of next time round the event
- loop)
- * x11_main.c (x11_handle_input): when working asynchronously,
- ensure that any events read but not handled cause
- sys_mark_input_pending to be called
-
-1998-11-11 John Harper <john dcs warwick ac uk>
-
- * windows.c (cmd_make_window): set the w_CurrVW field
- explicitly to the first view in the window
-
- * editcommands.c (cmd_empty_line_p): add some error checking
-
- * views.c (cmd_with_view): save the current window and the
- current view in the window to be altered so that the state can
- be properly recovered later
- * lispmach.c (cmd_jade_byte_code): in the BIND-VIEW
- instruction, save the current window, and the current view in
- the window to be altered
-
-1998-11-10 John Harper <john dcs warwick ac uk>
-
- * main.c (on_idle): protect against calling the idle-hook
- recursively
- * unix_main.c (handle_input): set refreshp on an interrupt
-
-1998-11-01 John Harper <john dcs warwick ac uk>
-
- * x11_windows.c (sys_new_window): when setting the XSizeHints
- structure set the base_height to zero
-
-1998-10-27 John Harper <john dcs warwick ac uk>
-
- * streams.c (stream_puts, stream_putc): when growing the window
- message remember to allocate a byte for the zero terminator..
-
- * values.c (data_types): remove mark_sweep
- (mark_value): when marking a resident mark, mark the canonical
- name of the associated buffer (it's required if the mark is
- made non-resident)
- * buffers.c (buffer_sweep): call mark_sweep before sweeping
- buffers, the ordering is important. Only call
- make_marks_non_resident if there actually are marks in the
- buffer (this stops us occasionally using freed memory)
-
- * streams.c (stream_putc, stream_puts): when appending to the
- window's message, use sys_realloc not str_dupn
-
- * edit.c (FREE_LL): fix non-r_alloc version
-
- * buffers.c (mark_cmp): compare non-resident marks correctly
-
-1998-10-26 John Harper <john dcs warwick ac uk>
-
- * dlmalloc.c: enable __morecore_hook when JADE is defined, set
- the default value to __jade_morecore
- * ralloc.c: include "dlmalloc.h" or <malloc.h> when necessary
-
- * dlmalloc.c, dlmalloc.h: use Doug Lea's malloc instead of GNU
- malloc, it seems to use a lot less memory
- * stringmem.c, stringmem.h: removed these two files, all
- allocation is done by standard malloc now, dlmalloc.c seems to
- handle it a lot better..
-
- * buffers.c, edit.c, edit.h, find.c, jade.h, lisp.c, lisp.h,
- lispcmds.c, main.c, misc.c, streams.c, unix_defs.c, unix_dl.c,
- unix_main.c, unix_processes.c, values.c, windows.c, x11_main.c,
- x11_misc.c: use sys_alloc (i.e. malloc) instead of sm_alloc or
- str_alloc (and other associated functions)
-
-1998-10-25 John Harper <john dcs warwick ac uk>
-
- * ralloc.c: more fixes in non-emacs section for when
- DOUG_LEA_MALLOC isn't defined (and therefore using gmalloc)
-
-1998-10-24 John Harper <john dcs warwick ac uk>
-
- * Makefile.in: use the JADE_LIBOBJS variable, extra objects for
- the jade[d] binary
-
- * edit.c: switch on definition USE_R_ALLOC for whether or not
- to use the relocating allocator for line arrays
-
- * ralloc.c: in non-emacs section, include <config.h> when
- HAVE_CONFIG_H is defined
-
- * unix_main.c (sys_realloc): new function
-
-1998-10-23 John Harper <john dcs warwick ac uk>
-
- * edit.c: use GNU malloc's r_alloc relocating allocator for the
- buffer line arrays (the tx_Lines field)
- * streams.c, regjade.c, movement.c, glyphs.c, files.c,
- editcommands.c, edit.c: remove all caching of the tx_Lines
- field, the relocating malloc would screw this up
-
- * values.c (gc_inhibit): removed this ill-advised feature (I
- thought this the reason that the memory usage increased
- massively sometimes--it's not, but it's a Good Thing) Anyway,
- the effect of removing this variable is that all functions that
- call stream_(getc|ungetc|putc|puts) must protect themselves
- against a garbage collection (since a stream may be a Lisp
- function)
-
- * unix_processes.c, streams.c, main.c, lispmach.c, lisp.h,
- lisp.c, keys.c: added more gc protection for the loss of
- gc_inhibit
-
-1998-10-19 John Harper <john dcs warwick ac uk>
-
- * faces.c (mark_glyph_buf_faces): ignore GA_Garbage attributes
-
- * edit.c (MAX_SPARE_LINES, ALLOC_SPARE_LINES): separated the
- definitions of these two constants. Also increased both of them
- (M_S_L by more than A_S_L though)
-
-1998-10-18 John Harper <john dcs warwick ac uk>
-
- * debug-buffer.c: on linux, undef DB_RESOLVE_SYMBOLS for the
- time being--it crashes on my system (egcs-1.1/glibc-2.0.6)
- (db_print_backtrace): changed output format, only look for at
- most eight frames, and workaround for a egcs/linux bug
-
-1998-10-15 John Harper <john dcs warwick ac uk>
-
- * jade.h: describe the three preprocessor symbols noted below,
- only DB_RESOLVE_SYMBOLS is set by default
-
- * debug-buffer.c (db_print_backtrace): print symbols instead of
- addresses when DB_RESOLVE_SYMBOLS is defined
- (db_return_address): new function, try to return the return
- address of the calling function
-
- * unix_main.c: when DEBUG_SYS_ALLOC is defined, record all
- outstanding memory allocations. On exit, print any that are
- still unfreed. Also define a function unix-print-allocations
- that does the same thing
- (fatal_error_handler): print the C backtrace
-
- * unix_dl.c (find_c_symbol): function to look up the name of
- the closest symbol preceding a specified address
-
- * edit.h, edit.c, buffers.c: only give each buffer it's own
- allocation pool if STRINGPOOL_PER_BUFFER is defined
-
-1998-10-13 John Harper <john dcs warwick ac uk>
-
- * streams.c (cmd_format): recognize the %X format (doh!)
-
- * views.c (format_mode_string): added `%m' format, represents
- the state of the marked block
-
- * value.h (VALUE_BITS): defined as PTR_SIZED_INT_BITS
- * main.c (main): validate PTR_SIZED_INT_BITS at startup
- * lisp.h (LISP_INT_BITS): define from VALUE_BITS, don't assume
- 32-bit VALUEs
- * misc.c (cmd_random): handle case where RAND_MAX is too small
- to get all random bits in a single call to rand(). Also, prefer
- lrand48() over rand() if it's available
-
-1998-10-12 John Harper <john dcs warwick ac uk>
-
- * unix_files.c (sys_file_modes_as_string): use stat_file
- directly instead of calling sys_file_modes which masks out all
- but the permission bits
-
- * unix_files.c (sys_delete_file): use `unlink' instead of
- `remove'. This means it won't allow the deletion of directories
- (sys_make_directory, sys_delete_directory): new functions
-
- * files.c (cmd_make_directory, cmd_delete_directory): new
- functions, both have file-handler names associated with them
-
- * files.c (read_file_into_tx): don't store the average line
- length of the previous file read. Instead, defer predicting the
- expected number of lines until N lines of the new file have
- been read. This seems to drastically reduce the memory needed
- to read large files
-
-1998-10-10 John Harper <john dcs warwick ac uk>
-
- * misc.c (cmd_random): new function
-
-1998-10-08 John Harper <john dcs warwick ac uk>
-
- * editcommands.c (cmd_insert): when POSITION isn't specified
- but BUFFER is, use the position of the cursor in BUFFER, not in
- the current view
-
-1998-10-06 John Harper <john dcs warwick ac uk>
-
- * views.c (format_mode_string): fix printing percentages when
- buffer is narrowed
-
-1998-10-04 John Harper <john dcs warwick ac uk>
-
- * debug-buffer.c (db_print_backtrace): minor bug fix
-
- * commands.c (cmd_call_command): reinitialise the
- current-prefix-arg before calling the actual command
-
-1998-09-21 John Harper <john dcs warwick ac uk>
-
- * lispmach.c, bytecodes.h: changed op-set and op-fset to use
- the CALL_2 macro. This means that there arguments are in the
- reverse order to what they used to be, and they leave a value
- on the stack
-
- * extent.c (find_extent): when searching the cache for
- "near-enough" extents, use the global position of the cached
- extent, not the position local to its parent
- (cmd_move_extent): use unlink_extent not several calls to
- unlink_extent_fragment
- (adjust_extents_XX): more fixes to these functions, in
- addition, make sure that they invalidate the cache
-
-1998-09-17 John Harper <john dcs warwick ac uk>
-
- * streams.c (cmd_format): make the "0" flag work with the %s
- format
-
-1998-09-13 John Harper <john dcs warwick ac uk>
-
- * x11_windows.c (sys_draw_glyphs): when drawing underlines,
- draw one less pixel than before
-
-1998-09-10 John Harper <john dcs warwick ac uk>
-
- * unix_main.c (sys_sit_for): only redisplay if the timeout
- is greater than zero
-
-1998-09-09 John Harper <john dcs warwick ac uk>
-
- * extent.c (insert_extent): when chaining frags together, do it
- properly
-
-1998-09-08 John Harper <john dcs warwick ac uk>
-
- * extent.c (extent_cmp): only compare the two objects if they
- have the same type (i.e. both extents)
-
-1998-09-06 John Harper <john dcs warwick ac uk>
-
- * main.c (get_main_options): added `-batch' option
- (inner_main): if in batch mode, exit after executing the
- initialisation script
- * x11_windows.c (sys_new_window): if in batch mode, don't map
- the window
-
- * x11_main.c (x11_open_display): call sys_recolor_cursor
-
- * debug-buffer.c (db_print_frame): renamed as
- `db_print_backtrace', changed a few things
-
-1998-09-04 John Harper <john dcs warwick ac uk>
-
- * faces.c (mouse-cursor-face): new variable
- * x11_main.c (sys_recolor_cursor): new function
-
- * faces.c (mark_merged_faces): mark both glyph buffers
- (faces_init): check for success of colour allocations,
- returning failure if unsuccessful
-
- * main.c (common_db): debug buffer for misc. uses
- (inner_main): move faces_init later, move the error printing
- code later so it catches more errors (not just from the init
- script)
-
- * redisplay.c (redisplay_lock): mutex variable to prevent
- redisplay being entered more than once concurrently
-
- * x11_main.c: added "-visual" option and "visual" resource to
- allow the visual to be specified
- (use_options): if specified, find the named visual with the
- most bitplanes. Allocate a colormap when using a non-default
- visual
- (sys_make_color): use the first x11_display in the list
- (x11_handle_async_input): only do anything if redisplay_lock
- isn't set
-
- * x11_windows.c (sys_new_window): use XCreateWindow so the
- visual may be specified
-
- * x11_windowsys.h (struct x11_display): added `visual', `depth'
- and `colormap' fields
-
- * unix_processes.c (get_pty): possibly check both /dev/ptmx and
- /dev/ptyXX (if they both exist), in that order
-
- * debug-buffer.c (db_print_frame): new function, print the
- current call backtrace (gcc only)
- (db_spew): ignore buffer if empty
-
-1998-09-02 John Harper <john dcs warwick ac uk>
-
- * edit.h (Merged_Face): new structure, pared down version of
- Lisp_Face, used to amalgamate face attributes from the various
- source faces for each character
- (FACEFF_INVERT, FACEFF_BOXED): new face attributes, used for
- drawing the cursor (and its ghosting)
- (WIN): new field `w_MergedFaces', a table of the actual faces
- used for drawing in this window. Currently it's limited to 64
- entries
-
- * faces.c (cmd_make_face): no longers copies from a source
- face, now all faces are created equal (and empty)
- (cmd_delete_face, mark_faces, cmd_face_id): deleted, no longer
- needed now faces don't have id's associated with them
- (cmd_set_face_attribute, cmd_face_attribute): new attributes
- `inverted' and `boxed'
- (merge_faces): new function, compute a face for an extent
- (get_face_id): new function, compute a face from a face
- (mark_merged_faces): new function
-
- * glyphs.c (make_window_glyphs, make_message_glyphs): support
- merged faces
-
- * values.c (cmd_garbage_collect): call mark_merge_faces in each
- window
-
- * x11_windows.c: support merged faces
-
- * x11_main.c (x11_free_dpy_colors): fix infinite loop bug
-
- * unix_processes.c (cmd_accept_process_output): check if
- there's any queued notifications as well as SIGCHLDs before
- waiting for output
-
-1998-09-01 John Harper <john dcs warwick ac uk>
-
- * unix_processes.c (cmd_accept_process_output): accept
- termination notifications as well as stream output
-
-1998-08-30 John Harper <john dcs warwick ac uk>
-
- * glyphs.c (make_window_glyphs): reload the glyph-table each
- time the current extent changes
-
-1998-08-29 John Harper <john dcs warwick ac uk>
-
- * views.c (cmd_set_status_message): deleted this function
- * edit.h (VW): deleted vw_StatusOverride field
-
- * extent.c (cmd_extent_get, cmd_extent_put, cmd_extent_set):
- moved the EXTENT argument to be first instead of last
-
-1998-08-28 John Harper <john dcs warwick ac uk>
-
- * main.c (on_idle): only call idle-hook once per idle period
-
- * extent.c: various fixes, including reverting the last change
- to unlink_extent_recursively. Mostly in the adjust_extents_X
- functions
-
- * extent.c (unlink_extent_recursively): fixed to unlink all
- children in each node, not just the first
- (make_global_extent, reset_global_extent): minor fixes, and
- remember to invalidate the cache
- (cmd_extent_get, cmd_extent_put): new special property
- `catch-variables'. When set this hijacks any attempts at
- setting non-permanent-local buffer-local symbols, and sets them
- in the innermost extent with this property
- (buffer_set_if_bound): function to implement the above
- * edit.h (EXTFF_CATCH_VARIABLES): new flag in Lisp_Extent
- * symbols.c (cmd_set): call buffer_set_if_bound if the symbol
- has the SF_BUFFER_LOCAL property
-
- * editcommands.c (cmd_clear_buffer): don't call
- reset_global_extent until _after_ clearing the buffer
-
-
-1998-08-27 John Harper <john dcs warwick ac uk>
-
- * views.c (update-status-buffer): can now be customized through
- the mode-line-format variable, I copied most of Emacs syntax..
-
- * edit.h (tx_ModeName, tx_MinorModeNameList,
- tx_MinorModeNameString): deleted these elements
- * buffers.c (var_mode_name, var_minor_mode_names): deleted
-
- * extent.c (cmd_buffer_symbol_value): only search if
- SF_BUFFER_LOCAL is set
-
- * faces.c (cmd_set_face_attribute): if setting the background
- or foreground attributes, and the value is a string, call
- get-color with that string
-
- * editcommands.c (cmd_clear_buffer): call reset_global_extent
-
- * extent.c (extent_cmp): function to test if two fragments
- belong to the same `extent'. Used by the `equal' function
- (cmd_buffer_put): deleted
- (cmd_map_extents): map a function over all extents in an area
- (map_section_extents): protect against gc
-
-1998-08-26 John Harper <john dcs warwick ac uk>
-
- * extent.c (cmd_extent_start, cmd_extent_end): new functions
- (cmd_extent_put, cmd_extent_get): special property
- `local-variables' linked to the `locals' field
- (cmd_delete_extent): remove the option of deleting individual
- fragments; this shouldn't be visible
-
- * extent.c (find_extent): record cache miss statistics
-
- * x11_windows.c (sys_set_font): for the specified font, try to
- load a bold version as well. This is done by querying the full
- name, then replacing the third component by `bold'
- (sys_draw_glyphs): handle the bold attribute by swapping fonts
- * x11_windowsys.c (w_WindowSys): new field ws_BoldFont
-
- * extent.c: new file, extents allow property lists to be
- maintained for buffer regions (also local variables). In fact
- the old style buffer-local values are now a special case of
- this, stored in the root extent covering the entire buffer
-
- * faces.c: new file. Faces associate rendering attributes
- (colour, underline, bold, etc) with the attribute codes
- understood by the redisplay algorithm. This file also
- implements the colour type
-
- * glyphs.c: traverses the extent tree, modifying the output
- attribute as the `face' property changes
-
- * edit.c (read_only_pos, read_only_section): these functions
- replace the read_only function. In case an extent has a local
- value of the read-only variable
-
- * housekeeping.c: the adjust_marks_X functions now call a
- related adjust_extents_Y function, and also update the
- positions in the extent caches
-
- * symbols.c (cmd_symbol_value): look for buffer-local values in
- the current stack of extents (use the buffer-symbol-value
- function)
- (cmd_set): if setting a buffer-local value, only ever set the
- buffer-wide value (use the buffer-set function to set a value
- in a specified extent)
- (cmd_kill_all_local_variables, cmd_kill_local_variable): these
- only kill the buffer-wide values, not in inner extents
-
- * x11_main.c: support for colour allocation and management.
- Also added some more resources for the various colours that are
- always allocated on startup
-
- * x11_windowsys.h, views.c, values.c, streams.c, redisplay.c,
- main.c, lisp.h, keys.c, jade.h, files.c, editcommands.c,
- edit.h, commands.c, buffers.c, Makefile.in: misc changes
-
- * x11_windows.c (sys_draw_glyphs): support rendering from faces
-
- * regexp.c, regjade.c (regmatch): fix bug of not being
- case-insensitive (if necessary) after matching a star or plus
-
-1998-08-19 John Harper <john dcs warwick ac uk>
-
- * keys.c (lookup_event_name): minor change to limit the number
- of modifier bits tested
-
-1998-08-18 John Harper <john dcs warwick ac uk>
-
- * keys.c (lookup_event, lookup_event_name): moved from
- x11_keys.c and rewritten to be portable
- * x11_keys.c (sys_lookup_mod, sys_lookup_code,
- sys_lookup_mod_name, sys_lookup_code_name): new functions
-
-1998-08-11 John Harper <john dcs warwick ac uk>
-
- * lisp.c (funcall): support for autoloading macros (but only if
- the list of arguments is still to be evaluated)
-
-1998-08-10 John Harper <john dcs warwick ac uk>
-
- * files.c (files_init): ADD_SUBR the make-file-from-stream
- function
-
-1998-08-06 John Harper <john dcs warwick ac uk>
-
- * buffers.c, debug-buffer.c, lisp.c, streams.c, symbols.c,
- unix_processes.c, views.c, windows.c: if possible, replace all
- unsafe uses of sprintf and vsprintf with snprintf and vsnprintf
-
-1998-08-02 John Harper <john dcs warwick ac uk>
-
- * buffers.c, edit.h: tx_FileName and tx_CanonicalFileName are
- now nil if unset, not the null string
-
-1998-07-16 John Harper <john dcs warwick ac uk>
-
- * x11_windowsys.h (struct x11_display): added last_click and
- last_click_button fields, for tracking double-clicks
- * x11_keys.c (translate_event): now takes an x11_display
- structure as an extra argument, only accepts double clicks if
- they're from the _same_ mouse button as the first click
- * x11_main.c: pass extra arg to translate_event
-
-1998-07-12 John Harper <john dcs warwick ac uk>
-
- * redisplay.c (patch_display): fix warning about relative
- precedence of && and || operators
-
- * x11_main.c (x11_handle_input): when using WINFF_PRESERVING,
- set it in all windows at once, since redisplay will update all
- windows (possibly losing their original contents)
-
-1998-07-11 John Harper <john dcs warwick ac uk>
-
- * edit.h (WIN): added new flag `WINFF_PRESERVING' used by
- asynchronous expose events to tell redisplay that the original
- window contents are being redrawn
- * x11_main.c (x11_handle_input): return whether or not a
- redisplay might be required, use WINFF_PRESERVING in
- asynchronous expose events
- * redisplay.c (cmd_redisplay): don't generate w_NewContents if
- WINFF_PRESERVING is set in the window
-
-1998-07-10 John Harper <john dcs warwick ac uk>
-
- * unix_main.c: deleted all the SIGIO stuff
- (sys_poll_input): new function
-
- * lisp.h (TEST_INT, TEST_INT_GUTS, TEST_INT_PERIOD,
- TEST_INT_SLOW): expanded testing for interrupts
- * lisp.c (lisp_test_int_counter): new variable
-
- * x11_main.c (x11_handle_input): handle asynchronous input,
- just look for the events we want, C-g causes an interrupt
- (x11_handle_sync_input, x11_handle_async_input): new functions
- * x11_defs.h: define TEST_INT_GUTS as x11_handle_async_input()
- * unix_defs.h: remove the TEST_INT definition
- * unix_processes.c (run_process): use TEST_INT_SLOW to test for
- interrupts in synchronous processes
-
-1998-07-04 John Harper <john dcs warwick ac uk>
-
- * lispmach.c (cmd_make_byte_code_subr): don't allocate the
- optional fourth and fifth elements unless they're required
-
- * unix_defs.h: remove EXEC_DIR define, just use JADE_EXEC_DIR
-
- * lispcmds.c: misc. changes to how the build directories and
- load-paths are set up (mainly, rename `X-dir' as `X-directory')
-
-1998-07-03 John Harper <john dcs warwick ac uk>
-
- * lispcmds.c (dl-load-path, exec-directory): new variables for
- dynamic loading
- (cmd_load): support for dynamic loading (search dl-path after
- exhausting load-path)
- * unix_defs.h (EXEC_DIR): new definition
- * unix_dl.c: new file, use dlopen() for dynamic loading
- * values.c (cmd_garbage_collect): call mark_dl_data
-
- * lisp.h (DEFUN, DEFUN_INT, ADD_SUBR, ADD_SUBR_INT): cleaned up
- a bit
-
-1998-07-01 John Harper <john dcs warwick ac uk>
-
- * find.c (mark_cached_regexps): fixed bug in chopping the list
- one element too late
-
-Tue Jun 30 00:08:36 1998 John Harper <john dcs warwick ac uk>
-
- * edit.h (enum Glyph_Attrs): added new _Rect variants of the
- four standard attributes. These are used to display `ghosted'
- cursors when the window is out of focus
- * glyphs.c, redisplay.c, x11_main.c, x11_windowsys.h: changes
- to support the above attributes
-
-Sun Jun 28 16:05:45 1998 John Harper <john dcs warwick ac uk>
-
- * windows.c (cmd_make_window): make a copy of the current
- window's buffer-list with copy-sequence; don't use it twice
-
-Sat Jun 27 18:21:30 1998 John Harper <john dcs warwick ac uk>
-
- * find.c (compile_regexp): when searching the cache, before
- comparing strings, test if they're eq to one another
-
-Fri Jun 26 16:54:54 1998 John Harper <john dcs warwick ac uk>
-
- * find.c (release_cached_regexp): renamed mark_cached_regexps,
- now marks the `regexp' field as it should
- (release_cached_regexps): new function, flushes the cache
-
- * find.c (compile_regexp, release_cached_regexp): instead of
- just caching a single compile regular expression, cache all of
- them. Then at gc, release as many of the least-recently-used
- regexps to satisfy a size limit (by default 1k). The hit ratios
- are immense
- (regexp-cache-control): function to set the size limit, and to
- report cache statistics
-
- * regexp.h, regexp.c (regexp): added regsize field, contains
- the true size of the compiled regular expression
-
-Tue Jun 23 12:19:54 1998 John Harper <john dcs warwick ac uk>
-
- * unix_processes.c (check_for_zombies): before closing all
- streams, check for any pending output
- (read_from_one_fd): only check errno==EINTR when the result
- from read is _less_ than zero (doh!)
-
- * buffers.c (cmd_make_mark): ensure that all fields of the new
- mark object are valid for when GC could occur
-
-Mon Jun 22 10:48:48 1998 John Harper <john dcs warwick ac uk>
-
- * glyphs.c (make_message_glyphs): when outputting messages that
- are longer than the window is wide, use more than the single
- bottommost line (when the minibuffer view has > 1 row)
-
-Sun Jun 21 01:14:21 1998 John Harper <john dcs warwick ac uk>
-
- * unix_processes.c (run_process): the new method of detecting
- when synchronous processes have exited still didn't work. Use
- the simple option, only exit when EOF on oth streams is
- received. This puts the onus on callers to redirect streams if
- necessary
-
- * unix_processes.c (cmd_call_process): ensure that the
- INPUT-FILE parameter is a _local_ file name (signal an error if
- it points to a remote file)
-
-Fri Jun 19 00:06:20 1998 John Harper <john dcs warwick ac uk>
-
- * unix_files.c (sys_directory_file_name): don't remove the
- trailing slash in a single character string (i.e. "/")
-
-Thu Jun 18 23:50:37 1998 John Harper <john dcs warwick ac uk>
-
- * unix_main.c (handle_input, cmd_sit_for, sys_accept_output):
- stop prematurely if a Lisp error is detected
- * unix_processes.c (proc_notification): stop on a Lisp error
-
-Tue Jun 16 12:00:24 1998 John Harper <john dcs warwick ac uk>
-
- * unix_processes.c (run_process): another attempt at fixing the
- process-exited-but-no-eof problem. Again, I think I may have it
- this time..
-
- * lispcmds.c (make-list, nth, nthcdr, make-vector, aset, aref,
- make-string, substring): check and signal negative arguments
-
- * stringmem.h, stringmem.c: add some more statistics: the
- number of _block_ allocations and frees
-
-Sun Jun 14 11:53:36 1998 John Harper <john dcs warwick ac uk>
-
- * files.c (cmd_copy_file): handle local->remote and
- remote->local copies correctly
-
-Sat Jun 13 11:08:18 1998 John Harper <john dcs warwick ac uk>
-
- * buffers.c (var_last_save_time): was expecting parameters in
- long-int format, not as a timestamp
-
- * unix_files.c (sys_file_modes): mask out all but the
- permission bits
-
-Fri Jun 12 18:11:17 1998 John Harper <john dcs warwick ac uk>
-
- * unix_files.c (sys_expand_file_names): fix somes bugs when
- handling "." and ".." in otherwise empty strings
-
-Thu Jun 11 16:44:42 1998 John Harper <john dcs warwick ac uk>
-
- * unix_main.c (wait_for_input, handle_input, sys_event_loop,
- sys_sit_for, sys_accept_input): use local copies of the master
- fd set to allow recursive use of sys_accept_input
-
-Wed Jun 10 20:49:05 1998 John Harper <john dcs warwick ac uk>
-
- * misc.c (cmd_sit_for): new function, wait for input or a
- timeout
-
- * unix_main.c (sys_event_loop): split into separate parts to
- allow new functions sys_sit_for and sys_accept_input
-
- * unix_processes.c (cmd_accept_process_output): new function,
- accept and process output, or timeout
-
-Mon Jun 8 14:50:17 1998 John Harper <john dcs warwick ac uk>
-
- * lisp.c (read_symbol): don't accept `0x' as a hex. number
-
- * lispcmds.c (cmd_mapc, cmd_mapcar): tidied up slightly
-
- * lispmach.c (cmd_jade_byte_code): ensure that _all_ functions
- that may end up calling Lisp code set the gc_stackbase slot
-
- * lisp.c (funcall): always add the current function to the
- backtrace stack. This simplifies gc protection, and provides
- better Lisp debugging information
-
-Sat Jun 6 16:09:35 1998 John Harper <john dcs warwick ac uk>
-
- * views.c (kill_view): new function to clean up an unused but
- non-gc'd view
- (update_views_dimensions): dont crash when the window no longer
- has room for all views, instead delete views from the top of
- the window until they all fit
- (cmd_next_view, cmd_previous_view): don't ignore inactive
- minibuffer views
-
- * glyphs.c (make_window_glyphs, make_message_glyphs): handle
- minibuffer views with more than one line. Always output the
- minibuffer contents, then if necessary overwrite the _bottom_
- line with the window's message
-
- * views.c (cmd_view_position): new function, return the
- position in the window of a specified view
- (cmd_find_view_by_pos): include status line in view
- (cmd_translate_pos_to_view): do boundary checks, return nil if
- the position isn't in the specified view, return t if it's in
- the status line
-
-Thu Jun 4 14:52:49 1998 John Harper <john dcs warwick ac uk>
-
- * find.c (mystrcmp, mystrrstrn, mystrrchrn): deleted these
- functions
-
- * misc.c (cmd_make_completion_string): renamed as
- `complete-string', added another arg FOLD-CASE
-
- * bytecodes.h, lisp.c, lispmach.c: excise all traces of the
- return function and the OP_RETURN instruction
-
- * buffers.c (cmd_all_buffers): new function, return a list of
- all existing buffers
-
-Tue Jun 2 09:06:58 1998 John Harper <john dcs warwick ac uk>
-
- * lispcmds.c (cmd_load): execute multiple matching items from
- the after-load-alist, not just the first
-
- * lispcmds.c (cmd_load): after using an entry in
- after-load-alist, delete it
-
- * main.c: add -no-rc to usage string
-
-Sun May 31 19:13:39 1998 John Harper <john dcs warwick ac uk>
-
- * views.c (cmd_viewp): new function
- * windows.c (cmd_windowp): new function
-
-Thu May 28 18:07:09 1998 John Harper <john dcs warwick ac uk>
-
- * lisp.h (MAKE_TIME, GET_TIME, TIMEP): new way of storing
- timestamps (DAYS . SECONDS) instead of in long-integer form
- * unix_files.c (sys_file_modtime): use new timestamp format
- * misc.c (cmd_current_time, cmd_current_time_string): use new
- timestamp format
- (cmd_fix_time): new function to normalise the two parts of a
- timestamp
-
-Mon May 25 17:11:32 1998 John Harper <john dcs warwick ac uk>
-
- * lispcmds.c (cmd_if, cmd_and, cmd_or): reinstated these
- special forms
-
- * lisp.c (throw_value): declared as volatile. This stops the
- compiler optimizing tests out of existence
-
-Sun May 24 10:24:16 1998 John Harper <john dcs warwick ac uk>
-
- * edit.h (WIN): new field w_DisplayedName; the string currently
- displayed as the name of this window (the current buffer's
- status id string)
- * values.c (mark_value): mark w_DisplayedName
- * redisplay.c (cmd_redisplay): if a window's current buffer's
- status id is different to its displayed name, reset it
- * x11_windows.c (sys_set_win_name): new function, set the name
- of a window
-
- * x11_windows.c (sys_new_window): fix size_hints structure, set
- icon name to `jade', don't bother setting window name
-
- * x11_main.c: added a `-rv' option to give proper reverse video
- (get_resources): capitalise resource names when we search under
- "Jade" (I'm sure this is incorrect, but who knows). Also added
- a reverseVideo resource
- * x11_windows.c (sys_new_window): take note of -rv option
-
-Sat May 23 11:28:01 1998 John Harper <john dcs warwick ac uk>
-
- * keys.c (cmd_make_keytab, cmd_make_keylist): renamed as
- make-keymap and make-sparse-keymap. make-sparse-keymap takes an
- optional argument, a sparse keymap whose bindings should be
- inherited (achieved by consing the whole thing onto the end of
- the new keymap)
- (findkey, cmd_unbind_keys): cope with finding inherited keymaps
- in the middle of lists
-
- * keys.h, keys.c: changed the definition of KEY (the
- representation of a single binding) to (COMMAND . (CODE .
- MODS)) instead of the old [CODE MODS COMMAND]. The cons cell
- version uses less memory
-
-Fri May 22 10:13:26 1998 John Harper <john dcs warwick ac uk>
-
- * keys.c (next_keymap_path): changed semantics slightly, now
- it's LISP_NULL if unset, not nil. Also changed the Lisp
- variable next-keymap-path into a function
-
- * buffers.c (cmd_set_buffer_name): if the buffer-status-id
- looks as though it still just names the buffer, reset it to
- use the new name
-
-Mon May 18 09:21:33 1998 John Harper <john dcs warwick ac uk>
-
- * lispcmds.c (cmd_delete_if, cmd_delete_if_not): added gc
- protection to these functions; how long have they been unsafe?
-
-Sun May 17 19:50:36 1998 John Harper <john dcs warwick ac uk>
-
- * housekeeping.c (adjust_marks_split_y): fix this again, maybe
- this time I've got it right
-
-Sat May 16 13:51:54 1998 John Harper <john dcs warwick ac uk>
-
- * housekeeping.c (adjust_marks_split_y): wasn't looking at the
- column position to ignore positions before the split in the
- line
-
- * x11_misc.c (write_clip, read_clip): deleted, not used anymore
-
- * unix_files.c, ../config.h.in: remove definition and use of
- HAVE_REALPATH since we provide an implementation for when libc
- doesn't
-
-Tue May 12 16:35:42 1998 John Harper <john dcs warwick ac uk>
-
- * x11_keys.c (translate_mods): extra arg SUBST-META controlling
- whether or not to switch the designated meta modifier for the
- more general EV_MOD_META bit. Needed by x11_find_meta.
-
-Sun May 10 21:19:48 1998 John Harper <john dcs warwick ac uk>
-
- * keys.c (ev_mod_meta): deleted, replaced by window-local meta
- codes
- * keys.h (EV_MOD_FAKE_META): renamed as EV_MOD_META; this is
- now used internally, instead of its translation
- * x11_keys.c (translate_mods): if the translated set of
- modifiers includes the current window's meta mask, replace this
- bit by EV_MOD_META
- (sys_find_meta): renamed x11_find_meta, now takes a x11_display
- structure as its argument. It finds the Meta modifier for a
- particular display
- * x11_main.c (x11_open_display): call x11_find_meta and set the
- display's meta_mod field
- * x11_windowsys.h (struct x11_display): added meta_mod field,
- the Meta modifier for this display
-
-Wed May 6 12:49:17 1998 John Harper <john dcs warwick ac uk>
-
- * lisp.c (load_autoload): new parameter IS-VARIABLE for
- autoloading variables
- * lispcmds.c (cmd_defvar): set variables that are boundp, but
- whose value is an autoload definition
- * keys.c (lookup_binding): works with autoloaded variables
-
- * unix_client.c (main): call make-window-on-display, not
- open-window-on-display for the -x and -X options
-
-Tue May 5 10:29:45 1998 John Harper <john dcs warwick ac uk>
-
- * lispcmds.c (cmd_call_hook): allow the HOOK argument to be a
- symbol or a list, not just a symbol
-
-Mon May 4 12:12:53 1998 John Harper <john dcs warwick ac uk>
-
- * views.c (update_status_buffer): changed the layout of the
- status line again; also some kludgey attempts at catching
- buffer overruns
-
-Sun May 3 12:20:21 1998 John Harper <john dcs warwick ac uk>
-
- * views.c (update_status_buffer): pad the gap between the
- tx_StatusId string and the mode details with hyphens not spaces
-
- * misc.c (cmd_version_and_build_string): renamed as
- build-id-string, doesn't have the version-string on the front,
- but does have the HOST_TYPE (i.e. i586-pc-gnu, or whatever) on
- the end
-
- * unix_main.c (fatal_signal_handler): minor changes to try and
- stop the infinite looping seen with Linux at times
-
-Wed Apr 29 09:48:37 1998 John Harper <john dcs warwick ac uk>
-
- * debug-buffer.c, redisplay.c: change malloc/free for
- sys_alloc/sys_free
-
- * undo.c (cmd_undo): when clearing the modified status, set
- tx_LastSaveChanges as well as tx_ProperSaveChanges
-
-Tue Apr 28 15:57:54 1998 John Harper <john dcs warwick ac uk>
-
- * Makefile.in: added files.o to list of dependencies
-
- * edit.h (TX): added tx_StatusId field, a string to display in
- the status line
- (VW): removed vw_StatusBuf and STATUS_BUFSIZ, added
- vw_StatusOverride, remove VWFF_CUSTOM_STATUS flag
- * buffers.c (cmd_make_buffer): set tx_StatusId to
- "Jade: BUFFER-NAME" by default
- (buffer-status-id): interface to tx_StatusId
- * glyphs.c (make_window_glyphs): change how
- update_status_buffer is called, now it formats straight into
- the glyph buffer
- * values.c (mark_value): add tx_StatusId and vw_StatusOverride
- * views.c (make_view): don't allocate vw_StatusBuf
- (update_status_buffer): changed dramatically, now it looks more
- like Emacs; still needs to be more customisable
- (cmd_set_status_message): changed for VW structure mods
-
- * symbols.c (cmd_put): fix how dumped plists are modified; cons
- onto their head any new values instead
-
-Mon Apr 27 10:51:34 1998 John Harper <john dcs warwick ac uk>
-
- * symbols.c (kill-all-local-variables): obey the
- `permanent-local' property of symbols
-
- * views.c (make_view): when copying the vw_BufferList, actually
- make a _copy_ using copy-sequence not just copy the pointer
-
-Sun Apr 26 19:23:28 1998 John Harper <john dcs warwick ac uk>
-
- * views.c (make_view): minor changes to how we set up the view
- * windows.c (cmd_make_window, cmd_destroy_window): assume
- responsibilities of open-window and close-window.
- destroy-window renamed as delete-window, and split into two
- functions, delete_window, and cmd_delete_window. The Lisp
- variant calls save-and-quit if window_count==1
- (sym_make_window_hook): no longer passed an argument
- (sym_destroy_window_hook): renamed delete-window-hook
- (cmd_window_list): new function
- (sym_window_closed_hook): deleted
- * x11_windows.c (cmd_make_window_on_display): made interactive
- * x11_main.c (handle_event): call delete-window, not
- window-closed-hook
-
- * redisplay.c, glyphs.c: another attempt to fix a display bug
-
- * edit.h (TXFF_SPECIAL): deleted this flag
-
- * buffers.c (destroy-buffer): deleted this function, let
- buffers be garbage collected as other objects are
- (buffer-modified-p): don't look at the TXFF_SPECIAL flag
- (set-buffer-special, buffer-special-p): deleted
-
- * views.c (update_status_buffer): ignore TXFF_SPECIAL, give
- read-only flag higher priority than modified flag
-
-Fri Apr 24 11:35:03 1998 John Harper <john dcs warwick ac uk>
-
- * unix_processes.c (cmd_active_processes): new function, return
- a list of all active processes
- (proc_notification): when calling functions, now pass the
- process as the sole argument
-
- * unix_processes.c (mark_active_processes): function to mark
- any processes that are currently active
- * values.c (cmd_garbage_collect): call mark_active_processes
- when HAVE_SUBPROCESSES is defined. This stops executing
- processes with no references from disappearing
-
-Wed Apr 22 17:21:07 1998 John Harper <john dcs warwick ac uk>
-
- * views.c (make_view): try to initialise the vw_BufferList
- (cmd_make_view): renamed split-view, deleted the BUFFER
- parameter, made interactive. This replaces open-view
- (cmd_destroy_view): renamed delete-view, made interactive. This
- replaces close-view
-
-Tue Apr 21 16:45:05 1998 John Harper <john dcs warwick ac uk>
-
- * unix_processes.c (get_pty): minor change to order in which
- pty masters are searched
-
- * misc.c (cmd_sleep_for): new function, pauses for a specified
- time length
- * unix_main.c (sys_sleep_for): support for sleep-for
-
- * buffers.c, streams.c (mark_prin, file_prin): wasn't calling
- stream_puts correctly
-
-Sat Apr 18 00:16:46 1998 John Harper <john dcs warwick ac uk>
-
- * find.c (buffer_reverse_strpbrk): when matching a newline, the
- position returned was one column too far to the left
-
- * unix_processes.c (run_process): when running synchronously,
- if the child exits before EOFs are received, allow a few more
- polls of input before exiting. Hopefully this should be enough
- to ensure that no final output from the process is missed. Of
- course, this means that putting a shell command into the
- background will take a few seconds to return
-
- * lispcmds.c (sym_jade_dir, sym_lisp_lib_dir,
- sym_site_lisp_dir): new pre-defined symbols
- (lispcmds_init): when defined, the environment variables
- JADEDIR, JADELISPLIB, JADESITELISP and JADEDOCFILE are used to
- initialise the locations of the corresponding files and
- directories
- * unix_defs.h (LISP_LIB_DIR, SITE_LISP_DIR, DOC_FILE): renamed
- each macro to ..._SUFFIX, removing the constant JADE_DIR prefix
-
-Fri Apr 17 14:20:01 1998 John Harper <john dcs warwick ac uk>
-
- * lisp.c, lispmach.c, redisplay.c, symbols.c: add preprocessor
- magic from autoconf manual to handle alloca declaration
- * unix_main.c (sys_event_loop): when C_ALLOCA is defined call
- alloca(0) to garbage collect
-
- * files.c (cmd_canonical_file_name): call
- sys_canonical_file_name for unhandled files
- * unix_files.c (sys_canonical_file_name): new function, uses
- realpath to expand links in a file name
- (sys_expand_file_name): fix bug in expanding "foo/../bar"
- * unix_defs.h: prototype for realpath when HAVE_REALPATH isn't
- defined
-
- * Makefile.in: handle LIBOBJS and ALLOCA correctly, some
- cosmetic changes
-
-Tue Apr 7 11:20:28 1998 John Harper <john dcs warwick ac uk>
-
- * unix_processes.c (run_process): when running synchronously,
- look for the child exiting, as well as EOF on its output
- streams. If it does exit, stop and close all streams. This is
- to allow shell commands to be put into the background mainly
- (though they'll get a SIGPIPE if they do any output)
-
-Mon Apr 6 09:26:30 1998 John Harper <john dcs warwick ac uk>
-
- * glyphs.c (make_window_glyphs): reinitialise glyph_row each
- view; I think this may fix an intermittent bug in which the
- line after the end of the glyph buffer is accessed
-
-Sat Apr 4 17:57:50 1998 John Harper <john dcs warwick ac uk>
-
- * unix_files.c (sys_file_symlink_p): fixed to use lstat() again
- instead of stat_file(), and therefore stat()
- (sys_file_modes_as_string): S and T bits had their case the
- wrong way around, now they're lowercase if the corresponding
- execute bit is also set, as in "ls -l"
-
-Fri Apr 3 10:47:31 1998 John Harper <john dcs warwick ac uk>
-
- * edit.h (glyph_buf): includes arrays of pointers to each line
- instead of the GLYPH_BUF_CODES and GLYPH_BUF_ATTRS macros
- * glyphs.c, redisplay.c: modifications for new glyph_buf
- structure
- * redisplay.c (hash_glyph_row): don't rotate, the hash values
- it generated weren't very well distributed. Go back to K=33
-
- * unix_server.c: if DEBUG_SERVER is defined generate trace of
- all server traffic into a debug buffer
- (server_accept_connection): set the fd returned from accept()
- to be _blocking_. I didn't realise that accepted connections
- inherit the characteristics of listening socket. This was the
- cause of the intermittent bug (a read returning EAGAIN when I
- didn't expect it)
-
- * unix_main.c (unix_set_fd_blocking): new function, opposite of
- unix_set_fd_nonblocking
-
- * jade.h: include <stdarg.h>
-
- * debug-buffer.c (db_printf, db_vprintf): split the old
- db_printf into these two functions
-
- * undo.c (undo_record_unmodified): function to call when a
- buffer is set as being unmodified; it deletes any previous
- "unmodified" mark in the undo list
- * buffers.c (cmd_set_buffer_modified): when STATUS is nil, call
- undo_record_unmodified
-
- * redisplay.c (hash_glyph_row): rotate the hash value instead
- of just shifting
-
-Wed Apr 1 00:54:36 1998 John Harper <john dcs warwick ac uk>
-
- * files.c: new file, groups together all functions dealing with
- files; also implements Emacs-like magic-file-names using the
- `file-handler-alist' variable
- * unix_files.c: new file, functions to implement the built-in
- file handler for files in the local filing system
- * lisp.h: changed Lisp_File structure slightly
-
- * buffers.c, edit.c, lispcmds.c, streams.c, unix_main.c,
- unix_processes.c, unix_server.c, values.c, x11_main.c:
- modifications to handle new file primitives. Mainly to deal
- with canonical names (to compare to files), and most
- importantly, ensuring that everything is gc-protected whilst
- calling any function in files.c that could invoke some Lisp
- code
-
- * edit.h (TX): added tx_CanonicalFileName field
-
- * find.c (push_regexp_data, pop_regexp_data): functions for
- preserving the regexp match data
-
- * jade.h: always include regexp.h
-
- * keys.c (eval_input_event): fix bug when inserting repeated
- string
-
- * lisp.c (cmd_add_doc_string, cmd_get_doc_string): deleted
- (call_lisp3, call_lisp4): new functions
- (funcall): guarantee that arguments will be gc-protected
-
- * lispcmds.c (sym_documentation_file): new variable
- (cmd_substring): moved here from misc.c
-
- * main.c: if an error occurs in startup, print it to stderr
-
- * misc.c: lots of reorganisation, including:
- (sym_operating_system, sym_window_system): replace
- x11-p, unix-p and amiga-p functions
- (system): deleted
- (getenv): deleted, now in environ.jl
-
- * unix_main.c (unix_set_fd_nonblocking, unix_set_fd_cloexec):
- new functions
- (sigio_handler): unused support for async input
-
- * unix_processes.c: use process-environment variable to give
- environ of each subprocess
-
-Fri Mar 20 12:24:50 1998 John Harper <john dcs warwick ac uk>
-
- * x11_windowsys.h (CLEAR_GLYPHS, FILL_GLYPHS): new macros, for
- clearing and filling a horizontal sequence of glyphs in a window
-
- * redisplay.c (redisplay_do_draw): while scanning a line for
- attribute changes, also check if the chunk to be drawn consists
- only of spaces. If so use the CLEAR_GLYPHS or FILL_GLYPHS
- macros to draw it
-
-Thu Mar 19 14:54:39 1998 John Harper <john dcs warwick ac uk>
-
- * unix_client.c: two new options "-" and "--", for different
- methods of evaluating forms read from stdin. "-" is intended
- for interactive use, "--" for batch use
-
- * symbols.c (cmd_makunbound, cmd_fmakunbound): don't set slots
- to LISP_NULL, but to void_value
-
-Tue Mar 17 11:11:29 1998 John Harper <john dcs warwick ac uk>
-
- * glyphs.c (recenter_cursor): fixed a couple of bugs
- (line_glyph_length): added special case for direct-mapped
- cache; currently this is what's being used
-
-Mon Mar 16 10:47:21 1998 John Harper <john dcs warwick ac uk>
-
- * lispmach.c, bytecodes.h (OP_FILTER, OP_MACROP, OP_BYTECODEP):
- new opcodes
-
- * lispcmds.c (cmd_filter): new function, similar to the Miranda
- function of the same name, construct a new list containing
- elements of an input list that satisfy a predicate
-
- * x11_keys.c (translate_event): was always using the display at
- the head of the x11_display_list to convert keycodes to
- keysyms; now use the display that the event came from
-
-Sat Mar 14 14:58:34 1998 John Harper <john dcs warwick ac uk>
-
- * streams.c (cmd_format, sym_format_hooks_alist): big overhaul
- of the format function. Now flags work with most conversions,
- and user-defined conversions are possible via the
- format-hooks-alist variable
-
- * unix_main.c (cmd_file_symlink_p): was using stat() instead of
- lstat() to get the file's attributes
-
-Fri Mar 13 15:06:28 1998 John Harper <john dcs warwick ac uk>
-
- * unix_main.c (cmd_file_modes_as_string): returns an "ls -l"
- type attribute string
-
- * misc.c (cmd_file_name_as_directory, cmd_directory_file_name):
- new functions
- * unix_main.c (file_name_as_directory, directory_file_name):
- support for the above
-
- * misc.c (cmd_current_time_string): now takes two optional
- arguments, a timestamp and a strftime() style format string
-
- * lisp.c (bindlambdalist): fixed the bug of binding like let*
- instead of like let
-
-Tue Mar 10 20:23:41 1998 John Harper <john dcs warwick ac uk>
-
- * find.c (cmd_search_forward, cmd_search_backward): fixed
- case-insensitive matching (first character was always being
- compared sensitively)
-
-Mon Mar 9 09:29:23 1998 John Harper <john dcs warwick ac uk>
-
- * unix_processes.c (get_pty, run_process): handle not being able
- to get a pty gracefully (i.e. don't dump core)
-
- * regexp.c (regmatch_string): new function, basically a wrapper
- for regtry(), i.e. compares a regexp to a string with no
- searching
-
- * find.c (cmd_string_match): swapped the order of the NOCASEP
- and START args (now START is first). Should really make NOCASEP
- a variable
- (cmd_string_looking_at): new function, matches a regexp at one
- place and one place only in a string
-
-Tue Mar 3 22:13:22 1998 John Harper <john dcs warwick ac uk>
-
- * redisplay.c (COMPARE_FAST_AND_LOOSE): when defined as
- non-zero (the default) just compare hash codes to see if two
- lines are the same, don't bother actually comparing them byte
- by byte
- (hash_glyph_row): changed how the attrs are included
- (redisplay_message): hash the message line
-
-Mon Mar 2 11:10:59 1998 John Harper <john dcs warwick ac uk>
-
- * unix_client.c: new options "-x DISPLAY" and "-X" to simplify
- opening a window to the server process
-
- * x11_windowsys.h (struct x11_display): data structure to track
- per-Display data
- (WINDOW_XDPY): macro giving a pointer to the display data of a
- partcular window
- * x11_main.c (x11_open_display, x11_close_display,
- x11_close_all_displays): functions for managing Displays
- (x11_display_list): list of all open Display connections
- * x11_windows.c: misc. updates to handle multiple displays
- (cmd_make_window_on_display): low-level function to open a
- window on a specified display (currently always opening a new
- display connection)
- * x11_keys.c: misc. updates to handle multiple displays; needs
- to maintain individual Meta mappings per display
- * x11_misc.c: misc. updates to handle multiple displays
-
- * windows.c (cmd_destroy_window): call sys_unset_font before
- closing the window
-
- * unix_server.c: now accepts different types of requests, the
- old find-file, eval, and end-of-session. Also, the connection
- isn't closed after a file has been replied to
- * unix_client.c: expanded to handle the new multiple request
- server. New options -f, -e, and -q
- * unix_defs.h (enum server_request): defines the request types
- for the client/server stuff
-
- * values.c (STATIC_ROOTS): increased from 128 to 160
-
-Sat Feb 28 15:38:33 1998 John Harper <john dcs warwick ac uk>
-
- * keys.c (eval_input_event): always clear prefix-arg
-
-Fri Feb 27 12:31:48 1998 John Harper <john dcs warwick ac uk>
-
- * movement.c (cmd_center_display): changed semantics of
- argument, positive args now count from zero, not one
-
- * command.c (cmd_call_command): two new flags, @ and !. If the
- result of the command is a position, and @ is set, move the
- cursor to this position before returning. If ! is set, before
- moving the cursor call the lisp function set-auto-mark
-
- * movement.c (cmd_end_of_buffer, cmd_start_of_buffer,
- cmd_end_of_line, cmd_start_of_line, cmd_forward_line,
- cmd_forward_char, cmd_forward_tab, cmd_find_matching_bracket):
- use new interactive decl flags @ and !
-
-Tue Feb 24 12:16:47 1998 John Harper <john dcs warwick ac uk>
-
- * redisplay.c (redisplay_message): new function, draws the
- message line in the specified window
- * glyphs.c (make_message_glyphs): new function, outputs the
- glyphs needed to draw the message in the specified window
- * windows.c, lisp.c: when the message has to be redisplayed
- immediately call redisplay_message() instead of doing a full
- redisplay
-
- * views.c (cmd_get_buffer_view): new function, find a view
- displaying a specified buffer
-
-Thu Feb 19 00:01:16 1998 John Harper <john dcs warwick ac uk>
-
- * Makefile.in: added @top_srcdir@/lib-src to VPATH
-
- * lispcmds.c: added prototypes for all DEFSYMS
-
- * windows.c (no_message): deleted, it was never called
-
- * glyphs.c (recenter_cursor): global instead of static
- * views.c (cmd_view_origin): calls recenter_cursor() to ensure
- that the returned value will be correct after the next
- redisplay (assuming that the current configuration still
- exists)
-
- * buffers.c (swap_buffer, swap_buffer_tmp): swap_buffer_tmp
- deleted, this was almost the same as swap_buffer anyway. Added
- code to remove a message that may obscure a newly activated
- minibuffer
-
- * keys.c (eval_input_event): modifications to allow prefix
- arguments to work with unbound events (i.e. they insert ARG
- copies of whatever they would normally insert)
- (unbound-key-hook): this is now an `or' style hook
-
- * glyphs.c (make_window_glyphs): only display a cursor in the
- current window
-
- * lisp.c (readl): accept the various backquote characters, that
- is `X => (backquote X), ,@X => (backquote-splice X), and
- ,X => (backquote-unquote X)
-
-Wed Feb 18 22:52:13 1998 John Harper <john dcs warwick ac uk>
-
- * glyphs.c (gl_cache_entry_t, gl_cache, line_glyph_length):
- structures and functions for caching the number of glyphs in a
- line. Currently a 2-way associative 200 entry cache (indexed by
- line number)
- (string_glyph_length): renamed as uncached_string_glyph_length
- (make_window_glyphs): much work to support line wrapping as
- well as the old truncation display method
- (skip_glyph_rows_forwards, skip_glyph_rows_backwards): new
- functions for moving through a buffer as it would be displayed
- on screen
- (recenter_cursor): new function to handle the display origin of
- each view. Replaces the old resync_xy()
- (calc_cursor_offset): renamed as get_cursor_column(), now
- actually returns the column number
- (char_glyphs): deleted
- (adjust_cursor_to_glyph): replaced by set_cursor_vertically,
- this takes a view and a line number and moves the cursor to
- that line trying to keep the original horizontal screen
- position
- (cmd_display_to_char_pos, cmd_char_to_display_pos): translate
- between screen coordinates in a view and character positions
-
- * redisplay.c (cmd_redisplay): don't call resync_xy()
-
- * movement.c (sym_next_screen_context_lines): overlap for when
- scrolling by the screenful
- (cmd_center_display, cmd_forward_line): updated for wrapped
- lines
- (move_down_screens, move_up_screens): deleted
- (cmd_next_screen, cmd_prev_screen): updated for wrapped lines,
- also moves the cursor relative to the screen origin, and may
- leave some context
- (cmd_mouse_pos): deleted, now implemented in edit.jl
-
- * housekeeping.c (resync_xy, set_start_col, set_start_line):
- all deleted
-
- * editcommands.c (cmd_indent_to): call get_cursor_column()
- instead of calc_cursor_offset()
-
- * edit.h (Mark): type renamed as Lisp_Mark, removed mk_ prefix
- from field names, removed MKFF_RESIDENT flag, implied by type
- of "file" field. Added MARK_IS_RESIDENT_P() macro
- (TXFF_DONT_WRAP_LINES): flag controlling whether long lines are
- truncated or wrapped when rendering. TX_WRAP_LINES_P() accessor
- macro.
- (VWFF_AT_BOTTOM): flag set by recenter_cursor() when the end of
- the buffer is displayed by the view
-
- * edit.c (check_row): new function, similar to check_line but
- takes a line number instead of a position
-
- * buffers.c (cmd_in_restriction_p): deleted
- (cmd_buffer_restricted_p): new function, returns t when the
- buffer is restricted to less than its full size
- (var_truncate_lines): new variable, controls the
- TXFF_DONT_WRAP_LINES flag
- (cmd_set_mark): deleted
- (cmd_set_mark_pos, cmd_set_mark_file): new functions
-
- * windows.c (cmd_make_window): call make-window-hook
-
- * views.c (cmd_destroy_view): updated for line wrapping (use
- skip_glyph_rows functions)
- (update_status_buffer): use VWFF_AT_BOTTOM for position flag
- (cmd_translate_pos_to_view): updated for new display regime
-
- * unix_server: replace all occurrences of server-open-file with
- server-find-file
-
- * symbols.c (symbols_init): explicitly initialise the function
- value of sym_nil in case it was dumped (and left as 0)
-
- * lispcmds.c (cmd_list): add test for interrupt
- (cmd_list_star): new function, creates a dotted list
- (cmd_atom): somehow I'd inverted the meaning of this predicate
- (cmd_macrop): new function
- (cmd_subrp): don't treat bytecode objects as subrs
-
- * Makefile.in: use substitution opt_enable_dumped instead of
- enable_dumped
-
-Thu Feb 12 18:30:19 1998 John Harper <john dcs warwick ac uk>
-
- * jade.h, io.c, lispcmds.c, lispmach.c, redisplay.c, regexp.c,
- symbols.c, undo.c, unix_client.c, unix_main.c,
- unix_processes.c, unix_server.c, x11_defs.h, x11_keys.c,
- x11_misc.c: changes to work with autoconf/configure managed
- configuration process
-
- * memcmp.c: new file, defines the memcmp() library function in
- case its not in libc
-
- * unix_processes.c (get_pty): support for /dev/ptmx style
- opening of pseudo terminals
-
- * glyphs.c (make_window_glyphs): a lot of reorganisation,
- mostly aimed at simplifying things
-
- * housekeeping.c (resync_y): fixed gaps at the end of buffers
- not being suppressed. It now goes the other way, and is
- possibly a bit too eager now, but I'll see if I get used to
- it.. (see the function for a comment)
-
-Tue Feb 10 11:15:06 1998 John Harper <john dcs warwick ac uk>
-
- * glyphs.c (make_window_glyphs): fix for rectangular blocks not
- working in glyph coordinates
-
-Thu Feb 5 17:46:50 1998 John Harper <john dcs warwick ac uk>
-
- * glyphs.c (make_window_glyphs): fix for block ending past last
- displayed column
-
- * views.c (update_status_buffer): fix for "All of" not being
- displayed when the last line in the buffer falls exactly on the
- last line of the view
-
-Mon Feb 2 00:05:12 1998 John Harper <john dcs warwick ac uk>
-
- * edit.h (TX): deleted tx_LastLogical? and tx_Mod?, also
- removed the flags TXFF_REFRESH_ALL and TXFF_REFRESH_STATUS.
- The functions flag_insertion, flag_deletion, and
- flag_modification are now macros that simply bump the buffer's
- change counter.
- (VW): removed vw_LastDisplayOrigin and vw_LastBlock?. Changed
- vw_BlockStatus to an int. Replaced vw_?Pix by vw_FirstX and
- vw_FirstY. Deleted VWFF_FORCE_REFRESH, VWFF_REFRESH_BLOCK, and
- VWFF_REFRESH_STATUS flags.
- (glyph_code, glyph_attr, enum Glyph_Attrs, glyph_buf): types
- for glyph buffers
- (WIN): w_Content and w_NewContent, old and new glyph buffers.
- Deleted w_FontStart, not used anywhere.
-
- * glyphs.c (make_glyph_array, expand_tabs): deleted
- (make_window_glyphs): new function, out of the ashes of
- make_glyph_array(), it creates the glyph buffer of a window
- (GlyphTable): changed name to glyph_table_t
-
- * redisplay.c: new file, provides a general redisplay algorithm
- using diffing of glyph buffers to decide what to redraw
-
- * x11_windowsys.h: all macros deleted, replaced by DRAW_GLYPHS
- and COPY_GLYPHS
-
- * main.c (inner_main): call redisplay_init instead of
- refresh_init, don't control cursor
- (cmd_recursive_edit): don't mess with cursor
-
- * unix_main.c (event_loop): don't control refresh explicitly,
- just call cmd_redisplay() once per loop
-
- * views.c (recalc_pixel_measures): renamed recalc_measures
- (cmd_destroy_view): when there's no preceding view to give the
- space to, ensure that the following view is ``scrolled''
- upwards such that no display scrolling takes place
- (var_max_scroll): deleted
-
- * windows.c: allocation/deallocation of glyph buffers
- (update_window_dimensions): centralised function to call when
- the window changes size
-
- * x11_main.c: handle Expose events by marking that a rectangle
- of the current glyph buffer is garbage. Also handle
- GraphicsExpose here now
- (sys_flush_output): deleted, call cmd_flush_output() instead
-
- * x11_windows.c: minor changes
- * edit.c (pos_in_block, page_in_block, line_in_block,
- set_block_refresh): all deleted
- * editcommands.c: don't call set_block_refresh
- * housekeeping.c: don't update vw_LastBlock? or tx_Mod?
- positions since they don't exist anymore
- * buffers.c, io.c, streams.c: don't set any of the explicit
- refresh flags anymore, since they were removed
- * values.c (make_value): don't mark tx_Mod? or vw_LastBlock? or
- vw_LastDisplayOrigin
- * movement.c (cmd_mouse_pos): use vw_FirstY instead of
- vw_TopPix
- * refresh.c, render.c, x11_render.c: deleted
- * unix_processes.c, unix_server.c: don't control cursor anymore
-
- * lisp.c: don't call refresh_message(); cmd_flush_output() to
- get a message displayed, just cmd_redisplay(), also don't turn
- cursor on or off, or call refresh_X
- * lisp.h (VGLYPHTAB): new name for underlying typedef
-
- * keys.c (usekey): renamed as eval_input_event(). Also, don't
- do anything to handle the display
-
-Sun Jan 25 14:03:09 1998 John Harper <john dcs warwick ac uk>
-
- * io.c (cmd_write_buffer_contents): don't call check_section to
- check the START and END arguments since it looks at the current
- restriction, not what is required, so do it manually. Also try
- to defend against START and END pointing past the end of their
- respective lines
-
-Sat Jan 24 16:46:25 1998 John Harper <john dcs warwick ac uk>
-
- * io.c (cmd_read_buffer): renamed as read-file-contents
- (cmd_write_buffer): deleted
- (cmd_write_buffer_area): renamed as write-buffer-contents.
- Moved the FILE argument to be first, START and END are now
- optional, by default the start and end of the current buffer
- (ignoring restrictions)
- (cmd_insert_file_contents): new function
- * unix_processes.c (cmd_call_process_area): calls
- cmd_write_buffer_contents now
-
- * jade.h: moved CONCAT() and QUOTE() to the top of the file,
- include "unix_defs.h", "x11_defs.h" and "amiga_defs.h" (when
- necessary) instead of in the config file. Also the
- configuration file is defined by the macro CONFIG_FILE (it will
- be quoted)
-
- * lisp.c (eval_lambda, funcall): handle throw to 'defun (i.e. a
- non-local return) properly
- (cmd_condition_case): ensure that throw_value == LISP_NULL
- while chasing down the list of handlers
-
- * lisp.h: definitions for dumped Lisp constants
- (CONS_WRITABLE_P): true when the cons cell arg is not in
- read-only storage
- (V_Compiled): set to 7
- (VECTOR_WRITABLE_P): defined in terms of dumped_text_start and
- dumped_text_end
- (COMPILED_WRITABLE_P): deleted, use VECTOR_W_P
- (dumped_X_{start,end}): prototypes for the symbols created by
- dump.jl
- (DUMPED_SYM_NIL): a pointer to the dumped nil symbol
-
- * symbols.c (OB_NIL): now defined as &void_object
- (symbols_sweep): treat all dumped symbols as an extra
- allocation block (albeit one in which unused symbols are never
- put on the free-list)
- (cmd_put): check that cons cell being updated is
- CONS_WRITABLE_P, if not allocate a new one
- (pre_symbols_init): new function to create the obarray
-
- * lispcmds.c (cmd_nconc, cmd_rplaca, cmd_rplacd, cmd_nreverse):
- check if CONS_WRITABLE_P(), signal setting-constant error if
- not
- (cmd_load): check for ".jld" suffix first when DUMPED is
- defined, these are the files of non-constant forms output by
- dump.jl
- (cmd_subr_documentation): for built-in subroutines, don't
- return the string from the DOC file, just its position
-
- * lispmach.c (cmd_jade_byte_code): in OP_ERRORPRO don't do one
- to many cdrs when finding the error data
-
- * main.c (main): mods for dumped constants. Call
- pre_values_init() and pre_symbols_init(), then dumped_init()
- when DUMPED is defined, then the normal stuff
-
- * regexp.h, regjade.c, regsub.c: replace #ifdef BUILD_JADE by
- #ifdef JADE. Also moved to the main src directory so remove ..
- in included file names.
-
- * streams.c (cmd_open, cmd_close): renamed as open-file and
- close-file
- (cmd_seek_file): new function, a combination of ftell() and
- fseek()
- (cmd_read_file_until): deleted
-
- * unix_main.c (read_file): deleted
-
- * unix_processes.c (run_process): set close-on-exec for
- pr_Stderr. Order of interrupt signals for synchronous processes
- is not SIGINT, SIGTERM, SIGKILL.
-
- * values.c (string_cmp): use memcmp to compare strings, not
- strcmp which exits on finding a zero byte, doh!
- (mark_value): don't mark read-only cons or vector cells
- (values_init): now called pre_values_init
- (values_init2): now called values_init
- (dumped_init): function to get all dumped data ready for use,
- basically interns all symbols, setting NULL pointers they
- contain to nil. Also initialises the allocated_X counts
-
- * io.c (cmd_read_file, cmd_write_file): deleted these
- functions
-
-Mon Jan 19 00:32:48 1998 John Harper <john dcs warwick ac uk>
-
- * lisp.h (Lisp_Compiled): changed to allow a minimum of four
- items in the vector, also changed some of the related macros
-
- * lispcmds.c (cmd_bytecodep): new function
- (cmd_defun, cmd_defmacro): now accept bytecode objects as
- second argument
-
- * lispmach.c (cmd_jade_byte_code): check when handling
- exceptions that throw_value != LISP_NULL
-
- * find.c (compile_regexp): check for NULL value of last program
-
- * buffers.c, commands.c, editcommands.c, find.c, keys.c,
- lisp.c, lispmach.c, main.c, symbols.c, undo.c,
- unix_processes.c, unix_server.c, views.c, windows.c,
- x11_misc.c: made all DEFSYM's global and ensured that each
- DEFSYM is on a separate line.
-
- * lisp.h (VECTOR_WRITABLE_P): check if a vector is in writable
- memory or not
- * lispcmds.c (cmd_aset): check when modifying a vector that the
- cell8 static bit isn't set. For this and (now) for modifying a
- static string the setting-constant error is raised
-
- * lispmach.c (cmd_jade_byte_code): use a single switch
- statement, instead of differentiating between those
- instructions with embedded arguments, and those without.
-
-Sun Jan 18 00:10:41 1998 John Harper <john dcs warwick ac uk>
-
- * lisp.h (Lisp_Compiled): new type, a five-element vector
- representing a byte code subroutine
- (Lisp_Cell): given each cell8 type a `static' bit as bit 7,
- this also doubles the maximum size of strings
-
- * values.c: minor changes for new type
-
- * streams.c (stream_put_cntl): deleted since it was never used
-
- * lispmach.c (cmd_jade_byte_code): calling byte code subrs
- (cmd_make_byte_code_subr): new function
-
- * lispcmds.c: updated to support byte code subrs in most places
- that vectors are supported
-
- * lisp.c: big changes: support for byte code subrs, eval now
- uses funcall to call functions, only macroexpands expands
- macros, #[...] reads and prints as a byte code object, cleaned
- up what is protected from garbage collection, only funcall
- increments and checks max-lisp-depth..
- (print-escape-newlines): now called `print-escape', can also be
- set to produce octal escapes for _all_ non-printing characters
-
- * edit.c (free_line_buf): function version of FREE_LINE_BUF
- * io.c (read_tx): use free_line_buf() to free lines
-
- * commands.c: updated to handle byte code subrs
-
- * edit.h, edit.c, buffers.c, io.c: each buffer now gets its own
- StrMem pool
-
- * stringmem.c (sm_init): initialise more of the fields
-
- * stringmem.h, stringmem.c: new field in MemBucket structure,
- `mbu_FreeCount', contains the number of available objects in
- the buffer
-
- * lisp.h: Changed the VALUE format again. Now its:
-
- "Bit definitions for VALUE pointers. The lowest bit is always
- zero except during GC. If bit one is set the object is a 30-bit
- signed integer, with the data bits stored in the pointer as
- bits 2->31.
-
- If bit one is clear the VALUE is a pointer to a "cell", all
- objects apart from integers are represented by various types of
- cells. Every cell has a VALUE as its first element, the lowest
- bits of this VALUE define the actual type of the cell.
-
- If bit zero is unset, the cell is a cons, a pair of two
- values the car and the cdr (the GC mark bit of the cons is bit
- zero of the cdr).
-
- If bit zero is set the cell more type information is stored
- in bits 1->6, with bit 7 the mark bit."
-
-Fri Jan 16 00:40:41 1998 John Harper <john dcs warwick ac uk>
-
- * unix_misc.c: renamed as unix_main.c
- (register_input_fd, deregister_input_fd): functions to register
- that we need to listen for input on a file description, and the
- function to be called when input is available
- (event_loop): a totally general input loop using select(), made
- from old bits of x11_eventloop.c
-
- * x11_display.c: renamed as x11_main.c, inherited what's left
- of x11_eventloop.c
- (x11_handle_input): a function that's registered as the input
- handler for the X11 Display fd; does all event handling
- (sys_flush_output): a function called from event_loop() that
- just calls XFlush()
-
- * main.c (on_idle): new function to move the idle actions out
- of the system-specific code
- (handle_input_exception): similar idea for handling of
- exceptions in low-level input loops
- (doconmsg, input_lock, cmd_input_lock): deleted all these
- remnants of Amigadom
-
- * unix_processes.c: uses [de]register_input_fd()
- (cmd_signal_process): deleted this function, it was ill-guided,
- instead define a function do_signal_command by which the Lisp
- functions that send signals are implemented
-
- * unix_server.c: uses [de]register_input_fd()
-
- * values.c (cmd_cons): _will_ return LISP_NULL if we are out of
- memory, this will break things further up the line..
-
-Thu Jan 15 12:46:46 1998 John Harper <john dcs warwick ac uk>
-
- * lispcmds.c (cmd_nth, cmd_nthcdr): these now check for interrupts
-
- * lisp.c (find_member_by_index, move_down_list): removed these
- functions, they were (almost) the same as nth and nthcdr
-
- * commands.c (interactive_spec, cmd_interactivep): don't use
- find_member_by_index() and move_down_list(), use nth and nthcdr
- instead.
- * streams.c (cmd_format): don't use ARG1 and ARG2 macros
- * lisp.h: removed ARG1-4 and ARGN macros
-
- * lisp.c (debug_on_error): made this into a normal variable,
- not a subr-variable type thing
-
- * misc.c (cmd_make_completion_string): cleaned up this function
-
- * lispcmds.c (cmd_function, cmd_return): removed, defined as a
- macro in lisp.jl
- (cmd_make_list): don't build the list front-to-back, ordering's
- not important
- (cmd_eval_hook, cmd_eval_hook2): deleted
- (cmd_call_hook): new function, three arguments, HOOK-SYMBOL,
- ARG-LIST, and optionally TYPE. TYPE is one of nil, or, and,
- defining how the return values of the hook functions are
- treated.
-
- * commands.c, editcommands.c, keys.c, views.c, windows.c,
- x11_eventloop.c: changed calls to eval-hook to use call-hook
-
-Wed Jan 14 17:49:27 1998 John Harper <john dcs warwick ac uk>
-
- * lispmach.c, bytecodes.h: totally rethought how exceptions
- (i.e. unwind-protect, catch/throw and condition-case) are
- handled. Before the handler forms were compiled into separate
- byte-code forms. Now we handle them inline to the original
- piece of code. The idea is that the new instruction OP_BINDERR
- registers an exception handler (an offset into the byte-code
- string), along with the current stack pointer, by adding to the
- binding stack. When an exception occurs the bind stack is
- unbound, when a (PC . SP) item is found, the stack pointer is
- set to SP, throw_value is pushed onto it, and PC is jumped to.
- The EJMP instruction can be used to give control back to the C
- error handler.
-
- (OP_CATCH_KLUDGE, OP_UNWIND_PRO, OP_UN_UNWIND_PRO,
- OP_ERROR_PRO) all been deleted.
-
- (OP_CATCH): new opcode. This takes two arguments, TAG and
- THROW-VALUE. THROW-VALUE is the saved copy of throw_value, if
- (car THROW-VALUE) == TAG we match, and we leave two values on
- the stack, nil on top (to pacify EJMP), (cdr THROW-VALUE) below
- that.
-
- (OP_BINDERR): Pop our single argument and cons it onto the
- bind- stack in a pair with the current stack-pointer. This
- installs an address in the code string as an error handler.
-
- (OP_ERRORPRO): This should be called with three values on the
- stack. 1. conditions of the error handler 2. throw_value of the
- exception 3. symbol to bind the error data to (or nil). It pops
- (1) and tests it against the error in (2). If they match it
- sets (2) to nil, and binds the error data to the symbol in (3).
-
- (OP_EJMP): Pop the stack; if it's nil jmp pc[0,1], otherwise
- set throw_value=ARG and goto the C error handler.
-
- * lisp.c (cmd_error_protect): renamed this as condition-case
- and inserted a new first parameter VAR, the symbol to bind the
- error data to. This is the same as Emacs function, it's
- necessary for the new VM error handling
- (compare_error): new function to compare the conditions a
- handler says it will take, against the error that was
- signalled
-
- * lispcmds.c (cmd_unwind_protect): only reinstall the old throw
- if it's actually an error and there was no error in the cleanup
- forms. This way the newest error takes precedence
-
-Mon Jan 12 22:15:55 1998 John Harper <john dcs warwick ac uk>
-
- * find.c (buffer-compare-string): function to compare a string
- with a position in a buffer
-
- * lisp.c (sym_debug_macros, eval): when debug-macros is nil the
- debugger is never entered to expand a macro definition
-
- * lispcmds.c (cmd_max, cmd_min): new functions
- * bytecodes.h, lispmach.c (OP_MAX, OP_MIN): new instructions
-
-Sun Jan 11 19:16:09 1998 John Harper <john dcs warwick ac uk>
-
- * lispcmds.c (cmd_load, sym_eval_after_load): a method of having
- a form be evaluated after a specified Lisp-library is loaded.
-
-Tue Jan 6 13:06:06 1998 John Harper <john dcs warwick ac uk>
-
- * edit.c (pad_cursor): reinstall the original cursor position
- after calling pad_pos(), since spaces may have been inserted
- before it, pushing it further down the line.
-
- * unix_processes.c (check_for_zombies): re-ordered a lot of this
- function. Also fixed the bug where errno was being looked at
- even if the return from waitpid() was zero.
-
-Sat Jan 3 20:57:03 1998 John Harper <john dcs warwick ac uk>
-
- * refresh.c (refresh_block): move the initialisation of tstart
- and tend to before they're passed as arguments to sub_regions()
-
-Sun Dec 21 02:48:28 1997 John Harper <john dcs warwick ac uk>
-
- * lisp.h (VCONS): don't mask out the VALUE_CONS_MARK_BIT, if
- this needs to be done, it's done explicitly
-
- * lisp.h (LISP_MAX_INT, LISP_MIN_INT): macros defining the
- limits of what can be stored in integer values
-
- * lisp.c (read_symbol): rewrote the code to parse integers, it
- does all calculation inline, removing the need to call
- strtol() at the end, plus negative hexadecimal numbers work
- properly now.
-
-Sat Dec 20 00:01:55 1997 John Harper <john dcs warwick ac uk>
-
- * misc.c, build-info, Makefile.in: the shell script build-info
- produces a header file build.h, defining some of the
- circumstances of the build process. misc.c includes this
- header file and makes the information available through the
- `version-and-build-string' function.
-
- * lisp.h (Lisp_Data_Type): Added a new `sweep' field, a
- function to call in the sweep phase of GC
-
- * values.c (data_types): filled in the new `sweep' field
- (cmd_garbage_collect): call each `sweep' function in turn
- instead of doing this by name
-
- * unix_processes.c (proc_init): now installs type information
- about V_Process objects in data_types[] itself.
- also removed the __waitpid__ debugging since the bug never
- occurred, maybe it will now...
-
- * lisp.h: Positions are now (ROW . COL), we keep the `Pos'
- structures for internal use, to avoid the masking and shifting
- required to access Lisp cons and integers. Having said that,
- they're not used that widely, just a few functions.
-
- * editcommands.c (pos-col, pos-line): removed these, they're
- defined in lisp.jl as macros (cdr and car respectively)
-
- * bytecodes.h, lispmach.c (OP_POS, OP_POSP): two new opcodes,
- the pos and posp functions. Note that pos isn't the same as
- cons since it replaces nil arguments with the current row or
- column of the cursor (also, of course, the arguments are the
- opposite order to in the cons function.)
-
- * lisp.h: Totally changed the way that VALUEs (Lisp objects)
- are defined; instead of wasting memory storing type
- information in cons cells and storing integers as allocated
- objects, we now do some bit-twiddling to store a subset of the
- type information in the two or three lowest bits of the VALUE.
-
- This means that cons cells only take 2 words (8 bytes) instead
- of 3, and integers can be stored in the VALUE itself (but now
- we only have 29-bit signed integers, not 32). Also we have to
- enforce strict alignment rules: cons cells to at least eight
- bytes, _everything_ else to at least four bytes.
-
- It's basically trading memory use in the data section for
- some code bloat (the extra instructions to do the bit
- twiddling). It's not too bad though, all objects but cons
- cells and numbers can be accessed from a VALUE as-is, once
- their type has been established (which does take a few more
- instructions).
-
- I've also taken this opportunity to clean up some of the other
- Lisp object handling code. Also, the plan is to remove
- position objects completely and store them as a cons cell
- containing two integers.
-
- To overcome the loss of the three bits in integers, I've
- defined a new pseudo-type called LONG_INT, which is a cons
- cell containing the low 24 bits in its car, and the high bits
- in the cdr. This allows large values like time stamps to be
- stored without dropping bits.
-
- * configs/config.h.*: added some more configuration macros, all
- to do with alignment,
- (MALLOC_ALIGNMENT): this has to be defined to the minimum
- alignment of malloc() allocations. It's checked in an assert
- in unix_memory.c currently
- (PTR_SIZED_INT): by default `long int', this must be an
- implicitly signed integer of the same size as a standard
- pointer (i.e. sizeof(PTR_SIZED_INT) == sizeof(void *), this is
- also checked, in main.c)
- (ALIGN_4, ALIGN_8): these aren't actually mentioned in the
- config files, but they align definitions to four and eight
- bytes respectively. For GNU CC they'll be defined in jade.h
- when not already existing
-
- * lisp.c (handle_var_long_int): similar to handle_var_int, but
- for 32 bit integers stored in cons cells
- * buffers.c (var_last_save_time): defined as a LONG_INT now
- * misc.c (cmd_current_time): returns a LONG_INT now
- (cmd_time_later_p): new function for comparing time stamps
-
- * edit.h (TX): Changed some long fields to ints, to signal
- that they can be stored in less than 24 bits
-
- * jade.h (ALIGN_4, ALIGN_8): definitions for GNU CC
- (CONCAT, OFFSETOF): new macros
-
- * stringmem.c, stringmem.h: formalised old alignment
- assumptions, all allocated blocks will be aligned to at least
- four bytes.
- (STRMEM_ALIGNMENT): defined to the minimum alignment of blocks
- allocated by sm_alloc()
-
-Tue Dec 16 12:05:14 1997 John Harper <john dcs warwick ac uk>
-
- * lispcmds.c (cmd_or, cmd_and): deleted, these are now macros
- in lisp.jl
-
-Mon Dec 15 10:52:24 1997 John Harper <john dcs warwick ac uk>
-
- * edit.c: When allocating line buffers, use the knowledge that
- stringmem.c allocates memory in multiples of eight bytes to
- improve our allocation strategy. Lines are also allocated in
- multiples of eight bytes, and insertions/deletions that don't
- cause a multiple-of-eight boundary to be crossed are handled
- by a simple memory copy.
- (LINE_BUF_SIZE, ALLOC_LINE_BUF, FREE_LINE_BUF): macros to
- implement the above strategy
- (alloc_line_buf): function version of ALLOC_LINE_BUF
- (delete_section): when joining two lines, optimise the case
- where either of the lines is empty
- * io.c (read_tx): all line allocations use alloc_line_buf()
- now.
-
- * bytecodes.h (OP_JPN, OP_JPT): new opcodes, jump-and-pop-if-t
- and jump-and-pop-if-nil
- * lispmach.c (jade-byte-code): implemented JPN and JPT
-
-Sun Dec 14 14:10:47 1997 John Harper <john dcs warwick ac uk>
-
- * editrect.c: removed, now implemented in Lisp in rectangle.jl
- * Makefile.in: removed editrect.c from COMMON_SRCS
- * main.c (inner_main): removed call to editrect_init()
-
- * glyphs.c (char-to-glyph-pos, glyph-to-char-pos): now check
- the validity of the POS argument
-
- * find.c (string-match): new optional arg START, defining
- where in the string to start searching
-
- * Radically changed the way in which position objects are
- handled. Removed the old POS/LPos distinction; now we only
- have positions as Lisp objects, two new macros VCOL(p) and
- VROW(p) to access the two components of a position.
-
- But perhaps the most important change is that positions in
- Lisp objects are _immutable_, that is, once they've been
- created their contents can not be modified. Although this may
- appear to involve many more objects being allocated, this
- isn't necessarily the case since pointers to position objects
- may be passed around much more freely, for example, when
- creating undo information.
-
- There is a distinction made between accessing positions
- through VALUEs, and through `Pos *' pointers---the latter are
- generally stored on the stack and hence writable.
-
- The immutability of positions means that the functions
- next-char, et al. which _modify_ position objects are no
- longer valid. A list of function changes follows:
-
- * editcommands.c (set-pos-col, set-pos-row, split-line):
- removed, split-line implemented in edit.jl
-
- * movement.c (next-char, prev-char): renamed as forward-char
- (next-line, prev-line): renamed as forward-line
- (next-tab, prev-tab): renamed as forward-tab
- In all of these backward-X is provided by lisp/edit.jl. These
- functions are similar to the old ones, but always return a new
- position.
- (screen-top-line, screen-bottom-line,
- screen-first-column, screen-last-column): removed, they were
- never used
- (left-char, right-char): removed, sort of implemented as
- macros in edit.jl
- (goto-char): renamed as `goto'
- (buffer-end, line-end): renamed as `end-of-X'
- (buffer-start, line-start): renamed a `start-of-X'
- (goto-buffer-start, goto-buffer-end, goto-line-start,
- goto-buffer-end, goto-next-line, goto-prev-line,
- goto-left-char, goto-right-char, goto-prev-tab, goto-next-tab,
- goto-next-char, goto-prev-char): removed, most of the new
- functions can be called interactively instead
- (match-brackets): renamed as `find-matching-bracket'
-
- * find.c: lots of name changes. Also added a 1-deep cache of
- compiled regexps, preliminary results indicate a 10% hit ratio
- (find-next-regexp, find-prev-regexp): renamed as
- `re-search-forward' and `re-search-backward'
- (find-next-string, find-prev-string): renamed as
- `search-forward' and `search-backward'
- (find-next-char, find-prev-char): renamed as
- `char-search-forward' and `char-search-backward'
- (regexp-quote): renamed as `quote-regexp'
- (regexp-match): renamed as `string-match'
- (replace-string, replace-regexp, regexp-expand,
- regexp-expand-line, regexp-match-line): removed,
- replace-string implemented in lisp/replace.jl
- (expand-last-match): expands a template using the
- subexpression data of the most recent regexp match
-
- * I have a sed script that will perform a lot of these name
- changes,
-
-s/(buffer-start/(start-of-buffer/
-s/(buffer-end/(end-of-buffer/
-s/(line-start/(start-of-line/
-s/(line-end/(end-of-line/
-s/(goto-char/(goto/
-s/(match-brackets/(find-matching-bracket/
-s/(next-char/(forward-char/
-s/(next-line/(forward-line/
-s/(next-tab/(forward-tab/
-s/(goto-buffer-start)/(goto (start-of-buffer))/
-s/(goto-buffer-end)/(goto (end-of-buffer))/
-s/(goto-line-start)/(goto (start-of-line))/
-s/(goto-line-end)/(goto (end-of-line))/
-s/(find-next-regexp/(re-search-forward/
-s/(find-prev-regexp/(re-search-backward/
-s/(find-next-string/(search-forward/
-s/(find-prev-string/(search-backward/
-s/(find-next-char/(char-search-forward/
-s/(find-prev-char/(char-search-backward/
-s/(regexp-quote/(quote-regexp/
-s/(regexp-match/(string-match/
-
- It still leaves a lot to be done by hand though, all prev-char,
- prev-line and prev-tab calls should be changed to forward-X
- with negative arguments (faster than calling backward-X); also
- the result of the function must be used now.
-
- * unix_processes.c: once again I've simplified the process
- termination code; now the only thing done in the SIGCHLD
- handler is to set a flag that is checked by a function called
- after every event/timeout by x11_eventloop.c, I've also added
- some debugging trace info. to try and narrow down the
- intermittent bug that causes synchronous processes to hang on
- exit (if it still exists)
-
- * debug-buffer.c: new file; provides circular output buffers
- and a `db_printf' function to output to them, on a crash or by
- called `db_spew' their contents is output
-
- * unix_misc.c: all standard signal handling is here now,
- including the SIGINT handler that used to be in x11_display.c
-
- All error signals (FPE, ILL, SEGV, BUS, QUIT, ABRT) are
- trapped and cause all debug buffers, and the lisp backtrace to
- be output before termination.
-
- SIGINT works as before, by stuffing int_cell into throw_value
-
- All other termination signals (TERM, HUP) cause term_cell to
- be stuffed into throw_value, this winds back to the top-level
- event loop, which auto-saves all modified files before quitting
-
- * x11_eventloop.c: now calls proc_periodically() instead of
- proc_notification(), also handles finding sym_term_interrupt
- in the car of the throw_value (as described in the previous
- paragraph).
-
- * x11_windows.c (screen-width, screen-height, window-left-edge,
- window-top-edge, window-width, window-height,
- window-bar-height): removed, they weren't used by anything
-
- * buffers.c (auto-save-buffers): new boolean argument,
- `force_save', when true the time factor when looking for files
- to auto save is ignored.
- (get_tx_cursor_ptr): similar to `get_tx_cursor' but returns a
- ptr-to-a-ptr
-
- * edit.c: cleaned up the myriad of insignificant functions
-
- * misc.c (strtoc, ctostr): removed these ugly functions
- (version-string): new function returning a string describing
- the current editor version
-
- * streams.c (stderr-file): does for stderr what stdout-file
- does for stdout
-
- * views.c (view-origin): returns the position of the top-left
- character in the view
-
- * configs/config.h.* (HAVE_PSIGNAL, HAVE_STRSIGNAL): two new
- configuration macros
-
- * regexp/regexp.h, regexp/regjade.c, regexp/regsub.c: changes
- for new position objects, also some changes to calling format
-
-Mon Dec 8 11:32:15 1997 John Harper <john dcs warwick ac uk>
-
- * undo.c (undo_record_insertion, undo_record_deletion,
- undo_record_modification, undo_push_deletion): ensure that
- null commands are ignored (i.e. when START == END)
-
- * editcommands.c (cmd_set_indent_pos): in the `diff > 0'
- section, the undo_record_modification() function was being
- called _after_ the modification had been performed, not before
- as it should be
-
- * unix_processes.c: Simplified the async. process clean up; the
- PR_EXITED value has been scrapped. Now we assume that once we
- receive SIGCHLD from a process there won't be any more output
- coming from it. This seems to work ok but I think there may be
- race-conditions involved (between the main select() and the
- clean up code). Needs serious investigation.
-
- * x11_eventloop.c: Removed call to proc_on_idle()
-
-Wed Nov 26 13:13:52 1997 John Harper <john dcs warwick ac uk>
-
- * jade.h: reorganised a bit
- (MAX,MIN,POS): macros for maximum, minimum, and positive part,
- respectively
- (ROUND_UP_INT, ROUND_DOWN_INT): rounding macros
-
- * housekeeping.c (resync_y): rewritten; fixed the bug in which
- the cursor was sometimes being left outside the visible
- region. Also avoids unnecessary space being left at the bottom
- of the display in certain circumstances
-
-Mon Nov 24 11:25:06 1997 John Harper <john dcs warwick ac uk>
-
- * lispcmds.c (cmd_last): now returns the last element as it
- should, not the last cons cell
-
-Sun Nov 23 16:09:44 1997 John Harper <john dcs warwick ac uk>
-
- * lisp.c (signal_missing_arg): put the argument number into a
- list.
-
- * lispcmds.c (APPLY_COMPARISON): don't check for numerical
- args, comparison works on all objects. Signal an error if less
- than two arguments are given
-
- * lispmach.c (unbind_one_level): when reinstalling a view,
- check that its parent window is still valid
-
- * views.c (cmd_with_view): don't save the old window, it's
- stored in the view structure
-
- * windows.c (cmd_with_window): reinstall the current view in
- the old window, as well as the window itself
-
-Fri Nov 21 12:23:16 1997 John Harper <john dcs warwick ac uk>
-
- * lispcmds.c: generally improved error reporting, especially
- of missing arguments (a lot of functions just returned NULL,
- no errors or anything..) Also functions which take lists as
- arguments don't silently ignore anything that's not a cons
- cell, an error is signalled if it's not LISTP (cons or nil)
- (cmd_plus): no arguments gives a result of zero.
- (cmd_product): no arguments gives a result of one.
- (cmd_remainder): restricted to two arguments now, any more are
- pretty meaningless
- (cmd_mod): new function implementing the modulo operation,
- similar to cmd_remainder but works properly for negative
- arguments.
- (cmd_gtthan, cmd_gethan, cmd_ltthan, cmd_lethan): can now take
- more than two arguments
-
- * lisp.c (signal_missing_arg): new function for convenience
-
- * lisp.h (LISTP): new macro, disjunction of NILP and CONSP
-
- * bytecodes.h, lispmach.c (OP_MOD): renamed as OP_REM to allow
- a new instruction OP_MOD that does the proper modulo operation
-
- * lispmach.c (cmd_validate_byte_code): new function to check
- if a given byte code instruction set version may be executed
- in the current version of the editor
- * bytecodes.h (BYTECODE_MAJOR_VERSION, BYTECODE_MINOR_VERSION):
- macros defining the current byte code version
-
-Mon Nov 17 19:02:44 1997 John Harper <john dcs warwick ac uk>
-
- * undo.c (undo_end_of_command): this new function replaces
- both undo_distinct() and undo_new_group(). Instead of trying
- to be clever when adding group separators, simply add one
- after _every_ event is processed. Also, separators are added to
- _every_ buffer whose last undo item is not already a separator.
- (cmd_undo): new optional arg controlling the number of
- commands that are undone; when called interactively this is
- taken from the prefix arg.
-
- * commands.c (cmd_call_command): removed calls to
- undo_distinct().
- * x11_eventloop.c, amiga_eventloop.c: removed all calls to
- undo_distinct(), replaced by two strategically placed calls to
- undo_end_of_command().
- * keys.c (usekey): removed calls to undo_distinct(). To ensure
- that successive self-bound key insertions are merged in the
- undo list, any leading group-separator after a previous
- insertion command is removed before inserting the text (and
- then replaced at the head of the undo list afterwards).
-
- * views.c (cmd_translate_pos_to_view): adds vw_StartCol into
- the column of the result
-
-Sun Nov 16 01:22:06 1997 John Harper <john dcs warwick ac uk>
-
- * movement.c (cmd_raw_mouse_pos): new function giving the
- glyph position of the mouse relative to the origin of the
- current window
-
- * views.c (cmd_find_view_by_pos): new function to find the
- view in a window specified by a window-relative position
- (cmd_translate_pos_to_view): new function to make a
- buffer-relative glyph position from a window-relative glyph
- position and a view
-
- * x11_eventloop.c, x11_windows.c (handle_event,
- sys_get_mouse_pos): try not to query the server for the
- pointer position---when possible grab it from the last event.
-
- * glyphs.c (char_col): try to handle columns past the end of
- a line without crashing
-
-Fri Nov 14 12:44:01 1997 John Harper <john dcs warwick ac uk>
-
- * io.c (read_tx): Now uses a predictive method of allocating the
- array of line headers whilst loading files. The average number of
- chars-per-line in the last file loaded is used to predict the
- number of lines in the current file. If this prediction is wrong
- the chars-per-line of the loaded portion of the new file is used
- to refine the predicted number of lines.
-
- * unix_misc.c, amiga_misc.c (sys_file_length): new function to
- return the size, in bytes, of a named file, or -1 if the size
- is unknown. Currently the Amiga implementation is totally
- untested.
-
- * edit.c (clear_line_list, kill_line_list, resize_line_list): the
- tx_Line array of line headers now includes "slack", i.e. unused
- entries at the end of the array. Currently a maximum of 32 extra
- entries, allocated as +/- 16. This makes line insertion/deletion
- faster, as well as possibly reducing memory fragmentation.
- * edit.h (TX): added tx_TotalLines field to allow unused entries
- at the end of the tx_Lines array
-
-Fri Nov 7 09:52:30 1997 John Harper <john dcs warwick ac uk>
-
- * render.c (draw_bit, draw_line, draw_block_line, draw_line,
- draw_line_part, draw_line_glyph_length): miscellaneous fixes,
- mostly to help fix block rendering
-
- * edit.h (TX): new variables tx_LastLogicalStart and
- tx_LastLogicalEnd; the restriction at the last refresh.
- * refresh.c: now uses tx_LastLogical{Start,End} to see if the
- restriction has changed, if so just redraw everything
- * buffers.c (cmd_restrict_buffer): don't set TXFF_REFRESH_ALL
- anymore, it's covered by the variables described above
- * housekeeping.c: the position updating functions also update
- tx_LastLogical{Start,End}
-
-Mon Nov 3 01:27:49 1997 John Harper <john dcs warwick ac uk>
-
- * refresh.c (refresh_block, refresh_view,
- sub_intersect_regions, sub_regions): _much_ better handling of
- block refresh--now only the stuff that needs to be redrawn
- actually is! The sub_* functions implement two set/logical
- operations on pairs of regions
-
- * render.c (redraw_region): better clipping of region
-
- * views.c (cmd_set_rect_blocks): sets the VWFF_FORCE_REFRESH
- flag; this should really be done properly
-
- * edit.c (set_block_refresh): just sets VWFF_REFRESH_BLOCK
-
- * edit.h (VW): new fields vw_LastBlockS, vw_LastBlockE,
- vw_LastBlockStatus.
-
- * housekeeping.c: updates the two new fields in the VW
- structure.
-
-Thu Oct 30 13:16:45 1997 John Harper <john dcs warwick ac uk>
-
- * unix_processes.c (run_process): some fixes made to the
- synchronous parent code; shouldn't hang anymore (?) and now does
- time outs to look for user interruptions
-
-Tue Oct 28 17:07:53 1997 John Harper <john dcs warwick ac uk>
-
- * unix_processes.c: Hopefully fixed the long-running "process
- exited but no eof" debacle; everything should work now (famous
- last words). Also separates the stdout and stderr streams when
- using pipes; the process-error-stream and set-process-error-stream
- functions control where the output actually goes. By default it's
- set to the same value as the output-stream
- (run_process): when using a pty initialise some of the more basic
- control codes to sensible values
-
- * x11_eventloop.c (event_loop): now calls proc_notification()
- _after_ going through the input fd's and handling the idle
- stuff
-
-Tue Oct 7 13:12:03 1997 John Harper <john dcs warwick ac uk>
-
- * movement.c (cmd_center_display): renamed from
- centre-display. Now takes a second optional argument
- controlling where in the display to put the line under the
- cursor. Taken from the prefix-arg when interactive.
-
-Thu Oct 2 18:32:17 1997 John Harper <john dcs warwick ac uk>
-
- * unix_processes.c (proc_on_idle): new function called when the
- editor is idle; it acts as a safety net for processes that have
- exited but haven't given an EOF over the connection. Any such
- processes are marked as truly dead
- * x11_eventloop.c (event_loop): calls proc_on_idle()
-
-Wed Oct 1 21:00:17 1997 John Harper <john dcs warwick ac uk>
-
- * render.c (redraw_lines_clr): check arguments against
- tx_Logical{Start,End} more rigorously.
-
-Sun Sep 28 22:03:43 1997 John Harper <john dcs warwick ac uk>
-
- * housekeeping.c (adjust_marks_join_y): fixed a really bad bug
- that must have existed for _years_. If the position being updated
- was past the two lines being joined it wasn't adjusted
-
-Sat Sep 27 11:34:13 1997 John Harper <john dcs warwick ac uk>
-
- * lisp.c (sym_print_escape_newlines, sym_print_level,
- sym_print_length): variables controlling how lists and strings
- are printed
-
- * housekeeping.c (adjust_marks_add_y, adjust_marks_sub_y,
- adjust_marks_split_y, adjust_marks_join_y): these now update
- vw_LastDisplayOrigin iff they update vw_DisplayOrigin. This
- stops the refresh code scrolling erroneously
-
- * x11_render.c (redraw_exposed_area): recognises when expose
- events hit status lines correctly now
-
-Thu Sep 25 09:48:57 1997 John Harper <john dcs warwick ac uk>
-
- * unix_misc.c (same_files): tries to compare files that don't
- actually exist
- (cmd_file_absolute_p): new function
-
- * amiga_misc.c (cmd_file_name_absolute_p): new function
-
- * unix_defs.h, amiga_defs.h: Define SITE_LISP_DIR
-
- * lispcmds.c (sym_load_path): added site-lisp directory
-
- * revision.h: Now protected by #ifndef stuff
-
- * Makefile.in: Added revision.h to HDRS
-
- * jade.h: Include revision.h
-
-Wed Sep 24 11:11:49 1997 John Harper <john dcs warwick ac uk>
-
- * misc.c (cmd_file_name_equal): new function, called file-name=,
- that tests whether two filenames actually refer to the same
- file.
-
- * x11_eventloop.c (x11_last_event_time): variable containing the
- timestamp from the last X11 event (that has a timestamp).
-
- * x11_misc.c: Now each selection info has the timestamp of when
- the selection was created. x11_lose_selection() ignores events
- with times less than or equal to this time
-
- * x11_misc.c (cmd_x11_own_selection_p): returns t when Jade has
- the selection
- (x11_window_lose_selections): lose anything owned by a particular
- window
- (x11_set_selection): can now set a string as the current selection
-
- * x11_windows.c (sys_kill_window): calls
- x11_window_lose_selections()
-
-Tue Sep 23 10:55:03 1997 John Harper (john dcs warwick ac uk)
-
- * views.c (update_status_buffer): all line numbers/counts now
- take note of the current restriction. Also the buffer position
- is displayed in "all/top/bottom/percentage" style
-
- * refresh.c (refresh_view): call resync_xy() before redrawing
- the status line, not after.
-
- * unix_server.c, amiga_server.c: (server-reply): compare files
- with same_file() not just comparing their names (which doesn't
- always work)
-
-Mon Sep 22 17:53:50 1997 John Harper (john gem dcs warwick ac uk)
-
- * editcommands.c (delete-area): given it an interactive spec
- (the current block)
-
- * buffers.c (restrict_buffer): made the interactive spec clear
- the block
-
- * keys.c, keys.h: new handling of meta modifier. Now defined as a
- variable in keys.c. This allows meta to change from system to
- system.
-
- * x11_keys.c, amiga_keys.c (sys_find_meta): new function
- to return the meta modifier mask for the current system. Also some
- work to decode and encode meta modifiers
-
-Mon Sep 22 00:03:08 1997 John Harper (john orcrist)
-
- * lispmach.c: (slightly) better error reporting for when
- arguments aren't of the required type for inlined functions
-
- * views.c, windows.c, buffers.c (cmd_with_view,
- cmd_with_window, cmd_with_buffer): these now signal an error
- if the first argument isn't of the required type
-
- * lispcmds.c (cmd_unwind_protect): don't lose errors occuring
- in the cleanup-forms anymore
-
-Sun Sep 21 14:42:19 1997 John Harper (john orcrist)
-
- * views.c (cmd_destroy_view): don't let minibuffer views be
- killed anymore
-
-Sat Sep 20 00:20:29 1997 John Harper (john orcrist)
-
- * unix_processes.c (cmd_call_process_area): new function to
- call a process with a portion of the current buffer as its
- input.
-
- * misc.c (cmd_tmp_file_name): now uses its own buffer
-
- * io.c (cmd_write_buffer_area): fixed bug which could cause an
- attempt to write -1 (i.e. MAXUINT) bytes. Also added an
- interactive spec so it can be called as a command
-
- * unix_processes.c (cmd_run_process): renamed as call-process
-
- * unix_misc.c, amiga_misc.c (cmd_file_size): new function that
- return the size of a specified file. The Amiga version is totally
- untested and probably wrong
-
- * io.c (cmd_write_buffer, cmd_write_buffer_area): both functions
- now accept streams for output, as well as the original file name
- interface
-
- * lisp.h (VIEWP): now checks if vw_Win pointer is non-null;
- this happens when the view has been destroyed but is still in
- scope.
-
- * views.c (view_prin): prints "#<dead-view>" for views that
- have been destroyed
-
-Fri Sep 19 00:48:20 1997 John Harper <john dcs warwick ac uk>
-
- * find.c (buffer_strpbrk, buffer_reverse_strpbrk, buffer_strchr,
- buffer_reverse_strchr, buffer_compare_n, forward_char,
- backward_char): new buffer utility functions. Used mainly by the
- new regexp matcher
-
- * find.c: Most of the lisp functions have been rewritten to use
- the new regexp matcher. All functions now allow matches across
- line boundaries (including string and char variants)
- find-{next,prev}-string both set the match-start and match-end
- variables.
-
- * editcommands.c (sym_flatten_table): variable containing a
- translation table that converts newlines to spaces
-
-Thu Sep 18 21:06:05 1997 John Harper <john dcs warwick ac uk>
-
- * movement.c (prev_char, delete_char): deleted these functions,
- they're replaced by forward_char and backward_char in find.c
-
- * edit.c (delete_section): doesn't trash the `startPos' and
- `endPos' parameters anymore
-
-Sun Sep 14 19:39:50 1997 John Harper (john orcrist)
-
- * views.c (cmd_view_dimensions, cmd_set_view_dimensions):
- commands for reading and manipulating the size of a view
- (set_scroll_steps): checks that the scroll step isn't greater
- than the width/height of the view
-
- * windows.c (cmd_window_dimensions): returns the glyph
- dimensions of a window
-
- * movement.c (cmd_mouse_pos): now adds in vw_StartCol
-
-Sat Sep 13 11:55:23 1997 John Harper (john orcrist)
-
- * edit.c (check_pos, check_line, check_section): when these
- functions return FALSE they also signal an error. Also
- check_pos() now returns FALSE (not void), when the line is out
- of range
-
- * find.c, movement.c, editcommands.c: now check the return
- value of check_pos()
-
- * lisp.c (sym_invalid_pos): new error symbol
-
- * buffers.c (cmd_restrict_buffer): now calls
- cmd_unrestrict_buffer() before checking the validity of the
- specified section. Otherwise anything outside the current
- restriction will be rejected.
-
-Mon Sep 8 00:24:47 1997 John Harper (john orcrist)
-
- * unix_misc.c (cmd_system_name): try harder to get a fully
- qualified host name (with domain information)
-
-Sun Sep 7 00:05:37 1997 John Harper (john orcrist)
-
- * views.c (update_status_buffer): surrounds the cursor
- position with square brackets when a restriction is in effect
-
- * streams.c: all streams using buffers take note of any
- restriction to that buffer
-
- * io.c (read_buffer): clears any restriction before reading
- (write_buffer): option to only write restricted text
-
- * edit.c (check_pos, check_line, check_section): region being
- validated must be inside any restriction
-
- * movement.c, editcommands.c, find.c: restrict parts of the
- buffer that may be used to the restriction (if it exists)
-
- * buffers.c (cmd_in_restriction_p): new function; a predicate
- on whether a position is in the restricted part of a buffer
-
- * buffers.c (cmd_restriction_end): now does what it is
- documented as doing, returns the last character of the line
- before tx_LogicalEnd
-
- * movement.c (cmd_buffer_end): when I-R-P is null just return
- the value of restriction-end
-
-Sat Sep 6 13:34:55 1997 John Harper (john orcrist)
-
- * housekeeping.c (adjust_marks_add_y): doesn't shift
- tx_LogicalStart if it equals the insertion line
-
- * buffers.c (cmd_restrict_buffer, cmd_unrestrict_buffer,
- cmd_restriction_start, cmd_restriction_end): new functions to
- work with tx_LogicalStart and tx_LogicalEnd
-
- * edit.h (TX): added tx_LogicalStart and tx_LogicalEnd fields;
- the line numbers of the first and last+1 lines that may be
- displayed in the buffer
-
- * movement.c (cmd_buffer_end, cmd_buffer_start): extra
- argument IGNORE-RESTRICTION-P
- (cmd_centre_display, cmd_goto_buffer_end,
- cmd_goto_buffer_start, cmd_goto_next_line, cmd_goto_prev_line,
- move_down_screens, move_up_screens): modified to work with
- buffer restrictions
-
- * housekeeping.c (adjust_marks_add_y, adjust_marks_sub_y,
- adjust_marks_split_y, adjust_marks_join_y, resync_y): modified
- to work with buffer restrictions
-
- * io.c (read_tx): sets the buffer restriction to the entire
- file initially.
-
- * edit.c (clear_line_list): initialises restriction
-
- * render.c: ensure that nothing outside the restriction is
- rendered.
-
- * All files are now under RCS control, not before time
-
-Fri Sep 5 20:06:32 1997 John Harper (john orcrist)
-
- * view.c (update_status_buffer): fixed display "line" or
- "lines" depending on the number of lines in the buffer
-
-Thu Sep 4 00:11:59 1997 John Harper (john orcrist)
-
- * command.c (sym_pre_command_hook, sym_post_command_hook,
- cmd_call_command): these two hooks bracket the evaluation of
- each command. pre-command-hook is given the command to be
- called as its sole arg.
-
- * keys.c (usekey): calls pre-command-hook and
- post-command-hook around insertion of unbound keys.
-
-Wed Sep 3 20:41:19 1997 John Harper (john orcrist)
-
- * render.c (redraw_status_buffer): when VWFF_CUSTOM_STATUS is
- set draw the status line in the highlight colour to make it
- stand out.
-
- * lispmach.c, bytecodes.h: renamed quite a few opcodes. Also
- changed the op-setq and op-set (previously op-vsetc and
- op-vset) instructions to the set value on the stack.
-
-Wed Sep 3 15:53:37 1997 John Harper (john gem)
-
- * stringmem.c, stringmem.h: some general cleaning up of the
- code. Only notable change is that when STRMEM_STATS is defined
- it now prints the statistics when sm_kill() is invoked.
-
- * revision.h: bumped version to 4.0 alpha
-
-Tue Sep 2 23:38:39 1997 John Harper (john orcrist)
-
- * bytecodes.h: new header file defining all bytecodes in
- lispmach.c
-
- * lispmach.c (unbind_one_level): new function that handles
- undoing the first element in the `bindstack'. It can handle
- symbol bindings, unwind-protect forms, and binding to buffers,
- views and windows. OP_UNWIND calls this function.
- (OP_BIND_BUFFER, OP_BIND_VIEW, OP_BIND_WINDOW): these opcodes
- replace the OP_SWAP_X opcodes. They install their sole
- argument (on the stack) (a buffer, view or window) and add an
- entry to the bindstack to let it be unwound later.
- (OP_UN_UNWIND_PRO): removed, OP_UNWIND does this now.
-
-Mon Sep 1 21:52:48 1997 John Harper (john orcrist)
-
- * lisp.c (max_lisp_depth): doubled to 500, the compiler was
- catching the limit sometimes
-
- * lispcommands.c (cmd_if, cmd_when, cmd_unless): removed;
- these are now defined as macros in lisp.jl
-
- * view.c (update_views_dimensions): won't abort if vertical
- size is still the same but horizontal has changed
-
-Sun Aug 31 11:12:09 1997 John Harper (john orcrist)
-
- * Makefile.in: removed *commandline.c; added views.c
-
- * amiga_commandline.c, commandline.c, x11_commandline.c:
- banished to the obsolete directory (not before time)
-
- * buffers.c (first_buffer): creates the buffer before the
- window, this lets make-view find at least one buffer in
- existence.
-
- (get_tx_cursor): now checks active-view, other views in the
- same window, then views in other windows.
-
- (cmd_current_buffer, cmd_set_current_buffer): now operate on
- views not windows
-
- (cmd_set_buffer_file_name, cmd_set_buffer_name,
- cmd_set_buffer_modified, cmd_set_buffer_special,
- cmd_set_buffer_read_only, var_mode_name, var_minor_mode_names):
- all set the flag TXFF_REFRESH_STATUS to show that any status
- lines reflecting this buffer may need updating.
-
- (cmd_with_buffer): saves the current view so that the reset
- stage works when the active view changes. I don't think this
- works in the compiled version properly..
-
- * configs/: all config-*.h files now have an extra Makefile
- entry, EXTRA_LIBS
-
- * edit.c (resize_line_list): uses memset() not bzero()
-
- * edit.h (TX): new flag TXFF_REFRESH_STATUS -- reflects when a
- view displaying the buffer needs to refresh its status display
-
- (VW): now represents a single view in a window, as such all
- window system data has been removed. Has a `vw_NextView' field
- pointing to the view beneath it in the window. `vw_MaxY' and
- `vw_MaxX' refer to the size of the view.
- The flags VWFF_SLEEPING and VWFF_MESSAGE have been removed;
- new flags VWFF_MINIBUF and VWFF_CUSTOM_STATUS have been added.
-
- (WIN): new structure representing a physical window (what
- Emacs would call a frame). Most things are those that were
- removed from the VW. `w_ViewList' points to the top view in
- the window, `w_CurrVW' to the current view, and `w_MiniBuf' to
- the minibuffer view.
-
- (MINIBUFFER_ACTIVE_P(win)): macro to check if a window's
- minibuffer view is in use.
-
- * editcommands.c (sym_block_status_hook): hook called when the
- current view's block status changes; one argument the block
- status.
-
- * editrect.c (cmd_insert_rect): tries to return the position
- following the insertion; not so useful as it doesn't lead to
- the size of the rectangle.
-
- * lisp.c (sym_window_error): new error type
-
- * lisp.h (V_View, VVIEW, VIEWP): define the view type
-
- * lispmach.c (OP_VIEWP, OP_SWAP_VIEW, OP_CURRENT_VIEW,
- OP_SWAP2): new opcodes. swap-buffer has changed incompatibly!,
- but probably still won't work in case of errors
-
- * movement.c (cmd_centre_display, cmd_mouse_pos): work
- relative to the current view now, not the window.
-
- * refresh.c (refresh_window) renamed as `refresh_view' and
- made to work on a per-view basis. A new function `
- refresh_window' has been added that cycles through each view
- in a window refreshing each in turn.
- (vert_scroll): calls portable scroll_vw() not sys_scroll_vw()
- (refresh_message): function to redraw a window's message if
- necessary.
-
- * render.c: all functions work relative to the view now, in
- fact they assume the view is at position (0,0) and let the
- window-system macros (i.e. MOVE, DRAW, etc...) work out where
- the view actually is. It is also assumed that four pens exist
- now: P_TEXT, P_TEXT_RV, P_BLOCK, and P_BLOCK_RV.
- (redraw_cmd_line, redraw_cmd_line_from, cmd_line_cursor):
- deleted.
- (draw_message_line, redraw_message, redraw_status_buffer):
- added.
- (scroll_vw): portable version of sys_scroll_vw(), uses
- CLR_AREA and COPY_AREA macros
-
- * streams.c: writing to the message line works on the current
- window, not the current view
-
- * unix_misc.c: used ENVIRON_UNDEFINED, not ENVIRON_UNDECLARED,
- doh!
-
- * unix_processes.c: include <signal.h> not <sys/signal.h>,
- also includes <stdio.h> and <fcntl.h>
-
- * values.c (ValueClasses): entries for V_View
- (mark_value): changed V_Window and V_View actions
- (cmd_garbage_collect): added view_sweep() to list of sweep
- functions.
-
- * views.c: new file providing view functions
- (view_chain, curr_vw): list of all views, and current view
- (make-view-hook, destroy-view-hook): what they say
- (cmd_make_view, cmd_destroy_view): also what they say
- (update_view_dimension): recalibrates the view dimensions of a
- window after the window size has changed
- (update_status_buffer): reformats the status line
- (cmd_next_view, cmd_previous_view): for traversing views
- (cmd_with_view): similar to `with-window'
- (cmd_minibuffer_view, cmd_minibuffer_view_p,
- cmd_minibuffer_active_p): new functions
- (cmd_set_status_message): allows the hijacking of the status
- line.
-
- * windows.c: many things changed to use `WIN *' instead of
- `VW *', some functions moved to the new file views.c
- (win_chain, curr_win): replace `view_chain' and `curr_vw'
- (copy_prefs): renamed `copy_win_prefs'
- (cmd_make_window): creates two views by default, a main view
- with everything but the one row taken by the minibuffer view
-
- * x11_display.c: includes <signal.h> not <sys/signal.h>
- (x11_high_pixel): pixel colour used to provide P_BLOCK pens
- (x11_jade_sel): property used to transfer selection's atom
- (x11_get_options): `-hl' for highlight pixel
- (handle_event): works in windows not views, now handles
- MotionNotify, SelectionRequest, and SelectionClear events.
- (event_loop): in the timeout try to remove messages from
- minibuffers if the minibuffer is active.
-
- * x11_keys.c (translate_event): handles MotionNotify events
- (KeyDescr): remove pounds-sterling sign; it seems that Solaris
- strcasecmp() only works with 7-bit ASCII?
-
- * x11_misc.c (x11_convert_selection, x11_lose_selection,
- cmd_x11_set_selection, cmd_x11_selection_active_p,
- cmd_x11_get_selection, cmd_x11_lose_selection, sym_xa_primary,
- sym_xa_secondary, x11_misc_init): selection handling
-
- * x11_render.c (redraw_exposed_area): new function; given a
- window and a rectangular region, works out which bits in each
- view need redrawing, and redraws them.
- (sys_scroll_vw): deleted
-
- * x11_windows.c (INPUT_EVENTS): added ButtonMotionMask and
- PointerMotionHintMask.
- (sys_sleep_vw, sys_unsleep_vw, sys_set_vw_pos): renamed
- `sys_sleep_win', `sys_unsleep_win', and 'sys_set_win_pos'
- (sys_new_window): creates GCs for all four pens
-
- * x11_windowsys.h (W_WindowSys): new entry ws_GC_array[] which
- holds all GCs.
- (P_TEXT, P_TEXT_RV, P_BLOCK, P_BLOCK_RV, P_MAX): defined
- (MOVE, PEN_X, PEN_Y, CLR_AREA, CLR_RECT, SET_AREA, SET_RECT,
- COPY_AREA, DRAW_LINE): all coordinates are relative to the
- specified view. SET_{RECT,AREA} now take a PEN argument
- defining the GC to use.
-
-Thu Jul 13 11:56:35 1995 John Harper (jsh orcrist)
-
- * Makefile.in: fixed the _JADE_DIR macro containing a leading
- space character.
-
- * unix_defs.h, unix_server.c, unix_client.c (JADE_SOCK_NAME):
- This is now defined in the unix_defs.h header file to prevent
- any more embarassing mistakes (changing its definition in only
- one place)
-
- * render.c (clear_lines): New function
-
- * refresh.c (flag_deletion): The tx_ModEnd is set to the end
- of the deleted text, not the same place as the beginning of
- the deletion. This fixes the annoying ``delete a block near
- the end of the buffer'' bug which sometimes occurs. What does
- it break though? (it probably hits performance..)
-
-Sun May 28 01:11:57 1995 John Harper (jsh orcrist)
-
- * jade.h (QUOTE): Macro to stringify its argument
- * Makefile.in, unix_defs.h (_JADE_DIR, JADE_DIR): Due to rot
- in cpp the method of passing in JADE_DIR broke. Now it's
- passed from the command line without quotes. The definitions
- of LISP_LIB_DIR and DOC_FILE quote it.
-
-Wed Feb 22 20:15:18 1995 John Harper (jsh orcrist)
-
- * movement.c (next_char): When POS is past the end of the line
- move it back to the end.
-
-Thu Jan 12 16:27:23 1995 John Harper (jsh orcrist)
-
- * lispcmds.c (cmd_divide, cmd_remainder): Now check for
- divide-by-zero and signal an error if it will occur.
-
-Wed Jan 11 14:43:33 1995 John Harper (jsh orcrist)
-
- * commands.c (interactive_spec): Doesn't assume that lambda
- expressions are always valid anymore
-
-Sat Dec 24 15:46:52 1994 John Harper (jsh orcrist)
-
- * render.c (draw_line_glyph_length, draw_rect): Hopefully
- fixed the problem of the glyph in the right-most column
- sometimes being left undrawn.
-
-Sun Nov 13 19:48:55 1994 John Harper (jsh orcrist)
-
- * buffers.c (var_auto_save_interval): corrected its doc-string
-
-Sun Oct 30 15:24:16 1994 John Harper (jsh orcrist)
-
- * x11_windows.c (sys_new_window): windows are now called `Jade'
-
-Wed Oct 26 17:52:44 1994 John Harper (jsh orcrist)
-
- * unix_client.c (JADE_SOCK_NAME): changed to ".Jade_rendezvous";
- I'd changed this in unix_server.c but not here (oops!)
-
-Sun Oct 23 19:54:24 1994 John Harper (jsh orcrist)
-
- * windows.c (save_message, restore_message): Mechanism for
- temporarily installing a message.
-
- * values.c (cmd_garbage_collect): Prints a message while
- gc'ing (again).
-
- * lisp.c (load_autoload): Temporarily prints a message
- while loading the file.
-
- * Makefile.in: moved the definitions of CFLAGS and LDFLAGS to
- `../Makefile'; hopefully this means the user can override them
- properly when compiling.
-
-Fri Oct 7 15:12:19 1994 John Harper (jsh orcrist)
-
- * Version 3.2 released
-
-Tue Oct 4 00:06:10 1994 John Harper (jsh orcrist)
-
- * lisp.h, symbols.c, values.c: new type V_Void. Used to denote
- a void value in a symbol.
-
- * symbols.c (cmd_symbol_value, cmd_symbol_function,
- cmd_default_value): these now take an extra argument `NO-ERROR'.
- Unless this is t, when the value is void they signal an error.
-
- * symbols.c: rewrote buffer-local variables to be compatible
- with Emacs. Removed `set-buffer-variable' and
- `buffer-variable-p', renamed `delete-buffer-variables' to
- `kill-all-local-variables' and created the new functions,
- `make-local-variable', `make-variable-buffer-local' and
- `kill-local-variable'.
- (cmd_set): SF_BUFFER_LOCAL only means that a variable may
- have a local value; not that one should be created (see next
- entry)
-
- * lisp.h (SF_SET_BUFFER_LOCAL): new flag, means that setting
- this symbol gives it a buffer-local binding
-
-Mon Oct 3 17:53:07 1994 John Harper (jsh orcrist)
-
- * io.c (read_tx): no longer scans for code section
- * buffers.c (eval_file_code): removed
- * editrect.c (col_copy_sect): removed
-
- * housekeeping.c (set-start-line): this was doing it's own
- rendering; a bad thing all in all
-
- * Most module's _kill function didn't set that module's private
- chain of objects to NULL. In particular the Amiga menus were
- stepping through the de-allocated view_chain and guruing...
-
-Sat Oct 1 14:48:49 1994 John Harper (jsh orcrist)
-
- * amiga_keys.c (lookup_event_name): doesn't pass any qualifiers
- to MapRawKey() anymore
-
- * commands.c (cmd_call_command): the `N' code-letter was screwed
-
- * main.c, x11_display.c, amiga_display.c: startup modified so
- that the sys_init() function calls a new function inner_main()
- which does most of what main() used to do. This allows the Amiga
- version of sys_init() to play with the stack
-
- * amiga_display.c (sys_init): now contains code to allocate a
- larger stack if the `-stack' argument is given.
-
- * unix_processes.c (run_process): when using pipes stderr is also
- connected up
-
-Thu Sep 29 15:33:23 1994 John Harper (jsh orcrist)
-
- * unix_processes.c (cmd_signal_process, cmd_interrupt_process,
- cmd_kill_process, cmd_stop_process, cmd_continue_process): All
- have a new argument, SIGNAL-GROUP, which makes them signal the
- whole process group.
-
-Mon Sep 26 21:13:32 1994 John Harper (jsh orcrist)
-
- * unix_processes.c (cmd_make_process): default value of the
- connection-type component is now `pipe'
-
-Tue Sep 20 14:22:22 1994 John Harper (jsh orcrist)
-
- * refresh.c (refresh_world_curs): no longer makes an ill-judged
- guess as to whether a window should be refreshed or not; sometimes
- it got it wrong :-(
-
- * keys.c (var_next_keymap_path): now passes the prefix-arg through
- the chain of multi-key bindings
-
- * x11_keys.c, amiga_keys.c (lookup_event): doesn't look for backslash
- characters anymore, also a `-' character as the first character in
- a token won't terminate the token.
-
-Sun Sep 18 15:37:00 1994 John Harper (jsh orcrist)
-
- * misc.c (cmd_file_concat): renamed as `file-name-concat'
-
-Wed Sep 14 15:08:52 1994 John Harper (jsh orcrist)
-
- * misc.c (cmd_path_name, cmd_base_name): renamed as `file-name-
- directory' and `file-name-nondirectory' respectively
-
- * symbols.c (bind_symbol, unbind_symbols): uses the `set-default'
- and `default-value' functions to bind variables
- (cmd_set_default, cmd_default_value): now checks for a V_Var type
- of object
-
-Tue Sep 13 15:10:56 1994 John Harper (jsh orcrist)
-
- * unix_misc.c, amiga_misc.c (cmd_setenv): new function
-
- * housekeeping.c (resync_y): checks for a blank area at the
- bottom of the display; if one exists it's removed
-
-Fri Sep 9 14:59:16 1994 John Harper (jsh orcrist)
-
- * render.c (cut_paste_lines): when deleting lines, and the stuff
- which couldn't be blitted is only partly in the buffer, the rest is
- cleared.
- (cut_paste_lines): doesn't check if `srcLine' is greater than
- the last line displayed anymore; this is perfectly valid
-
-Tue Sep 6 14:47:48 1994 John Harper (jsh orcrist)
-
- * housekeeping.c (resync_y): when the cursor goes totally out
- of the display its put back at the center of the screen.
-
- * unix_server.c, amiga_server.c (cmd_server_open, cmd_server_close):
- these can now be called interactively
-
-Sat Sep 3 15:50:18 1994 John Harper (jsh orcrist)
-
- * find.c (replaceit): now expands the replacement before deleting
- the original text; a much better idea (i.e. it works)
-
-Thu Sep 1 14:17:57 1994 John Harper (jsh orcrist)
-
- * commands.c (cmd_interactive): now a special form
-
-Wed Aug 31 20:28:06 1994 John Harper (jsh orcrist)
-
- * x11_eventloop.c, amiga_eventloop.c: the hook `close-gadget-hook'
- has been renamed to `window-closed-hook'.
-
-Tue Aug 30 11:47:17 1994 John Harper (jsh orcrist)
-
- * keys.c (cmd_bind_keys, cmd_unbind_keys): the KEY-DESCRIPTION
- may now be an event
-
- * keys.h: redefined the EV_TYPE and EV_MOD defines so that
- most events will fit this field into 8 bits, and hence will
- use the pre-allocated static integers to save memory.
-
-Mon Aug 29 12:47:47 1994 John Harper (jsh orcrist)
-
- * glyphs.c (cmd_set_glyph): when a glyph-string of "" is
- set the first glyph is set to ' '
- (cmd_glyph_to_char_pos): POS isn't optional anymore
-
- * buffers.c (mark_prin): doesn't add one to the marks line and
- column before printing them anymore. Also resident marks have
- their buffer printed not their name
- (cmd_set_mark): setting the name of the file should work now
-
-Tue Aug 23 13:11:34 1994 John Harper (jsh orcrist)
-
- * lispcmds.c (cmd_bit_not, cmd_bit_or, cmd_bit_and): renamed
- as `lognot', `logior' and `logand' respectively.
-
- * lispcmds.c (cmd_logxor): new function
- * lispmach.c (OP_LOGXOR_2): new opcode
-
-Thu Aug 18 16:20:48 1994 John Harper (jsh orcrist)
-
- * streams.c (cmd_make_string_input_stream,
- cmd_make_string_output_stream, cmd_get_output_stream_string,
- cmd_streamp): new functions
- (cmd_file_p): renamed as `filep'
-
-Wed Aug 17 14:30:17 1994 John Harper (jsh orcrist)
-
- * lispcmds.c (cmd_defvar, cmd_defconst): the default value of
- buffer-local variables is set, not the local value
- (cmd_list): now conses up a *new* list, doesn't use its arg list;
- this could be risky
- (cmd_apply): now signals an error if its last argument is not
- a list
-
-Tue Aug 16 19:32:02 1994 John Harper (jsh orcrist)
-
- * symbols.c (cmd_default_boundp, cmd_set_default): new functions
-
-Sun Aug 14 19:45:52 1994 John Harper (jsh orcrist)
-
- * symbols.c: obarrays no longer use NULL to terminate a bucket: any
- non-symbol object can be used instead. This means that having a
- NULL sym_Next can signify that a symbol is not interned, making
- the SF_INTERNED flag obsolete -- it's been removed.
-
- * symbols.c (var_obarray): new variable -- provides access
- to the default obarray
-
-Sat Aug 13 12:40:00 1994 John Harper (jsh orcrist)
-
- * glyphs.c (cmd_glyph_table_p): new function
-
- * lispcmds.c (cmd_reverse): this was totally screwed
- (cmd_aref, cmd_aset): changed documentation
- (cmd_arrayp, cmd_elt): new functions
-
- * editcmds.c (cmd_alpha_char_p, cmd_upper_case_p, cmd_lower_case_p,
- cmd_digit_char_p, cmd_alphanumericp, cmd_space_char_p): these now
- accept non-integer arguments -- they just return nil for them.
-
-Fri Aug 12 14:09:06 1994 John Harper (jsh orcrist)
-
- * x11_display.c (x11_text_cursor): cursor to use in all windows
- * x11_windows.c (sys_new_window): sets the window's cursor
-
-Thu Aug 11 20:13:10 1994 John Harper (jsh orcrist)
-
- * lispcmds.c (cmd_mod): this was actually a remainder function
- not modulo; it's renamed to `%'
- (cmd_lsh): this was actually an arithmetic shift, new function
- `ash' to do this and lsh is fixed
- (cmd_integerp): new function
-
-Sun Jul 17 13:46:40 1994 John Harper (jsh orcrist)
-
- * movement.c (cmd_next_char, cmd_goto_next_char, cmd_prev_char,
- cmd_goto_prev_char): now take a COUNT argument: the number
- of characters to move. The new args to next-char and prev-char
- are incompatible with the old ones :-(
-
-Fri Jul 15 15:01:20 1994 John Harper (jsh orcrist)
-
- * lisp.c (lisp_init): int_cell is now (user-interrupt)
- not (error user-interrupt). This means that interrupts are no
- longer errors and therefore are unable to be caught by error-pro.
- * x11_eventloop.c, amiga_eventloop.c (event_loop): checks for
- explicitly for user-interrupt
-
-Thu Jul 14 15:54:10 1994 John Harper (jsh orcrist)
-
- * unix_server.c (server_accept_connection): the connection fd is
- marked to be discarded on exec()
- (server_kill): closes the open connections now
-
-Wed Jul 13 18:20:03 1994 John Harper (jsh orcrist)
-
- * lispcmds.c (cmd_eql): new function
- * lispmach.c (cmd_lisp_code2): added OP_EQL
-
-Tue Jul 12 13:05:08 1994 John Harper (jsh orcrist)
-
- * amiga_menus.c (cmd_set_menu): the action of the menu is a command
- not a list of forms
-
- * undo.c (undo_trim): when an undo is in progress tries to
- truncate the oldest of the three undo-lists
-
- * lispmach.c (CALL_1, CALL_2, CALL_3): macros containing the code
- to call a function for an instruction. Lots more opcodes have
- been added.
-
-Mon Jul 11 11:53:56 1994 John Harper (jsh orcrist)
-
- * edit.c (pad_pos): now adds the insertion to the buffer's undo-list
-
- * undo.c: doesn't use prefix counts to group items anymore. Instead
- a marker (`nil') is placed between each group. This lets me make
- each command a separate undo-group; also undo through several
- recursive edits works properly.
-
- * commands.c (var_last_command): no longer checks if VAL is nil
-
-Sun Jul 10 20:06:15 1994 John Harper (jsh orcrist)
-
- * keys.c (print_event_prefix): now prints the whole sequence
- each time.
- (event_buf, event_index): records all events in the current
- sequence.
- (cmd_current_key_string): renamed to `current-event-string'
-
-Thu Jul 7 15:05:40 1994 John Harper (jsh orcrist)
-
- * commands.c: New file; stuff for interactive function calling
-
- * streams.c (stream_puts, stream_putc): When writing to a string
- an extra byte is allocated to hold the zero terminator
- (cmd_format): writes each chunk of characters between format
- specifiers as one string instead of individually
-
-Wed Jul 6 19:32:31 1994 John Harper (jsh orcrist)
-
- * streams.c (cmd_format): with a STREAM of nil a string is
- constructed.
-
- * edit.h, symbols.c, windows.c: Window-local Lisp variables are
- no longer supported; they were only used for one variable, the
- `buffer-list'. This variable is now an entry in the VW structure.
-
- * lispcmds.c (cmd_aset): doesn't modify V_StaticString's
-
- * editcommands.c (cmd_translate_string): checks for read-only
- strings
-
- * lisp.h (STRING_WRITEABLE_P): macro to check if a Lisp string
- may be modified.
-
-Sun Jul 3 15:08:17 1994 John Harper (jsh orcrist)
-
- * lispcmds.c (cmd_defconst): an error is signalled if the symbol
- is already bound.
-
- * refresh.c (refresh_window): when a deletion is recognised the line
- it occurs is *always* redrawn from the first char deleted.
-
- * misc.c (cmd_expand_file_name): new arg, QUALIFY-FULLY. When t
- this says to get an absolute name.
- * amiga_misc.c, unix_misc.c (sys_fully_qualify_file_name): new
- function for the above Lisp function.
-
- * movement.c: (cmd_file_start, cmd_file_end, cmd_goto_file_start,
- cmd_goto_file_end): renamed, ``file'' replaced by ``buffer''
-
- * buffers.c (cmd_file_length): now called `buffer-length'
- (cmd_file_name): now called `buffer-file-name'
- (cmd_set_file_name): now called `set-buffer-file-name'
-
-Fri Jul 1 10:51:45 1994 John Harper (jsh orcrist)
-
- * refresh.c (flag_deletion): tx_ModEnd is set to the start of the
- deletion not the end
- (refresh_window): when (tx_ModDelta < 0) (i.e. a deletion) the
- cut & paste operation is a bit different now (hopefully this way
- works!?)
-
- * render.c (redraw_region): returns immediately when (START == END)
-
- * editcommands.c (sym_inhibit_read_only): new variable
- * edit.c (read_only): takes note of `inhibit-read-only' when it's
- bound and non-nil.
-
-Wed Jun 29 16:48:46 1994 John Harper (jsh orcrist)
-
- * Major alterations to all files; I've tried to impose
- a sensible naming style onto all symbols. All global
- symbols have a prefix. This is either null for files
- common to all configurations, `x11_' for stuff accessed
- only by the X files, likewise for `unix_' and `ami_'.
- The `sys_' prefix is for things which are accessed from
- the common area but exists in one of the non-common
- files.
-
-Tue Jun 28 14:42:30 1994 John Harper (jsh orcrist)
-
- * amiga_windows.c (newwindow): calculates for the status line
- when opening the window
-
- * amiga_display.c (initwinsys): uses onbreak() to hijack
- ^C signals caught by stdio
- * configs/config.h.amiga (HAVE_ONBREAK): new macro for above
-
-Sun Jun 26 16:26:43 1994 John Harper (jsh orcrist)
-
- * x11_windowsys.h, amiga_windowsys.h (DRAW_LINE): new macro,
- draws a 1-pixel wide line
- * render.c, x11_render.c, amiga_render.c, x11_windows.c,
- amiga_windows.c: all stuff to do with the status/message line
- is made system-independant. This means that messages on the
- Amiga now use the bottom line of the window as in X
-
- * amiga_eventloop.c (eventloop): in idle timeout calls
- print_event_prefix() and also refreshes the display if
- necessary.
-
- * amiga_keys.c (lookup_event_name): uses MapRawKey() to
- decipher unknown keycodes.
-
- * amiga_eventloop.c (eventloop): calls undo_distinct() when
- the current window changes
-
- * amiga_defs.h (TEST_INT): tests for SIGBREAKF_CTRL_C and calls
- amiga_interrupt_handler()
- * amiga_display.c (amiga_interrupt_handler): new function, resets
- the ^C signal bit and throws an interrupt
- (JadeProc): pointer to our process
-
-Thu Jun 23 19:57:13 1994 John Harper (jsh orcrist)
-
- * keys.c (KEYTAB_HASH_FUN): macro defining how to make a hash
- key from an event. Now key-tables are 127 entries long not 128.
-
- * keys.c: meta-sends-esc is reversed to become esc-means-meta, now
- there is no separate map for meta/esc keys
-
-Wed Jun 22 16:38:52 1994 John Harper (jsh orcrist)
-
- * unix_processes.c (proc_notification): now blocks sigchld
-
- * keys.c (usekey): unbound insertions now set the last-command
- variable to t.
-
- * undo.c: now records when a buffer changes from un-modified
- to modified so this too can be undone.
-
-Mon Jun 20 22:23:46 1994 John Harper (jsh orcrist)
-
- * undo.c: new file, undo recording and undo-ing
- * Wherever flag*tion() is called undo_record_*tion() is also
- called.
- * x11_eventloop.c (eventloop): calls undo_distinct() when the
- current window changes
-
- * editcommands.c (cmd_insert): now returns the position of the
- end of the insertion
-
-Sat Jun 18 11:54:50 1994 John Harper (jsh orcrist)
-
- * lisp.c (read_str): an escaped newline is now ignored
- (read_symbol): checks that its static buffer doesn't overflow
-
- * x11_windows.c (unsleep): this may work now?
- (sleepwin, unsleep): now use the VWFF_SLEEPING flag
- * x11_eventloop.c (handleevent): if we get an Expose event while
- sleeping assume that we woke up. Also if the VWFF_FORCE_REFRESH
- flag is set we discard all Expose events, when one has a count of
- zero (the last) do a total redraw of the window
-
-Thu Jun 16 20:18:58 1994 John Harper (jsh orcrist)
-
- * refresh.c (refreshwindow): sets vw_LastDisplayOrigin here after
- completing refresh
- * housekeeping.c (resyncxy): no longer sets vw_LastDisplayOrigin
-
- * movement.c (cmd_centre_display): new function
-
-Wed Jun 15 16:06:13 1994 John Harper (jsh orcrist)
-
- * lispcmds.c (cmd_concat): no longer stomps on memory when the
- string grows very quickly :-)
-
- * streams.c (cmd_write): optional LENGTH arg for strings
-
- * symbols.c (cmd_delete_buffer_variables): new function
-
-Tue Jun 14 10:54:03 1994 John Harper (jsh orcrist)
-
- * windows.c (stdtitle): now calls calc_cursor_offset()
-
- * find.c (cmd_match_start, cmd_match_end): new functions; these
- replace the variables `find-last-start-pos' and `find-last-end-pos'.
- Now the position of any expression can be found and in strings
- as well as in buffers.
-
- * editcommands.c (cmd_offset_to_pos, cmd_pos_to_offset): new
- functions for converting between byte counts and positions
-
- * unix_processes.c (struct Proc): pr_UsePty changed to pr_ConnType
- (runproc): option to set the ECHO flag in a pty
- (cmd_set_process_connection_type): now uses named symbols
-
-Mon Jun 13 00:44:26 1994 John Harper (jsh orcrist)
-
- * unix_processes.c (runproc): now connects stdin of the child to
- a defined file when running synchronously.
- (cmd_run_process): new arg IN-FILE to make use of the above feature
- (runproc, readfromproc): don't write to pr_OutputStream if it's nil
-
-Sun Jun 12 02:05:10 1994 John Harper (jsh orcrist)
-
- * unix_processes.c (struct Proc): pr_File becomes pr_Prog, pr_Argv
- becomes pr_Args and is now a list of arguments 1..N. Arg #0 is
- taken from pr_Prog
- (cmd_start_process, cmd_run_process): new arg spec. ARGS are now
- passed as the last N args in the call. Also the PROCESS arg
- is optional, a vanilla process will be created if necessary
- (cmd_process_name, cmd_set_process_name): renamed to process-prog
- and set-process-prog
- (cmd_process_argv, cmd_set_process_argv): renamed argv to args and
- takes a list instead of a vector
-
- * lispcmds.c (cmd_copy_list, cmd_copy_string): combined into
- cmd_copy_sequence().
- (cmd_sequencep): new function
-
-Sat Jun 11 19:21:00 1994 John Harper (jsh orcrist)
-
- * x11_eventloop.c (eventloop): some reorganisations
-
- * lisp.c (handleerror): now handles cursor and reresh itself
-
- * windows.c (cmd_title): renamed as `message', also a new arg
- saying draw it immediately
- (cmd_title_now): removed
- (var_status_line_cursor): variable controlling VWFF_STATUS_CURS
-
- * render.c (cursor): Takes note of VWFF_STATUS_CURS (but only
- in X11 so far)
-
- * edit.h (VW): vw_Sleeping and vw_NonStdTitle now in vw_Flags.
- New flag VWFF_STATUS_CURS means draw the cursor in the status
- line.
-
- * keys.c (usekey, print_event_prefix): a second after a prefix
- key is received the current prefix is displayed
-
-Fri Jun 10 19:24:36 1994 John Harper (jsh orcrist)
-
- * streams.c (cmd_format): added octal formatting (`%o')
- (cmd_format): `%%' doesn't swallow an argument anymore
-
- * keys.c (usekey): the `unbound-key-hook' is now called for all
- unbound events -- not just keyboard events
-
- * amiga_keys.c: updated after yesterday's changes, not finished
- yet I can't remember the name of a function I need to use :-(
-
-Thu Jun 9 11:32:49 1994 John Harper (jsh orcrist)
-
- * keys.c, keys.h: massive changes; all key/event structures are
- now standard Lisp types (vector & cons cells). Some new functions
- for manipulating events and their bindings.
- * x11_keys.c (lookup_event_name): new function
-
-Wed Jun 8 20:04:27 1994 John Harper (jsh orcrist)
-
- * keys.c (sym_idle_hook): new hook, called periodically when idle
- time is available
- * amiga_eventloop.c, x11_eventloop.c (eventloop): calls idle-hook
-
- * values.c (cmd_garbage_collect): no longer prints a message
- while gc is in progress
-
-Tue Jun 7 00:24:30 1994 John Harper (jsh orcrist)
-
- * edit.c (cmd_set_indent_pos): didn't rebuild line if it already
- had the correct number of indentation characters
-
- * unix_processes.c (queue_notify, proc_notification): The callback
- function for a process isn't called directly anymore, this is too
- risky.
- (cmd_make_process, runproc, cmd_fork_process, cmd_run_process): now
- more arguments can be passed to set the state of the process object.
- (cmd_process_connection_type, cmd_set_process_connection_type):
- support for using pipes *or* ptys when connecting to a process
- (cmd_fork_process): renamed as `start-process'
-
-Mon Jun 6 20:23:55 1994 John Harper (jsh orcrist)
-
- * unix_misc.c (cmd_copy_file): oops, didn't open the destination
- file with O_TRUNC :-(
-
- * misc.c (cmd_substr): renamed as `substring' and significantly
- changed.
-
- * find.c (cmd_regexp_quote): new function
-
-Sun Jun 5 22:58:43 1994 John Harper (jsh orcrist)
-
- * lisp.c, lispcmds.c, lispmach.c, lisp.h, x11_eventloop.c,
- amiga_eventloop.c: Interrupt support -- now you can break those
- annoying infinite loops :)
- * x11_display.c (x11_int_handler): handler for SIGINT
-
-Sat Jun 4 14:08:48 1994 John Harper (jsh orcrist)
-
- * keys.c (var_this_command, var_last_command): new functions
-
-Thu Jun 2 12:29:11 1994 John Harper (jsh orcrist)
-
- * Version 3.1 released
-
-Wed Jun 1 21:02:03 1994 John Harper (jsh orcrist)
-
- * x11_windows.c (makemousepos): didn't check that the returned value
- was legal
-
-Mon May 30 16:48:21 1994 John Harper (jsh deep)
-
- * windows.c (stdtitle): changed the format string
-
- * amiga_misc.c (cmd_file_req): sets the length of the returned string
- to its correct value
-
- * render.c (cutpastelines): doesn't assume that the window contains
- an integral number of lines -- screen debris was left between the
- end of the last line and the bottom of the window
-
- * misc.c (memchr): in case the C library doesn't provide memchr(),
- one of mine doesn't :(
-
- * configs/: new option in all config files `HAVE_MEMCHR'
-
- * amiga_menus.c (setallmenus, clearallmenus): Didn't ignore window
- objects which don't have a physical window open, this was causing
- Enforcer hits
-
-Wed May 25 19:16:11 1994 John Harper (jsh orcrist)
-
- * find.c (findprev): kludged the index manipulation
-
- * movement.c (findmatchingbracket): new argument ESC plus code
- to check for escape chars
- (cmd_match_brackets): new arg ESC, for the above modification
-
-Tue May 24 16:06:14 1994 John Harper (jsh orcrist)
-
- * movement.c (cmd_screen_bottom_line, cmd_screen_last_column):
- returned 1 to big
-
- * editcommands.c (get-char): didn't return newlines
-
- * lispmach.c (cmd_lisp_code2): renamed the conditional jumps
-
- * render.c (redraw_line_from, redraw_region): these now notice if
- they're told to start drawing before the first visible column
-
- * lispmach.c (cmd_lisp_code2): wasn't setting ThrowValue to NULL
- while evaluating unwind-protect forms
-
- * symbols.c (cmd_setq_default, cmd_default_value): new functions
- for accessing the default value of symbols
-
- * Makefile.in: no longer uses CFLAGS to pass the JADE_DIR define
-
-Mon May 23 02:07:53 1994 John Harper (jsh orcrist)
-
- * Changed the origin of a buffer's coordinates to (0,0) not (1,1),
- what will this break??
-
- * glyphs.c (expand_tabs): didn't like START-GLYPH==0
-
- * editcommands.c (cmd_set_indent_pos, cmd_indent_to): options
- to only insert spaces, not tabs
-
- * movement.c: fixed the `tab' functions to work with glyph
- positions
-
- * stringmem.c (sm_free): when a (non-malloc'd) string is freed
- increment DataAfterGC by its size
-
-Sun May 22 23:13:10 1994 John Harper (jsh orcrist)
-
- * values.c (cmd_garbage_collect): calls sm_flush() on the MainStrMem
- block.
-
- * buffers.c (cmd_destroy_buffer): doesn't bother calling sm_flush()
- anymore
-
-Sat May 21 20:59:11 1994 John Harper (jsh orcrist)
-
- * refresh.c (refreshworldcurs): doesn't try to setvwtitle()
- closed windows anymore
-
-Fri May 20 21:52:37 1994 John Harper (jsh orcrist)
-
- * configs: added HAVE_SETPGID and HAVE_SETPGRP options
- * unix_processes.c: takes note of the above macros
-
-Thu May 19 21:02:06 1994 John Harper (jsh orcrist)
-
- * unix_client.c, amiga_client.c (main): resets the line number for
- each file.
-
- * x11_windows.c (cmd_window_left_edge, cmd_window_top_edge): these
- used to return coordinates relative to our parent window (created
- by the wm) not the root window.
-
-Sun May 15 00:30:48 1994 John Harper (jsh orcrist)
-
- * lispmach.c: new instruction OP_RETURN
-
- * find.c (replacit, replaceitstr): calls flaginsertion() before
- inserting the string not after (when the pos has been advanced)
-
- * lispcmds.c (cmd_unwind_protect): temporarily sets `ThrowValue' to
- NULL while evaluating the body.
- * lispmach.c (cmd_lisp_code2): similar to the above when unwinding
-
-Fri May 13 21:52:40 1994 John Harper (jsh orcrist)
-
- * editcommands.c (cmd_set_char): new function
-
-Thu May 12 19:24:22 1994 John Harper (jsh orcrist)
-
- * lispmach.c: cmd_lisp_code renamed as cmd_lisp_code2 since
- compiled forms are now different.
-
- * lisp.c (string_print): no longer escapes tabs or newlines
-
- * editcommands.c (cmd_translate_string, cmd_get_char): new
- functions.
-
-Tue May 10 21:19:29 1994 John Harper (jsh orcrist)
-
- * lisp.h, value.h: New definition of the VALUE type, no longer
- is it (void *)
-
-Sun May 8 18:42:03 1994 John Harper (jsh orcrist)
-
- * editrect.c: New file. Most rectangle code has moved here from
- edit.c and updated to cope with the fact that a character's position
- in a line may not be the same as its position on the screen. Also
- lots of TAB handling.
-
- * keys.c (evalbinding): if the symbol `meta-sends-esc' is non-nil
- any meta-modified events get translated into ESC then the
- un-meta'd event.
-
-Sat May 7 13:53:59 1994 John Harper (jsh orcrist)
-
- * glyphs.c: each buffer can now have its own glyph-table. A new
- data type for glyph-tables has been created. New functions to
- manipulate these.
-
-Fri May 6 20:31:33 1994 John Harper (jsh orcrist)
-
- * editcommands.c (cmd_indent_to): new function
-
- * edit.c: changes uses of strcpy() and family to memcpy() so
- nul bytes don't cause havoc.
-
-Thu May 5 17:08:23 1994 John Harper (jsh orcrist)
-
- * unix_processes.c (writetoproc): new arg BUFLEN
-
- * streams.c (stream_puts): new arg BUFLEN, the length of the
- string being written
- (stream_read_esc): now understands octal escapes of less than 3
- chars and hex escapes
-
- * lisp.h: strings allocated (as opposed to being string-constants)
- now contain a length field. This will allow these strings to
- contain '\000' characters. The macro STRING_LEN gives the number
- of characters in any type of Lisp string.
-
- * values.c: accommodate the above changes
-
- * io.c (cmd_write_file): uses fwrite() not fputs
-
-Wed May 4 20:28:31 1994 John Harper (jsh orcrist)
-
- * edit.c (posinblock): for rectangular blocks uses glyph coords
-
- * housekeeping.c: the block marks are only updated in the y direction
- if rectangular blocks are being marked.
-
- * render.c (draw_bit): END arg is now inclusive
-
- * amiga_misc.c, unix_misc.c (fileexists): now returns bool
-
-Tue May 3 08:30:52 1994 John Harper (jsh orcrist)
-
- * buffers.c (var_disk_tab, var_save_tabs): removed
- (var_screen_tab): renamed as var_tab_size
-
- * edit.h (struct _TX): removed tx_DiskTab and tx_SaveTabs :)
-
- * movement.c (cmd_next_tab, cmd_goto_next_tab, cmd_prev_tab,
- cmd_goto_prev_tab): new arg TAB-SIZE. Also the goto variants
- convert glyph-pos to char-pos. The other return the *glyph* pos.
-
- * find.c (strrchrn, strrstrn): renamed as mystrrchrn() and
- mystrrstrn() incase they clash with anyone's C library
-
- * misc.c (stpblk, stpalnum, cpyalnum): deleted, they were
- not used anymore
-
- * find.c (mystricmp): args toupper() and tolower() had side
- effects! Deleted this function since it's not used anymore
- anyway
-
- * housekeeping.c: #undef's no longer state the macro's args,
- I'm told this is illegal
-
- * movement.c (cmd_goto): renamed as cmd_goto_char
- (cmd_goto_glyph): new function
-
- * editcommands.c (cmd_indent_pos, cmd_set_indent_pos): hacked
- to allow `proper' TABs
-
- * edit.c (insertstring): no longer has to expand TAB chars.
-
- * io.c (readtx): rewritten, no longer has to expand TAB chars,
- should make it a lot faster?
- (writeline): not needed anymore
-
- * render.c: many changes to cope with the `glyphs' code, now
- there are two types of column position, the `character' one
- which is the number of characters from the start of the line, and
- the `glyph' pos, the number of glyphs from the start of the
- line.
-
- * glyphs.c: new file, manages mappings between characters and
- their printed representations. Includes new Lisp functions,
- `glyph-to-char-pos', `char-to-glyph-pos', `set-glyph' and
- `get-glyph'.
-
-Mon May 2 10:13:12 1994 John Harper (jsh orcrist)
-
- * windows.c (stdtitle): bracketing around mode names now shows
- if in a recursive-edit
-
- * values.c (cmd_dup_pos): renamed as cmd_copy_pos
-
- * streams.c (streamputc, streamputs): strings now have a number
- associated with them, their *actual* size.
-
- * lispcmds.c (cmd_rassoc, cmd_rassq): new functions
- (cmd_copy_string): new function
-
-Sun May 1 23:36:00 1994 John Harper (jsh orcrist)
-
- * lisp.c: Optimised some of the read functions, got rid of the
- nextlispexp() function.
-
-Sat Apr 30 10:44:56 1994 John Harper (jsh orcrist)
-
- * symbols.c (symbols_init): nil and t are now constants
-
- * windows.c (cmd_make_window): only calls updatescroller() if
- tx is non-NULL, should fix the other Enforcer hit?
-
- * buffers.c (firstbuffer): now calls updatescroller() *after*
- switching in the first buffer, I think this should kill the
- Enforcer hit at startup?
-
- * refresh.c (refreshworldcurs): updates status line properly
-
- * edit.c (checksect, checkpos, checkline): didn't make sure the
- line number was positive
-
- * unix_client.c: now takes a series of files
-
- * amiga_eventloop.c (eventloop): Wait()'s for ServerSig as well
-
- * amiga_server.c, amiga_client.c: new files (untested, as yet)
-
-Fri Apr 29 21:38:03 1994 John Harper (jsh orcrist)
-
- * unix_server.c, unix_client.c: new files
-
-Thu Apr 28 19:21:43 1994 John Harper (jsh orcrist)
-
- * amiga_defs.h, unix_defs.h (DOC_FILE): renamed as DOC
-
- * unix_misc.c (geterrstring): macro HAVE_STRERROR replaces
- ERRNO_STRING, much simpler.
-
-Thu Apr 28 14:39:49 1994 J.S.Harper (jsh raven ukc ac uk)
-
- * render.c (cutpastelines): fixed one [more] bug
-
-Thu Apr 28 01:26:58 1994 John Harper (jsh orcrist)
-
- * editcommands.c (cmd_delete_area, cmd_cut_area): these now
- call padpos() on their section markers.
-
-Wed Apr 27 19:53:27 1994 John Harper (jsh orcrist)
-
- * unix_memory.c, unix_defs.h (myfree, initmem, killmem): these are
- now macros in unix_defs.h
-
-Tue Apr 26 22:59:44 1994 John Harper (jsh orcrist)
-
- * Makefile.in: new file, cpp source to make src/Makefile. Now only
- one configuration file has to be edited, src/config.h, it's used
- for both Makefile and C configurations.
-
-Mon Apr 25 22:14:41 1994 John Harper (jsh orcrist)
-
- * keys.c (cmd_current_key_string): new function
-
- * buffers.c (var_minor_mode_names): list of strings which is printed
- in the status line.
- * edit.h (TX): tx_MinorModeNameList and tx_MinorModeNameString
-
-Sun Apr 24 13:06:56 1994 John Harper (jsh orcrist)
-
- * unix_misc.c (cmd_directory_files): oops. If it couldn't open the
- named dir, it signalled the error with the C-string not the Lisp one.
-
- * misc.c (cmd_expand_file_name): new function
- * unix_misc.c (expand_file_name): does the work of the above function
- * unix_defs.h: #define EXPAND_FILE_NAME expand_file_name
-
- * unix_processes.c (runproc): initialises the pty more carefully
-
- * streams.c (posputc, posputs): uses `tx_DiskTab' for tab size, not
- `tx_TabSize'. What will this break?
-
-Sat Apr 23 21:05:34 1994 John Harper (jsh orcrist)
-
- * lispcmds.c (cmd_defvar, cmd_defconst): these are now in C
-
- * find.c (cmd_looking_at): used to set `find-last-end-pos' to the
- wrong position, also, the NOCASE_P arg was being ignored.
-
-Wed Apr 20 16:02:28 1994 John Harper (jsh orcrist)
-
- * Version 3.0 released
-
-Tue Apr 19 20:51:28 1994 John Harper (jsh deep)
-
- * refresh.c (refreshworldcurs): Checks if buffer has switched
-
- * amiga_minrexx.c (disp_rexx_port): changed the way that results are
- returned. Numbers and Strings are returned via RESULT. `nil'
- means RC=1 (command failed), anything else RC=0 (command succeeded).
-
-Mon Apr 18 20:54:42 1994 John Harper (jsh orcrist)
-
- * lisp.c (LispDepth, MaxLispDepth, var_max_lisp_depth, _eval, funcall):
- Protection against infinite recursion.
-
-Mon Apr 18 11:13:52 1994 John Harper (jsh deep)
-
- * prefs.c (copyfileprefs): by default `save-tabs' is 'all
-
-Sun Apr 17 19:29:37 1994 John Harper (jsh orcrist)
-
- * refresh.c (refreshwindow): simpler way of checking if block has
- already been drawn. Not good, but it may actually work!
-
- * render.c (cursor): checks if cursor is off bottom of window
-
- * x11_commandline.c (docmdline): now redraws the separator line
- on an expose event.
-
- * unix_misc.c, amiga_misc.c (cmd_move_file): renamed to
- `cmd_rename_file'.
-
- * unix_misc.c, amiga_misc.c (cmd_copy_file, cmd_file_nlinks,
- cmd_file_modes, cmd_set_file_modes): New functions
-
-Sat Apr 16 14:04:45 1994 John Harper (jsh orcrist)
-
- * Added license notices at the beginning of all source files.
-
- * All instances of the string `jed' have been changed to `jade'. I
- decided to change its name since there is at least one other editor
- called jed.
-
-Fri Apr 15 14:35:55 1994 John Harper (jsh deep)
-
- * amiga_windows.c (newwindow, sleepwin): `DefDims' contains the
- number of rows/columns, not pixels.
-
- * amiga_display.c (initwinsys): Command line arguments `-pubscreen'
- and `-font'
-
-Thu Apr 14 20:23:27 1994 John Harper (jsh deep)
-
- * values.c (values_kill): Due to a typo blocks of Numbers weren't being
- deallocated, now they are.
-
- * amiga_eventloop.c (eventloop): Fixed idle test. It's not ideal
- -- it uses 10 Intuiticks equal one second. Of course, the main
- loss is that Intuiticks are only sent while one of our windows is
- active :-(
-
-Thu Apr 14 11:31:49 1994 John Harper (jsh orcrist)
-
- * amiga_menus.c: More or less wholly rewritten. Doesn't take menu
- definitions from a file anymore, but from a list. No support for
- submenus at the moment though.
-
- * buffers.c (makemarksres, makemarksnonres): Don't bother checking
- for a NULL `tx_FileName', this can't happen.
-
- * values.c (markvalue): Marks don't get gc-marked down their
- chain, this was wrong.
- * buffers.c (sweep_mark, unchainmark): To go with the above, marks
- are now unchained from their buffer when swept.
-
- * misc.c (cmd_file_concat): function to stick together
- path-name components.
- * amiga_misc.c, unix_misc.c (addfilepart): for the above function
-
-Wed Apr 13 11:31:45 1994 John Harper (jsh orcrist)
-
- * symbols.c (bindsymbol, unbindsymbols): Can now bind to V_Var
- objects properly (the function is used to retrieve and set its
- value)
-
-Tue Apr 12 14:55:56 1994 John Harper (jsh orcrist)
-
- * x11_windowsys.h: CLR_RECT and SET_RECT did one two many columns/rows
-
- * find.c (cmd_looking_at): new function
-
-Mon Apr 11 23:17:56 1994 John Harper (jsh orcrist)
-
- * symbols.c: `make-*-variable' functions have been changed to
- `set-*-variable'. They don't make anything, just set a flag.
-
-Sun Apr 10 19:22:35 1994 John Harper (jsh orcrist)
-
- * find.c (strrchrn): Now uses a pointer instead of an array index.
-
-Fri Apr 8 20:21:07 1994 John Harper (jsh orcrist)
-
- * symbols.c (cmd_symbol_value, symbol_function): Got rid of the
- `void-symbol-function' hook.
-
-Tue Apr 05 15:19:47 1994 John Harper (jsh deep)
-
- * amiga_windows.c (cmd_font_size): Removed, obsoleted by the
- `font-y-size' function
-
- * windows.c (cmd_font_x_size, cmd_font_y_size): New commands
-
- * amiga_misc.c (cmd_full_name): No longer returns NULL when it
- can't read the ENV: variable `REALNAME'.
-
- * amiga_clipboard.c: Errors now reported via signal, not just printed
- in the status line.
- (readclip): Used to return a normal string not a VALUE
-
-Mon Apr 4 12:40:00 1994 John Harper (jsh orcrist)
-
- * Makefile, DMakefile: Now *all* source files are scanned for
- doc-strings. This is so that there is only one `DOC-strings' file
- for any particular revision (not one for each target OS).
-
-Sun Apr 3 20:57:24 1994 John Harper (jsh orcrist)
-
- * main.c, x11_eventloop.c, amiga_eventloop.c: Now eventloop() calls
- refreshworldcurs() when it is entered, this used to be done in
- cmd_recursive_edit() (but not in main()).
-
-Thu Mar 31 12:27:21 1994 John Harper (jsh orcrist)
-
- * Files in the directories `amiga/', `unix/' and `x11/' have been
- moved into the root source dir with prefixes of `amiga_', `unix_' and
- `x11_' respectively. This makes compilation a lot easier.
-
-Tue Mar 29 00:45:13 1994 John Harper (jsh orcrist)
-
- * render.c: As much as possible of x11/render.c has been moved to
- here. Uses macros defined in windowsys.h to do as much platform-
- independant rendering as possible. This turns out to be everything
- but the prompt line.
-
- * refresh.c: Copied most of render.c into this file.
-
-Fri Mar 25 13:20:11 1994 John Harper (jsh orcrist)
-
- * x11/eventloop.c: increasing the vertical size of a window no longer
- leaves the old status line in the middle of the display (if the buffer
- doesn't overwrite it).
-
- * values.c (cons_sweep): wholly unused blocks are now freed
- (markvalue): attempt to limit recursion as much as possible
-
-Thu Mar 24 09:51:07 1994 John Harper (jsh orcrist)
-
- * symbols.c: Got rid of `symbol-flags' function. Now there's none
- of these annoying `flags' functions left :-)
-
- * buffers.c: TXFF_IMMORTAL and TXFF_NOCHANGE are consolidated
- into TXFF_SPECIAL. New functions `set-buffer-special' and
- `buffer-special-p'. Got rid of `tx-flags' function.
- (set-buffer-name, set-file-name): Order of arguments reversed,
- this is more consistent with all other `set*' functions.
-
- * files.c: renamed to buffers.c, this makes more sense now
-
-Wed Mar 23 12:06:02 1994 John Harper (jsh orcrist)
-
- * values.c (markvalue): Two new algorithms for marking cons cells
-
- * General code cleanup so that it will compile with -Wparentheses.
-
-Sat Mar 19 03:45:03 1994 John Harper (jsh orcrist)
-
- * find.c (cmd_find_next_regexp, cmd_find_prev_regexp, cmd_regexp_match,
- cmd_regexp_match_line): optional arg `IGNORE-CASE-P'
-
- * regexp/regexp.h, regexp/regexp.c: new flag to regexec2(),
- REG_NOCASE, means ignore case when comparing strings (but not
- for character classes).
-
- * io.c: new command `read-file-from-to'
-
- * streams.c: new commands `read-line' and `read-file-until'
-
-Fri Mar 18 01:03:28 1994 John Harper (jsh orcrist)
-
- * doc/: Directory with manual stuff, new Makefile
-
- * find.c: New command `regexp-expand-line' a cross between
- `regexp-expand' and `regexp-match-line'.
-
-Thu Mar 17 18:55:54 1994 John Harper (jsh orcrist)
-
- * jed.h, windows.c: Got rid of obsolete VWFF_NOSAVEPOS flag. Also
- the var `vw-flags' is gone. Functions `rect-blocks-p' and
- `set-rect-blocks' are used instead (the other flags are internal).
-
- * unix/processes.c: Now uses SA_RESTART if possible and O_NONBLOCK
- instead of O_NDELAY.
-
-Tue Mar 15 23:04:34 1994 John Harper (jsh orcrist)
-
- * jed.texi: New file, at last! I've started the manual
-
- * files.c (var_save_tabs): Now uses descriptive symbols for the
- options, not magic numbers.
-
-Mon Mar 14 21:21:41 1994 John Harper (jsh orcrist)
-
- * unix/processes.c: Now uses sigaction() and sigprocmask() instead
- of signal(). I'm not sure if I've done this correctly, from looking
- at the kernel sources it seems ok...
-
-Sat Mar 12 22:25:36 1994 John Harper (jsh orcrist)
-
- * x11/display.c: Added `-name' option -- sets the name which is
- primarily used to lookup resources with.
- * x11/display.c (getxresources): If unable to find a resource with
- the program name tries with the string "Jed".
-
-Thu Mar 10 22:08:33 1994 John Harper (jsh orcrist)
-
- * find.c: (cmd_replace_regexp, cmd_replace_string): Checks if `pos'
- is out of range (instead of just seg-faulting).
-
-Mon Mar 7 21:27:25 1994 John Harper (jsh orcrist)
-
- * lispcmds.c: New symbol `lisp-lib-dir'
- * lisp.c (cmd_add_doc_string): New command to write a new doc-string
- to the DOC file and return its index.
-
-Sun Mar 6 12:49:38 1994 John Harper (jsh orcrist)
-
- * windows.c (window_prin): Handles dead windows now.
-
- * windows.c (cmd_destroy_window): Now does (throw 'quit 0) when no
- more windows exist.
- * windows.c, amiga/windows.c: Fixed `NumWindows' variable -- it's
- now decremented in `cmd_destroy_window'.
-
-Sat Mar 5 01:21:35 1994 John Harper (jsh orcrist)
-
- * edit.c: #if 0'd `stuffline'. This is now done inline where functions
- can take advantage of knowing the length of the line.
-
- * editcommands.c (cmd_translate_area): Applies a translation-table
- (a string) to a region of a buffer. Also, variables `upcase-table' and
- `downcase-table' are provided. Needs `cmd_translate_rect'.
-
-Fri Mar 4 18:55:38 1994 John Harper (jsh orcrist)
-
- * lispcmds.c (cmd_functionp, cmd_special_form_p): Fixed null-ref
- when a symbol has no function value.
-
- * edit.c (rectinsertstring, rectdeletesect): Now calls the `flag*'
- functions properly. Also fixed bug that inserting past the bottom
- of the file didn't work properly.
-
- * files.c: Changed `cmd_find_file' to `cmd_get_file_buffer' and
- `cmd_find_buffer' to `cmd_get_buffer'.
-
-Thu Mar 3 21:36:01 1994 John Harper (jsh orcrist)
-
- * lispcmds.c (cmd_eval_hook2): Could exit with `GCinhibit' still set.
-
- * keys.c (usekey): Now checks for a read-only buffer before inserting
- a keypress.
-
-Mon Feb 28 19:34:54 1994 John Harper (jsh orcrist)
-
- * symbols.c, lisp.h: New flag in Symbol struct: SF_INTERNED.
- This gets set when a symbol is interned. Lets me protect against
- interning a symbol twice.
-
- * streams.c (cmd_stdin_file, cmd_stdout_file): These didn't
- actually set the LFF_DONT_CLOSE flag which I had so carefully
- prepared for them :-(
-
-Sun Feb 27 20:48:56 1994 John Harper (jsh orcrist)
-
- * x11/windows.c (activatewin): Actually does something now -- raises
- the window and warps the mouse to it's top-left corner.
-
-Tue Feb 22 21:58:18 1994 John Harper (jsh orcrist)
-
- * x11/render.c (cutpastelines): Doesn't bother if `dstLine' is off
- bottom of window.
-
- * lisp.c, lispcmds.c, lispmach.c, ../lisp/lisp.jl: Got rid of 'lambda
- throw tag, this won't work as expected in some pieces of compiled
- code. Replaced by 'defun tag which returns a value from a defun.
-
-Mon Feb 21 02:05:56 1994 John Harper (jsh orcrist)
-
- * lispcmds.c (cmd_load): Now takes note of variable `load-path' (list
- of directory names) and warns if compiled file is older than it's
- source. Also an option to suppress the error when file doesn't exist.
-
-Sun Feb 20 21:20:02 1994 John Harper (jsh orcrist)
-
- * io.c (cmd_write_buffer_area): New command, writes a portion of
- a buffer to a file.
-
-Sat Feb 19 00:45:53 1994 John Harper (jsh orcrist)
-
- * lisp.c, lispmach.c (cmd_backtrace): Now keeps a stack of all
- living Lisp function calls. This is mainly so it's easy to see
- where an error occurs.
-
- * lisp.c [mainly]: Error signalling written. New subrs, signal,
- error-protect (similar to emacs' `condition-case') and a var,
- debug-on-error. New byte-opcodes introduced -- op-signal and
- op-error-protect.
-
-Tue Feb 15 20:59:53 1994 John Harper (jsh orcrist)
-
- * x11/render.c (cutpastelines): Some optimisation of what lines get
- moved (now leaves trailing blank lines alone).
-
- * unix/misc.c (cmd_user_login_name): Tries getlogin() before
- getpwuid().
-
-Mon Feb 14 21:32:27 1994 John Harper (jsh orcrist)
-
- * Changed doc-string handling -- now all subr doc-strings are kept in
- a separate file. All source files containg `DEFUN's have been
- changed to accomplish this and a new tool `makedoc' has been written.
- This only saves about 40K in the binary but since that was about a
- quarter of the whole size I think it's worth it.
-
-Sat Feb 12 14:35:05 1994 J.S.Harper (jsh falcon ukc ac uk)
-
- * find.c (cmd_regexp_match_line): New command, matches a regexp
- to a line of a buffer.
-
- * movement.c (cmd_next_tab, cmd_goto_next_tab, cmd_prev_tab,
- cmd_goto_prev_tab): These would go into a (near-)infinite loop
- when given a negative argument.
-
- * unix/misc.c (cmd_user_full_name): `FULL_NAME_TERMINATOR' option.
-
-Sat Feb 12 01:28:01 1994 John Harper (jsh orcrist)
-
- * misc.c (cmd_major_version_number, cmd_minor_version_number): New
- commands.
-
-Thu Feb 10 03:15:12 1994 John Harper (jsh orcrist)
-
- * render.c: '#if 0' out `cmd_refresh_window'. This isn't possible
- anymore -- there's no way of saying that a certain window has been
- updated re: a buffer while other views of that buffer haven't. This
- is no big loss, use `refresh-all' instead.
-
- * jed.h, x11/windowsys.h, amiga/windowsys.h: Took out most #ifdef's
- from the VW structure. Now all window-system specific bits of a VW
- are in a separate structure (`VW_WindowSystem').
-
-Wed Feb 9 22:46:34 1994 John Harper (jsh orcrist)
-
- * jed.h, files.c, ../lisp/buffers.jl: Fixed problem of buffer being
- marked unmodified after an auto-save. -Introduced new field,
- `tx_ProperSaveChanges', containing the change count at the last
- time the buffer was written to its file (*not* an auto-save).
-
- * io.c (readtx, writetx): No longer assumes that all files end
- in '\n'. This means that files without a trailing newline don't
- get given one anyway when they're written to disk.
-
-Tue Feb 8 03:29:19 1994 John Harper (jsh orcrist)
-
- * files.c (cmd_buffer_changes, cmd_buffer_modified_p,
- cmd_set_buffer_modified): New method of dealing with modification
- counts. `tx_Changes' is *never* reset -- when the buffer is
- `un-modified' another field `tx_LastSaveChanges' is set to the
- current value of `tx_Changes'. This is so the new refresh code
- can rely on the change counter.
-
- * render.c, x11/render.c, edit.c, editcommands.c: Rewrote functions
- which control what gets redrawn and when. This almost works. Much
- more efficient and loses some embarassing misfeatures.
-
-Sun Feb 6 01:25:15 1994 John Harper (jsh orcrist)
-
- * lisp.h, streams.c: New flag in LFile structure, `LFF_DONT_CLOSE',
- means *never* fclose() the lf_File field.
- * streams.c (cmd_stdin_file, cmd_stdout_file): Access to stdin/out.
- * .gdbinit: New file, command to print a lisp object in gdb.
-
- * lisp.c (bindlambdalist): uses static symbols to match ampersand-
- keywords (`&optional', `&rest', `&aux').
-
- * amiga/misc.c: merged amiga/io.c into this file.
- * amiga/misc.c (cmd_user_login_name, cmd_user_real_name,
- cmd_user_home_directory, cmd_system_name): New commands in line
- with their unix counterparts, get their values from strategically
- placed environment variables.
-
- * unix/misc.c: merged unix/io.c into this file.
-
- * unix/io.c (cmd_user_login_name, cmd_user_real_name,
- cmd_user_home_directory, cmd_system_name): These now cache their
- results after the first time they're called.
- * unix/io.c (cmd_system_name): Now returns the full hostname, with
- domains and everything.
-
-Sat Feb 5 21:36:22 1994 John Harper (jsh orcrist)
-
- * windows.c (cmd_with_window): special-form (similar to `with-buffer').
- * lispmach.c, ../lisp/compiler.jl: support for above special form, new
- opcodes `swap-window' and `windowp'.
-
- * lispmach.c: Put stack bounds checking inside `#ifdef PARANOID'
-
- * unix/processes.c (signalprocess): Signals no longer use characters.
- (Unless you define `SIGNALS_VIA_CHARS'.)
-
-Fri Feb 4 23:26:31 1994 John Harper (jsh orcrist)
-
- * ChangeLog starts here, I've decided to try and keep one of these
- things.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]