2002-06-18 Chris Hanson * COPYING[1.2]: Add exemption permitting use with OpenSSL. 2002-06-17 Chris Hanson * runtime/version.scm[14.208]: Update version for 7.7.1 release. * microcode/ntapi.h[1.13], microcode/ntsock.c[1.13], microcode/version.h[11.184]: Implement server_channel_n_read, which is required by the runtime system to use server sockets. 2002-06-15 Chris Hanson * microcode/ntscreen.c[1.47]: Initialize "length" field of structure prior to call. Thanks to Lawrence Wood for the bug fix. 2002-06-04 Chris Hanson * imail/imail-summary.scm[1.48]: Fix bug: expunge could generate errors due to mistaken overwriting of the summary-buffer mark for a deleted message. 2002-04-24 Chris Hanson * runtime/runtime.pkg[14.413], runtime/uenvir.scm[14.57]: Use lambda abstraction rather than bypassing it. * runtime/lambda.scm[14.17]: Implement LAMBDA-NAMES-VECTOR. 2002-04-23 Chris Hanson * microcode/ntsock.c[1.12]: Add missing call to transaction_begin. 2002-04-17 Chris Hanson * runtime/mit-syntax.scm[14.6]: Don't reserve names in top-level environments. The revised report requires that top-level definitions act like assignments when the name is already bound. * runtime/syntactic-closures.scm[14.10]: Fix history procedures to specially handle null history. This occasionally comes up with syntactic keywords. 2002-03-29 Chris Hanson * microcode/bchdmp.c[9.90.4.1], microcode/bchgcl.c[9.54.4.1], microcode/bchmmg.c[9.98.8.1], microcode/boot.c[9.105.8.1], microcode/confshared.h[11.3.2.1], microcode/const.h[9.46.8.1], microcode/debug.c[9.53.8.1], microcode/fasl.h[9.38.12.1], microcode/fasload.c[9.91.4.1], microcode/gccode.h[9.58.8.1], microcode/gctype.c[9.34.12.1], microcode/interp.c[9.92.8.1], microcode/lookup.h[9.55.8.1], microcode/memmag.c[9.66.8.1], microcode/ppband.c[9.50.8.1], microcode/purify.c[9.61.4.1], microcode/types.h[9.38.8.1], microcode/wabbit.c[1.9.4.1]: Eliminate references to TC_NULL in favor of TC_FALSE. Add symbolic definitions for datum values of TC_CONSTANT. 2002-03-26 Chris Hanson * imail/imap-response.scm[1.45], imail/todo.txt[1.138]: If EOF encountered while reading server response, signal an error. This prevents the uninterruptible infinite loop when the network goes down while the connection is open. 2002-03-25 Chris Hanson * imail/imail-file.scm[1.81], imail/imail-rmail.scm[1.70], imail/imail-top.scm[1.283], imail/imail-umail.scm[1.51], imail/imail.pkg[1.96], imail/load.scm[1.39], imail/todo.txt[1.137]: Change M-o command to act like o if the output file is in a known format. 2002-03-19 Chris Hanson * compiler/fgopt/closan.scm[4.30]: Tweak comment. 2002-03-15 Chris Hanson * microcode/configure.in[11.16]: Broaden pattern used to match FreeBSD versions. * cref/toplev.scm[1.18]: Fix missed reference in last change. 2002-03-14 Chris Hanson * cref/redpkg.scm[1.26], cref/toplev.scm[1.17]: Allow end user to specify operating-system type, in order to do cross compilation. * runtime/packag.scm[14.40]: Change PACKAGE-SET-PATHNAME to accept an optional argument that specifies the operating-system type. This is useful for cross-compilation. 2002-03-12 Chris Hanson * runtime/version.scm[14.207]: Update version number for release. 2002-03-11 Chris Hanson * microcode/cmpauxmd/i386.m4[1.57]: Use pushad/popad rather than pusha/popa. Latter don't work properly on Windows, and former aren't implemented by GCC. 2002-03-06 Chris Hanson * edwin/buffer.scm[1.187]: Change the following to allow their BUFFER argument to be any object accepted by ->BUFFER: DEFINE-VARIABLE-LOCAL-VALUE! UNDEFINE-VARIABLE-LOCAL-VALUE! VARIABLE-LOCAL-VALUE? SET-VARIABLE-LOCAL-VALUE! * edwin/dos.scm[1.53], edwin/edwin.pkg[1.281], edwin/kilcom.scm[1.72], edwin/os2.scm[1.51], edwin/xterm.scm[1.69]: Rewrite mechanism that controls whether PRIMARY or CLIPBOARD selection is used on X. Now cut and paste are separately configurable, and the defaults are different for each. This should provide better behavior on older systems while making the default more usable on newer ones. 2002-03-02 Chris Hanson * runtime/syntax-output.scm[14.5]: Don't output bare block declarations at top level; always wrap them in an open block. Otherwise, SF won't act on the declarations, just passing them through to the compiler. * etc/compile.scm[1.4]: The "star-parser" directory must be compiled prior to the "imail" directory. 2002-03-01 Chris Hanson * runtime/syntactic-closures.scm[14.9], runtime/syntax-output.scm[14.4]: Fix up various problems in the name management. This now appears to work properly. * runtime/runtime.pkg[14.412], runtime/scomb.scm[14.20]: Add procedures to get a list of subexpressions of an scode combinator. * runtime/syntactic-closures.scm[14.8], runtime/syntax-output.scm[14.3]: Rewrite renaming code to allocate temporary uninterned symbols during expansion, then map them to interned symbols in a post pass. Mapping algorithm avoids renaming where possible, keeping original names of identifiers in outermost frames in cases of conflict. * runtime/make.scm[14.86], runtime/option.scm[14.41], runtime/optiondb.scm[1.14], runtime/runtime.pkg[14.411]: Hash-table abstraction is now always loaded. It's no longer necessary to use LOAD-OPTION prior to use. * runtime/mit-syntax.scm[14.5], runtime/syntax-output.scm[14.2]: Rewrite the declaration processor to make it reusable for alpha substitution. 2002-02-25 Chris Hanson * edwin/fileio.scm[1.157]: Fix another problem with NAME->VARIABLE being passed a string. 2002-02-22 Chris Hanson * imail/imail-top.scm[1.282]: Show MIME message/delivery-status parts inline. Simplify the MIME inline/outline decision logic. * imail/imail-top.scm[1.281]: Add alternate Unicode charsets from RFC-1641. * compiler/machines/alpha/instr1.scm[1.6], compiler/machines/alpha/instr2.scm[1.4], compiler/machines/alpha/instr3.scm[1.4], compiler/machines/alpha/lapgen.scm[1.9], compiler/machines/alpha/rules3.scm[1.10], compiler/machines/alpha/rulflo.scm[1.6], compiler/machines/bobcat/assmd.scm[1.39], compiler/machines/bobcat/dassm1.scm[4.22], compiler/machines/bobcat/dassm2.scm[4.25], compiler/machines/bobcat/flinstr1.scm[1.4], compiler/machines/bobcat/flinstr2.scm[1.4], compiler/machines/bobcat/instr2.scm[1.21], compiler/machines/bobcat/instr3.scm[1.20], compiler/machines/bobcat/instr4.scm[1.6], compiler/machines/bobcat/lapgen.scm[4.53], compiler/machines/bobcat/machin.scm[4.34], compiler/machines/bobcat/rules3.scm[4.43], compiler/machines/mips/assmd.scm[1.5], compiler/machines/mips/dassm1.scm[1.7], compiler/machines/mips/dassm2.scm[1.7], compiler/machines/mips/instr1.scm[1.9], compiler/machines/mips/instr2a.scm[1.7], compiler/machines/mips/instr2b.scm[1.6], compiler/machines/mips/instr3.scm[1.5], compiler/machines/mips/lapgen.scm[1.18], compiler/machines/mips/mips.scm[1.4], compiler/machines/mips/rules3.scm[1.20], compiler/machines/mips/rulflo.scm[1.10], compiler/machines/sparc/assmd.scm[1.4], compiler/machines/sparc/instr1.scm[1.4], compiler/machines/sparc/instr2a.scm[1.4], compiler/machines/sparc/instr2b.scm[1.4], compiler/machines/sparc/instr3.scm[1.4], compiler/machines/sparc/lapgen.scm[1.5], compiler/machines/sparc/rules3.scm[1.4], compiler/machines/sparc/rulflo.scm[1.4], compiler/machines/spectrum/assmd.scm[1.33], compiler/machines/spectrum/dassm1.scm[4.22], compiler/machines/spectrum/dassm2.scm[4.23], compiler/machines/spectrum/instr1.scm[1.6], compiler/machines/spectrum/instr3.scm[1.5], compiler/machines/spectrum/lapgen.scm[4.50], compiler/machines/spectrum/rules3.scm[4.44], compiler/machines/spectrum/rulfix.scm[4.50], compiler/machines/spectrum/rulflo.scm[4.42], compiler/machines/vax/assmd.scm[4.9], compiler/machines/vax/dassm1.scm[4.9], compiler/machines/vax/dassm2.scm[4.15], compiler/machines/vax/lapgen.scm[4.18], compiler/machines/vax/rules3.scm[4.14], compiler/machines/vax/rulfix.scm[1.8]: Eliminate non-hygienic macros. * runtime/syntactic-closures.scm[14.7]: If a synthetic identifier is bound at top level, rename it to a special name so that it doesn't conflict with other non-EQ? identifiers. * runtime/parser-buffer.scm[1.4], runtime/rgxcmp.scm[1.121], sf/object.scm[4.15]: Don't close the identifier of a definition. 2002-02-21 Chris Hanson * edwin/info.scm[1.137]: Fix FIND-DIR-NODE-FILES, which was returning the pathname list in reverse order. * edwin/hlpcom.scm[1.123]: Update copyright statement. 2002-02-19 Chris Hanson * runtime/syntactic-closures.scm[14.6], runtime/syntactic-closures.scm[14.5]: In STRIP-SYNTACTIC-CLOSURES, don't copy the argument unless it has embedded syntactic closures. * runtime/mit-syntax.scm[14.4]: Fix typo in previous change. * runtime/mit-syntax.scm[14.3]: Fix some missing syntax: FLUID-LET must allow (access ...) as LHS in binding. Named LET must allow unassigned bindings. RHS of syntax binding must allow arbitrary procedure-valued expression, which is treated as a non-hygienic macro expander. * imail/imail-top.scm[1.280]: Add "unknown-8bit" to list of known character sets. 2002-02-16 Chris Hanson * compiler/machines/C/lapgen.scm[1.14], compiler/machines/C/rules3.scm[1.11], compiler/machines/C/rulfix.scm[1.5], compiler/machines/C/rulflo.scm[1.7], compiler/machines/alpha/assmd.scm[1.4], compiler/machines/alpha/dassm1.scm[1.4], compiler/machines/alpha/dassm2.scm[1.4], compiler/machines/spectrum/instr2.scm[1.11], compiler/machines/vax/dsyn.scm[1.12], compiler/machines/vax/insmac.scm[1.17], compiler/machines/vax/instr1.scm[1.10], compiler/machines/vax/instr2.scm[1.11], compiler/machines/vax/instr2.scm[1.10], compiler/machines/vax/instr3.scm[1.14]: Eliminate non-hygienic macros. 2002-02-14 Chris Hanson * compiler/back/asmmac.scm[1.17], compiler/back/syntax.scm[1.29], compiler/machines/alpha/insmac.scm[1.6], compiler/machines/bobcat/insmac.scm[1.132], compiler/machines/i386/insmac.scm[1.17], compiler/machines/mips/insmac.scm[1.6], compiler/machines/sparc/insmac.scm[1.5], compiler/machines/spectrum/insmac.scm[1.6], compiler/machines/vax/insmac.scm[1.16]: Change most instruction-set macros to use reverse syntactic closure style, and propagate changes down through the maze of supporting procedures. * edwin/hlpcom.scm[1.122]: Fix bug: name->foo procedures no longer accept string arguments. * compiler/back/asmmac.scm[1.16], compiler/back/asmmac.scm[1.15], compiler/base/macros.scm[4.28], compiler/base/pmpars.scm[1.7], compiler/machines/bobcat/insmac.scm[1.131], compiler/machines/i386/insmac.scm[1.16]: Make sure that all expressions are properly closed. 2002-02-13 Chris Hanson * compiler/machines/i386/insmac.scm[1.15]: Make sure that all expressions are properly closed. * compiler/machines/alpha/insmac.scm[1.5], compiler/machines/bobcat/insmac.scm[1.130]: Eliminate non-hygienic macros. * edwin/clsmac.scm[1.10]: Fix bug: WITH-INSTANCE-VARIABLES should have used MAKE-UNMAPPED-MACRO-REFERENCE-TRAP rather than MAKE-MACRO-REFERENCE-TRAP. * runtime/mit-syntax.scm[14.2]: Modify CASE syntactic keyword to generate better code for tests. * compiler/etc/disload.scm[1.12], edwin/intmod.scm[1.116], imail/fake-env.scm[1.6], runtime/option.scm[14.40], runtime/runtime.pkg[14.410], runtime/uenvir.scm[14.56], runtime/xeval.scm[1.10], swat/scheme/load.scm[1.9]: Rename MAKE-NULL-TOP-LEVEL-ENVIRONMENT to MAKE-ROOT-TOP-LEVEL-ENVIRONMENT. Eliminate alias for EXTEND-INTERPRETER-ENVIRONMENT. 2002-02-12 Chris Hanson * runtime/syntactic-closures.scm[14.4], runtime/uenvir.scm[14.55]: Don't signal error from ENVIRONMENT-LOOKUP-MACRO if name is unbound. * runtime/runtime.pkg[14.409], runtime/uenvir.scm[14.54]: Add aliases: interpreter-environment? => top-level-environment? extend-interpreter-environment => extend-top-level-environment make-null-interpreter-environment => make-null-top-level-environment * win32/ffimacro.scm[1.8]: Don't close the identifier of a definition. * runtime/make.scm[14.85], runtime/runtime.pkg[14.408], runtime/syntactic-closures.scm[14.3]: Implement REVERSE-SYNTACTIC-ENVIRONMENTS. Add bindings for SYSTEM-GLOBAL-SYNTAX-TABLE and EXTEND-IC-ENVIRONMENT to ease upgrading. * compiler/back/asmmac.scm[1.14], compiler/base/macros.scm[4.27], compiler/base/pmpars.scm[1.6], compiler/base/pmpars.scm[1.5], compiler/machines/i386/assmd.scm[1.6], compiler/machines/i386/dassm1.scm[1.13], compiler/machines/i386/dassm2.scm[1.12], compiler/machines/i386/dassm3.scm[1.10], compiler/machines/i386/insmac.scm[1.14], compiler/machines/i386/instr1.scm[1.16], compiler/machines/i386/instr2.scm[1.10], compiler/machines/i386/instrf.scm[1.18], compiler/machines/i386/lapgen.scm[1.31], compiler/machines/i386/rules3.scm[1.38], compiler/machines/i386/rulfix.scm[1.34], compiler/machines/i386/rulflo.scm[1.25]: Eliminate non-hygienic macros. 2002-02-10 Chris Hanson * runtime/defstr.scm[14.40], runtime/sysmac.scm[14.10]: Don't close the identifier of a definition. 2002-02-09 Chris Hanson * 6001/arith.scm[1.10], edwin/buffer.scm[1.186], edwin/calias.scm[1.25], edwin/dosproc.scm[1.9], edwin/macros.scm[1.72], edwin/search.scm[1.155], edwin/tterm.scm[1.34], edwin/xcom.scm[1.21], runtime/arith.scm[1.50], runtime/graphics.scm[1.21], runtime/infstr.scm[1.15], runtime/parse.scm[14.37], runtime/port.scm[1.23], runtime/rgxcmp.scm[1.120], runtime/starbase.scm[1.17], runtime/sysmac.scm[14.9], runtime/vector.scm[14.21], sf/object.scm[4.14]: Don't close the identifier of a definition. * compiler/base/macros.scm[4.26], edwin/clsmac.scm[1.9], runtime/defstr.scm[14.39], sf/toplev.scm[4.24], sos/macros.scm[1.14]: Use CLOSE-SYNTAX where possible. 2002-02-08 Chris Hanson * runtime/syntactic-closures.scm[14.2]: Change renaming algorithm to treat synthetic identifiers differently from symbols. The new algorithm implements an EQ?-isomorphic map between identifiers and renamed symbols. * compiler/base/cfg1.scm[4.7]: Eliminate instances of FALSE. * compiler/machines/C/compiler.pkg[1.14], compiler/machines/alpha/compiler.pkg[1.17], compiler/machines/bobcat/compiler.pkg[1.54], compiler/machines/mips/compiler.pkg[1.24], compiler/machines/spectrum/compiler.pkg[1.54], compiler/machines/vax/compiler.pkg[1.26]: Add missing macro imports. * compiler/back/asmmac.scm[1.13], compiler/back/asmmac.scm[1.12], compiler/base/cfg1.scm[4.6], compiler/base/macros.scm[4.25], compiler/base/macros.scm[4.24], compiler/base/scode.scm[4.14], compiler/base/utils.scm[4.24], compiler/etc/comcmp.scm[1.11], compiler/fggen/canon.scm[1.22], compiler/fggen/canon.scm[1.21], compiler/fggen/fggen.scm[4.37], compiler/fggen/fggen.scm[4.36], compiler/machines/C/compiler.pkg[1.13], compiler/machines/alpha/compiler.pkg[1.16], compiler/machines/bobcat/compiler.pkg[1.53], compiler/machines/i386/compiler.pkg[1.29], compiler/machines/mips/compiler.pkg[1.23], compiler/machines/spectrum/compiler.pkg[1.53], compiler/machines/vax/compiler.pkg[1.25], compiler/rtlbase/rtlcfg.scm[4.10], compiler/rtlbase/rtlreg.scm[4.9], compiler/rtlbase/valclass.scm[1.5]: Eliminate non-hygienic macros. * runtime/syntax-check.scm[14.2]: Fix error message in PARSE-MIT-LAMBDA-LIST. 2002-02-07 Chris Hanson * compiler/back/asmmac.scm[1.11], compiler/back/lapgn3.scm[4.15], compiler/base/crsend.scm[1.13], compiler/base/lvalue.scm[4.25]: Eliminate non-hygienic macros. 2002-02-05 Chris Hanson * microcode/utabmd.scm[9.84]: Fix bug: top-level syntax definition was being loaded into global environment. 2002-02-04 Chris Hanson * win32/ffimacro.scm[1.7]: Fix fatal bug in previous revision. 2002-02-03 Chris Hanson * 6001/make.scm[15.34], compiler/base/make.scm[4.117], cref/make.scm[1.25], edwin/make.scm[3.114], imail/load.scm[1.38], sos/load.scm[1.11], win32/make.scm[1.10], xml/load.scm[1.5]: Update version to reflect changes for new syntax engine. * 6001/arith.scm[1.9], compiler/base/constr.scm[1.4], compiler/base/macros.scm[4.23], compiler/machines/i386/compiler.pkg[1.28], edwin/buffer.scm[1.185], edwin/buffrm.scm[1.59], edwin/bufwin.scm[1.310], edwin/calias.scm[1.24], edwin/clscon.scm[1.8], edwin/clsmac.scm[1.8], edwin/comman.scm[1.86], edwin/comwin.scm[1.147], edwin/dosproc.scm[1.8], edwin/edtfrm.scm[1.91], edwin/edwin.pkg[1.280], edwin/macros.scm[1.71], edwin/modes.scm[1.35], edwin/modwin.scm[1.42], edwin/regexp.scm[1.78], edwin/schmod.scm[1.59], edwin/search.scm[1.154], edwin/syntax.scm[1.89], edwin/tterm.scm[1.33], edwin/utils.scm[1.51], edwin/utlwin.scm[1.60], edwin/window.scm[1.160], edwin/xcom.scm[1.20], edwin/xform.scm[1.12], microcode/cmpintmd/i386.h[1.35], microcode/os2pm.scm[1.11], microcode/utabmd.scm[9.83], runtime/Attic/illdef.scm[1.6], runtime/Attic/macros.scm[1.7], runtime/Attic/syntab.scm[14.10], runtime/Attic/syntax.scm[14.53], runtime/apply.scm[1.5], runtime/arith.scm[1.49], runtime/debug.scm[14.43], runtime/defstr.scm[14.38], runtime/ed-ffi.scm[1.32], runtime/error.scm[14.57], runtime/graphics.scm[1.20], runtime/infstr.scm[1.14], runtime/list.scm[14.30], runtime/make.scm[14.84], runtime/mit-syntax.scm[14.1], runtime/os2winp.scm[1.18], runtime/parse.scm[14.36], runtime/parser-buffer.scm[1.3], runtime/port.scm[1.22], runtime/recslot.scm[1.7], runtime/rgxcmp.scm[1.119], runtime/runtime.pkg[14.407], runtime/scomb.scm[14.19], runtime/starbase.scm[1.16], runtime/string.scm[14.47], runtime/syntactic-closures.scm[14.1], runtime/syntax-check.scm[14.1], runtime/syntax-output.scm[14.1], runtime/syntax-rules.scm[14.1], runtime/syntax-transforms.scm[14.1], runtime/sysmac.scm[14.8], runtime/unsyn.scm[14.28], runtime/vector.scm[14.20], runtime/version.scm[14.206], sf/make.scm[4.41], sf/object.scm[4.13], sf/sf.pkg[4.17], sf/toplev.scm[4.23], sos/class.scm[1.12], sos/instance.scm[1.14], sos/macros.scm[1.13], star-parser/Attic/synchk.scm[1.2], star-parser/compile.scm[1.5], star-parser/load.scm[1.12], star-parser/matcher.scm[1.29], star-parser/parser.pkg[1.18], star-parser/parser.scm[1.32], star-parser/shared.scm[1.23], swat/scheme/control-floating-errors.scm[1.4], swat/scheme/load.scm[1.8], swat/scheme/mit-xhooks.scm[1.5], swat/scheme/scc-macros.scm[1.4], wabbit/test-wabbit.scm[1.4], win32/ffimacro.scm[1.6], win32/win32.sf[1.9], win32/win_ffi.scm[1.9]: Merge hygienic-macros branch into trunk. 2002-02-02 Chris Hanson * edwin/macros.scm[1.70.2.1], swat/scheme/control-floating-errors.scm[1.3.2.1], swat/scheme/load.scm[1.7.2.1], swat/scheme/mit-xhooks.scm[1.4.2.1], swat/scheme/scc-macros.scm[1.3.2.1], wabbit/test-wabbit.scm[1.3.2.1]: Eliminate non-hygienic macros. * edwin/comman.scm[1.85.6.3], edwin/comman.scm[1.85.6.2]: Extend MAKE-VARIABLE to accept arguments that initialize the remaining record fields. * edwin/comman.scm[1.85.6.1], edwin/edwin.pkg[1.279.2.2], edwin/modes.scm[1.34.6.1]: Eliminate CANONICALIZE-NAME. 2002-02-01 Chris Hanson * sf/sf.pkg[4.16.2.2], sf/toplev.scm[4.22.2.2], win32/win32.sf[1.8.2.1]: Rip out remaining pathname-map stuff. It's nearly impossible to make this work right. * 6001/arith.scm[1.8.2.1], edwin/buffer.scm[1.184.2.1], edwin/calias.scm[1.23.2.1], edwin/dosproc.scm[1.7.2.1], edwin/regexp.scm[1.77.2.1], edwin/search.scm[1.153.2.1], edwin/syntax.scm[1.88.2.1], edwin/tterm.scm[1.32.2.1], edwin/utils.scm[1.50.2.1], edwin/xcom.scm[1.19.2.1], microcode/os2pm.scm[1.10.2.1], microcode/utabmd.scm[9.82.2.1], runtime/apply.scm[1.4.2.1], runtime/arith.scm[1.48.2.1], runtime/debug.scm[14.42.2.1], runtime/error.scm[14.56.2.1], runtime/graphics.scm[1.19.2.1], runtime/infstr.scm[1.13.2.1], runtime/list.scm[14.29.2.1], runtime/make.scm[14.83.2.5], runtime/os2winp.scm[1.17.2.1], runtime/parse.scm[14.35.2.1], runtime/parser-buffer.scm[1.2.2.1], runtime/port.scm[1.21.2.1], runtime/recslot.scm[1.6.2.1], runtime/rgxcmp.scm[1.118.2.1], runtime/scomb.scm[14.18.2.1], runtime/starbase.scm[1.15.2.1], runtime/string.scm[14.46.2.1], runtime/sysmac.scm[14.7.2.1], runtime/vector.scm[14.19.2.1], sf/object.scm[4.12.2.1], win32/ffimacro.scm[1.5.2.1], win32/win_ffi.scm[1.8.2.1]: Eliminate non-hygienic macros. 2002-01-31 Chris Hanson * sos/macros.scm[1.12.2.2]: Fix thinko with reversed arguments to IDENTIFIER=?. * star-parser/Attic/synchk.scm[1.1.6.1], star-parser/compile.scm[1.4.6.1], star-parser/load.scm[1.11.6.1], star-parser/matcher.scm[1.28.2.1], star-parser/parser.pkg[1.17.2.1], star-parser/parser.scm[1.31.2.1], star-parser/shared.scm[1.22.2.1]: Update for new syntax engine. * runtime/syntax-output.scm[1.1.2.8], runtime/syntax-output.scm[1.1.2.7]: Add back optimization that renames LAMBDA expressions bound by top-level definitions. 2002-01-29 Chris Hanson * microcode/makegen/Makefile.in.in[1.17.2.3], microcode/makegen/Makefile.in.in[1.20], microcode/makegen/Makefile.in.in[1.17.2.2], microcode/makegen/Makefile.in.in[1.19], microcode/utabmd.sh[1.1.2.2], microcode/utabmd.sh[1.2], microcode/utabmd.sh[1.1.2.1], microcode/utabmd.sh[1.1]: Use SCHEME_COMPILER variable to allow end-user override. * microcode/configure.in[11.13.2.2], microcode/configure.in[11.15]: In socklen_t test, must include also. * microcode/tterm.c[1.12.2.1], microcode/tterm.c[1.13]: Undefine false and true prior to including , to work around bug in recent versions of ncurses. * microcode/confshared.h[11.1.2.2], microcode/confshared.h[11.3]: Don't use ; it is incompatible with older versions of ncurses. * microcode/configure.in[11.13.2.1], microcode/configure.in[11.14], microcode/confshared.h[11.1.2.1], microcode/confshared.h[11.2]: Fix problem: don't define true and false if exists, because the GNU version of breaks in that case. Instead just use to make the definitions. * edwin/xterm.scm[1.68]: Add support for cut/paste to "clipboard", which seems to be new standard. * Makefile.in[1.19], Makefile.in[1.18.2.1], etc/compile.sh[1.2], etc/compile.sh[1.1.2.1]: Add shell script with environment variable that can be used to override the default Scheme compiler. * etc/compile.sh[1.1]: file compile.sh was initially added on branch release-7-6. 2002-01-28 Chris Hanson * runtime/version.scm[14.205]: Update release version to reflect that next release will be 7.7.0 rather than 7.6.1. 2002-01-27 Chris Hanson * win32/dibutils/makefile.msc[1.3.2.1], win32/dibutils/makefile.msc[1.4], win32/dibutils/makefile.wcc[1.3.2.1], win32/dibutils/makefile.wcc[1.4]: Fix typo. * etc/optiondb.scm[1.8.2.1]: Fix bug: package name for SOS was wrong. * runtime/version.scm[14.202.2.1]: Update version number for release. 2002-01-26 Chris Hanson * runtime/defstr.scm[14.37.2.5], runtime/runtime.pkg[14.406.2.9], runtime/syntactic-closures.scm[1.1.2.13]: Rename GENERATE-SYNTHETIC-IDENTIFIER to MAKE-SYNTHETIC-IDENTIFIER. * runtime/syntactic-closures.scm[1.1.2.12]: Don't elide syntactic closure when the form being closed is an identifier, because the closure might be a synthetic identifier. 2002-01-22 Chris Hanson * etc/optiondb.scm[1.8.6.1], etc/optiondb.scm[1.9]: Fix bug: package name for SOS was wrong. * sos/class.scm[1.11.2.1], sos/instance.scm[1.13.2.1], sos/macros.scm[1.12.2.1]: Initial rewrite of macros to use syntactic closures. Code compiles and a few simple expressions have been tested. * runtime/runtime.pkg[14.406.2.8]: Export PARSE-MIT-LAMBDA-LIST. * runtime/syntactic-closures.scm[1.1.2.11]: Change MAKE-SYNTACTIC-CLOSURE to avoid closing more things. This will reduce consing and simplify debugging of macros. * runtime/runtime.pkg[14.406.2.7], runtime/syntactic-closures.scm[1.1.2.10]: Delete unused definition of MAKE-SYNTACTIC-CLOSURE-LIST. Add new procedure CLOSE-SYNTAX. Change STRIP-SYNTACTIC-CLOSURES; it doesn't need to traverse vectors. * runtime/syntax-check.scm[1.1.2.2]: Allow arbitrary pattern-matching elements in SYNTAX-MATCH?. 2002-01-19 Chris Hanson * runtime/ed-ffi.scm[1.31.2.1]: Change list to delete old files and add new ones. * runtime/syntax-output.scm[1.1.2.6]: Enhance OUTPUT/TOP-LEVEL-SEQUENCE to avoid making open blocks for simple expressions. * runtime/syntactic-closures.scm[1.1.2.9]: Simplify structure of top-level entry points to syntax engine. * edwin/bufwin.scm[1.309.6.2]: Fix bug: BUFFER-WINDOW/SET-BUFFER! must not call SET-NEW-COORDINATES! unless the window has a known size. * edwin/clscon.scm[1.7.6.2], edwin/clscon.scm[1.7.6.1]: Mak sure that structure-type names are in the numerical order. 2002-01-18 Chris Hanson * edwin/buffrm.scm[1.58.6.1], edwin/bufwin.scm[1.309.6.1], edwin/clsmac.scm[1.7.2.2], edwin/comwin.scm[1.146.6.1], edwin/edtfrm.scm[1.90.6.1], edwin/edwin.pkg[1.279.2.1], edwin/modwin.scm[1.41.6.1], edwin/utlwin.scm[1.59.6.1], edwin/window.scm[1.159.6.1], edwin/xform.scm[1.11.2.1]: Implement WITH-INSTANCE-VARIABLES as a compiler item, using internal features of the syntax engine. Rename => to ==> to avoid conflict with => keyword used by COND; rename USUAL=> to USUAL==> for consistency. * runtime/defstr.scm[14.37.2.4]: Fix thinko in NAMED option. * runtime/runtime.pkg[14.406.2.6]: Export ILL-FORMED-SYNTAX. * runtime/syntax-rules.scm[1.1.2.2]: Add declarations to prevent compiler warnings. * edwin/clsmac.scm[1.7.2.1]: Mostly rewrite this using new syntax. But WITH-INSTANCE-VARIABLES not rewritten -- it is a terrible kludge and pretty hopeless. * edwin/schmod.scm[1.58.2.1]: Add indentation rules for new syntax. * runtime/runtime.pkg[14.406.2.5], runtime/syntactic-closures.scm[1.1.2.8], runtime/syntax-output.scm[1.1.2.5]: Export CALL-WITH-SYNTAX-ERROR-PROCEDURE, and generalize the argument structure to the error procedure. * runtime/runtime.pkg[14.406.2.4]: Export SYNTAX-MATCH? for use in macros. * runtime/make.scm[14.83.2.4], runtime/mit-syntax.scm[1.1.2.11], runtime/syntactic-closures.scm[1.1.2.7], runtime/syntax-transforms.scm[1.1.2.2]: Fix runtime code generated for top-level macro transformers. These were being stored in the environment as procedures when they were supposed to be stored as expander items. * compiler/base/macros.scm[4.22.2.3]: Fix typo in DEFINE-EXPORT. * runtime/mit-syntax.scm[1.1.2.10]: Fix thinko in binding of syntactic keywords. * runtime/unsyn.scm[14.27.2.1]: Fix broken unsyntaxing of DEFINE-SYNTAX. * compiler/base/macros.scm[4.22.2.2]: Convert the PACKAGE macro to RSC format. * compiler/base/constr.scm[1.3.6.1]: Add USUAL-INTEGRATIONS declaration. * runtime/mit-syntax.scm[1.1.2.9]: Allow INTEGRATE-EXTERNAL declaration to take pathname objects as well as strings. 2002-01-17 Chris Hanson * runtime/defstr.scm[14.37.2.3]: Make sure that the ACCESS keyword is closed in the right environment. * runtime/syntax-transforms.scm[1.1]: file syntax-transforms.scm was initially added on branch hygienic-macros. * runtime/make.scm[14.83.2.3], runtime/mit-syntax.scm[1.1.2.8], runtime/runtime.pkg[14.406.2.3], runtime/syntax-transforms.scm[1.1.2.1]: Move the TRANSFORMER->EXPANDER procedures into a separate file that is loaded early during the cold load. These are needed by any top-level macro definitions in the runtime system. * runtime/make.scm[14.83.2.2]: Eliminate use of CASE in cold load. New syntaxer expands this into calls to MEMV, which isn't available. * runtime/mit-syntax.scm[1.1.2.7], runtime/syntactic-closures.scm[1.1.2.6], runtime/syntax-output.scm[1.1.2.4], runtime/syntax-output.scm[1.1.2.3]: Rework the handling of definitions, LAMBDA bodies, and LETREC. This now emits code using open blocks and internal definitions, because the compiler (and SF) expect it to be in that form. * runtime/mit-syntax.scm[1.1.2.6], runtime/syntactic-closures.scm[1.1.2.5]: Fix harmless typo. * runtime/syntax-output.scm[1.1.2.2]: Fix thinko in generation of LETREC code. * runtime/mit-syntax.scm[1.1.2.5], runtime/syntactic-closures.scm[1.1.2.4]: Rework the handling of LET-SYNTAX and LETREC-SYNTAX so that definitions appearing in their bodies are defined in the enclosing definition environment rather than internally. * runtime/mit-syntax.scm[1.1.2.4]: Allow INTEGRATE-EXTERNAL declaration to specify multiple files. * runtime/mit-syntax.scm[1.1.2.3], runtime/syntactic-closures.scm[1.1.2.3]: Add delay to processing of declaration texts, so that they can contain forward references to definitions. 2002-01-16 Chris Hanson * compiler/base/macros.scm[4.22.2.1], compiler/machines/i386/compiler.pkg[1.27.2.1]: Eliminate dependence of DEFINE-EXPORT on now-obsolete PARSE-DEFINE-SYNTAX. * runtime/mit-syntax.scm[1.1.2.2], runtime/runtime.pkg[14.406.2.2], runtime/syntactic-closures.scm[1.1.2.2]: Rework handling of bodies to prevent premature reference to internal definitions. Add bootstrapping kludge that converts old-style macro transformers into items on the fly. Implement "reversed" syntactic-closure transformers. * runtime/defstr.scm[14.37.2.2]: Fix bugs: Slot default wasn't being closed right; type-name and tag-expression were being reversed. 2002-01-15 Chris Hanson * microcode/cmpintmd/i386.h[1.34.2.1]: Eliminate unneeded declaration of `ia32_cpuid_needed'. * sf/make.scm[4.40.2.1], sf/sf.pkg[4.16.2.1], sf/toplev.scm[4.22.2.1]: Changes needed to support new syntax engine. * runtime/syntactic-closures.scm[1.1]: file syntactic-closures.scm was initially added on branch hygienic-macros. * runtime/syntax-check.scm[1.1]: file syntax-check.scm was initially added on branch hygienic-macros. * runtime/syntax-output.scm[1.1]: file syntax-output.scm was initially added on branch hygienic-macros. * runtime/syntax-rules.scm[1.1]: file syntax-rules.scm was initially added on branch hygienic-macros. * runtime/Attic/illdef.scm[1.5.2.1], runtime/Attic/macros.scm[1.6.2.1], runtime/Attic/syntab.scm[14.9.2.1], runtime/Attic/syntax.scm[14.52.2.1], runtime/defstr.scm[14.37.2.1], runtime/make.scm[14.83.2.1], runtime/mit-syntax.scm[1.1.2.1], runtime/runtime.pkg[14.406.2.1], runtime/syntactic-closures.scm[1.1.2.1], runtime/syntax-check.scm[1.1.2.1], runtime/syntax-output.scm[1.1.2.1], runtime/syntax-rules.scm[1.1.2.1], runtime/version.scm[14.204.2.1]: Initial integration of new syntax engine. Complete rewrite of DEFINE-STRUCTURE expander. * runtime/mit-syntax.scm[1.1]: file mit-syntax.scm was initially added on branch hygienic-macros. 2002-01-14 Chris Hanson * microcode/makegen/Makefile.in.in[1.17.2.1]: Fix default target; it wasn't including everything. * microcode/cmpauxmd/i386.m4[1.50.6.1]: Add explicit cache synchronization support to work around a bug in the Athlon. Remove support for DOS and HACK_SEGMENT_REGS. * compiler/base/make.scm[4.115.2.1], compiler/machines/i386/dassm3.scm[1.6.2.1], compiler/machines/i386/instr1.scm[1.11.2.1], compiler/machines/i386/lapgen.scm[1.27.2.1], compiler/machines/i386/rules3.scm[1.34.2.1], microcode/cmpintmd/i386.h[1.32.2.1], microcode/version.h[11.181.2.1]: Add explicit cache synchronization support to work around a bug in the Athlon. 2002-01-12 Chris Hanson * imail/todo.txt[1.136]: Add note about Hal's suggestion to overload o to subsume M-o. * runtime/defstr.scm[14.37], runtime/make.scm[14.83], runtime/record.scm[1.29], runtime/runtime.pkg[14.406]: Move runtime support for DEFINE-STRUCTURE into "record.scm", in order to simplify the boot sequence. This allows "defstr.scm" to move late into the boot sequence and to use the record abstraction without complicated tricks. 2002-01-09 Chris Hanson * sf/sf.pkg[4.16], sf/toplev.scm[4.22]: Change remaining "syntax-table" references to "environment". Delete unused procedure SF/SET-FILE-SYNTAX-TABLE!. 2002-01-08 Chris Hanson * runtime/urtrap.scm[14.13]: Fix naming issue right (?). * runtime/urtrap.scm[14.12]: If reference trap has no name, print its number. 2002-01-07 Chris Hanson * runtime/uenvir.scm[14.53]: Must do reference-trap mapping when looking things up in compiled-code environments. * edwin/debug.scm[1.62]: Don't ever list bindings for packages. * edwin/debug.scm[1.61]: Fix problem: only one of the places that prints bindings knew about syntactic keywords. * runtime/urtrap.scm[14.11]: Change representation of reference trap to show kind name rather than number. * edwin/debug.scm[1.60]: Use new environment-abstraction design to clean up debugger access to environments. * runtime/error.scm[14.56], runtime/runtime.pkg[14.405], runtime/uenvir.scm[14.52]: Redesign way that macros are integrated into environments. Syntactic keywords are now considered bound, but ordinary variable-reference operations signal errors on those bindings; but each of the definition operations can be used to modify either kind of binding. New procedure ENVIRONMENT-DEFINABLE? can be used to determine if a definition is allowed on a particular environment; currently it is false on compiled-code environments. New procedures ENVIRONMENT-REFERENCE-TYPE and ENVIRONMENT-SAFE-LOOKUP provide very flexible mechanisms for determining what is contained in an environment or binding without generating errors. 2002-01-05 Chris Hanson * runtime/dbgutl.scm[14.21]: Handle case where binding is a syntactic keyword. * runtime/xeval.scm[1.9], runtime/xeval.scm[1.8]: Rename ENVIRONMENT-WHICH-BINDS to ENVIRONMENT-THAT-BINDS. * runtime/unpars.scm[14.50]: Don't unparse environments specially. 2002-01-04 Chris Hanson * runtime/runtime.pkg[14.404], runtime/uenvir.scm[14.51]: New procedure GUARANTEE-ENVIRONMENT. 2001-12-29 Chris Hanson * runtime/Attic/syntax.scm[14.52]: Oops... last revision deleted a little too much. 2001-12-24 Chris Hanson * runtime/Attic/syntax.scm[14.51]: Eliminate deep-binding FLUID-LET. * compiler/etc/comcmp.scm[1.10], runtime/Attic/syntax.scm[14.50], runtime/unsyn.scm[14.27]: Eliminate references to UNASSIGNED?. 2001-12-23 Chris Hanson * microcode/lookprm.c[1.19], microcode/lookprm.c[1.18]: Fix missing string line terminators. * 6001/arith.scm[1.8], compiler/back/asmmac.scm[1.10], compiler/back/lapgn3.scm[4.14], compiler/base/crsend.scm[1.12], compiler/base/lvalue.scm[4.24], compiler/base/macros.scm[4.22], compiler/base/scode.scm[4.13], compiler/base/utils.scm[4.23], compiler/etc/comcmp.scm[1.9], compiler/fggen/canon.scm[1.20], compiler/fggen/fggen.scm[4.35], compiler/machines/alpha/inerly.scm[1.6], compiler/machines/alpha/insmac.scm[1.4], compiler/machines/bobcat/inerly.scm[1.11], compiler/machines/bobcat/insmac.scm[1.129], compiler/machines/i386/assmd.scm[1.5], compiler/machines/i386/dassm1.scm[1.12], compiler/machines/i386/dassm2.scm[1.11], compiler/machines/i386/dassm3.scm[1.9], compiler/machines/i386/inerly.scm[1.7], compiler/machines/i386/insmac.scm[1.13], compiler/machines/i386/instr1.scm[1.15], compiler/machines/i386/instr2.scm[1.9], compiler/machines/i386/instrf.scm[1.17], compiler/machines/i386/lapgen.scm[1.30], compiler/machines/i386/rules3.scm[1.37], compiler/machines/i386/rulfix.scm[1.33], compiler/machines/i386/rulflo.scm[1.24], compiler/machines/mips/inerly.scm[1.6], compiler/machines/mips/insmac.scm[1.5], compiler/machines/sparc/inerly.scm[1.6], compiler/machines/sparc/insmac.scm[1.4], compiler/machines/spectrum/inerly.scm[1.6], compiler/machines/spectrum/insmac.scm[1.5], compiler/machines/spectrum/instr2.scm[1.10], compiler/machines/vax/dsyn.scm[1.11], compiler/machines/vax/inerly.scm[1.10], compiler/machines/vax/insmac.scm[1.15], compiler/machines/vax/instr1.scm[1.9], compiler/machines/vax/instr2.scm[1.9], compiler/machines/vax/instr3.scm[1.13], compiler/rtlbase/rtlreg.scm[4.8], compiler/rtlbase/valclass.scm[1.4], edwin/buffer.scm[1.184], edwin/calias.scm[1.23], edwin/clsmac.scm[1.7], edwin/dosproc.scm[1.7], edwin/macros.scm[1.70], edwin/regexp.scm[1.77], edwin/search.scm[1.153], edwin/syntax.scm[1.88], edwin/tterm.scm[1.32], edwin/utils.scm[1.50], edwin/xcom.scm[1.19], microcode/os2pm.scm[1.10], microcode/utabmd.scm[9.82], runtime/apply.scm[1.4], runtime/arith.scm[1.48], runtime/debug.scm[14.42], runtime/defstr.scm[14.36], runtime/error.scm[14.55], runtime/graphics.scm[1.19], runtime/infstr.scm[1.13], runtime/list.scm[14.29], runtime/make.scm[14.82], runtime/os2winp.scm[1.17], runtime/parse.scm[14.35], runtime/parser-buffer.scm[1.2], runtime/port.scm[1.21], runtime/recslot.scm[1.6], runtime/rgxcmp.scm[1.118], runtime/runtime.pkg[14.403], runtime/scomb.scm[14.18], runtime/starbase.scm[1.15], runtime/string.scm[14.46], runtime/sysmac.scm[14.7], runtime/vector.scm[14.19], sf/object.scm[4.12], sos/class.scm[1.11], sos/instance.scm[1.13], sos/load.scm[1.10], sos/macros.scm[1.12], sos/sos.pkg[1.11], star-parser/matcher.scm[1.28], star-parser/parser.pkg[1.17], star-parser/parser.scm[1.31], swat/scheme/control-floating-errors.scm[1.3], swat/scheme/load.scm[1.7], swat/scheme/mit-xhooks.scm[1.4], swat/scheme/scc-macros.scm[1.3], swat/scheme/uitk-macros.scm[1.2], wabbit/test-wabbit.scm[1.3], win32/dib.scm[1.5], win32/ffimacro.scm[1.5], win32/make.scm[1.9], win32/win32.pkg[1.15], win32/win32.sf[1.8], win32/win_ffi.scm[1.8], win32/wingdi.scm[1.3], win32/winnt.scm[1.3], win32/winuser.scm[1.3], win32/wt_user.scm[1.6]: Eliminate all references to SYNTAX-TABLE/DEFINE. Wrap all macros with new procedure NON-HYGIENIC-MACRO-TRANSFORMER; this will serve as a marker for identifying macros that need to be rewritten. 2001-12-22 Chris Hanson * compiler/base/macros.scm[4.21], compiler/machines/i386/compiler.pkg[1.27], compiler/machines/i386/compiler.sf[1.18], edwin/edwin.ldr[1.73], edwin/macros.scm[1.69]: Store macro definitions in environments rather than in syntax tables. * runtime/Attic/syntax.scm[14.49], runtime/runtime.pkg[14.402], runtime/unsyn.scm[14.26], runtime/urtrap.scm[14.10]: Fix problem: DEFINE-SYNTAX was expanding into a fixed reference trap in which the SCode lambda was inserted; it must instead expand into an expression that evaluates the lambda and wraps it in a reference trap. 2001-12-21 Chris Hanson * sf/toplev.scm[4.21]: Eliminate reference to SYNTAX-TABLE?. * compiler/base/toplev.scm[4.62]: Eliminate reference to GUARANTEE-SYNTAX-TABLE. * sf/toplev.scm[4.20]: Eliminate references to MAKE-SYNTAX-TABLE. * compiler/machines/vax/dsyn.scm[1.10], edwin/clsmac.scm[1.6], edwin/edwin.pkg[1.279], edwin/macros.scm[1.68], runtime/Attic/macros.scm[1.6], runtime/Attic/syntab.scm[14.9], runtime/Attic/syntax.scm[14.48], runtime/defstr.scm[14.35], runtime/make.scm[14.81], runtime/make.scm[14.80], runtime/runtime.pkg[14.401], runtime/runtime.pkg[14.400], runtime/sysmac.scm[14.6], runtime/uenvir.scm[14.50], runtime/unsyn.scm[14.25], runtime/urtrap.scm[14.9], sf/pardec.scm[4.14], sf/sf.pkg[4.15]: Store macro definitions in environments rather than in syntax tables. * microcode/lookup.c[9.68]: Fix bug: looking up a macro returns the trap, not the transformer. * runtime/Attic/syntax.scm[14.47], runtime/make.scm[14.79], runtime/runtime.pkg[14.399], runtime/uenvir.scm[14.49]: Change DEFINE-SYNTAX so that it emits code to define the macro at run time when written at top level. * microcode/errors.h[9.44], microcode/lookprm.c[1.17], microcode/lookup.c[9.67], microcode/sdata.h[9.39], microcode/trap.h[9.49], microcode/utabmd.scm[9.81], microcode/version.h[11.183], runtime/error.scm[14.54], runtime/runtime.pkg[14.398], runtime/uenvir.scm[14.48], runtime/uerror.scm[14.50], runtime/urtrap.scm[14.8]: Implement support for storing macro transformers in environments. * runtime/make.scm[14.78], runtime/runtime.pkg[14.397]: Fix problem: this file was being syntaxed in the (RUNTIME) package but loaded into the () package; it needed on the macros in (RUNTIME). Also add this file to the package description, so that its bindings are visible. * runtime/global.scm[14.57]: Fix comment. 2001-12-20 Chris Hanson * 6001/arith.scm[1.7], compiler/back/lapgn3.scm[4.13], compiler/base/crsend.scm[1.11], compiler/base/lvalue.scm[4.23], compiler/base/scode.scm[4.12], compiler/base/utils.scm[4.22], compiler/fggen/canon.scm[1.19], compiler/fggen/fggen.scm[4.34], compiler/machines/C/lapgen.scm[1.13], compiler/machines/C/rules3.scm[1.10], compiler/machines/C/rulfix.scm[1.4], compiler/machines/C/rulflo.scm[1.6], compiler/machines/alpha/assmd.scm[1.3], compiler/machines/alpha/dassm1.scm[1.3], compiler/machines/alpha/dassm2.scm[1.3], compiler/machines/alpha/instr1.scm[1.5], compiler/machines/alpha/instr2.scm[1.3], compiler/machines/alpha/instr3.scm[1.3], compiler/machines/alpha/lapgen.scm[1.8], compiler/machines/alpha/rules3.scm[1.9], compiler/machines/alpha/rulflo.scm[1.5], compiler/machines/bobcat/assmd.scm[1.38], compiler/machines/bobcat/dassm1.scm[4.21], compiler/machines/bobcat/dassm2.scm[4.24], compiler/machines/bobcat/flinstr1.scm[1.3], compiler/machines/bobcat/flinstr2.scm[1.3], compiler/machines/bobcat/instr2.scm[1.20], compiler/machines/bobcat/instr3.scm[1.19], compiler/machines/bobcat/instr4.scm[1.5], compiler/machines/bobcat/lapgen.scm[4.52], compiler/machines/bobcat/machin.scm[4.33], compiler/machines/bobcat/rules3.scm[4.42], compiler/machines/i386/assmd.scm[1.4], compiler/machines/i386/dassm1.scm[1.11], compiler/machines/i386/dassm2.scm[1.10], compiler/machines/i386/dassm3.scm[1.8], compiler/machines/i386/instr1.scm[1.14], compiler/machines/i386/instr2.scm[1.8], compiler/machines/i386/instrf.scm[1.16], compiler/machines/i386/lapgen.scm[1.29], compiler/machines/i386/rules3.scm[1.36], compiler/machines/i386/rulfix.scm[1.32], compiler/machines/i386/rulflo.scm[1.23], compiler/machines/mips/assmd.scm[1.4], compiler/machines/mips/dassm1.scm[1.6], compiler/machines/mips/dassm2.scm[1.6], compiler/machines/mips/instr1.scm[1.8], compiler/machines/mips/instr2a.scm[1.6], compiler/machines/mips/instr2b.scm[1.5], compiler/machines/mips/instr3.scm[1.4], compiler/machines/mips/lapgen.scm[1.17], compiler/machines/mips/mips.scm[1.3], compiler/machines/mips/rules3.scm[1.19], compiler/machines/mips/rulflo.scm[1.9], compiler/machines/sparc/assmd.scm[1.3], compiler/machines/sparc/instr1.scm[1.3], compiler/machines/sparc/instr2a.scm[1.3], compiler/machines/sparc/instr2b.scm[1.3], compiler/machines/sparc/instr3.scm[1.3], compiler/machines/sparc/lapgen.scm[1.4], compiler/machines/sparc/rules3.scm[1.3], compiler/machines/sparc/rulflo.scm[1.3], compiler/machines/spectrum/assmd.scm[1.32], compiler/machines/spectrum/dassm1.scm[4.21], compiler/machines/spectrum/dassm2.scm[4.22], compiler/machines/spectrum/instr1.scm[1.5], compiler/machines/spectrum/instr2.scm[1.9], compiler/machines/spectrum/instr3.scm[1.4], compiler/machines/spectrum/lapgen.scm[4.49], compiler/machines/spectrum/rules3.scm[4.43], compiler/machines/spectrum/rulfix.scm[4.49], compiler/machines/spectrum/rulflo.scm[4.41], compiler/machines/vax/assmd.scm[4.8], compiler/machines/vax/dassm1.scm[4.8], compiler/machines/vax/dassm2.scm[4.14], compiler/machines/vax/instr2.scm[1.8], compiler/machines/vax/instr3.scm[1.12], compiler/machines/vax/lapgen.scm[4.17], compiler/machines/vax/rules3.scm[4.13], compiler/machines/vax/rulfix.scm[1.7], compiler/rtlbase/rtlreg.scm[4.7], edwin/buffer.scm[1.183], edwin/calias.scm[1.22], edwin/dosproc.scm[1.6], edwin/schmod.scm[1.58], edwin/search.scm[1.152], edwin/tterm.scm[1.31], runtime/Attic/syntax.scm[14.46], runtime/apply.scm[1.3], runtime/arith.scm[1.47], runtime/graphics.scm[1.18], runtime/infstr.scm[1.12], runtime/list.scm[14.28], runtime/scomb.scm[14.17], runtime/starbase.scm[1.14], runtime/vector.scm[14.18], sf/object.scm[4.11], sos/class.scm[1.10], swat/scheme/mit-xhooks.scm[1.3], wabbit/test-wabbit.scm[1.2]: Eliminate MACRO special form. * compiler/base/utils.scm[4.21], compiler/etc/comcmp.scm[1.8], compiler/machines/i386/instr1.scm[1.13], compiler/machines/i386/instr2.scm[1.7], compiler/machines/i386/instrf.scm[1.15], compiler/machines/spectrum/instr2.scm[1.8], compiler/machines/vax/instr1.scm[1.8], compiler/machines/vax/instr2.scm[1.7], compiler/machines/vax/instr3.scm[1.11], edwin/regexp.scm[1.76], edwin/search.scm[1.151], edwin/syntax.scm[1.87], edwin/utils.scm[1.49], microcode/os2pm.scm[1.9], microcode/utabmd.scm[9.80], runtime/Attic/syntax.scm[14.45], runtime/arith.scm[1.46], runtime/debug.scm[14.41], runtime/error.scm[14.53], runtime/os2winp.scm[1.16], runtime/parse.scm[14.34], runtime/recslot.scm[1.5], runtime/rgxcmp.scm[1.117], sos/instance.scm[1.12], star-parser/matcher.scm[1.27], star-parser/parser.scm[1.30], swat/scheme/control-floating-errors.scm[1.2], win32/win_ffi.scm[1.7]: Eliminate DEFINE-MACRO special form. * runtime/Attic/syntax.scm[14.44]: Eliminate definition of SCODE-QUOTE. * runtime/unsyn.scm[14.24]: Fix over-long lines. * compiler/back/syntax.scm[1.28], runtime/make.scm[14.77], runtime/make.scm[14.76], sf/usiexp.scm[4.41]: Eliminate references to THE-ENVIRONMENT. * compiler/etc/disload.scm[1.11], compiler/fggen/canon.scm[1.18], edwin/schmod.scm[1.57], runtime/Attic/macros.scm[1.5], runtime/Attic/syntax.scm[14.43], runtime/infutl.scm[1.66], runtime/runtime.pkg[14.396], runtime/unsyn.scm[14.23], sf/gconst.scm[4.27]: Eliminate references to MAKE-ENVIRONMENT. * 6001/make.scm[15.33], compiler/base/scode.scm[4.11], compiler/fggen/canon.scm[1.17], compiler/fggen/fggen.scm[4.33], compiler/rtlopt/rdebug.scm[1.4], cref/anfile.scm[1.7], edwin/artdebug.scm[1.30], edwin/debug.scm[1.59], edwin/kmacro.scm[1.44], edwin/schmod.scm[1.56], imail/fake-env.scm[1.5], pcsample/load.scm[1.6], runtime/Attic/illdef.scm[1.5], runtime/Attic/syntax.scm[14.42], runtime/codwlk.scm[14.4], runtime/pp.scm[14.43], runtime/prgcop.scm[1.7], runtime/runtime.pkg[14.395], runtime/runtime.pkg[14.394], runtime/scode.scm[14.17], runtime/thread.scm[1.35], runtime/unsyn.scm[14.22], runtime/xeval.scm[1.7], sf/cgen.scm[4.5], sf/chtype.scm[4.4], sf/copy.scm[4.6], sf/free.scm[4.4], sf/object.scm[4.10], sf/sf.sf[4.11], sf/subst.scm[4.17], sf/xform.scm[4.11], sos/macros.scm[1.11], star-parser/shared.scm[1.22], swat/scheme/load.scm[1.6], swat/scheme/mit-xhooks.scm[1.2], win32/wt_user.scm[1.5]: Eliminate IN-PACKAGE and USING-SYNTAX special forms. * runtime/Attic/syntab.scm[14.8], runtime/Attic/syntax.scm[14.41], runtime/runtime.pkg[14.393], sicp/studen.scm[1.11]: Eliminate references to SYNTAX-TABLE-DEFINE and SYNTAX-TABLE-REF. * rcs/compile.scm[1.4], runtime/Attic/macros.scm[1.4], runtime/Attic/syntax.scm[14.40], runtime/defstr.scm[14.34], runtime/runtime.pkg[14.392], sf/pardec.scm[4.13], sf/toplev.scm[4.19], sicp/strmac.scm[1.3], sos/load.scm[1.9], star-parser/ed-ffi.scm[1.5], star-parser/matcher.scm[1.26], star-parser/parser.pkg[1.16], star-parser/parser.scm[1.29], swat/scheme/scc-macros.scm[1.2], win32/ffimacro.scm[1.4], xml/ed-ffi.scm[1.4], xml/xml.pkg[1.9]: Eliminate references to SYSTEM-GLOBAL-SYNTAX-TABLE. * compiler/machines/i386/compiler.sf[1.17]: Fix bug: compiler was being syntaxed in wrong environment. * compiler/base/macros.scm[4.20]: Fix missing bindings for UCODE-PRIMITIVE and UCODE-TYPE. * compiler/base/macros.scm[4.19], compiler/base/macros.scm[4.18]: Fix problem caused by SCode-manipulating macro being closed in compiler environment. * cref/cref.sf[1.15]: Fix dangling reference to SF/SET-DEFAULT-SYNTAX-TABLE!. * 6001/6001.pkg[1.14], 6001/6001.sf[1.13], 6001/pic-ops.scm[1.6], 6001/pic-read.scm[1.6], 6001/pic-reco.scm[1.8], 6001/picture.scm[1.30], sos/instance.scm[1.11], win32/win32.pkg[1.14]: Eliminate references to SYNTAX-TABLE/SYSTEM-INTERNAL. * compiler/base/switch.scm[4.26], compiler/machines/C/compiler.pkg[1.12], compiler/machines/C/decls.scm[1.6], compiler/machines/alpha/compiler.pkg[1.15], compiler/machines/alpha/compiler.sf[1.10], compiler/machines/alpha/decls.scm[1.8], compiler/machines/bobcat/compiler.pkg[1.52], compiler/machines/bobcat/compiler.sf[1.22], compiler/machines/bobcat/decls.scm[4.39], compiler/machines/i386/compiler.pkg[1.26], compiler/machines/i386/compiler.sf[1.16], compiler/machines/i386/decls.scm[1.11], compiler/machines/mips/compiler.pkg[1.22], compiler/machines/mips/compiler.sf-big[1.12], compiler/machines/mips/compiler.sf-little[1.12], compiler/machines/mips/decls.scm[1.12], compiler/machines/sparc/decls.scm[1.6], compiler/machines/spectrum/compiler.pkg[1.52], compiler/machines/spectrum/compiler.sf[1.22], compiler/machines/spectrum/decls.scm[4.37], compiler/machines/vax/compiler.pkg[1.24], compiler/machines/vax/compiler.sf[1.13], compiler/machines/vax/decls.scm[4.15]: Eliminate COMPILER:ENABLE-EXPANSION-DECLARATIONS? and the associated early-expansion macros. This hasn't been used in a while and there's no clear way to make it work when environments and syntax tables are unified. * compiler/back/syerly.scm[1.12], compiler/machines/alpha/inerly.scm[1.5], compiler/machines/bobcat/inerly.scm[1.10], compiler/machines/i386/inerly.scm[1.6], compiler/machines/mips/inerly.scm[1.5], compiler/machines/sparc/inerly.scm[1.5], compiler/machines/spectrum/inerly.scm[1.5], compiler/machines/vax/inerly.scm[1.9]: Remove unused definitions of DEFINE-EARLY-TRANSFORMER. Move bindings for EARLY-TRANSFORMERS and EARLY-INSTRUCTIONS to "back/syerly.scm". * compiler/machines/alpha/inerly.scm[1.4], compiler/machines/i386/inerly.scm[1.5], compiler/machines/mips/inerly.scm[1.4], compiler/machines/sparc/inerly.scm[1.4], compiler/machines/spectrum/inerly.scm[1.4]: Remove unused EQ-SUBSET? definitions. 2001-12-19 Chris Hanson * compiler/back/asmmac.scm[1.9], compiler/base/macros.scm[4.17], compiler/machines/C/compiler.pkg[1.11], compiler/machines/C/compiler.sf[1.9], compiler/machines/C/decls.scm[1.5], compiler/machines/alpha/compiler.pkg[1.14], compiler/machines/alpha/compiler.sf[1.9], compiler/machines/alpha/decls.scm[1.7], compiler/machines/alpha/inerly.scm[1.3], compiler/machines/alpha/insmac.scm[1.3], compiler/machines/alpha/lapgen.scm[1.7], compiler/machines/alpha/rules1.scm[1.4], compiler/machines/alpha/rules2.scm[1.3], compiler/machines/alpha/rules3.scm[1.8], compiler/machines/alpha/rules4.scm[1.4], compiler/machines/alpha/rulfix.scm[1.5], compiler/machines/alpha/rulflo.scm[1.4], compiler/machines/bobcat/compiler.pkg[1.51], compiler/machines/bobcat/compiler.sf[1.21], compiler/machines/bobcat/decls.scm[4.38], compiler/machines/bobcat/inerly.scm[1.9], compiler/machines/bobcat/insmac.scm[1.128], compiler/machines/i386/compiler.pkg[1.25], compiler/machines/i386/compiler.sf[1.15], compiler/machines/i386/decls.scm[1.10], compiler/machines/i386/inerly.scm[1.4], compiler/machines/i386/insmac.scm[1.12], compiler/machines/mips/compiler.pkg[1.21], compiler/machines/mips/compiler.sf-big[1.11], compiler/machines/mips/compiler.sf-little[1.11], compiler/machines/mips/decls.scm[1.11], compiler/machines/mips/inerly.scm[1.3], compiler/machines/mips/insmac.scm[1.4], compiler/machines/sparc/decls.scm[1.5], compiler/machines/sparc/inerly.scm[1.3], compiler/machines/sparc/insmac.scm[1.3], compiler/machines/spectrum/compiler.pkg[1.51], compiler/machines/spectrum/compiler.sf[1.21], compiler/machines/spectrum/decls.scm[4.36], compiler/machines/spectrum/inerly.scm[1.3], compiler/machines/spectrum/insmac.scm[1.4], compiler/machines/vax/compiler.pkg[1.23], compiler/machines/vax/compiler.sf[1.12], compiler/machines/vax/decls.scm[4.14], compiler/machines/vax/dsyn.scm[1.9], compiler/machines/vax/inerly.scm[1.8], compiler/machines/vax/insmac.scm[1.14]: Remove explicit references to syntax tables. * 6001/6001.sf[1.12], pcsample/pcs.sf[1.3], runtime/option.scm[14.39], runtime/runtime.pkg[14.391], runtime/runtime.sf[14.17], runtime/sysmac.scm[14.5], sf/sf.sf[4.10], sos/compile.scm[1.5], sos/ed-ffi.scm[1.3], sos/instance.scm[1.10], sos/sos.pkg[1.10], swat/scheme/other/unhash-testing.scm[1.2], swat/scheme/swat.cbf[1.2], swat/scheme/swat.sf[1.4], wabbit/wabbit.sf[1.4], win32/win32.sf[1.7], win32/win32.sf[1.6]: Eliminate references to SYNTAX-TABLE/SYSTEM-INTERNAL. * microcode/cmpauxmd/i386.m4[1.56], microcode/cmpintmd/i386.h[1.34]: Change cache serialization to do condition testing once when Scheme is started rather each time a closure is created. * sf/sf.pkg[4.14], sf/toplev.scm[4.18]: Delete SF/SET-DEFAULT-SYNTAX-TABLE!. * 6001/nodefs.scm[1.12], edwin/artdebug.scm[1.29], edwin/comred.scm[1.123], edwin/debug.scm[1.58], edwin/editor.scm[1.253], edwin/evlcom.scm[1.65], edwin/filcom.scm[1.223], edwin/intmod.scm[1.115], edwin/schmod.scm[1.55], runtime/Attic/syntax.scm[14.39], runtime/error.scm[14.52], runtime/load.scm[14.60], runtime/packag.scm[14.39], runtime/rep.scm[14.57], runtime/runtime.pkg[14.390], runtime/usrint.scm[1.17]: Excise syntax tables from the REPL. * runtime/uenvir.scm[14.47]: Reimplement EXTEND-INTERPRETER-ENVIRONMENT and MAKE-NULL-INTERPRETER-ENVIRONMENT so that they don't use EVAL, and so that they take optional arguments specifying bindings to be defined in the newly-allocated environment. * runtime/Attic/syntax.scm[14.38], runtime/Attic/syntax.scm[14.37], runtime/global.scm[14.56], runtime/runtime.pkg[14.389], sf/sf.pkg[4.13]: Move SYNTAXER/DEFAULT-ENVIRONMENT into the syntaxer. * edwin/autold.scm[1.62]: Use default syntax table for LOAD. * cref/redpkg.scm[1.25]: Change order of names in renaming export declaration; now first name is always the destination and second is always the source. * compiler/etc/disload.scm[1.10], edwin/autold.scm[1.61], edwin/debug.scm[1.57], edwin/evlcom.scm[1.64], edwin/macros.scm[1.67], runtime/unpars.scm[14.49], sf/usicon.scm[4.5], sos/load.scm[1.8], swat/scheme/load.scm[1.5], xml/compile.scm[1.8]: Change references to LOCAL-ASSIGNMENT and LEXICAL-* to instead use procedures in the environment abstraction. * edwin/edwin.pkg[1.278], edwin/rename.scm[1.8], edwin/winren.scm[1.6]: Rename references to SCode variable abstraction. Eliminate special hack in "rename.scm"; instead use new packaging feature to link different names. * edwin/dired.scm[1.190]: Eliminate unnecessary use of LEXICAL-UNREFERENCEABLE?. * edwin/clsmac.scm[1.5], edwin/xform.scm[1.11]: Rename references to SCode variable abstraction. * runtime/uerror.scm[14.49]: Use ENVIRONMENT-DEFINE in place of LOCAL-ASSIGNMENT. * runtime/Attic/syntab.scm[14.7], runtime/Attic/syntax.scm[14.36], runtime/runtime.pkg[14.388], runtime/uenvir.scm[14.46]: Implement ENVIRONMENT-DEFINE and ENVIRONMENT-ASSIGNED?. Change ENVIRONMENT-LOOKUP to signal an error if the variable is unassigned. Move ENVIRONMENT-SYNTAX-TABLE and SET-ENVIRONMENT-SYNTAX-TABLE! into the syntax-table abstraction. 2001-12-18 Chris Hanson * edwin/edwin.pkg[1.277], edwin/xform.scm[1.10]: Rename references to SCode variable abstraction. * runtime/load.scm[14.59]: Allow syntax table to be explicitly defaulted. * edwin/autold.scm[1.60], edwin/autold.scm[1.59]: Use default syntax table for LOAD. * edwin/c-mode.scm[1.60], edwin/htmlmode.scm[1.5], edwin/javamode.scm[1.11], edwin/midas.scm[1.22], edwin/pasmod.scm[1.51], edwin/schmod.scm[1.54], edwin/syntax.scm[1.86], edwin/texcom.scm[1.46], edwin/tximod.scm[1.25], edwin/verilog.scm[1.9], edwin/vhdl.scm[1.9]: Use MAKE-CHAR-SYNTAX-TABLE rather than MAKE-SYNTAX-TABLE. * edwin/edwin.sf[1.29]: Eliminate reference to SYNTAX-TABLE/SYSTEM-INTERNAL. * runtime/sysmac.scm[14.4]: Attach syntax table to (RUNTIME) environment. * imail/imail.pkg[1.95]: (RUNTIME URL) package must inherit from (RUNTIME). * edwin/autold.scm[1.58], edwin/clsmac.scm[1.4], edwin/decls.scm[1.71], edwin/dosshell.scm[1.5], edwin/ed-ffi.scm[1.52], edwin/edwin.pkg[1.276], edwin/edwin.sf[1.28], edwin/filcom.scm[1.222], edwin/fileio.scm[1.156], edwin/macros.scm[1.66]: Eliminate references to EDWIN-SYNTAX-TABLE and CLASS-SYNTAX-TABLE. * imail/compile.scm[1.16], imail/ed-ffi.scm[1.18]: Eliminate references to syntax tables. * runtime/load.scm[14.58]: Default syntax table must be ENVIRONMENT-SYNTAX-TABLE of load environment. * edwin/intmod.scm[1.114], runtime/runtime.pkg[14.387], runtime/uenvir.scm[14.45]: Rename EXTEND-IC-ENVIRONMENT to EXTEND-INTERPRETER-ENVIRONMENT. * runtime/uenvir.scm[14.44]: Don't generate syntax tables automatically in EXTEND-IC-ENVIRONMENT. * runtime/Attic/syntab.scm[14.6]: Extend syntax-table abstraction so that it works on environments as well as syntax tables. * compiler/base/toplev.scm[4.61], runtime/Attic/syntax.scm[14.35]: Use GUARANTEE-SYNTAX-TABLE. * runtime/urtrap.scm[14.7]: Create procedures to generate unassigned and unbound objects. * runtime/symbol.scm[1.7]: Replace magic code by reference to MAKE-UNMAPPED-UNBOUND-REFERENCE-TRAP. * runtime/packag.scm[14.38], runtime/runtime.pkg[14.386]: Create procedure to generate unassigned objects. * runtime/packag.scm[14.37]: Guarantee that source binding of an import is defined. Source binding of an export is always defined by the package description. * cref/redpkg.scm[1.24]: Don't ever mark the source binding of a link as new. This was an attempt to work around problems with the linker, but the problem is in the linker and not here; the linker should automatically generate the source binding if it is missing. * runtime/Attic/syntax.scm[14.34], runtime/bitstr.scm[14.4], runtime/blowfish.scm[1.24], runtime/boole.scm[14.4], runtime/boot.scm[14.13], runtime/ed-ffi.scm[1.31], runtime/equals.scm[14.9], runtime/fixart.scm[1.8], runtime/global.scm[14.55], runtime/lambdx.scm[14.10], runtime/make.scm[14.75], runtime/msort.scm[14.9], runtime/ntprm.scm[1.37], runtime/os2prm.scm[1.48], runtime/qsort.scm[14.5], runtime/queue.scm[14.5], runtime/runtime.pkg[14.385], runtime/sfile.scm[14.32], runtime/symbol.scm[1.6], runtime/udata.scm[14.21], runtime/unxprm.scm[1.62], runtime/vector.scm[14.17]: Restructure packaging so that all runtime-system packages inherit from the (RUNTIME) package. We will use the latter as a place to attach the syntax from SYNTAX-TABLE/SYSTEM-INTERNAL. * runtime/make.scm[14.74]: Fix typo in comment. 2001-12-17 Chris Hanson * microcode/cmpauxmd/i386.m4[1.55]: Athlon model 2 is OK as well. * microcode/cmpauxmd/i386.m4[1.54]: Fine tune the code that decides when to use CPUID. For now, use it only for Athlon model 1, 2, 3, or 4 processors. According to AMD, the model 6 is OK, and perhaps the model 7 as well. The model 4 is known to be bad, and models 1, 2, and 3 are probably bad too. No Intel processors are known to be bad. * microcode/cmpauxmd/i386.m4[1.53]: Fix: ia32_cache_synchronize is supposed to be an ordinary C procedure, not an "entry point" for "cmpint.c". * microcode/cmpauxmd/i386.m4[1.52]: Use ".586p" rather than ".386p"; otherwise the CPUID instruction isn't recognized. * microcode/makegen/Makefile.in.in[1.18]: Fix default target; it wasn't including everything. * 6001/6001.pkg[1.13], compiler/machines/C/compiler.sf[1.8], compiler/machines/alpha/compiler.sf[1.8], compiler/machines/bobcat/compiler.sf[1.20], compiler/machines/i386/compiler.sf[1.14], compiler/machines/mips/compiler.sf-big[1.10], compiler/machines/mips/compiler.sf-little[1.10], compiler/machines/spectrum/compiler.sf[1.20], compiler/machines/vax/compiler.sf[1.11], cref/Makefile.in[1.2], cref/cref.sf[1.14], cref/make.scm[1.24], cref/redpkg.scm[1.23], cref/toplev.scm[1.16], edwin/Clean.sh[1.5], edwin/edwin.sf[1.27], edwin/make.scm[3.113], imail/Makefile.in[1.3], imail/clean.sh[1.4], imail/imail.pkg[1.94], runtime-check/Clean.sh[1.3], runtime-check/Setup.sh[1.5], runtime/make.scm[14.73], runtime/packag.scm[14.36], runtime/runtime.pkg[14.384], runtime/sfile.scm[14.31], runtime/version.scm[14.204], sf/butils.scm[4.11], sf/make.scm[4.40], sf/sf.pkg[4.12], sos/Makefile.in[1.3], star-parser/Makefile.in[1.2], xml/Makefile.in[1.2]: Change package system to conditionalize everything according to the operating-system type. All output files are now OS-specific, e.g. "runtime.pkg" produces output files "runtime-unx.{pkd,fre,crf}". Package files can now use the conditionalization variable OS-TYPE. * edwin/filcom.scm[1.221], edwin/make.scm[3.112]: Allow syntax-table information to be left out of FFI tables. This simplifies transition to new system in which syntax information is stored in environments. * runtime/version.scm[14.203]: Update to reflect that things have changed since the 7.6.0 release. 2001-12-16 Chris Hanson * compiler/base/make.scm[4.116], compiler/base/make.scm[4.115.4.1], compiler/machines/i386/dassm3.scm[1.7], compiler/machines/i386/instr1.scm[1.12], compiler/machines/i386/lapgen.scm[1.28], compiler/machines/i386/rules3.scm[1.35], microcode/bchdmp.c[9.90], microcode/bchgcl.c[9.54], microcode/bintopsb.c[9.74], microcode/cmpauxmd/i386.m4[1.51], microcode/cmpgc.h[1.32], microcode/cmpint.c[1.95], microcode/cmpintmd/alpha.h[1.6], microcode/cmpintmd/i386.h[1.33], microcode/fasdump.c[9.66], microcode/fasload.c[9.91], microcode/gcloop.c[9.49], microcode/nttrap.c[1.19], microcode/os2xcpt.c[1.9], microcode/purify.c[9.61], microcode/purutl.c[9.52], microcode/uxtrap.c[1.31], microcode/version.h[11.182], microcode/version.h[11.181.4.2], microcode/wabbit.c[1.9]: Add explicit cache synchronization support to work around a bug in the Athlon. * compiler/machines/i386/rules3.scm[1.34.4.3]: Use new compiled-code hook to executes the CPUID instruction out of line only on those processors that need it. * compiler/machines/i386/lapgen.scm[1.27.4.1], microcode/cmpauxmd/i386.m4[1.50.8.2], microcode/cmpintmd/i386.h[1.32.4.2]: Add asm_conditionally_serialize, a compiled-code hook that executes the CPUID instruction for some processors. * compiler/machines/i386/rules3.scm[1.34.4.2]: Use a different code sequence for CPUID; see if it gets better performance. * compiler/machines/i386/dassm3.scm[1.6.4.1]: Add CPUID instruction. 2001-12-14 Chris Hanson * microcode/version.h[11.181.4.1]: Update version number for IA-32 cache synchronization. * microcode/bchdmp.c[9.89.4.1], microcode/bchgcl.c[9.53.4.1], microcode/bintopsb.c[9.73.4.1], microcode/cmpgc.h[1.31.4.1], microcode/cmpint.c[1.94.4.1], microcode/cmpintmd/alpha.h[1.5.8.1], microcode/fasdump.c[9.65.4.1], microcode/fasload.c[9.90.4.1], microcode/gcloop.c[9.48.4.1], microcode/nttrap.c[1.18.4.1], microcode/os2xcpt.c[1.8.4.1], microcode/purify.c[9.60.4.1], microcode/purutl.c[9.51.4.1], microcode/uxtrap.c[1.30.4.1], microcode/wabbit.c[1.8.4.1]: Eliminate stupid -1 offset in MANIFEST_CLOSURE_END. * compiler/machines/i386/rules3.scm[1.34.4.1]: Invoke CPUID instruction after allocating a closure, in order to synchronize the I/D caches. This is a temporary kludge for proof of concept; it will be replaced by more efficient code. * compiler/machines/i386/instr1.scm[1.11.4.1]: Add support for CPUID instruction. * microcode/cmpintmd/i386.h[1.32.4.1]: Add support for cache synchronization. * microcode/cmpauxmd/i386.m4[1.50.8.1]: Add support for CPUID instruction. Remove support for DOS and HACK_SEGMENT_REGS. 2001-12-11 Chris Hanson * compiler/base/switch.scm[4.25.2.1], compiler/fggen/canon.scm[1.16.2.1]: Eliminate COMPILER:AVOID-SCODE?. * sicp/genenv.scm[1.3.2.1]: Eliminate use of MAKE-ENVIRONMENT. 2001-12-10 Chris Hanson * edwin/intmod.scm[1.113.2.1], imail/fake-env.scm[1.4.2.2]: Rename EXTEND-IC-ENVIRONMENT to EXTEND-INTERPRETER-ENVIRONMENT. * compiler/base/utils.scm[4.20.2.1], edwin/schmod.scm[1.53.2.1], runtime/Attic/macros.scm[1.3.2.1], runtime/infutl.scm[1.65.2.1], runtime/unsyn.scm[14.21.2.1]: Eliminate rule for MAKE-ENVIRONMENT. * compiler/etc/disload.scm[1.9.2.1], imail/fake-env.scm[1.4.2.1]: Eliminate use of MAKE-ENVIRONMENT. 2001-12-07 Chris Hanson * microcode/lookup.c[9.66]: Must call MAP_TO_UNASSIGNED on value of definition when creating a new binding. 2001-12-05 Chris Hanson * microcode/config.guess[11.2], microcode/config.sub[11.2]: Update autoconf config.* files. 2001-12-03 Chris Hanson * imail/imail-top.scm[1.279], imail/load.scm[1.37]: Change imail-forward to (by default) ask whether to forward all headers. 2001-11-27 Chris Hanson * runtime/Makefile.in[1.6]: URL support no longer in runtime system; remove reference. * microcode/makegen/Makefile.in.in[1.17]: Change default target so that it doesn't try to generate "utabmd.bin". The "all" target remains unchanged. * cref/redpkg.scm[1.22]: Make another attempt to fix the problem with imports. The previous fix didn't work when the analysis information was absent. 2001-11-26 Chris Hanson * runtime/msort.scm[14.8]: Tweak merge sort to be stable. 2001-11-21 Chris Hanson * runtime/unicode.scm[1.2]: Change WELL-FORMED-CODE-POINTS-LIST? to require that the argument be a proper list. 2001-11-20 Chris Hanson * star-parser/shared.scm[1.21]: Optimizer wasn't deleting unused procedure-valued bindings if the procedure had side-effects. The bug fix to make top-level failure continuations do backtracking prevented them from being substituted properly; the substitution predicate was extended to allow this. Also, some valuable substitutions weren't being seen because the optimizers were being run in a fixed order. After the peephole optimization is done, it reveals more possibilities for substitution. So now the optimizers are re-run until nothing more can be done. * star-parser/matcher.scm[1.25], star-parser/parser.scm[1.28]: Top-level failure continuations must do backtracking. 2001-11-19 Chris Hanson * imail/imail-imap.scm[1.195]: Change imap-url-mailbox to always be a string. The root "mailbox" is "", and the root container is "/". Both of these are handled specially when converting the URL to a string. This fixes the bug that allowed the malformed container URL "imap://localhost//". 2001-11-18 Chris Hanson * imail/imail-imap.scm[1.194], imail/imail-imap.scm[1.193]: Change file naming for cache files, so that it satisfies more stringent Windows requirements. Make sure that directory structure exists before locking a folder. 2001-11-15 Chris Hanson * cref/redpkg.scm[1.21]: Fix bug: imported bindings in package extensions weren't being constructed. 2001-11-14 Chris Hanson * runtime/version.scm[14.202]: Update version number for 7.6.0 release. * star-parser/matcher.scm[1.24], star-parser/parser.scm[1.27], star-parser/shared.scm[1.20], star-parser/shared.scm[1.19]: Fix some problems in the pointer optimization: pointers were being incorrect elided across lambda expressions, and external pointer bindings were being elided. The latter is fixed by introducing a mechanism to distinguish internal identifiers, which eliminates the need for the WITH-POINTER kludge. * star-parser/matcher.scm[1.23], star-parser/parser.scm[1.26], star-parser/shared.scm[1.18], star-parser/shared.scm[1.17]: Change naming of peephole optimizer. Fold all optimization into GENERATE-EXTERNAL-PROCEDURE. * star-parser/shared.scm[1.16]: Add optimizer to elide unnecessary buffer-pointer assignments. 2001-11-11 Chris Hanson * imail/load.scm[1.36], xml/load.scm[1.4]: Runtime support for *PARSER now integrated into the runtime system. * runtime/ed-ffi.scm[1.30], runtime/runtime.pkg[14.383], runtime/unicode.scm[1.1], star-parser/Attic/buffer.scm[1.12], star-parser/Attic/unicode.scm[1.7], star-parser/compile.scm[1.4], star-parser/ed-ffi.scm[1.4], star-parser/parser.pkg[1.15]: Move unicode support into runtime system. * runtime/rexp.scm[1.18]: Fix typo. * runtime/ed-ffi.scm[1.29], runtime/parser-buffer.scm[1.1], runtime/runtime.pkg[14.382]: Move parser-buffer abstraction into runtime system. * star-parser/shared.scm[1.15]: Reorganize code for presentation style -- no change in function. Add comments explaining how new optimizer works. Split up some large procedures into smaller focused pieces. Reorder code to improve readability. 2001-11-10 Chris Hanson * star-parser/matcher.scm[1.22], star-parser/parser.scm[1.25]: Add comment explaining the WITH-POINTER kludge. 2001-11-09 Chris Hanson * star-parser/load.scm[1.11], star-parser/matcher.scm[1.21], star-parser/matcher.scm[1.20], star-parser/parser.scm[1.24], star-parser/parser.scm[1.23], star-parser/shared.scm[1.14]: Implement substitution optimizer, which does a kind of data-flow analysis to eliminate unnecessary lambda expressions. * xml/compile.scm[1.7]: Need SOS loaded for proper compilation. 2001-11-06 Chris Hanson * imail/imail-imap.scm[1.192], imail/imail-imap.scm[1.191], imail/imail-top.scm[1.278], imail/imail.pkg[1.93], imail/todo.txt[1.135]: Add locking mechanism for the IMAP folder cache. There is one lock per folder, and the lock is held only while the folder cache is being read and/or written. IMAIL will try three times to obtain the lock, waiting one second between retries; thereafter it ignores the cache until the lock becomes available. 2001-11-05 Chris Hanson * imail/load.scm[1.35], imail/url.scm[1.11]: Make sure *PARSER is loaded for IMAIL. It's not necessary to load it just for the URL file. * imail/compile.scm[1.15], imail/ed-ffi.scm[1.17], imail/imail.pkg[1.92], imail/imail.pkg[1.91], imail/load.scm[1.34], runtime/Attic/url.scm[1.11], runtime/ed-ffi.scm[1.28], runtime/optiondb.scm[1.13], runtime/runtime.pkg[14.381], runtime/version.scm[14.201]: Move URL support back to IMAIL from the runtime system. * imail/url.scm[1.10]: Move this back to IMAIL from the runtime system. Unlike anything else in the runtime system, it requires *PARSER to compile, and I'm not ready to add that dependency. * xml/load.scm[1.3]: Add missing option dependencies. * compiler/base/make.scm[4.115]: Many changes to closure analysis require incrementing version number. * compiler/fgopt/closan.scm[4.29]: Add long explanation of the analysis. * compiler/fgopt/closan.scm[4.28]: Stylistic changes. * compiler/fgopt/closan.scm[4.27]: Three fixes that together resolve the problem of compiling the XML parser. (1) FOR-EACH-CALLEE! claimed to examine all of the callees, but it wasn't looking at procedures called from descendant blocks that had been disowned. (2) When removing dependent constraints, due to closure, constraints that had indirect dependencies on the now-closed procedure weren't being removed. (3) When adding undrifting constraints due to closure contagion, it's wrong to constrain the invocation block of a trivial closure. 2001-11-03 Chris Hanson * compiler/fgopt/closan.scm[4.26]: Use new names for LIST-TRANSFORM- procedures; eliminate private definition for LIST-TRANSFORM-NEGATIVE!. Open up definition of FOR-EACH-CALLEE! so that it can be experimented with. Change implementation of undrifting conditions so that they can have multiple dependencies. 2001-11-02 Chris Hanson * edwin/schmod.scm[1.53]: Add indentation bindings for new names in runtime system. * runtime/uenvir.scm[14.43], runtime/uenvir.scm[14.42]: Fix bug: ENVIRONMENT-BOUND? wasn't examining ancestors of compiled-code environment frames. * compiler/fgopt/closan.scm[4.25]: Rearrange code to separate out manipulation of constraints list. * compiler/fgopt/closan.scm[4.24]: Add explicit CONDITION datatype to track the conditions that tag undrifting constraints. This simplifies the code and clarifies what is happening. Also change PENDING-UNDRIFTING? to examine the conditions for validity in the same way that UNDRIFT-PROCEDURES! does. * compiler/fgopt/closan.scm[4.23]: Guarantee that empty constraint entries are entirely removed. * runtime/list.scm[14.27], runtime/runtime.pkg[14.380]: Change names: list-transform-positive => keep-matching-items list-transform-negative => delete-matching-items list-search-positive => find-matching-item Implement new procedures: keep-matching-items! delete-matching-items! 2001-11-01 Chris Hanson * compiler/fgopt/closan.scm[4.22]: Add hooks to generate debugging info about constraints. * compiler/fgopt/closan.scm[4.21]: Use RVALUE/TRUE-PROCEDURE? where appropriate. * compiler/fgopt/closan.scm[4.20], compiler/fgopt/envopt.scm[1.10]: Rewrite for style. * compiler/fgopt/closan.scm[4.19], compiler/fgopt/envopt.scm[1.9]: Change value of PROCEDURE-FREE-CALLEES so that it contains sets of blocks rather than lists of variables. 2001-10-30 Chris Hanson * imail/imail-top.scm[1.277]: Change M-x imail-file-message to default to the last output file. * edwin/filcom.scm[1.220]: Use PROMPT-OPTIONS-DEFAULT-STRING to determine default prompt. This allows caller to specify that history is to be used. * edwin/edwin.pkg[1.275], edwin/prompt.scm[1.198]: Implement PROMPT-OPTIONS-DEFAULT-STRING to determine whether a set of options specifies a default prompt string. 2001-10-25 Chris Hanson * microcode/uxtrap.h[1.30]: Modern GNU/Linux implementations provide full siginfo and sigcontext support, so use that instead of kludging our own. * microcode/uxsig.c[1.37]: Add code to reinitialize the floating-point control word on IA-32 machines when SIGFPE is received. When this isn't done, all of the traps are disabled. * imail/imail-top.scm[1.276]: Add workaround for non-standard MIME encoding types used by Microsoft. 2001-10-24 Chris Hanson * compiler/base/proced.scm[4.23]: Implement RVALUE/TRUE-PROCEDURE?. 2001-10-23 Chris Hanson * microcode/prmhash.c[11.4]: Fix problem: I was interpreting the meaning of mhash_count incorrectly. 2001-10-22 Chris Hanson * compiler/base/blocks.scm[4.15], compiler/base/lvalue.scm[4.22], compiler/base/proced.scm[4.22], compiler/base/proced.scm[4.21], compiler/base/rvalue.scm[4.8], compiler/fgopt/desenv.scm[4.5]: Update for style. * runtime/fixart.scm[1.7]: Add FLO:FINITE?. 2001-10-17 Chris Hanson * compiler/base/debug.scm[4.16]: Fix newline convention of debugging tools to match current convention. 2001-10-16 Chris Hanson * xml/xml-parser.scm[1.11]: Fix problem in declaration parser. * etc/optiondb.scm[1.8]: Add *PARSER and XML options. * star-parser/matcher.scm[1.19], star-parser/parser.scm[1.22], star-parser/shared.scm[1.13]: Add code to reuse existing buffer pointers where possible. * star-parser/matcher.scm[1.18], star-parser/parser.scm[1.21], star-parser/shared.scm[1.12]: OK, this time it's right. I've gone through all the combinations, and everything makes sense. There are some minor efficiency issues which will be resolved in the next revision. * compiler/base/make.scm[4.114], compiler/fgopt/conect.scm[4.6]: Fix bug: don't avoid coloring part of the graph just because it is going to be inlined later. There is probably a subtle bug here, but finding it will require too much thought, and this fix appears to work. * star-parser/matcher.scm[1.17], star-parser/parser.scm[1.20], star-parser/shared.scm[1.11]: Rewrite control structures again. These seem correct, after many hours of thought and testing. Also make new top-level wrapper for code generators, and eliminate a couple of unused definitions. 2001-10-15 Chris Hanson * star-parser/load.scm[1.10], star-parser/matcher.scm[1.16], star-parser/parser.scm[1.19], star-parser/shared.scm[1.10]: Complete rewrite of output control structure. New structure supports backtracking properly, doing greedy matching until a failure occurs, then backtracking arbitrarily deeply to find a way forward. 2001-10-14 Chris Hanson * imail/imail-imap.scm[1.190]: Fix bug: large message-body parts were being stored in the cache as zero-length strings. 2001-10-13 Chris Hanson * imail/imap-syntax.scm[1.18]: Rewrite so we don't depend on matchers lifting complex expressions upwards. 2001-10-10 Chris Hanson * runtime/option.scm[14.38]: Fix LOAD-OPTION so that a loading option can load any other option. * imail/Attic/parser.scm[1.5], imail/compile.scm[1.14], imail/ed-ffi.scm[1.16], imail/imail-imap.scm[1.189], imail/imail.pkg[1.90], imail/imap-response.scm[1.44], imail/imap-syntax.scm[1.17], imail/load.scm[1.33], runtime/Attic/url.scm[1.10], runtime/runtime.pkg[14.379]: The parser language developed for IMAIL has been replaced by the newer *PARSER facility. 2001-10-09 Chris Hanson * etc/Stage.sh[1.3]: Fix quoting problem. * runtime/optiondb.scm[1.12]: Fix case of symbol. * star-parser/matcher.scm[1.15]: Interpret bare string or char as self. * star-parser/parser.scm[1.18]: Interpret bare string or char to be noise. 2001-10-05 Chris Hanson * imail/Attic/rexp.scm[1.16], imail/compile.scm[1.13], imail/ed-ffi.scm[1.15], imail/imail.pkg[1.89], imail/load.scm[1.32], imail/url.scm[1.9]: Remove URL and rexp support, which are now in the runtime system. * etc/compile.scm[1.3]: Don't forget to compile *parser and xml support. * runtime/savres.scm[14.34]: Don't clear the screen on restore. * runtime/Makefile.in[1.5], runtime/ed-ffi.scm[1.27], runtime/optiondb.scm[1.11], runtime/runtime.pkg[14.378]: Add URL-encoding support. * runtime/Attic/url.scm[1.9]: Fix copyright. Guarantee regular-expression is loaded. Fix bug in URL:SUBSTRING-ENCODED?. * runtime/rexp.scm[1.17]: Fix copyright dates. * runtime/ed-ffi.scm[1.26]: Add missing file: ntdir. * runtime/Makefile.in[1.4], runtime/ed-ffi.scm[1.25], runtime/optiondb.scm[1.10], runtime/runtime.pkg[14.377]: Add rexp abstraction. * runtime/rexp.scm[1.16]: Update copyright. Add comment explaining contents of file. Change logic since character sets are no longer represented as strings. If character set is argument to CASE-FOLD, then case-fold it. 2001-10-04 Chris Hanson * Makefile.in[1.18], Setup.sh[1.7], configure.in[1.5]: Integrate *PARSER and XML support into system. * star-parser/Attic/buffer.scm[1.11], star-parser/Attic/unicode.scm[1.6]: Fix typo. * star-parser/Makefile.in[1.1], star-parser/load.scm[1.9], star-parser/load.scm[1.8], star-parser/parser.pkg[1.14], xml/Makefile.in[1.1], xml/compile.scm[1.6], xml/load.scm[1.2], xml/xml.pkg[1.8]: Integrate into MIT Scheme. * star-parser/Attic/unicode.scm[1.5], star-parser/parser.pkg[1.13]: Implement READ-UTF8-CODE-POINT and WRITE-UTF8-CODE-POINT. * microcode/string.c[9.47], microcode/string.c[9.46], microcode/string.c[9.45]: Don't unnecessarily change the length of a string when altering its maximum length. * star-parser/Attic/buffer.scm[1.10], star-parser/parser.pkg[1.12], star-parser/parser.pkg[1.11]: Move MATCH-UTF8-CHAR-IN-ALPHABET into parser-buffer abstraction. * star-parser/Attic/unicode.scm[1.4], star-parser/parser.pkg[1.10]: Remove all references to parser buffers. * star-parser/Attic/buffer.scm[1.9]: Optimize code to read and match characters from the buffer. 2001-10-02 Chris Hanson * runtime/global.scm[14.54]: Add binding for UNBIND-VARIABLE. 2001-10-01 Chris Hanson * cref/redpkg.scm[1.20]: Fix bug that was causing some variables to erroneously have multiple bindings. * imail/imail-top.scm[1.275]: Leave attachment markers in the output message. The result will be an exact copy of the buffer contents. * star-parser/compile.scm[1.3], xml/compile.scm[1.5]: Update for new CREF. 2001-09-30 Chris Hanson * imail/todo.txt[1.134]: Make changes related to new cache mechanism. 2001-09-29 Chris Hanson * imail/imail-top.scm[1.274]: START-PROBE-FOLDER-THREAD is being called whenever a message is selected, but unfortunately if there was already a thread, it was being killed and a new one started, which generated network traffic on an IMAP folder. Now it doesn't do anything if there is already a thread. * imail/imail-imap.scm[1.188]: Don't generate "Reading ..." messages unless actually going to the network. Remove debugging code inadvertently left in last revision. * imail/todo.txt[1.133]: Add disk cache for IMAP folders. 2001-09-28 Chris Hanson * imail/imail-imap.scm[1.187], imail/imail-imap.scm[1.186], imail/load.scm[1.31]: Add disk cache for IMAP folders. * imail/imail-top.scm[1.273]: Implement new command M-x imail-file-message, which writes message to a file in a human-readable format. * imail/imail-file.scm[1.80], imail/imail-rmail.scm[1.69], imail/imail-top.scm[1.272], imail/imail-umail.scm[1.50], imail/imail.pkg[1.88], imail/load.scm[1.30]: Change handling of file folders so that their type is determined solely by their contents rather than their names. * cref/conpkg.scm[1.14], cref/forpkg.scm[1.10], cref/redpkg.scm[1.19]: Fix bug: package parent can sometimes be the symbol UNKNOWN. 2001-09-25 Chris Hanson * Makefile.in[1.17], configure.in[1.4], cref/Makefile.in[1.1]: CREF should now be included in the install directory. * compiler/Clean.sh[1.5], edwin/Clean.sh[1.4], edwin/Clean.sh[1.3]: Update to reflect changes to packaging. * sf/gconst.scm[4.26]: Remove four more definitions that are no longer bound to primitives. * edwin/prompt.scm[1.197]: Fix bug: documentation string for M-x repeat-complex-command was referring to repeat-complex-command mode, which no longer exists. * microcode/utabmd.scm[9.79]: Eliminate calls to IMPLEMENTED-PRIMITIVE-PROCEDURE? which were causing trouble in the boot load. This was due to rewriting of string support. * compiler/rtlgen/opncod.scm[4.70]: Fix typo in previous change. * compiler/rtlopt/rinvex.scm[1.10]: Eliminate use of DEFINE-METHOD syntactic keyword. * compiler/rtlgen/opncod.scm[4.69]: Don't open-code any of the cell primitives. * runtime/runtime.pkg[14.376], runtime/string.scm[14.45]: Extensive rewriting to make type-checking more uniform, and to eliminate cases where it was being performed twice. Eliminate even more primitives, and speed up the procedures as much as possible. * runtime/char.scm[14.13]: Split off unchecked character comparisons, for inclusion in "string.scm". * runtime/chrset.scm[14.16]: Add type checking to all procedures, and rewrite some of the loops for speed. * runtime/chrsyn.scm[1.5]: Fix bug in previous change. * runtime/runtime.sf[14.16]: The file "char.scm" must now be compiled early as it is integrated into "string.scm". * runtime/packag.scm[14.35]: Fix thinko. * sf/gconst.scm[4.25], sf/make.scm[4.39]: Eliminate a large number of inlined primitives. Some of these are necessary due to changes in the runtime system. Others are eliminated because I don't want their names reserved, or because it's inappropriate to inline them. * runtime/list.scm[14.26]: Change LENGTH to be a Scheme procedure rather than a primitive. New procedure now checks its argument for circularity and signals an error. * runtime/utabs.scm[14.14]: Write private version of INTERN, which is needed early in the boot sequence before all of the necessary mechanism is initialized. * runtime/rgxcmp.scm[1.116]: Fix bugs in character-set compilation. This code was confusing ASCII fixnums and characters, which works only in compiled code. * runtime/random.scm[14.24]: Initialization sequence for RNG was depending on fact that REAL-TIME-CLOCK was inline-coded. * edwin/calias.scm[1.21]: Fix bug: EMACS-KEY-NAME wasn't able to handle a button as an argument. 2001-09-24 Chris Hanson * runtime/char.scm[14.12], runtime/runtime.pkg[14.375], runtime/string.scm[14.44]: Make ISO-8859-1 changes to string code, which involved rewriting all of the case-aware procedures. Many of these were inherited from primitives, so it was necessary to write Scheme versions of the primitives. * runtime/chrset.scm[14.15]: Extend alphabetic predicates to know about ISO-8859-1 letters. * runtime/char.scm[14.11]: Eliminate use of all character primitives except for CHAR?, CHAR->INTEGER, and INTEGER->CHAR. It is probably faster to write them in Scheme. Extend CHAR-UPCASE and CHAR-DOWNCASE to know about ISO-8859-1 letters. * runtime/chrsyn.scm[1.4]: Add ISO-8859-1 syntax to standard table. * runtime/mime-codec.scm[14.11]: Update copyright statement. 2001-09-21 Chris Hanson * edwin/process.scm[1.60]: Add prompt history for M-x shell-command. * edwin/edwin.pkg[1.274]: Add missing variable exports. 2001-09-20 Chris Hanson * imail/imail-summary.scm[1.47]: Put up message while generating summary buffer. Use fixnum arithmetic here to speed things up slightly. * imail/imail-summary.scm[1.46]: To each message shown in a summary buffer, attach a mark pointing at the line on which the message is shown. Use this in the code that maps from messages to marks, changing it from (slow) linear time in the number of messages to constant time. * imail/imail-summary.scm[1.45]: Fix problem with IMAIL-SUMMARY-MATCH-LINE: messages with malformed dates were not being matched. 2001-09-14 Chris Hanson * imail/imail-top.scm[1.271]: M-x imail-sort-by-subject should do a case-insensitive sort. * imail/imail-top.scm[1.270]: Add key binding for M-x imail-sort-by-arrival. * imail/imail-top.scm[1.269], imail/todo.txt[1.132]: Implement folder-sorting commands. * imail/imail-core.scm[1.146], imail/imail-summary.scm[1.44]: Change names: new functionality is not a permutation but an order. * imail/imail-core.scm[1.145], imail/imail-file.scm[1.79], imail/imail-imap.scm[1.185], imail/imail-summary.scm[1.43], imail/load.scm[1.29]: Add mechanism to permute the message order of a folder. 2001-09-10 Chris Hanson * runtime/mime-codec.scm[14.10]: Work around bug in "Microsoft Outlook IMO, Build 9.0.2416 (9.0.2910.0)" -- it sends documents of type application/octet-stream with embedded hard line breaks, which is illegal according to RFC 2045, page 20: Since the canonical representation of media types other than text do not generally include the representation of line breaks as CRLF sequences, no hard line breaks (i.e. line breaks that are intended to be meaningful and to be displayed to the user) can occur in the quoted-printable encoding of such types. 2001-08-22 Chris Hanson * microcode/lookprm.c[1.16]: Fix problem with multi-line primitive documentation. 2001-08-20 Chris Hanson * cref/conpkg.scm[1.13], cref/object.scm[1.14], cref/redpkg.scm[1.18], cref/triv.pkg[1.7], runtime/packag.scm[14.34]: More changes to .pkd files: now the information about loading and initialization is separated from the information about environments and bindings. The load/initialization sequence as written in the .pkg file is preserved in the .pkd file. * cref/conpkg.scm[1.12], cref/object.scm[1.13], cref/redpkg.scm[1.17], cref/triv.pkg[1.6], runtime/packag.scm[14.33]: Change .pkd file to have clearly defined exports and imports that directly correspond to those written by the programmer in the .pkg file. This eliminates the duplicate links that were present in the previous design. 2001-08-18 Chris Hanson * 6001/6001.pkg[1.12], 6001/make.scm[15.32], compiler/base/make.scm[4.113], cref/conpkg.scm[1.11], cref/make.scm[1.23], cref/object.scm[1.12], cref/redpkg.scm[1.16], cref/triv.pkg[1.5], runtime/packag.scm[14.32], win32/make.scm[1.8], win32/win32.pkg[1.13]: Add additional information to .pkd file to support automatic evaluation of package-initialization expressions. Major problems cropped up with package extensions, which necessitated some redesign of CREF. 2001-08-17 Chris Hanson * 6001/make.scm[15.31], compiler/base/make.scm[4.112], cref/make.scm[1.22], edwin/make.scm[3.111], imail/load.scm[1.28], rcs/load.scm[1.3], runtime/make.scm[14.72], runtime/packag.scm[14.31], runtime/runtime.pkg[14.374], sf/make.scm[4.38], sos/load.scm[1.7], win32/make.scm[1.7]: Rename PACKAGE/SYSTEM-LOADER to LOAD-PACKAGE-SET. That will allow us to have an operation named UNLOAD-PACKAGE-SET. * win32/win32.sf[1.5]: Update for changes to package system. 2001-08-16 Chris Hanson * cref/Attic/Clean.sh[1.3]: No longer needed. * cref/cref.pkg[1.10], cref/redpkg.scm[1.15], cref/redpkg.scm[1.14], cref/toplev.scm[1.15]: Eliminate use of ".glo" files; ".pkd" files have all the information needed. * etc/Clean.sh[1.6]: Update to correspond to packaging changes. * cref/conpkg.scm[1.10], cref/triv.pkg[1.4], cref/triv.pkg[1.3], cref/triv.pkg[1.2], runtime/packag.scm[14.30]: Change "parent-name" field of package description to contain the names of every ancestor of the package. This is necessary so that we can replace the use of ".glo" files with ".pkd" files. * compiler/machines/C/compiler.sf[1.7], compiler/machines/alpha/compiler.sf[1.7], compiler/machines/bobcat/compiler.sf[1.19], compiler/machines/i386/compiler.sf[1.13], compiler/machines/mips/compiler.sf-big[1.9], compiler/machines/mips/compiler.sf-little[1.9], compiler/machines/spectrum/compiler.sf[1.19], compiler/machines/vax/compiler.sf[1.10]: Synchronize "compiler.sf" on all the back ends. * compiler/machines/i386/compiler.sf[1.12], edwin/edwin.sf[1.26]: Don't use ACCESS to reference CREF/GENERATE-TRIVIAL-CONSTRUCTOR. It's now exported to the global environment. 2001-08-15 Chris Hanson * 6001/6001.sf[1.11], compiler/machines/i386/compiler.sf[1.11], cref/Attic/triv.con[1.6], cref/Attic/triv.ldr[1.5], cref/conpkg.scm[1.9], cref/cref.pkg[1.9], cref/cref.sf[1.13], cref/make.scm[1.21], cref/object.scm[1.11], cref/toplev.scm[1.14], cref/triv.pkg[1.1], edwin/edwin.sf[1.25], edwin/make.scm[3.110], imail/Makefile.in[1.2], imail/clean.sh[1.3], imail/compile.scm[1.12], rcs/compile.scm[1.3], runtime-check/Clean.sh[1.2], runtime-check/Setup.sh[1.4], runtime/dragon4.scm[1.15], runtime/list.scm[14.25], runtime/make.scm[14.71], runtime/packag.scm[14.29], runtime/runtime.pkg[14.373], runtime/runtime.sf[14.15], runtime/vector.scm[14.16], runtime/version.scm[14.200], sf/sf.sf[4.9], sos/Makefile.in[1.2], sos/compile.scm[1.4]: Implement completely new format for compiled package descriptions. Old format was code to build the packages and load files into them. New format is a summary description of the packages, which is interpreted at run time to provide the same functionality. The purpose of this change is to support uninstallation and replacement of packages. The new compiled package descriptions are general enough for this purpose. 2001-08-14 Chris Hanson * microcode/lookup.c[9.65]: Add optimization to link_variables so that it does nothing if the variables are already linked. 2001-08-10 Chris Hanson * compiler/Stage.sh[1.2]: Fix bug: "${S}/*" -> "${S}"/*. * compiler/base/asstop.scm[1.12], compiler/base/make.scm[4.111], compiler/base/toplev.scm[4.60], compiler/etc/comcmp.scm[1.7], compiler/machines/bobcat/dassm1.scm[4.20], compiler/machines/i386/dassm1.scm[1.10], compiler/machines/mips/dassm1.scm[1.5], compiler/machines/spectrum/dassm1.scm[4.20], runtime/conpar.scm[14.39], runtime/infstr.scm[1.11], runtime/infutl.scm[1.65], runtime/runtime.pkg[14.372]: Redesign compiled-code debugging information so that it is keyed. The key in the .com file and the key in the .bci file must match, or the .bci file will be ignored. * runtime/chrset.scm[14.14]: Fix type error. * microcode/interp.c[9.92]: Make sure that value of evaluating definition is the name being defined. 2001-08-09 Chris Hanson * 6001/edextra.scm[1.33], compiler/etc/disload.scm[1.9], swat/scheme/load.scm[1.4]: Replace usage of ENVIRONMENT-LINK-NAME with new LINK-VARIABLES. * cref/conpkg.scm[1.8], cref/make.scm[1.20], cref/redpkg.scm[1.13]: Replace usage of ENVIRONMENT-LINK-NAME with new LINK-VARIABLES. Extend package-file language to allow linking variables with different names. * cref/cref.pkg[1.8]: Fix packaging error. * runtime/global.scm[14.53], runtime/make.scm[14.70], runtime/uerror.scm[14.48]: Replace usage of ENVIRONMENT-LINK-NAME with new LINK-VARIABLES. This change requires microcode 14.5 or later. 2001-08-07 Chris Hanson * microcode/bchdmp.c[9.89], microcode/bchgcl.c[9.53], microcode/bintopsb.c[9.73], microcode/cmpint.c[1.94], microcode/fasdump.c[9.65], microcode/fasload.c[9.90], microcode/gccode.h[9.58], microcode/gcloop.c[9.48], microcode/lookprm.c[1.15], microcode/lookup.c[9.64], microcode/lookup.h[9.55], microcode/psbmap.h[9.45], microcode/psbtobin.c[9.59], microcode/purify.c[9.60], microcode/sdata.h[9.38], microcode/trap.h[9.48], microcode/types.h[9.38]: Implement primitive to allow linking variables that have different names. (Previously, linked variables were required to have the same name.) This requires a major redesign of the cache data structures, and since the garbage collector knows about these structures, all of the garbage-collector files are affected too. The new data structures have slightly different space requirements: a cache with no references uses one word less than previously, while a cache with references uses three words more than previously (independent of the number of references). This change requires Runtime 14.190 or later. 2001-08-06 Chris Hanson * edwin/snr.scm[1.61]: Fix bug: news posting hasn't worked since the MIME attachment changes went in some time ago. 2001-08-04 Chris Hanson * microcode/lookup.c[9.63]: Fix bugs in unbind_variable. * runtime/dbgutl.scm[14.20]: Fix formatting of environments. 2001-08-03 Chris Hanson * runtime/runtime.pkg[14.371], runtime/uenvir.scm[14.41], runtime/urtrap.scm[14.6], runtime/version.scm[14.199]: Rewrite interpreter-environment abstraction to account for new primitive that unbinds variables. This works with the old microcode. 2001-08-02 Chris Hanson * microcode/version.h[11.181]: Update version to reflect changes to variable reference. * microcode/lookup.c[9.62]: In-line code flush_cache, which had one reference. * microcode/lookprm.c[1.14], microcode/lookup.c[9.61], microcode/lookup.h[9.54], microcode/sdata.h[9.37]: Implement unlink_variable and associated primitive, which is not yet tested. Also, more cleanups to "lookup.c", particularly in code that accesses cache reference lists. Increased abstraction in this area is being prompted by potential design changes to allow linking variables with different names. * microcode/trap.h[9.47]: Eliminate unused TRAP_RECACHE. Add updated comment explaining where TRAP_UNBOUND is allowed to occur. 2001-08-01 Chris Hanson * microcode/sdata.h[9.36]: Don't access a cache value as a cell. * microcode/lookup.c[9.60]: Simplify logic in a few places. 2001-07-31 Chris Hanson * microcode/boot.c[9.105], microcode/cmpint.c[1.93], microcode/debug.c[9.53], microcode/extern.h[9.60], microcode/fasload.c[9.89], microcode/hooks.c[9.60], microcode/interp.c[9.91], microcode/lookprm.c[1.13], microcode/lookup.c[9.59], microcode/lookup.h[9.53], microcode/object.h[9.51], microcode/os2.h[1.8], microcode/scode.h[9.27], microcode/sdata.h[9.35], microcode/trap.h[9.46], microcode/utils.c[9.79]: Completely rewrite the variable-reference code. New design is considerably simpler, having discarded all the legacy code from the Butterfly. Furthermore, two hacks to speed up the interpreter, caching of variable locations and in-line variable reference, have been removed. This makes the interpreter slower, but has no effect on compiled code, and has several important benefits. One benefit is that we can now implement undefine. New design allows ENVIRONMENT-LINK-NAME to link to a variable that is already bound (previous signalled an error in this case). Eliminate "in-line" variable references in the interpreter. All reference machinery is now defined in "lookup.c". Define THE_GLOBAL_ENV and THE_NULL_ENV, and predicates to detect them. Eliminate GO_TO_GLOBAL and END_OF_CHAIN definitions. Latter was a name conflict under OS/2. Change definition of ENVIRONMENT_P so that it is false for THE_NULL_ENV. Define lots of macros to provide abstract access to the data structures used for variable references. Change terminology, so that instead of "trap extension" we now use "cache", and so on for the substructures of the cache. Add "guards" to allow .h files to be loaded more than once. Remove variable-access procedures from "extern.h"; new procedures are now defined in "lookup.h". Eliminate all unused trap kinds. 2001-07-29 Chris Hanson * microcode/makegen/makegen.scm[1.3]: When generating dependencies, pass -DMIT_SCHEME to compiler. 2001-07-21 Chris Hanson * edwin/comred.scm[1.122], edwin/editor.scm[1.252], edwin/kmacro.scm[1.43], edwin/make.scm[3.109]: Fix problem: errors during keyboard-macro execution were leaving the editor in the command reader that was spawned to execute the keyboard macro, rather than returning to the reader that was in control when the keyboard-macro execution was initiated. Some of the keyboard-macro state was being mismanaged by unnecessary calls to KEYBOARD-MACRO-DISABLE. This was exacerbated because KEYBOARD-MACRO-DISABLE was setting *KEYBOARD-MACRO-EXECUTING?* to #F when it should have been left alone. * imail/imail-imap.scm[1.184]: Change UPDATE-IMAP-FOLDER-LENGTH! back to its original design. The bug I was seeing had nothing to do with this code. * imail/imail-imap.scm[1.183]: Change UPDATE-IMAP-FOLDER-LENGTH! so that it always signals a modification event. 2001-07-19 Chris Hanson * runtime/version.scm[14.198], runtime/version.scm[14.197]: Update for post-release changes. * sf/make.scm[4.37], sf/pardec.scm[4.12]: Fix bug: when multiple USUAL-INTEGRATIONS declarations are given, the excluded names should be the union of all of the declarations, but instead were the intersection. This situation arises when using COMPILE-FILE, which forces an additional USUAL-INTEGRATIONS declarations on each file. * microcode/os2sock.c[1.18]: Fix typo. Supply definition for (surprisingly) missing INADDR_LOOPBACK. * microcode/ntutl/makefile[1.28]: A few more tweaks to get this working right. * microcode/ntsock.c[1.11], microcode/os2fs.c[1.14]: Fix typo. * microcode/ntutl/makefile[1.27], microcode/ntutl/makefile.wcc[1.17]: Disable crypto and gdbm support by default, since it relies on libraries not commonly available. 2001-07-18 Chris Hanson * microcode/ntutl/makefile[1.26]: Add code for using Microsoft's assembler. * microcode/ntutl/makefile[1.25]: Update to have hand-written dependencies as does the watcom makefile. * runtime/version.scm[14.196]: Change version for release 7.5.17. 2001-07-17 Chris Hanson * runtime/sfile.scm[14.30]: Fix name of WIN32-NAMED-PIPE, which had underscore instead of hyphen. Also add alias FILE-SOFT-LINK?. 2001-07-16 Chris Hanson * xml/compile.scm[1.4], xml/ed-ffi.scm[1.3], xml/test-parser.scm[1.5], xml/xml-output.scm[1.1], xml/xml.pkg[1.7], xml/xml.pkg[1.6]: Add code to write XML structures. * xml/xml-parser.scm[1.10]: Fix a number of bugs that were revealed during testing of the output code. * xml/xml-parser.scm[1.9]: Tweak format of !ELEMENT content type to be a little easier to disassemble. * xml/xml-struct.scm[1.5], xml/xml.pkg[1.5]: Delete now-unused entity-reference structures. * microcode/uxsig.c[1.36]: Must unblock all signals at start. A recent example that has caused problems is that GNOME can sometimes cause Scheme to be started with SIGCHLD blocked. 2001-07-14 Chris Hanson * xml/compile.scm[1.3]: Use new parser/matcher macro environments. * xml/xml-struct.scm[1.4], xml/xml.pkg[1.4]: Export type descriptors for each of the XML data structure types. * star-parser/load.scm[1.7], star-parser/matcher.scm[1.14], star-parser/parser.pkg[1.9], star-parser/parser.scm[1.17], star-parser/shared.scm[1.9]: Add environment mechanism so that parser/matcher macros from one program don't interfere with those from another. 2001-07-12 Chris Hanson * edwin/schmod.scm[1.52]: Duh; DEFINE-STRUCTURE has one distinguished expression, not two. * edwin/schmod.scm[1.51]: Add indentation rule for DEFINE-STRUCTURE. I think maybe the standard indentation for definitions isn't right. * xml/xml-parser.scm[1.8]: A bunch of simple edits resulting from reading over the code. * xml/test-parser.scm[1.4]: Rename RUN-VALIDITY-TESTS to RUN-XML-TESTS, and change it to run all the tests in the xmltest directory. * star-parser/Attic/unicode.scm[1.3]: Fix some bugs. * xml/compile.scm[1.2], xml/ed-ffi.scm[1.2], xml/parser-macro.scm[1.4], xml/xml-chars.scm[1.1], xml/xml-parser.scm[1.7], xml/xml.pkg[1.3]: Update to use new Unicode support in the parser language. This should improve the conformance. * star-parser/Attic/unicode.scm[1.2], star-parser/parser.pkg[1.8]: Flesh out unicode support. Fix bugs. 2001-07-11 Chris Hanson * star-parser/Attic/unicode.scm[1.1], star-parser/compile.scm[1.2], star-parser/ed-ffi.scm[1.3], star-parser/load.scm[1.6], star-parser/matcher.scm[1.13], star-parser/parser.pkg[1.7]: Add unicode support. * star-parser/Attic/buffer.scm[1.8], star-parser/load.scm[1.5], star-parser/parser.pkg[1.6]: New procedure PARSER-BUFFER-REF. 2001-07-10 Chris Hanson * xml/xml-parser.scm[1.6]: Reorganize for presentation. * xml/parser-macro.scm[1.3], xml/test-parser.scm[1.3], xml/xml-parser.scm[1.5]: Another round of changes. Now passes all of the valid tests, and most of the not-well-formed tests. * xml/parser-macro.scm[1.2], xml/test-parser.scm[1.2], xml/xml-parser.scm[1.4], xml/xml-struct.scm[1.3], xml/xml.pkg[1.2]: Extensive reworking to get entity references done more or less right. There remains a problem with recursive entity expansion -- there is a mismatch between the tests and my reading of the specification. * star-parser/matcher.scm[1.12]: Add COMPLETE keyword. 2001-07-09 Chris Hanson * star-parser/parser.scm[1.16], star-parser/test-parser.scm[1.3]: Rename ELEMENT-TRANSFORM to MAP. 2001-07-08 Chris Hanson * imail/imail-imap.scm[1.182]: Change DISCONNECT-FOLDER to close the connection immediately, rather than deferring. This is what the end-user expects to see happen. 2001-07-06 Chris Hanson * xml/test-parser.scm[1.1]: Initial revision. * edwin/fileio.scm[1.155]: When file is written for the first time, mark the buffer as having been backed up. * xml/compile.scm[1.1], xml/ed-ffi.scm[1.1], xml/load.scm[1.1], xml/parser-macro.scm[1.1], xml/xml-parser.scm[1.3], xml/xml-struct.scm[1.2], xml/xml.pkg[1.1]: Package the code. Move parser macros to their own file so that they can be loaded during compilation. Restructure the top-level parser to allow passing the DTD down to the element parser for entity expansion. Implement attribute-value normalization. Add restrictions required for rejection of non-wf documents: no "--" in comments; no duplicate attribute names. Change names of DTD structures to reflect their keywords. Fix various minor bugs, discovered either by the test suite or by the compiler. 2001-07-05 Chris Hanson * xml/xml-parser.scm[1.2], xml/xml-struct.scm[1.1]: Move data structures to separate file. * xml/xml-parser.scm[1.1]: Initial revision. * star-parser/Attic/buffer.scm[1.7]: Fix typo. 2001-07-02 Chris Hanson * star-parser/matcher.scm[1.11], star-parser/parser.scm[1.15]: Don't lift Scheme expressions up to the top of the procedure; evaluate them in place. Eliminate DEFAULT in favor of new VALUES. * runtime/pp.scm[14.42]: Fix bug: pretty printer was getting SIGSEGV when printing very deeply nested named let. * star-parser/load.scm[1.4], star-parser/matcher.scm[1.10], star-parser/parser.pkg[1.5], star-parser/parser.scm[1.14]: Completely reorganize the language preprocessors, so that they are no longer monolithic procedures. Also lay the code out differently so that it is broken into two major segments: the preprocessor and the code generator. * star-parser/shared.scm[1.8]: Fix bug: unfinished change to BACKTRACK-TO. * star-parser/matcher.scm[1.9], star-parser/parser.scm[1.13], star-parser/shared.scm[1.7]: Replace WITH-CURRENT-POINTER and NO-POINTERS with new procedure CALL-WITH-UNKNOWN-POINTER. Change all references from "pointers" to "pointer", since it's better to think of this as a single pointer. (The delayed backtracking feature is an implementation detail, so it shouldn't be reflected in the name.) Rename NEW-BACKTRACK-POINTER to BACKTRACK-TO. Rename CURRENT-POINTER to POINTER-REFERENCE. * star-parser/matcher.scm[1.8], star-parser/parser.scm[1.12], star-parser/shared.scm[1.6]: Rework handling of the pointers. There were some subtle bugs in the implementation that could have caused incorrect code generation. This code looks good but is still a bit confusing; I may not have it right yet. This code isn't yet tested. * microcode/x11base.c[1.77]: Implement new primitive X-SET-DEFAULT-FONT. * edwin/edwin.pkg[1.273], edwin/xcom.scm[1.18]: Add new command M-x set-default-font. * microcode/configure.in[11.13]: Restructure crypto, gdbm, and curses tests to depend on existence of appropriate header files as well as the library files. The presence of the library file is no guarantee that we have the headers. 2001-06-30 Chris Hanson * star-parser/load.scm[1.3], star-parser/matcher.scm[1.7], star-parser/parser.scm[1.11]: Add ability to specify macros that are symbols rather than forms. These expand to fixed parser sequences. * star-parser/load.scm[1.2], star-parser/matcher.scm[1.6], star-parser/parser.pkg[1.4], star-parser/parser.scm[1.10], star-parser/shared.scm[1.5]: Add WITH-POINTER to both parser and matcher languages. Also implement macros for both languages. * star-parser/Attic/buffer.scm[1.6]: Make sure that line number is properly updated. 2001-06-29 Chris Hanson * star-parser/Attic/buffer.scm[1.5], star-parser/Attic/buffer.scm[1.4], star-parser/Attic/buffer.scm[1.3], star-parser/Attic/buffer.scm[1.2], star-parser/ed-ffi.scm[1.2], star-parser/parser.pkg[1.3]: * Track the line number of the current buffer position, so that error messages can refer to the line. Change representation of buffer pointers to include the line number. Add operation to generate a string that shows the line number and character number of either a given pointer or the current position. * Eliminate DECREMENT-PARSER-BUFFER-POINTER, which was unused and makes implementing the line number more difficult. * Add -NO-ADVANCE versions of procedures that match single characters. * Change terminology: the index of the current character in the buffer is called a "position". The word "pointer" is reserved to refer to pointer objects that are handed to the users, which themselves refer to positions. 2001-06-27 Chris Hanson * star-parser/matcher.scm[1.5], star-parser/parser.scm[1.9]: Eliminate compiler warnings. * star-parser/parser.scm[1.8]: Fix code-generation bug in MATCH element. 2001-06-26 Chris Hanson * star-parser/parser.scm[1.7]: Fix a couple of code-generation bugs. * star-parser/shared.scm[1.4]: Add some more optimizers. * star-parser/parser.scm[1.6], star-parser/parser.scm[1.5]: Fix two compiler warnings. * star-parser/matcher.scm[1.4], star-parser/matcher.scm[1.3], star-parser/parser.scm[1.4], star-parser/parser.scm[1.3], star-parser/shared.scm[1.3]: Lots of hair to allow explicit character-set specifications to be compiled at load time rather than at run time. * star-parser/matcher.scm[1.2], star-parser/parser.scm[1.2]: Change name of language-shifting expression to SEXP. * star-parser/test-parser.scm[1.2]: Must attempt to parse number before attempting identifier. Otherwise, the number's sign might be parsed as an identifier. * star-parser/shared.scm[1.2]: Fix problem with optimizer: needed to add notion of default rules that are used when a more specific pattern isn't available. Also, generalize OPTIMIZE-GROUP-EXPRESSION so that it can be used by VECTOR-APPEND. * star-parser/parser.pkg[1.2]: Add missing bindings. * star-parser/Attic/buffer.scm[1.1], star-parser/Attic/synchk.scm[1.1], star-parser/compile.scm[1.1], star-parser/ed-ffi.scm[1.1], star-parser/load.scm[1.1], star-parser/matcher.scm[1.1], star-parser/parser.pkg[1.1], star-parser/parser.scm[1.1], star-parser/shared.scm[1.1], star-parser/test-parser.scm[1.1]: Initial revision. 2001-06-18 Chris Hanson * edwin/schmod.scm[1.50]: Define SCHEME-INDENT-METHOD to simplify definition of indentation. 2001-06-16 Chris Hanson * imail/imail-imap.scm[1.181]: Don't attempt to set arbitrary flags unless the server says it's OK. 2001-06-15 Chris Hanson * runtime/rgxcmp.scm[1.115], runtime/runtime.pkg[14.370]: Fix bug: regular-expression compiler is breaking the character-set abstraction. * runtime/chrset.scm[14.13], runtime/runtime.pkg[14.369], runtime/runtime.sf[14.14], runtime/string.scm[14.43], runtime/symbol.scm[1.5], runtime/unpars.scm[14.48]: Change representation of character sets so that they do not satisfy STRING?. Unfortunately, this requires a complete recompilation of the system, since the primitives SUBSTRING-FIND-NEXT-CHAR-IN-SET and SUBSTRING-FIND-PREVIOUS-CHAR-IN-SET were being hard-coded by the syntaxer. * sf/gconst.scm[4.24]: Don't integrate the primitives SUBSTRING-FIND-NEXT-CHAR-IN-SET and SUBSTRING-FIND-PREVIOUS-CHAR-IN-SET. 2001-06-12 Chris Hanson * imail/imail-top.scm[1.268], imail/imail-top.scm[1.267], imail/todo.txt[1.131]: Start the folder-probe thread only when the folder is ONLINE, and stop the thread when the folder is OFFLINE. Make sure that the buffer is disassociated from it's folder when the buffer is killed. * imail/imail-core.scm[1.144], imail/imail-file.scm[1.78], imail/imail-imap.scm[1.180], imail/imail-rmail.scm[1.68], imail/imail-umail.scm[1.49]: Change OPEN-RESOURCE and CLOSE-RESOURCE so that all of their behavior is pushed down into the type-dependent modules. (Previously, they had some type-independent code.) This, plus one explicit call, now means that the STATUS modification event is now consistently signalled whenever the connection status changes. 2001-06-09 Chris Hanson * runtime/runtime.pkg[14.368]: Forgot to export HANDLE-SUBPROCESS-STATUS-CHANGE to the socket code. * runtime/io.scm[14.64]: INPUT-BUFFER/READ-SUBSTRING must use generic arithmetic for indexes into the substring, because it might be an xstring that is larger than the fixnum range. * imail/imail-util.scm[1.39]: READ-SUBSTRING! can return less than the requested number of bytes. Deal with it. 2001-06-07 Chris Hanson * edwin/filcom.scm[1.219]: LOAD-FIND-FILE-INITIALIZATION must be re-run when the buffer's pathname or major mode is changed. * edwin/vc.scm[1.79], edwin/vc.scm[1.78]: VC's state is wiped out when the workfile's buffer has it's mode changed. Use new event EVENT:SET-BUFFER-MAJOR-MODE to reset it at that time. * edwin/buffer.scm[1.182]: Add new event EVENT:SET-BUFFER-MAJOR-MODE. 2001-06-05 Chris Hanson * runtime/socket.scm[1.17]: Fix bug: TCP-SERVER-CONNECTION-ACCEPT was blocking on the server socket, rather than registering it for management by select. 2001-06-04 Chris Hanson * imail/imail-browser.scm[1.8]: When reverting buffer, preserve selected resource, marked resources, and expanded containers. When initializing buffer, select first resource line. * imail/imail-top.scm[1.266], imail/todo.txt[1.130]: Select first unseen message when invoking M-x imail on a folder that is already online. * imail/imail.pkg[1.87]: Rename commands to match current Dired usage. * imail/todo.txt[1.129]: More new notes. * imail/imail-browser.scm[1.7]: Implement M-x imail-browser-do-copy. Consolidate code used for copy and rename. Write documentation strings for all commands and for the major mode. * imail/imail-top.scm[1.265], imail/imail-top.scm[1.264]: Simplify usage of COPY-FOLDER. * imail/imail-core.scm[1.143]: Implement WITH-OPEN-RESOURCE. * edwin/dired.scm[1.189]: Fix minor wording problem in documentation string. 2001-06-03 Chris Hanson * imail/imail-browser.scm[1.6], imail/imail-top.scm[1.263], imail/imail.pkg[1.86], imail/todo.txt[1.128]: Change commands used to enter browser. Now the primary command is M-x imail-browser-view-container (bound to ^ in all IMAIL buffers), which browses the container of the resource being viewed in the current buffer. This command will prompt for a container URL if given a prefix argument. * imail/imail-imap.scm[1.179]: Fix bug: the container URL "imap://localhost/" had an associated "folder" URL with the same string representation. This confused the URL interning mechanism, which uses the string rep as the key. Consequently only one of the URLs existed. Now, the "folder" is represented by "imap://localhost". * edwin/dired.scm[1.188]: When processing marked files in a Dired buffer, update screens after each file is processed so that the mark is appropriately removed. * imail/imail-core.scm[1.142], imail/imail-file.scm[1.77], imail/imail-imap.scm[1.178]: Change CLOSE-RESOURCE so that second argument is required rather than optional. * imail/imail-browser.scm[1.5], imail/imail-imap.scm[1.177], imail/todo.txt[1.127]: Associate a connection with an open IMAP container. Add code to browser to guarantee that the resource is closed at appropriate times. * imail/todo.txt[1.126]: *** empty log message *** * imail/imail-top.scm[1.262]: Change M-x imail-quit to use the new NO-DEFER? argument to CLOSE-RESOURCE. * imail/imail-core.scm[1.141], imail/imail-file.scm[1.76], imail/imail-imap.scm[1.176]: Add optional argument NO-DEFER? to CLOSE-RESOURCE. If this argument is true, it tells the operation that the resource must be closed immediately. Otherwise, the operation may defer the closure. 2001-06-02 Chris Hanson * imail/todo.txt[1.125]: Add a few notes. * edwin/dirunx.scm[1.13]: Add commented-out stubs for commands to do file linking. * edwin/xterm.scm[1.67]: Add logic to GET-X-DISPLAY to test for existence of X primitives, and to make sure that a display variable exists. This is necessary so that Edwin will work on a system that doesn't have X support. * edwin/filcom.scm[1.218]: PROMPT-FOR-DIRECTORY should not always perform PATHNAME-AS-DIRECTORY on its result; if the REQUIRE-MATCH? option isn't given, the result might not be a directory. For example, Dired uses this prompt, and an input with a wildcard file part is permissible. * edwin/dired.scm[1.187]: Update doc string for dired-do-copy to match Emacs. * edwin/dired.scm[1.186], edwin/edwin.pkg[1.272]: Eliminate variable dired-copy-preserve-time which wasn't doing anything. * runtime/sfile.scm[14.29], runtime/sfile.scm[14.28], runtime/sfile.scm[14.27]: New procedures HARD-LINK-FILE and SOFT-LINK-FILE. * imail/imail-browser.scm[1.4], imail/imail.pkg[1.85]: Implement marked files for D and R commands (stub for C command needs to be written). Change name of x command to M-x imail-browser-do-flagged-delete to correspond to new name given corresponding Emacs dired command. * imail/imail-top.scm[1.261]: In M-x imail-rename-folder and M-x imail-copy-folder, allow user to specify a container for the target. * imail/imail-top.scm[1.260]: Add new procedure PROMPT-FOR-URL. * runtime/socket.scm[1.16]: Add optional HOST argument to OPEN-TCP-SERVER-SOCKET, and new procedures HOST-ADDRESS-ANY and HOST-ADDRESS-LOOPBACK. This allows the user to specify the network interface(s) being listened to. * microcode/ntsock.c[1.10], microcode/os2sock.c[1.17], microcode/uxsock.c[1.28]: Provide missing htonl calls. * microcode/pruxsock.c[1.20]: Oops, that should have been CREATE-TCP-SERVER-SOCKET. * microcode/ntsock.c[1.9], microcode/os2sock.c[1.16], microcode/pruxsock.c[1.19], microcode/uxsock.c[1.27], microcode/uxsock.h[1.10]: Implement new primitives to allow finer control over how TCP server sockets are configured: HOST-ADDRESS-ANY HOST-ADDRESS-LOOPBACK CREATE_TCP_SERVER_SOCKET BIND-TCP-SERVER-SOCKET LISTEN-TCP-SERVER-SOCKET 2001-06-01 Chris Hanson * imail/imail-imap.scm[1.175], imail/todo.txt[1.124]: Defer closing of connection when it is the last connection open to a particular server. This prevents a pattern of opening and closing that occurs when IMAIL starts up (due to probes performed prior to opening the folder). It also allows the user to do completion in the folder space without occurring the same penalty. The downside is that the connection remains open for about a minute after the user "closes" it, which will be remedied in a future revision. 2001-05-31 Chris Hanson * imail/imail-imap.scm[1.174]: First draft of a mechanism to defer closing of connections. This suffers from a fault: the background probe-folder thread is re-opening the connection while it is in the deferred state. * edwin/editor.scm[1.251], edwin/notify.scm[1.20], imail/imail-top.scm[1.259], imail/imail-top.scm[1.258]: Implement START-STANDARD-POLLING-THREAD and STOP-STANDARD-POLLING-THREAD to capture standard method of using background thread to poll for output or events. * edwin/editor.scm[1.250]: Add interrupt locking to REGISTER-INFERIOR-THREAD! and DEREGISTER-INFERIOR-THREAD!. Change DEREGISTER-INFERIOR-THREAD! to delete the entry from the list of inferior threads. 2001-05-30 Chris Hanson * imail/imail-imap.scm[1.173]: Change how connections are allocated; when looking for a connection for a folder, we'll now take over an existing compatible connection if it's not being used by another folder. This will be useful after the next change, which will cause connections to stay open a short while after their last reference is dropped; when that happens, there will be open connections lying around that can usefully be adopted. 2001-05-29 Chris Hanson * imail/imail-imap.scm[1.172], imail/imail-imap.scm[1.171], imail/todo.txt[1.123]: Eliminate IMAP-FOLDER-N-MESSAGES in favor of FOLDER-LENGTH. * imail/imail-browser.scm[1.3], imail/imail-core.scm[1.140], imail/imail-file.scm[1.75], imail/imail-imap.scm[1.170]: Rename URL-IS-CONTAINER? to URL-CORRESPONDING-CONTAINER. Eliminate requirement that the result be #F if the resource doesn't exist. * imail/imail-imap.scm[1.169]: Cache information returned by the IMAP LIST command. This should help to reduce traffic on the wire. * imail/imail.pkg[1.84]: Don't use my private "$bscm" environment variable in public code. * cref/cref.sf[1.12], cref/cref.sf[1.11]: Don't use LOAD-OPTION to load cref; it probably doesn't exist on the host system (outside of MIT), and this will cause an error if the user has MITSCHEME_INF_DIRECTORY set. * imail/imail-top.scm[1.257]: Change M-x imail so that it only runs M-x imail-get-new-mail if the folder status is OFFLINE. * imail/imail-imap.scm[1.168]: Restructure IMAP URLs so that each container URL has a corresponding folder URL. The container URL inherits the components of the folder URL rather than keeping its own copies. This sharing will be important when we add caching of the IMAP server's LIST info. 2001-05-28 Chris Hanson * imail/imail-imap.scm[1.167]: In IMAP-MAILBOX-DELIMITER, use the probed root as the table key; previous strategy make no sense. * imail/imail-imap.scm[1.166]: Fix bug: IMAP-MAILBOX-DELIMITER was calling the LIST command on a mailbox with a trailing slash; now the slash is omitted. 2001-05-27 Chris Hanson * imail/imail-imap.scm[1.165]: Cache result of URL-IS-CONTAINER?, to prevent going back to network each time it's needed. This might not actually work, since the definition of URL-IS-CONTAINER? specifies that the corresponding mailbox must exist. * imail/todo.txt[1.122]: Delete entries for things that are now implemented. * imail/todo.txt[1.121]: Note problem that connection to IMAP server is being opened and closed too much. 2001-05-26 Chris Hanson * imail/imail-top.scm[1.256]: Fix error message of SELECTED-URL so that it makes more sense to the end user. * imail/imail-browser.scm[1.2]: Eliminate compiler warning. * imail/compile.scm[1.11], imail/ed-ffi.scm[1.14], imail/imail-browser.scm[1.1], imail/imail.pkg[1.83], imail/print.sh[1.9]: Add first working draft of folder browser. * imail/imail-top.scm[1.255]: Change IMAIL-DEFAULT-CONTAINER to use selected URL if any. This sets default correctly in the folder browser when point is inside an expanded subfolder. * imail/imail-top.scm[1.254]: Implement SELECTED-CONTAINER-URL. * imail/imail-core.scm[1.139]: Change external representation of URL to use content name rather than presentation name. * imail/imail-top.scm[1.253]: Fix indentation. 2001-05-25 Chris Hanson * imail/imail-core.scm[1.138], imail/imail-file.scm[1.74], imail/imail-imap.scm[1.164], imail/imail-top.scm[1.252]: Cache CONTAINER-URL of every URL when it is created, so that the heirarchy can be quickly traversed. Rename URL-IS-SELECTABLE? as FOLDER-URL-IS-SELECTABLE?. Implement new operation URL-IS-CONTAINER? which returns the equivalent container URL of a URL (which may be a folder URL). * imail/imail-core.scm[1.137], imail/imail-file.scm[1.73], imail/imail-imap.scm[1.163], imail/imail-top.scm[1.251]: Change noun "child", used to refer to something in a container, to "content". 2001-05-24 Chris Hanson * edwin/buffer.scm[1.181]: Generalize WITH-READ-ONLY-DEFEATED to accept anything that ->BUFFER can resolve to a buffer. * imail/imail-imap.scm[1.162]: Don't echo server's mailbox name to the user. * edwin/dired.scm[1.185]: Include full key bindings in mode help. * imail/imail-imap.scm[1.161]: Fix CONTAINER-URL-CONTENTS to return container URLs when appropriate. * edwin/struct.scm[1.95]: Fix bug in previous change: was using procedures that returned marks when I expected indexes. * imail/imail-core.scm[1.136]: Add some more resource->URL reflectors. * imail/imail-core.scm[1.135], imail/imail-file.scm[1.72], imail/imail-imap.scm[1.160], imail/imail-top.scm[1.250]: Simplify meaning of CONTAINER-URL; it no longer does anything special for IMAP URLs. Define new operation CONTAINER-URL-FOR-PROMPT that has the behavior that CONTAINER-URL used to. Implement new operation URL-CHILD-NAME which is now the complement to CONTAINER-URL. These operations now return compatible halves of the URL, which may be recombined using MAKE-CHILD-URL to obtain the original URL. Change implementation of URL-PRESENTATION-NAME; it now just calls URL-CHILD-NAME, stripping a slash off the end if present. Clarify definition of URL-BASE-NAME. Revert CONTAINER-CONTENTS back to CONTAINER-URL-CONTENTS. Maybe tomorrow I'll change my mind again. * imail/imail-top.scm[1.249]: Regularize the names of the procedures that manage the selected container and selected URL. Move these and SELECT-FOLDER to the same page. * imail/imail-core.scm[1.134]: Change GET-MEMOIZED-RESOURCE to accept an optional argument specifying that it is an error if there is no associated resource. * imail/imail-core.scm[1.133], imail/imail-core.scm[1.132], imail/imail-core.scm[1.131], imail/imail-file.scm[1.71], imail/imail-imap.scm[1.159], imail/imail-rmail.scm[1.67], imail/imail-top.scm[1.248], imail/imail-umail.scm[1.48]: Rename the following server operations, then add methods to them to support containers as well as folders: create-folder => create-resource delete-folder => delete-resource rename-folder => rename-resource * imail/imail-core.scm[1.130]: Add a handful of methods to allow containers to be used in place of container URLs in operations where it seems useful. * imail/imail-top.scm[1.247]: Don't use history value as default for source of M-x imail-rename-folder and M-x imail-copy-folder. * imail/imail-top.scm[1.246]: Fix a few minor bugs from the recent changes. 2001-05-23 Chris Hanson * imail/imail-core.scm[1.129], imail/imail-file.scm[1.70], imail/imail-imap.scm[1.158], imail/imail-rmail.scm[1.66], imail/imail-top.scm[1.245], imail/imail-umail.scm[1.47]: Generalize folder operations: open-folder => open-resource close-folder => close-resource save-folder => save-resource Add methods to each of these renamed operations so that they can handle containers. * imail/imail-core.scm[1.128], imail/imail-file.scm[1.69], imail/imail-imap.scm[1.157]: Eliminate CONTAINER-URL-CONTENTS in favor of CONTAINER-CONTENTS. * imail/imail-core.scm[1.127], imail/imail-file.scm[1.68], imail/imail-imap.scm[1.156], imail/imail-top.scm[1.244]: Rename URL-CONTAINER to CONTAINER-URL to better reflect its meaning. * imail/imail-core.scm[1.126]: Fix bug in previous change: the object being modified is the container, not the URL for the container. * imail/imail-core.scm[1.125], imail/imail-file.scm[1.67], imail/imail-imap.scm[1.155], imail/imail-rmail.scm[1.65], imail/imail-summary.scm[1.42], imail/imail-top.scm[1.243], imail/imail-umail.scm[1.46]: Generalize implementations of properties and modification events so that they can be mixed in to arbitrary classes. Simplify property implementation to use an alist. This saves 4 words of memory, which is important for message objects. Create generalized resources, which are the referents of URLs. Use these as the base for folders, and create a new container type. Change CREATE-FOLDER, DELETE-FOLDER, RENAME-FOLDER, and APPEND-MESSAGE to signal appropriate events to the container of the folders being manipulated. This will allow folder browsers to automatically update themselves as their contents are changed. Add hooks to folder and container prompts, which allow the folder browser to use some of the standard server commands. The browser can supply the appropriate URL string without prompting. Don't let M-x imail-copy-folder copy from a folder to itself. * imail/todo.txt[1.120]: Note that RENAME-FOLDER must change the URL the target folder refers to. 2001-05-22 Chris Hanson * edwin/struct.scm[1.94]: Implement WITHOUT-TEXT-CLIPPED. * runtime/make.scm[14.69], runtime/runtime.pkg[14.367]: Duh. Can't delete DOS pathname support; that is used by Win32 and OS/2. * microcode/ntio.c[1.24]: Fix longstanding bug: must send WM_PAINT after SCREEN_WRITE so that messages appear on screen even when no input is being read. * microcode/ntfs.c[1.28]: Fix thinko in previous change. 2001-05-21 Chris Hanson * imail/imail-top.scm[1.242]: Fix bug: missing alternative in conditional was causing prompt to have random default value. 2001-05-18 Chris Hanson * imail/imail-imap.scm[1.154]: Change IMAP-URL-SERVER-MAILBOX to accept container URLs and strip the trailing delimiter off of them. * imail/imail.pkg[1.82]: Add package for folder browser. * imail/imail-summary.scm[1.41]: Fix typo in previous change. * imail/imail-top.scm[1.241]: Change M-x imail-delete-message to accept a prefix argument, which means to repeat just like imail-delete-forward. * imail/imail-summary.scm[1.40]: In REBUILD-IMAIL-SUMMARY-BUFFER, SELECTED-FOLDER can return #F, but the code wasn't allowing for that possibility. * imail/imail-top.scm[1.240]: If ERROR? argument to SELECTED-FOLDER and SELECTED-MESSAGE is false, don't signal an error even if the associated property isn't bound. The old behavior has caused too many problems in weird places, and has no real benefits. * edwin/curren.scm[1.144]: Implement RUN-BUFFER-HOOKS to capture code that runs the hooks list. Fix potential problem by copying the hooks list. 2001-05-17 Chris Hanson * imail/imail-core.scm[1.124]: Eliminate legacy file URL protocol names. These can only cause confusion when writing to output files that don't already exist. * imail/imail-core.scm[1.123], imail/imail-file.scm[1.66], imail/imail-imap.scm[1.153], imail/imail-rmail.scm[1.64], imail/imail-top.scm[1.239], imail/imail-umail.scm[1.45]: Eliminate MAKE-PEER-URL in favor of MAKE-CHILD-URL. * imail/imail-imap.scm[1.152]: Split the IMAP URL type into two types: one for IMAP folders, and the other for IMAP containers. The two are distinguished solely by the form of their mailbox names: a trailing slash (or null mailbox) means it's a container, otherwise it's a folder. 2001-05-15 Chris Hanson * imail/imail-core.scm[1.122], imail/imail-file.scm[1.65], imail/imail-imap.scm[1.151], imail/imail-rmail.scm[1.63], imail/imail-umail.scm[1.44], imail/imail-util.scm[1.38]: New operation CONTAINER-URL-CONTENTS. Reimplemented URL-IS-SELECTABLE? for file folders. New implementation probes the file to determine if it is a known type. File-folder completion now only considers files of known type and directories. It also doesn't consider "." and ".." directories. Code that mapped IMAP heirarchy delimiters was broken, although this caused no practical consequences. It has been reimplemented to make it both correct and simpler. IMAP-folder completion used to probe subfolders of a folder to determine if a folder should have a "/" at the end. This was wasteful of network bandwidth and had no practical consequences, so it has been changed to not do this. 2001-05-14 Chris Hanson * imail/imail-util.scm[1.37]: Restructure directory-reading code to clean up the interface a bit. 2001-05-13 Chris Hanson * imail/imail-core.scm[1.121], imail/imail-file.scm[1.64], imail/imail-imap.scm[1.150], imail/imail-rmail.scm[1.62], imail/imail-top.scm[1.238], imail/imail-umail.scm[1.43]: * Implement container URLs, which are separate from folder URLs. These are implemented as directories for file-based folders. IMAP folders are also containers. * Eliminate URL-CONTAINER-STRING; now there is URL-CONTAINER that returns a container URL. * Rename URL-SELECTABLE? to URL-IS-SELECTABLE?. * Eliminate "rmail" and "umail" protocols in favor of "file". This now covers both Rmail and unix-mail folders, as well as directories. The actual file type is determined by probing the first few bytes of the file for known patterns. The names "rmail" and "umail" are now treated as equivalent to "file" for upwards compatibility. * Change prompting code in front end so that it is possible to specify that the returned folder satisfies URL-IS-SELECTABLE?. Also add a procedure to prompt for a container. 2001-05-12 Chris Hanson * edwin/filcom.scm[1.217], edwin/print.scm[1.20], imail/imail-util.scm[1.36], runtime/dosdir.scm[1.10], runtime/unxdir.scm[14.12]: Use new predicate DIRECTORY-PATHNAME? to replace various ad-hoc mechanisms previously used to detect the same thing. * runtime/dospth.scm[1.41], runtime/pathnm.scm[14.34], runtime/runtime.pkg[14.366], runtime/unxpth.scm[14.26]: Implement DIRECTORY-PATHNAME?. Change implementation of DIRECTORY-PATHNAME and FILE-PATHNAME to be host-specific. 2001-05-10 Chris Hanson * edwin/filcom.scm[1.216]: Minor code clean-up for FILENAME-COMPLETE-STRING. * edwin/autosv.scm[1.34], edwin/dired.scm[1.184], edwin/filcom.scm[1.215], edwin/fileio.scm[1.154], edwin/utils.scm[1.48], edwin/vc.scm[1.77]: Simplify CATCH-FILE-ERRORS so that the error-handling procedure always gets the condition as an argument. * imail/imail-file.scm[1.63]: Fix bug: don't merge name of default pathname into partial URL string. * runtime/sfile.scm[14.26]: Fix bug: FILE-SYMBOLIC-LINK? is supposed to return the link contents if the result is true. My rewrite returned #t in that case. * edwin/prompt.scm[1.196]: Fix thinko in previous fix. 2001-05-09 Chris Hanson * edwin/dired.scm[1.183]: Fix bug in M-x dired-create-directory: PROMPT-FOR-DIRECTORY recently changed so that it always returns the result as a directory pathname with no file part. The code here was assuming that the name part was always present. * edwin/prompt.scm[1.195]: In PROMPT-FOR-STRING-TABLE-NAME, verifier must no assume that STRING-TABLE-GET will return false value only when key isn't in table. * imail/imail-core.scm[1.120], imail/imail-file.scm[1.62], imail/imail-imap.scm[1.149]: Add new procedure URL-SELECTABLE?. * runtime/sfile.scm[14.25]: Implement FILE-REGULAR?. * runtime/ntprm.scm[1.36], runtime/os2prm.scm[1.47], runtime/sfile.scm[14.24], runtime/unxprm.scm[1.61]: Implement new procedures FILE-TYPE-DIRECT and FILE-TYPE-INDIRECT. Several procedures in the OS-dependent files were identical for all operating-systems; move them to "sfile.scm". * microcode/ntfs.c[1.27], microcode/ntfs.h[1.5], microcode/os2fs.c[1.13], microcode/osfs.h[1.10], microcode/prntfs.c[1.17], microcode/prosfs.c[1.16], microcode/uxfs.c[1.21]: Implement new primitives FILE-TYPE-DIRECT and FILE-TYPE-INDIRECT. * runtime/make.scm[14.68], runtime/make.scm[14.67], runtime/runtime.pkg[14.365]: Delete DOS stuff. 2001-05-08 Chris Hanson * edwin/prompt.scm[1.194]: Fix problem: COMPLETE-INPUT-STRING should not return NO-MATCH when VERIFY-FINAL-VALUE fails on an exact match, because this match might not be the final value. Instead, just do the verification and return the information to the caller. 2001-05-07 Chris Hanson * edwin/prompt.scm[1.193]: Change logic to retain REQUIRE-MATCH? option for later use when verifying values. * edwin/prompt.scm[1.192]: Revert broken change to VERIFY-FINAL-VALUE. * edwin/filcom.scm[1.214]: Change directory prompts to be more regular. * imail/load.scm[1.27]: Update version number to reflect changes. * imail/todo.txt[1.119]: Add note about implementation of FOLDER-LENGTH for IMAP folders. Remove note about URL-EXISTS? which is now implemented. * imail/imail-core.scm[1.119]: Don't unmemoize a folder when URL-EXISTS? signals an error; it might be a transitory error. It's not obvious to me that we need to unmemoize here. Maybe we should just delete the call to URL-EXISTS? altogether. * imail/imail-top.scm[1.237]: VERIFY-FINAL-VALUE is always executed in a context that handles errors, so there's no need for us to do this. * imail/imail-imap.scm[1.148]: Change URL-EXISTS? to use the LIST command, and to filter out NOSELECT mailboxes. * edwin/prompt.scm[1.191]: Attempt to get VERIFY-FINAL-VALUE to work correctly for completing reads. It appears to be used for two different things; perhaps we need to redesign this. * edwin/compile.scm[1.14]: Compilations must use a PTY so that kill-compilation can work. 2001-05-04 Chris Hanson * imail/todo.txt[1.118]: URL-EXISTS? should not use IMAP STATUS command. 2001-05-03 Chris Hanson * microcode/uxproc.c[1.27]: Fix problem that crops up when compiling on OpenBSD. 2001-04-30 Chris Hanson * etc/optiondb.scm[1.7], etc/optiondb.scm[1.6]: Fix bug: previous loader depended on MITSCHEME_INF_DIRECTORY being set. I used to set this and didn't notice, but these days I don't set it. 2001-04-15 Chris Hanson * configure.in[1.3], microcode/configure.in[11.12]: Add option to preserve timestamps when installing programs, if the install program supports it. * imail/imail-top.scm[1.236], imail/todo.txt[1.117]: Fix bug: toggling of raw headers and raw body should be more separate. * imail/todo.txt[1.116]: Add item re M-x imail-toggle-header affecting body presentation. 2001-04-11 Chris Hanson * edwin/sendmail.scm[1.78]: Revert previous change -- it's not so simple. * edwin/sendmail.scm[1.77]: Allow attachments to have MESSAGE type. * imail/imail-top.scm[1.235], imail/todo.txt[1.115]: Fix bug: must preserve MIME headers in forwarded messages, otherwise the encapsulated message won't be interpreted correctly by the receiver. * edwin/sendmail.scm[1.76]: Fix bug: header names are case-insensitive. 2001-04-10 Chris Hanson * microcode/uxenv.c[1.21]: Add call to tzset to initialize _timezone if building under cygwin. * microcode/configure.in[11.11]: Add test for _timezone variable, needed for cygwin. Change preference of timezone variables to this order: __timezone, _timezone, timezone. * imail/todo.txt[1.114]: Add item about forwarded MIME messages. Add note about possible fix for network wedging. 2001-04-09 Chris Hanson * imail/todo.txt[1.113]: Add suggestion from hal to allow sorting of summary buffer. 2001-04-03 Chris Hanson * microcode/uxio.c[1.46], microcode/version.h[11.180]: Fix bug: examination of results from `poll' was ignoring file descriptors on which there were error conditions but no input. * runtime/thread.scm[1.34]: Always start the thread timer when there are any input registrations. The timer is necessary even if no threads are currently running. 2001-03-21 Chris Hanson * edwin/make.scm[3.108], runtime/version.scm[14.195]: Update version to reflect recent changes. * edwin/abbrev.scm[1.6], edwin/autold.scm[1.57], edwin/comman.scm[1.85], edwin/comtab.scm[1.72], edwin/debug.scm[1.56], edwin/modes.scm[1.34], edwin/modlin.scm[1.23], edwin/process.scm[1.59], edwin/rmail.scm[1.72], edwin/schmod.scm[1.49], edwin/sendmail.scm[1.75], edwin/xterm.scm[1.66], runtime/Attic/syntax.scm[14.33], runtime/dbgutl.scm[14.19], runtime/gensym.scm[14.6], runtime/infstr.scm[1.10], runtime/infutl.scm[1.64], runtime/pp.scm[14.41], runtime/uerror.scm[14.47], runtime/unpars.scm[14.47], runtime/unsyn.scm[14.21]: Change many references of SYMBOL->STRING to use SYMBOL-NAME instead. These are all situations where copying the returned string is unnecessary and wasteful. * runtime/io.scm[14.63], runtime/output.scm[14.23]: Allow WRITE-SUBSTRING output-port operation to accept external strings. * runtime/dbgutl.scm[14.18], runtime/emacs.scm[14.29], runtime/infutl.scm[1.63], runtime/krypt.scm[1.12], runtime/ntprm.scm[1.35], runtime/os2graph.scm[1.18], runtime/os2prm.scm[1.46], runtime/rgxcmp.scm[1.113], runtime/strout.scm[14.15]: Use SUBSTRING-MOVE! in preference to SUBSTRING-MOVE-LEFT! and SUBSTRING-MOVE-RIGHT!. * runtime/string.scm[14.41]: Further optimize string-copying code. * runtime/rgxcmp.scm[1.114], runtime/string.scm[14.42], runtime/string.scm[14.40]: Fix typo. 2001-03-20 Chris Hanson * imail/imail-rmail.scm[1.61]: Minimize consing in READ-RMAIL-ATTRIBUTES-LINE. 2001-03-19 Chris Hanson * imail/imail-file.scm[1.61], imail/imail-rmail.scm[1.60], imail/imail-umail.scm[1.42]: Change file folders to store their messages in a vector rather than a list. The linear-time lookup was killing performance on large folders. * imail/imail-rmail.scm[1.59]: Slow down the progress messages a bit; the parsing is now fast enough that we were doing too much work updating the screen. * imail/imail-util.scm[1.35]: Add DISCARD-CHARS and READ-STRING operations to xstring input port. Change SKIP-TO-LINE-START to use DISCARD-CHARS. * imail/imail-rmail.scm[1.58]: Fix problem: there's not necessarily a blank line between the alternate headers and the separator line. * runtime/string.scm[14.39]: Add LENGTH member to external-string structure. It turns out that it's important that fetching the length be fast. * imail/imail-rmail.scm[1.57]: Fix thinko in previous change. * imail/imail-util.scm[1.34]: Add support for DISCARD-CHAR operation. * imail/imail-file.scm[1.60], imail/imail-rmail.scm[1.56], imail/imail-umail.scm[1.41], imail/imail-util.scm[1.33]: Extend use of external-string storage to all file folders. Don't pre-compute message headers; compute them on the fly from the external string when needed. * imail/imail-top.scm[1.234]: Generalize IMAIL-UI:PROGRESS-METER to be able to show progress when total number of items isn't known. Memoize value computed by COUNT-UNSEEN-MESSAGES, to speed up navigation in very large folders. * imail/imail-core.scm[1.118], imail/imail.pkg[1.81]: Move MESSAGE-TIME into core. 2001-03-18 Chris Hanson * imail/imail-rmail.scm[1.55], imail/imail-rmail.scm[1.54], imail/imail-rmail.scm[1.53], imail/imail-util.scm[1.32], imail/load.scm[1.26]: Change implementation of Rmail folders to keep a copy of the Rmail file in an external string, and to refer to the message bodies using index pairs into the string. This change should allow Scheme to handle much larger Rmail folders. 2001-03-16 Chris Hanson * edwin/edwin.pkg[1.271], edwin/sendmail.scm[1.74], edwin/snr.scm[1.60]: Rewrite to generate the finished message into a temporary file rather than a buffer. This allows the sending of attachments that are too large to fit into memory. Also rework the attachment interface slightly to simplify the choices presented to the user when the MIME type of a file can't be determined automatically. * runtime/unxprm.scm[1.60]: Make sure temporary files aren't readable or writeable by anyone other than the owner. * edwin/make.scm[3.107], runtime/version.scm[14.194]: Update for next release. * runtime/option.scm[14.37], runtime/runtime.pkg[14.364]: Rewrite debugging-info directory on option files; they are sometimes loaded while building the system but must refer to debugging info in it's installed location. 2001-03-15 Chris Hanson * edwin/schmod.scm[1.48]: Add more CALL-WITH-*-FILE entries to indentation table. * runtime/fileio.scm[1.19], runtime/runtime.pkg[14.363], runtime/runtime.pkg[14.362]: Implement CALL-WITH-APPEND-FILE and CALL-WITH-BINARY-APPEND-FILE. * edwin/edwin.pkg[1.270]: Export RUN-SYNCHRONOUS-PROCESS-1. 2001-03-11 Chris Hanson * edwin/debian-changelog.scm[1.5]: Fix the value of fill-prefix in debian-changelog mode. 2001-03-09 Chris Hanson * microcode/configure.in[11.10], microcode/configure.in[11.9], microcode/makegen/Makefile.in.in[1.16], microcode/prbfish.c[1.12], microcode/prmcrypt.c[1.3], microcode/prmd5.c[1.7], microcode/prmhash.c[11.3]: Generalize handling of modules. Generate position-independent code for modules. 2001-03-08 Chris Hanson * runtime/load.scm[14.57]: Handle case where "lib" directory doesn't exist. * runtime/blowfish.scm[1.23], runtime/crypto.scm[14.13]: Add code to allow the crypto primitives to be dynamically loaded. * runtime/load.scm[14.56], runtime/runtime.pkg[14.361]: Implement LOAD-LIBRARY-OBJECT-FILE for loading primitives that are implemented as dynamically-loaded shared libraries. * runtime/uerror.scm[14.46], runtime/version.scm[14.193]: Add interface to new generic error-signalling mechanism. Requires microcode 14.3 or later. * microcode/utils.c[9.78], microcode/utils.c[9.77]: Fix problem that broke upwards compatibility. * microcode/makegen/Makefile.in.in[1.15]: Fix typo. * microcode/pruxdld.c[1.14]: Major cleanup: eliminate dead code from HP-UX and AIX; simplify interfaces; generate meaningful errors when possible using new error-signalling mechanism. * microcode/avltree.c[1.5], microcode/avltree.h[1.4], microcode/debug.c[9.52], microcode/extern.c[9.38], microcode/findprim.c[9.55], microcode/prim.h[9.46], microcode/primutl.c[9.74], microcode/usrdef.h[9.44]: Export `declare_primitive' and `install_primitive' in "usrdef.h". Change declaration of name and doc-string elements to be `const'. * microcode/errors.h[9.43], microcode/prims.h[9.48], microcode/utabmd.scm[9.78], microcode/utils.c[9.76]: Add mechanism to allow signalling an error with an arbitrary Scheme object as an argument. * microcode/extern.h[9.59], microcode/extern.h[9.58], microcode/string.c[9.44], microcode/string.c[9.43], microcode/string.c[9.42]: Add procedures to allocate strings without garbage collecting. * microcode/configure.in[11.8], microcode/makegen/Makefile.in.in[1.14], microcode/prbfish.c[1.11], microcode/prmcrypt.c[1.2], microcode/prmd5.c[1.6], microcode/prmhash.c[11.2], microcode/version.h[11.179]: Add support for loading crypto code as shared libraries. This allows a package to be distributed that will work even if the target machine doesn't have the required libraries installed. It also allows us to leave MIT Scheme in Debian's "main" section while still providing crypto support. 2001-03-03 Chris Hanson * microcode/acconfig.h[11.4], microcode/configure.in[11.7], microcode/tterm.c[1.12]: Don't even try to use . If we're using ncurses, don't override the definitions in , but do supply definitions for things not defined there. Add abstract speed_t type, which is defined in recent files. * microcode/terminfo.c[1.7]: Fix typo in previous edit. * microcode/tterm.c[1.11]: Don't use for ncurses; instead use and as specified in the documentation (doh!). Hopefully this will eliminate the problem on RH7. * microcode/terminfo.c[1.6]: Rewrite procedure to provide proper ANSI prototype. 2001-03-02 Chris Hanson * microcode/acconfig.h[11.3], microcode/configure.in[11.6], microcode/tterm.c[1.10]: Add extra compile-time flag to specify whether libncurses defines the `tparam' procedure. 2001-03-01 Chris Hanson * microcode/ntutl/config.h[1.4], microcode/os2utl/config.h[1.3]: Win32 and OS/2 need to include headers for blowfish and md5. * edwin/paths.scm[1.16]: Fix thinko in previous edit. * microcode/acconfig.h[11.2], microcode/configure.in[11.5], microcode/prbfish.c[1.10], microcode/prmd5.c[1.5]: Add support for OpenSSL. * microcode/tterm.c[1.9]: Fix compilation errors from previous edit. * runtime/blowfish.scm[1.22]: Don't use mcrypt for Blowfish; it provides 8-bit CFB and our original code provides 64-bit CFB. 2001-02-28 Chris Hanson * microcode/configure.in[11.4], microcode/prmcrypt.c[1.1], runtime/blowfish.scm[1.21], runtime/crypto.scm[14.12], runtime/runtime.pkg[14.360], runtime/version.scm[14.192]: Add support for mcrypt library. * microcode/makegen/files-optional.scm[1.3]: Add mcrypt support. * microcode/version.h[11.178]: Updates to support dynamic linking and mcrypt. * edwin/info.scm[1.136], edwin/make.scm[3.106], edwin/paths.scm[1.15]: Don't require existence of private Info directory. * microcode/tterm.c[1.8], microcode/tterm.c[1.7]: Use to define termcap interface, if available. Some recent versions of ncurses appear to have changed the interface. * microcode/terminfo.c[1.5]: Eliminate unnecessary compiler warnings. 2001-02-27 Chris Hanson * edwin/intmod.scm[1.113], edwin/intmod.scm[1.112], edwin/intmod.scm[1.111]: Fix standard prompt spacing so that it appears properly in a transcript file. * runtime/rep.scm[14.56]: Don't explicitly bind the standard I/O ports; let them all default to the cmdl port. * runtime/port.scm[1.20]: Change current I/O ports to default to cmdl port, as is done with other ports. * runtime/emacs.scm[14.28]: Fix initialization of console port: must notice when standard I/O ports are encapsulations of the console port. 2001-02-24 Chris Hanson * microcode/option.c[1.56]: Fix logic used to select the default band. It wasn't working correctly when there was only one band. 2001-02-23 Chris Hanson * README.txt[1.2]: Tweak punctuation. 2001-02-13 Chris Hanson * edwin/debian-changelog.scm[1.4], edwin/loadef.scm[1.45]: Move debian-changelog-mode-hook into "loadef.scm". 2001-02-12 Chris Hanson * microcode/bchdmp.c[9.88], microcode/bchgcl.c[9.52]: Fix fencepost error in handling of linkage sections. 2001-02-11 Chris Hanson * runtime/x11graph.scm[1.51]: Coerce all coordinate arguments to flonums. This allows ratnums and recnums to be used for these arguments. * runtime/fixart.scm[1.6]: Implement ->FLONUM operation to coerce real numbers to flonums. 2001-02-08 Chris Hanson * runtime/mime-codec.scm[14.9]: Add state to look for line starting with NON-BASE64 character, and stop decoding there. This works around problem that arises when mail-processing agents (e.g. mailman) randomly glue text on the end of a MIME message. 2001-02-06 Chris Hanson * edwin/debian-changelog.scm[1.3]: Forgot to supply buffer in which to do local variable bindings. * edwin/Makefile.in[1.4], edwin/fileio.scm[1.153]: New code to do Debian changelogs. 2001-02-05 Chris Hanson * edwin/debian-changelog.scm[1.2], edwin/loadef.scm[1.44]: Add command debian-changelog-mode. Fix bugs; code now appears to work. * runtime/rgxcmp.scm[1.112]: Grumble. Messing around while debugging problems caused by incorrectly built bands. * runtime/rgxcmp.scm[1.111]: Reengineer compilation of character set notation. * runtime/chrset.scm[14.12]: CHAR-SET:NOT-01 must be first set defined so that error checks on other calls will work right. * edwin/debian-changelog.scm[1.1], edwin/decls.scm[1.70], edwin/ed-ffi.scm[1.51], edwin/edwin.pkg[1.269], edwin/loadef.scm[1.43]: New code to do Debian changelogs. * imail/imap-response.scm[1.43]: CHAR-SET:NOT-NUMERIC now defined by runtime system. * edwin/utils.scm[1.47]: CHAR-SET:NOT-GRAPHIC now defined by runtime system. * runtime/chrset.scm[14.11], runtime/runtime.pkg[14.359]: Add inversions for all standard character sets. * edwin/buffer.scm[1.180], edwin/edwin.pkg[1.268], edwin/regexp.scm[1.75], edwin/sendmail.scm[1.73]: Update copyright dates. * edwin/edwin.pkg[1.267], edwin/regexp.scm[1.74]: New procedure RE-MATCH-EXTRACT-STRING. * edwin/edwin.pkg[1.266], edwin/sendmail.scm[1.72]: Add procedures to access the user's email-address info. 2001-01-29 Chris Hanson * runtime/crypto.scm[14.11]: Allow names vectors to be sparse. Newer versions of mhash don't use the index space densely. 2001-01-26 Chris Hanson * edwin/txtprp.scm[1.23]: KEY * edwin/txtprp.scm[1.22]: Allow keys to be Edwin variables too. * edwin/buffer.scm[1.179]: Allow a variable value to be stored in a region as a text property. * imail/imail-top.scm[1.233]: Add command imail-toggle-wrap-entity. Change all toggle commands to be under C-c C-t. 2001-01-24 Chris Hanson * imail/imail-top.scm[1.232]: Use new MIME-BODY-ENCLOSED? and SPECIFIC-PROPERTY-REGION to properly compute the buffer region associated with a compound MIME entity. The problem is that the IMAIL-MIME-INFO text property associated with parts of the region will be that of subentities of the entity, so it's necessary to use the enclosure information to determine this. * imail/imail-core.scm[1.117], imail/imail-core.scm[1.116], imail/imail-imap.scm[1.147]: Modify mime-body datatypes to have a pointer to the enclosing entity. * edwin/simple.scm[1.54]: Generalize SPECIFIC-PROPERTY-REGION to allow the user to supply an equivalence predicate. * imail/imail-top.scm[1.231]: Don't bind mouse commands to entity regions; just use single global binding. * imail/imail-top.scm[1.230]: When attaching MIME info to a region, don't overwrite sub-regions that already have MIME info attached. * edwin/simple.scm[1.53]: Change REGION-PUT! to allow it to specify the optional argument to ADD-TEXT-PROPERTY. * edwin/txtprp.scm[1.21]: Add optional argument to ADD-TEXT-PROPERTY that allows it to add the property to a region without overwriting any existing sub-regions in which the property is already bound. Also: invert sense of predicate passed to MODIFY-TEXT-PROPERTIES, so that it identifies the intervals to be modified rather than those not to be modified. 2001-01-23 Chris Hanson * imail/imail-imap.scm[1.146]: Fix bug: UW IMAP sometimes returns multiple FETCH responses to a FETCH, while we were expecting just one with multiple attributes. So if there are multiple responses, merge them. 2001-01-22 Chris Hanson * imail/imail-imap.scm[1.145]: Don't fetch ranges of the form "N:*" when N is greater than the length of the folder. This causes an error to be signalled on UW IMAP (although Cyrus accepts this and returns nothing). 2001-01-06 Chris Hanson * runtime/io.scm[14.62], runtime/runtime.pkg[14.358]: Strip off external-string wrapper before handing it to the microcode. * imail/imail-util.scm[1.31], imail/load.scm[1.25]: Update copyright date. * imail/imail-summary.scm[1.39], imail/imail-summary.scm[1.38], imail/imail.pkg[1.80]: Implement new variable imail-summary-auto-select to allow the user to move around in the summary buffer without automatically selecting messages. (Requested by Hal.) * edwin/make.scm[3.105]: Increment version to reflect recent changes. * edwin/comtab.scm[1.71]: Fix bug: COMTAB-KEY-BINDINGS was signalling error when the given command was bound to a mouse button. Also, sort the result so that the simplest kinds of keys appear first; this is usually what's wanted when reverse-mapping a command for documentation. * edwin/calias.scm[1.20]: Kludge in support for buttons in place where they might occur for help commands. Buttons should really be merged into the special-key mechanism. * edwin/comtab.scm[1.70]: Try a different strategy for aliasing upper-case letters to lower-case ones: rather than creating explicit aliases, just look up both as needed. * imail/imail-top.scm[1.229]: Use new mail-notification mechanism in the notifier. This allows IMAIL to coexist with the notifier. * edwin/notify.scm[1.19]: Add procedure NOTIFIER:SET-MAIL-STRING! to allow an alternate mail reader (e.g. IMAIL) to control mail notification. 2001-01-05 Chris Hanson * microcode/string.c[9.41]: Fix typo in ht_delete. Don't unnecessarily try to grow or shrink hash table. * runtime/string.scm[14.38]: Pass external-string descriptor to substring-move-FOO! rather than runtime's wrapper. * runtime/runtime.pkg[14.357], runtime/string.scm[14.37]: Add operations for XSTRING (extended string) objects. 2001-01-04 Chris Hanson * imail/imail-util.scm[1.30], imail/load.scm[1.24]: Implement input port from external string. * runtime/make.scm[14.66], runtime/runtime.pkg[14.356], runtime/string.scm[14.36], runtime/version.scm[14.191]: Add interface to external strings. * microcode/string.c[9.40]: Primitive names are supposed to be upper-case. * microcode/prims.h[9.47], microcode/prosio.c[1.18], microcode/string.c[9.39], microcode/version.h[11.177]: Implement external-string mechanism for storing text data outside of Scheme's heap. 2000-12-29 Chris Hanson * imail/load.scm[1.23]: Reimplement handling of MIME entities. Now all entities are (more or less) well-formed XML, using the keyword "imail-part". Presentation of an entity is now consistent, whether it was originally shown inline or out of line. New option allows message digests to have their messages show out of line. imail-use-original-mime-boundaries replaced by imail-mime-boundary-style; the latter additionally supports a boundary that is an SGML comment. 2000-12-28 Chris Hanson * imail/imail-core.scm[1.115], imail/imail-top.scm[1.228], imail/imail.pkg[1.79]: Reimplement handling of MIME entities. Now all entities are (more or less) well-formed XML, using the keyword "imail-part". Presentation of an entity is now consistent, whether it was originally shown inline or out of line. New option allows message digests to have their messages show out of line. imail-use-original-mime-boundaries replaced by imail-mime-boundary-style; the latter additionally supports a boundary that is an SGML comment. 2000-12-25 Chris Hanson * edwin/Makefile.in[1.3], edwin/Makefile.in[1.2], runtime/Makefile.in[1.3], runtime/Makefile.in[1.2]: Fix problem remaking symbolic links. * edwin/win32.scm[1.15]: Fix bug: C-g was not acting as interrupt character. 2000-12-23 Chris Hanson * etc/optiondb.scm[1.5]: Add WIN32 option. Alphabetize options. * etc/optiondb.scm[1.4]: Update to new GUARDED-SYSTEM-LOADER. * microcode/bchdmp.c[9.87]: Must include unix-emulation header files. These were inadvertently removed with the mktemp changes. 2000-12-21 Chris Hanson * compiler/configure[1.4]: Can't use -f test on symbolic links that point to directories. * etc/Clean.sh[1.5]: Delete configured makefile in "distclean" rule. * README.txt[1.1]: Initial revision. * Makefile.in[1.16], configure.in[1.2], edwin/Makefile.in[1.1], etc/Setup.sh[1.6], imail/Makefile.in[1.1], runtime/Makefile.in[1.1], sos/Makefile.in[1.1]: Define per-directory Makefiles with custom "install" rules for those directories that supply things to be installed. * imail/imail-summary.scm[1.37]: Change highlighting so that only the date, subject, and author are highlighted. This makes it easier to see point. * imail/imail-top.scm[1.227]: Set mode-line-process to a procedure value, so that the new mode line is computed only by need. * imail/imail-summary.scm[1.36]: Fix problems with previous mode-line tweak by setting mode-line-process to a procedure value that is called whenever the mode line is generated. * imail/imail-top.scm[1.226]: Fix typo. * imail/imail-summary.scm[1.35]: Change imail-summary mode line to contain a connection-status indicator. * imail/imail-top.scm[1.225]: Fix bug: make sure that "[New Mail]" marker is removed if the default folder is deleted. * imail/imail-top.scm[1.224]: Fix problem with global mail notification: the code that decided whether to do this depended on the selected buffer. 2000-12-20 Chris Hanson * imail/todo.txt[1.112]: Write down assorted things I've been thinking about. 2000-12-19 Chris Hanson * etc/compile.scm[1.2]: Make sure that all cref files are built. * Makefile.in[1.15]: Remove dependence of "install" on "all". This will eliminate gratuitous rebuilding of bands. * Makefile.in[1.14]: Make sure that bands are written to output directory. * runtime/version.scm[14.190]: Increment release number. * edwin/make.scm[3.104], imail/load.scm[1.22]: Increment version to reflect recent changes. 2000-12-16 Chris Hanson * imail/imail-top.scm[1.223]: Change M-x imail-quit again -- this time to reverse the meaning of the prefix argument. Now the default is to quit from all folders. * imail/imail-top.scm[1.222]: Add prefix argument to M-x imail-quit that says to close _all_ folders. 2000-12-09 Chris Hanson * compiler/Clean.sh[1.4]: Don't clean vax disassembler links for "distclean". 2000-12-08 Chris Hanson * Attic/Makefile[1.19], Attic/configure[1.4], Clean.sh[1.4], Clean.sh[1.3], Makefile.in[1.13], Makefile.in[1.12], Makefile.in[1.11], Makefile.in[1.10], Makefile.in[1.9], Makefile.in[1.8], Makefile.in[1.7], Makefile.in[1.6], Makefile.in[1.5], Makefile.in[1.4], Makefile.in[1.3], Makefile.in[1.2], Makefile.in[1.1], Makefile.std[1.11], Setup.sh[1.6], Setup.sh[1.5], Setup.sh[1.4], Setup.sh[1.3], compiler/Setup.sh[1.3], configure.in[1.1], etc/Setup.sh[1.5], etc/TUTORIAL[1.1], etc/functions.sh[1.1], etc/mime.types[1.1], install-sh[1.1], microcode/Setup.sh[1.5], microcode/Setup.sh[1.4], microcode/Setup.sh[1.3], microcode/configure.in[11.3], microcode/makegen/Makefile.in.in[1.13], microcode/makegen/Makefile.in.in[1.12], microcode/makegen/Makefile.in.in[1.11], microcode/makegen/makeinit.sh[1.8], microcode/makegen/makeinit.sh[1.7], mkinstalldirs[1.1], runtime-check/Setup.sh[1.3]: Use autoconf for top-level Makefile. * Clean.sh[1.2], etc/Setup.sh[1.2]: Fix typo. * Attic/Makefile[1.18], Attic/Makefile[1.17], Clean.sh[1.1], Makefile.std[1.10], Makefile.std[1.9], Setup.sh[1.2], Setup.sh[1.1], Tags.sh[1.1], compiler/Attic/Makefile[1.20], compiler/Clean.sh[1.3], compiler/Clean.sh[1.2], compiler/Clean.sh[1.1], compiler/Setup.sh[1.2], compiler/Setup.sh[1.1], compiler/Stage.sh[1.1], compiler/Tags.sh[1.1], cref/Attic/Clean.sh[1.2], cref/Attic/Clean.sh[1.1], edwin/Clean.sh[1.2], edwin/Clean.sh[1.1], etc/Attic/bootstrap-compile.scm[1.8], etc/Attic/bootstrap.sh[1.5], etc/Attic/build-compiler.scm[1.2], etc/Attic/build-edwin.scm[1.2], etc/Attic/build-runtime.scm[1.2], etc/Attic/build-tree.sh[1.5], etc/Attic/create-dirs.sh[1.8], etc/Attic/runtime-check.cbf[1.2], etc/Clean.sh[1.4], etc/Clean.sh[1.3], etc/Clean.sh[1.2], etc/Clean.sh[1.1], etc/Setup.sh[1.4], etc/Setup.sh[1.3], etc/Setup.sh[1.1], etc/Stage.sh[1.2], etc/Stage.sh[1.1], etc/Tags.sh[1.1], microcode/Attic/Mclean.sh[1.4], microcode/Clean.sh[1.1], runtime-check/Attic/Makefile[1.3], runtime-check/Clean.sh[1.1], runtime-check/Setup.sh[1.2], runtime-check/Setup.sh[1.1]: Redesign the structure for setup and clean rules. New structure uses shell scripts in each directory, which the makefiles refer to. This greatly simplifies the configuration code because it was getting too painful to put complex shell scripts inside the makefiles. * microcode/makegen/Makefile.in.in[1.10]: When "Makefile.deps" was moved to top level directory, Forgot to change "maintainer-clean" rule. 2000-12-07 Chris Hanson * runtime-check/Attic/Makefile[1.2]: Fix typo in previous change. * Attic/Makefile[1.16], etc/Attic/create-dirs.sh[1.7]: Don't need to create "runtime-check" anymore; using a different strategy. * Attic/Makefile[1.15]: Fix spurious errors from deleting non-existent files. * Attic/Makefile[1.14]: Fix typo. * Attic/Makefile[1.13]: Fix up "*clean" rules to handle "runtime-check" and "lib". * etc/Attic/create-dirs.sh[1.6]: Make sure "runtime-check/Makefile" exists. * etc/Attic/create-dirs.sh[1.5], etc/Attic/create-dirs.sh[1.4]: Need to have file "runtime-check/runtime.cbf". * Attic/Makefile[1.12], Makefile.std[1.8], etc/Attic/create-dirs.sh[1.3]: Fix broken test commands. * etc/Attic/create-dirs.sh[1.2]: Fix rule to create runtime-check directory. Link rules were broken, and script can't assume that .bin files exist yet; we must work from the .scm files and transform the names. * Attic/Makefile[1.11]: Define "all" rule. * etc/optiondb.scm[1.3]: Use more powerful loader to support build process. * etc/Attic/create-dirs.sh[1.1], etc/Attic/runtime-check.cbf[1.1], etc/build-bands.sh[1.1], etc/compile.scm[1.1], runtime-check/Attic/Makefile[1.1], runtime-check/runtime.cbf[1.1]: Initial revision. * microcode/makegen/Makefile.in.in[1.9], microcode/makegen/Makefile.in.in[1.8]: Add rules to make and install "utabmd.bin". * microcode/mkinstalldirs[1.1]: Import revision 1.13 from automake. * microcode/makegen/Makefile.in.in[1.7]: First cut at install rules. * edwin/wincom.scm[1.132]: Fix some bad interactions between buffer layouts and popped-up windows. * microcode/ntutl/config.h[1.3]: Watcom C/C++ and Visual C++ both have , and it must be loaded in order to get the definition for O_BINARY. 2000-12-06 Chris Hanson * Attic/configure[1.3], compiler/configure[1.3]: Fix typo. * Attic/Makefile[1.10], microcode/Attic/Mclean.sh[1.3], microcode/Attic/Mclean.sh[1.2], microcode/Attic/Mclean.sh[1.1]: Move knowledge about doing "maintainer-clean" into script in microcode directory. * microcode/configure.in[11.2]: Don't try to link architecture files if they already exist. * Attic/Makefile[1.9]: For "maintainer-clean", treat microcode directory specially. If "configure" exists but "Makefile" doesn't, run "configure". * microcode/Setup.sh[1.2], microcode/makegen/Makefile.in.in[1.6], microcode/makegen/makeinit.sh[1.6]: Change "makegen/makeinit.sh" to leave the directory configured. This allows "Setup.sh" to use "make setup", thus avoiding replication of information. * Attic/Makefile[1.8]: Add rcs and win32 directories. * compiler/Attic/Makefile[1.19]: Don't create machine-specific files in "setup" rule. But do clean them in "distclean" rule. * Attic/configure[1.2], compiler/configure[1.2], compiler/configure[1.1]: Move compiler configuration to a file in the compiler directory. * Attic/Makefile[1.7], Attic/Makefile[1.6], Attic/Makefile[1.5]: Don't execute "*clean" rule in subdirectory if there's no makefile. * compiler/Attic/Makefile[1.18]: Don't delete the Makefile. * compiler/Attic/Makefile[1.17]: Add code to "setup" rule to create links into machine directory. (The machine link itself is created at configuration time.) * compiler/Attic/Makefile[1.16]: Don't show conditional for "machine". * Attic/Makefile[1.4]: Don't abort clean rules if one subdirectory fails. * compiler/Attic/Makefile[1.15]: Add rules to clean the directory. * microcode/makegen/makeinit.sh[1.5]: Use "make distclean" to clean up unneeded files; don't reproduce information that is already present in the makefile. Add comments explaining what each step does. * Attic/Makefile[1.3], microcode/makegen/Makefile.in.in[1.5]: Move setup stuff to shell script. This must be possible to do without a Makefile. * Attic/configure[1.1], compiler/config.guess[1.1], microcode/Setup.sh[1.1]: Initial revision. 2000-12-05 Chris Hanson * microcode/makegen/makeinit.sh[1.4]: Do equivalent of "distclean" after building "Makefile.in". * compiler/Attic/Makefile[1.14]: Fix typo. * Makefile.std[1.7]: Fix broken logic. * Makefile.std[1.6]: Add commands to delete packaging files when appropriate. * Attic/Makefile[1.2]: When doing "setup" for microcode directory, must create Makefile in order to run the setup rule. * Attic/Makefile[1.1]: Initial revision. * Makefile.std[1.5]: Add "*clean" rules. * compiler/Attic/Makefile[1.13]: Don't create "machine" link in source directory; that is supposed to go in the target directory. * Makefile.std[1.4]: Clean up commands for staging rules. * compiler/Attic/Makefile[1.12]: Rewrite to eliminate GNU make dependencies. Add "setup" rule. * Makefile.std[1.3], microcode/makegen/Makefile.in.in[1.4], microcode/makegen/Makefile.in.in[1.3]: Add "setup" rule. * edwin/filcom.scm[1.213]: Fix bug: alternate file doesn't have to exist. Calling PROMPT-FOR-ALTERNATE-FILE also prevented using this command to visit a directory. * microcode/makegen/makeinit.sh[1.3]: Don't write files in "makegen/"; this causes problems when the build directory is symlinked into the source directory. * microcode/Attic/config.h[9.102], microcode/Attic/dosasutl.asm[1.5], microcode/Attic/dosconio.c[1.14], microcode/Attic/dosenv.c[1.11], microcode/Attic/dosexcp.c[1.7], microcode/Attic/dosexcp.h[1.5], microcode/Attic/dosfg.c[1.5], microcode/Attic/dosfile.c[1.5], microcode/Attic/dosfs.c[1.7], microcode/Attic/dosi10.asm[1.4], microcode/Attic/dosinsn.h[1.4], microcode/Attic/dosint10.c[1.10], microcode/Attic/dosint10.h[1.4], microcode/Attic/dosio.c[1.10], microcode/Attic/dosio.h[1.6], microcode/Attic/doskbd.c[1.14], microcode/Attic/doskbd.h[1.4], microcode/Attic/doskbutl.asm[1.8], microcode/Attic/dosscan.h[1.6], microcode/Attic/dosselec.h[1.4], microcode/Attic/dossig.c[1.18], microcode/Attic/dossys.c[1.6], microcode/Attic/dossys.h[1.4], microcode/Attic/dosterm.h[1.4], microcode/Attic/dostop.c[1.14], microcode/Attic/dostop.h[1.4], microcode/Attic/dostrap.c[1.8], microcode/Attic/dostrap.h[1.5], microcode/Attic/dostterm.c[1.4], microcode/Attic/dostty.c[1.5], microcode/Attic/dosutil.c[1.4], microcode/Attic/dosutil.h[1.4], microcode/Attic/dosx32.c[1.8], microcode/Attic/dosxcutl.asm[1.9], microcode/Attic/msdos.h[1.8], microcode/Attic/oscond.h[1.27], microcode/Attic/posixtyp.h[1.17], microcode/Attic/prdosenv.c[1.12], microcode/Attic/prdosfs.c[1.6], microcode/acconfig.h[11.1], microcode/ansidecl.h[1.7], microcode/avltree.h[1.3], microcode/bchdmp.c[9.86], microcode/bchdrn.c[1.10], microcode/bchdrn.h[1.10], microcode/bchgcc.h[9.63], microcode/bchgcl.c[9.51], microcode/bchmmg.c[9.98], microcode/bchmmg.c[9.97], microcode/bchpur.c[9.70], microcode/bchpur.c[9.69], microcode/bchutl.c[1.11], microcode/bignum.c[9.49], microcode/bintopsb.c[9.72], microcode/bitstr.c[9.63], microcode/bitstr.h[1.10], microcode/boot.c[9.104], microcode/cmpauxmd/hppa.m4[1.39], microcode/cmpauxmd/m4-dos[1.2], microcode/cmpauxmd/makefile[1.7], microcode/cmpauxmd/mc68k.m4[1.27], microcode/cmpauxmd/vax.m4[1.4], microcode/cmpgc.h[1.31], microcode/cmpint.c[1.92], microcode/cmpint.h[10.7], microcode/cmpintmd/i386.h[1.32], microcode/cmptype.h[1.3], microcode/config.guess[11.1], microcode/config.sub[11.1], microcode/configure.in[11.1], microcode/confshared.h[11.1], microcode/const.h[9.46], microcode/debug.c[9.51], microcode/default.h[9.44], microcode/dmpwrld.c[9.40], microcode/dosutl/Attic/bch-prm.lst[1.8], microcode/dosutl/Attic/bch-ztc.lst[1.8], microcode/dosutl/Attic/config.bat[1.3], microcode/dosutl/Attic/float.h[1.2], microcode/dosutl/Attic/limits.h[1.2], microcode/dosutl/Attic/makefile[1.14], microcode/dosutl/Attic/scm-prm.lst[1.8], microcode/dosutl/Attic/scm-ztc.lst[1.8], microcode/error.c[1.7], microcode/extern.h[9.57], microcode/fasdump.c[9.64], microcode/fasload.c[9.88], microcode/findprim.c[9.54], microcode/foreign.c[1.3], microcode/foreign.h[1.3], microcode/gccode.h[9.57], microcode/gcloop.c[9.47], microcode/hooks.c[9.59], microcode/hppacach.h[1.6], microcode/hppanwca.c[1.5], microcode/install-sh[11.1], microcode/intern.c[9.57], microcode/interp.c[9.90], microcode/interp.h[9.42], microcode/intrpt.h[1.21], microcode/liarc.h[1.15], microcode/lookprm.c[1.12], microcode/lookup.c[9.58], microcode/lookup.h[9.52], microcode/m/Attic/alpha.h[1.5], microcode/m/Attic/apoll68k.h[1.5], microcode/m/Attic/hcx.h[1.4], microcode/m/Attic/hp9k300.h[1.14], microcode/m/Attic/hp9k400.h[1.10], microcode/m/Attic/hp9k800.h[1.15], microcode/m/Attic/i386.h[1.7], microcode/m/Attic/ibm032.h[1.4], microcode/m/Attic/mips.h[1.11], microcode/m/Attic/next.h[1.7], microcode/m/Attic/rs6000.h[1.4], microcode/m/Attic/sun3.h[1.8], microcode/m/Attic/sun4.h[1.5], microcode/m/Attic/umax.h[1.4], microcode/m/Attic/vax.h[1.7], microcode/makegen/Makefile.in.in[1.2], microcode/makegen/files-core.scm[1.2], microcode/makegen/files-gc-bch.scm[1.2], microcode/makegen/files-gc-std.scm[1.2], microcode/makegen/files-optional.scm[1.2], microcode/makegen/files-os-prim.scm[1.2], microcode/makegen/files-other.scm[1.2], microcode/makegen/files-unix.scm[1.2], microcode/makegen/m4.sh[1.2], microcode/makegen/makegen.scm[1.2], microcode/makegen/makeinit.sh[1.2], microcode/memmag.c[9.66], microcode/memmag.h[1.8], microcode/missing.c[9.33], microcode/mul.c[9.35], microcode/nt.h[1.9], microcode/ntenv.c[1.19], microcode/ntfs.c[1.26], microcode/ntgui.c[1.28], microcode/ntio.c[1.23], microcode/ntscreen.c[1.46], microcode/ntsig.c[1.22], microcode/nttop.c[1.30], microcode/nttrap.c[1.18], microcode/nttterm.c[1.4], microcode/ntutl/config.h[1.2], microcode/ntutl/makefile.wcc[1.16], microcode/ntutl/ntgui.rc[1.10], microcode/object.h[9.50], microcode/obstack.c[1.6], microcode/obstack.h[1.11], microcode/option.c[1.55], microcode/os.h[1.7], microcode/os2.h[1.7], microcode/os2fs.c[1.12], microcode/os2msg.c[1.14], microcode/os2pm.c[1.33], microcode/os2pmcon.c[1.26], microcode/os2proc.c[1.7], microcode/os2sock.c[1.15], microcode/os2term.c[1.4], microcode/os2top.c[1.21], microcode/os2utl/config.cmd[1.4], microcode/os2utl/config.h[1.2], microcode/os2utl/makefile[1.15], microcode/os2utl/makefile.cmn[1.13], microcode/os2utl/makefile.emx[1.9], microcode/os2utl/makefile.gcc[1.7], microcode/os2utl/makefile.vac[1.7], microcode/os2utl/makefile.wcc[1.8], microcode/os2utl/mkos2pm.scm[1.2], microcode/os2xcpt.c[1.8], microcode/osenv.h[1.10], microcode/osfs.h[1.9], microcode/osio.h[1.15], microcode/osscheme.c[1.11], microcode/osscheme.h[1.11], microcode/outf.c[1.12], microcode/outf.h[1.5], microcode/ppband.c[9.50], microcode/prbfish.c[1.9], microcode/primutl.c[9.73], microcode/prmcon.h[1.4], microcode/prntenv.c[1.10], microcode/prntfs.c[1.16], microcode/prntio.c[1.13], microcode/pros2fs.c[1.18], microcode/pros2io.c[1.9], microcode/prosenv.c[1.17], microcode/prosfs.c[1.15], microcode/prosproc.c[1.19], microcode/pruxdld.c[1.13], microcode/pruxenv.c[1.19], microcode/pruxfs.c[9.56], microcode/pruxio.c[1.8], microcode/pruxsock.c[1.18], microcode/psbmap.h[9.44], microcode/purify.c[9.59], microcode/purutl.c[9.51], microcode/regex.c[1.20], microcode/s/Attic/386bsd.h[1.4], microcode/s/Attic/aix.h[1.4], microcode/s/Attic/bsd4-2.h[1.9], microcode/s/Attic/bsd4-3.h[1.7], microcode/s/Attic/decosf.h[1.5], microcode/s/Attic/dos.m4[1.7], microcode/s/Attic/freebsd.h[1.5], microcode/s/Attic/hpux.h[1.13], microcode/s/Attic/irix4.h[1.6], microcode/s/Attic/irix6.h[1.3], microcode/s/Attic/linux.h[1.21], microcode/s/Attic/linuxelf.lds[1.2], microcode/s/Attic/mach4-3.h[1.5], microcode/s/Attic/newsos5.h[1.6], microcode/s/Attic/nextos.h[1.8], microcode/s/Attic/nt.m4[1.3], microcode/s/Attic/sunos3.h[1.6], microcode/s/Attic/sunos4.h[1.9], microcode/s/Attic/sysv3.h[1.6], microcode/s/Attic/sysv4.h[1.5], microcode/s/Attic/ultrix.h[1.17], microcode/s/Attic/ultrix.m4[1.8], microcode/s/Attic/umax.h[1.7], microcode/scheme.h[9.39], microcode/storage.c[9.57], microcode/syntax.c[1.25], microcode/syscall.h[1.13], microcode/sysprim.c[9.47], microcode/term.c[1.15], microcode/termcap.c[1.7], microcode/terminfo.c[1.4], microcode/transact.c[1.5], microcode/trap.h[9.45], microcode/unxutl/Attic/cf-dist.h[1.26], microcode/unxutl/Attic/config[1.32], microcode/unxutl/Attic/makefile[1.29], microcode/unxutl/Attic/y300.lcl[1.25], microcode/unxutl/Attic/y700.lcl[1.9], microcode/unxutl/Attic/y800.lcl[1.3], microcode/unxutl/Attic/ymake.sed[1.2], microcode/unxutl/Attic/ymkfile[1.97], microcode/unxutl/Attic/ynws3250.lcl[1.4], microcode/utils.c[9.75], microcode/ux.c[1.20], microcode/ux.h[1.74], microcode/uxctty.c[1.14], microcode/uxenv.c[1.20], microcode/uxfile.c[1.10], microcode/uxfs.c[1.20], microcode/uxio.c[1.45], microcode/uxproc.c[1.26], microcode/uxsig.c[1.35], microcode/uxsig.h[1.6], microcode/uxsock.c[1.26], microcode/uxterm.c[1.28], microcode/uxtop.c[1.25], microcode/uxtrap.c[1.30], microcode/uxtrap.h[1.29], microcode/version.h[11.176], microcode/wabbit.c[1.8], microcode/x11.h[1.17], microcode/x11base.c[1.76], microcode/xdebug.c[9.34]: Merge in changes from branch ac-new-bch-gc. * pcsample/Makefile[1.3]: Add rule for making TAGS file. * microcode/makegen/Makefile.in.in[1.1.2.1.2.1]: Add rule to etags so that primitive definitions are tagged. 2000-12-04 Chris Hanson * microcode/ntfs.c[1.25.4.2], microcode/osfs.h[1.8.4.2]: Fix copyright date. * microcode/bchdmp.c[9.85.2.1.2.4], microcode/bchgcc.h[9.60.2.3.2.5], microcode/bchmmg.c[9.95.2.3.2.5], microcode/ntutl/makefile.wcc[1.13.2.1.2.4], microcode/os2utl/makefile.cmn[1.12.2.1.2.3]: Eliminate use of `mktemp'; instead use portable `OS_file_touch' which is safer. * microcode/ntfs.c[1.25.4.1], microcode/os2fs.c[1.11.4.1], microcode/osfs.h[1.8.4.1], microcode/prntfs.c[1.15.2.1.2.1], microcode/pros2fs.c[1.17.4.1], microcode/prosfs.c[1.14.2.1.2.1], microcode/pruxfs.c[9.55.2.1.2.1], microcode/uxfs.c[1.19.2.1.2.1]: Define standard procedure `OS_file_touch' and merge OS-specific copies of corresponding primitives into a OS-independent primitive. * microcode/bchdmp.c[9.85.2.1.2.3]: Finish rewriting `dump_loop'. Finished product is very similar to gc_loop. * microcode/bchgcl.c[9.50.4.7]: Add some macros to abstract the process of dumping the free and scan buffers. * microcode/bchdmp.c[9.85.2.1.2.2]: First incomplete draft of rewrite. File reorganized and style converted. `dump_loop' is in transition but cursory testing indicates that it still works. * microcode/bchgcc.h[9.60.2.3.2.4], microcode/bchgcl.c[9.50.4.6]: Rename FLOAT_ALIGN_FREE to BCH_ALIGN_FLOAT. Define BCH_ALIGN_FLOAT_ADDRESS. * edwin/filcom.scm[1.212]: Change M-x find-alternate-file to prompt as it does in Emacs: with the full pathname of the current buffer's file, if any. * microcode/os2utl/mkos2pm.scm[1.1.2.1]: Initial revision. * microcode/os2utl/mkos2pm.scm[1.1]: file mkos2pm.scm was initially added on branch ac-new-bch-gc. * microcode/os2utl/makefile.cmn[1.12.2.1.2.2]: Add rule to automatically generate the os2pm-*.h files. * microcode/prosproc.c[1.18.2.1.2.4]: IBM VisualAge C/C++ doesn't need declaration of `environ'; it's declared by . 2000-12-03 Chris Hanson * edwin/vc.scm[1.76]: Add defaults to prompts for M-x vc-version-diff. * microcode/ntutl/makefile.wcc[1.15]: Clean up .map files and *def.c files. * microcode/ntutl/makefile.wcc[1.14], microcode/ntutl/makefile.wcc[1.13.2.1.2.3]: Optimize code by default. * microcode/findprim.c[9.53.2.1.2.3]: Work around: FreeBSD declares incompatible `mergesort' in . * microcode/ux.h[1.73.2.1.2.4]: Declare `environ' on non-GNU systems. * microcode/pruxenv.c[1.18.2.1.2.1]: Eliminate unused unix-specific primitive UNIX-ENVIRONMENT. This primitive is identical to the portable primitive SCHEME-ENVIRONMENT. 2000-12-02 Chris Hanson * microcode/interp.h[9.41.4.1], microcode/ntenv.c[1.18.4.1], microcode/ntgui.c[1.27.2.1.2.1], microcode/ntscreen.c[1.45.4.1], microcode/ntsig.c[1.21.2.1.2.1], microcode/nttrap.c[1.17.2.1.2.2], microcode/outf.c[1.11.2.1.2.2], microcode/prntio.c[1.12.4.1]: Eliminate compiler warnings from Watcom C/C++ under Windows. * microcode/ntutl/makefile.wcc[1.13.2.1.2.2]: Don't forget to clean up .map files and *def.c files. * microcode/prosproc.c[1.18.2.1.2.3]: This file requires explicit declaration of `environ' because it doesn't include the operating-system specific files that normally provide it. * microcode/ux.h[1.73.2.1.2.3]: Copy include of time files here; don't depend on "config.h" doing this. * microcode/prosproc.c[1.18.2.1.2.2], microcode/ux.h[1.73.2.1.2.2], microcode/uxproc.c[1.25.2.1.2.1]: Eliminate explicit declarations of `environ'. * microcode/nttrap.c[1.17.2.1.2.1]: Change names containing "Win32Exception" back to "WinntException". Apparently at least one of these names is externally defined. * microcode/ansidecl.h[1.6.4.1], microcode/bchmmg.c[9.95.2.3.2.4], microcode/bitstr.c[9.62.4.1], microcode/cmpint.c[1.91.2.1.2.1], microcode/cmpint.h[10.6.4.1], microcode/cmpintmd/i386.h[1.31.2.1.2.2], microcode/fasload.c[9.87.2.1.2.1], microcode/findprim.c[9.53.2.1.2.2], microcode/findprim.c[9.53.2.1.2.1], microcode/intern.c[9.56.4.1], microcode/lookup.c[9.57.2.1.2.1], microcode/lookup.h[9.51.2.1.2.1], microcode/nt.h[1.8.2.1.2.1], microcode/ntutl/makefile.wcc[1.13.2.1.2.1], microcode/obstack.c[1.5.4.1], microcode/obstack.h[1.10.4.1], microcode/os2.h[1.6.4.1], microcode/os2msg.c[1.13.4.1], microcode/os2pm.c[1.32.4.1], microcode/os2proc.c[1.6.4.1], microcode/os2sock.c[1.14.4.1], microcode/os2term.c[1.3.4.1], microcode/os2top.c[1.20.4.1], microcode/os2utl/config.h[1.1.2.1.2.1], microcode/os2utl/makefile.cmn[1.12.2.1.2.1], microcode/os2utl/makefile.vac[1.6.2.1.2.1], microcode/os2xcpt.c[1.7.4.1], microcode/osenv.h[1.9.4.1], microcode/outf.c[1.11.2.1.2.1], microcode/outf.h[1.4.4.1], microcode/primutl.c[9.72.2.1.2.1], microcode/prmcon.h[1.3.4.1], microcode/pros2io.c[1.8.4.1], microcode/prosproc.c[1.18.2.1.2.1], microcode/purutl.c[9.50.4.1], microcode/regex.c[1.19.2.1.2.1], microcode/sysprim.c[9.46.4.1], microcode/termcap.c[1.6.2.1.2.1], microcode/transact.c[1.4.4.1], microcode/utils.c[9.74.2.1.2.1], microcode/ux.h[1.73.2.1.2.1], microcode/x11.h[1.16.4.1]: Eliminate large number of compiler warnings from IBM VisualAge C/C++ running under OS/2. One specific change is to eliminate most uses of __STDC__ in favor of HAVE_STDC, since IBM's compiler (and Microsoft's Windows compiler) doesn't define this. * microcode/interp.c[9.89.2.1.2.1]: Eliminate page breaks in middle of `Interpret'. (Most of these were useless anyway since they had been indented.) Fix indentation in a few places. Reindent lines that were too long. * microcode/cmpintmd/i386.h[1.31.2.1.2.1]: Fix bug: code was still referencing _OS2 and WINNT rather than __OS2__ and __WIN32__. 2000-12-01 Chris Hanson * microcode/bchgcc.h[9.60.2.3.2.3], microcode/bchgcl.c[9.50.4.5], microcode/bchmmg.c[9.95.2.3.2.3], microcode/bchpur.c[9.67.2.2.2.3]: Clean up the code in the two top-level GC procedures, `GC' and `purify'. Mostly presentation changes, but some simplifications as well. The code is still far from obvious. * microcode/bchgcc.h[9.60.2.3.2.2], microcode/bchmmg.c[9.95.2.3.2.2], microcode/bchpur.c[9.67.2.2.2.2]: Fix bug: code for fixing up weak pairs at end of GC was assuming that Constant_Top was the same as low_heap. But recent changes make that untrue in purify. * microcode/bchgcl.c[9.50.4.4]: Fix thinko: scope of C variable declaration _includes_ an initializer if present. This is unlike Scheme. * 6001/edextra.scm[1.32]: X-SCREEN-AUTO-RAISE has been eliminated. * edwin/curren.scm[1.143]: Fix typo in previous change. * edwin/debug.scm[1.55]: Fix typo in recent change. * edwin/xcom.scm[1.17], edwin/xterm.scm[1.65]: Create separate fields in X screen structure to hold visibility, whether window is mapped, and whether window is exposed. Synthesize SCREEN-VISIBILITY from these fields; previously SCREEN-VISIBILITY held all this information and was sometimes inaccurate. Don't attempt to give focus to an unmapped frame. This will only signal an error. Don't map an unmapped frame when entering it. Eliminate variable X-SCREEN-AUTO-RAISE and associated command. Both of these things were window management; we shouldn't be doing that. * edwin/curren.scm[1.142], edwin/debug.scm[1.54], edwin/edwin.pkg[1.265], edwin/os2term.scm[1.22], edwin/scrcom.scm[1.8], edwin/screen.scm[1.118], edwin/win32.scm[1.14], edwin/wincom.scm[1.131]: Change arguments to OTHER-SCREEN so that only first is required. Eliminate OTHER-SCREEN?, replacing occurrences with OTHER-SCREEN. Change meaning of SCREEN-VISIBLE? to mean "not unmapped"; this is almost always what was meant. Fix bug in SELECT-WINDOW: when selecting the selected window of another frame, must select the frame. Fix SELECT-BUFFER-OTHER-SCREEN to select the frame as well as the buffer if reusing an existing frame. * edwin/scrcom.scm[1.7]: Don't allow selection of frames that aren't mapped. The user can unmap it first if wanted. 2000-11-30 Chris Hanson * edwin/sendmail.scm[1.71]: Fix bug: temporary mark was used across buffer modification. * edwin/xterm.scm[1.64]: FOCUS-IN events must not cause X-WINDOW-SET-INPUT-FOCUS to be called. Use dynamic binding to prevent this from happening. * microcode/bchgcl.c[9.50.4.3]: Fix termination condition for purification. purify expects us to halt at any broken heart. * microcode/bchgcl.c[9.50.4.2]: Fix typo. 2000-11-29 Chris Hanson * microcode/bchdmp.c[9.85.2.1.2.1], microcode/bchgcc.h[9.60.2.3.2.1], microcode/bchgcl.c[9.50.4.1], microcode/bchmmg.c[9.95.2.3.2.1], microcode/bchpur.c[9.67.2.2.2.1], microcode/fasdump.c[9.63.2.1.2.1], microcode/gccode.h[9.56.2.1.2.1], microcode/gcloop.c[9.46.4.1], microcode/purify.c[9.58.4.1]: Complete rewrite of the bchscheme garbage-collector main loop. The garbage collector and purify now share the main loop. The new design is much more transparent: there are no variable references or control branches hidden inside macros. This design should be easier to debug, too, since the control structure isn't hidden inside macros that can't be stepped. * edwin/vc.scm[1.75]: M-x vc-directory now prompts for the directory. * microcode/bchgcc.h[9.62], microcode/bchgcc.h[9.60.2.3]: Fix thinko. * edwin/sendmail.scm[1.70]: Fix typo in previous change. 2000-11-28 Chris Hanson * microcode/cmpgc.h[1.30.2.2]: Fix typo. * microcode/version.h[11.175]: Update to reflect bug fix to purify in bchscheme. * rcs/mklogs.scm[1.22]: Don't need separate changelogs for the documentation; just one. * runtime/version.scm[14.189]: Update release number to 7.5.11. * rcs/nparse.scm[1.3]: Handle CVS "magic branch numbers". * rcs/mklogs.scm[1.21]: Move v7 documentation from "/scheme/documentation/" to "/scheme/v7/doc/". * microcode/bchgcc.h[9.61], microcode/bchgcc.h[9.60.2.2], microcode/bchmmg.c[9.96], microcode/bchmmg.c[9.95.2.3], microcode/bchpur.c[9.68], microcode/bchpur.c[9.67.2.2]: Fix bug: purify wasn't properly saving and restoring the scan state around the scan of constant space. Doing this right requires access to internal state of bchmmg, so I built an abstraction to do this. * microcode/bchpur.c[9.67.2.1]: Change some instances of `purify_mode' to `pure_p' to eliminate confusion; another variable called `purify_mode' has a completely different type and meaning. * microcode/configure.in[1.1.2.2]: Add new function tests needed by "bchmmg.c". * microcode/bchmmg.c[9.95.2.2]: Reconditionalize to use less idiosyncratic tests. 2000-11-27 Chris Hanson * imail/imail-top.scm[1.221]: Fix M-x imail-save-attachment properly; previous fix didn't work right. * microcode/ntutl/config.h[1.1], microcode/os2utl/config.h[1.1]: file config.h was initially added on branch use-autoconf. * microcode/makegen/files-optional.scm[1.1]: file files-optional.scm was initially added on branch use-autoconf. * microcode/makegen/files-os-prim.scm[1.1]: file files-os-prim.scm was initially added on branch use-autoconf. * microcode/makegen/files-other.scm[1.1]: file files-other.scm was initially added on branch use-autoconf. * microcode/makegen/files-unix.scm[1.1]: file files-unix.scm was initially added on branch use-autoconf. * microcode/makegen/m4.sh[1.1]: file m4.sh was initially added on branch use-autoconf. * microcode/makegen/makegen.scm[1.1]: file makegen.scm was initially added on branch use-autoconf. * microcode/makegen/makeinit.sh[1.1]: file makeinit.sh was initially added on branch use-autoconf. * microcode/makegen/Makefile.in.in[1.1]: file Makefile.in.in was initially added on branch use-autoconf. * microcode/makegen/files-core.scm[1.1]: file files-core.scm was initially added on branch use-autoconf. * microcode/makegen/files-gc-bch.scm[1.1]: file files-gc-bch.scm was initially added on branch use-autoconf. * microcode/makegen/files-gc-std.scm[1.1]: file files-gc-std.scm was initially added on branch use-autoconf. * microcode/cmpauxmd/m4-dos[1.1]: file m4-dos was initially added on branch use-autoconf. * microcode/install-sh[1.1]: file install-sh was initially added on branch use-autoconf. * microcode/config.guess[1.1]: file config.guess was initially added on branch use-autoconf. * microcode/config.sub[1.1]: file config.sub was initially added on branch use-autoconf. * microcode/configure.in[1.1]: file configure.in was initially added on branch use-autoconf. * microcode/confshared.h[1.1]: file confshared.h was initially added on branch use-autoconf. * microcode/Attic/config.h[9.101.2.1], microcode/Attic/dosasutl.asm[1.4.2.1], microcode/Attic/dosconio.c[1.13.2.1], microcode/Attic/dosenv.c[1.10.2.1], microcode/Attic/dosexcp.c[1.6.2.1], microcode/Attic/dosexcp.h[1.4.2.1], microcode/Attic/dosfg.c[1.4.2.1], microcode/Attic/dosfile.c[1.4.2.1], microcode/Attic/dosfs.c[1.6.2.1], microcode/Attic/dosi10.asm[1.3.2.1], microcode/Attic/dosinsn.h[1.3.2.1], microcode/Attic/dosint10.c[1.9.2.1], microcode/Attic/dosint10.h[1.3.2.1], microcode/Attic/dosio.c[1.9.2.1], microcode/Attic/dosio.h[1.5.2.1], microcode/Attic/doskbd.c[1.13.2.1], microcode/Attic/doskbd.h[1.3.2.1], microcode/Attic/doskbutl.asm[1.7.2.1], microcode/Attic/dosscan.h[1.5.2.1], microcode/Attic/dosselec.h[1.3.2.1], microcode/Attic/dossig.c[1.17.2.1], microcode/Attic/dossys.c[1.5.2.1], microcode/Attic/dossys.h[1.3.2.1], microcode/Attic/dosterm.h[1.3.2.1], microcode/Attic/dostop.c[1.13.2.1], microcode/Attic/dostop.h[1.3.2.1], microcode/Attic/dostrap.c[1.7.2.1], microcode/Attic/dostrap.h[1.4.2.1], microcode/Attic/dostterm.c[1.3.2.1], microcode/Attic/dostty.c[1.4.2.1], microcode/Attic/dosutil.c[1.3.2.1], microcode/Attic/dosutil.h[1.3.2.1], microcode/Attic/dosx32.c[1.7.2.1], microcode/Attic/dosxcutl.asm[1.8.2.1], microcode/Attic/msdos.h[1.7.2.1], microcode/Attic/oscond.h[1.26.2.1], microcode/Attic/posixtyp.h[1.16.2.1], microcode/Attic/prdosenv.c[1.11.2.1], microcode/Attic/prdosfs.c[1.5.2.1], microcode/acconfig.h[1.1.2.1], microcode/avltree.h[1.2.2.1], microcode/bchdmp.c[9.85.2.1], microcode/bchdrn.c[1.9.2.1], microcode/bchdrn.h[1.9.2.1], microcode/bchgcc.h[9.60.2.1], microcode/bchmmg.c[9.95.2.1], microcode/bchutl.c[1.10.2.1], microcode/bignum.c[9.48.2.1], microcode/bintopsb.c[9.71.2.1], microcode/bitstr.h[1.9.2.1], microcode/boot.c[9.103.2.1], microcode/cmpauxmd/hppa.m4[1.38.2.1], microcode/cmpauxmd/m4-dos[1.1.2.1], microcode/cmpauxmd/makefile[1.6.2.1], microcode/cmpauxmd/mc68k.m4[1.26.2.1], microcode/cmpauxmd/vax.m4[1.3.2.1], microcode/cmpgc.h[1.30.2.1], microcode/cmpint.c[1.91.2.1], microcode/cmpintmd/i386.h[1.31.2.1], microcode/cmptype.h[1.2.2.1], microcode/config.guess[1.1.2.1], microcode/config.sub[1.1.2.1], microcode/configure.in[1.1.2.1], microcode/confshared.h[1.1.2.1], microcode/const.h[9.45.2.1], microcode/debug.c[9.50.2.1], microcode/default.h[9.43.2.1], microcode/dmpwrld.c[9.39.2.1], microcode/dosutl/Attic/bch-prm.lst[1.7.2.1], microcode/dosutl/Attic/bch-ztc.lst[1.7.2.1], microcode/dosutl/Attic/config.bat[1.2.2.1], microcode/dosutl/Attic/float.h[1.1.2.1], microcode/dosutl/Attic/limits.h[1.1.2.1], microcode/dosutl/Attic/makefile[1.13.2.1], microcode/dosutl/Attic/scm-prm.lst[1.7.2.1], microcode/dosutl/Attic/scm-ztc.lst[1.7.2.1], microcode/error.c[1.6.2.1], microcode/extern.h[9.56.2.1], microcode/fasdump.c[9.63.2.1], microcode/fasload.c[9.87.2.1], microcode/findprim.c[9.53.2.1], microcode/foreign.c[1.2.2.1], microcode/foreign.h[1.2.2.1], microcode/gccode.h[9.56.2.1], microcode/hooks.c[9.58.2.1], microcode/hppacach.h[1.5.2.1], microcode/hppanwca.c[1.4.2.1], microcode/install-sh[1.1.2.1], microcode/interp.c[9.89.2.1], microcode/intrpt.h[1.20.2.1], microcode/liarc.h[1.14.2.1], microcode/lookprm.c[1.11.2.1], microcode/lookup.c[9.57.2.1], microcode/lookup.h[9.51.2.1], microcode/m/Attic/alpha.h[1.4.2.1], microcode/m/Attic/apoll68k.h[1.4.2.1], microcode/m/Attic/hcx.h[1.3.2.1], microcode/m/Attic/hp9k300.h[1.13.2.1], microcode/m/Attic/hp9k400.h[1.9.2.1], microcode/m/Attic/hp9k800.h[1.14.2.1], microcode/m/Attic/i386.h[1.6.2.1], microcode/m/Attic/ibm032.h[1.3.2.1], microcode/m/Attic/mips.h[1.10.2.1], microcode/m/Attic/next.h[1.6.2.1], microcode/m/Attic/rs6000.h[1.3.2.1], microcode/m/Attic/sun3.h[1.7.2.1], microcode/m/Attic/sun4.h[1.4.2.1], microcode/m/Attic/umax.h[1.3.2.1], microcode/m/Attic/vax.h[1.6.2.1], microcode/makegen/Makefile.in.in[1.1.2.1], microcode/makegen/files-core.scm[1.1.2.1], microcode/makegen/files-gc-bch.scm[1.1.2.1], microcode/makegen/files-gc-std.scm[1.1.2.1], microcode/makegen/files-optional.scm[1.1.2.1], microcode/makegen/files-os-prim.scm[1.1.2.1], microcode/makegen/files-other.scm[1.1.2.1], microcode/makegen/files-unix.scm[1.1.2.1], microcode/makegen/m4.sh[1.1.2.1], microcode/makegen/makegen.scm[1.1.2.1], microcode/makegen/makeinit.sh[1.1.2.1], microcode/memmag.c[9.65.2.1], microcode/memmag.h[1.7.2.1], microcode/missing.c[9.32.2.1], microcode/mul.c[9.34.2.1], microcode/nt.h[1.8.2.1], microcode/ntgui.c[1.27.2.1], microcode/ntio.c[1.22.2.1], microcode/ntsig.c[1.21.2.1], microcode/nttop.c[1.29.2.1], microcode/nttrap.c[1.17.2.1], microcode/nttterm.c[1.3.2.1], microcode/ntutl/config.h[1.1.2.1], microcode/ntutl/makefile.wcc[1.13.2.1], microcode/ntutl/ntgui.rc[1.9.2.1], microcode/object.h[9.49.2.1], microcode/option.c[1.54.2.1], microcode/os.h[1.6.2.1], microcode/os2pmcon.c[1.25.2.1], microcode/os2utl/config.cmd[1.3.2.1], microcode/os2utl/config.h[1.1.2.1], microcode/os2utl/makefile[1.14.2.1], microcode/os2utl/makefile.cmn[1.12.2.1], microcode/os2utl/makefile.emx[1.8.2.1], microcode/os2utl/makefile.gcc[1.6.2.1], microcode/os2utl/makefile.vac[1.6.2.1], microcode/os2utl/makefile.wcc[1.7.2.1], microcode/osio.h[1.14.2.1], microcode/osscheme.c[1.10.2.1], microcode/osscheme.h[1.10.2.1], microcode/outf.c[1.11.2.1], microcode/ppband.c[9.49.2.1], microcode/prbfish.c[1.8.2.1], microcode/primutl.c[9.72.2.1], microcode/prntenv.c[1.9.2.1], microcode/prntfs.c[1.15.2.1], microcode/prosenv.c[1.16.2.1], microcode/prosfs.c[1.14.2.1], microcode/prosproc.c[1.18.2.1], microcode/pruxdld.c[1.12.2.1], microcode/pruxenv.c[1.18.2.1], microcode/pruxfs.c[9.55.2.1], microcode/pruxio.c[1.7.2.1], microcode/pruxsock.c[1.17.2.1], microcode/psbmap.h[9.43.2.1], microcode/regex.c[1.19.2.1], microcode/s/Attic/386bsd.h[1.3.2.1], microcode/s/Attic/aix.h[1.3.2.1], microcode/s/Attic/bsd4-2.h[1.8.2.1], microcode/s/Attic/bsd4-3.h[1.6.2.1], microcode/s/Attic/decosf.h[1.4.2.1], microcode/s/Attic/dos.m4[1.6.2.1], microcode/s/Attic/freebsd.h[1.4.2.1], microcode/s/Attic/hpux.h[1.12.2.1], microcode/s/Attic/irix4.h[1.5.2.1], microcode/s/Attic/irix6.h[1.2.2.1], microcode/s/Attic/linux.h[1.20.2.1], microcode/s/Attic/linuxelf.lds[1.1.2.1], microcode/s/Attic/mach4-3.h[1.4.2.1], microcode/s/Attic/newsos5.h[1.5.2.1], microcode/s/Attic/nextos.h[1.7.2.1], microcode/s/Attic/nt.m4[1.2.2.1], microcode/s/Attic/sunos3.h[1.5.2.1], microcode/s/Attic/sunos4.h[1.8.2.1], microcode/s/Attic/sysv3.h[1.5.2.1], microcode/s/Attic/sysv4.h[1.4.2.1], microcode/s/Attic/ultrix.h[1.16.2.1], microcode/s/Attic/ultrix.m4[1.7.2.1], microcode/s/Attic/umax.h[1.6.2.1], microcode/scheme.h[9.38.2.1], microcode/storage.c[9.56.2.1], microcode/syntax.c[1.24.2.1], microcode/syscall.h[1.12.2.1], microcode/term.c[1.14.2.1], microcode/termcap.c[1.6.2.1], microcode/terminfo.c[1.3.2.1], microcode/trap.h[9.44.2.1], microcode/unxutl/Attic/cf-dist.h[1.25.2.1], microcode/unxutl/Attic/config[1.31.2.1], microcode/unxutl/Attic/makefile[1.28.2.1], microcode/unxutl/Attic/y300.lcl[1.24.2.1], microcode/unxutl/Attic/y700.lcl[1.8.2.1], microcode/unxutl/Attic/y800.lcl[1.2.2.1], microcode/unxutl/Attic/ymake.sed[1.1.2.1], microcode/unxutl/Attic/ymkfile[1.96.2.1], microcode/unxutl/Attic/ynws3250.lcl[1.3.2.1], microcode/utils.c[9.74.2.1], microcode/ux.c[1.19.2.1], microcode/ux.h[1.73.2.1], microcode/uxctty.c[1.13.2.1], microcode/uxenv.c[1.19.2.1], microcode/uxfile.c[1.9.2.1], microcode/uxfs.c[1.19.2.1], microcode/uxio.c[1.44.2.1], microcode/uxproc.c[1.25.2.1], microcode/uxsig.c[1.34.2.1], microcode/uxsig.h[1.5.2.1], microcode/uxsock.c[1.25.2.1], microcode/uxterm.c[1.27.2.1], microcode/uxtop.c[1.24.2.1], microcode/uxtrap.c[1.29.2.1], microcode/uxtrap.h[1.28.2.1], microcode/version.h[11.174.2.1], microcode/wabbit.c[1.7.2.1], microcode/x11base.c[1.75.2.1], microcode/xdebug.c[9.33.2.1]: * Convert microcode to use autoconf in place of custom configuration mechanism. Change major version of microcode to 14 (skipping 12 and 13 that were used for unreleased versions). * Write Scheme program to generate "Makefile.in" from a template. This program automatically generates compilation dependencies, but it depends on having gcc to do this. I tried using automake to do this, but it's not powerful enough to handle definition of a program in which the component files are selected at configure time. * Rename old "config.h" to "confshared.h". New "config.h" automatically generated by autoconf on unix systems; hand-written for Win32 and OS/2. Make sure all files now include "config.h". Eliminate references to "oscond.h" and "posixtyp.h"; merge the functionality of those files into "config.h". "confshared.h" includes "ansidecl.h" so eliminate most references to the latter. Completely rewrite "ux.h"; new revision is considerably simplified since autoconf takes care of most of the details. * Rename a number of preprocessor symbols: OLD NAME NEW NAME ======== ======== WINNT __WIN32__ _HPUX __HPUX__ _IRIX __IRIX__ _OS2 __OS2__ _POSIX _POSIX_VERSION _UNIX __unix__ __linux __linux__ i386 __IA32__ HAS_FLOOR HAVE_FLOOR HAS_FREXP HAVE_FREXP HAS_MODF HAVE_MODF HAVE_APPEND O_APPEND HAVE_BSD_TTY_DRIVER HAVE_SGTTY_H HAVE_ITIMER HAVE_SETITIMER HAVE_SYMBOLIC_LINKS HAVE_SYMLINK HAVE_SYSV3_SIGNALS HAVE_SIGHOLD HAVE_SYSV_SHARED_MEMORY USE_SYSV_SHARED_MEMORY HAVE_TERMIO HAVE_TERMIO_H HAVE_TERMIOS HAVE_TERMIOS_H RELEASE SCHEME_RELEASE SUBVERSION SCHEME_SUBVERSION USE_HOSTENT_ADDR !HAVE_HOSTENT_H_ADDR_LIST VERSION SCHEME_VERSION * Change names containing "winnt" to contain "win32" instead. Change names containing "i386" to contain "ia32" instead. * Make numerous changes to eliminate warnings reported by "gcc -Wall". * Modify PTY code to incorporate ideas from libzvt in GNOME. This was needed to get unix98 PTYs working in GNU/Linux. Use runtime test to decide if PTYs are available (in systems that lack grantpt), since there's no way to determine this at configure or compile time. * Use poll in preference to select if both are available. Previously poll was used in one place and select in another. * Use `tm_gmtoff' if it is available in `struct tm'. GNU libc and FreeBSD both support `tm_gmtoff' with the same meaning. The `timezone' variable is defined in FreeBSD, but with a completely different meaning. * Change handling of baud rates to make it more portable. * Change handling of M4 files; implement new shell scripts to do expansion while passing parameters on the command line. Always use these scripts, since they are portable. * Change default type-code length on systems with compiled-code support to be 6 rather than 8. This simplifies the definition of those systems since we were always overriding the type-code length on them. * Completely rewrite compilation dependencies for Win32 and OS/2 makefiles. New dependencies are quite detailed, directly reflect the source code, should now be accurate. * Eliminate all DOS files and all references to DOS. Eliminate all the code for the case where WINNT_RAW_ADDRESSES was undefined, since that was DOS-specific. * microcode/acconfig.h[1.1]: file acconfig.h was initially added on branch use-autoconf. 2000-11-26 Chris Hanson * imail/imap-response.scm[1.42]: Add workaround for bug in Courier-IMAP. * edwin/sendmail.scm[1.69]: Add Emacs mail-sending feature that prompts for confirmation if user tries to send same mail twice. 2000-11-20 Chris Hanson * runtime/chrsyn.scm[1.3], runtime/chrsyn.scm[1.2]: Fix thinko. 2000-11-19 Chris Hanson * imail/imail-summary.scm[1.34]: Change IMAIL-SUMMARY-POP-UP-MESSAGE-BUFFER to use POP-UP-BUFFER again. This should fix the problem of over-splitting windows. Don't use IMAIL-SUMMARY-POP-UP-MESSAGE-BUFFER for fixed layout; instead simplify that logic to use WINDOW-SPLIT-VERTICALLY!. Eliminate SYNC-IMAIL-SUMMARY-BUFFER which was used in only one place. 2000-11-13 Chris Hanson * imail/imail-top.scm[1.220], imail/imail.pkg[1.78]: Add variable imail-output-default at Hal's request. 2000-11-02 Chris Hanson * runtime/blowfish.scm[1.20]: Eliminate restriction on blowfish encryption. New US crypto regulations permit us to export this code now. 2000-10-30 Chris Hanson * edwin/curren.scm[1.141]: Fix bug: previously, selecting one of the buffers of a visible layout into a window that held a different buffer of that layout would leave the layout marked as visible. This fix notices this case and unmarks the layout. However, the selection of the buffer causes the layout to be reselected, which means the operation has no net effect. * edwin/comwin.scm[1.146]: Don't delete a window if it's already deleted. * edwin/debug.scm[1.53]: Fix bug: SELECT-CONTINUATION-BROWSER-BUFFER called BROWSER-SELECT-LINE assuming that the buffer it had specified for selection was already selected; this turned out not to be true. So modify the code to pass the buffer explicitly rather than depend on selection. Also tweak code that prompts for X window geometry so that it re-prompts if the user's input isn't valid. * edwin/curren.scm[1.140]: Fix bug: UNDO-LEAVE-WINDOW! was being called on the wrong window from SELECT-SCREEN and SELECT-WINDOW. Also change order of arguments to CHANGE-SELECTED-BUFFER to match order used most other places in this file. * edwin/basic.scm[1.140], edwin/prompt.scm[1.190]: Don't abort prompt when an input event arrives; process the event and restart the prompt. There may be subtle problems with this strategy; find and fix them. 2000-10-28 Chris Hanson * imail/imail-summary.scm[1.33]: Fix fencepost error that caused the wrong number of columns to be allocated for the message number when the folder was exactly a power of ten. 2000-10-27 Chris Hanson * imail/load.scm[1.21]: Update version to reflect recent changes. * edwin/wincom.scm[1.130]: Deselect any buffer layout before popping up a new window. * edwin/curren.scm[1.139]: When killing buffer, it's possible to signal an error if there are no other buffers. Previously, this error could have been signalled _after_ the killing procedure had already killed off any buffer process, run the kill hooks, etc. Now the error test is done first, and if the error is signalled, no other action is taken. * imail/imail-summary.scm[1.32]: In previous change, forgot to select the folder buffer after creating a new window to hold it. Don't create a new window to hold the folder buffer if it is already visible somewhere. Simplify logic of layout selector now that SELECT-BUFFER will no longer cause the layout selector to run again. * edwin/curren.scm[1.138]: Change MAYBE-SELECT-BUFFER-LAYOUT so that it does nothing if called while running a layout selector; this will prevent infinite recursions and that otherwise occur quite easily while instantiating the layout. Simplify MAYBE-SELECT-BUFFER-LAYOUT so that it doesn't do anything unless the layout is changing. Previously indirect tests were used, now we just compare the current layout with the proposed layout and implement the changes. * edwin/buffer.scm[1.178]: Allow ->BUFFER to take a window as an argument. 2000-10-26 Chris Hanson * imail/imail-summary.scm[1.31]: Don't use POP-UP-BUFFER to split the window; use WINDOW-SPLIT-VERTICALLY! instead. Also, tweak fixed layout generator so that it doesn't go into infinite recursion. * edwin/comwin.scm[1.145], edwin/curren.scm[1.137]: Add code to mark buffer layout inactive when one of its windows is deleted. * edwin/hlpcom.scm[1.121]: In WITH-OUTPUT-TO-HELP-DISPLAY, don't change window/buffer arrangement until after the argument thunk has been executed. * edwin/curren.scm[1.136]: Adjust interrupt locking of buffer-layout code. When selecting buffer layouts, ignore buffer selections in the typein window. * edwin/xterm.scm[1.63]: Fix long-standing bug that occurred when using multiple screens with a window manager that supports multiple workspaces: switching workspaces sometimes caused an error to be signalled by X-WINDOW-SET-INPUT-FOCUS. The problem is that the workspace switch caused all of Edwin's windows to be unmapped. Depending on the order in which the unmap events arrived, Edwin might have queued a request to select another screen. But since all of the screens were unmapped at the time the request was processed, the attempt to set the input focus to one of these unmapped screens always generated an error. The fix eliminates the code that tried to select another screen. Instead we depend on the window manager to tell us when another screen needs to be selected. * edwin/xterm.scm[1.62]: Add event-tracing facility. * imail/imail-top.scm[1.219]: M-x imail-save-attachment should also work when invoked from the summary buffer. * imail/imail-summary.scm[1.30]: Only create buffer-layout when summary buffer is created, not when it is being reused. * edwin/rfc822.scm[3.3]: Fix bugs in address parsing, reported by hal. * edwin/curren.scm[1.135]: Don't call MAYBE-SELECT-BUFFER-LAYOUT unless the selected buffer has really changed. * imail/imail-summary.scm[1.29], imail/imail-top.scm[1.218], imail/imail.pkg[1.77]: Delete imail-auto-summary feature. Instead implement imail-summary-fixed-layout feature that uses new buffer-layout mechanism. * edwin/curren.scm[1.134]: Move call to MAYBE-SELECT-BUFFER-LAYOUT outside of WITHOUT-INTERRUPTS. Also call MAYBE-SELECT-BUFFER-LAYOUT from MAKE-SCREEN. * edwin/curren.scm[1.133]: Fix indentation. * edwin/wincom.scm[1.129]: Fix thinko. * edwin/curren.scm[1.132]: Don't reselect an already-selected window or buffer. * edwin/wincom.scm[1.128]: Implement SCREEN option to POP-UP-BUFFER. * edwin/curren.scm[1.131]: Eliminate references to SELECT-BUFFER-IN-WINDOW. Change buffer-layout mechanism so that it is called _after_ the initial buffer is selected. * edwin/buffrm.scm[1.58], edwin/bufmnu.scm[1.131], edwin/debug.scm[1.52], edwin/snr.scm[1.59], edwin/vc.scm[1.74]: Eliminate references to SELECT-BUFFER-IN-WINDOW. * edwin/curren.scm[1.130]: Guarantee that all buffers in a buffer layout are alive at the time of selection. * edwin/curren.scm[1.129]: Add some interrupt locking to buffer-layout mechanism. Fix thinko. * edwin/make.scm[3.103]: Update version to reflect new initialization mechanism. * imail/imail-top.scm[1.217]: Comment out call to ADD-PRE-SELECT-BUFFER-HOOK. This procedure is about to be removed from Edwin. It will shortly be replaced by a different mechanism. * edwin/curren.scm[1.128]: Eliminate pre-select-buffer-hooks mechanism from previous change. This turns out not to work quite right for the problem at hand. Instead implement a buffer-layout mechanism that should solve the problem more neatly. * edwin/comred.scm[1.121], edwin/dosproc.scm[1.5], edwin/editor.scm[1.249], edwin/edwin.pkg[1.264], edwin/input.scm[1.102], edwin/intmod.scm[1.110], edwin/process.scm[1.58], edwin/prompt.scm[1.189]: Implement general mechanism for initializing editor state when editor is created. 2000-10-25 Chris Hanson * edwin/curren.scm[1.127]: Add pre-selection buffer hooks. These hooks allow a buffer to intercede in its selection. 2000-10-20 Chris Hanson * imail/imail.pkg[1.76]: Forgot to export a couple of variables to implement auto-summary. * imail/imail-summary.scm[1.28]: Implement new editor variable imail-summary-height to allow the user to specify the height of the summary buffer. Normally this is set to 1/4 making the summary 1/4 the height of the screen. * edwin/wincom.scm[1.127]: Add option to POP-UP-BUFFER to allow the argument to WINDOW-SPLIT-VERTICALLY! to be supplied. * imail/imail-top.scm[1.216], imail/imail.pkg[1.75]: Add new editor variable imail-auto-summary that allows a summary buffer to be automatically selected whenever an imail buffer is. * imail/imail-rmail.scm[1.52]: Fix bug: FLAGS->RMAIL-MARKERS was clobbering its argument to remove the "seen" flag. This caused messages to be marked "unseen" when they were written to an RMAIL file. * imail/imail-core.scm[1.114], imail/imail-rmail.scm[1.51], imail/imail-umail.scm[1.40]: Fix bug: WRITE-HEADER-FIELDS was generating the blank-line separator, but all of the callers assumed that it wasn't. So messages were being written with an extra newline. 2000-10-19 Chris Hanson * imail/imail-umail.scm[1.39]: Deal with errors coming from CTIME-STRING->UNIVERSAL-TIME. Add option to WRITE-UMAIL-MESSAGE to suppress the IMAIL flags. * runtime/datime.scm[14.33]: Allow ctime() input strings to lack seconds field. This isn't strictly correct but occurs sometimes on unix-mail from lines. 2000-10-17 Chris Hanson * microcode/uxsock.c[1.25]: FreeBSD doesn't define socklen_t; add conditional definition. 2000-10-16 Chris Hanson * etc/Attic/bootstrap.sh[1.4]: Fix some typos. Adjust script so that it can be called again on a partially-processed tree. * etc/Attic/bootstrap-compile.scm[1.7]: Load CREF only if not already loaded. * etc/Attic/build-tree.sh[1.4]: Add back stuff for unsupported directories. * etc/Attic/bootstrap.sh[1.3]: Extensive changes to integrate microcode compilation into the script. * microcode/unxutl/Attic/cf-dist.h[1.25]: If using gcc, optimize and generate debugging info. * microcode/unxutl/Attic/cf-dist.h[1.24]: Generate optimized code by default. * etc/Attic/bootstrap-compile.scm[1.6], etc/Attic/bootstrap-compile.scm[1.5]: Forgot to load CREF. * etc/Attic/bootstrap-compile.scm[1.4]: Fix typo. * etc/Attic/bootstrap-compile.scm[1.3], etc/Attic/bootstrap.sh[1.2]: Load files using stdin redirection. * etc/Attic/bootstrap-compile.scm[1.2]: Must load CREF before compiling other stuff. * etc/Attic/bootstrap-compile.scm[1.1], etc/Attic/bootstrap.sh[1.1], etc/Attic/build-compiler.scm[1.1], etc/Attic/build-edwin.scm[1.1], etc/Attic/build-runtime.scm[1.1]: Initial revision. * etc/optiondb.scm[1.2]: CREF loader not needed after all. * etc/Attic/build-tree.sh[1.3]: Eliminate unsupported directories. * etc/Attic/build-tree.sh[1.2]: Add copyright notice. * etc/Attic/build-tree.sh[1.1]: Imported from /scheme/etc/. * etc/optiondb.scm[1.1]: Moved from dist directory. * microcode/option.c[1.54], microcode/version.h[11.174]: If no band is explicitly specified, and the default band doesn't exist, look for alternatives. 2000-10-14 Chris Hanson * runtime/version.scm[14.188]: Update version number of runtime system to reflect change to semantics of internal definitions. Update release number because it's time to do another release. * runtime/lambda.scm[14.16], runtime/lambdx.scm[14.9]: Eliminate old optimization that reused lambda parameters for internal definitions of the same name. This needlessly complicated the semantics, and the optimization is no longer interesting (if it ever was). Thanks to the 6.001 staff for bringing this to my attention. 2000-10-01 Chris Hanson * microcode/uxsock.c[1.24]: Fix bug: when a call to connect gets EINTR, one can't just restart the connect, because it might be waiting for a packet from the other end of the connection. Instead, it's necessary to wait for the connect to finish (using select), and then check the SO_ERROR option to see if it succeeded or failed. * microcode/x11base.c[1.75]: In X-WINDOW-CLEAR, if the clip rectangle is disabled, call XClearWindow rather than XClearArea. This clears pixels in internal border, if any. * microcode/x11term.c[1.27]: Fix bug: xterm_dump_rectangle, when given the coordinates of a window that wasn't exactly a multiple of the character size, would dump characters at the edges of the window. Instead, it must clip the rectangle to the character size of the window. * edwin/vc.scm[1.73]: Fix bug: can't ever use absolute pathnames with CVS, because if repository is remote they don't make sense. 2000-09-30 Chris Hanson * imail/imail-summary.scm[1.27]: When using imail-summary-scroll-msg-* commands, if the message buffer and summary buffer have different messages selected, change the message buffer to match the summary buffer. * imail/imail-top.scm[1.215]: Don't count a message as unseen if it is deleted -- even if the SEEN flag isn't set. It's common to delete messages without seeing them, and the act of deletion is an indication that the user isn't interested in seeing them. However, don't mark these messages as seen; they might later be undeleted, in which case they want to retain their unseen status. 2000-09-25 Chris Hanson * imail/todo.txt[1.111]: Note regarding parsing in the presence of Rmail file corruption. 2000-09-11 Chris Hanson * imail/imail-rmail.scm[1.50]: Make sure that Rmail messages have an internal time, even if it's completely bogus. * runtime/datime.scm[14.32]: Compensate for old message data format that lacked seconds. * runtime/datime.scm[14.31]: Add workaround for very old arpanet message date format. * edwin/modefs.scm[1.160]: Bind VC keys only if VC is loaded. 2000-09-07 Chris Hanson * imail/imail-top.scm[1.214]: Add UTF-8 to list of known charsets. 2000-09-06 Chris Hanson * imail/imail-top.scm[1.213], imail/imail-top.scm[1.212]: Tweak adaptive-fill-regexp so that it accepts prefixes of the form "> >". * edwin/fill.scm[1.70], edwin/tparse.scm[1.75], edwin/tparse.scm[1.74]: Extensive redesign of OPERATE-ON-INDIVIDUAL-PARAGRAPHS, to treat regions with different fill prefixes as separate paragraphs. This is similar to what Emacs does but not exactly the same: we are more strict about noticing prefix changes. * edwin/htmlmode.scm[1.4], edwin/tparse.scm[1.73], edwin/tximod.scm[1.24]: Change paragraph-separate and paragraph-start so that they will work when not at a line start. This is necessary so that they interact properly with fill prefixes. * edwin/fill.scm[1.69]: Undo previous change -- it wasn't equivalent code. * edwin/fill.scm[1.68]: Simplify overly-complex logic. 2000-08-21 Chris Hanson * edwin/vc.scm[1.72]: Change VC-BACKEND-LOCKING-USER so that it doesn't call VC-WORKFILE-MODIFIED?. The problem is that the latter can call VC-BACKEND-DIFF, which requires access to the CVS server. However, since VC-BACKEND-LOCKING-USER is called by VC-MODE-LINE, this meant that every time the mode-line changed, we had to probe the server. This patch eliminates that requirement. The patch also tries to notice the results of user-initiated diffs, and update the mode-line's idea of whether the file is modified. However, Emacs doesn't seem to behave quite the same way. Maybe this is a bad idea and should be reverted. 2000-08-20 Chris Hanson * rcs/load.scm[1.2]: Now need regular expressions. * rcs/logmer.scm[1.27]: Add code to strip off remote-repository prefix in "CVS/Root" files. This assumes that the repository is actually local but is being accessed using a remote mechanism. The right thing to do might be to generate the log using cvs and then merge it, but this is quite a pain. 2000-08-18 Chris Hanson * edwin/vc.scm[1.71]: Eliminate use of absolute pathnames in CVS commands; this precludes use of remote access methods. * imail/imail-file.scm[1.59]: Fix bug: copying messages from IMAP folder to umail folder didn't work, because that operation depended on being able to get the message body as a string. But the operation that provided the message body in that format was eliminated. * microcode/uxio.c[1.44]: Don't use POLLNORM; use POLLIN instead. 2000-08-07 Chris Hanson * edwin/info.scm[1.135]: Fix bug: directory node wasn't being correctly recorded in the info history, causing the l command to fail. * imail/load.scm[1.20]: Update version to reflect changes to imail-summary keyboard bindings. * imail/imail-summary.scm[1.26]: Fix scrolling in summary buffer to be more like that of Rmail. Move M-x imail-summary-select-message to #\e rather than #\space, since #\space and #\rubout are needed by the scrolling commands. 2000-08-05 Chris Hanson * imail/imail-file.scm[1.58], imail/imail-imap.scm[1.144]: Fix over-long pages. * imail/imail-core.scm[1.113], imail/imail-file.scm[1.57], imail/imail-imap.scm[1.143], imail/imail-summary.scm[1.25]: Add new folder operation, PRELOAD-FOLDER-OUTLINES, which is a hint to the folder implementation that the front end is about to request header and length information for all messages in the folder. This allows the folder to choose a more-optimal download strategy. The operation is invoked by the folder-summary code. Ad-hoc testing indicates that this has a qualitative effect on performance for folders containing about 100 or more messages. 2000-08-02 Chris Hanson * imail/imail-imap.scm[1.142]: Additional optimization: load flags with UIDs in initial download. * imail/imail-imap.scm[1.141]: Change slot reflectors: previously we loaded flags, length, and headers for all messages when opening a folder and displaying it. This took a long time for medium-sized folders. Now, load each of these components separately. In particular, only the flags are needed for most messages, so this considerably speeds up the initial load. 2000-07-28 Chris Hanson * edwin/abbrev.scm[1.5], edwin/bufmnu.scm[1.130], edwin/debug.scm[1.51], edwin/os2.scm[1.50], edwin/sendmail.scm[1.68], edwin/unix.scm[1.109], edwin/vc.scm[1.70], edwin/webster.scm[1.5], edwin/wincom.scm[1.126], imail/imail-summary.scm[1.24]: Change POP-UP-BUFFER in several ways: (1) SELECT? argument is now required; (2) optional argument NOT-CURRENT-WINDOW? has been replaced by a list of option symbols; (3) when popping into an existing window, if it's the previously popped-up window, it's returned. 2000-07-21 Chris Hanson * imail/imail-top.scm[1.211]: Fix bug: allow user to specify no confirmation. 2000-07-20 Chris Hanson * edwin/sendmail.scm[1.67]: Make sure continuation lines of mail-buffer headers are properly indented. 2000-07-11 Chris Hanson * imail/imail-top.scm[1.210]: Change key binding of imail-summary-by-flags to be C-M-l for compatibility with Rmail. 2000-07-09 Chris Hanson * rcs/logmer.scm[1.26]: Another newline-convention tweak. * rcs/mklogs.scm[1.20]: Add imail documentation directory. * imail/imail-imap.scm[1.140]: Suppress user name in IMAP URL when it is same as current uname. 2000-07-08 Chris Hanson * imail/Attic/rexp.scm[1.15], runtime/rexp.scm[1.15]: Fix harmless bug in REXP? 2000-07-07 Chris Hanson * imail/imail-imap.scm[1.139]: Don't fire up IMAP connection just to determine container string of URL. Instead, use namespace info only if already available. Consequently restructure code that looks up/creates connections. 2000-07-05 Chris Hanson * edwin/sendmail.scm[1.66]: Read non-text attachments in binary mode. * imail/imail-top.scm[1.209]: Use new GLOBAL-MAILER-VERSION-STRING. * edwin/edwin.pkg[1.263], edwin/sendmail.scm[1.65]: Add GLOBAL-MAILER-VERSION-STRING. * imail/imail-file.scm[1.56]: Fix bug in file URL parsing for DOS-style pathnames. * imail/imail-file.scm[1.55]: Add URL encode/decode to file URLs. Fix typo in HEADER-FIELDS->INTERNAL-TIME. * imail/imail-rmail.scm[1.49], imail/imail-umail.scm[1.38]: Fix bug: code to create new file folders wasn't writing the folders out. * imail/imail-file.scm[1.54], imail/imail-file.scm[1.53], imail/imail-rmail.scm[1.48], imail/imail-umail.scm[1.37], imail/todo.txt[1.110]: Change file URL syntax to obey RFC 1738. * runtime/pathnm.scm[14.33], runtime/runtime.pkg[14.355]: Define procedure HOST/TYPE-NAME. * imail/imail-top.scm[1.208]: In M-x imail-get-new-mail (and M-x imail), move to first unseen message even if the server probe reveals no new mail. This is important because the new mail is usually fetched by the background probe thread. * imail/imail-imap.scm[1.138]: Reduce the traffic generated by completion code to determine if a mailbox has inferiors or not. * imail/imap-syntax.scm[1.16]: Fix thinkos in mailbox-decoding procedure. * imail/imap-syntax.scm[1.15]: Fix thinko in previous change. * imail/imap-syntax.scm[1.14]: Fix some bugs in the IMAP URL parser. * imail/imail-top.scm[1.207]: When examining prompt history, ignore malformed URLs that generate errors during parsing. * imail/imap-syntax.scm[1.13]: Fix bugs in IMAP mailbox encode/decode procedures. * imail/imail-imap.scm[1.137]: Add calls to mailbox encode/decode procedures. These should have been put in long ago. * imail/imail.pkg[1.73]: Export mailbox-name encode/decode procedures. * imail/imap-syntax.scm[1.12]: Change mailbox-name encode/decode to accept either string or substring. * imail/ed-ffi.scm[1.13]: Adjust to reflect new packaging structure. * imail/imail.pkg[1.74], imail/imail.pkg[1.72]: "imail-umail" and "imail-rmail" should be in subfolders of "imail-file". 2000-07-04 Chris Hanson * imail/imail-top.scm[1.206]: Fix infinite loop that occurs when expunging all messages in folder. 2000-07-03 Chris Hanson * imail/imap-response.scm[1.41], imail/imap-response.scm[1.40]: Seriously simplify READ-LITERAL-TO-PORT by eliminating extra layer of buffering. * imail/imap-response.scm[1.39]: Tweak. * imail/imap-response.scm[1.38]: Canonicalize argument order to list-reading procedures. * imail/imap-response.scm[1.37]: Fix two typos in READ-SET. 2000-07-02 Chris Hanson * imail/url.scm[1.8], runtime/Attic/url.scm[1.8]: Fix two typos. * imail/todo.txt[1.109]: Trim some unnecessary items. 2000-07-01 Chris Hanson * imail/imail.pkg[1.71], imail/todo.txt[1.108]: Redesign packaging to break up the monolithic core. There isn't very much cross-reference between these files. 2000-06-30 Chris Hanson * imail/load.scm[1.19], runtime/version.scm[14.187]: Update version to reflect impending release. * edwin/make.scm[3.102]: Update version to reflect changes to support IMAIL. * imail/imail-top.scm[1.205], imail/imail-top.scm[1.204]: Don't inline text/plain entities that have disposition ATTACHMENT. * edwin/sendmail.scm[1.64]: File attachments should always have a disposition of ATTACHMENT. * imail/imail-imap.scm[1.136], imail/imail.pkg[1.70], imail/imap-response.scm[1.36], imail/todo.txt[1.107]: Integrate MIME decoding into reading of MIME body parts. Large attachments are now read directly into files. * imail/imail-imap.scm[1.135], imail/imail-top.scm[1.203]: Change definition of CACHE? argument to WRITE-MIME-MESSAGE-BODY-PART. Now it may take the following values: #F don't cache #T cache conditionally cache; length of part is * imail/imail-imap.scm[1.134]: Generalize IMAP:CATCH-NO-RESPONSE and use it in %APPEND-MESSAGE. * imail/imail-core.scm[1.112], imail/imail-file.scm[1.52], imail/imail-imap.scm[1.133]: Eliminate unused AVAILABLE-FOLDER-NAMES. This capability is available from the completion operations. * imail/imail-imap.scm[1.132]: Fix bug that caused server greeting to be thrown away. Change handling of delimiter and namespace information, so that they are set by the front end rather than that back end. * imail/imail-imap.scm[1.131]: Now that IMAP URLs use a slash delimiter, I think it looks better to use the base name as the name of the buffer. * imail/todo.txt[1.106]: Reprioritize list. Change category of APPEND-MESSAGES. Eliminate proposed option to quote original in replies using MIME. * imail/todo.txt[1.105]: Don't bother with support for compressed mail files. This isn't as important as I thought it was. * imail/todo.txt[1.104]: Don't do anything special with "flagged" flag. * imail/imail-file.scm[1.51]: Fix bug: file completion wasn't working right if the pathname being completed ended in a directory separator. * imail/imail-file.scm[1.50], imail/imail-rmail.scm[1.47], imail/imail-umail.scm[1.36]: Simplify handling of file-URL completion: this is now identical for all file URLs, so have only one method for that class. * imail/imail-rmail.scm[1.46], imail/imail-umail.scm[1.35], imail/todo.txt[1.103]: Modify RMAIL file reader to handle mixed RMAIL/umail files, as does the real RMAIL. We don't bother with MMDF format, since that isn't used by any real systems any longer. 2000-06-29 Chris Hanson * imail/print.sh[1.8]: Change presentation order to place IMAP implementation ahead of file implementation. * imail/imail-core.scm[1.111], imail/imail-rmail.scm[1.45], imail/imail-top.scm[1.202], imail/imail-util.scm[1.29], imail/todo.txt[1.102]: Revise representation of header-field objects, so that RFC-822 quoting mechanism isn't part of the representation. Value string of a header is now arbitrary text, and there is an explicit mechanism for converting the header value to RFC-822 format, by prepending tabs onto continuation lines. Additionally, there should no longer be any possibility of a low-level error being generating when parsing header fields of incoming messages. * imail/imail-imap.scm[1.130]: Change IMAP URLs to use / instead of server delimiter. * imail/imail-imap.scm[1.129]: Assume that heirarchy delimiter and NAMESPACE information never change. Once information is cached, never erase it. * imail/imail-imap.scm[1.128]: Reduce extent of a few calls to WITH-OPEN-IMAP-CONNECTION. Fix missing method specialization. * imail/imail-top.scm[1.201]: Clarify selector-interpretation logic in SELECT-MESSAGE. * imail/imail-top.scm[1.200]: Fix pagination. * imail/imail-imap.scm[1.127], imail/todo.txt[1.101]: Fix IMAP URL completion so that folders that both are selectable and have subfolders appear twice in the completions list, once with the hierarchy delimiter, and once without. * imail/todo.txt[1.100]: Note about making IMAP URL completion handle folders that contain both messages and subfolders. 2000-06-27 Chris Hanson * imail/imail-top.scm[1.199], imail/imail.pkg[1.69]: Restrict M-x imail-save-attachment to work only on attachments, not on in-line MIME parts. Implement M-x imail-mouse-save-mime-entity and M-x imail-save-mime-entity. Rename M-x imail-toggle-attachment to M-x imail-toggle-mime-entity. * imail/imail-top.scm[1.198], imail/imail-top.scm[1.197]: Decode BinHex 4.0 attachments. * runtime/mime-codec.scm[14.8]: Add code to extract the data fork from a BinHex 4.0 input stream. BinHex support is now complete. * runtime/mime-codec.scm[14.7]: Implement more flexible rule for matching initial comment and colon of BinHex input. * runtime/mime-codec.scm[14.6]: Change terminology: BinHex "decompression" -> "run-length decoding". * imail/imail-top.scm[1.196]: Change behavior of M-x imail-forward so that negative argument means send with raw headers. Eliminate MIME-ONLY value of imail-forward-all-headers, as it's no longer needed. * imail/imail-top.scm[1.195]: Fix bug: key binding for M-x imail-toggle-message was already in use. 2000-06-26 Chris Hanson * imail/imail-top.scm[1.194]: Move MIME-decoding output ports to runtime system. * runtime/mime-codec.scm[14.5], runtime/runtime.pkg[14.354]: Implement BinHex decompressor. * imail/imail-top.scm[1.193], imail/imail.pkg[1.68], imail/todo.txt[1.99]: Show message in modeline of all buffers when there is unseen mail. Variable imail-global-mail-notification controls this feature. * imail/imail-top.scm[1.192], imail/imail-top.scm[1.191]: When prompting for MIME info, if there's only one choice, don't bother prompting. * imail/imail-top.scm[1.190], imail/imail.pkg[1.67], imail/todo.txt[1.98]: Implement M-x imail-toggle-attachment, which allows any part of a MIME-encoded message to be toggled between "in-line" and "out-of-line" format. This is most useful for expanding small text attachments without writing them to a file first. * edwin/simple.scm[1.52], edwin/simple.scm[1.51]: Add additional procedures for searching through the space of text properties. * imail/imail-top.scm[1.189], imail/imail.pkg[1.66], imail/todo.txt[1.97]: Implement variable imail-mime-show-alternatives. 2000-06-24 Chris Hanson * imail/imail-core.scm[1.110], imail/imail-imap.scm[1.126], imail/imail-top.scm[1.188]: Fix bug: when current message and subsequent messages simultaneously deleted, was signalling an error, because the EXPUNGE responses were being processed one at a time, and the local model of the folder was out of sync with the server's model. New strategy defers dealing with all of these changes until all of the responses have been processed, at which time both models are again synchronized. * imail/imail-top.scm[1.187], imail/imail-top.scm[1.186]: Fix problem with previous change: shouldn't automatically select new message when folder grows. Instead, stay on current message unless it is deleted. 2000-06-23 Chris Hanson * imail/imail-file.scm[1.49], imail/imail-file.scm[1.48], imail/imail-rmail.scm[1.44], imail/todo.txt[1.96]: Preserve internal time when copying to rmail folder from any other type of folder, by writing a distinguished header field into the rmail file. * imail/imail-imap.scm[1.125], imail/imail-top.scm[1.185], imail/todo.txt[1.95]: Fix bug: when IMAP mailbox simultaneously accessed from two places, IMAIL wouldn't correctly update the message buffer under a variety of circumstances. This turned out to be a confluence of several bugs in the code. * imail/imail-imap.scm[1.124]: Fix fencepost error. * imail/imail-core.scm[1.109]: Add folder events to IMAP trace facility. * imail/imail-top.scm[1.184]: Extend imail-forward-all-headers to have value MIME-ONLY. 2000-06-22 Chris Hanson * imail/imail-top.scm[1.183]: Mail buffer must have adaptive-fill regexps adjusted so that C-M-y works right. * imail/imail-top.scm[1.182], imail/todo.txt[1.94]: Use new hook to modify the "User-Agent" header. * edwin/sendmail.scm[1.63]: Change "X-Mailer" to "User-Agent"; add hook to allow mail reader to modify this string. * runtime/ed-ffi.scm[1.24]: Add missing entry for mime-codec. * runtime/mime-codec.scm[14.4], runtime/runtime.pkg[14.353], runtime/runtime.pkg[14.352], runtime/runtime.pkg[14.351]: First cut at BinHex support. This just does the decoding, without understanding the structure of the data stream. 2000-06-20 Chris Hanson * imail/todo.txt[1.93]: Note regarding bug with multiple simultaneous access. * imail/imail-rmail.scm[1.43]: Tweak layout. * imail/imail-core.scm[1.108], imail/imail-file.scm[1.47]: Define HEADER-FIELD-LENGTH. * imail/imail-file.scm[1.46], imail/imail-rmail.scm[1.42], imail/imail-umail.scm[1.34], imail/todo.txt[1.92]: Allow file completion to complete to any file. * imail/imail-core.scm[1.107]: Repaginate. * imail/imail-core.scm[1.106]: Allow arbitrary whitespace in IMAIL flags header, so that flags lines can be folded. * imail/todo.txt[1.91], imail/todo.txt[1.90]: Expand on note regarding header-field representation. * imail/imail-summary.scm[1.23]: Fix some thinkos. * imail/imail-top.scm[1.181]: Simplify decision tree in CALL-WITH-AUTO-WRAPPED-OUTPUT-MARK. * imail/imail-top.scm[1.180]: Share similar code from IMAIL-YANK-ORIGINAL and SELECT-MESSAGE. * imail/imail.pkg[1.65]: Export M-x imail-toggle-header. * imail/imail-top.scm[1.179]: Redefine variable imail-mime-attachment-directory to be an override of the default behavior, which is to track the last directory written to. * imail/imail-top.scm[1.178]: Share code that copies all messages from one folder to another. * imail/imail-top.scm[1.177]: Fix typo. * imail/imail-top.scm[1.176]: Change binding of imail-toggle-message to #\c-t. * imail/imail-top.scm[1.175]: Fix bug: last change to IMAIL-MODE-LINE-SUMMARY-STRING had thinko that caused an error when viewing an empty mailbox. 2000-06-19 Chris Hanson * imail/todo.txt[1.89]: Add some new ideas from one of the reviews. * imail/imail-top.scm[1.174]: Always show message counts and folder length in modeline. It's confusing to omit this. * imail/imail-core.scm[1.105], imail/imail-top.scm[1.173]: Change definition of GET-ALL-HEADER-FIELD-VALUES to return a list of strings, rather than a comma-separated string. * edwin/pwedit.scm[1.8]: Rework handling of buffer properties so that command to toggle password field works anywhere in the field. * imail/imail-imap.scm[1.123]: Fix bug: when fetching MIME message part, must guarantee that the connection is open. * imail/imail-top.scm[1.172], imail/todo.txt[1.88]: Reimplement M-x imail-toggle-header (in addition to imail-toggle-message). * imail/imail-top.scm[1.171], imail/todo.txt[1.87]: Fix code that yanks original message into reply buffer. Now the yanked code looks just like the formatted code in the original buffer, except that there are no attachments, and the line wrapping is adjusted to account for the indentation. * imail/clean.sh[1.2]: Fix typo. * imail/todo.txt[1.86]: New strategy for yanking MIME messages into reply buffer. * imail/imail-core.scm[1.104], imail/imail-file.scm[1.45], imail/imail-imap.scm[1.122], imail/imail-rmail.scm[1.41], imail/imail-umail.scm[1.33]: Change interface for retrieving message bodies so that the body isn't always returned as a string, but instead is written to a port. This will allow IMAP message to write their bodies directly to files, which is especially important for bodies that are too large to fit in memory. * imail/imail-top.scm[1.170]: Fix bug: empty folder wasn't noticing new messages being added. * imail/imail-top.scm[1.169]: Fix bug: when expunging last message in folder, IMAIL was generating an error. * imail/imail-util.scm[1.28]: Simplify implementation of broken-pipe handler so that parts can be reused. * imail/imail-imap.scm[1.121]: Redo previous fix; was shutting down connection in cases where it shouldn't have. 2000-06-18 Chris Hanson * imail/imail-core.scm[1.103], imail/imail-top.scm[1.168], imail/imail.pkg[1.64]: A handful of bug fixes, plus some clarifications. * edwin/prompt.scm[1.188], edwin/prompt.scm[1.187]: Change PROMPT-HISTORY-STRINGS and SET-PROMPT-HISTORY-STRINGS! so that the history name may be #F, meaning use the default history. 2000-06-17 Chris Hanson * imail/todo.txt[1.85]: Note re imail-toggle-headers. 2000-06-16 Chris Hanson * imail/imail-top.scm[1.167]: Fix thinko. * imail/imail-summary.scm[1.22], imail/imail-top.scm[1.166], imail/imail-top.scm[1.165], imail/imail-top.scm[1.164], imail/imail.pkg[1.63], imail/load.scm[1.18]: Large-scale editing pass over the front-end code. Code should now be clearer and better organized. * imail/imail-core.scm[1.102], imail/imail-file.scm[1.44], imail/imail-rmail.scm[1.40]: Eliminate notes that have been moved to todo file. * edwin/sendmail.scm[1.62]: Set NAME parameter on MIME file attachments. Change key bindings in attachment browser; shouldn't use #\- for a command. * imail/imail-core.scm[1.101], imail/imail-file.scm[1.43]: Change status symbol FOLDER-MODIFIED to CACHE-MODIFIED. 2000-06-15 Chris Hanson * imail/print.sh[1.7]: Remove rfc822.scm from printout. * imail/imail-top.scm[1.163]: Don't add gratuitous newlines to message presentation. * edwin/sendmail.scm[1.60]: Add attachments in time order; previous was reversed. * imail/imap-response.scm[1.35]: Be very careful not to read beyond the end of a literal, as this might hang. * imail/imail-imap.scm[1.120]: If IMAP command doesn't complete normally, close the connection. * edwin/edwin.pkg[1.262], edwin/sendmail.scm[1.59]: Implement MIME attachment browser, with commands to add and delete attachments. * edwin/sendmail.scm[1.58]: Implement mime-attachments buffer for editing message attachments. * imail/imail-top.scm[1.162]: Respect INLINE disposition if present. * imail/imail-imap.scm[1.119]: Fix bug: don't try to send LOGOUT command when socket is closed. * imail/imail-summary.scm[1.21]: Fix harmless typo. * imail/imail-top.scm[1.161], imail/imail-top.scm[1.160], imail/imail.pkg[1.62], imail/todo.txt[1.84]: Implement variable imail-inline-mime-text-subtypes. * imail/imail-top.scm[1.159], imail/imail.pkg[1.61]: Implement M-x imail-first-unseen-message. * imail/todo.txt[1.83]: Made changes to mime-codec to improve speed of quoted-printable decoder. * runtime/mime-codec.scm[14.3]: Use substring search to speed up quoted-printable decoder. * imail/todo.txt[1.82]: Potpourri of notes, and new section on MIME conformance. * imail/todo.txt[1.81]: Note regarding integration of MIME decoding into the MIME body reader. * edwin/fill.scm[1.67], edwin/fill.scm[1.66]: Fix fencepost error. * imail/imail-top.scm[1.158]: Use new line-wrapping facility in Edwin. Hopefully this will be fast enough to eliminate tedious delay of previous implementation. * edwin/fill.scm[1.65]: Implement procedures to wrap lines in paragraphs. * edwin/sendmail.scm[1.61], imail/imail-summary.scm[1.20]: Fix typo. * imail/imail-summary.scm[1.19], imail/imail-top.scm[1.157], imail/imail.pkg[1.60], imail/imail.pkg[1.59]: Implement new commands: imail-bury imail-next-same-subject imail-previous-same-subject * imail/imail-summary.scm[1.18], imail/imail-top.scm[1.156], imail/imail.pkg[1.58]: Implement M-x imail-summary-by-regexp and M-x imail-summary-by-topic. Latter doesn't support WHOLE-MESSAGE option of Emacs because that would be dreadfully inefficient using IMAP. * imail/imail-top.scm[1.155]: In description for imail-mode, don't show variables for imail-summary-mode. Also, show value for each variable. * imail/imail-top.scm[1.154]: Reconcile the key bindings with those of RMAIL in Emacs version 20. Use new dynamically-generated help string feature of Edwin to generate the mode description for imail-mode. * edwin/hlpcom.scm[1.118]: Extend help output procedures to accept a port as an argument. * edwin/comman.scm[1.84], edwin/docstr.scm[1.5], edwin/docstr.scm[1.4], edwin/edwin.ldr[1.72], edwin/edwin.ldr[1.71], edwin/hlpcom.scm[1.120], edwin/hlpcom.scm[1.119], edwin/hlpcom.scm[1.117], edwin/modes.scm[1.33], edwin/prompt.scm[1.186]: Allow description of a command, variable, or mode to be a thunk that evaluates to a string. 2000-06-14 Chris Hanson * imail/todo.txt[1.80]: Add two suggestions from radhi. * imail/imail-top.scm[1.153], imail/imail.pkg[1.57]: Always inline top-level MIME text parts, even if the subtype isn't "plain". Also, define new variable imail-known-mime-charsets, to allow the user to add other character sets that may be inlined. * imail/imail-imap.scm[1.118]: Change IMAP URL completion to work more like filename completion: completion shows only the elements at the top level of the mailbox being completed on. Furthermore, non-selectable mailboxes are suffixed with the heirarchy delimiter to cue the user. * edwin/sendmail.scm[1.57]: Don't abbreviate MIME header fields in the header; only in subparts of a multipart message. * imail/imail-top.scm[1.152], imail/imail.pkg[1.56], imail/todo.txt[1.79]: Implement variable imail-forward-using-mime to allow the user to disable the use of MIME for message forwarding. * imail/imail-core.scm[1.100], imail/imail-file.scm[1.42], imail/imail-imap.scm[1.117], imail/imail-rmail.scm[1.39], imail/imail-top.scm[1.151], imail/imail-umail.scm[1.32], imail/todo.txt[1.78]: When renaming a folder, the default for the target is the container for the source. When copying a folder, the default for the target is the base name of the source, merged into the container of the most recent copy target. 2000-06-13 Chris Hanson * imail/imail-top.scm[1.150], imail/todo.txt[1.77]: Change M-x imail-get-new-mail so that it selects the first unseen message, or does nothing otherwise. This will be more robust when resynchronizing the folder, and will also provide a command to move to the first unseen message. 2000-06-12 Chris Hanson * imail/imail-top.scm[1.149], imail/imail.pkg[1.55]: Implement variable imail-forward-all-headers. * edwin/edwin.pkg[1.261], edwin/sendmail.scm[1.56]: Add new variable mail-abbreviate-mime to control verbosity of MIME headers generated. * edwin/sendmail.scm[1.55]: Fix typo: "Content-Encoding" -> "Content-Transfer-Encoding". * edwin/edwin.pkg[1.260], edwin/sendmail.scm[1.54], edwin/snr.scm[1.58], imail/todo.txt[1.76]: Insert X-Mailer and Organization fields after user finished editing message, rather than cluttering up the user's buffer with them. * imail/imail-top.scm[1.148]: Fix bug: imail-resend not selecting buffer. 2000-06-11 Chris Hanson * edwin/mousecom.scm[1.5]: Use recommended scrolling of 5 lines rather than 10. * edwin/modefs.scm[1.159], edwin/mousecom.scm[1.4]: Add hack to utilize mouse wheel under X. * imail/imail-summary.scm[1.17]: Add bindings for up/down arrow keys, for mouse button one, and for mouse buttons 4 and 5 (scroll buttons on wheel mice). 2000-06-10 Chris Hanson * imail/imail-imap.scm[1.116], imail/todo.txt[1.75]: Use NAMESPACE information to setup prefix to URL prompts. * imail/imail-imap.scm[1.115], imail/imail.pkg[1.54], imail/imap-response.scm[1.34]: If server supports the NAMESPACE extension, use it to get namespace information and store it in the connection object. * imail/todo.txt[1.74]: Note re: NAMESPACE feature. 2000-06-09 Chris Hanson * imail/todo.txt[1.73]: Potpourri. * imail/todo.txt[1.72]: Note to change handling of "informational" headers in sent mail. * imail/imail-top.scm[1.147], imail/imail.pkg[1.53]: Eliminate variable imail-receive-mime. User can toggle message to raw form to get similar effect. * imail/imail-top.scm[1.146]: Take advantage of new MIME support in the mail-sending code. Forward messages as attachments, and disable all MIME processing when resending messages. * edwin/edwin.pkg[1.259], edwin/sendmail.scm[1.53]: Another pass at the MIME stuff. This one seems to work OK, by providing a way for imail-resend to disable MIME processing. (Also, all MIME headers are stripped out before building up the MIME framework.) This code now supports MIME attachments, although there needs to be a command to allow the user to attach a file or the original mail message (if any), and also there needs to be an attachment browser. 2000-06-08 Chris Hanson * edwin/sendmail.scm[1.52]: Disable MIME-compliance checks. There are strange interactions between them and forwarding/resending that cause trouble, and I don't have time to fix it right now. * imail/imail-top.scm[1.145]: Don't allow user to edit resent mail. * edwin/sendmail.scm[1.51], edwin/sendmail.scm[1.50]: Initial attempt to guarantee MIME compliance when sending messages. * runtime/mime-codec.scm[14.2]: Fix bug: MIME requires that quoted-printable encodings use upper-case characters for hex digits. * imail/imail-top.scm[1.143]: Fix typo. * edwin/edwin.pkg[1.258], edwin/occur.scm[1.5]: Create new interface for programmatic invocation of M-x occur. * imail/todo.txt[1.71]: Notes regarding insertion of messages into outgoing mail. * imail/imail-top.scm[1.142]: Change sending of mail so that insertion of original mail into sent mail doesn't just use the formatted text from the IMAIL buffer, but instead uses the original message body. * imail/imail-core.scm[1.99]: Extend ->HEADER-FIELDS to accept a string. * edwin/sendmail.scm[1.49], edwin/sendmail.scm[1.48]: Add hook to allow custom hook to run when yanking original message into reply buffer. * imail/imail-top.scm[1.141]: Fix typo in previous change. * imail/Attic/rfc822.scm[1.10], imail/compile.scm[1.10], imail/ed-ffi.scm[1.12], imail/fake-env.scm[1.4], imail/imail.pkg[1.52], imail/load.scm[1.17]: Move RFC-822 support to Edwin proper. * edwin/decls.scm[1.69], edwin/ed-ffi.scm[1.50], edwin/edwin.ldr[1.70], edwin/edwin.pkg[1.257], edwin/rfc822.scm[3.2], edwin/rfc822.scm[3.1], edwin/rmail.scm[1.71], edwin/sendmail.scm[1.47], edwin/snr.scm[1.57]: Import RFC-822 support from IMAIL. * imail/imail-top.scm[1.140], imail/todo.txt[1.70]: Show alternative forms as attachments in MIME multipart/alternative. Don't show text messages with unknown encodings. * imail/Attic/mime-codec.scm[1.11], imail/compile.scm[1.9], imail/ed-ffi.scm[1.11], imail/imail.pkg[1.51], imail/load.scm[1.16], imail/load.scm[1.15], runtime/mime-codec.scm[14.1], runtime/optiondb.scm[1.9], runtime/runtime.pkg[14.350]: Move MIME codecs from IMAIL into the runtime system. * imail/imail-top.scm[1.139], imail/todo.txt[1.69], imail/todo.txt[1.68]: Restrict set of recognized character sets to US-ASCII, ISO-8859, and Windows-. Messages in other sets are treated as unknowns; character set appears in attachment descriptor. * imail/imail-top.scm[1.138]: Change key binding of imail-copy-folder to C to be consistent with Dired. * imail/imail-top.scm[1.137]: Fix documentation for M-x imail-rename-folder. * imail/imail-top.scm[1.136], imail/imail.pkg[1.50]: Implement M-x imail-rename-folder. * imail/Attic/mime-codec.scm[1.10], imail/imail-top.scm[1.144]: Fix compiler warning. * imail/imail-top.scm[1.135], imail/imail.pkg[1.49], imail/todo.txt[1.67]: Rewrite to use new MIME codecs. Merge two auto-wrap variables into one. Trailing newline no longer part of attachment's marked region. * imail/Attic/mime-codec.scm[1.9]: Rewrite the quoted-printable decoder, again. This one is much simpler and works. 2000-06-07 Chris Hanson * imail/Attic/mime-codec.scm[1.8], imail/imail.pkg[1.48]: Complete redesign of the MIME codecs. This design is mostly working, except for the quoted-printable decoder, which is too complicated and still has some subtle bugs. * imail/todo.txt[1.66]: Notes re incorrect selection by M-x imail-get-new-mail. * imail/todo.txt[1.65]: Various notes regarding handling of MIME type and encoding. * runtime/advice.scm[14.17]: Fix another place still using the old newline convention. 2000-06-05 Chris Hanson * imail/imail-imap.scm[1.114]: Undo previous change. This was being handled elsewhere and was never removed from the to-do list. * imail/imail-imap.scm[1.113], imail/imail-top.scm[1.134], imail/todo.txt[1.64]: Generate message "No changes to save." from SAVE-FOLDER on an IMAP folder. * imail/imail-imap.scm[1.112], imail/imail-top.scm[1.133], imail/todo.txt[1.63]: Rename the procedures that form the UI callback interface to make it clear what their role is. * imail/imail-top.scm[1.132]: When auto-wrap enabled, wrap at right margin rather than at fill-column. Also, don't set truncate-lines. * imail/imail-core.scm[1.98], imail/imail-imap.scm[1.111], imail/imail-rmail.scm[1.38], imail/imail-top.scm[1.131], imail/imail-umail.scm[1.31], imail/imail.pkg[1.47]: Unify handling of body cache. Add editor variable to control the caching. * imail/imail-top.scm[1.130], imail/imail.pkg[1.46], imail/todo.txt[1.62]: Replace imail-toggle-headers with imail-toggle-message, which toggles between the standard and raw formats of a message. * imail/imail-top.scm[1.129]: Update imail-mode help. * edwin/hlpcom.scm[1.116]: Make help buffers read-only. * imail/imail-imap.scm[1.110]: Fix bug: a couple of places explicitly referenced the flag "\\recent" which was changed to "recent". * imail/imail-imap.scm[1.109]: When reading entire body of MIME message, use MESSAGE-BODY. * imail/imail-top.scm[1.128], imail/todo.txt[1.61]: Fix bug: When message was selected in IMAIL and deleted by a different user agent, IMAIL would end up in state where there is no selected message. Now, it selects another message. * imail/imail-core.scm[1.97], imail/imail-imap.scm[1.108], imail/imail-top.scm[1.127]: Change interface to MESSAGE-MIME-BODY-PART to specify whether to cache the part. * edwin/basic.scm[1.139]: Fix thinko from last change. * imail/imail-imap.scm[1.107], imail/todo.txt[1.60]: Store bodystructure in IMAP message in converted form, so conversion only happens once. * imail/imail-top.scm[1.126], imail/todo.txt[1.59]: Change attachment tag to show length of attachment. * imail/imail-imap.scm[1.106], imail/todo.txt[1.58]: Add cache for MIME body parts. * imail/imail-imap.scm[1.105]: Save server capabilities for later reference. * imail/imail-imap.scm[1.104]: Map all IMAP system flags to names without leading backslash. * imail/todo.txt[1.57]: Add some new items. * imail/imail-top.scm[1.125]: Fix bug: don't signal error if attachment lacks a filename parameter. 2000-06-03 Chris Hanson * imail/imail-imap.scm[1.103]: Fix bug: STATUS command returns a response! (Duh) * imail/imail-top.scm[1.124]: When saving attachment, check to see if file exists before blindly overwriting it. * imail/Attic/mime-codec.scm[1.7]: Change decoders to decode to a port rather than to a string. This is almost always more efficient. * imail/imail-top.scm[1.123]: Implement mechanism to save MIME attachments. Reorganize this file a little to make sections more coherent. 2000-06-02 Chris Hanson * imail/imail-top.scm[1.122]: Add workaround for broken Netscape mailer. * imail/imail-core.scm[1.96]: Change MIME bodystructure objects to have properties. * imail/imail-top.scm[1.121]: Tweak attachment syntax slightly. * edwin/things.scm[1.88]: Eliminate usage of MARK-PERMANENT!. * imail/todo.txt[1.56]: Ideas about MIME stuff. * imail/imail-top.scm[1.120]: Fix bug in how message/rfc822 entities were presented (headers were being shown twice). Change text representation of attachments, and binding information to the buffer so that the attachment can later be saved. * imail/imail-imap.scm[1.102]: Fix bug: MIME disposition wasn't being converted to canonical form. * imail/imail-core.scm[1.95]: Add MIME-BODY-PARAMETER. * imail/install.sh[1.4]: Update to reflect new organization. * imail/todo.txt[1.55]: Remove two suggestions prompted by Julie's problems with automatic conversion to quoted-printable. * imail/imail-top.scm[1.119]: Show "text/plain" entities regardless of character set. There are some pretty broken mailers out there (e.g. Outlook Express) that claim random character sets when they should be claiming "us-ascii". * imail/imail-core.scm[1.94]: Print out instances in more intelligible form. * imail/imail.pkg[1.45], imail/load.scm[1.14]: Move Edwin variable exports back to "imail.pkg". Add subsystem ID string for IMAIL. * imail/imail-top.scm[1.118]: Refine the auto-wrap feature to have separate controlling variables for encoded and unencoded parts. Fix URL completion so that it verifies values correctly by calling URL-EXISTS?, and change callers to specify when the URL they are prompting for must exist. * imail/imail-imap.scm[1.101], imail/todo.txt[1.54]: Implement URL-EXISTS? for IMAP folders. * imail/imail-top.scm[1.117]: Add automatic wrapping of long lines in decoded MIME entities. * imail/imail-imap.scm[1.100]: Show progress when reading MIME body parts. * edwin/basic.scm[1.138], edwin/fill.scm[1.64]: Change AUTO-FILL-BREAK so that it accepts a mark as an argument, and returns a boolean indicating whether it broke the line. 2000-06-01 Chris Hanson * imail/imail-top.scm[1.116], imail/imail.pkg[1.44], imail/load.scm[1.13]: Initial cut at MIME decoding support. * imail/imail-imap.scm[1.99]: Generalize MESSAGE-MIME-BODY-PART to allow passing selector ending in HEADER or TEXT. * imail/imail.pkg[1.43]: Load "mime-codec" after "imail-util" due to load-time dependencies. * imail/imap-response.scm[1.33]: Signal an error if unable to parse BODY section in FETCH response. * imail/Attic/parser.scm[1.4]: Fix two bugs in LIST-PARSER. * imail/imail-imap.scm[1.98]: Store MIME multipart components in a list rather than a vector. * imail/Attic/mime-codec.scm[1.6]: When decoding BASE64 text strings, must return two values. * imail/imail-core.scm[1.93], imail/imail-imap.scm[1.97]: Implement MESSAGE-MIME-BODY-PART. * imail/imail.pkg[1.42], imail/imap-response.scm[1.32]: Implement IMAP:RESPONSE:FETCH-BODY-PART. * imail/Attic/mime-codec.scm[1.5]: Fix compiler warnings. * imail/compile.scm[1.8], imail/ed-ffi.scm[1.10], imail/imail.pkg[1.41]: Add "mime-codec" to package. * imail/Attic/mime-codec.scm[1.4]: Add newline translation to BASE64 decoder for case where the data being decoded is text. * imail/imail-core.scm[1.92], imail/imail-file.scm[1.41], imail/imail-imap.scm[1.96]: Add generic interface to access MIME BODYSTRUCTURE information. * imail/imap-response.txt[1.6]: Fix two bugs in syntax. * imail/Attic/imail-imap-url.scm[1.11], imail/Attic/test-imap.scm[1.2]: Removing files no longer in use. 2000-05-31 Chris Hanson * imail/install.sh[1.3]: Copy entire contents of directory to installation point. This now matters so that copy in my directory will act as a branch for development. * imail/imail-top.scm[1.115]: Fix typo. 2000-05-30 Chris Hanson * imail/imail-top.scm[1.114]: When showing progress meter, don't show percentage when amount read is either zero or the total amount. This causes the display to flicker and provides no useful information. * imail/imail-imap.scm[1.95]: Use STRING->HEADER-FIELDS. * imail/imail-util.scm[1.27]: Fix bug: STRING->LINES must not return an empty list. * imail/imail-top.scm[1.113], imail/load.scm[1.12]: Change M-x imail-input, M-x imail, and M-x imail-get-new-mail to more closely mimic their RMAIL counterparts. * imail/Attic/mime-codec.scm[1.3]: Fix typo in DECODE-QP-HEX-OCTET. * imail/todo.txt[1.53]: Need command to move to first unseen message in folder. * imail/imap-response.scm[1.31]: Rewrite READ-LITERAL with two aims: (1) to make the newline translation more efficient, and (2) to generalize it so that MIME decoding can be directly hooked in. * runtime/strout.scm[14.14]: GET-OUTPUT-FROM-ACCUMULATOR should return the internal accumulator string, rather than copying the string to a new one. Since the internal accumulator is discarded, this is not a problem, and offers significant efficiency gains. 2000-05-29 Chris Hanson * imail/imap-response.scm[1.30]: Fix typo. * imail/imap-response.scm[1.29]: Pull transcript handling from READ-LITERAL to new READ-SUBSTRING!-INTERNAL. 2000-05-28 Chris Hanson * imail/imap-response.scm[1.28]: Tweak conditions under which literal progress hook is called. * imail/imap-response.scm[1.27]: Modularize line-ending translator. * imail/imap-response.scm[1.26], imail/imap-response.txt[1.5]: Disambiguate the "section" form of the BODY response from the "bodystructure" form. * imail/imail-imap.scm[1.94]: Don't remove IMAP connections from the memoized list when they are closed. Each folder retains a pointer to its connection after closing it, and may reopen the connection later. When this happens, it defeats the purpose of the memoization. 2000-05-27 Chris Hanson * imail/imap-response.txt[1.4]: Fix minor bug in description of FETCH BODY responses. * imail/Attic/mime-codec.scm[1.2]: Implement BASE64 decoder. * imail/imail-util.scm[1.26]: Implement SKIP-LWSP-BACKWARDS. 2000-05-26 Chris Hanson * imail/install.sh[1.2]: Only install required files. * imail/imail-top.scm[1.112]: Set truncate-lines to #t in buffer that pops up to show messages to be expunged. * imail/Attic/mime-codec.scm[1.1]: Initial registration. * imail/imail-imap.scm[1.93]: Add ability to obtain envelope and bodystructure information from the server. 2000-05-25 Chris Hanson * imail/imail-imap.scm[1.92]: Reorganize login code so that login errors are properly signalled. * imail/imail-top.scm[1.111], imail/todo.txt[1.52]: If M-x imail finds existing buffer visiting the folder, it just selects it and runs M-x imail-get-new-mail. * imail/imail-top.scm[1.110], imail/todo.txt[1.51]: Generalize imail-expunge-confirmation to make the type of prompt and the showing of message independently selectable. * imail/imail-imap.scm[1.91], imail/imail-top.scm[1.109]: Don't store the user's pass phrase if the login fails. * imail/imail-top.scm[1.108], imail/load.scm[1.11], imail/todo.txt[1.50]: Implement mechanism to poll the IMAP server in the background at a specified interval. * imail/imail-imap.scm[1.90], imail/imail-imap.scm[1.89]: Fix bug: must read message UIDs _before_ signalling folder event, as the event handler will usually access the folder, causing extra unnecessary traffic. * edwin/editor.scm[1.248]: Run inferior-thread output processors with interrupts enabled. 2000-05-24 Chris Hanson * imail/imail-top.scm[1.107]: Reply buffer must refer to the message buffer, not the current buffer. * imail/imail-top.scm[1.106]: Fix typo that caused MOVE-RELATIVE to ignore its operation when moving backwards. * imail/load.scm[1.10]: Export EDWIN-VARIABLE$IMAIL-PASS-PHRASE-RETENTION-TIME. * imail/todo.txt[1.49]: Minor changes. * imail/imail-top.scm[1.105]: Add mechanism to erase stored passwords after the specified retention time that was in effect when they were stored. This uses timer interrupts to guarantee that it happens even if the user walks away from the machine. 2000-05-23 Chris Hanson * runtime/datime.scm[14.30]: Use pivot of 1970, since that is the date that will usually screw the unix libc functions. * runtime/datime.scm[14.29]: Do pivoting when deciding what a two-digit year means. I can't believe that some programs still generate these strings! * imail/imail-imap.scm[1.88]: Fix bug: time stamp for APPEND might be #F. * imail/Attic/rfc822.scm[1.9]: Workaround another problem with broken mailers mangling received headers. * imail/imail-top.scm[1.104], imail/todo.txt[1.48]: Fix bug: retention time being interpreted in seconds rather than minutes. Implement M-x imail-copy-folder. * imail/imail-top.scm[1.103], imail/todo.txt[1.47]: Add mechanism to control the retention time of IMAIL passwords. * imail/update-changelog.sh[1.2]: Can't use backquote in this kind of script. * imail/imail-core.scm[1.91], imail/imail-file.scm[1.40], imail/imail-imap.scm[1.87], imail/imail-rmail.scm[1.37], imail/imail-top.scm[1.102], imail/imail-umail.scm[1.30], imail/todo.txt[1.46]: Change definition of SAVE-FOLDER so that it does the save only if there are changes to be saved, and returns true only if it does the save. This prevents gratuitous saves of file folders. * edwin/bufmnu.scm[1.129]: Make buffer-menu code smarter about keeping its columns aligned. The menu is very hard to parse with misaligned columns. * imail/imail-top.scm[1.101]: Add feedback to various commands that copy messages or create/delete folders, so the user can see what is happening. * imail/imail-core.scm[1.90]: Fix bug in MESSAGE-LENGTH. * imail/imail-core.scm[1.89], imail/imail-file.scm[1.39], imail/imail-top.scm[1.100]: Implement WITH-OPEN-CONNECTION for use by M-x imail-copy-messages. * imail/imail-imap.scm[1.86]: Fix thinko in previous change. Use LOGOUT command for clean disconnections. Improve IMAP trace output to get all responses and to hide the user's password. * imail/imail-imap.scm[1.85], imail/todo.txt[1.45]: Implement explicit condition type for IMAP server errors, and use that to detect the TRYCREATE response code whereever it occurs. * imail/imap-response.scm[1.25]: Add support for UIDPLUS response codes. * imail/imail-imap.scm[1.84], imail/imail-imap.scm[1.83]: Restructure IMAP trace mechanism to output the trace directly to a file. * imail/todo.txt[1.44], imail/todo.txt[1.43]: Note problems with copying multiple messages to IMAP server. * imail/imail-summary.scm[1.16], imail/imail-top.scm[1.99]: Flesh out documentation strings a bit. * imail/imail-top.scm[1.98]: Don't bind imail-delete-folder to a key. It should be hard to do this. * imail/install.sh[1.1], imail/update-changelog.sh[1.1]: Initial registration. * imail/imail-top.scm[1.97]: Change the modeline to show the connection status even when the folder is empty. * imail/imail-imap.scm[1.82]: Send STATUS folder event when IMAP folder opened. Guarantee that connection's folder is reset if the user aborts the SELECT. * imail/imail-imap.scm[1.81]: Fix bug: don't leave connection half-open if user aborts during login. * imail/imail-top.scm[1.96]: Fix typo. * imail/imail-top.scm[1.95], imail/imail-top.scm[1.94], imail/load.scm[1.9], imail/todo.txt[1.42]: Add configurable confirmation for performing EXPUNGE. * imail/imail-summary.scm[1.15], imail/imail-util.scm[1.25]: Implement procedure to count number of digits in an exact nonnegative integer. * imail/imail-top.scm[1.93], imail/todo.txt[1.41]: Implement M-x imail-resend. * imail/imail-core.scm[1.88], imail/imail-file.scm[1.38], imail/imail-imap.scm[1.80], imail/imail-top.scm[1.92], imail/todo.txt[1.40]: Add "online" indicator to the modeline, and implement command to disconnect from server. * imail/imail-top.scm[1.91]: Add "N unseen" indicator to the modeline. * imail/todo.txt[1.39]: Fixed problem with login messages during completion by changing Edwin to suppress all messages during completion. * edwin/curren.scm[1.126]: Syntax tweak. * edwin/curren.scm[1.125], edwin/prompt.scm[1.185]: Suppress messages and command prompts while doing completion operations in the minibuffer. * imail/imail-imap.scm[1.79]: Fix bug: if there were two memoized connections to the same server, GET-IMAP-CONNECTION was returning the first one, even if it was closed. It should look for one that is still open and use it, using the closed one only if there's no open one. * imail/imail-top.scm[1.90]: Make another stab at getting URL prompts right. 2000-05-22 Chris Hanson * imail/imail-top.scm[1.89]: Fix bug: don't mistakenly say that a folder is unchanged by reading the modification count at the wrong time. * imail/imail-imap.scm[1.78]: Fix bug: don't signal an error when reading BYE message. * imail/imail-top.scm[1.88]: Tweak URL prompting again. This is almost what I want now. * imail/imail-core.scm[1.87], imail/imail-imap.scm[1.77], imail/imail-top.scm[1.87]: Change definition of URL-PASS-PHRASE-KEY to specify that it is also part of the prompt to the user. * imail/imail-file.scm[1.37]: Don't implement URL-PASS-PHRASE-KEY for file URLs, because it should never be called on one of these. * imail/imail-imap.scm[1.76]: Fix thinko; eliminate IMAP-CONNECTION-OPEN?. * imail/imail-core.scm[1.86], imail/imail-file.scm[1.36], imail/imail-imap.scm[1.75], imail/imail-top.scm[1.86], imail/todo.txt[1.38]: Move pass-phrase memoization into the front end. Now connections to the same account on the same server can share a pass phrase. * imail/imail-core.scm[1.85], imail/imail-file.scm[1.35], imail/imail-imap.scm[1.74]: Always run SAVE-FOLDER as part of CLOSE-FOLDER. * imail/imail-top.scm[1.85], imail/todo.txt[1.36]: Implement workaround to keep the IMAP connection open when writing multiple messages. * imail/imail-core.scm[1.84]: Implement WITH-OPEN-FOLDER, which guarantees that the folder is opened and closed as necessary. * imail/imail-imap.scm[1.73]: If connection is established but folder has been closed, reselect the folder. * imail/imail-imap.scm[1.72]: Reexamine IMAIL operations and add checks to guarantee that the connection is always opened as needed. * imail/imail-imap.scm[1.71], imail/todo.txt[1.37]: Add code to detect when the connection has been dropped. This test is performed by GUARANTEE-IMAP-CONNECTION-OPEN, and thus will be done at the beginning of every IMAIL operation. The code will transparently close the connection and reopen it. If a problem occurs during the processing of the operation, an error will be signalled, as one would expect. * imail/todo.txt[1.35]: Notes regarding bugs having to do with completion prompting. * imail/imap-syntax.scm[1.11]: Fix bug: transmission of literal not counting contents correctly. * imail/imap-response.scm[1.24]: Fix bug: server continuation lines not being parsed correctly. * imail/imail-imap.scm[1.70]: Fix bug in handling of flags to APPEND command. * imail/imail-core.scm[1.83]: Ignore any received headers that don't parse correctly. * imail/Attic/rfc822.scm[1.8]: Fix several bugs in the "received:" header parsing code. * imail/imail-top.scm[1.84], imail/load.scm[1.8]: Write M-x imail-copy-messages. * imail/imail-rmail.scm[1.36]: Fix typo. * imail/imail-imap.scm[1.69], imail/imail.pkg[1.40], imail/todo.txt[1.34]: In APPEND-MESSAGE, create mailbox if append/copy causes error containing TRYCREATE. * imail/imail-top.scm[1.83], imail/load.scm[1.7]: Implement IMAIL-COPY-FOLDER, a tool to copy folders to and from an IMAIL server. * imail/imail-imap.scm[1.68]: Canonicalize the case of IMAP URLs, where possible without knowing details of the server. * imail/imail.pkg[1.39], imail/load.scm[1.6]: Use explicit mechanism to link variables into the Edwin package, so that IMAIL can be reloaded. * imail/imail-top.scm[1.82]: Generalize MOVE-RELATIVE to accept a raw command argument rather than a delta, and to do something sensible if there's no prefix argument. * imail/imail-top.scm[1.81]: In flag-modification commands, don't advance to next message unless a prefix argument is given. * imail/imail-top.scm[1.80]: IMAIL-GET-DEFAULT-URL must never signal an error. * imail/imail-imap.scm[1.67]: Suppress the IMAP port if it is the standard port. * imail/imail-core.scm[1.82], imail/imail-file.scm[1.34], imail/imail-file.scm[1.33], imail/imail-imap.scm[1.66], imail/todo.txt[1.33]: Eliminate FOLDER-VALID?, replacing it with the more sensible URL-EXISTS?. * imail/imail-core.scm[1.81], imail/imail-file.scm[1.32], imail/imail-imap.scm[1.65], imail/imail-top.scm[1.79]: Provide inserted default strings to all URL prompts. * imail/imail-core.scm[1.80], imail/imail-imap.scm[1.64], imail/imail-rmail.scm[1.35], imail/imail-umail.scm[1.29], imail/imail-util.scm[1.24]: Restructure the URL completion code to clean it up a bit. Change the completer so that it doesn't do completion on URL protocols. Instead, if there isn't a protocol prefix on the string, it assumes the protocol of the default URL, and completes the string relative to that URL. * imail/imail-core.scm[1.79], imail/imail-file.scm[1.31], imail/imail-imap.scm[1.63], imail/imail-rmail.scm[1.34], imail/imail-top.scm[1.78], imail/imail-umail.scm[1.28], imail/todo.txt[1.32]: Implement URL completion, and reimplement URL parsing to do sensible defaulting. This implementation appears to work but has several minor problems. 2000-05-21 Chris Hanson * imail/imail-util.scm[1.23]: Fix typo and also type error. * imail/imail.pkg[1.38], imail/imap-response.scm[1.23]: Export procedures for deconstructing LIST responses. 2000-05-20 Chris Hanson * imail/imail-util.scm[1.22]: Supply missing STRING-GREATEST-COMMON-PREFIX, needed by completion code. * imail/imail-file.scm[1.30], imail/imail-rmail.scm[1.33]: Pathname completion filters now accept a pathname rather than a string. * imail/imail-core.scm[1.78]: Change URL completion so that completion stops after completing a protocol name, rather than continuing to complete the body. * imail/imail-util.scm[1.21]: Fix braino in pathname completion. Previous design would have recursively read every subdirectory of the given directory attempting to enumerate files to present to the filter. This design descends exactly one level at a time, as it should. * imail/imail-imap.scm[1.62], imail/imail-util.scm[1.20]: Split off broken-pipe detection code. This has little effect now but will be useful later when I improve the error recovery. * microcode/Attic/dostop.c[1.13], microcode/ntapi.h[1.12], microcode/os2top.c[1.20], microcode/uxtop.c[1.24], microcode/version.h[11.173]: Change syscall name and error tables to lower case. These strings are converted into symbols without case modification, and must be in the correct case for the runtime system. * imail/todo.txt[1.31]: Reminder to move pathname-completion code into the runtime system. * imail/imail-core.scm[1.77], imail/imail-file.scm[1.29], imail/imail-rmail.scm[1.32], imail/imail-umail.scm[1.27], imail/imail-util.scm[1.19], imail/imail-util.scm[1.18]: First draft of URL completion mechanism. IMAP method not yet implemented. 2000-05-19 Chris Hanson * imail/imail.pkg[1.37]: Export edwin commands, modes, and variables. * imail/todo.txt[1.30]: Summary-buffer navigation now fixed. * imail/imail-top.scm[1.77]: Define MOVE-RELATIVE-ANY. * imail/imail-top.scm[1.76]: Change flag-marking commands to accept a prefix argument to repeat with. * imail/imail-top.scm[1.75]: M-x imail-expunge should not use the navigator abstraction. * imail/imail-summary.scm[1.14]: Fix bug: SELECT-MESSAGE event can be called with no message. * imail/todo.txt[1.29]: Assorted design changes. * imail/imail-core.scm[1.76], imail/imail-imap.scm[1.61]: Change SET-MESSAGE-FLAGS! so that a folder event is generated when the flags are stored, rather than when the the storage request is initiated. IMAP can sometimes set the flags when no request has been initiated. * imail/imail-top.scm[1.74]: Bind M-x imail-summary-by-flags to C-M-f rather than C-M-l. * imail/imail-summary.scm[1.13], imail/imail-top.scm[1.73]: Use new navigator abstraction to allow the summary buffer to share nearly all of the IMAIL mode commands. Fix various bugs, both in summary mode and in the navigator abstraction. * imail/imail-imap.scm[1.60]: Use UID STORE rather than STORE. * imail/imail-core.scm[1.75]: Fix thinko. * imail/imail-top.scm[1.72]: Implement navigation abstraction to allow the summary buffer to properly share commands with the folder buffer. * imail/imail-top.scm[1.71]: Use MOVE-RELATIVE for deletion and undeletion commands. * imail/imail-summary.scm[1.12], imail/imail-top.scm[1.70], imail/imail-util.scm[1.17]: Define generic BURST-COMMA-LIST-STRING. * imail/imail-summary.scm[1.11], imail/imail-top.scm[1.69]: Share flag-prompting code to summary buffer commands. * imail/todo.txt[1.28]: Downgrade one suggestion to a feature. * imail/todo.txt[1.27]: Update for changes. Add note about command to copy entire folders. * imail/imail-summary.scm[1.10]: More usability improvements. * imail/imail-summary.scm[1.9]: Show several markers for common message flags, rather than just D for deleted. Add space for a generic marker a la Dired. * edwin/grpops.scm[1.28]: Add range checking to the group delete and replace operations. * imail/todo.txt[1.26]: Various new ideas. * imail/imail-core.scm[1.74], imail/imail-top.scm[1.68]: Eliminate "edited" flag. * imail/todo.txt[1.25]: Notes regarding presentation of standard flags in the summary buffer. * imail/todo.txt[1.24]: Note bug with navigating partial summary buffers. Note that %APPEND-MESSAGE must create the folder if it doesn't already exist. * imail/imail-summary.scm[1.8], imail/imail-top.scm[1.67]: A number of usability improvements. * imail/imail-imap.scm[1.59]: Fix bug: SEARCH-FOLDER is supposed to return indices, but the IMAP method was returning message objects. * imail/imap-response.scm[1.22]: Fix bug: IMAP SEARCH response is allowed to be empty; I was signalling error in that case. * imail/todo.txt[1.23]: Note regarding suboptimal password caching. * imail/imail-core.scm[1.73], imail/imail-imap.scm[1.58], imail/imail-top.scm[1.66]: Redesign handling of IMAP connections so that there can be multiple mailboxes simultaneously open on the same server. Also provide mechanism for getting connections for server operations such as CREATE and DELETE. Flush BIND-AUTHENTICATOR; just define a UI element to generate a password. * imail/imail-core.scm[1.72]: Implement MESSAGE->STRING. * imail/imap-response.scm[1.21]: Fix bug: READ-PFLAG was only reading flags that started with "\\". * imail/imail-imap.scm[1.57], imail/imail.pkg[1.36], imail/imap-response.scm[1.20], imail/imap-syntax.scm[1.10]: Reimplement low-level IMAP tracing code to be a complete transcript mechanism. 2000-05-18 Chris Hanson * imail/imail-imap.scm[1.56], imail/imail-top.scm[1.65], imail/todo.txt[1.22]: Implement commands to create and delete folders. Put in special hack to prepend "inbox." to folder names when using Cyrus. * imail/imail-summary.scm[1.7]: Flesh out the help text for IMAIL Summary mode. Tweak the column headings slightly. Add imail-summary-mode-hook. * imail/imail-summary.scm[1.6]: Add header line to summary buffer to indicate each column's meaning. * imail/imail-summary.scm[1.5], imail/imail-util.scm[1.16]: Add indication of message's length to summary buffer. * imail/imail-core.scm[1.71], imail/imail-imap.scm[1.55]: Implement MESSAGE-LENGTH. * imail/imail-imap.scm[1.54], imail/imail-top.scm[1.64], imail/imail.pkg[1.35], imail/imap-response.scm[1.19], imail/todo.txt[1.21]: Add progress meter when reading very long message bodies. * imail/imap-response.scm[1.18]: Add hook for progress indicator to code that reads literals. * imail/todo.txt[1.20]: Change background NOOP idea from bug fix to feature. * imail/todo.txt[1.19]: Need commands to create, delete, and rename folders. * imail/todo.txt[1.18]: Summary browser now done. Need progress meter for long messages. * imail/imail-summary.scm[1.4]: Additional round of debugging and expansion. This version seems to work pretty well. * imail/imail-top.scm[1.63]: Fix thinko. * imail/imail-top.scm[1.62]: Change message-deletion commands to take a repeat argument. * imail/imail-summary.scm[1.3]: Results of first round of serious debugging. The summary feature now appears to work almost right. Some additional work remains. * imail/imail-top.scm[1.61]: Fix a few bugs from the recent changes. * imail/imail-summary.scm[1.2]: Extensive work. First draft of code that uses new folder events to see what changes are occurring to the folder and reflecting that in the summary buffer. * imail/imail-core.scm[1.70], imail/imail-top.scm[1.60]: Add folder event to signal selection of a message in the front end. Unlike other folder events, this one doesn't update the folder's modification count, so split of a procedure FOLDER-EVENT to handle cases like this. * imail/imail-core.scm[1.69], imail/imail-file.scm[1.28], imail/imail-imap.scm[1.53], imail/imail-top.scm[1.59]: Change the way folder modification events are signalled. Now there are several different types of events, and each type has specific parameters associated with it. The intent of this change is to allow the front end to figure out what is happening in the back end and reflect that to the user. Also: eliminate MESSAGE-MODIFICATION-COUNT and eliminate a handful of modification events that were not visible at the folder abstraction boundary (events are now part of the abstraction boundary, and should not reflect irrelevant internal state). 2000-05-17 Chris Hanson * imail/Attic/rfc822.scm[1.7], imail/compile.scm[1.7], imail/ed-ffi.scm[1.9], imail/imail-summary.scm[1.1], imail/imail.pkg[1.34], imail/print.sh[1.6]: First cut at implementation of summary buffers. * imail/imail-core.scm[1.68]: Implement MESSAGE-TIME. * imail/imail-top.scm[1.58], imail/imail-top.scm[1.57]: Define special buffer properties so that SELECTED-FOLDER and SELECTED-MESSAGE can work properly in buffers other than the folder buffer. * imail/imail-core.scm[1.67], imail/imail-top.scm[1.56]: Add PROPERTIES slot to all core objects, for use exclusively by the front end. * imail/imail-imap.scm[1.52]: Several changes that make IMAIL come up much faster with large folders. First, we pay attention to the UNSEEN value, and delete UNSEEN when expunges happen to avoid having an invalid value. Second, we don't load headers for all the messages in advance; just their UIDs, which is very fast. This allows the mail reader to fetch just the information for the first unseen message, which happens very quickly on a fast network connection. * imail/imail-core.scm[1.66]: Fix typo. * imail/imail-rmail.scm[1.31], imail/imail-umail.scm[1.26]: Eliminate compiler warning. * imail/imail-rmail.scm[1.30]: Eliminate code to read RMAIL inbox. * imail/imail-top.scm[1.55], imail/imail-top.scm[1.54]: Implement M-x imail-get-new-mail. * imail/imail-core.scm[1.65], imail/imail-file.scm[1.27], imail/imail-imap.scm[1.51]: Implement PROBE-FOLDER. * imail/imail-top.scm[1.53], imail/todo.txt[1.17]: Set buffer default directory to something sensible. * imail/imail-file.scm[1.26]: Generate predicate for file folders. * imail/imail-top.scm[1.52]: Change definition of imail-kept-headers so that it specifies the order of the headers as well. * imail/imail-top.scm[1.51]: Set buffer not modified bit. * imail/imail-core.scm[1.64], imail/imail-top.scm[1.50], imail/imail-top.scm[1.49]: Change FIRST-UNSEEN-MESSAGE to return #F if there are no unseen messages; previously it returned the last message. Reexamine all of the uses of FIRST-UNSEEN-MESSAGE and refine the logic there. * imail/todo.txt[1.16]: Note regarding generation of status messages during I/O. * imail/imail-imap.scm[1.50]: Fix bug: expunging of IMAP messages wasn't renumbering the remaining messages. * imail/imail-imap.scm[1.49], imail/todo.txt[1.15]: Change method used to fetch message contents so that it uses UID FETCH rather than FETCH. * imail/imail-core.scm[1.63], imail/imail-top.scm[1.48]: Implement MESSAGE-ATTACHED? and MESSAGE-DETACHED?, to abstract the details of this query. Refine the method used to obtain the selected message, by saving the message index when a message is detached, and using that index to choose a new message. * imail/imail-core.scm[1.62], imail/imail-file.scm[1.25], imail/imail-rmail.scm[1.29], imail/imail-umail.scm[1.25]: Eliminate COPY-MESSAGE, which no longer worked. * imail/imail-top.scm[1.47]: Fix bug: SELECTED-MESSAGE must not choose another message at random if the buffer's message isn't valid. * imail/imail-imap.scm[1.48]: Fix two bugs associated with expunging of messages. This now seems to work right. 2000-05-16 Chris Hanson * imail/imail-imap.scm[1.47]: Reimplement growing and shrinking of messages vector. * imail/todo.txt[1.14]: Set imail buffer directory to home directory for IMAP folders. * imail/imail-imap.scm[1.46]: Fix infinite recursion. * imail/imail-core.scm[1.61], imail/imail-imap.scm[1.45], imail/imail-rmail.scm[1.28], imail/imail-top.scm[1.46], imail/imap-response.scm[1.17]: Fix compilation errors. * imail/imail-util.scm[1.15]: Generalize STRING->LINES and LINES->STRING. * imail/imail-imap.scm[1.44], imail/imail-util.scm[1.14], imail/imap-response.scm[1.16], imail/imap-syntax.scm[1.9]: Do network/scheme line-ending translation automatically when reading and writing literals. We shouldn't need to worry about binary data in mail messages. * edwin/vc.scm[1.69]: Fix bug: M-x vc-version-other-window must default the version if the user doesn't specify it. * runtime/runtime.pkg[14.349], runtime/string.scm[14.35]: Define SET-STRING-MAXIMUM-LENGTH!. * imail/imail-core.scm[1.60], imail/imail-imap.scm[1.43], imail/imail-umail.scm[1.24]: Implement MESSAGE-INTERNAL-TIME. * imail/imap-response.scm[1.15], imail/imap-response.txt[1.3]: Change INTERNALDATE FETCH response to return the time as universal time. * imail/imail-imap.scm[1.42], imail/todo.txt[1.13]: Signal "unimplemented" error if AVAILABLE-FOLDER-NAMES called on IMAP URL. * imail/imail-imap.scm[1.41], imail/imail.pkg[1.33], imail/imap-response.scm[1.14], imail/todo.txt[1.12]: Implement IMAP SEARCH-FOLDER operation. * imail/imail-imap.scm[1.40], imail/imail.pkg[1.32], imail/imap-syntax.scm[1.8]: Implement all of the IMAP server operations except for AVAILABLE-FOLDER-NAMES. * imail/imail-imap.scm[1.39], imail/imail-top.scm[1.45]: Change implementation of IMAP URLs so that they are fully instantiated at all times. This greatly simplifies comparison and caching. * imail/imail-imap.scm[1.38], imail/imail.pkg[1.31], imail/imap-syntax.scm[1.7]: Rewrite IMAP URL parser to eliminate unused authentication component, and to clarify the allowed partial forms. 2000-05-15 Chris Hanson * imail/imail-core.scm[1.59], imail/imail-imap.scm[1.37], imail/imail-rmail.scm[1.27], imail/imail-umail.scm[1.23]: Rename NEW-FOLDER to CREATE-FOLDER, and change definition so that the new folder object is _not_ returned. This is more in line with capabilities of IMAP. * imail/imail-core.scm[1.58], imail/imail-file.scm[1.24], imail/imail-imap.scm[1.36], imail/todo.txt[1.11]: Eliminate MOVE-FOLDER in favor of more-restricted RENAME-FOLDER. This is a closer match to the capabilities of IMAP. * imail/imail-core.scm[1.57], imail/imail-file.scm[1.23], imail/imail-imap.scm[1.35], imail/todo.txt[1.10]: Eliminate COPY-FOLDER. * imail/imail-core.scm[1.56], imail/imail-imap.scm[1.34], imail/imail-rmail.scm[1.26], imail/imail-umail.scm[1.22], imail/todo.txt[1.9]: Eliminate message properties. * imail/imail-umail.scm[1.21]: Add code to extract timestamp from unix from line. * runtime/datime.scm[14.28], runtime/datime.scm[14.27]: Add ability to specify the time zone in which a ctime() string is to be interpreted. * imail/imail-umail.scm[1.20]: Use runtime system's built-in support for ISO C ctime() strings. * imail/Attic/rfc822.scm[1.6], imail/imail.pkg[1.30]: Add support for parsing "Received" headers. Break out some lower-level parsing code. * runtime/datime.scm[14.26]: Allow arbitrary whitespace in passed-in time strings. * imail/todo.txt[1.8]: Changes to clarify IMAP COPY operation. Suggest using UID FETCH. Mode-line enhancements. * imail/imail-core.scm[1.55]: Fix typo in comment. 2000-05-14 Chris Hanson * imail/todo.txt[1.7]: Add note about need to move compressed-file I/O to the runtime system. * runtime/process.scm[1.26]: Eliminate usage of FALSE and TRUE. * runtime/process.scm[1.25]: Don't store subprocesses in a simple list -- use a GC finalizer so that their resources are cleaned up if the subprocess objects are dropped. 2000-05-12 Chris Hanson * imail/imail-top.scm[1.44]: Don't show special mode-line string if selected message is detached. * imail/imail-core.scm[1.54], imail/imail-file.scm[1.22], imail/imail-imap.scm[1.33], imail/imail-rmail.scm[1.25], imail/imail-top.scm[1.43], imail/imail-umail.scm[1.19], imail/todo.txt[1.6]: Change APPEND-MESSAGE to accept arguments (MESSAGE URL) rather than (FOLDER MESSAGE) as currently. There's no need to have the folder open to append a message to it, and this requirement causes problems for the IMAP back end. * imail/imail-imap.scm[1.32], imail/imail-top.scm[1.42]: Eliminate unused parts of IMAP URL. * imail/imail-core.scm[1.53], imail/imail-file.scm[1.21], imail/imail-imap.scm[1.31], imail/imail-top.scm[1.41], imail/todo.txt[1.5]: Replace FOLDER-PRESENTATION-NAME with URL-PRESENTATION-NAME. 2000-05-11 Chris Hanson * imail/todo.txt[1.4]: Reorganize into major sections. Add several more items. * imail/todo.txt[1.3]: Reorder items into rough prioritization. * imail/todo.txt[1.2]: Add more suggestions. * imail/imail-top.scm[1.40], imail/print.sh[1.5], imail/todo.txt[1.1]: Move to-do notes to new file "todo.txt". 2000-05-10 Chris Hanson * imail/imail-imap.scm[1.30]: Add code to do NOOP after FETCH if the desired results from the FETCH aren't received. * imail/imail-imap.scm[1.29]: Fix overlong page. * imail/imail-imap.scm[1.28]: Add memoization for user's password. Password is stored in obscured form so that it won't be stumbled over (is there a better way to do this?). Add code to detect when the connection is broken. * imail/imail-top.scm[1.39]: Completely discard folder when imail buffer is killed. * imail/imail-file.scm[1.20]: Implement DISCARD-FOLDER-CACHE for file folders. * imail/imail-imap.scm[1.27]: Fix off-by-one error. * imail/imail-core.scm[1.52], imail/imail-imap.scm[1.26], imail/imail-imap.scm[1.25], imail/imail-rmail.scm[1.24], imail/imail-umail.scm[1.18]: Fix bug: URLs weren't being properly memoized when created from components rather than being translated from a string. * imail/imail-imap.scm[1.24]: Add trace facility to allow watching the messages passing between the client and server. * imail/imail-core.scm[1.51]: Don't set message flags unless they have changed. 2000-05-08 Chris Hanson * imail/imail-imap.scm[1.23]: In SET-IMAP-FOLDER-LENGTH!, when there are no messages in a folder, it can be treated using the same strategy as when the folder is synchronized. * imail/imail-imap.scm[1.22]: Extensive rewrite so that folders can be reopened. Added interrupt locking in many critical locations to guarantee atomicity. Cleaned up code that sets folder and message attributes based on incoming responses from the server. * imail/imail-core.scm[1.50]: Fix typo. * edwin/comred.scm[1.120]: Fix typo in previous change. * imail/imail.pkg[1.29]: Fix thinko. * imail/imail-core.scm[1.49], imail/imail-umail.scm[1.17]: Eliminate MAKE-ATTACHED-MESSAGE. * imail/imail-core.scm[1.48], imail/imail-file.scm[1.19]: Eliminate ATTACH-MESSAGE. Change ATTACH-MESSAGE! to set the index as well as the folder. Change ATTACH-MESSAGE! and DETACH-MESSAGE! to do MESSAGE-MODIFIED!. * imail/imail-core.scm[1.47]: Fix pagination. * imail/imail-core.scm[1.46]: ATTACH-MESSAGE! must clear the message index. * imail/imail-core.scm[1.45], imail/imail-file.scm[1.18], imail/imail-rmail.scm[1.23]: Rename DETACH-MESSAGE to DETACH-MESSAGE!. * imail/imail-core.scm[1.44]: Define ATTACH-MESSAGE!. * imail/imail-top.scm[1.38]: Use new command-suffix mechanism to delay mode-line updates to end of command. * edwin/comred.scm[1.119]: Change command-suffix mechanism to allow suffixes to take arguments, which are matched against by MAYBE-ADD-COMMAND-SUFFIX!. * edwin/comred.scm[1.118], edwin/edwin.pkg[1.256]: Add ability to specify "command suffixes" -- thunks that are executed when the current command ends. * imail/imail-top.scm[1.37]: Change handling of SELECTED-MESSAGE to ignore message if it is detached or from the wrong folder, instead selecting default message from current folder. * imail/imail-core.scm[1.43], imail/imail-imap.scm[1.21]: Change handling of FIRST-UNSEEN-MESSAGE; ignore IMAP's UNSEEN response as it is insufficiently constrained to be useful. * imail/imail.pkg[1.28], imail/imap-response.scm[1.13]: Define IMAP:RESPONSE:FETCH-ATTRIBUTE-KEYWORDS. * imail/imail-imap.scm[1.20]: Rework handling of FETCH commands: any attributes that we care about are now transparently stored directly into the appropriate message. This allows for unsolicited FETCH responses from the server. * imail/imail-core.scm[1.42]: Change LINES->HEADER-FIELDS to stop at a blank line, and to use memory more efficiently. * imail/imail-util.scm[1.13]: Implement NETWORK-STRING->LINES. * imail/imail.pkg[1.27], imail/imap-response.scm[1.12], imail/imap-response.txt[1.2]: Fix bug: FETCH response did not contain the message index as it is supposed to. * imail/imap-response.txt[1.1]: Initial registration. * imail/imail-imap.scm[1.19]: More intelligent handling of untagged responses, based on closer reading of specification. Add support for BADCHARSET and UIDNEXT response codes. * imail/imail.pkg[1.26], imail/imap-response.scm[1.11]: Add support for new BADCHARSET and UIDNEXT response codes. 2000-05-05 Chris Hanson * imail/imail-core.scm[1.41], imail/imail-imap.scm[1.18], imail/imail-top.scm[1.36]: Change the way that URLs are handled by the top level. A partial IMAP URL may now be specified, and default values are filled in to complete the URL before it is handed to the IMAP communications layer. 2000-05-04 Chris Hanson * imail/imail-top.scm[1.35]: Fix thinko in IMAIL-MESSAGE-WRAPPER. * imail/imail-imap.scm[1.17]: Implement handling of flags, expunging, and deletion/reloading of cache. * imail/imail-top.scm[1.34]: Fix some bugs associated with discarding the imap cache and reloading it. * imail/imail-top.scm[1.33]: Define IMAIL-MESSAGE-WRAPPER to allow folder abstraction to present messages to user. * imail/imail-core.scm[1.40], imail/imail-top.scm[1.32]: Don't show "seen" in message flags. * imail/imail-top.scm[1.31]: Use implicit flag-setting procedures where applicable. Mark messages as "seen" when viewed. * imail/imail-core.scm[1.39], imail/imail-file.scm[1.17], imail/imail-imap.scm[1.16], imail/imail-top.scm[1.30]: Implement FOLDER-PRESENTATION-NAME. * imail/imail-imap.scm[1.15]: Fix a bunch of bugs. This copy of the code seems to limp along OK. * imail/imail-top.scm[1.29]: Implement imail-kept-headers, as an alternative to imail-ignored-headers. 2000-05-03 Chris Hanson * imail/imail-imap.scm[1.14], imail/imail-imap.scm[1.13]: Reimplement usage to extend , and to cache the message headers and body on demand. * imail/imail-core.scm[1.38], imail/imail-file.scm[1.16]: Split out code to parse message headers for flags and properties. Eliminate MESSAGE->STRING. * imail/imail-core.scm[1.37], imail/imail-file.scm[1.15], imail/imail-imap.scm[1.12], imail/imail-rmail.scm[1.22], imail/imail-top.scm[1.28], imail/imail-umail.scm[1.16]: Change modification-tracking mechanism to use counter instead of boolean flag. This is necessary if more than one process is simultaneously tracking modifications. Sketch new synchronization interface. New interface consists of three procedures: FOLDER-SYNC-STATUS determines the synchronization relationship of the folder cache with the persistent folder; SAVE-FOLDER saves any cached changes to the persistent folder; DISCARD-FOLDER-CACHE discards all cached information. * compiler/fgopt/order.scm[4.17]: Fix code that was assuming that MAP accepted argument lists of different lengths. 2000-05-02 Chris Hanson * imail/imail-top.scm[1.27]: Jot down some notes. * imail/imail-core.scm[1.36], imail/imail-file.scm[1.14], imail/imail-imap.scm[1.11], imail/imail-rmail.scm[1.21], imail/imail-umail.scm[1.15]: Eliminate troublesome WRITE-FOLDER operation. Change DELETE-FOLDER and MOVE-FOLDER to close the old folders. * imail/imail-file.scm[1.13], imail/imail-rmail.scm[1.20], imail/imail-umail.scm[1.14]: Implement CLOSE-FOLDER method for file folders, by discarding the messages in the folder. The messages are automatically reloaded when needed. * imail/imail-core.scm[1.35], imail/imail-file.scm[1.12], imail/imail-imap.scm[1.10]: Change FOLDER-URL to be a slot in . * imail/imail-top.scm[1.26]: Change interface to authenticator. Add buffer-kill hook to allow folder to clean up. * imail/imail-core.scm[1.34], imail/imail-file.scm[1.11]: Reorganize code, fix minor bugs. * imail/imail-imap.scm[1.9]: Write code to reopen connections [still need to hook this in]. * imail/Attic/rfc822.scm[1.5], imail/imail-umail.scm[1.13], imail/imail.pkg[1.25]: Change names of RFC-822 procedures, and move header-field name predicate to "rfc822.scm". * imail/imail-util.scm[1.12]: Implement REMOVE-DUPLICATES!. * runtime/runtime.pkg[14.348]: Implement ADD-MEMBER-PROCEDURE. * runtime/list.scm[14.24]: [What started out as a simple addition became a moderately large edit.] Implemented ADD-MEMBER-PROCEDURE. Fixed bug in mapping procedures: they were allowing combinations of lists of different lengths, which is forbidden by the specification. Deleted old commented-out code, which can be recoved from CVS if required in the future. Reorganized several procedures to make them more concise. 2000-05-01 Chris Hanson * runtime/version.scm[14.186]: Release 7.5.8. * microcode/version.h[11.172]: Update to reflect important bug fix for Win32 systems. * edwin/edwin.pkg[1.255]: Undo change from revision 1.253. * edwin/win32.scm[1.13]: Undo previous change. * microcode/ntscreen.c[1.45]: Fix uninitialized variable bug that, strangely, only caused occasional problems. 2000-04-30 Chris Hanson * 6001/edextra.scm[1.31], edwin/abbrev.scm[1.4], edwin/autold.scm[1.56], edwin/debug.scm[1.50], edwin/dired.scm[1.182], edwin/dosfile.scm[1.37], edwin/edwin.pkg[1.254], edwin/input.scm[1.101], edwin/print.scm[1.19], edwin/unix.scm[1.108], edwin/webster.scm[1.4]: Create new procedure MESSAGE-WRAPPER to capture standard pattern of "..." followed by "...done". This eliminates error-prone uses of APPEND-MESSAGE. * edwin/edwin.pkg[1.253], edwin/win32.scm[1.12]: Disable automatic repainting when setting size or position. 2000-04-29 Chris Hanson * imail/imail-imap.scm[1.8]: Repaginate. 2000-04-28 Chris Hanson * imail/print.sh[1.4]: Update to reflect changes to file structure. * imail/imail.pkg[1.24]: Change load order of files to put all the file-based formats together. * imail/imail-imap.scm[1.7]: First version that sort of limps along. Will read messages from IMAP mailbox and display them. * imail/imail-util.scm[1.11]: Implement TRANSLATE-STRING-LINE-ENDINGS. * imail/imail-core.scm[1.33], imail/imail-top.scm[1.25], imail/imap-response.scm[1.10]: Fix various bugs found during debugging of IMAP folders. * imail/imail.pkg[1.23], imail/imap-response.scm[1.9]: Regularize format of FETCH response. Add ability to trace output from server. * imail/imap-syntax.scm[1.6]: Fix compiler warning. * imail/imail-core.scm[1.32]: Define MAKE-ATTACHED-MESSAGE. * imail/imail.pkg[1.22], imail/imap-response.scm[1.8]: Define IMAP:RESPONSE:FETCH-ATTRIBUTE. * imail/imail-imap.scm[1.6], imail/imail-imap.scm[1.5]: Intermediate checkpoint -- initial implementation in process. * imail/imail.pkg[1.21]: Define IMAP:RESPONSE:STATUS-RESPONSE?. 2000-04-27 Chris Hanson * imail/imail-imap.scm[1.4]: Intermediate checkpoint -- initial implementation in process. * imail/imail.pkg[1.20], imail/imap-response.scm[1.7]: Eliminate a bunch of compiler warnings. * imail/imail-core.scm[1.31], imail/imail-rmail.scm[1.19], imail/imail-top.scm[1.24], imail/imail-umail.scm[1.12]: Eliminate ability to edit the contents of a message. IMAP doesn't permit this, so we won't either. RMAIL is unusual among mail clients in permitting this. Additionally, eliminate generic procedure HEADER-FIELDS, and stop treating the "summary-line" header specially. * imail/imail-top.scm[1.23]: Implement IMAIL-PRESENT-USER-ALERT. 2000-04-26 Chris Hanson * imail/imail-top.scm[1.22]: Change protocol of authenticator so that it corresponds to CALL-WITH-PASS-PHRASE. 2000-04-25 Chris Hanson * imail/imap-response.scm[1.6]: Make corrections to account for the server port not doing line translation. This is required so that literals will work right. * imail/imap-response.scm[1.5]: Delete MAILBOX command which was incorrectly included in IMAP4rev1 specification. Implement procedures to abstractly access server responses. * imail/imail.pkg[1.19], imail/imap-syntax.scm[1.5]: Add code to write strings to the IMAP server. 2000-04-23 Chris Hanson * imail/imail-core.scm[1.30], imail/imail-top.scm[1.21]: Implement URL-USER-ID. * imail/imap-response.scm[1.4], imail/imap-response.scm[1.3]: Tweak response representation slightly to clean it up. * imail/Attic/parser.scm[1.3], imail/imail.pkg[1.18], imail/imap-syntax.scm[1.4]: Implement PREDICATED-PARSER. 2000-04-22 Chris Hanson * imail/Attic/test-imap.scm[1.1]: Initial registration. * imail/imail.pkg[1.17], imail/imap-response.scm[1.2]: Many changes due to debugging. * imail/imap-syntax.scm[1.3]: Change code that handles sections to implement a parser rather than a matcher. Change usages of DECODING-PARSER to match new definition. * imail/imail-imap.scm[1.3]: Use PARSE-SUBSTRING. * imail/Attic/parser.scm[1.2]: Modify DECODING-PARSER to accept a parser to parse the decoded text, rather that a matcher and a keyword. Implement ENCAPSULATING-PARSER, and abstraction mechanism for this language. Implement PARSE-STRING and PARSE-SUBSTRING to handle top-level parsing. * imail/compile.scm[1.6], imail/ed-ffi.scm[1.8], imail/fake-env.scm[1.3], imail/fake-env.scm[1.2], imail/imail.pkg[1.16], imail/imap-response.scm[1.1], imail/imap-syntax.scm[1.2]: First attempt at a parser for IMAP server responses. 2000-04-20 Chris Hanson * edwin/make.scm[3.101]: Update to reflect a variety of bug fixes since last release. * runtime/version.scm[14.185]: Release 7.5.7. * microcode/version.h[11.171]: Update version to reflect fix to Windows keyboard handling. * microcode/ntscreen.c[1.44]: Change test in `process_keydown' so that it specifies what modifiers we _are_ interested in, rather than those that we aren't. * microcode/ntscreen.c[1.43]: When deciding whether a keystroke is interesting enough to translate manually, ignore NUMLOCK or SCROLLLOCK. Previously if either of these were depressed, it would force manual translation. Also: raise trace level for some common but uninteresting message types. 2000-04-19 Chris Hanson * microcode/ntscreen.c[1.42], microcode/ntscreen.h[1.20], microcode/prntio.c[1.12]: Modify Win32 tracing mechanism so that it is always compiled in and can be dynamically enabled or disabled. * runtime/ntprm.scm[1.34]: Change definition of DOS/FS-DRIVE-TYPE so that it can recognize Samba even when it advertises itself as NTFS. 2000-04-18 Chris Hanson * imail/Attic/rexp.scm[1.14], runtime/rexp.scm[1.14]: Fix typo. * imail/imail-imap.scm[1.2], imail/imail.pkg[1.15]: Fix compilation problems. * imail/fake-env.scm[1.1]: Initial registration. * imail/compile.scm[1.5], imail/ed-ffi.scm[1.7], imail/imail-imap.scm[1.1], imail/imail.pkg[1.14]: Add new files, rearrange package structure. * imail/imap-syntax.scm[1.1]: Move IMAP syntax into separate file. * imail/Attic/parser.scm[1.1]: Move parser support into separate file. * imail/imail-core.scm[1.29], imail/imail-file.scm[1.10]: Eliminate INSERT-MESSAGE, which isn't supported by IMAP and isn't needed. * imail/Attic/imail-imap-url.scm[1.10]: Simplify -- we aren't going to support the full IMAP URL syntax. But leave the parsers here -- they may come in handy later. * imail/Attic/imail-imap-url.scm[1.9], imail/Attic/imail-imap-url.scm[1.8]: Handle decoding properly -- can't decode entire URL string, only those parts that have already matched as encoded. 2000-04-15 Chris Hanson * edwin/edwin.pkg[1.252], edwin/win32.scm[1.11]: Use MB_OK argument to MessageBeep -- using -1 doesn't do reasonable thing under Windows 9x. 2000-04-14 Chris Hanson * imail/print.sh[1.3]: Add new files. * imail/compile.scm[1.4], imail/ed-ffi.scm[1.6], imail/imail.pkg[1.13]: Rename "imail-imap" to "imail-imap-url". * imail/Attic/imail-imap-url.scm[1.7]: First pass implementing parser for IMAP URLs. * imail/Attic/rexp.scm[1.13], imail/Attic/rfc822.scm[1.4], imail/imail-core.scm[1.28], imail/imail-rmail.scm[1.18], imail/imail-top.scm[1.20], imail/imail-util.scm[1.10], imail/url.scm[1.7], runtime/Attic/url.scm[1.7], runtime/rexp.scm[1.13]: Use new runtime procedures SUBSTRING-MOVE! and DECORATED-STRING-APPEND. * runtime/runtime.pkg[14.347], runtime/string.scm[14.34], runtime/string.scm[14.33]: Implement DECORATED-STRING-APPEND. 2000-04-13 Chris Hanson * runtime/string.scm[14.32], runtime/string.scm[14.31], runtime/string.scm[14.30]: Use fixnum arithmetic everywhere. Various other small changes. * imail/Attic/rexp.scm[1.12], runtime/rexp.scm[1.12]: Fix some bugs caused by STRING? being true of CHAR-SET?. * imail/Attic/rexp.scm[1.11], imail/ed-ffi.scm[1.5], imail/imail.pkg[1.12], runtime/rexp.scm[1.11]: Move this code into the runtime system's package heirarchy. * imail/imail-util.scm[1.9]: STRING-MOVE! now in runtime system. * runtime/runtime.pkg[14.346], runtime/string.scm[14.29]: Implement STRING-MOVE! and SUBSTRING-MOVE!. * imail/Attic/rexp.scm[1.10], runtime/rexp.scm[1.10]: Fix infinite recursion. * imail/Attic/imail-imap-url.scm[1.6], imail/Attic/rexp.scm[1.9], imail/ed-ffi.scm[1.4], imail/imail.pkg[1.11], runtime/rexp.scm[1.9]: Fix compiler warnings. * imail/Attic/imail-imap-url.scm[1.5], imail/Attic/rexp.scm[1.8], imail/url.scm[1.6], runtime/Attic/url.scm[1.6], runtime/rexp.scm[1.8]: Change all one-arg rexp combinators to accept any number of args and treat it as an implicit sequence. Change sequence combinator to collapse nested sequences. * imail/Attic/imail-imap-url.scm[1.4], imail/Attic/imail-imap-url.scm[1.3], imail/Attic/rexp.scm[1.7], imail/imail.pkg[1.10], imail/url.scm[1.5], runtime/Attic/url.scm[1.5], runtime/rexp.scm[1.7]: Change rexp compiler to be case sensitive, and add REXP-CASE-FOLD to delimit regions that should be case insensitive. * imail/Attic/rexp.scm[1.6], imail/Attic/rexp.scm[1.5], runtime/rexp.scm[1.6], runtime/rexp.scm[1.5]: Change automatic grouping so that it happens in the constructors rather than in the compiler. * imail/Attic/rexp.scm[1.4], runtime/rexp.scm[1.4]: When ALTERNATIVES appears within SEQUENCE, it must be GROUPed. * imail/imail.pkg[1.9], imail/url.scm[1.4], runtime/Attic/url.scm[1.4]: Change to use new rexp abstraction. * imail/Attic/rexp.scm[1.3], runtime/rexp.scm[1.3]: Change REXP-GROUP to take just one argument. * imail/Attic/rexp.scm[1.2], imail/imail.pkg[1.8], runtime/rexp.scm[1.2]: Add REXP-SEQUENCE. * imail/Attic/rexp.scm[1.1], imail/compile.scm[1.3], imail/ed-ffi.scm[1.3], imail/imail.pkg[1.7], runtime/rexp.scm[1.1]: Add file "rexp.scm" implementing list-based regular expressions. * win32/dib.scm[1.4], win32/win32.pkg[1.12]: Eliminate reference to now-obsolete protection lists. * runtime/regexp.scm[1.9]: Fix two bugs in CHAR-SET->REGEXP. * runtime/crypto.scm[14.10]: Don't do mhash initialization if the primitives are unimplemented. 2000-04-12 Chris Hanson * imail/Attic/imail-imap-url.scm[1.2], imail/Attic/imail-imap-url.scm[1.1], imail/compile.scm[1.2], imail/imail.pkg[1.6]: Initial unfinished pass to generate IMAP URL parser. * imail/imail.pkg[1.5], imail/url.scm[1.3], runtime/Attic/url.scm[1.3]: Define URL:REGEXP:HOSTPORT and subsidiaries. * imail/imail.pkg[1.4], imail/url.scm[1.2], runtime/Attic/url.scm[1.2]: Reconcile the character sets and regexps used here with the descriptions in RFC 1738. Also export them since the IMAP URL code needs access to some of them. * runtime/regexp.scm[1.8], runtime/runtime.pkg[14.345]: Implement CHAR-SET->REGEXP. * imail/imail.pkg[1.3], imail/url.scm[1.1], runtime/Attic/url.scm[1.1]: Implement procedures to encode and decode URLs. * runtime/chrset.scm[14.10]: Allow CHAR-SET-UNION and CHAR-SET-INTERSECTION to take any number of arguments. Eliminate use of CHAR->ASCII and ASCII->CHAR. 2000-04-11 Chris Hanson * runtime/chrset.scm[14.9]: Allow CHAR-SET-UNION and CHAR-SET-INTERSECTION to take any number of arguments. Eliminate use of CHAR->ASCII and ASCII->CHAR. * runtime/crypto.scm[14.9], runtime/crypto.scm[14.8]: Change keygen-type generation so that salt is supplied in the call to MHASH-KEYGEN, if needed. This is desirable because the salt is usually unique for each passphrase. * runtime/crypto.scm[14.7], runtime/crypto.scm[14.6], runtime/runtime.pkg[14.344]: Change MHASH-KEYGEN to accept all of the key-generation parameters as a compound structure, and implement MAKE-MHASH-KEYGEN-TYPE to build that structure. * runtime/crypto.scm[14.5]: Improve error message for incorrect salt size. * runtime/ed-ffi.scm[1.23]: Add "crypto.scm" to the list of known files. * runtime/crypto.scm[14.4]: Fix interface to MHASH-KEYGEN so that it is usable. * runtime/random.scm[14.23], runtime/runtime.pkg[14.343]: Define RANDOM-BYTE-VECTOR to generate random bytes. This is useful for cryptographic applications that don't require an RNG with cryptographic properties, e.g. to generate an init vector or to salt a password. 2000-04-10 Chris Hanson * runtime/gcfinal.scm[14.2]: REMOVE-FROM-GC-FINALIZER! must return the value of the finalization procedure for the object being finalized. * runtime/crypto.scm[14.3], runtime/crypto.scm[14.2], runtime/make.scm[14.65], runtime/runtime.pkg[14.342]: Repackage new crypto stuff. Use new GC finalizers to add GC protection to the context indices generated by the hash code. * runtime/ed-ffi.scm[1.22], runtime/gcfinal.scm[14.1], runtime/gdbm.scm[1.3], runtime/io.scm[14.61], runtime/make.scm[14.64], runtime/os2graph.scm[1.17], runtime/runtime.pkg[14.341], runtime/x11graph.scm[1.50]: Add new implementation of GC finalizers, a cleaner replacement for the old protection list abstraction. Unlike protection lists, GC finalizers keep themselves clean, eliminating the need for the programmer to interact with GC daemons and events. * edwin/filcom.scm[1.211]: Update to match change to MD5 support in runtime system. * runtime/blowfish.scm[1.19], runtime/krypt.scm[1.11], runtime/runtime.pkg[14.340]: Implement support for the mhash library. Generalize MD5 support to use mhash if available, otherwise the md5-karn library. * microcode/prmhash.c[11.1], runtime/crypto.scm[14.1]: Initial revision. * edwin/bufwin.scm[1.309], edwin/bufwiu.scm[1.34]: Change FALSE to #F and TRUE to #T. * edwin/bufwin.scm[1.308]: Add code to detect case where the first visible line in a window is a partially-visible continued line and is subsequently deleted. Previously this caused the redisplay to go into an uninterruptible infinite loop. * edwin/bufwiu.scm[1.33]: Add code to detect case where the first visible line in a window is a partially-visible continued line and is subsequently deleted. Previously this caused the redisplay to go into an uninterruptible infinite loop. This is yet another change in the series of revisions 1.25 and 1.30. Revision 1.30 only partially fixed this bug. This revision introduces a new fix that should be more robust. 2000-04-07 Chris Hanson * edwin/vc.scm[1.68]: Don't offer to save the VC log buffer. * imail/imail-top.scm[1.19]: Fix bugs in IMAIL-READ-FLAG. * imail/imail-core.scm[1.27], imail/imail-top.scm[1.18]: Add hook to notice modifications to folders and reflect them in the mode line. * runtime/runtime.pkg[14.339]: Export EVENT-DISTRIBUTOR/RECEIVERS. * runtime/events.scm[14.5]: Don't allow event receivers to be added twice. * imail/imail-top.scm[1.17]: Repaginate. * edwin/curren.scm[1.124]: Implement MAKE-BUFFER-INVISIBLE. * edwin/vc.scm[1.67], edwin/vc.scm[1.66], edwin/vc.scm[1.65], edwin/vc.scm[1.64]: Try harder to restore the window configuration to what it was before the log buffer was popped up. * edwin/wincom.scm[1.125]: POP-UP-BUFFER could return a window that wasn't popped up. * imail/imail-core.scm[1.26], imail/imail-top.scm[1.16]: Fix a variety of small bugs. * imail/imail-rmail.scm[1.17], imail/imail-rmail.scm[1.16], imail/imail.pkg[1.2]: Don't duplicate logic that is already available in "rmail.scm"; share it. * imail/imail-util.scm[1.8]: Define EDWIN-VARIABLE-VALUE. 2000-04-06 Chris Hanson * imail/imail-rmail.scm[1.15]: Implement the RMAIL-PRIMARY-INBOX-LIST and RMAIL-SPOOL-DIRECTORY procedures. * imail/imail-util.scm[1.7]: Fix a handful of small bugs. * imail/imail-core.scm[1.25]: Make MESSAGE-FOLDER be #F if not defined. Customize written representation for messages and folders. * sos/macros.scm[1.10]: Make sure that variable references in the expansion refer to global variables. The lack of this protection caused trouble when this code was used in Edwin, which has a different definition for MAKE-CLASS. * imail/imail-top.scm[1.15]: Change "writable" to "writeable". * imail/imail-rmail.scm[1.14], imail/imail-umail.scm[1.10]: Eliminate half-baked notion of "importing" and "exporting" files. If pursued, this results in particular files being marked as "external", and others as "internal", and it becomes clumsy. * imail/imail-umail.scm[1.11], imail/imail-util.scm[1.6]: Fix typo. * edwin/vc.scm[1.63]: Fix typo: some instances of BUFFER-VC-MASTER that should have been changed to CURRENT-VC-MASTER. * edwin/vc.scm[1.62]: Change vc-next-action so that it doesn't read in files that aren't already in buffers. 2000-04-05 Chris Hanson * edwin/edwin.pkg[1.251]: Add missing exports for RMAIL summary mode. 2000-04-04 Chris Hanson * rcs/Attic/make.scm[1.6], rcs/Attic/rcs.sf[1.9]: Delete old files. * runtime/version.scm[14.184]: Release 7.5.6. * edwin/abbrev.scm[1.3]: Fix several bugs in the handling of edit-abbrevs and abbrev-file I/O. * edwin/things.scm[1.87]: Fix definition of INDENT-TO; was computing target column incorrectly. * edwin/simple.scm[1.50]: Define INSERT. 2000-04-03 Chris Hanson * edwin/vc.scm[1.61]: In vc-dired mode, don't select buffers containing the files being checked in; just pop them up. * edwin/wincom.scm[1.124]: POP-UP-BUFFER: Clarify derivation of CURRENT-WINDOW-OK?. 2000-04-02 Chris Hanson * edwin/vc.scm[1.60]: Fix two bugs in file registration. 2000-04-01 Chris Hanson * edwin/dired.scm[1.181]: Fix typo in previous change. * edwin/vc.scm[1.59]: Fix status string. * edwin/vc.scm[1.58]: Don't prompt for comment when registering files in vc-dired. * edwin/vc.scm[1.57]: Minor cleanups. * edwin/vc.scm[1.56]: Another tweak so that commands work correctly in vc-dired buffer: the selected buffer isn't necessarily the right one to operate on in that case. * edwin/dired.scm[1.180]: DIRED-MARK-FILES! should have used DIRED-PATHNAME rather than reproducing its functionality. 2000-03-31 Chris Hanson * edwin/vc.scm[1.55], edwin/vc.scm[1.54]: Implement vc-dired mode, with associated bound commands, as in Emacs. * edwin/dired.scm[1.179], edwin/dired.scm[1.178], edwin/dired.scm[1.177], edwin/edwin.pkg[1.250]: Implement DIRED-MARK-FILES!. * edwin/dired.scm[1.176]: Change DIRED-THIS-FILE to signal an error if desired. * edwin/dired.scm[1.175]: Allow DIRED-THIS-FILE to take buffer in place of mark. * edwin/dired.scm[1.174]: Allow dired-next-files to take buffer in place of mark. * edwin/vc.scm[1.53], edwin/vc.scm[1.52]: In VC-Dired buffer, don't prompt for comment string unless one is needed. * edwin/vc.scm[1.51]: Implement variables VC-DELETE-LOGBUF-WINDOW and VC-DEFAULT-INIT-VERSION. * edwin/vc.scm[1.50]: Add support for "manual" style CVS using "cvs edit" and "cvs unedit". * edwin/vc.scm[1.49]: Add CVS status of LOCALLY-REMOVED. * rcs/logmer.scm[1.25], rcs/mklogs.scm[1.19]: Change argument structure of RCS-DIRECTORY-LOG to have a single optional OPTIONS argument that encapsulates the interesting variations. * rcs/logmer.scm[1.24]: Clean up code by using new date representation. * rcs/compile.scm[1.2]: Enumerate the files to be compiled, rather than compiling the entire directory. * rcs/object.scm[1.5]: Change date representation to have separate values for date and day. * rcs/compile.scm[1.1], rcs/load.scm[1.1]: Make standard compile and load files. 2000-03-30 Chris Hanson * rcs/logmer.scm[1.23], rcs/mklogs.scm[1.18]: Add option to show file revisions. Fix thinko that caused sorting to be wrong within days. * rcs/logmer.scm[1.22]: Adjust ChangeLog formatter to eliminate duplicate filenames in entries, and to sort the groups by time rather than logentry text. 2000-03-27 Chris Hanson * edwin/vc.scm[1.48], edwin/vc.scm[1.47], edwin/vc.scm[1.46], edwin/vc.scm[1.45], edwin/vc.scm[1.44]: Implement VC-FOLLOW-SYMLINKS variable. * edwin/bufmnu.scm[1.128], edwin/dired.scm[1.173], edwin/filcom.scm[1.210], edwin/rmail.scm[1.70], edwin/snr.scm[1.56], edwin/tagutl.scm[1.59]: Change variable FIND-FILE-HOOKS to be a list. The procedures in this list are called in order, and each must return a buffer, which may be different form the argument. The resulting buffer is to be used in place of the argument buffer. This affects the result of FIND-FILE-NOSELECT, AFTER-FIND-FILE, FIND-FILE-REVERT, and REVERT-BUFFER. * runtime/vector.scm[14.15]: Allow vector-grow to specify the fill value for the new slots. * edwin/vc.scm[1.43], edwin/vc.scm[1.42]: Optimize VC-WORKFILE-MODIFIED? to avoid running diff if possible. * edwin/vc.scm[1.41], edwin/vc.scm[1.40]: Rework the handling of cache synchronization; new design is much simpler and less prone to errors. Add messages to the handful of CVS commands that were missing them. Fix a few minor bugs. * rcs/logmer.scm[1.21]: Fix whitespace typo. * edwin/vc.scm[1.39]: Another round of changes, this one mostly small cleanups, except: CVS diff now uses "--brief" if available. "--brief" is detected by running "diff" with that argument and examining the result code. 2000-03-26 Chris Hanson * edwin/vc.scm[1.38]: Extensive changes to simplify the program's logic. Rearranged pages into a more sensible order. Modified VC-DIRED presentation format to match that of Emacs. * edwin/edwin.pkg[1.249]: Eliminate now-unused variable VC-AFTER-SAVE. 2000-03-25 Chris Hanson * edwin/buffer.scm[1.177]: Add generic hook for taking action after a buffer's pathname is changed. * edwin/fileio.scm[1.152]: Add generic hook for taking action after a buffer is saved. * edwin/edwin.pkg[1.248], edwin/modefs.scm[1.158]: Update for changes to VC. * runtime/gcnote.scm[14.14]: Make the GC notification string be a comment. * runtime/gcnote.scm[14.13]: Another change for the new newline convention. * edwin/vc.scm[1.37]: Stylistic adjustments. 2000-03-24 Chris Hanson * edwin/edwin.pkg[1.247], edwin/vc.scm[1.36]: Extensive work to get correct operation of CVS support. Now substantially merged with "vc.el" from Emacs 20.6. 2000-03-23 Chris Hanson * edwin/edwin.pkg[1.246], edwin/fileio.scm[1.151], edwin/vc.scm[1.35]: Implement CVS support for VC. Bring the RCS support of VC more up to date. * edwin/rmail.scm[1.69]: Fix typo introduced in revision 1.67. * edwin/bufcom.scm[1.107], edwin/buffer.scm[1.176], edwin/bufmnu.scm[1.127], edwin/debug.scm[1.49], edwin/debuge.scm[1.54], edwin/dired.scm[1.172], edwin/dos.scm[1.52], edwin/edwin.pkg[1.245], edwin/evlcom.scm[1.63], edwin/filcom.scm[1.209], edwin/fileio.scm[1.150], edwin/info.scm[1.134], edwin/modlin.scm[1.22], edwin/os2.scm[1.49], edwin/rmail.scm[1.68], edwin/rmailsrt.scm[1.13], edwin/rmailsum.scm[1.36], edwin/struct.scm[1.93], edwin/techinfo.scm[1.6], edwin/txtprp.scm[1.20], edwin/unix.scm[1.107], edwin/vc.scm[1.34]: Change "writable" to "writeable". 2000-03-22 Chris Hanson * runtime/datime.scm[14.25], runtime/runtime.pkg[14.338]: Distinguish between local and global ctime() strings. * edwin/rmail.scm[1.67]: Procedures that handle ISO C ctime() strings have been moved to the runtime system. * runtime/datime.scm[14.24], runtime/datime.scm[14.23], runtime/runtime.pkg[14.337]: Add procedures to convert between ISO C ctime() strings and other time formats. Additionally, export procedures that convert strings to day-of-week, month, and time-zone. * edwin/hlpcom.scm[1.115]: Don't generate error if command expansion in help string refers to non-existent command. * edwin/dired.scm[1.171]: Fix typo in mode description. * microcode/unxutl/Attic/makefile[1.28]: etags no longer recognizes DEF patterns in C files. 2000-03-21 Chris Hanson * runtime/regexp.scm[1.7]: Fix typo. * rcs/mklogs.scm[1.17]: Update to reflect more conversion to CVS. * rcs/mklogs.scm[1.16]: Change to use ChangeLog for entire Scheme tree. * swat/c/Makefile[1.2]: Eliminate "tkCanvArc.c" and "tkMenu.c". * pcsample/Attic/pcsdisp.com[1.2]: File shouldn't have been registered. * compiler/documentation/cmpaux.txt[1.4], compiler/documentation/cmpint.txt[1.12], compiler/documentation/safety.txt[1.4], compiler/documentation/test-c.c[1.4], microcode/TODO[1.2], wabbit/wabbit.scratch[1.2]: Change RCS "Header" to "Id". * Makefile.std[1.2], compiler/Attic/Makefile[1.11], swat/Makefile[1.5]: Change "tags" rule to "TAGS". * COPYING[1.1]: Initial registration with CVS * Makefile.std[1.1], TAGS[1.1], compiler/improvements/comcon.scm[1.1], compiler/improvements/gasn.scm[1.1], compiler/improvements/rewsub.scm[1.1], microcode/os2utl/bch.ico[1.1], microcode/os2utl/coffee.ico[1.1], microcode/os2utl/conses.ico[1.1], microcode/os2utl/edwin.ico[1.1], microcode/os2utl/envir1.ico[1.1], microcode/os2utl/graphics.ico[1.1], microcode/os2utl/lambda.ico[1.1], microcode/os2utl/lambda2.ico[1.1], microcode/os2utl/liar1.ico[1.1], microcode/os2utl/liar2.ico[1.1], microcode/os2utl/liar3.ico[1.1], microcode/os2utl/mincer.ico[1.1], microcode/os2utl/shield1.ico[1.1], microcode/os2utl/shield2.ico[1.1], microcode/os2utl/shield3.ico[1.1], microcode/os2utl/shield4.ico[1.1], swat/scheme/demo-plotter.scm[1.1]: Initial registration with CVS. 2000-03-20 Chris Hanson * rcs/logmer.scm[1.20], rcs/object.scm[1.4]: Changes to generate ChangeLog-style output, and to support CVS in addition to RCS. 2000-03-17 Chris Hanson * runtime/version.scm[14.183]: Update to release 7.5.5. 2000-03-16 Chris Hanson * sf/make.scm[4.36]: Fix typo. * sf/make.scm[4.35], sf/usiexp.scm[4.40]: Add expansions for FLO:<= and FLO:>=. * runtime/fixart.scm[1.5], runtime/version.scm[14.182]: Add flonum operations FLO:<= FLO:>= FLO:MAX FLO:MIN. * runtime/msort.scm[14.7]: Change implementation of MERGE-SORT (and therefore SORT) so that it uses the in-place vector-sorting algorithm for lists. The previous algorithm created a stack of depth (/ (LENGTH L) 2), which made it impossible to use for large lists. This algorithm creates a stack of depth (/ (LOG (LENGTH L)) (LOG 2)). Additionally, tweaked the vector-sorting algorithm to use indexes in a slightly more efficient (and clearer) way. 2000-03-15 Chris Hanson * edwin/sendmail.scm[1.46]: Use new release version string from runtime rather than deprecated string from microcode. 2000-03-10 Chris Hanson * edwin/vc.scm[1.33]: Change VC-DIFF to compare the revisions using no switches (i.e. ignoring nothing), and to display the differences using the switches of the user's choice. * edwin/vc.scm[1.32]: Fix bug: VC couldn't check in changes involving just whitespace when diff-switches contained switches that said to ignore whitespace. 2000-03-03 Chris Hanson * edwin/iserch.scm[1.23], edwin/sercom.scm[1.65]: Change incremental search to terminate on RET rather than ESC, for compatibility with Emacs. 2000-03-02 Chris Hanson * edwin/edwin.sf[1.24]: Another tweak for new newline convention. * edwin/fill.scm[1.63]: Implement adaptive fill from Emacs. * edwin/c-mode.scm[1.59], edwin/midas.scm[1.21], edwin/pasmod.scm[1.50], edwin/schmod.scm[1.47], edwin/texcom.scm[1.45], edwin/tparse.scm[1.72], edwin/verilog.scm[1.8], edwin/vhdl.scm[1.8]: Define a standard alternative paragraph style in which paragraphs are broken by blank lines. Change all modes that want this style to call the standard procedure to define it. 2000-03-01 Chris Hanson * sf/xform.scm[4.10]: Change to new newline convention. * edwin/editor.scm[1.247]: Change to compensate for IDENTIFY-WORD printing final newline. * runtime/savres.scm[14.33], runtime/savres.scm[14.32], runtime/version.scm[14.181]: Change to put release version into runtime system rather than microcode. 2000-02-29 Chris Hanson * edwin/buffer.scm[1.175]: Add ability to set the default value of a variable when the editor isn't running. * edwin/c-mode.scm[1.58], edwin/htmlmode.scm[1.3], edwin/javamode.scm[1.10], edwin/loadef.scm[1.42], edwin/schmod.scm[1.46], edwin/shell.scm[1.24], edwin/texcom.scm[1.44]: Re-do definitions of mode-specific abbrev tables so that their names are properly registered. * edwin/texcom.scm[1.43]: Fix typo. * edwin/make.scm[3.100]: Implement abbrev mode; rework interaction between auto-fill, self-insert, and optimized typein; \\{} and \\<> in help strings; ability to replace characters in buffer without disturbing marks (for case conversion). * edwin/c-mode.scm[1.57], edwin/htmlmode.scm[1.2], edwin/javamode.scm[1.9], edwin/loadef.scm[1.41], edwin/midas.scm[1.20], edwin/midas.scm[1.19], edwin/pasmod.scm[1.49], edwin/pasmod.scm[1.48], edwin/schmod.scm[1.45], edwin/sendmail.scm[1.45], edwin/shell.scm[1.23], edwin/texcom.scm[1.42], edwin/tximod.scm[1.23], edwin/tximod.scm[1.22], edwin/verilog.scm[1.7], edwin/verilog.scm[1.6], edwin/vhdl.scm[1.7], edwin/vhdl.scm[1.6]: Add mode-specific abbrev tables and \\{} doc strings to many major modes. * edwin/outline.scm[1.9]: Adjust minor-mode toggle logic to match new standard. * edwin/abbrev.scm[1.2], edwin/basic.scm[1.137], edwin/comred.scm[1.117]: Fix thinko. 2000-02-28 Chris Hanson * edwin/basic.scm[1.136], edwin/bufwiu.scm[1.32], edwin/comred.scm[1.116], edwin/decls.scm[1.68], edwin/ed-ffi.scm[1.49], edwin/edwin.ldr[1.69], edwin/edwin.pkg[1.244], edwin/filcom.scm[1.208], edwin/modefs.scm[1.157], edwin/winout.scm[1.14]: Implement abbrev mode. * edwin/filcom.scm[1.207]: Fix thinko. * edwin/dosfile.scm[1.36], edwin/unix.scm[1.106]: Define OS/ABBREV-FILE-NAME. 2000-02-27 Chris Hanson * edwin/filcom.scm[1.206]: Add logic for saving abbrev tables (to be supplied). * edwin/grpops.scm[1.27]: Fix thinko in previous change. 2000-02-25 Chris Hanson * edwin/comman.scm[1.83], edwin/modes.scm[1.32]: Clarify meaning of optional argument to NAME->foo procedures. * edwin/tagutl.scm[1.58]: Fix bug in which error could be signalled by out-of-date tags file. * edwin/things.scm[1.86]: Implement INDENT-TO. * edwin/texcom.scm[1.41]: Implement COUNT-WORDS-REGION. * edwin/edwin.pkg[1.243], edwin/grpops.scm[1.26], edwin/regops.scm[1.88], edwin/simple.scm[1.49], edwin/texcom.scm[1.40], edwin/txtprp.scm[1.19], edwin/undo.scm[1.59]: Reimplement case-conversion commands, including new capitalize-region. New implementation utilities low-level code to replace strings in buffer without disturbing marks or text properties. * edwin/basic.scm[1.135], edwin/basic.scm[1.134], edwin/basic.scm[1.133], edwin/comred.scm[1.115], edwin/fill.scm[1.62], edwin/lincom.scm[1.124], edwin/syntax.scm[1.85]: Integrate auto-fill and abbrev into M-x self-insert, as in Emacs. 2000-02-24 Chris Hanson * edwin/hlpcom.scm[1.114], edwin/keymap.scm[1.17], edwin/keymap.scm[1.16], edwin/keymap.scm[1.15], edwin/modefs.scm[1.156]: Add option to DESCRIBE-BINDINGS to ignore "global" comtabs. * edwin/shell.scm[1.22]: Show shell mode key bindings in mode help. * edwin/calias.scm[1.19]: Use image strings when showing key bindings. * edwin/keymap.scm[1.14]: Change appearance of DESCRIBE-BINDINGS to be more like that of Emacs. * edwin/hlpcom.scm[1.113]: Fix typo. 2000-02-23 Chris Hanson * edwin/hlpcom.scm[1.112]: Fix compiler warning. * edwin/hlpcom.scm[1.111]: Fix typo. * edwin/edwin.pkg[1.242]: Export new bindings from keymap.scm * edwin/hlpcom.scm[1.110]: Generalize documentation expansions to include \\< and \\{. * edwin/keymap.scm[1.13]: Generalize code to generate descriptions of key bindings so that it can be used in other contexts. * edwin/comman.scm[1.82], edwin/modes.scm[1.31]: Add means to look up modes and commands without necessarily interning new ones. * edwin/fill.scm[1.61]: Optimize code that toggles auto-fill mode. 2000-02-21 Chris Hanson * sos/sos.pkg[1.9]: Export SORT-METHODS. * sos/instance.scm[1.9]: Fix a couple of bugs reported by Joe Marshall: INSTANCE-CONSTRUCTOR-3 macro erroneously quoting arity; and INITIALIZE-INSTANCE not accepting optional arguments. 2000-02-14 Chris Hanson * runtime/rbtree.scm[1.7]: Efficiency tweak suggested by Marc Feeley. 2000-02-07 Chris Hanson * imail/imail-top.scm[1.14]: Another round of changes. * imail/imail-core.scm[1.24]: Trim leading and trailing whitespace from header values. * edwin/buffer.scm[1.174]: Don't assume that a buffer-property value of #F is equivalent to no value at all. * imail/imail-core.scm[1.23], imail/imail-core.scm[1.22], imail/imail-file.scm[1.9], imail/imail-file.scm[1.8], imail/imail-rmail.scm[1.13], imail/imail-umail.scm[1.9]: Add bit to say whether folder or message has been modified. * microcode/version.h[11.170]: Update to release 7.5.3. * microcode/cmpauxmd/i386.m4[1.50], microcode/s/Attic/linux.h[1.20], microcode/s/Attic/linux.h[1.19]: Fix bug: in GCC 2.95.x, the callee pops the pointer to a short struct return. 2000-02-04 Chris Hanson * imail/imail-core.scm[1.21], imail/imail-file.scm[1.7], imail/imail-rmail.scm[1.12], imail/imail-umail.scm[1.8]: Implement MAYBE-REVERT-FOLDER. * imail/imail-top.scm[1.13]: Fix improper usage of MAYBE-REVERT-BUFFER. * imail/imail-core.scm[1.20], imail/imail-file.scm[1.6], imail/imail-rmail.scm[1.11], imail/imail-top.scm[1.12]: Rename COUNT-MESSAGES -> FOLDER-LENGTH. 2000-02-03 Chris Hanson * edwin/dosfile.scm[1.35], edwin/dosfile.scm[1.34]: Fix bug: unable to run gzip properly on Windows systems if the location of the gzip binary is in a directory with spaces in its name. Must quote the name after it is expanded. * imail/imail-util.scm[1.5]: Fix fencepost error in STRING->LINES; reimplement SEPARATED-APPEND to be faster and to eliminate inessential consing; implement SUFFIXED-APPEND and PREFIXED-APPEND. 2000-02-01 Chris Hanson * microcode/s/Attic/freebsd.h[1.4]: Don't use "-export-dynamic" switch. * microcode/s/Attic/freebsd.h[1.3]: Don't use ncurses library. * rcs/logmer.scm[1.19]: Another tweak. * rcs/logmer.scm[1.18]: Tweak to previous change. * rcs/logmer.scm[1.17]: Adjust for new newline convention. * microcode/s/Attic/freebsd.h[1.2]: If __ELF__ isn't defined, this is an old version of FreeBSD and should be compiled using the old rules. * microcode/version.h[11.169]: Update version number to mark changes made to support FreeBSD. * microcode/uxproc.c[1.25]: If TIOCSCTTY is defined, use it. This is required for proper operation under FreeBSD. 2000-01-31 Chris Hanson * microcode/ux.c[1.19]: Simplify previous change. * microcode/Attic/config.h[9.101], microcode/ux.c[1.18]: Add special heap allocator for FreeBSD, much like the one used for Linux, but with small differences. * microcode/unxutl/Attic/config[1.31]: Change to use special file for FreeBSD. When linking, specify -f to override any existing links. 2000-01-30 Chris Hanson * microcode/version.h[11.168]: Update release version to 7.5.1. 2000-01-27 Chris Hanson * edwin/rmail.scm[1.66]: Fix two bugs: (1) Change M-x rmail-get-new-mail to prompt for a file argument rather than a string argument. (2) M-x rmail-output was writing malformed unix messages -- the date in the header line is supposed to be in unix `ctime' format, not RFC-822 format. 2000-01-25 Chris Hanson * edwin/image.scm[1.137]: Adjust definition of ANSI character set: most characters between #x80 and #xA0 are undefined. 2000-01-24 Chris Hanson * microcode/version.h[11.167]: Update for release. 2000-01-21 Chris Hanson * imail/imail-top.scm[1.11]: Implement imail-toggle-headers and imail-search. * imail/imail-file.scm[1.5]: Implement simple string search. * imail/imail-core.scm[1.19]: Add MESSAGE->STRING. 2000-01-20 Chris Hanson * imail/imail-top.scm[1.10]: Add code to edit messages. Fix many bugs found by cref. * imail/imail-core.scm[1.18]: Define HEADER-FIELDS->LINES. * imail/imail-core.scm[1.17]: Delete specialize next/previous message steps. * imail/imail-core.scm[1.16]: Define procedures to convert between headers and strings. * imail/imail-rmail.scm[1.10], imail/imail-rmail.scm[1.9]: Use generic procedure SET-HEADER-FIELDS!. * imail/imail-top.scm[1.9]: Implement mail-sending commands. 2000-01-19 Chris Hanson * imail/imail-top.scm[1.8]: Implement I/O commands. * imail/imail-top.scm[1.7]: Implement IMAIL-REVERT-BUFFER. * imail/imail-top.scm[1.6]: Add code to mark and unmark messages. * imail/imail-util.scm[1.4]: Eliminate some unused procedures, and generalize REMOVE-EQUAL-DUPLICATES to REMOVE-DUPLICATES. * imail/imail-rmail.scm[1.8]: Use folder properties to hold the RMAIL headers, rather than a special slot. Change manipulation of message flags to match implementation changes. * imail/imail-core.scm[1.15]: Change implementation of message flags to make all flags be strings. Also make sure that implementation is truly case insensitive. * imail/imail-core.scm[1.14]: Add FOLDER-FLAGS. * imail/imail-top.scm[1.5]: Another wave of changes. Implement deletion commands. * imail/imail-core.scm[1.13], imail/imail-core.scm[1.12], imail/imail-file.scm[1.4], imail/imail-file.scm[1.3], imail/imail-rmail.scm[1.7], imail/imail-umail.scm[1.7]: Change message implementation so that each message belongs to a single folder. Each message also contains an index within its folder, which is automatically updated by the folder implementation. These changes facilitate using message-based navigation rather than index computations. 2000-01-18 Chris Hanson * imail/imail-core.scm[1.11]: Add folder properties. * imail/imail-top.scm[1.4]: Fix some compilation bugs. * imail/load.scm[1.5]: Rewrite to use packaging system, and to load as subpackage of Edwin. * imail/ed-ffi.scm[1.2]: Differentiate files with Edwin syntax from those without. * imail/imail-umail.scm[1.6]: Fix typos. * cref/conpkg.scm[1.7]: Generate correct constructor when there are no exports. * cref/make.scm[1.19], cref/redpkg.scm[1.12], cref/toplev.scm[1.13]: Change format of ".glo" files to contain package ancestry information. * microcode/bchdmp.c[9.85], microcode/bchdmp.c[9.84], microcode/bchdrn.c[1.9], microcode/bchdrn.c[1.8], microcode/bchgcc.h[9.60], microcode/bchmmg.c[9.95], microcode/bchmmg.c[9.94], microcode/bchutl.c[1.10], microcode/bchutl.c[1.9], microcode/bignum.c[9.48], microcode/bintopsb.c[9.71], microcode/bintopsb.c[9.70], microcode/bitstr.c[9.62], microcode/boot.c[9.103], microcode/boot.c[9.102], microcode/boot.c[9.101], microcode/fasload.c[9.87], microcode/findprim.c[9.53], microcode/obstack.h[1.10], microcode/option.c[1.53], microcode/osenv.h[1.9], microcode/primutl.c[9.72], microcode/psbtobin.c[9.58], microcode/purutl.c[9.50], microcode/terminfo.c[1.3], microcode/transact.c[1.4], microcode/unxutl/Attic/ymkfile[1.96], microcode/ux.h[1.73], microcode/uxfs.c[1.19], microcode/uxproc.c[1.24], microcode/uxsig.c[1.34], microcode/uxsock.c[1.23], microcode/uxterm.c[1.27], microcode/uxtop.c[1.23], microcode/uxtrap.c[1.29], microcode/uxutil.c[1.7], microcode/x11base.c[1.74], microcode/x11term.c[1.26]: Eliminate compiler warning. * imail/imail-rmail.scm[1.6], microcode/uxsock.c[1.22]: Fix typo. 2000-01-16 Chris Hanson * edwin/buffrm.scm[1.57], edwin/dos.scm[1.51], edwin/image.scm[1.136], edwin/os2.scm[1.48], edwin/unix.scm[1.105]: Use ANSI char images for all operating systems. Both OS/2 and X appear to do the right thing for this. 2000-01-15 Chris Hanson * microcode/version.h[11.166]: Update release string to 7.5pre2. * imail/imail-top.scm[1.3]: Implement navigation commands. * imail/imail-core.scm[1.10]: Add negative predicates for standard flags. * imail/imail-core.scm[1.9]: Change external representation of message flags. Implement procedures to map between flags and strings. 2000-01-14 Chris Hanson * imail/imail-top.scm[1.2]: First rough outline using folder interface. * imail/imail-core.scm[1.8]: Add operation MAYBE-REVERT-FOLDER. Add comments describing some thoughts about how IMAP interactions will occur with online and disconnected modes. * imail/print.sh[1.2]: Add "imail-top.scm". * imail/imail-core.scm[1.7]: Alphabetize names of standard message flags. * imail/imail-core.scm[1.6]: Add procedures to hide manipulation of standard message flags. * imail/Attic/rfc822.scm[1.3], imail/imail-file.scm[1.2], imail/imail-util.scm[1.3], imail/load.scm[1.4]: Update copyright date. * imail/imail-rmail.scm[1.5], imail/imail-umail.scm[1.5]: Don't do newline translation on RMAIL or unix mail files. * imail/imail-core.scm[1.5], imail/imail-rmail.scm[1.4]: Use SEEN rather than UNSEEN as message flag in imail. * imail/imail-umail.scm[1.4]: Redesign the message-reading code so that it can read one message at a time. 2000-01-13 Chris Hanson * imail/imail-rmail.scm[1.3], imail/imail-umail.scm[1.3]: Implement import and export of messages and folders. Clean up interface to I/O procedures so that it can be used for this purpose. * imail/imail-core.scm[1.4]: Genericize ->URL. Hold memoized folders with weak pointers. Add new procedures WRITE-FOLDER and MAYBE-STRIP-IMAIL-HEADERS. * microcode/ntscreen.c[1.41]: Fix bug: Symbolic constants for accessing fields of LPARAM described in documentation do not work as advertised. Instead use explicit numeric constants. * microcode/ntscreen.c[1.40]: Fix bug: code to detect interrupt characters was inadvertently broken by the recent upheaval in the keyboard handling. 2000-01-12 Chris Hanson * microcode/ntscreen.c[1.39]: Fix bug: when used with European keyboards, keys typed with AltGr always had the control and meta modifiers set. Also add code to clear out the keyboard modifiers on a language change. 2000-01-10 Chris Hanson * microcode/ntgui.c[1.27], microcode/ntscreen.c[1.38], microcode/ntscreen.h[1.19], microcode/version.h[11.165]: Complete redesign of keyboard input code. New design adapted from Emacs 20.5 code. * edwin/buffrm.scm[1.56]: Try a different fix; previous one violated the load sequence. * compiler/base/toplev.scm[4.58]: Move many more newlines to match new convention. * compiler/base/toplev.scm[4.59], compiler/machines/i386/compiler.sf[1.10], compiler/machines/i386/decls.scm[1.9], edwin/decls.scm[1.67], edwin/decls.scm[1.66], edwin/edwin.sf[1.23], edwin/edwin.sf[1.22], runtime/error.scm[14.51], runtime/error.scm[14.50], runtime/global.scm[14.52], runtime/load.scm[14.55], sf/toplev.scm[4.17]: Move another call to newline. * edwin/buffrm.scm[1.55], edwin/dos.scm[1.50], edwin/editor.scm[1.246], edwin/image.scm[1.135], edwin/iserch.scm[1.22], edwin/modlin.scm[1.21], edwin/os2.scm[1.47], edwin/snr.scm[1.55], edwin/unix.scm[1.104]: Generate set of ANSI character image strings, and make that the default set to be used under Windows. This is necessary so that Edwin will work more-or-less right with other languages. 2000-01-09 Chris Hanson * sf/toplev.scm[4.16]: Change to write newlines after the lines rather than before. 2000-01-07 Chris Hanson * imail/load.scm[1.3]: Add extra load-option statements. * imail/imail-core.scm[1.3]: Change names of tags that identify property type when encoded as header field. * imail/Attic/rfc822.scm[1.2]: Some reorganization. Fix several bugs related to parsing of continuation lines. * imail/imail-umail.scm[1.2]: Final pass; this code now seems to work. * imail/imail-util.scm[1.2]: Implement READ-LINES. * imail/imail-core.scm[1.2], imail/imail-rmail.scm[1.2]: Fix a handful of small bugs. * imail/load.scm[1.2]: Add code to bind correct load directory. * microcode/option.c[1.52]: Under NT, always use native I/O, independent of the compiler in use. 2000-01-06 Chris Hanson * microcode/option.c[1.51], microcode/option.c[1.50]: Work around a bug in the Watcom runtime library. 2000-01-05 Chris Hanson * edwin/filcom.scm[1.205], edwin/fileio.scm[1.149], runtime/dosprm.scm[1.43], runtime/ntprm.scm[1.33], runtime/os2prm.scm[1.45], runtime/unxprm.scm[1.59]: Change name from FILE-WRITABLE? to FILE-WRITEABLE?. 2000-01-04 Chris Hanson * runtime/runtime.pkg[14.336], runtime/strout.scm[14.13]: Change interface to string output ports: rename to accumulator output port and provide separate operation to extract contents. Port is reset when contents are extracted; previously contents remained in the port. * runtime/defstr.scm[14.33], runtime/runtime.pkg[14.335]: Add option SAFE-ACCESSORS, for situations where safety is more important than speed. 2000-01-01 Chris Hanson * edwin/rmail.scm[1.65]: Fix Y2K bug! 1999-12-31 Chris Hanson * runtime/string.scm[14.28]: Allow BURST-STRING to take a character set as a delimiter. 1999-12-28 Chris Hanson * edwin/intmod.scm[1.109]: Another tweak to REPL mode to get line spacing right. 1999-12-27 Chris Hanson * runtime/os2prm.scm[1.44]: Don't forget that .cmd is an executable file. 1999-12-22 Chris Hanson * edwin/intmod.scm[1.108]: In M-x inferior-repl-flush-output, don't skip forward over newline at end of input expression if end marker is at line start. * runtime/pp.scm[14.40]: Do FRESH-LINE at beginning of PP, not NEWLINE. * edwin/edwin.sf[1.21], edwin/fileio.scm[1.148]: Compensate for changed semantics of COPY-FILE. * edwin/unix.scm[1.103]: Add "/usr/share/info" to INFO-DEFAULT-DIRECTORY-LIST. 1999-12-21 Chris Hanson * runtime/unxprm.scm[1.58]: Don't delete file that is target of COPY-FILE. This is inconsistent with action on other operating systems, and is also not a good idea. * microcode/uxenv.c[1.19]: Don't use geteuid to determine the current user; use getuid. * runtime/blowfish.scm[1.18], runtime/input.scm[14.20], runtime/runtime.pkg[14.334]: Implement READ-SUBSTRING!, and change definition of READ-STRING! so that it no longer takes the substring range arguments. * microcode/version.h[11.164]: Update version for pending release. * microcode/ntfs.c[1.25], microcode/os2fs.c[1.11], microcode/osfs.h[1.8], microcode/prosfs.c[1.14], microcode/uxfs.c[1.18], runtime/sfile.scm[14.23]: Define new primitive FILE-EXISTS-DIRECT?. 1999-12-20 Chris Hanson * edwin/intmod.scm[1.107]: Make sure that evaluation output always starts on a fresh line. * runtime/output.scm[14.22]: Change definition of WRITE-LINE so that the newline is emitted after the object, rather than before it as previously. * compiler/base/debug.scm[4.15], compiler/etc/comcmp.scm[1.6], runtime/debug.scm[14.40], runtime/load.scm[14.54]: Eliminate instances of WRITE-LINE. * runtime/regexp.scm[1.6]: Fix typo in last change. Change order of arguments to RE-MATCH-EXTRACT. 1999-12-16 Chris Hanson * runtime/unxprm.scm[1.57]: Fix bug: home directory should always be a directory pathname. * runtime/regexp.scm[1.5], runtime/runtime.pkg[14.333]: Implement RE-MATCH-EXTRACT. 1999-12-15 Chris Hanson * rcs/mklogs.scm[1.15], rcs/mklogs.scm[1.14]: Missed a directory in last change. * rcs/mklogs.scm[1.13]: Update to reflect changes to directory structure. 1999-12-10 Chris Hanson * edwin/xterm.scm[1.61]: Don't use **** in comments unless it marks an action item. * edwin/xterm.scm[1.60]: Rename procedures that convert between X atoms and Scheme symbols. * edwin/xterm.scm[1.59]: Add workaround for broken X selection clients, such as GTK+. 1999-12-06 Chris Hanson * edwin/unix.scm[1.102]: Don't pass -c argument to gzip or bzip2. This argument was added in revision 1.99. Although -c works OK for gzip, it doesn't work with bzip2. Since this argument isn't needed, and had no effect on the problem it was supposed to solve, we won't use it. 1999-11-19 Chris Hanson * runtime/sfile.scm[14.22], runtime/sfile.scm[14.21]: New procedure DIRECTORY-FILE-NAMES for those cases when DIRECTORY-READ is a pain. 1999-11-11 Chris Hanson * runtime/dospth.scm[1.40]: Fix bug: don't signal error for filenames with ":" in them, which can occur on Samba servers. 1999-11-08 Chris Hanson * compiler/rtlopt/rcserq.scm[4.7], compiler/rtlopt/rdflow.scm[1.4], edwin/snr.scm[1.54], pcsample/pcsdisp.scm[1.3], runtime/io.scm[14.60], runtime/os2graph.scm[1.16], runtime/vector.scm[14.14], runtime/vector.scm[14.13]: Change order of arguments to VECTOR-MAP. 1999-11-05 Chris Hanson * edwin/intmod.scm[1.106]: When starting a new REPL, don't associate it with the current buffer; avoid confusion by letting the user do this manually. * edwin/snr.scm[1.53]: SPLIT-LIST now implemented in "utils.scm". * edwin/buffer.scm[1.173]: Fix bug: UNDO-LOCAL-BINDINGS! must run the variable assignment daemons for the impermanent variables, and not the permanent variables. What it was doing was running it on a subset of the permanent variables, due to a stupid programming error. * edwin/utils.scm[1.46]: Implement SPLIT-LIST. 1999-11-01 Chris Hanson * edwin/buffer.scm[1.172], edwin/grpops.scm[1.25], edwin/macros.scm[1.65], edwin/struct.scm[1.92]: Eliminate macro DEFINE-NAMED-STRUCTURE. * edwin/modes.scm[1.30]: Fix typo. * edwin/txtprp.scm[1.18]: Eliminate reference to GROUP-INDEX:MODIFIED-TICK. * edwin/modes.scm[1.29]: Retain inheritance information for major modes. * edwin/comman.scm[1.81]: Eliminate %SYMBOL->STRING. 1999-10-31 Chris Hanson * edwin/intmod.scm[1.105]: Fix thinko. * edwin/intmod.scm[1.104]: Change argument to CURRENT-REPL-BUFFER and CURRENT-REPL-BUFFER* to be optional. * edwin/edwin.pkg[1.241], edwin/intmod.scm[1.103]: Create mechanism and command to associate an inferior REPL buffer with another buffer for evaluation purposes. Change M-x repl to automatically associate a newly-created REPL buffer with the current buffer. 1999-10-28 Chris Hanson * microcode/os2sock.c[1.14]: Eliminate compiler warning. 1999-10-26 Chris Hanson * rcs/Attic/make.scm[1.5]: Set the working directory when loading this file. 1999-10-23 Chris Hanson * edwin/intmod.scm[1.102]: Don't add newline before prompt at beginning of buffer. * runtime/uenvir.scm[14.40]: Fix thinko. * edwin/intmod.scm[1.101]: Rewrite M-x repl so that it is easy to generate new REPL buffers in new environments. * runtime/runtime.pkg[14.332], runtime/uenvir.scm[14.39]: Implement EXTEND-IC-ENVIRONMENT. * runtime/Attic/syntax.scm[14.32]: Bind USER-INITIAL-SYNTAX-TABLE to USER-INITIAL-ENVIRONMENT. 1999-10-09 Chris Hanson * edwin/javamode.scm[1.8]: Change $ back to prefix character in PHP mode. This is required for it to work right with ${...} syntax. 1999-10-08 Chris Hanson * edwin/javamode.scm[1.7]: Don't modify c-continued-brace-offset in PHP mode. PHP mode no longer inherits from Java mode. 1999-10-07 Chris Hanson * edwin/javamode.scm[1.6]: Define $ to be symbol constituent rather than prefix character in PHP mode. * edwin/dosfile.scm[1.33], edwin/unix.scm[1.101]: Add suffixes for HTML mode. * edwin/edwin.ldr[1.68]: HTML mode must be loaded after Text mode. * edwin/README[1.2]: Update for new directory arrangement. * edwin/decls.scm[1.65], edwin/ed-ffi.scm[1.48], edwin/edwin.ldr[1.67], edwin/edwin.pkg[1.240]: Implement HTML mode. * edwin/javamode.scm[1.5]: Fix typo. * edwin/c-mode.scm[1.56], edwin/cinden.scm[1.20]: Tweak syntax and naming a bit. * edwin/javamode.scm[1.4], edwin/unix.scm[1.100]: Implement PHP mode. 1999-09-15 Chris Hanson * edwin/dosfile.scm[1.32]: Fix thinko. 1999-09-14 Chris Hanson * edwin/process.scm[1.57]: Poll subprocess for output after it has exited, to make sure output isn't lost. * edwin/compile.scm[1.13]: Always run compilation subprocesses with pipes. 1999-09-11 Chris Hanson * edwin/unix.scm[1.99]: Change calls to gzip and bzip2 to pass "-c" option. * runtime/unxprm.scm[1.56]: Look for USER environment variable before searching password file. This is needed for systems in which users aren't recorded in the password file. * 6001/edextra.scm[1.29]: Don't hack mail address any longer. Students now have real accounts. 1999-09-07 Chris Hanson * runtime/optiondb.scm[1.8]: Add "krypt" to standard set of load options. 1999-08-26 Chris Hanson * edwin/comint.scm[1.30], edwin/intmod.scm[1.100]: Fix FOO-flush-output so that it works right when the output doesn't start with a newline. 1999-08-24 Chris Hanson * edwin/shell.scm[1.21]: Fix typo. 1999-08-23 Chris Hanson * edwin/fileio.scm[1.147]: Fix typo. 1999-08-20 Chris Hanson * 6001/floppy.scm[1.26], edwin/dosfile.scm[1.31], edwin/malias.scm[1.5], edwin/manual.scm[1.16], edwin/rmail.scm[1.64], edwin/rmailsrt.scm[1.12], edwin/shell.scm[1.20], edwin/snr.scm[1.52], edwin/telnet.scm[1.15], runtime/regexp.scm[1.4]: Change string/substring regular-expression procedures to return a set of registers on a successful match rather than modifying a global set of registers. This fixes the problem in which an unlucky thread switch can generate an error or incorrect answer. 1999-08-15 Chris Hanson * microcode/ntsock.c[1.8], microcode/os2sock.c[1.13]: Fix typo. 1999-08-14 Chris Hanson * runtime/blowfish.scm[1.17], runtime/blowfish.scm[1.16]: Improve method used to compute initialization vectors. 1999-08-13 Chris Hanson * microcode/ntsock.c[1.7], microcode/os2sock.c[1.12], microcode/uxsock.c[1.21]: Fix calling arguments to gethostbyaddr. * runtime/runtime.pkg[14.331], runtime/socket.scm[1.15]: Implement and export various host-name manipulating procedures. Change TCP-SERVER-CONNECTION-ACCEPT to accept the peer address as an argument and to return only a single value. * runtime/blowfish.scm[1.14]: Add new ECB and OFB modes. * microcode/prbfish.c[1.8], microcode/prbfish.c[1.7], microcode/uxsock.c[1.20], runtime/blowfish.scm[1.15]: Fix typo. * microcode/ntsock.c[1.6], microcode/os2sock.c[1.11], microcode/pruxsock.c[1.17], microcode/uxsock.c[1.19], microcode/uxsock.h[1.9]: Add new primitive GET-HOST-BY-ADDRESS. * microcode/prbfish.c[1.6]: Add ECB and OFB modes. 1999-08-10 Chris Hanson * edwin/edwin.ldr[1.66]: Don't load krypt. * runtime/blowfish.scm[1.13]: Wipe buffer strings that might contain plaintext. * edwin/comint.scm[1.29], edwin/dired.scm[1.170], edwin/dosfile.scm[1.30], edwin/edwin.pkg[1.239], edwin/filcom.scm[1.204], edwin/fileio.scm[1.146], edwin/rmail.scm[1.63], edwin/unix.scm[1.98]: Eliminate use of krypt and the ".ky" file suffix. Change all encryption commands to use Blowfish, and also to be more paranoid about eliminating passphrases and plaintext after use. * edwin/prompt.scm[1.184]: Eliminate PROMPT-FOR-PASSWORD in favor of CALL-WITH-PASS-PHRASE. The latter wipes the string containing the pass phrase after use. 1999-08-09 Chris Hanson * runtime/random.scm[14.22]: Tweak /dev/random loop to be a little cleaner. * runtime/random.scm[14.21]: More changes for cold-load problems. * runtime/random.scm[14.20]: Tweak previous change so that cold-load sequence works. Change MAKE-RANDOM-STATE to avoid use of CONGRUENTIAL-RNG when /dev/urandom is being used. * runtime/random.scm[14.19]: If /dev/random is available, use it to seed the PRNG. * microcode/prbfish.c[1.5]: Eliminate BLOWFISH-CFB64. Modify BLOWFISH-CBC and BLOWFISH-CFB64-SUBSTRING to accept the output buffer as an argument. This allows better control of memory allocation. Also modify BLOWFISH-CFB64-SUBSTRING to return the new value of `num' so that the Scheme code need not re-compute it. * runtime/blowfish.scm[1.12], runtime/cpress.scm[1.12], runtime/output.scm[14.21]: Fix typo. * runtime/blowfish.scm[1.11]: Change to use new primitives that reduce consing. Eliminate BLOWFISH-CFB64; rename BLOWFISH-CFB64-SUBSTRING to be BLOWFISH-CFB64. Don't preprocess key-string with MD5 in BLOWFISH-ENCRYPT-PORT. Eliminate BLOWFISH-ENCRYPT-STRING and BLOWFISH-ENCRYPT-SUBSTRING. * runtime/cpress.scm[1.11]: Change internal name from WRITE-SUBSTRING to WRITE-BYTES to avoid collision with new global procedure WRITE-SUBSTRING. * edwin/prompt.scm[1.183]: Change calls to PROMPT-FOR-PASSWORD to say "pass phrase" rather than "password", to encourage use of longer phrases. * edwin/dosfile.scm[1.29], edwin/filcom.scm[1.203], edwin/unix.scm[1.97]: Runtime system no longer runs MD5 on the passphrase handed to Blowfish. * runtime/output.scm[14.20], runtime/runtime.pkg[14.330]: Add new procedure WRITE-SUBSTRING. * runtime/krypt.scm[1.10]: Add key to enable krypt support, just like the one used for blowfish. * runtime/blowfish.scm[1.10], runtime/blowfish.scm[1.9]: Arrgh. Fix another instance of the init-vector thinko. * edwin/dosfile.scm[1.28], edwin/filcom.scm[1.202], edwin/unix.scm[1.96]: Modify usage of blowfish encryption to match new design in which header manipulation handles the init-vector. * runtime/blowfish.scm[1.8]: Fix my broken understanding of the role of the init-vector in the encryption process. Essential property of the init-vector in CFB encryption is that no two messages encrypted with the same key should also use the same init-vector. New design will read files encrypted with previous scheme, but writes them using the current time as the init-vector, and writes the init-vector into the file as part of the header. 1999-07-31 Chris Hanson * runtime/apropos.scm[1.5], runtime/string.scm[14.27]: Fix thinko. 1999-07-26 Chris Hanson * runtime/socket.scm[1.14]: Change TCP-SERVER-CONNECTION-ACCEPT to return two values rather than three. 1999-07-06 Chris Hanson * runtime/apropos.scm[1.4]: Fix argument order for SUBSTRING?. Reformat. * runtime/advice.scm[14.16]: Copy the arguments list returned by *ARGS*. 1999-06-26 Chris Hanson * edwin/regexp.scm[1.73]: Don't use RE-REGISTERS and SET-RE-REGISTERS! any more; use direct access to the REGISTERS variable instead. This code broke when the representation of RE-REGISTERS changed recently. Rather than expose the entire abstraction to this code, it seems better to just bypass it altogether. 1999-06-22 Chris Hanson * runtime/regexp.scm[1.3]: Change external representation of regular-expression registers so that predicate is uniquely true of these objects. Modify re-match-start-index and re-match-end-index to accept one of these objects as an optional argument, meaning to reference the object rather than the internal registers. * runtime/string.scm[14.26]: Fix fencepost error in STRING-SEARCH-ALL. 1999-06-21 Chris Hanson * runtime/dosdir.scm[1.9], runtime/string.scm[14.25]: Change arguments to string-search procedures to make them consistent with regular-expression searches. * runtime/regexp.scm[1.2]: Change string regexp search procedures to make their returned indexes consistent with the string search procedures. * runtime/emacs.scm[14.27], runtime/runtime.pkg[14.329], runtime/tscript.scm[1.4]: Fix bug: scheme-under-emacs stopped working due to port-encapsulation changes. This isn't a general fix -- it only handles the one kind of encapsulation that occurs in this place. If other kinds of encapsulation are used, this will have to be generalized. 1999-06-10 Chris Hanson * runtime/string.scm[14.24]: Fix fencepost error in string-search-forward. 1999-06-06 Chris Hanson * edwin/unix.scm[1.95]: Add support for files compressed with bzip2. 1999-06-03 Chris Hanson * rcs/mklogs.scm[1.12]: Add a few more directories to have their RCS.log files updated. 1999-05-21 Chris Hanson * edwin/dosfile.scm[1.27]: Rename re-string-search to re-string-search-forward. 1999-05-18 Chris Hanson * runtime/blowfish.scm[1.7]: Add lock to blowfish code. The code now will work only if the key file is in the appropriate location. 1999-05-15 Chris Hanson * runtime/lambda.scm[14.15]: Eliminate #!aux quoting problem. * runtime/parse.scm[14.33]: Fix previous change. Problem is subtle -- LAMBDA-AUXILIARY-TAG was being used in one place as an expression and in another as a constant. Now it is defined to be a constant, and the expression usage has been tweaked to expect a constant. 1999-05-14 Chris Hanson * runtime/parse.scm[14.32]: Change #!aux to be an interned symbol. 1999-05-13 Chris Hanson * edwin/comhst.scm[1.7], edwin/decls.scm[1.64], edwin/ed-ffi.scm[1.47], edwin/edwin.ldr[1.65], edwin/edwin.pkg[1.238], edwin/evlcom.scm[1.62], edwin/lspcom.scm[1.159], edwin/regexp.scm[1.72], edwin/rmail.scm[1.62], edwin/rmailsrt.scm[1.11], edwin/rmailsum.scm[1.35], edwin/strtab.scm[1.47], edwin/syntax.scm[1.84], runtime/ed-ffi.scm[1.21], runtime/optiondb.scm[1.7], runtime/rgxcmp.scm[1.110], runtime/runtime.pkg[14.328]: Move regular-expression support to the runtime system, where it is now a loadable option. * edwin/compile.scm[1.12]: Fix typo. 1999-05-11 Chris Hanson * edwin/editor.scm[1.245], edwin/edwin.pkg[1.237]: Use new procedure SIMPLE-COMMAND-LINE-PARSER in place of SIMPLE-OPTION-PARSER. * runtime/load.scm[14.53], runtime/load.scm[14.52], runtime/runtime.pkg[14.327]: Implement new procedures SIMPLE-COMMAND-LINE-PARSER and ARGUMENT-COMMAND-LINE-PARSER and export them to global. * microcode/ntutl/makefile[1.24], microcode/ntutl/makefile.wcc[1.13], microcode/option.c[1.49], microcode/os2utl/makefile.cmn[1.12], microcode/unxutl/Attic/ymkfile[1.95]: Change option code so that "-compiler" and "-edwin" can be specified together, in which case they select the "all.com" band. Also modify the heap-sizing code so that the default constant size is taken from the band, and the heap size is increased by the amount of heap in the band. 1999-05-08 Chris Hanson * edwin/bufwin.scm[1.307], edwin/screen.scm[1.117]: Delete definitions of FIX:MIN and FIX:MAX, which are now defined by the runtime system. * runtime/string.scm[14.23]: Fix thinko in previous change. * runtime/runtime.pkg[14.326], runtime/string.scm[14.22]: Implement STRING-SEARCH-ALL and SUBSTRING-SEARCH-ALL. 1999-05-07 Chris Hanson * runtime/string.scm[14.21]: Fix fencepost bug. * runtime/ed-ffi.scm[1.20]: Fix bug: "string.scm" had wrong package designation. * runtime/dosdir.scm[1.8], runtime/runtime.pkg[14.325], runtime/string.scm[14.20]: Implement Boyer-Moore string search. Also add procedures to reverse string contents. * runtime/fixart.scm[1.4]: Implement FIX:MIN and FIX:MAX. 1999-05-04 Chris Hanson * edwin/loadef.scm[1.40], edwin/pwedit.scm[1.7]: Interpret contents of password-file variable as relative to the user's home directory. * edwin/loadef.scm[1.39], edwin/loadef.scm[1.38], edwin/pwedit.scm[1.6], edwin/pwedit.scm[1.5]: Define variable that specifies the password filename for the view-password-file command. 1999-04-28 Chris Hanson * microcode/os2pmcon.c[1.25]: Change default font to "8.Courier". * microcode/os2sock.c[1.10]: Add definition needed for use with newer versions of the Developer's Toolkit for OS/2. 1999-04-27 Chris Hanson * runtime/datime.scm[14.22]: Fix thinko in error call. 1999-04-26 Chris Hanson * runtime/os2prm.scm[1.43]: Fix logic so that CURRENT-HOME-DIRECTORY doesn't generate an error if neither HOME nor USER is defined. 1999-04-24 Chris Hanson * runtime/ntprm.scm[1.32]: Fix bug that occurred when the HOME environment variable wasn't set. 1999-04-20 Chris Hanson * runtime/syncproc.scm[1.8]: Use reasonable default working directory. 1999-04-08 Chris Hanson * runtime/datime.scm[14.21], runtime/runtime.pkg[14.324]: Implement remaining time-representation conversions. 1999-04-07 Chris Hanson * runtime/datime.scm[14.20], runtime/string.scm[14.19]: Implement remainder of RFC-822 syntax: optional day-of-week, two-digit year, and named time zones. Fix bug: formerly would accept times with more than one colon in a row. * runtime/datime.scm[14.19], runtime/datime.scm[14.18], runtime/dosprm.scm[1.42], runtime/krypt.scm[1.9], runtime/ntprm.scm[1.31], runtime/os2prm.scm[1.42], runtime/runtime.pkg[14.323], runtime/savres.scm[14.31], runtime/unxprm.scm[1.55], runtime/version.scm[14.180]: This change requires microcode 11.163 or later. Rationalize naming of time-conversion procedures. Implement procedures to manage decoded time in UTC. Implement procedure to convert an RFC-822 time string to decoded-time format. * runtime/runtime.pkg[14.322], runtime/string.scm[14.18]: Implement BURST-STRING. * microcode/ntapi.h[1.11], microcode/ntenv.c[1.18], microcode/os2api.h[1.12], microcode/os2env.c[1.12], microcode/prosenv.c[1.16], microcode/syscall.h[1.12], microcode/ux.h[1.72], microcode/uxenv.c[1.18], microcode/uxtop.c[1.22], microcode/version.h[11.163]: Implement primitive to decode unix time to UTC. 1999-03-26 Chris Hanson * runtime/ntprm.scm[1.30]: Fix type error. * runtime/fileio.scm[1.18]: Fix thinko. * runtime/thread.scm[1.33]: Work around stupid restriction in 8.0 compiler. 1999-03-25 Chris Hanson * runtime/udata.scm[14.20]: Eliminate compiler warning. 1999-03-24 Chris Hanson * microcode/hppacach.c[1.13]: Fix: probe for different kernel files. 1999-03-18 Chris Hanson * edwin/buffrm.scm[1.54], edwin/modwin.scm[1.41]: Fix bug: modeline "modified" indicator not properly updated when buffer unmodified and initial changes are outside the visible portion of the buffer. 1999-03-17 Chris Hanson * edwin/wincom.scm[1.123]: Change SHRINK-WINDOW-IF-LARGER-THAN-BUFFER so that it will grow the window if it is a pop-up window that is smaller than it wants to be. 1999-03-15 Chris Hanson * runtime/parse.scm[14.31]: Signal an error when *parser-radix* is set to a non-default radix and the reader encounters radix-10 syntax that is meaningless under the given radix. 1999-03-09 Chris Hanson * microcode/ntapi.h[1.10], microcode/prntenv.c[1.9]: Implement primitives to provide registry access. 1999-03-04 Chris Hanson * runtime/runtime.pkg[14.321]: Load all pathname types on every operating system. This allows pathname objects dumped on one system to be used on another. * compiler/base/toplev.scm[4.57], compiler/base/toplev.scm[4.56]: Use pathname object for info descriptor rather than namestring. This will allow runtime system to use these descriptors on operating systems other than the one on which the code is compiled. * runtime/infutl.scm[1.62]: Allow debugging info descriptor to be a pathname as an alternative to a namestring. 1999-03-03 Chris Hanson * microcode/s/Attic/linux.h[1.18]: Comment out override of TERMCAP_FILES now that we have upgraded our machines to Debian 2.0. * edwin/make.scm[3.99], edwin/win32.scm[1.10]: This version of Edwin requires microcode 11.162 or later if used under Win32. Extensive changes to use new single input queue, and to implement event-stream previewer. (The single input queue was required for proper implementation of the previewer.) With this change, the Win32 platform has the ability to abort out of any Edwin command, as has been true of all other platforms for years. I also took the opportunity to considerably clean up the event code. * microcode/ntgui.c[1.26], microcode/ntscreen.c[1.37], microcode/ntscreen.h[1.18], microcode/version.h[11.162]: Extensive changes to implement a single input queue for all screens. This was once kludged around in Edwin but is now fixed. 1999-03-01 Chris Hanson * edwin/nntp.scm[1.24]: Revert previous change, which was really due to a bug in the runtime system's handling of input events. * runtime/thread.scm[1.32]: Revamp input-event signalling mechanism to more explicitly distinguish between events with permanent registration and those with temporary registration. The procedure DEREGISTER-ALL-EVENTS was deregistering permanently registered events, thus causing various subtle failures -- mostly in Edwin. 1999-02-28 Chris Hanson * edwin/nntp.scm[1.23]: Another patch to attempt to fix redisplay problems with long online operations. * edwin/xterm.scm[1.58]: Eliminate definition of WITH-THREAD-EVENTS-BLOCKED, which is now implemented by the runtime system. 1999-02-25 Chris Hanson * runtime/ntprm.scm[1.29], runtime/ntprm.scm[1.28], runtime/os2prm.scm[1.41], runtime/unxprm.scm[1.54]: Change heuristics used to find a temporary directory. * runtime/port.scm[1.19], runtime/port.scm[1.18]: Guarantee that port-type specifies standard operations. 1999-02-24 Chris Hanson * edwin/intmod.scm[1.99]: Eliminate kludge that used to compensate for continuations not knowing about the BLOCK-THREAD-EVENTS flag. * runtime/io.scm[14.59], runtime/os2graph.scm[1.15], runtime/x11graph.scm[1.49]: Use new procedure WITH-THREAD-EVENTS-BLOCKED. * edwin/artdebug.scm[1.28], edwin/bufinp.scm[1.8], edwin/bufout.scm[1.13], edwin/debug.scm[1.48], edwin/intmod.scm[1.98], edwin/winout.scm[1.13], runtime/emacs.scm[14.26], runtime/fileio.scm[1.17], runtime/genio.scm[1.15], runtime/port.scm[1.17], runtime/runtime.pkg[14.320], runtime/strnin.scm[14.8], runtime/strott.scm[14.9], runtime/strout.scm[14.12], runtime/ttyio.scm[1.12]: Merge different port-type constructors into MAKE-PORT-TYPE. * runtime/conpar.scm[14.38], runtime/runtime.pkg[14.319], runtime/thread.scm[1.31]: Implement WITH-THREAD-EVENTS-BLOCKED and hook it into the continuation parser. * runtime/conpar.scm[14.37], runtime/runtime.pkg[14.318]: Pass continuation's BLOCK-THREAD-EVENTS? member through the stack parser. This isn't right, but unless we implement WITH-THREAD-EVENTS-BLOCKED, there's no way to do better. * runtime/contin.scm[14.10], runtime/contin.scm[14.9], runtime/runtime.pkg[14.317], runtime/thread.scm[1.30], runtime/thread.scm[1.29], runtime/thread.scm[1.28], runtime/thread.scm[1.27], runtime/thread.scm[1.26]: Save "block-thread-events" flag in continuations. This guarantees that it will be properly stored no matter where the continuation is captured. 1999-02-23 Chris Hanson * runtime/rep.scm[14.55], runtime/rep.scm[14.54], runtime/runtime.pkg[14.316], runtime/thread.scm[1.25]: When user aborts a computation, deregister all outstanding thread events. * microcode/prntio.c[1.11]: Fix bug: when running something in a REPL buffer, Edwin would completely ignore all input. It turned out that the "select" mechanism was only looking at events for the console window, and not for other windows, so it was blocking indefinitely. 1999-02-22 Chris Hanson * edwin/xterm.scm[1.57]: Fix bug: when switching between fvwm2 virtual desktops, Edwin wasn't redisplaying immediately if it was busy doing something else. This happened because it was not processing "expose" events until it returned to the command level. 1999-02-18 Chris Hanson * edwin/bufinp.scm[1.7], edwin/tterm.scm[1.30], runtime/dosproc.scm[1.3], runtime/strnin.scm[14.7], runtime/strott.scm[14.8], runtime/strout.scm[14.11]: Eliminate references to obsolete port operations. * edwin/make.scm[3.98]: Changes corresponding to new transcript mechanism in runtime 14.179. * edwin/intmod.scm[1.97]: Minor tweaks so that transcript of REPL buffer is recorded properly. * edwin/edwin.pkg[1.236], edwin/tterm.scm[1.29]: Eliminate references to old transcript mechanism. * runtime/port.scm[1.16], runtime/rep.scm[14.53], runtime/runtime.pkg[14.315], runtime/tscript.scm[1.3], runtime/ttyio.scm[1.11], runtime/version.scm[14.179]: * Add mechanism to encapsulate one port in another, and to build wrappers around selected operations on the encapsulated port. * Use new encapsulation mechanism to reimplement transcript facility so that each transcript is associated with a particular REPL. Previously the transcript was directly associated with the console port. This change is the goal of all of the port changes from this past week. (I'm a little surprised at the depth of changes required.) This has the side effect of increasing modularity, since the transcript code is now concentrated in one file rather than being integrated into the console port. * Export procedure OUTPUT-PORT/FRESH-LINE to the global environment. This was an oversight from previous changes. 1999-02-16 Chris Hanson * runtime/port.scm[1.15]: When doing port-type inheritance, don't inherit any standard operations if one or more is given. * edwin/artdebug.scm[1.27], edwin/bufinp.scm[1.6], edwin/bufout.scm[1.12], edwin/debug.scm[1.47], edwin/intmod.scm[1.96], edwin/winout.scm[1.12], runtime/emacs.scm[14.25], runtime/emacs.scm[14.24], runtime/fileio.scm[1.16], runtime/genio.scm[1.14], runtime/runtime.pkg[14.314], runtime/strnin.scm[14.6], runtime/strott.scm[14.7], runtime/strout.scm[14.10], runtime/ttyio.scm[1.10]: Use new port types mechanism. * runtime/runtime.pkg[14.313]: Export MAKE-PORT. * runtime/output.scm[14.19], runtime/port.scm[1.14], runtime/runtime.pkg[14.312]: Change the port implementation to have a type that holds the operations on the port. This new implementation supports a crude form of single inheritance. * runtime/infutl.scm[1.61], runtime/runtime.pkg[14.311]: Don't export {IN,OUT}PUT-PORT/OPERATION/ procedures to the global environment. * runtime/fileio.scm[1.15], runtime/genio.scm[1.13], runtime/io.scm[14.58], runtime/runtime.pkg[14.310], runtime/ttyio.scm[1.9], runtime/ttyio.scm[1.8], runtime/ttyio.scm[1.7]: Implement FRESH-LINE operation for generic, file, and console ports. * runtime/genio.scm[1.12], runtime/io.scm[14.57], runtime/io.scm[14.56], runtime/io.scm[14.55], runtime/port.scm[1.13], runtime/runtime.pkg[14.309], runtime/runtime.pkg[14.308], runtime/runtime.pkg[14.307]: Allow CLOSE-INPUT-PORT and CLOSE-OUTPUT-PORT to independently close either side of an I/O port. * 6001/picture.scm[1.29]: Eliminate some randomness. * runtime/fileio.scm[1.14], runtime/genio.scm[1.11], runtime/output.scm[14.18], runtime/port.scm[1.12], runtime/runtime.pkg[14.306], runtime/strott.scm[14.6]: Eliminate WRITE-STRING output-port operation. * edwin/winout.scm[1.11]: Change output port to implement WRITE-SUBSTRING rather than WRITE-STRING. * runtime/fileio.scm[1.13], runtime/genio.scm[1.10], runtime/runtime.pkg[14.305]: Eliminate READ-CHARS input-port operation. * edwin/process.scm[1.56]: Eliminate use of READ-CHARS operation. * runtime/fileio.scm[1.12], runtime/genio.scm[1.9], runtime/runtime.pkg[14.304]: Eliminate WRITE-CHARS operation on output ports. 1999-02-03 Chris Hanson * edwin/debug.scm[1.46], edwin/debug.scm[1.45]: Fix fencepost error when printing bindings. Show complete environment chain; previously omitted global environment. Eliminate gratuitous use of EVAL. 1999-02-02 Chris Hanson * edwin/autold.scm[1.55]: Guarantee that symbols are canonicalized when loading files for Edwin. 1999-02-01 Chris Hanson * edwin/os2.scm[1.46], edwin/unix.scm[1.94]: Fix thinko. * runtime/process.scm[1.24]: Allow working directory to be a pathname. * runtime/syncproc.scm[1.7]: Run merge-pathnames on the working directory of a subprocess. * edwin/make.scm[3.97], edwin/process.scm[1.55]: Extensive changes to use the SYNCHRONOUS-SUBPROCESS support that is now built in to the runtime system. * edwin/edwin.ldr[1.64]: Must load SYNCHRONOUS-SUBPROCESS support. * edwin/diros2.scm[1.4], edwin/dirunx.scm[1.12], edwin/dirw32.scm[1.4], edwin/os2.scm[1.45], edwin/rmail.scm[1.61], edwin/sendmail.scm[1.44], edwin/unix.scm[1.93], edwin/vc.scm[1.31]: Change calls to OS/FIND-PROGRAM so that they explicitly pass the exec-path, which may be different from the default path. * runtime/ntprm.scm[1.27], runtime/os2prm.scm[1.40], runtime/unxprm.scm[1.53]: Reverse optional arguments for OS/FIND-PROGRAM. * edwin/dos.scm[1.49], edwin/os2.scm[1.44]: Eliminate DOS/DEFAULT-SHELL-FILE-NAME and DOS/WINDOWS-TYPE. * edwin/edwin.pkg[1.235]: Remove PROCESS-ENVIRONMENT-BIND, which has been moved to runtime system. Eliminate spurious binding of BUFFER-DEFAULT-DIRECTORY. * edwin/dosfile.scm[1.26], edwin/unix.scm[1.92]: Remove definitions that are now present in the runtime system. * runtime/version.scm[14.178]: Increment runtime version to account for subprocess changes. * runtime/runtime.pkg[14.303]: More subprocess changes. * runtime/process.scm[1.23]: Procedure PROCESS-ENVIRONMENT-BIND moved from Edwin to here. * runtime/syncproc.scm[1.6]: Eliminate CONDITION-TYPE:SUBPROCESS-EXITED. Add options to specify buffer sizes. 1999-01-31 Chris Hanson * runtime/runtime.pkg[14.302], runtime/syncproc.scm[1.5], runtime/syncproc.scm[1.4], runtime/syncproc.scm[1.3]: Change name: RUN-SYNCHRONOUS-PROCESS to RUN-SYNCHRONOUS-SUBPROCESS. Change calling convention of RUN-SYNCHRONOUS-SUBPROCESS and RUN-SHELL-COMMAND to accept keyword arguments, and eliminate MAKE-SUBPROCESS-CONTEXT. * edwin/evlcom.scm[1.61]: Fix bug: when evaluate-in-inferior-repl true, and there's no repl buffer, an command requiring evaluation would fail. * edwin/prompt.scm[1.182]: Fix thinko. 1999-01-29 Chris Hanson * runtime/syncproc.scm[1.2]: Fix thinko. Change definition of RUN-SYNCHRONOUS-PROCESS so that it returns the exit code of the subprocess. * runtime/ed-ffi.scm[1.19], runtime/ntprm.scm[1.26], runtime/optiondb.scm[1.6], runtime/os2prm.scm[1.39], runtime/runtime.pkg[14.301], runtime/unxprm.scm[1.52]: Add support for running synchronous subprocesses outside of Edwin. * edwin/pwedit.scm[1.4]: Fix thinko. * edwin/prompt.scm[1.181]: Change prompt history yet again. Now the history is copied before use, and the user's editing changes are remembered for each element in the history. When the user exits the minibuffer, all of the changes are discarded. Also: eliminate HISTORY-DEFAULT option; HISTORY-INDEX now subsumes that role. * edwin/compile.scm[1.11]: Eliminate use of HISTORY-DEFAULT prompt option. * edwin/filcom.scm[1.201]: Fix typo. 1999-01-28 Chris Hanson * edwin/prompt.scm[1.180]: Fix thinko in history mechanism. * edwin/prompt.scm[1.179]: Fix typo. * edwin/filcom.scm[1.200]: Use new prompt history. * edwin/compile.scm[1.10], edwin/compile.scm[1.9], edwin/compile.scm[1.8], edwin/prompt.scm[1.178]: History never sets prompt default except when explicitly instructed. * edwin/basic.scm[1.132], edwin/compile.scm[1.7]: Use new prompt-history mechanism. * edwin/prompt.scm[1.177]: Fix how defaults are derived from history. * edwin/edwin.pkg[1.234], edwin/prompt.scm[1.176]: Make prompt history mechanism convenient: histories are specified by symbols, and tracked automatically by the prompting code. * edwin/ring.scm[1.12]: Change RING-LIST to copy the value that it returns. * edwin/modefs.scm[1.155]: Bind eval-expression to M-: for compatibility with Emacs 19. * edwin/mousecom.scm[1.3]: Add USUAL-INTEGRATIONS declaration. * 6001/edextra.scm[1.28], 6001/floppy.scm[1.25]: Change to match new prompting code in Edwin 3.96. * edwin/bufcom.scm[1.106], edwin/compile.scm[1.6], edwin/comred.scm[1.114], edwin/dired.scm[1.169], edwin/edwin.pkg[1.233], edwin/evlcom.scm[1.60], edwin/filcom.scm[1.199], edwin/kmacro.scm[1.42], edwin/make.scm[3.96], edwin/print.scm[1.18], edwin/prompt.scm[1.175], edwin/replaz.scm[1.80], edwin/rmail.scm[1.60], edwin/snr.scm[1.51], edwin/tagutl.scm[1.57]: Revamp of prompting code. New design supports keyword arguments to most prompting procedures, to support options in an extensible way. The new keyword options are used to implement a general history mechanism, like that previously implemented by repeat-complex-command (which is now implemented using the new mechanism). This edit has made incompatible changes to the calling conventions of the following procedures: prompt-for-buffer-name prompt-for-expression prompt-for-pathname prompt-for-pathname* prompt-for-string prompt-for-completed-string prompt-for-string-table-name prompt-for-string-table-value * edwin/macros.scm[1.64]: Don't quote description strings. Quoting precludes the use of arbitrary expressions to compute the documentation. 1999-01-16 Chris Hanson * edwin/dosfile.scm[1.25], edwin/unix.scm[1.91]: Fix bug from last change: don't check file header when writing encrypted file, because the file might not exist. 1999-01-14 Chris Hanson * edwin/loadef.scm[1.37], edwin/pwedit.scm[1.3]: Fix compiler warnings. * edwin/decls.scm[1.63], edwin/ed-ffi.scm[1.46], edwin/edwin.pkg[1.232], edwin/loadef.scm[1.36]: Implement M-x view-password-file to allow a password to be looked up in public without revealing other passwords in the file. * edwin/pwedit.scm[1.2]: Fix formatting error. * edwin/modefs.scm[1.154]: Fix binding: "home" key on PCs means beginning-of-line. * edwin/dosfile.scm[1.24], edwin/unix.scm[1.90]: Use new BLOWFISH-FILE? predicate to test .bf files to see if they are encoded. * runtime/blowfish.scm[1.6]: Add procedure BLOWFISH-FILE?. * runtime/blowfish.scm[1.5]: Use more specific condition for signalling "non-blowfish" files. This facilitates catching this error. * edwin/dosfile.scm[1.23], edwin/fileio.scm[1.145], edwin/unix.scm[1.89]: Fix PATHNAME-DEFAULT-MODE so that application of auto-mode-alist ignores any encoding suffixes. 1999-01-09 Chris Hanson * win32/wingdi.scm[1.2], win32/winnt.scm[1.2], win32/winuser.scm[1.2]: Add copyright statement. 1999-01-03 Chris Hanson * microcode/dstack.h[1.9], microcode/error.c[1.6], microcode/ptrvec.c[1.3], microcode/transact.c[1.3], microcode/wind.c[1.6]: Fix mis-attributed copyright statement. These files were written by me but attributed to FSF when they should have been attributed to MIT. * 6001/make.scm[15.30], compiler/base/make.scm[4.110], cref/make.scm[1.18], edwin/make.scm[3.95], microcode/version.h[11.161], runtime/version.scm[14.177], sf/make.scm[4.34], sos/load.scm[1.6]: Fix version. 1999-01-02 Chris Hanson * rcs/mklogs.scm[1.11]: Change names of top-level /scheme directories. * 6001/6001.cbf[1.7], 6001/6001.pkg[1.11], 6001/6001.sf[1.10], 6001/arith.scm[1.6], 6001/edextra.scm[1.27], 6001/floppy.scm[1.24], 6001/make.scm[15.29], 6001/nodefs.scm[1.11], 6001/pic-imag.scm[1.10], 6001/pic-ops.scm[1.5], 6001/pic-read.scm[1.5], 6001/pic-reco.scm[1.7], 6001/picture.scm[1.28], compiler/back/asmmac.scm[1.8], compiler/back/asutl.scm[1.3], compiler/back/bittop.scm[1.22], compiler/back/bitutl.scm[1.10], compiler/back/insseq.scm[4.4], compiler/back/lapgn1.scm[4.18], compiler/back/lapgn2.scm[1.21], compiler/back/lapgn3.scm[4.12], compiler/back/linear.scm[4.17], compiler/back/mermap.scm[1.5], compiler/back/regmap.scm[4.14], compiler/back/syerly.scm[1.11], compiler/back/symtab.scm[1.47], compiler/back/syntax.scm[1.27], compiler/base/asstop.scm[1.11], compiler/base/blocks.scm[4.14], compiler/base/cfg1.scm[4.5], compiler/base/cfg2.scm[4.4], compiler/base/cfg3.scm[4.5], compiler/base/constr.scm[1.3], compiler/base/contin.scm[4.9], compiler/base/crsend.scm[1.10], compiler/base/crstop.scm[1.13], compiler/base/ctypes.scm[4.16], compiler/base/debug.scm[4.14], compiler/base/enumer.scm[4.4], compiler/base/infnew.scm[4.12], compiler/base/lvalue.scm[4.21], compiler/base/macros.scm[4.16], compiler/base/make.scm[4.109], compiler/base/mvalue.scm[3.1], compiler/base/object.scm[4.9], compiler/base/pmerly.scm[1.9], compiler/base/pmlook.scm[1.9], compiler/base/pmpars.scm[1.4], compiler/base/proced.scm[4.20], compiler/base/refctx.scm[1.3], compiler/base/rvalue.scm[4.7], compiler/base/scode.scm[4.10], compiler/base/sets.scm[4.2], compiler/base/subprb.scm[4.8], compiler/base/switch.scm[4.25], compiler/base/toplev.scm[4.55], compiler/base/utils.scm[4.20], compiler/etc/asm.scm[1.3], compiler/etc/comcmp.scm[1.5], compiler/etc/comfiles.scm[1.6], compiler/etc/disload.scm[1.8], compiler/etc/stackp.scm[1.7], compiler/etc/xcbfdir.scm[1.9], compiler/fggen/canon.scm[1.16], compiler/fggen/declar.scm[1.6], compiler/fggen/fggen.scm[4.32], compiler/fgopt/blktyp.scm[4.16], compiler/fgopt/closan.scm[4.18], compiler/fgopt/conect.scm[4.5], compiler/fgopt/contan.scm[4.10], compiler/fgopt/delint.scm[1.4], compiler/fgopt/desenv.scm[4.4], compiler/fgopt/envopt.scm[1.8], compiler/fgopt/folcon.scm[4.9], compiler/fgopt/offset.scm[4.9], compiler/fgopt/operan.scm[4.8], compiler/fgopt/order.scm[4.16], compiler/fgopt/outer.scm[4.6], compiler/fgopt/param.scm[1.4], compiler/fgopt/reord.scm[1.2], compiler/fgopt/reteqv.scm[1.2], compiler/fgopt/reuse.scm[1.8], compiler/fgopt/sideff.scm[1.9], compiler/fgopt/simapp.scm[4.9], compiler/fgopt/simple.scm[4.7], compiler/fgopt/subfre.scm[1.8], compiler/fgopt/varind.scm[1.5], compiler/machines/C/compiler.cbf[1.3], compiler/machines/C/compiler.pkg[1.10], compiler/machines/C/compiler.sf[1.6], compiler/machines/C/cout.scm[1.21], compiler/machines/C/ctop.scm[1.13], compiler/machines/C/cutl.scm[1.2], compiler/machines/C/decls.scm[1.4], compiler/machines/C/lapgen.scm[1.12], compiler/machines/C/machin.scm[1.8], compiler/machines/C/make.scm[1.3], compiler/machines/C/rgspcm.scm[1.3], compiler/machines/C/rules1.scm[1.8], compiler/machines/C/rules2.scm[1.3], compiler/machines/C/rules3.scm[1.9], compiler/machines/C/rules4.scm[1.2], compiler/machines/C/rulfix.scm[1.3], compiler/machines/C/rulflo.scm[1.5], compiler/machines/C/rulrew.scm[1.4], compiler/machines/alpha/assmd.scm[1.2], compiler/machines/alpha/coerce.scm[1.3], compiler/machines/alpha/compiler.cbf[1.3], compiler/machines/alpha/compiler.pkg[1.13], compiler/machines/alpha/compiler.sf[1.6], compiler/machines/alpha/dassm1.scm[1.2], compiler/machines/alpha/dassm2.scm[1.2], compiler/machines/alpha/dassm3.scm[1.2], compiler/machines/alpha/decls.scm[1.6], compiler/machines/alpha/inerly.scm[1.2], compiler/machines/alpha/insmac.scm[1.2], compiler/machines/alpha/instr1.scm[1.4], compiler/machines/alpha/instr2.scm[1.2], compiler/machines/alpha/instr3.scm[1.2], compiler/machines/alpha/lapgen.scm[1.6], compiler/machines/alpha/lapopt.scm[1.2], compiler/machines/alpha/machin.scm[1.8], compiler/machines/alpha/make.scm[1.4], compiler/machines/alpha/rgspcm.scm[1.2], compiler/machines/alpha/rules1.scm[1.3], compiler/machines/alpha/rules2.scm[1.2], compiler/machines/alpha/rules3.scm[1.7], compiler/machines/alpha/rules4.scm[1.3], compiler/machines/alpha/rulfix.scm[1.4], compiler/machines/alpha/rulflo.scm[1.3], compiler/machines/alpha/rulrew.scm[1.3], compiler/machines/bobcat/assmd.scm[1.37], compiler/machines/bobcat/coerce.scm[1.11], compiler/machines/bobcat/compiler.cbf[1.3], compiler/machines/bobcat/compiler.pkg[1.50], compiler/machines/bobcat/compiler.sf[1.18], compiler/machines/bobcat/dassm1.scm[4.19], compiler/machines/bobcat/dassm2.scm[4.23], compiler/machines/bobcat/dassm3.scm[4.9], compiler/machines/bobcat/decls.scm[4.37], compiler/machines/bobcat/flinstr1.scm[1.2], compiler/machines/bobcat/flinstr2.scm[1.2], compiler/machines/bobcat/inerly.scm[1.8], compiler/machines/bobcat/insmac.scm[1.127], compiler/machines/bobcat/instr1.scm[1.68], compiler/machines/bobcat/instr2.scm[1.19], compiler/machines/bobcat/instr3.scm[1.18], compiler/machines/bobcat/instr4.scm[1.4], compiler/machines/bobcat/insutl.scm[1.9], compiler/machines/bobcat/lapgen.scm[4.51], compiler/machines/bobcat/lapopt.scm[1.2], compiler/machines/bobcat/machin.scm[4.32], compiler/machines/bobcat/make.scm-68020[4.89], compiler/machines/bobcat/make.scm-68040[4.90], compiler/machines/bobcat/mc68ktgl.scm[1.3], compiler/machines/bobcat/rgspcm.scm[4.3], compiler/machines/bobcat/rules1.scm[4.39], compiler/machines/bobcat/rules2.scm[4.15], compiler/machines/bobcat/rules3.scm[4.41], compiler/machines/bobcat/rules4.scm[4.15], compiler/machines/bobcat/rulrew.scm[1.7], compiler/machines/i386/assmd.scm[1.3], compiler/machines/i386/coerce.scm[1.3], compiler/machines/i386/compiler.cbf[1.4], compiler/machines/i386/compiler.pkg[1.24], compiler/machines/i386/compiler.sf[1.9], compiler/machines/i386/dassm1.scm[1.9], compiler/machines/i386/dassm2.scm[1.9], compiler/machines/i386/dassm3.scm[1.6], compiler/machines/i386/decls.scm[1.8], compiler/machines/i386/inerly.scm[1.3], compiler/machines/i386/insmac.scm[1.11], compiler/machines/i386/instr1.scm[1.11], compiler/machines/i386/instr2.scm[1.6], compiler/machines/i386/instrf.scm[1.14], compiler/machines/i386/insutl.scm[1.11], compiler/machines/i386/lapgen.scm[1.27], compiler/machines/i386/lapopt.scm[1.6], compiler/machines/i386/machin.scm[1.19], compiler/machines/i386/make.scm[1.6], compiler/machines/i386/pc-make.scm[1.2], compiler/machines/i386/rgspcm.scm[1.4], compiler/machines/i386/rules1.scm[1.19], compiler/machines/i386/rules2.scm[1.9], compiler/machines/i386/rules3.scm[1.34], compiler/machines/i386/rules4.scm[1.8], compiler/machines/i386/rulfix.scm[1.31], compiler/machines/i386/rulflo.scm[1.22], compiler/machines/i386/rulrew.scm[1.14], compiler/machines/mips/assmd.scm[1.3], compiler/machines/mips/coerce.scm[1.2], compiler/machines/mips/compiler.cbf[1.3], compiler/machines/mips/compiler.pkg[1.20], compiler/machines/mips/compiler.sf-big[1.8], compiler/machines/mips/compiler.sf-little[1.8], compiler/machines/mips/dassm1.scm[1.4], compiler/machines/mips/dassm2.scm[1.5], compiler/machines/mips/dassm3.scm[1.4], compiler/machines/mips/decls.scm[1.10], compiler/machines/mips/inerly.scm[1.2], compiler/machines/mips/insmac.scm[1.3], compiler/machines/mips/instr1.scm[1.7], compiler/machines/mips/instr2a.scm[1.5], compiler/machines/mips/instr2b.scm[1.4], compiler/machines/mips/instr3.scm[1.3], compiler/machines/mips/lapgen.scm[1.16], compiler/machines/mips/lapopt.scm[1.2], compiler/machines/mips/machin.scm[1.15], compiler/machines/mips/make.scm-big[4.89], compiler/machines/mips/make.scm-little[4.89], compiler/machines/mips/mips.scm[1.2], compiler/machines/mips/rgspcm.scm[1.2], compiler/machines/mips/rules1.scm[1.7], compiler/machines/mips/rules2.scm[1.3], compiler/machines/mips/rules3.scm[1.18], compiler/machines/mips/rules4.scm[1.4], compiler/machines/mips/rulfix.scm[1.11], compiler/machines/mips/rulflo.scm[1.8], compiler/machines/mips/rulrew.scm[1.7], compiler/machines/sparc/assmd.scm[1.2], compiler/machines/sparc/cf.h-sparc[1.2], compiler/machines/sparc/cmpaux-sparc.m4[1.2], compiler/machines/sparc/cmpint-sparc.h[1.2], compiler/machines/sparc/coerce.scm[1.2], compiler/machines/sparc/decls.scm[1.4], compiler/machines/sparc/inerly.scm[1.2], compiler/machines/sparc/insmac.scm[1.2], compiler/machines/sparc/instr1.scm[1.2], compiler/machines/sparc/instr2a.scm[1.2], compiler/machines/sparc/instr2b.scm[1.2], compiler/machines/sparc/instr3.scm[1.2], compiler/machines/sparc/lapgen.scm[1.3], compiler/machines/sparc/lapopt.scm[1.2], compiler/machines/sparc/machin.scm[1.3], compiler/machines/sparc/make.scm[1.3], compiler/machines/sparc/rgspcm.scm[1.2], compiler/machines/sparc/rules1.scm[1.2], compiler/machines/sparc/rules2.scm[1.2], compiler/machines/sparc/rules3.scm[1.2], compiler/machines/sparc/rules4.scm[1.2], compiler/machines/sparc/rulfix.scm[1.2], compiler/machines/sparc/rulflo.scm[1.2], compiler/machines/sparc/rulrew.scm[1.2], compiler/machines/spectrum/assmd.scm[1.31], compiler/machines/spectrum/coerce.scm[1.6], compiler/machines/spectrum/compiler.cbf[1.3], compiler/machines/spectrum/compiler.pkg[1.50], compiler/machines/spectrum/compiler.sf[1.18], compiler/machines/spectrum/dassm1.scm[4.19], compiler/machines/spectrum/dassm2.scm[4.21], compiler/machines/spectrum/dassm3.scm[1.3], compiler/machines/spectrum/decls.scm[4.35], compiler/machines/spectrum/inerly.scm[1.2], compiler/machines/spectrum/insmac.scm[1.3], compiler/machines/spectrum/instr1.scm[1.4], compiler/machines/spectrum/instr2.scm[1.7], compiler/machines/spectrum/instr3.scm[1.3], compiler/machines/spectrum/lapgen.scm[4.48], compiler/machines/spectrum/lapopt.scm[1.15], compiler/machines/spectrum/machin.scm[4.30], compiler/machines/spectrum/make.scm[4.90], compiler/machines/spectrum/rgspcm.scm[4.4], compiler/machines/spectrum/rules1.scm[4.36], compiler/machines/spectrum/rules2.scm[4.15], compiler/machines/spectrum/rules3.scm[4.42], compiler/machines/spectrum/rules4.scm[4.13], compiler/machines/spectrum/rulfix.scm[4.48], compiler/machines/spectrum/rulflo.scm[4.40], compiler/machines/spectrum/rulrew.scm[1.13], compiler/machines/vax/assmd.scm[4.7], compiler/machines/vax/coerce.scm[1.5], compiler/machines/vax/compiler.cbf[1.6], compiler/machines/vax/compiler.pkg[1.22], compiler/machines/vax/compiler.sf[1.9], compiler/machines/vax/dassm1.scm[4.7], compiler/machines/vax/dassm2.scm[4.13], compiler/machines/vax/dassm3.scm[1.4], compiler/machines/vax/decls.scm[4.13], compiler/machines/vax/dsyn.scm[1.8], compiler/machines/vax/inerly.scm[1.7], compiler/machines/vax/insmac.scm[1.13], compiler/machines/vax/instr1.scm[1.7], compiler/machines/vax/instr2.scm[1.6], compiler/machines/vax/instr3.scm[1.10], compiler/machines/vax/insutl.scm[4.4], compiler/machines/vax/lapgen.scm[4.16], compiler/machines/vax/lapopt.scm[1.2], compiler/machines/vax/machin.scm[4.13], compiler/machines/vax/make.scm[4.89], compiler/machines/vax/rgspcm.scm[4.3], compiler/machines/vax/rules1.scm[4.8], compiler/machines/vax/rules2.scm[4.5], compiler/machines/vax/rules3.scm[4.12], compiler/machines/vax/rules4.scm[4.5], compiler/machines/vax/rulfix.scm[1.6], compiler/machines/vax/rulrew.scm[1.3], compiler/rtlbase/regset.scm[1.4], compiler/rtlbase/rgraph.scm[4.8], compiler/rtlbase/rtlcfg.scm[4.9], compiler/rtlbase/rtlcon.scm[4.30], compiler/rtlbase/rtlexp.scm[4.20], compiler/rtlbase/rtline.scm[4.11], compiler/rtlbase/rtlobj.scm[4.12], compiler/rtlbase/rtlreg.scm[4.6], compiler/rtlbase/rtlty1.scm[4.23], compiler/rtlbase/rtlty2.scm[4.13], compiler/rtlbase/valclass.scm[1.3], compiler/rtlgen/fndblk.scm[4.12], compiler/rtlgen/fndvar.scm[1.7], compiler/rtlgen/opncod.scm[4.68], compiler/rtlgen/rgcomb.scm[4.21], compiler/rtlgen/rgproc.scm[4.14], compiler/rtlgen/rgretn.scm[4.14], compiler/rtlgen/rgrval.scm[4.23], compiler/rtlgen/rgstmt.scm[4.17], compiler/rtlgen/rtlgen.scm[4.30], compiler/rtlopt/ralloc.scm[1.18], compiler/rtlopt/rcompr.scm[1.15], compiler/rtlopt/rcse1.scm[4.24], compiler/rtlopt/rcse2.scm[4.14], compiler/rtlopt/rcseep.scm[4.7], compiler/rtlopt/rcseht.scm[4.13], compiler/rtlopt/rcserq.scm[4.6], compiler/rtlopt/rcsesr.scm[4.4], compiler/rtlopt/rdebug.scm[1.3], compiler/rtlopt/rdflow.scm[1.3], compiler/rtlopt/rerite.scm[1.4], compiler/rtlopt/rinvex.scm[1.9], compiler/rtlopt/rlife.scm[1.61], compiler/rtlopt/rtlcsm.scm[1.2], cref/Attic/triv.con[1.5], cref/Attic/triv.ldr[1.4], cref/anfile.scm[1.6], cref/conpkg.scm[1.6], cref/cref.cbf[1.3], cref/cref.pkg[1.7], cref/cref.sf[1.10], cref/forpkg.scm[1.9], cref/make.scm[1.17], cref/mset.scm[1.2], cref/object.scm[1.10], cref/redpkg.scm[1.11], cref/toplev.scm[1.12], edwin/ansi.scm[1.8], edwin/argred.scm[1.33], edwin/artdebug.scm[1.26], edwin/autold.scm[1.54], edwin/autosv.scm[1.33], edwin/basic.scm[1.131], edwin/bios.scm[1.5], edwin/bufcom.scm[1.105], edwin/buffer.scm[1.171], edwin/buffrm.scm[1.53], edwin/bufinp.scm[1.5], edwin/bufmnu.scm[1.126], edwin/bufout.scm[1.11], edwin/bufset.scm[1.12], edwin/bufwfs.scm[1.20], edwin/bufwin.scm[1.306], edwin/bufwiu.scm[1.31], edwin/bufwmc.scm[1.18], edwin/c-mode.scm[1.55], edwin/calias.scm[1.18], edwin/cinden.scm[1.19], edwin/class.scm[1.72], edwin/clscon.scm[1.7], edwin/clsmac.scm[1.3], edwin/comatch.scm[1.4], edwin/comhst.scm[1.6], edwin/comint.scm[1.28], edwin/comman.scm[1.80], edwin/compile.scm[1.5], edwin/comred.scm[1.113], edwin/comtab.scm[1.69], edwin/comwin.scm[1.144], edwin/curren.scm[1.123], edwin/dabbrev.scm[1.4], edwin/debug.scm[1.44], edwin/debuge.scm[1.53], edwin/decls.scm[1.62], edwin/dired.scm[1.168], edwin/diros2.scm[1.3], edwin/dirunx.scm[1.11], edwin/dirw32.scm[1.3], edwin/display.scm[1.7], edwin/docstr.scm[1.3], edwin/dos.scm[1.48], edwin/doscom.scm[1.3], edwin/dosfile.scm[1.22], edwin/dosproc.scm[1.4], edwin/dosshell.scm[1.4], edwin/ed-ffi.scm[1.45], edwin/editor.scm[1.244], edwin/edtfrm.scm[1.90], edwin/edtstr.scm[1.23], edwin/edwin.cbf[1.4], edwin/edwin.ldr[1.63], edwin/edwin.pkg[1.231], edwin/edwin.sf[1.20], edwin/evlcom.scm[1.59], edwin/eystep.scm[1.6], edwin/filcom.scm[1.198], edwin/fileio.scm[1.144], edwin/fill.scm[1.60], edwin/grpops.scm[1.24], edwin/hlpcom.scm[1.109], edwin/image.scm[1.134], edwin/info.scm[1.133], edwin/input.scm[1.100], edwin/intmod.scm[1.95], edwin/iserch.scm[1.21], edwin/javamode.scm[1.3], edwin/key-w32.scm[1.3], edwin/key-x11.scm[1.5], edwin/keymap.scm[1.12], edwin/keyparse.scm[1.3], edwin/kilcom.scm[1.71], edwin/kmacro.scm[1.41], edwin/lincom.scm[1.123], edwin/linden.scm[1.126], edwin/loadef.scm[1.35], edwin/lspcom.scm[1.158], edwin/macros.scm[1.63], edwin/make.scm[3.94], edwin/malias.scm[1.4], edwin/manual.scm[1.15], edwin/midas.scm[1.18], edwin/modefs.scm[1.153], edwin/modes.scm[1.28], edwin/modlin.scm[1.20], edwin/modwin.scm[1.40], edwin/motcom.scm[1.47], edwin/motion.scm[1.88], edwin/mousecom.scm[1.2], edwin/nntp.scm[1.22], edwin/notify.scm[1.18], edwin/nvector.scm[1.8], edwin/occur.scm[1.4], edwin/os2.scm[1.43], edwin/os2com.scm[1.5], edwin/os2term.scm[1.21], edwin/outline.scm[1.8], edwin/pasmod.scm[1.47], edwin/paths.scm[1.14], edwin/print.scm[1.17], edwin/process.scm[1.54], edwin/prompt.scm[1.174], edwin/rcsparse.scm[1.4], edwin/reccom.scm[1.14], edwin/regcom.scm[1.22], edwin/regexp.scm[1.71], edwin/regops.scm[1.87], edwin/rename.scm[1.7], edwin/replaz.scm[1.79], edwin/ring.scm[1.11], edwin/rmail.scm[1.59], edwin/rmailsrt.scm[1.10], edwin/rmailsum.scm[1.34], edwin/schmod.scm[1.44], edwin/scrcom.scm[1.6], edwin/screen.scm[1.116], edwin/search.scm[1.150], edwin/sendmail.scm[1.43], edwin/sercom.scm[1.64], edwin/shell.scm[1.19], edwin/simple.scm[1.48], edwin/snr.scm[1.50], edwin/sort.scm[1.7], edwin/strpad.scm[1.8], edwin/strtab.scm[1.46], edwin/struct.scm[1.91], edwin/syntax.scm[1.83], edwin/tagutl.scm[1.56], edwin/techinfo.scm[1.5], edwin/telnet.scm[1.14], edwin/termcap.scm[1.7], edwin/texcom.scm[1.39], edwin/things.scm[1.85], edwin/tparse.scm[1.71], edwin/tterm.scm[1.28], edwin/tximod.scm[1.21], edwin/txtprp.scm[1.17], edwin/undo.scm[1.58], edwin/unix.scm[1.88], edwin/utils.scm[1.45], edwin/utlwin.scm[1.59], edwin/vc.scm[1.30], edwin/verilog.scm[1.5], edwin/vhdl.scm[1.5], edwin/webster.scm[1.3], edwin/win32.scm[1.9], edwin/win32com.scm[1.8], edwin/wincom.scm[1.122], edwin/window.scm[1.159], edwin/winout.scm[1.10], edwin/winren.scm[1.5], edwin/xcom.scm[1.16], edwin/xform.scm[1.9], edwin/xmodef.scm[1.3], edwin/xterm.scm[1.56], microcode/Attic/config.h[9.100], microcode/Attic/dosasutl.asm[1.4], microcode/Attic/dosconio.c[1.13], microcode/Attic/dosenv.c[1.10], microcode/Attic/dosexcp.c[1.6], microcode/Attic/dosexcp.h[1.4], microcode/Attic/dosfg.c[1.4], microcode/Attic/dosfile.c[1.4], microcode/Attic/dosfs.c[1.6], microcode/Attic/dosi10.asm[1.3], microcode/Attic/dosinsn.h[1.3], microcode/Attic/dosint10.c[1.9], microcode/Attic/dosint10.h[1.3], microcode/Attic/dosio.c[1.9], microcode/Attic/dosio.h[1.5], microcode/Attic/doskbd.c[1.13], microcode/Attic/doskbd.h[1.3], microcode/Attic/doskbutl.asm[1.7], microcode/Attic/dosscan.h[1.5], microcode/Attic/dosselec.h[1.3], microcode/Attic/dossig.c[1.17], microcode/Attic/dossys.c[1.5], microcode/Attic/dossys.h[1.3], microcode/Attic/dosterm.h[1.3], microcode/Attic/dostop.c[1.12], microcode/Attic/dostop.h[1.3], microcode/Attic/dostrap.c[1.7], microcode/Attic/dostrap.h[1.4], microcode/Attic/dostterm.c[1.3], microcode/Attic/dostty.c[1.4], microcode/Attic/dosutil.c[1.3], microcode/Attic/dosutil.h[1.3], microcode/Attic/dosx32.c[1.7], microcode/Attic/dosxcutl.asm[1.8], microcode/Attic/msdos.h[1.7], microcode/Attic/oscond.h[1.26], microcode/Attic/posixtyp.h[1.16], microcode/Attic/prdosenv.c[1.11], microcode/Attic/prdosfs.c[1.5], microcode/array.c[9.46], microcode/array.h[9.36], microcode/artutl.c[1.16], microcode/avltree.c[1.4], microcode/avltree.h[1.2], microcode/bchdmp.c[9.83], microcode/bchdrn.c[1.7], microcode/bchdrn.h[1.9], microcode/bchgcc.h[9.59], microcode/bchgcl.c[9.50], microcode/bchmmg.c[9.93], microcode/bchpur.c[9.67], microcode/bchutl.c[1.8], microcode/bignmint.h[1.6], microcode/bignum.c[9.47], microcode/bignum.h[9.31], microcode/bigprm.c[1.6], microcode/bintopsb.c[9.69], microcode/bitstr.c[9.61], microcode/bitstr.h[1.9], microcode/bkpt.c[9.30], microcode/bkpt.h[9.32], microcode/bltdef.h[1.4], microcode/boot.c[9.100], microcode/breakup.c[9.25], microcode/char.c[9.33], microcode/cmpauxmd/asmcvt.c[1.2], microcode/cmpauxmd/c.c[1.12], microcode/cmpauxmd/hppa.m4[1.38], microcode/cmpauxmd/i386.m4[1.49], microcode/cmpauxmd/mc68k.m4[1.26], microcode/cmpauxmd/mips.m4[1.15], microcode/cmpauxmd/vax.m4[1.3], microcode/cmpgc.h[1.30], microcode/cmpint.c[1.91], microcode/cmpint.h[10.6], microcode/cmpintmd/c.h[1.7], microcode/cmpintmd/hppa.h[1.51], microcode/cmpintmd/i386.h[1.31], microcode/cmpintmd/mc68k.h[1.36], microcode/cmpintmd/mips.h[1.23], microcode/cmpintmd/vax.h[1.9], microcode/cmptype.h[1.2], microcode/comlin.c[1.9], microcode/comlin.h[1.7], microcode/compinit.c[1.4], microcode/comutl.c[1.31], microcode/const.h[9.45], microcode/copyrigh.c[1.3], microcode/critsec.h[1.4], microcode/daemon.c[9.31], microcode/debug.c[9.50], microcode/default.h[9.43], microcode/dfloat.c[1.6], microcode/dmpwrld.c[9.39], microcode/dosutl/Attic/bch-prm.lst[1.7], microcode/dosutl/Attic/makefile[1.13], microcode/dosutl/Attic/scm-prm.lst[1.7], microcode/dump.c[9.40], microcode/edwin.h[1.9], microcode/errors.h[9.42], microcode/extern.c[9.37], microcode/extern.h[9.56], microcode/fasdump.c[9.63], microcode/fasl.h[9.38], microcode/fasload.c[9.86], microcode/fft.c[9.33], microcode/fhooks.c[9.34], microcode/findprim.c[9.52], microcode/fixnum.c[9.44], microcode/fixobj.h[9.38], microcode/flonum.c[9.43], microcode/foreign.c[1.2], microcode/foreign.h[1.2], microcode/future.c[9.29], microcode/futures.h[9.29], microcode/gc.h[9.34], microcode/gccode.h[9.56], microcode/gcloop.c[9.46], microcode/gctype.c[9.34], microcode/generic.c[9.39], microcode/gpio.c[1.11], microcode/history.h[9.29], microcode/hooks.c[9.58], microcode/hppacach.c[1.12], microcode/hppacach.h[1.5], microcode/hppanwca.c[1.4], microcode/hunk.c[9.29], microcode/image.c[9.34], microcode/image.h[9.25], microcode/intercom.c[9.31], microcode/intern.c[9.56], microcode/interp.c[9.89], microcode/interp.h[9.41], microcode/intext.c[1.5], microcode/intext.h[1.5], microcode/intprm.c[1.9], microcode/intrpt.h[1.20], microcode/liarc.h[1.14], microcode/list.c[9.32], microcode/load.c[9.39], microcode/locks.h[9.26], microcode/lookprm.c[1.11], microcode/lookup.c[9.57], microcode/lookup.h[9.51], microcode/m/Attic/apoll68k.h[1.4], microcode/m/Attic/hcx.h[1.3], microcode/m/Attic/hp9k300.h[1.13], microcode/m/Attic/hp9k400.h[1.9], microcode/m/Attic/hp9k800.h[1.14], microcode/m/Attic/i386.h[1.6], microcode/m/Attic/ibm032.h[1.3], microcode/m/Attic/mips.h[1.10], microcode/m/Attic/next.h[1.6], microcode/m/Attic/rs6000.h[1.3], microcode/m/Attic/sun3.h[1.7], microcode/m/Attic/sun4.h[1.4], microcode/m/Attic/umax.h[1.3], microcode/m/Attic/vax.h[1.6], microcode/memmag.c[9.65], microcode/memmag.h[1.7], microcode/missing.c[9.32], microcode/mul.c[9.34], microcode/nt.h[1.8], microcode/ntapi.h[1.9], microcode/ntasutl.asm[1.6], microcode/ntenv.c[1.17], microcode/ntfile.c[1.13], microcode/ntfs.c[1.24], microcode/ntfs.h[1.4], microcode/ntgui.c[1.25], microcode/ntgui.h[1.8], microcode/ntio.c[1.22], microcode/ntio.h[1.11], microcode/ntproc.c[1.8], microcode/ntproc.h[1.2], microcode/ntscmlib.h[1.9], microcode/ntscreen.c[1.36], microcode/ntscreen.h[1.17], microcode/ntsig.c[1.21], microcode/ntsock.c[1.5], microcode/ntsys.c[1.9], microcode/ntsys.h[1.8], microcode/ntterm.h[1.4], microcode/nttop.c[1.29], microcode/nttop.h[1.4], microcode/nttrap.c[1.17], microcode/nttrap.h[1.5], microcode/nttterm.c[1.3], microcode/nttty.c[1.8], microcode/ntutl/bch-p-nt.lst[1.6], microcode/ntutl/makefile[1.23], microcode/ntutl/makefile.wcc[1.12], microcode/ntutl/scheme16.c[1.11], microcode/ntutl/scheme31.c[1.10], microcode/ntutl/scheme32.c[1.17], microcode/ntutl/scm-p-nt.lst[1.6], microcode/object.h[9.49], microcode/option.c[1.48], microcode/option.h[1.12], microcode/os.h[1.6], microcode/os2.c[1.8], microcode/os2.h[1.6], microcode/os2api.h[1.11], microcode/os2conio.c[1.10], microcode/os2cthrd.c[1.10], microcode/os2cthrd.h[1.7], microcode/os2ctty.c[1.4], microcode/os2ctty.h[1.2], microcode/os2env.c[1.11], microcode/os2file.c[1.3], microcode/os2fs.c[1.10], microcode/os2io.c[1.8], microcode/os2io.h[1.4], microcode/os2msg.c[1.13], microcode/os2msg.h[1.15], microcode/os2pipe.c[1.8], microcode/os2pm.c[1.32], microcode/os2pm.h[1.13], microcode/os2pm.scm[1.8], microcode/os2pmcon.c[1.24], microcode/os2pmcon.h[1.4], microcode/os2pmcon.rc[1.5], microcode/os2proc.c[1.6], microcode/os2proc.h[1.2], microcode/os2sock.c[1.9], microcode/os2term.c[1.3], microcode/os2thrd.c[1.6], microcode/os2thrd.h[1.4], microcode/os2top.c[1.19], microcode/os2tty.c[1.2], microcode/os2utl/makefile[1.14], microcode/os2utl/makefile.cmn[1.11], microcode/os2utl/makefile.emx[1.8], microcode/os2utl/makefile.gcc[1.6], microcode/os2utl/makefile.vac[1.6], microcode/os2utl/makefile.wcc[1.7], microcode/os2xcpt.c[1.7], microcode/osctty.h[1.4], microcode/osenv.h[1.8], microcode/osfile.h[1.3], microcode/osfs.h[1.7], microcode/osio.h[1.14], microcode/osproc.h[1.10], microcode/ospty.h[1.4], microcode/osscheme.c[1.10], microcode/osscheme.h[1.10], microcode/ossig.h[1.4], microcode/osterm.h[1.11], microcode/ostop.h[1.5], microcode/ostty.c[1.4], microcode/ostty.h[1.5], microcode/outf.c[1.11], microcode/outf.h[1.4], microcode/ppband.c[9.49], microcode/prbfish.c[1.4], microcode/prename.h[1.9], microcode/prgdbm.c[1.3], microcode/prim.c[9.39], microcode/prim.h[9.45], microcode/prims.h[9.46], microcode/primutl.c[9.71], microcode/prmcon.c[1.3], microcode/prmcon.h[1.3], microcode/prmd5.c[1.4], microcode/prntenv.c[1.8], microcode/prntfs.c[1.15], microcode/prntio.c[1.10], microcode/pros2fs.c[1.17], microcode/pros2io.c[1.8], microcode/pros2pm.c[1.21], microcode/prosenv.c[1.15], microcode/prosfile.c[1.9], microcode/prosfs.c[1.13], microcode/prosio.c[1.17], microcode/prosproc.c[1.18], microcode/prospty.c[1.4], microcode/prosterm.c[1.16], microcode/prostty.c[1.7], microcode/pruxdld.c[1.12], microcode/pruxenv.c[1.18], microcode/pruxfs.c[9.55], microcode/pruxio.c[1.7], microcode/pruxsock.c[1.16], microcode/psbmap.h[9.43], microcode/psbtobin.c[9.57], microcode/purify.c[9.58], microcode/purutl.c[9.49], microcode/regex.c[1.19], microcode/regex.h[1.7], microcode/returns.h[9.42], microcode/rgxprim.c[1.13], microcode/s/Attic/386bsd.h[1.3], microcode/s/Attic/aix.h[1.3], microcode/s/Attic/bsd4-2.h[1.8], microcode/s/Attic/bsd4-3.h[1.6], microcode/s/Attic/hpux.h[1.12], microcode/s/Attic/irix4.h[1.5], microcode/s/Attic/irix6.h[1.2], microcode/s/Attic/linux.h[1.17], microcode/s/Attic/mach4-3.h[1.4], microcode/s/Attic/newsos5.h[1.5], microcode/s/Attic/nextos.h[1.7], microcode/s/Attic/sunos3.h[1.5], microcode/s/Attic/sunos4.h[1.8], microcode/s/Attic/sysv3.h[1.5], microcode/s/Attic/sysv4.h[1.4], microcode/s/Attic/ultrix.h[1.16], microcode/s/Attic/umax.h[1.6], microcode/sample.c[9.26], microcode/scheme.h[9.38], microcode/scode.h[9.26], microcode/sdata.h[9.34], microcode/sgraph.h[1.7], microcode/sgraph_a.c[1.16], microcode/sgx.c[1.9], microcode/sgx11.c[1.4], microcode/stack.h[9.38], microcode/starbase.c[1.7], microcode/starbasx.c[1.6], microcode/step.c[9.34], microcode/storage.c[9.56], microcode/string.c[9.38], microcode/syntax.c[1.24], microcode/syntax.h[1.10], microcode/syscall.h[1.11], microcode/sysprim.c[9.46], microcode/term.c[1.14], microcode/trap.h[9.44], microcode/tterm.c[1.6], microcode/types.h[9.37], microcode/unxutl/Attic/cf-dist.h[1.23], microcode/unxutl/Attic/ymkfile[1.94], microcode/usrdef.h[9.43], microcode/utabmd.scm[9.77], microcode/utils.c[9.74], microcode/ux.c[1.17], microcode/ux.h[1.71], microcode/uxctty.c[1.13], microcode/uxenv.c[1.17], microcode/uxfile.c[1.9], microcode/uxfs.c[1.17], microcode/uxio.c[1.43], microcode/uxio.h[1.5], microcode/uxproc.c[1.23], microcode/uxproc.h[1.6], microcode/uxselect.h[1.6], microcode/uxsig.c[1.33], microcode/uxsig.h[1.5], microcode/uxsock.c[1.18], microcode/uxsock.h[1.8], microcode/uxterm.c[1.26], microcode/uxterm.h[1.5], microcode/uxtop.c[1.21], microcode/uxtop.h[1.3], microcode/uxtrap.c[1.28], microcode/uxtrap.h[1.28], microcode/uxtty.c[1.10], microcode/uxutil.c[1.6], microcode/uxutil.h[1.3], microcode/uxyp.c[1.3], microcode/vector.c[9.39], microcode/version.h[11.160], microcode/wabbit.c[1.7], microcode/winder.h[9.26], microcode/wsize.c[9.34], microcode/x11.h[1.16], microcode/x11base.c[1.73], microcode/x11color.c[1.5], microcode/x11graph.c[1.41], microcode/x11term.c[1.25], microcode/xdebug.c[9.33], microcode/zones.h[9.26], pcsample/load.scm[1.5], pcsample/pcs.cbf[1.3], pcsample/pcs.pkg[1.3], pcsample/pcs.sf[1.2], pcsample/pcsample.c[1.6], pcsample/pcsample.scm[1.3], pcsample/pcsboot.scm[1.2], pcsample/pcscobl.c[1.2], pcsample/pcscobl.scm[1.2], pcsample/pcsdisp.scm[1.2], pcsample/pcsdld.c[1.5], pcsample/pcsintrp.scm[1.2], pcsample/pcsiproc.c[1.2], pcsample/pcsiproc.scm[1.2], pcsample/pribinut.scm[1.2], rcs/Attic/make.scm[1.4], rcs/Attic/rcs.sf[1.8], rcs/format.scm[1.3], rcs/logmer.scm[1.16], rcs/mklogs.scm[1.10], rcs/nparse.scm[1.2], rcs/object.scm[1.3], rcs/rcs.pkg[1.7], runtime/Attic/illdef.scm[1.4], runtime/Attic/macros.scm[1.3], runtime/Attic/syntab.scm[14.5], runtime/Attic/syntax.scm[14.31], runtime/advice.scm[14.15], runtime/apply.scm[1.2], runtime/apropos.scm[1.3], runtime/arith.scm[1.45], runtime/bitstr.scm[14.3], runtime/blowfish.scm[1.4], runtime/boole.scm[14.3], runtime/boot.scm[14.12], runtime/char.scm[14.10], runtime/chrset.scm[14.8], runtime/codwlk.scm[14.3], runtime/conpar.scm[14.36], runtime/contin.scm[14.8], runtime/cpoint.scm[14.5], runtime/cpress.scm[1.10], runtime/datime.scm[14.17], runtime/dbgcmd.scm[14.16], runtime/dbgutl.scm[14.17], runtime/debug.scm[14.39], runtime/defstr.scm[14.32], runtime/dosdir.scm[1.7], runtime/dosprm.scm[1.41], runtime/dosproc.scm[1.2], runtime/dospth.scm[1.39], runtime/dragon4.scm[1.14], runtime/ed-ffi.scm[1.18], runtime/emacs.scm[14.23], runtime/equals.scm[14.8], runtime/error.scm[14.49], runtime/events.scm[14.4], runtime/fileio.scm[1.11], runtime/fixart.scm[1.3], runtime/format.scm[14.6], runtime/framex.scm[14.19], runtime/gc.scm[14.16], runtime/gcdemn.scm[14.8], runtime/gcnote.scm[14.12], runtime/gcstat.scm[14.6], runtime/gdatab.scm[14.6], runtime/gdbm.scm[1.2], runtime/gencache.scm[1.2], runtime/geneqht.scm[1.2], runtime/generic.scm[1.2], runtime/genio.scm[1.8], runtime/genmult.scm[1.2], runtime/gensym.scm[14.5], runtime/gentag.scm[1.2], runtime/global.scm[14.51], runtime/graphics.scm[1.17], runtime/hash.scm[14.6], runtime/hashtb.scm[1.23], runtime/histry.scm[14.6], runtime/infstr.scm[1.9], runtime/infutl.scm[1.60], runtime/input.scm[14.19], runtime/intrpt.scm[14.22], runtime/io.scm[14.54], runtime/krypt.scm[1.8], runtime/kryptdum.scm[1.2], runtime/lambda.scm[14.14], runtime/lambdx.scm[14.8], runtime/list.scm[14.23], runtime/load.scm[14.51], runtime/make.scm[14.63], runtime/msort.scm[14.6], runtime/ntdir.scm[1.2], runtime/ntprm.scm[1.25], runtime/numint.scm[1.6], runtime/numpar.scm[14.17], runtime/option.scm[14.36], runtime/optiondb.scm[1.5], runtime/ordvec.scm[1.2], runtime/os2ctype.scm[1.3], runtime/os2dir.scm[1.5], runtime/os2graph.scm[1.14], runtime/os2prm.scm[1.38], runtime/os2winp.scm[1.15], runtime/output.scm[14.17], runtime/packag.scm[14.28], runtime/parse.scm[14.30], runtime/partab.scm[14.5], runtime/pathnm.scm[14.32], runtime/poplat.scm[14.4], runtime/port.scm[1.11], runtime/pp.scm[14.39], runtime/prgcop.scm[1.6], runtime/process.scm[1.22], runtime/prop1d.scm[14.6], runtime/prop2d.scm[14.3], runtime/qsort.scm[14.4], runtime/queue.scm[14.4], runtime/random.scm[14.18], runtime/rbtree.scm[1.6], runtime/record.scm[1.28], runtime/recslot.scm[1.4], runtime/rep.scm[14.52], runtime/rgxcmp.scm[1.109], runtime/runtime.cbf[1.3], runtime/runtime.pkg[14.300], runtime/runtime.sf[14.13], runtime/savres.scm[14.30], runtime/scan.scm[14.6], runtime/scode.scm[14.16], runtime/scomb.scm[14.16], runtime/sdata.scm[14.3], runtime/sfile.scm[14.20], runtime/site.scm.dos[1.14], runtime/site.scm.unix[1.15], runtime/socket.scm[1.13], runtime/starbase.scm[1.13], runtime/stream.scm[14.12], runtime/string.scm[14.17], runtime/strnin.scm[14.5], runtime/strott.scm[14.5], runtime/strout.scm[14.9], runtime/symbol.scm[1.4], runtime/sysclk.scm[14.4], runtime/sysmac.scm[14.3], runtime/system.scm[14.13], runtime/thread.scm[1.24], runtime/tscript.scm[1.2], runtime/ttyio.scm[1.6], runtime/tvector.scm[1.2], runtime/udata.scm[14.19], runtime/uenvir.scm[14.38], runtime/uerror.scm[14.45], runtime/unpars.scm[14.46], runtime/unsyn.scm[14.20], runtime/unxdir.scm[14.11], runtime/unxprm.scm[1.51], runtime/unxpth.scm[14.25], runtime/uproc.scm[1.11], runtime/urtrap.scm[14.5], runtime/usrint.scm[1.16], runtime/utabs.scm[14.13], runtime/vector.scm[14.12], runtime/version.scm[14.176], runtime/where.scm[14.11], runtime/wind.scm[14.6], runtime/wrkdir.scm[14.8], runtime/wttree.scm[1.10], runtime/x11graph.scm[1.48], runtime/xeval.scm[1.6], runtime/ystep.scm[1.3], sf/butils.scm[4.10], sf/cgen.scm[4.4], sf/chtype.scm[4.3], sf/copy.scm[4.5], sf/emodel.scm[4.4], sf/free.scm[4.3], sf/gconst.scm[4.23], sf/gimprt.scm[4.2], sf/lsets.scm[4.3], sf/make.scm[4.33], sf/object.scm[4.9], sf/pardec.scm[4.11], sf/pthmap.scm[4.5], sf/reduct.scm[4.10], sf/sf.cbf[1.3], sf/sf.pkg[4.11], sf/sf.sf[4.8], sf/subst.scm[4.16], sf/table.scm[4.5], sf/tables.scm[4.3], sf/toplev.scm[4.15], sf/usicon.scm[4.4], sf/usiexp.scm[4.39], sf/xform.scm[4.9], sicp/compat.scm[1.8], sicp/genenv.scm[1.3], sicp/graphics.scm[1.5], sicp/sbuild.scm[1.5], sicp/stream.scm[1.2], sicp/strmac.scm[1.2], sicp/studen.scm[1.10], sos/class.scm[1.9], sos/compile.scm[1.3], sos/ed-ffi.scm[1.2], sos/instance.scm[1.8], sos/load.scm[1.5], sos/macros.scm[1.9], sos/method.scm[1.11], sos/microbench.scm[1.2], sos/printer.scm[1.2], sos/slot.scm[1.7], sos/sos.pkg[1.8], swat/scheme/swat.sf[1.3], wabbit/load.scm[1.3], wabbit/wabbit.cbf[1.2], wabbit/wabbit.pkg[1.2], wabbit/wabbit.scm[1.2], wabbit/wabbit.sf[1.3], win32/clipbrd.scm[1.5], win32/dib.scm[1.3], win32/dibutils/dibutils.c[1.4], win32/dibutils/dibutils.def[1.3], win32/dibutils/dibutils.h[1.4], win32/dibutils/makefile.msc[1.3], win32/dibutils/makefile.wcc[1.3], win32/ffimacro.scm[1.3], win32/graphics.scm[1.16], win32/make.scm[1.6], win32/module.scm[1.4], win32/protect.scm[1.3], win32/wf_user.scm[1.10], win32/win32.cbf[1.3], win32/win32.pkg[1.11], win32/win32.sf[1.4], win32/win_ffi.scm[1.6], win32/wt_user.scm[1.4]: Change copyright to GPL. * compiler/rtlbase/rtlty1.scm[4.22], microcode/ppband.c[9.48]: Unknown changes by Stephen Adams. * compiler/machines/spectrum/compiler.pkg[1.49]: Enable disassembler. 1998-12-31 Chris Hanson * edwin/snr.scm[1.49]: Don't stop news-article iteration for articles that are no longer available; continue the iteration. * edwin/edwin.pkg[1.230], edwin/nntp.scm[1.21], edwin/snr.scm[1.48]: Add ability to specify a proxy for a NNTP server. 1998-12-29 Chris Hanson * edwin/edwin.pkg[1.229], edwin/edwin.pkg[1.228], edwin/nntp.scm[1.20], edwin/snr.scm[1.47]: Implement variable news-group-cache-policy to control disk cacheing of news-group information. * edwin/edwin.pkg[1.227], edwin/snr.scm[1.46]: Change news-group formatting once more -- this time to give the author's name a constant amount of space and expand the subject to fill any remaining space. 1998-12-25 Chris Hanson * edwin/buffer.scm[1.170], edwin/bufout.scm[1.10], edwin/snr.scm[1.45]: Change news-group-truncate-subject variable to allow truncation proportional to the width of the buffer. Define new procedures BUFFER-X-SIZE and MARK-X-SIZE. 1998-12-17 Chris Hanson * edwin/info.scm[1.132]: Fix typo in info-directory-list documentation string. 1998-12-09 Chris Hanson * edwin/filcom.scm[1.197], edwin/modefs.scm[1.152]: Implement M-x insert-filename. 1998-12-04 Chris Hanson * compiler/fgopt/closan.scm[4.17]: Fix bug: under specific conditions the closure analyzer could attempt to "undrift" a block to be a descendant of another block that was already its ancestor. This resulted in a SIGSEGV. The bug is fixed, and an error check inserted that will provide a more reasonable error message should something similar happen. * edwin/prompt.scm[1.173]: Fix bug: under some circumstances a null completion message was being echoed in the minibuffer. 1998-11-23 Chris Hanson * runtime/ntprm.scm[1.24], runtime/os2prm.scm[1.37]: Change USER-HOME-DIRECTORY to generate an error if it can't find the home directory. This is what the unix version of this procedure does. The reason for this change is that it will allow files whose names begin with "~" to be referenced. Such files are commonly generated by some Windows installation programs. 1998-11-18 Chris Hanson * edwin/filcom.scm[1.196], edwin/unix.scm[1.87], edwin/unix.scm[1.86]: Eliminate another file error in prompting. * edwin/intmod.scm[1.94]: Eliminate mistaken extra binding for C-c C-u in interaction mode. * edwin/filcom.scm[1.195], edwin/prompt.scm[1.172], edwin/snr.scm[1.44], edwin/utils.scm[1.44]: Add additional argument to PROMPT-FOR-COMPLETED-STRING that controls whether the completion is case-insensitive; change callers to pass this extra argument. Redefine STRING-GREATEST-COMMON-PREFIX to be case-sensitive, define STRING-GREATEST-COMMON-PREFIX-CI, and change callers to use the appropriate version. * edwin/filcom.scm[1.194]: Eliminate various I/O errors that can occur during completion. 1998-11-05 Chris Hanson * microcode/x11graph.c[1.40]: Special-case handling when the virtual/physical coordinate translation uses a slope of zero or infinity. 1998-11-03 Chris Hanson * edwin/schmod.scm[1.43]: Do case-sensitive completion if *PARSER-CANONICALIZE-SYMBOLS?* is false. * runtime/option.scm[14.35]: Guarantee that *PARSER-CANONICALIZE-SYMBOLS?* is #T when loading option files. * runtime/x11graph.scm[1.47]: Change X-GRAPHICS/READ-BUTTON to signal an error when the DELETE-WINDOW event is received. 1998-10-23 Chris Hanson * edwin/shell.scm[1.18]: Fix typo. * edwin/dosfile.scm[1.21]: Fix formatting. * edwin/shell.scm[1.17]: When completing commands, don't insert executable suffixes. * edwin/dosfile.scm[1.20], edwin/edwin.pkg[1.226], edwin/unix.scm[1.85]: Implement OS/EXECUTABLE-PATHNAME-TYPES. Modify DOS/FIND-PROGRAM to look in the same directory as the Scheme executable (Win32 only). * microcode/sysprim.c[9.45], microcode/sysprim.c[9.44], microcode/sysprim.c[9.43]: Implement SCHEME-PROGRAM-NAME primitive. This returns (argv[0]). * win32/wf_user.scm[1.9]: Implement GET-MODULE-FILE-NAME. * edwin/dos.scm[1.47]: Adjust DOS/WINDOWS-TYPE to recognize Win98. 1998-10-22 Chris Hanson * microcode/ntgui.c[1.24]: Improve command-line parser to recognize double-quoted arguments. This is necessary to support quoted long filenames as arguments. 1998-10-21 Chris Hanson * microcode/nttop.c[1.28]: Work around unpleasant behavior in Windows 98. * microcode/nttop.c[1.27]: Fix typo. * microcode/nttop.c[1.26]: Use GetVersionEx instead of GetVersion. The newer call provides more detailed information and will recognize newer OS versions. 1998-10-20 Chris Hanson * edwin/dosfile.scm[1.19]: Generalize shell-prompt-pattern to allow standard Windows shell prompt. 1998-10-19 Chris Hanson * microcode/os2top.c[1.16.1.1]: Update version-string code to recognize Warp 4.0 encoding. * runtime/ntprm.scm[1.4.1.1]: Recognize FAT32 file-system type and treat it as equivalent to VFAT. * edwin/editor.scm[1.240.1.1], edwin/edwin.pkg[1.184.1.1]: Implement "-edit" command-line option in 7.4 release. 1998-10-18 Chris Hanson * microcode/version.h[11.151.1.5], runtime/make.scm[14.57.1.1], runtime/runtime.pkg[14.266.1.2], runtime/runtime.pkg[14.266.1.1]: Changes to integrate "stream.scm" revision 14.11 into the 7.4 release. 1998-10-14 Chris Hanson * edwin/info.scm[1.131]: Make sure that only namestrings are recorded in INFO-HISTORY. 1998-09-08 Chris Hanson * edwin/snr.scm[1.43]: Further extend M-x news-output-article and M-x news-output-article-to-rmail-file so that they accept a prefix argument and operate on the next several articles. * edwin/comtab.scm[1.68]: Fix bug: when defining a command that is bound to a lower-case letter, don't define the corresponding upper-case letter unless it is undefined in the entire comtab chain. Previously, the code only looked at the current comtab and ignored the ancestor comtabs. 1998-09-07 Chris Hanson * edwin/snr.scm[1.42]: * Fix bug: commands that update group message-count did not work in "all-groups" and "new-groups" buffers. * Extend M-x news-output-article and M-x news-output-article-to-rmail-file so that they work in news-group buffers as well as news-article buffers. 1998-09-06 Chris Hanson * runtime/ntprm.scm[1.23]: Implement FILE-EXECUTABLE?, used by command-completion code in Edwin. Rearrange file somewhat to make it better correspond to OS/2 file. 1998-08-31 Chris Hanson * edwin/loadef.scm[1.34]: Fix typo. * edwin/webster.scm[1.2]: Fix compiler warning. * edwin/decls.scm[1.61], edwin/ed-ffi.scm[1.44], edwin/edwin.pkg[1.225], edwin/loadef.scm[1.33]: Implement Webster commands. * runtime/socket.scm[1.12]: Use new primitive to map given port numbers to network order. * microcode/ntsock.c[1.4], microcode/os2sock.c[1.8], microcode/os2sock.c[1.7], microcode/pruxsock.c[1.15], microcode/uxsock.c[1.17], microcode/uxsock.h[1.7]: Implement primitive to map socket port numbers from host to network order. 1998-08-30 Chris Hanson * edwin/shell.scm[1.16]: Fix two bugs in command completion: (1) completions list contained wrong entries in some circumstances, and (2) command-completion procedure not returning #T in all circumstances that it did completion. * edwin/dosfile.scm[1.18], edwin/shell.scm[1.15], edwin/unix.scm[1.84]: Implement completion of commands. * edwin/comint.scm[1.27]: Redefine COMINT-DYNAMIC-COMPLETE so that it tries a list of completion procedures, as in Emacs 19. Fix bug in COMINT-LINE-START: used current value of COMINT-PROMPT-REGEXP rather than the one for the buffer being examined. * edwin/prompt.scm[1.171]: Erase message when inserting completion. That way, STANDARD-COMPLETION consistently writes something in the message area, eradicating any previous message. 1998-07-31 Chris Hanson * microcode/x11base.c[1.72]: If the BackSpace keysym is received, and XLookupString has translated it into ASCII backspace, substitute ASCII rubout instead. 1998-07-25 Chris Hanson * microcode/s/Attic/linux.h[1.16], microcode/s/Attic/linux.h[1.15]: Add comment regarding definition of TERMCAP_FILES with recent versions of ncurses. * microcode/uxfs.c[1.16]: Explicitly code the Linux superblock magic constants in this file. The previous trick of reading various kernel header files no longer works when linking with glibc2, because there are symbol conflicts between the kernel and glibc2. 1998-07-20 Chris Hanson * microcode/Attic/config.h[9.99]: Must call mprotect to set the "execute" bit on Scheme's memory, so compiled code can run. Also, implement mechanism to use mprotect to flush the cache (which is disabled by default). * microcode/missing.c[9.31], microcode/psbmap.h[9.42]: Include "oscond.h" to get definition for _IRIX. * microcode/cmpauxmd/mips.m4[1.14], microcode/cmpintmd/mips.h[1.22]: Fix copyright date. * microcode/Attic/oscond.h[1.25], microcode/fasload.c[9.85], microcode/fasload.c[9.84], microcode/option.c[1.47], microcode/option.c[1.46], microcode/option.c[1.37.1.1], microcode/regex.c[1.18], microcode/terminfo.c[1.2], microcode/ux.h[1.70], microcode/ux.h[1.60.1.2], microcode/ux.h[1.69], microcode/uxio.c[1.42], microcode/uxtrap.h[1.27]: Changes for IRIX 6.x. 1998-07-19 Chris Hanson * microcode/cmpauxmd/mips.m4[1.13]: More recent MIPS processors (and the corresponding assemblers) require that the stack pointer always be a multiple of 8. Change the code to make that so. Also, work around an assembler bug having to do with ".globl" and the "la" pseudo-instruction. * microcode/Attic/config.h[9.83.1.1], microcode/cmpintmd/mips.h[1.21]: Must call mprotect to set the "execute" bit on Scheme's memory, so compiled code can run. Also, implement mechanism to use mprotect to flush the cache (which is disabled by default). * microcode/Attic/oscond.h[1.15.1.1], microcode/bintopsb.c[9.63.1.1], microcode/bintopsb.c[9.68], microcode/option.c[1.35.1.1], microcode/regex.c[1.14.1.1], microcode/unxutl/Attic/config[1.30], microcode/unxutl/Attic/ymkfile[1.87.1.1], microcode/ux.h[1.60.1.1], microcode/uxio.c[1.33.1.1], microcode/uxtrap.h[1.23.1.1]: Changes for IRIX 6.x. 1998-07-09 Chris Hanson * win32/clipbrd.scm[1.4], win32/clipbrd.scm[1.3], win32/make.scm[1.5], win32/wf_user.scm[1.8]: Fix bug in clipboard implementation. 1998-06-29 Chris Hanson * edwin/javamode.scm[1.2]: Fix typo. * edwin/decls.scm[1.60], edwin/dosfile.scm[1.17], edwin/ed-ffi.scm[1.43], edwin/edwin.ldr[1.62], edwin/edwin.pkg[1.224], edwin/unix.scm[1.83]: Add Java mode. * edwin/cinden.scm[1.18]: Various changes to handle C++/Java "//" comments. 1998-06-28 Chris Hanson * edwin/syntax.scm[1.82]: Work around compiler bug. * edwin/cinden.scm[1.17], edwin/edwin.pkg[1.223]: Export new procedure C-COMPUTE-INDENTATION for use by Java mode. * edwin/syntax.scm[1.81], edwin/syntax.scm[1.80]: Allow MAKE-SYNTAX-TABLE to take an argument, which if given is the table to copy. 1998-06-21 Chris Hanson * edwin/nntp.scm[1.19]: If NNTP server closes connection, attempt to notice this and recover by reopening the connection. Previously, we just signalled an error and the user had to manually reopen. Problem: the specific error code to be returned by the server in this situation is not specified in the RFC, so we must determine the value empirically. * edwin/intmod.scm[1.93]: When flushing output, recognize ";Quit!". 1998-06-20 Chris Hanson * edwin/snr.scm[1.41]: Fix fencepost type error. 1998-06-18 Chris Hanson * microcode/uxfs.c[1.15], microcode/uxfs.c[1.14], runtime/unxprm.scm[1.50]: Add code to detect NTFS file system under Linux. 1998-06-07 Chris Hanson * cref/toplev.scm[1.11]: Add usual-integrations declaration to constructor/loader definitions to eliminate compiler warning. * runtime/parse.scm[14.29]: Fix quoting problem associated with #!aux parsing. * edwin/intmod.scm[1.92]: Implement C-c C-l, C-c C-o, and C-c C-u as in shell buffers. * edwin/comint.scm[1.26]: Generalize code that refers to process mark so that it can be used in an inferior-repl buffer. In coming-flush-output, don't flush output unless there is some. * edwin/schmod.scm[1.42]: Fix bug: C-u M-A was not inserting args when one of the #! tokens appeared in the argument list. 1998-06-01 Chris Hanson * edwin/intmod.scm[1.91]: Use in-buffer prompt to handle errors in the REPL buffer. The modeline prompt was very intrusive and couldn't be aborted out of. The new mechanism reads input exactly as the in-buffer debugger does, and can be aborted. * edwin/evlcom.scm[1.58]: Most of the time, it's useful to use the global environment if a particular package isn't loaded. 1998-05-31 Chris Hanson * runtime/dosprm.scm[1.40], runtime/ntprm.scm[1.22], runtime/os2prm.scm[1.36], runtime/unxprm.scm[1.49]: Change TEMPORARY-FILE-PATHNAME to allow a directory to be specified. 1998-05-18 Chris Hanson * sf/xform.scm[4.8]: Fix thinko. * sf/pardec.scm[4.10], sf/pthmap.scm[4.4]: Fix pagination. * sf/xform.scm[4.7]: Add warning to be printed when the file being syntaxed doesn't have USUAL-INTEGRATIONS. Fix pagination. 1998-05-05 Chris Hanson * runtime/uenvir.scm[14.37]: Fix bugs in handling of ENVIRONMENT-ASSIGNABLE? and ENVIRONMENT-ASSIGN! that are the analogs of the bug in ENVIRONMENT-LOOKUP that was fixed in the previous revision. * runtime/uenvir.scm[14.36]: Fix bug: ENVIRONMENT-LOOKUP did not look at parent environments if the environment being operated on was a compiled-code environment. Instead, it bombed with a type error. 1998-05-04 Chris Hanson * runtime/rbtree.scm[1.5], runtime/runtime.pkg[14.299]: Add operations to read or delete the min/max elements of a tree. 1998-05-01 Chris Hanson * edwin/evlcom.scm[1.57]: Change the test used to determine if SCHEME-ENVIRONMENT is being set to a package name. 1998-04-30 Chris Hanson * runtime/Attic/syntax.scm[14.30]: Fix ENVIRONMENT-SYNTAX-TABLE so that it works for compiled-code environments. * edwin/evlcom.scm[1.56]: Don't convert package names to environments when binding the SCHEME-ENVIRONMENT buffer variable -- this is a screw when reloading packages. Also, use new ENVIRONMENT-SYNTAX-TABLE to determine the default syntax table to be used when evaluating. * edwin/edwin.ldr[1.61]: Use new mechanism to bind syntax tables to environments. * runtime/Attic/syntax.scm[14.29], runtime/global.scm[14.50], runtime/global.scm[14.49], runtime/runtime.pkg[14.298]: Add mechanism to associate syntax tables with environments. * runtime/msort.scm[14.5], runtime/qsort.scm[14.3], runtime/runtime.pkg[14.297]: Change sort routines so that both merge and quick sort can be loaded at the same time. As before, SORT and SORT! default to merge sort. 1998-04-28 Chris Hanson * sos/macros.scm[1.8]: Fix bug: internal definitions weren't being handled by DEFINE-METHOD. 1998-04-18 Chris Hanson * microcode/prntenv.c[1.7]: Add primitive WIN32-VIRTUAL-QUERY, which is a direct interface to the Win32 VirtualQuery API call. This is very useful for examining Scheme's address space. * microcode/memmag.h[1.6], microcode/ntgui.c[1.23], microcode/nttop.c[1.25]: Add mechanism to reserve the largest available block of memory below 0x04000000 at the earliest possible moment. This maximizes the amount of memory available for Scheme's heap. Unfortunately, it still isn't very much space compared to other platforms, and under Visual C++ it isn't even as much as that provided by Watcom C/C++. I don't know why this is so poor, or whether there is anything to be done about it. * microcode/ntutl/makefile[1.22]: Use external debugging info (-Zi) and map the program text above 0x04000000 so that it minimally interferes with Scheme's heap. * microcode/Attic/config.h[9.98], microcode/cmpauxmd/i386.m4[1.48], microcode/nttrap.c[1.16]: Define WINNT_RAW_ADDRESSES -- alternative isn't used any longer and has a small time penalty. 1998-04-16 Chris Hanson * microcode/ntscreen.c[1.35]: Make screen_y_extra patch more clever so that it works right under Watcom and Visual C++. * microcode/ntutl/makefile[1.21]: Add resources to executables. * microcode/ntscreen.c[1.34]: Fix two bugs under Visual C++: System-menu icon was wrong, and window height was off by one pixel. * microcode/ntgui.c[1.22]: Tweak inline assembly code for Visual C++. * microcode/ntutl/makefile[1.20]: Changes to support crypto/gdbm DLLs. 1998-04-14 Chris Hanson * microcode/Attic/oscond.h[1.24], microcode/Attic/posixtyp.h[1.15], microcode/ansidecl.h[1.6], microcode/intprm.c[1.8], microcode/ntfile.c[1.12], microcode/ntgui.c[1.21], microcode/ntio.c[1.21], microcode/ntproc.c[1.7], microcode/ntscreen.c[1.33], microcode/ntsock.c[1.3], microcode/ntutl/makefile[1.19], microcode/option.c[1.45], microcode/outf.c[1.10], microcode/prntio.c[1.9], microcode/utils.c[9.73]: Changes to get microcode working when compiled with Microsoft Visual C++ version 5.0. 1998-04-10 Chris Hanson * microcode/ntfs.c[1.23]: Don't signal error when user requests a DIRECTORY-READ on a pattern that matches no files. 1998-04-01 Chris Hanson * runtime/make.scm[14.62], runtime/runtime.pkg[14.296], runtime/stream.scm[14.11]: Be more aggressive about dropping pointers to streams when traversing them. Provide more accurate error messages for malformed streams. 1998-03-31 Chris Hanson * runtime/stream.scm[14.10]: Eliminate numerous brain-damaged references (mea culpa!) to the head of a stream in procedures that map down the stream. Fix a premature-dereference bug in STREAM-MAP. * runtime/random.scm[14.17]: Fix thinko -- random-state objects must have unparser. 1998-03-29 Chris Hanson * microcode/os2fs.c[1.9]: Don't signal error when user requests a DIRECTORY-READ on a pattern that matches no files. 1998-03-20 Chris Hanson * microcode/uxtrap.h[1.26]: Change name of Linux sigcontext structure, because RedHat defines a conflicting structure in their newer releases. 1998-03-19 Chris Hanson * sos/macros.scm[1.7]: Implement SEPARATOR option to DEFINE-CLASS. 1998-03-11 Chris Hanson * edwin/info.scm[1.130]: Reset tag-table locations after reading dir file. 1998-03-09 Chris Hanson * edwin/dosfile.scm[1.16]: Fix bug: illegal auto-save filenames were being generated on NTFS and VFAT. * runtime/dospth.scm[1.38]: Restrict parsing of device so that it requires a single letter. * runtime/runtime.pkg[14.295]: Export STRING->CHAR-SET, added in 1995 but obviously never used. 1998-03-08 Chris Hanson * edwin/intmod.scm[1.90]: Add ability to prompt for inferior-REPL errors just as is done for ordinary buffer evaluation. Make this prompting the default. * edwin/debug.scm[1.43]: Fix thinko in previous change. * edwin/artdebug.scm[1.25], edwin/debug.scm[1.42], edwin/editor.scm[1.243], edwin/edwin.pkg[1.222], edwin/evlcom.scm[1.55]: Change interface procedure DEBUG-SCHEME-ERROR so that it returns if the user opts not to enter the debugger. Also, do a better job of presenting the error message to the user when asking whether to start the debugger. * edwin/bufcom.scm[1.104], edwin/debuge.scm[1.52], edwin/hlpcom.scm[1.108], edwin/info.scm[1.129], edwin/prompt.scm[1.170], edwin/regcom.scm[1.21], edwin/vc.scm[1.29]: Add argument to callers of POP-UP-TEMPORARY-BUFFER so that they can pass properties through. 1998-03-07 Chris Hanson * edwin/evlcom.scm[1.54]: Tweak error-reporting mechanism to make it more reliable. Trouble is that this isn't the right place for it -- it should be integrated into the debugger interface. 1998-03-04 Chris Hanson * runtime/runtime.pkg[14.294]: Export (inexplicably missing) stream procedures. 1998-03-02 Chris Hanson * edwin/intmod.scm[1.89]: Add missing documentation for various commands. * edwin/schmod.scm[1.41]: Add documentation for c-m-i and m-A. 1998-02-23 Chris Hanson * edwin/nntp.scm[1.18]: Add stupid mechanism to break cycles in reference graphs. This doesn't try to do a good job -- it just breaks them at the point where they are discovered. After having used this program for over a year, the cycle I just ran across was the first, out of perhaps 100,000 messages or more, so this is an unusual occurrence. 1998-02-22 Stephen Adams * compiler/machines/i386/lapopt.scm[1.5]: The previous change caused LAPOPT to take huge amounts of time (65% of compile time). Reverted to old matcher and patterns (about 5%) and added a hash table dispatch to make LAPOPT's time insignificant (now <1%). 1998-02-22 Chris Hanson * runtime/Attic/macros.scm[1.2], runtime/rep.scm[14.51], runtime/runtime.pkg[14.293]: Eliminate BKPT macro in favor of procedure. The macro used (THE-ENVIRONMENT), which screwed the compiler. The procedure uses the environment of the first subproblem of the continuation of the call, which in many cases is the same thing. The effect of the old BKPT macro can still be achieved by writing (breakpoint-procedure (the-environment) ...) 1998-02-21 Stephen Adams * compiler/rtlgen/opncod.scm[4.67]: Changed open-coding of range checks to use unsigned comparison which checks the high and low limits in one operation. Range checks without an upper bound generate an INDEX-FIXNUM check. Open coding of INDEX-FIXNUM still needs to be implemented on the MIPS. 1998-02-19 Stephen Adams * compiler/back/lapgn1.scm[4.17], compiler/machines/C/lapgen.scm[1.11], compiler/machines/alpha/lapgen.scm[1.5], compiler/machines/bobcat/lapgen.scm[4.50], compiler/machines/i386/lapgen.scm[1.26], compiler/machines/i386/rules3.scm[1.33], compiler/machines/mips/lapgen.scm[1.15], compiler/machines/sparc/lapgen.scm[1.2], compiler/machines/spectrum/lapgen.scm[4.47], compiler/machines/vax/lapgen.scm[4.15]: There was a subtle problem with the interrupt check determining code. The old code was lazy about searching the rgraph to determine if entry points and exit points were leaf-like. It explored the whole tree when when it found some entry RTL. This is a problem in the case of expressions since expressions have no distinguished entry RTL. Thus LAP was generated for some expression bblocks before the search took place. This is a problem because the LAP instructions replace the RTL instructions, and the RTL is needed to determine the interrupt checks. The whole compiler staged only because type-checking is turned off by default. The RINST-INSN field is a (vector-ref 0), which, when unchecked, fortuitously happened to load the CDR of the LAP, which then proceeded to gracefully fail the RTL predicates. The solution is to introduce a PRE-LAPGEN-ANALYSIS procedure to to machine dependent analysis immediately prior to LAP generation. The analysis for the i386 back end does the original analysis. The other back ends do nothing. * compiler/back/regmap.scm[4.13]: Fixed abstraction violations where '() was being used instead of (LAP). * compiler/machines/i386/rulfix.scm[1.30]: Improved patterns for (fix:* n 2) and (fix:lsh n -1) 1998-02-18 Stephen Adams * compiler/machines/i386/rulflo.scm[1.21]: Improved search for target register - stronger preference for ST(0) as result of unary or binary flonum operations. Load flonum constants pc-relative rather than (double indirect) via constants block. Load flonum constants as 32 bit constants if possible since this avoids mis-alignment penalty. * compiler/machines/i386/lapgen.scm[1.25], compiler/machines/i386/rulrew.scm[1.13]: Changes to improve flonum code. Prefer ST(0) over other registers as a target for flonum operations. - lapgen: sort-machine-registers - rulflo: improved search for target register - rulrew: accept any flonum constants, not just 0.0 and 1.0 * compiler/machines/i386/rulfix.scm[1.29]: Better rules for (fix:lsh ? ) 1998-02-17 Stephen Adams * compiler/machines/i386/dassm3.scm[1.5]: Added missing opcode: FADDP 1998-02-16 Chris Hanson * runtime/runtime.pkg[14.292], runtime/thread.scm[1.23]: Change mechanism used to signal the no-current-thread error. Previous mechanism tried to directly signal the error, which results in divergence. New mechanism sends the error to the console thread, or ignores the error if there is no console thread. Modify blocking code to catch any errors that occur while blocked. These errors are being signalled in the no-current-thread state, and must be resignalled to the console thread (again, they are ignored if there is no console thread). Modify several thread operations to be no-ops in the no-current-thread state, rather than signalling an error. Implement new procedure CONSOLE-THREAD. * compiler/machines/i386/rules3.scm[1.32], compiler/machines/i386/rules3.scm[1.31]: Fix apparently irrelevant thinko. 1998-02-14 Stephen Adams * compiler/machines/i386/lapopt.scm[1.4]: Generalized patterns for OR and AND. * compiler/machines/i386/rules3.scm[1.30]: Merged in changes that eliminate interrupt checks in leaf-like procedures. * runtime/chrset.scm[14.7]: zero? -> fix:zero? 1998-02-13 Stephen Adams * runtime/chrset.scm[14.6]: Change arithmetic in loops to fixnum arithmetic. * runtime/char.scm[14.9]: Update CHAR-CODE-LIMIT and CHAR-INTEGER-LIMIT for wide characters. This should have been part of the previous update, but these constants are unused, so no harm done. 1998-02-13 Chris Hanson * edwin/vc.scm[1.28]: Fix two bugs that occur when using revisions off the main branch. * microcode/s/Attic/linux.h[1.7.1.3]: Integrate static-linking changes from revision 1.14. 1998-02-12 Chris Hanson * edwin/sendmail.scm[1.42]: Fix thinko in previous change. * compiler/machines/C/cout.scm[1.20], edwin/edwin.pkg[1.221], edwin/sendmail.scm[1.41], runtime/runtime.pkg[14.291], runtime/savres.scm[14.29], runtime/system.scm[14.12], runtime/system.scm[14.11], runtime/system.scm[14.10]: Eliminate "system" datatype. Replace it by a simpler "subsystem identification" mechanism. * runtime/system.scm[14.9]: Change ADD-SYSTEM! to replace an existing entry of the same name. * compiler/machines/sparc/make.scm[1.2]: Use common loader for compiler. * 6001/make.scm[15.28], compiler/base/make.scm[4.108], cref/make.scm[1.16], edwin/make.scm[3.93], pcsample/load.scm[1.4], runtime/version.scm[14.175], sf/make.scm[4.32], sicp/sbuild.scm[1.4], sos/load.scm[1.4], swat/scheme/load.scm[1.3], wabbit/load.scm[1.2], win32/make.scm[1.4]: Change to use ADD-IDENTIFICATION! rather than ADD-SYSTEM!. 1998-02-11 Stephen Adams * win32/win_ffi.scm[1.5]: Fix bug where char* was refusing strings. 1998-02-11 Chris Hanson * runtime/make.scm[14.61], runtime/packag.scm[14.27], runtime/runtime.pkg[14.290]: Undo previous change, but add global variable *ALLOW-PACKAGE-REDEFINITION?* that, if true, allows packages to be redefined. Intent is that this variable will be fluid-bound by programs that want to be reloadable. * edwin/tterm.scm[1.27]: Add code to map the 8th bit of an incoming character to the meta bit. * runtime/packag.scm[14.26]: Change default: PACKAGE/ADD-CHILD! previously allowed redefinition of a package child only when the optional argument was true. Now, redefinition is always allowed _unless_ the optional argument is true. Additionally, when a package is redefined, all of its child packages are deleted. The motivation for this change is to allow reloading of software subsystems that use the package abstraction. Previously, once such a subsystem was loaded, it could not be reloaded without restarting Scheme. 1998-02-01 Chris Hanson * edwin/unix.scm[1.82]: Rewrite OS/BUFFER-BACKUP-PATHNAME to use the algorithm from "dosfile.scm". This fixes the bug that caused compressed backup files to be ignored when computing the name of a numeric backup file. * microcode/ntfs.h[1.3]: Accept a wider range of error codes as valid reasons why a given file might be inaccessible. * microcode/ntfs.c[1.22], microcode/nttrap.c[1.15]: Disable critical-error and GPF pop-up boxes. * 6001/make.scm[15.27], win32/make.scm[1.3]: Patch loader so that debugging info will work on other systems. * 6001/floppy.scm[1.23]: Move with-saved-configuration to Edwin proper. This will eliminate unassigned-variable bug in LOAD-PS-COPY-FILE when running in contexts where "floppy.scm" isn't loaded. * edwin/buffrm.scm[1.52], edwin/edwin.pkg[1.220]: Implement mechanism to save a screen configuration for a given dynamic extent. 1998-01-30 Chris Hanson * win32/graphics.scm[1.15]: Don't activate graphics windows when they are created. * win32/graphics.scm[1.14]: Implement workaround for fatal Windows NT bug. The bug crashes NT 4.0 and can be recreated by creating a number of graphics windows and then closing them with their close buttons. The workaround disables the close button. 1998-01-29 Chris Hanson * edwin/edwin.pkg[1.219], edwin/xterm.scm[1.55]: Implement procedure to return the size of the display root window. * microcode/x11base.c[1.71]: Add new primitive to return the size of the root window of a display. 1998-01-23 Chris Hanson * edwin/info.scm[1.128]: Finish previous change so that no reference is made to the Edwin info directory at the time that the band is made. * 6001/pic-imag.scm[1.9]: Change method used to determine whether image data is stored in a string or a vector: don't use image depth, instead examine contents of gray map to see if pixel values fit in string. * 6001/picture.scm[1.27]: Fix bug: in new image design, gray map must always be a vector. * 6001/make.scm[15.26]: Don't load "floppy" unless running under HP-UX. * 6001/floppy.scm[1.22]: Change subprocess stuff to allow redisplay. * 6001/edextra.scm[1.26]: Reconditionalize decision to use the hairy floppy stuff so that it only happens on HP-UX. 1998-01-22 Chris Hanson * 6001/floppy.scm[1.21]: Fix random bug caused by changes in revision 1.16. * 6001/floppy.scm[1.20]: Fix problem caused by incorrect assumption that universal time is the same as unix file time. 1998-01-20 Stephen Adams * edwin/calias.scm[1.17], edwin/modefs.scm[1.151], microcode/ntscreen.c[1.32], microcode/ntscreen.h[1.16], microcode/object.h[9.48], runtime/char.scm[14.8]: Changes for International keyboards on win32 systems. ntscreen changed to work better with international keyboards. The changes peek into the event queue to see how the key presses have been translated into characters. Modifiers are also tracked to enable them to be detected in parallel with keyboard translations (so that modifier chords like C-M- are detected). Characters now have 16 bits of character code (instead of 7) to allow 8-bit ISO latin and Unicode characters. Strings are still based on 8-bit characters. Runtime changed to allow these `wide' characters to be written and read e.g. #\ Edwin modes changed to treat characters in the range 128-255 as normal alphabetic characters (to enable accented characters). 1998-01-20 Chris Hanson * 6001/edextra.scm[1.25]: Don't disable compressed and encrypted files. Info needs compressed files to do its job properly. * microcode/s/Attic/linux.h[1.14], microcode/unxutl/Attic/ymkfile[1.93]: Add conditionalizations to give more control over the linking of termcap and X11 files. * microcode/tterm.c[1.5]: Change call `tparam' so that it does not depend on a feature only available in GNU `tparam'. This is important on GNU/Linux because it allows us to statically link "ncurses". This has the added benefit that it allows the "ncurses" stuff to work correctly. Previously, when using "ncurses", the screen was scrambled so badly that it couldn't be used. This appears to be a consequence of the combination of GNU `tparam' with "ncurses". 1998-01-09 Chris Hanson * microcode/ntfs.c[1.21], microcode/ntfs.c[1.20]: Add code to dummy the file info for the root directory on Windows 95. 1998-01-08 Chris Hanson * edwin/print.scm[1.16], edwin/print.scm[1.15]: Modify Windows printing so that it works on Windows 95, which doesn't have the "print" program. * microcode/ntio.c[1.20]: Eliminate use of `GetHandleInformation', which is not implemented on Windows 95. Add conditionalized tracing code for input operations. * microcode/ntproc.c[1.6]: Add conditionalized code to trace process activity. * runtime/io.scm[14.53], runtime/io.scm[14.52], runtime/process.scm[1.21], runtime/runtime.pkg[14.289]: Fix bug in Windows 95: when a subprocess exits, close its I/O ports. This is necessary because our code can get into a state where it is trying to read from a subprocess pipe and needs to be told that the other end of the pipe was closed. This indication is supplied by Windows NT, but does not appear to work properly under Windows 95. * runtime/ntprm.scm[1.21]: Detect FAT32 file system and treat it the same as VFAT. 1998-01-05 Chris Hanson * microcode/x11graph.c[1.39]: Fix method used to compute the size of an image's data array. Previous method was little better than a guess -- and was wrong. New method is correct and uses advertised procedures to determine correct values. 1998-01-03 Chris Hanson * 6001/edextra.scm[1.24]: Implement command-line option to specify student directory. * edwin/info.scm[1.127]: Change how info-directory-list is initialized so that it always includes the distribution's directory. * edwin/dosfile.scm[1.15], edwin/edwin.pkg[1.218], edwin/info.scm[1.126], edwin/unix.scm[1.81], edwin/utils.scm[1.43]: Implement Info directory-merging mechanism like that of Emacs. This takes "dir" files from all of the directories in the Info directory list and merges them into a single "dir" buffer. 1997-12-30 Chris Hanson * edwin/dos.scm[1.46], edwin/dosfile.scm[1.14], edwin/os2.scm[1.42]: Change definition of DOS/DEFAULT-SHELL-FILE-NAME so that it is computed at run time rather than at build time. This is necessary because a band created on Windows NT can be used on Windows 95, and must have different values for each of these systems. * 6001/pic-imag.scm[1.8], 6001/picture.scm[1.26], 6001/picture.scm[1.25], 6001/picture.scm[1.24]: Install new X11 gray-map code that understands about high-color displays. * runtime/ntprm.scm[1.20]: Fix bug: CURRENT-HOME-DIRECTORY would signal an error when neither the home directory nor the user name was available. Now, it returns the root of the system drive instead. * edwin/eystep.scm[1.5]: Fix typo. 1997-12-29 Chris Hanson * microcode/ntfs.c[1.19]: Fix "stat" code to properly handle filenames ending in a backslash. This was working fine on NT, but apparently fails on '95. 1997-12-26 Chris Hanson * edwin/print.scm[1.14], edwin/print.scm[1.13]: Add code to provide printing on NT. 1997-12-23 Chris Hanson * 6001/edextra.scm[1.23], 6001/edextra.scm[1.22]: Add environment variable to specify the location of the 6.001 files. * edwin/editor.scm[1.242], edwin/edwin.pkg[1.217]: Add "-edit" command-line option to simplify starting editor. * runtime/ntprm.scm[1.19], runtime/ntprm.scm[1.18]: Add additional environment variable to check in order to find the Windows 95 system directory. 1997-12-11 Stephen Adams * sicp/compat.scm[1.7], sicp/graphics.scm[1.4]: Make graphics work for OS/2 and WIN32 as well as X. Update copyright. 1997-12-02 Stephen Adams * runtime/Attic/syntax.scm[14.28], runtime/lambda.scm[14.13]: Changed error report for duplicate names to explicitly mention the duplicated names. 1997-11-29 Chris Hanson * microcode/ntscreen.c[1.31]: Change font-name parsing code so that it will properly parse fonts whose names begin with a digit. 1997-11-20 Chris Hanson * edwin/edwin.pkg[1.216]: Add some missing packages to the Win32 implementation. * edwin/comint.scm[1.25], edwin/telnet.scm[1.13]: Define process filter to strip carriage-returns from the output of a process. Change COMINT-EXEC to start a buffer's process -before- the buffer's major mode is set, so that process filters can be defined in the mode hooks. * edwin/edwin.pkg[1.215], edwin/process.scm[1.53], edwin/telnet.scm[1.12]: Change interface to process-filter. 1997-11-19 Chris Hanson * edwin/process.scm[1.52], edwin/telnet.scm[1.11]: Change interface to process-filter. * win32/dibutils/makefile.wcc[1.2]: Add compiler flag that specifies to compile the object files for use in a DLL. Change optimization target from 486 to Pentium Pro. 1997-11-16 Chris Hanson * microcode/cmpauxmd/mips.m4[1.12]: Fix instruction that causes an assembler error on newer assemblers. 1997-11-13 Chris Hanson * edwin/nntp.scm[1.17]: Fix bugs relating to handling of messages whose bodies have been removed from the server. 1997-11-12 Chris Hanson * runtime/ntprm.scm[1.17], runtime/os2prm.scm[1.35]: Fix think-o. * runtime/ntprm.scm[1.16]: Fix code that determines system directory. My memory as to the relevant environment variable was faulty when I wrote this. * microcode/os2sock.c[1.6]: Final changes to previous change, to eliminate compiler warnings and other minor problems. * runtime/ntprm.scm[1.15], runtime/os2prm.scm[1.34]: Rewrite OS/2 and NT versions of CURRENT-USER-NAME, CURRENT-HOME-DIRECTORY, and USER-HOME-DIRECTORY to use the same heuristics in both systems. Improve the heuristics so that these procedures will work with a minimum number of environment bindings. 1997-11-11 Chris Hanson * runtime/ntprm.scm[1.14], runtime/ntprm.scm[1.13], runtime/os2prm.scm[1.33]: Signal error when unable to determine user name or home directory. * runtime/dospth.scm[1.37], runtime/unxpth.scm[14.24]: Reverse earlier decision: ignore errors that occur with "$" and "~" syntax in pathnames. 1997-11-06 Chris Hanson * edwin/sendmail.scm[1.40]: Fix typo. * edwin/sendmail.scm[1.39]: Eliminate compiler warnings. * edwin/sendmail.scm[1.38]: Place BCC field after any CC fields. 1997-11-04 Chris Hanson * edwin/edwin.pkg[1.214], edwin/sendmail.scm[1.37]: Implement direct SMTP mail transmission. This is for Windows systems, which don't have a sendmail daemon, but it can be used on any system that supports sockets. * edwin/nntp.scm[1.16], edwin/utils.scm[1.42]: Define SUBSTRING->NONNEGATIVE-INTEGER. * edwin/utils.scm[1.41]: Eliminate old and incompatible definition of READ-LINE. 1997-11-01 Chris Hanson * edwin/nntp.scm[1.15]: Use newly-extended OPEN-TCP-STREAM-SOCKET. * runtime/socket.scm[1.11], runtime/socket.scm[1.10]: Change OPEN-TCP-STREAM-SOCKET and OPEN-UNIX-STREAM-SOCKET to return one port instead of two, and to allow optional arguments to specify the buffer size and line translation. Increase the default buffer size to 4096 bytes. * runtime/io.scm[14.51]: Change default line translation for TCP stream sockets. These almost always use CR/LF, regardless of the operating system. * microcode/prosio.c[1.16]: Fix to match change in "osio.h". * edwin/dosfile.scm[1.13], edwin/unix.scm[1.80]: OS/HOSTNAME now defined in runtime system. * runtime/runtime.pkg[14.288], runtime/socket.scm[1.9]: Add new procedure OS/HOSTNAME. * microcode/ntapi.h[1.8], microcode/ntsock.c[1.2], microcode/os2api.h[1.10], microcode/os2sock.c[1.5], microcode/os2sock.c[1.4], microcode/pruxsock.c[1.14], microcode/pruxsock.c[1.13], microcode/pruxsock.c[1.12], microcode/uxsock.c[1.16], microcode/uxsock.c[1.15], microcode/uxsock.h[1.6]: Add new primitives GET-HOST-NAME and CANONICAL-HOST-NAME. 1997-10-31 Chris Hanson * edwin/edwin.pkg[1.213], edwin/sendmail.scm[1.36]: Add generalized mechanism for formation of mail return address. The new mechanism matches that of Emacs. 1997-10-26 Chris Hanson * microcode/ntfs.c[1.18]: Partially undo last change. Time-stamp problem is more complicated than I originally thought. * microcode/ntfs.c[1.17], microcode/ntfs.h[1.2], microcode/prntfs.c[1.14]: Change method used to get file information. It turns out that GetFileInformationByHandle is returning incorrect time stamps for files on a Samba filesystem, but FindFirstFile returns correct time stamps in the same circumstance. This discrepancy becomes apparent when switching between daylight-savings and standard time. * microcode/ntutl/makefile.wcc[1.11]: Add socket and gdbm support for Win32. * microcode/ntapi.h[1.7], microcode/nttop.c[1.24], microcode/pruxsock.c[1.11]: Add socket support for Win32. * edwin/dirw32.scm[1.2], edwin/dos.scm[1.45], edwin/dosfile.scm[1.12], edwin/os2.scm[1.41]: Add support for compressed and encrypted files. 1997-10-25 Chris Hanson * microcode/ntutl/makefile.wcc[1.10]: Add support for Blowfish and MD5. * microcode/ntio.c[1.19], microcode/ntio.h[1.10], microcode/osio.h[1.13]: Add ability to handle named pipes. This should be all that is necessary to manage the client side of a named pipe. * microcode/ntproc.c[1.5]: Fix problem with previous change. Must explicitly close the handle copies that are passed to the subprocess. Otherwise the pipe won't be deleted at the appropriate time, and PeekNamedPipe won't be able to tell when the child closes its write handle. * microcode/ntapi.h[1.6], microcode/ntproc.c[1.4]: Fix method used to pass stdio handles to a subprocess. Method used by Emacs, and recommended in (some parts of) the M$ documentation, involves side-effects to Scheme's stdio handles. Better method is to use the STARTUPINFO datastructure to tell CreateProcess what handles to use -- no side-effects. 1997-10-24 Chris Hanson * microcode/ntfile.c[1.11], microcode/ntio.c[1.18], microcode/ntio.h[1.9], microcode/nttty.c[1.7], microcode/prntio.c[1.8]: * Change channel data structure. Now, instead of being tagged with a "type", it is tagged with a "class". The "class" has associated operations, so that basic channel operations such as reading and writing are generic. This change allows the code to be modularized a bit better, and will facilitate the introduction of sockets. * Eliminate the procedure NT_pipe_channel_available, replacing it with the generic procedure NT_channel_n_read. * Eliminate references to long-obsolete "console" stuff. * Change file-pointer positioning code to use SetFilePointer rather than __llseek. * Don't try to signal an error if MsgWaitForMultipleObjects returns an unexpected answer -- only if it returns WAIT_FAILED. We are only using it as a mechanism for blocking. * Make cosmetic changes, eliminating unnecessary instances of "DEFUN" and the like. These were introduced for unix, because there were non-ANSI compilers at that time. On NT, all compilers are ANSI. * microcode/ntproc.c[1.3]: In OS_process_wait, replace use of Sleep and WaitForSingleObject with MsgWaitForMultipleObjects, so that the procedure responds immediately whenever anything interesting happens. * microcode/ntproc.c[1.2]: Fix bugs in code that terminates a subprocess. Make sure that subprocess handles are closed at the appropriate times. * runtime/process.scm[1.20]: When killing a subprocess on NT, close our end of the channels talking to the subprocess. It turns out that some processes don't close properly until this is done. 1997-10-22 Stephen Adams * compiler/machines/i386/lapopt.scm[1.3]: Implemented a pattern based peephole optimizer. Main improvements: 1. every CONS-[MULTI]CLOSURE saves one instruction 2. most funcalls save one stack access 3. fixnum arithmetic (plus and minus constants) 4. fixnum case of generic add/subtract constant 5. fixnum bitwise operations with constants (and/or/not) 1 and 2 give about 5% on closure/funcall heavy code. 3-5 are improvements made possible by the screwy fixnum tag. `Natural' fixnum tags would make them obsolete (but some of the rewrites are as good). 5 improves hash table operations up to 10% due to how `flags' are implemented. 1997-10-22 Chris Hanson * runtime/os2prm.scm[1.32]: Fix typo in previous change. * runtime/os2prm.scm[1.31]: Change OS/MAKE-SUBPROCESS to use new OS-specific primitive. * microcode/os2proc.c[1.5], microcode/pros2io.c[1.7]: Fix bugs from most recent changes. * runtime/unxprm.scm[1.48]: Use new unix-specific primitive to start subprocesses. * microcode/uxproc.c[1.22]: Eliminate compiler warnings. * microcode/pruxio.c[1.6], microcode/unxutl/Attic/ymkfile[1.92]: Add missing include. * microcode/nt.h[1.7], microcode/ntapi.h[1.5], microcode/nttop.c[1.23], microcode/ntutl/makefile.wcc[1.9], microcode/prosio.c[1.15], microcode/uxproc.h[1.5], microcode/version.h[11.159]: Implement subprocess support under NT. Requires runtime 14.174 or later. * microcode/prntio.c[1.7]: Extensive reworking of the "select" interface, so that it can work with pipes. We no longer use the NT API calls, since they don't work at all with pipes; instead we use simpler tests and depend on the regular arrival of messages to get us out of the blocking state to poll the other input channels. Regular message delivery is guaranteed by the asynchronous timer thread. * microcode/os2proc.c[1.4], microcode/osproc.h[1.9], microcode/pros2io.c[1.6], microcode/pruxio.c[1.5], microcode/uxio.c[1.41], microcode/uxproc.c[1.21]: Deprecate operating-system-independent interface OS_make_subprocess. New interface is OS-specific, moving pecularities (e.g. converting unix-style argument vector to OS/2-style command line) into the runtime system. New OS-independent interface OS_process_any_status_change. * microcode/ntio.c[1.17], microcode/ntio.h[1.8]: Add code to create anonymous pipes, to determine how many characters are in the pipe given the read end of the pipe, and to implement non-blocking mode when reading a pipe. Fix OS_channel_write to generate correct error messages. * microcode/prosproc.c[1.17]: Change PROCESS-ID primitive to assume that the ID is unsigned. * microcode/Attic/posixtyp.h[1.14]: Define reasonable (unsigned) type for pid_t under NT. * microcode/option.c[1.44]: Eliminate compiler warning. * runtime/ntprm.scm[1.12], runtime/version.scm[14.174]: Changes to support subprocesses under NT. Requires microcode version 11.159 or later. * runtime/os2prm.scm[1.30], runtime/process.scm[1.19], runtime/unxprm.scm[1.47]: Change MAKE-SUBPROCESS to define new interface to allow OS-specific code to do the work of starting the subprocess. * edwin/edwin.ldr[1.60], edwin/edwin.pkg[1.212], edwin/loadef.scm[1.32], edwin/make.scm[3.92]: Use real subprocess support for NT. * edwin/dosfile.scm[1.11]: Use COMSPEC environment variable to determine shell file name if SHELL is not defined. * edwin/filcom.scm[1.193]: Change test used to decide whether an unreadable file exists. The procedure FILE-EXISTS? gives the wrong answer when the file is a symbolic link that points to a non-existent file. 1997-10-18 Chris Hanson * microcode/ntutl/scheme32.c[1.16]: Add code to synchronize the shutdown of the asyncronous timer thread with the deallocation of the associated state. Otherwise, the race condition causes occasional GPFs when exiting Scheme. 1997-10-17 Stephen Adams * compiler/rtlbase/rtlcon.scm[4.29]: Changed consing code to compute the tagged pointer after storing the elements. This reduces register pressure across the consing sequence. Rearranged consing expression to share a common algorithm, eliminating 80 lines of code. * compiler/machines/i386/rules3.scm[1.29]: Added some comments. * compiler/machines/i386/rules3.scm[1.28]: Changed the instruction sequence for procedure return (and computed jump). The code for clearing the type code from a continuation now loads the value into a register instead of modifying it in-place on the stack. I have left the code using an indirect jump. An alternative is to push the value back on the stack and do a RET. The indirect jump seems faster, especially when returning to the same address as the previous jump, but the branch prediction mechanisms for RET and JMP seem quite different. Speeds up the modified Gabriel Benchmark Suite (/scheme/8.0/src/bench) by 10% overall! I guess this is because the Pentium Pro really doesn't like the old read-modify-write instruction. Test Old New Ratio ctak 11.59 11.54 0.996 conform 0.62 0.50 0.806 traverse 1.57 0.92 0.586 takl 0.23 0.20 0.870 peval 0.40 0.35 0.875 browse 0.59 0.56 0.949 tak 0.28 0.25 0.893 wttree 1.61 1.49 0.925 deriv 0.34 0.29 0.853 boyer 0.47 0.42 0.894 div 0.42 0.39 0.929 dderiv 0.44 0.38 0.864 cpstak 0.42 0.41 0.976 matmul1 0.27 0.27 1.000 fib 0.68 0.55 0.809 fcomp 0.61 0.54 0.885 triangle 2.89 2.36 0.817 puzzle 0.47 0.47 1.000 matmul2 0.66 0.69 1.045 destruct 0.28 0.28 1.000 ~a.mean - - 0.899 ~g.mean - - 0.892 1997-10-15 Stephen Adams * compiler/rtlgen/opncod.scm[4.66], runtime/char.scm[14.7], runtime/record.scm[1.27], runtime/vector.scm[14.11], sf/gconst.scm[4.22], sf/usiexp.scm[4.38]: Moved open-coding of VECTOR?, %RECORD? and CHAR? from SF to open-coders in compiler. * microcode/char.c[9.32]: Fix typo. * microcode/char.c[9.31]: Added primitive CHAR? * microcode/vector.c[9.38]: Added primitives VECTOR? and %RECORD? 1997-10-14 Stephen Adams * compiler/rtlgen/opncod.scm[4.65]: Added open-coding for MAKE-CELL. 1997-10-10 Stephen Adams * compiler/machines/i386/dassm1.scm[1.8], compiler/machines/i386/dassm2.scm[1.8]: Improved disassembly output: - New comments to the right of LAP code, mostly the address of @pco branches so you can see where it is jumping. - correctly decodes the word field after a (call (entry short-primitive-apply)) rather than trying to disassemble the offset as instructions and getting out of sync with the subsequent instructions. 1997-10-07 Stephen Adams * pcsample/Makefile[1.2]: use `cp -p' to preserve file times. * swat/Makefile[1.4], swat/Makefile[1.3]: Use `cp -p' to preserve file times. * runtime/numpar.scm[14.16]: Typo in previous change. * runtime/numpar.scm[14.15]: Fixed so that "1/pivot" is rejected as a number, rather than dividing by zero. Change: divide only if there is at least one denominator digit. This is not a good fix, but I need it now for some existing code. The parser ought to be restructured not to compute the real part until it is known that the imaginary part is valid, e.g. (string->number "1/2+3") => #F (string->number "1/0+3") => error (string->number "1/0-transition") => error There is a similar problem with exponent calculation: (string->number "1e9999e1") => error (string->number "1e99999999e1") => `hangs' in bignum primitives Of course, the difficulty with these non-numbers is probably the reason behind R4RS's restriction on valid identifiers. That is pretty feeble, since I don't recall R4RS saying that STRING->NUMBER is allowed to signal an error. Note that the current code would work fine in a lazy language, so a few DELAYs and FORCEs might be the most elegant fix (and OK effciency since FORCE is now compiled.) 1997-10-05 Stephen Adams * pcsample/pcsample.c[1.5]: Changed compuation of pc_in_C: with dynamically loaded libraries, there is no guarantee that valid C addressed are bounded above by _etext. 1997-10-03 Chris Hanson * runtime/string.scm[14.16]: Fix typo. * edwin/schmod.scm[1.40]: Fix typo in previous change. 1997-10-02 Stephen Adams * pcsample/pcs.cbf[1.2]: Fix typo in instructions. * microcode/s/Attic/linux.h[1.13]: Added -export-dynamic to the LD switches so that SWAT (and other dynamic libraries) can load. * swat/scheme/tk-mit.scm[1.4]: Changed %STRING-APPEND to (APPLY STRING-APPEND ...) because someone removed %STRING-APPEND from the system. * runtime/string.scm[14.15]: Fixed copyright date and Package: comment. * compiler/base/toplev.scm[4.54]: Tweak output for RTL and LAP files to include the pretty-printed SCode. In LAP files, make RTL comments more terse by printing them with ";;" rather than "(comment (rtl" 1997-10-02 Chris Hanson * edwin/schmod.scm[1.39]: Change M-A to work better with parameter lists containing uninterned symbols. 1997-09-30 Chris Hanson * edwin/snr.scm[1.40]: Fix bug: marked messages that had been deleted from the server were remaining marked after downloading of message bodies. 1997-09-26 Stephen Adams * win32/graphics.scm[1.13], win32/win32.pkg[1.10]: The following change in how WIN32 graphics devices are flushed gives non-flickering update almost like double-buffering for programs which have to draw multiple frames from scratch. If graphics buffering is enabled, then a GRAPHICS-FLUSH operation comes from the user's program. The change is to synchronously redraw the screen in this (i.e. buffered+flush) case. Subsequent operations can clear and draw without an asynchronous redraw operation copying the subsequent partial image to the screen. This is not quite double-buffering since forced redisplay during the buffered drawing (for example, uncovering part of the window) will cause the partly draw backing bitmap to be copied to the screen. User programs with buffering and frequent explicit flushes are likely to be slower. 1997-08-24 Chris Hanson * microcode/ntapi.h[1.4], microcode/ntio.c[1.16]: Fix bug: low-level file reading code was occasionally signalling errors for no apparent reason. The cause: the ReadFile API can return an error indication when it is called at end-of-file. However, in ONLY this case, the returned "bytesRead" value is zero. * microcode/nttop.c[1.22]: Trim any trailing end-of-line from system-call error strings. 1997-08-23 Chris Hanson * edwin/snr.scm[1.39]: Clip ranges immediately after a group is constructed, in order to eliminate old markings. * edwin/filcom.scm[1.192]: Work around problem in NT: prompting for a directory with a wildcard was causing an error. On unix, this works because FILE-DIRECTORY? accepts such specifications as arguments -- but on NT, it doesn't. * microcode/ntapi.h[1.3], microcode/ntfs.c[1.16], microcode/prntfs.c[1.13]: Eliminate several calls to the C library in favor of native Win32 API calls. This was started to work around a bug in the Watcom C library, but is generally desirable to eliminate unnecessary dependencies on the C library. The bug that started this is that FILE-DIRECTORY? returned #F on directories with the FILE_ATTRIBUTE_ARCHIVE bit set. * microcode/ntutl/makefile.wcc[1.8]: Add new file "ntfs.h". 1997-08-22 Chris Hanson * microcode/ntfile.c[1.10]: Eliminate conditionalization on OS_open_append_file; this procedure compiles and runs just fine and probably should not have been conditionalized in the first place. 1997-08-08 Chris Hanson * runtime/parse.scm[14.28], runtime/runtime.pkg[14.287]: Add switch to disable canonicalization of symbol case by reader. 1997-08-03 Chris Hanson * edwin/intmod.scm[1.88]: Fix bug in Scheme mode C-c C-s that could cause already-deleted buffers to be selected. I don't understand why these buffers are still in this list because there is code to remove them. 1997-08-02 Chris Hanson * edwin/info.scm[1.125]: Don't lose if directories in info-directory-list are lacking the trailing slash. 1997-07-31 Stephen Adams * sf/usiexp.scm[4.37]: Fix bug in last change - apply STRING->SYMBOL to the string, not the `constant' expression containing the string. * sf/usiexp.scm[4.36]: 7.4: Fixed STRING->SYMBOL expansion to test that it's argument is a constant whose value is a string rather than applying STRING? directly (which has been broken since it was added in 1992.) Fixed INTERN likewise. 8.0: treat INTERN similarly to STRING->SYMBOL: Add INTERN as a integrated to a global reference. Added type rule and constant folding rule for intern. (This is better than constant folding at integration time since it deals with constant propagation.) 1997-07-28 Stephen Adams * runtime/dragon4.scm[1.13]: The previous change to make the output with '(ABSOLUTE ...) produce the correct number of digits for numbers with no significant digits introduced problems with NORMAL rounded and ENGINEERING formatted output. All NORMAL rounded output for numbers of the form ddd.ff were being output as "000.". Some numbers formatted with '(ABSOLUTE ENGINEERING) looked like "000e-3". This has been fixed by (1) setting the cutoff for NORMAL rounded numbers to be a value that will allow the digit production to run to completion (flo:significand-digits - 2). (2) adding special cases in the output procedures to deal with empty digit strings. Currently: Zero still prints as "0." by the initial sign/infinity/NaN dispatch. Rounded output in NORMAL style for numbers with no significant digits prints as "0." or "-0.". Rounded output in SCIENTIFIC / ENGINEERING style for numbers with no significant digits prints as "0eE" or "-0eE", e.g. "-0e3". It might be preferable to keep "0." distinguished for zero, but I'm not sure how for NORMAL formatted output. (To my eyes, "0.0" looks more `zero' than "0.", and ".0" implies a small magnitude.) A small regression test has been appended in a comment to help avoid problems in future. Feel free to add tests. 1997-07-26 Chris Hanson * runtime/dragon4.scm[1.12], runtime/runtime.pkg[14.286]: Provide the ability for a user to specify how the digits generated by the flonum printer are converted into a string. * runtime/dragon4.scm[1.11]: Fix another bug in the Dragon4 code (the bug exists in the original paper). The bug caused the following behavior: (fluid-let ((flonum-unparser-cutoff '(absolute 2 normal))) (number->string 0.005)) ;Value 3: ".01" (fluid-let ((flonum-unparser-cutoff '(absolute 2 normal))) (number->string 0.00499)) ;Value 4: ".005" The problem is that in the second case the trailing digit "5" should not be generated. The fix works by preventing any digits being output by the digit-generation loop when the first digit to be output would be to the right of the cutoff point. 1997-07-25 Chris Hanson * edwin/filcom.scm[1.191]: Reimplement encrypt-file and decrypt-file to eliminate the temporary storage of the plaintext in a buffer; this is both a security risk and an unnecessary limitation on the size of the file. Also, modify the commands to provide more flexible handling of filenames. Previously, only the input file could be specified; now both the input and the output can be specified, and the output is defaulted to a useful value. 1997-07-21 Chris Hanson * edwin/filcom.scm[1.190]: Fix bug in AFTER-FIND-FILE: code was assuming that every buffer had an AUTO-SAVE-PATHNAME. Add new commands to encrypt and decrypt files using blowfish. * edwin/input.scm[1.99], edwin/prompt.scm[1.169]: Add optional argument to KEYBOARD-READ which, if true, says that the key being read should not be recorded in the keyboard history. This option is used to prevent passwords from being stored in the history. * edwin/vc.scm[1.27]: Fix bug: VC was causing a local binding of vc-mode-line-status to appear in every buffer, when it should only be bound in buffers under version control. * edwin/autosv.scm[1.32]: Fix bug: auto-save initialization was not looking for a local binding of the variable auto-save-default. * edwin/fileio.scm[1.143]: Don't use alternate pathnames when writing files; only when reading. 1997-07-20 Chris Hanson * runtime/numpar.scm[14.14]: Fix bug: end index in substring is exclusive, not inclusive. Repaginate. 1997-07-18 Stephen Adams * cref/redpkg.scm[1.10]: Changed error for non-root access to a warning, so at least we can get a .crf file output. * microcode/fixnum.c[9.43]: Changed FIXNUM->FLONUM back to using cast. I don't understand why the last change was made -- the cast should have worked, since arg_fixnum() returns a long. Perhaps I blew it and tested it on 8.0 and just happen to have fixed the real problem at about the same time. 1997-07-16 Stephen Adams * microcode/uxtrap.c[1.27]: Conditionalize fixnum dependency for allow single file for 7.4 and 8.0 * microcode/purify.c[9.57]: Changed TC_TRUE to TC_CONSTANT in comment * microcode/const.h[9.44], microcode/fasl.h[9.37], microcode/gctype.c[9.33]: Changed TC_TRUE to TC_CONSTANT * microcode/lookup.h[9.50]: Changed TC_TRUE to TC_CONSTANT. * microcode/fasload.c[9.83]: Conditionalized EMPTY_LIST_VALUE code. * microcode/debug.c[9.49], microcode/gccode.h[9.55], microcode/interp.c[9.88], microcode/load.c[9.38], microcode/types.h[9.36]: A hack: Introduced macro case_TC_FIXNUMs for generating case labels for selecting fixnums, whether there are one or two typecodes. This tidies up the support in the 8.0 sources for eitehr case, and allows more files to be shared between 7.4 and 8.0 * microcode/boot.c[9.99]: Conditionalized EMPTY_LIST initialization for code sharing between 7.4 and 8.0. 1997-07-15 Stephen Adams * microcode/types.h[9.35]: Moved GLOBAL_ENV to sdata.h. * microcode/boot.c[9.98]: Merged in changes to make 7.4 and 8.0 more alike. * microcode/pruxenv.c[1.17]: Fixed the trap debugging primitive INSTRUCTION-ADDRESS->COMPILED-CODE-BLOCK to handle integer arguments correctly. * microcode/object.h[9.47]: Add ADDRESS_HEAP_P to match existing predicate ADDRESS_CONSTANT_P * microcode/memmag.c[9.64]: file: purify.c file: bchmmg.c file: memmag.c Define EMPTY_WEAK_CHAIN for use in terminating the weak chain rather that EMPTY_LIST. This allows purify.c, bchmmg.c and memmag.c to be shared by 7.4 and 8.0. * microcode/purify.c[9.56]: Eliminate NT compiler warning. * sf/object.scm[4.8]: Update copyright date. * sf/toplev.scm[4.14]: Small changes to allow butils.scm to be shared between 7.4 and 8.0 * runtime/scomb.scm[14.15]: Merge 7.4 and 8.0 versions on scomb.scm Changed UNDEFINED-CONDITIONAL-BRANCH to be UNSPECIFIC directly, rather than trying to reconstruct the same machine-dependent bit-pattern. * runtime/infutl.scm[1.59], runtime/runtime.pkg[14.285]: Change to get rid of minor difference between 7.4 and 8.0 versions of unpars.scm: Renamed COMPILED-ENTRY/FILENAME -> COMPILED-ENTRY/FILENAME-AND-INDEX COMPILED-CODE-BLOCK/FILENAME -> COMPILED-CODE-BLOCK/FILENAME-AND-INDEX * compiler/machines/i386/dassm1.scm[1.7], sf/gconst.scm[4.21]: Merged 7.4 and 8.0 udata.scm files. (Main benefit is the much faster compiled version of FORCE). Removed FORCE from integrated primitives. Added COMPILED-CODE-BLOCK/MARKED-START which returns the index that COMPILED-CODE-BLOCK/CONSTANTS-START used to. COMPILED-CODE-BLOCK/CONSTANTS-START now parses over the linkage section. Changed i386 disassembler to use COMPILED-CODE-BLOCK/MARKED-START. * runtime/runtime.pkg[14.284]: Merged the 7.4 and 8.0 versions of string.scm now that INDEX-FIXNUM? is open-coded by both compilers. Moved string.scm into a new package (runtime string). * microcode/fixnum.c[9.42]: Use FIXNUM_TO_DOUBLE rather than a cast. Casting a fixnum to a double fortuitously worked under 8.0 with `native' fixnum tags but didn't work under 7.4. * compiler/machines/C/rules2.scm[1.2], compiler/machines/i386/rules2.scm[1.8], compiler/machines/spectrum/rules2.scm[4.14], compiler/rtlbase/rtlcon.scm[4.28], compiler/rtlgen/opncod.scm[4.64], compiler/rtlopt/rcse1.scm[4.23], compiler/rtlopt/rinvex.scm[1.8], microcode/liarc.h[1.13]: Added open-coding for the primitive INDEX-FIXNUM? * sf/gconst.scm[4.20]: Added INDEX-FIXNUM? as integrated constant. 1997-07-14 Stephen Adams * microcode/wabbit.c[1.6]: Made previos chaneg work under 7.4 and 8.0 * microcode/wabbit.c[1.5]: Use EMPTY_WEAK_CHAIN for weak pair chain instead of EMPTY_LIST. 1997-07-13 Chris Hanson * runtime/make.scm[14.60]: Initialize number parser. 1997-07-11 Stephen Adams * runtime/arith.scm[1.44]: Changed INT:->INEXACT to use INTEGER->FLONUM and FIXNUM->FLONUM, now that INTEGER->FLONUM has been fixed to work correctly. Note that the 8.0 compiler can open-code FIXNUM->FLONUM. 1997-07-10 Stephen Adams * runtime/numpar.scm[14.13]: Bug fixes: . "1/" returns #F instead of signalling divide by zero. . "1.2345e-306" and "1e-400" with FLONUM-PARSER-FAST? true no longer signal arithmetic errors. . STRING->NUMBER and SUBSTRING->NUMBER now check their arguments Other changes: FINISH-REAL now exploits the fact that some integers have exact floating point representations and so flonum arithmetic can be used to compute the correct result. Note that to maintain correctness, i*10^-e must be calculated as i/10^e. The results are a modest improvement on free-formatted random flonums (typically 16 digit) in the range 1e-7 to 1e35: Times for 10000 flonums generated by (random range) range 1e-100 1e-10 1e-5 1. 1e5 1e10 1e35 1e40 old 10180 8200 8210 7490 5610 3970 3990 4030 new 10280 8350 4690 4390 3930 3230 3180 4170 With FLONUM-PARSER-FAST? true, using the division trick gives better error rates over a larger range. Number of errors in 10000 random flonums range 1e-20 1e-10 1e-6 1. 1e10 1e20 1e35 1e40 old 3573 2400 3309 2798 3025 685 722 2730 new 2594 2778 1907 1010 761 685 772 2730 1997-07-10 Chris Hanson * sos/instance.scm[1.7]: Fix a couple of typos. 1997-07-09 Stephen Adams * runtime/udata.scm[14.18]: Implemented FORCE as a compiled procedure. SF no longer integrates FORCE as a primitive procedure. There is a minor bootstrapping problem with the standard build scripts since any pre-existing version of SF will integrate the primitive FORCE, and SF is only run on files that have changed. A solution is: 1. rebuild the system 2. remove any .bin files that call FORCE 3. rebuild the system using bands produced in step 1. Timings under Scheme 8.0 on plex: Test Primitive Compiled [1] 10370ms 560ms [2] 180ms 130ms [3] 440ms 270ms (let ((nums (list->stream (make-initialized-list 100001 identity-procedure))) (primes ((access make-prime-numbers-stream (->environment '(runtime stream)))))) (show-time (lambda () (stream-ref nums 100000))) ; [1] (show-time (lambda () (stream-ref nums 100000))) ; [2] (show-time (lambda () (stream-ref primes 1000)))) ; [3] 1997-07-08 Stephen Adams * microcode/bignum.c[9.46]: Changed bignum_to_double to produce a correctly rounded result. The code is a lot hairier since it implements IEEE style round to even, but it is not much slower than the old `accumulate' loop since it rarely has to look at more that two or three words. The new version no longer signals an floating point overflow error on (INTEGER->FLONUM (- (EXPT 2 1024) 1) #b10) This means that (INTEGER->FLONUM N #b10) can again be used for computing EXACT->INEXACT on exact integers, which should be 5-15x faster. There were several places which has a loop to find the bit position of the most significant bit in a word. This code has been converted into a macro, and tweaked to be a bit faster. Presumably some machines have this operation as an instruction. * microcode/artutl.c[1.15]: Change integer_length_in_bits to return a fixnum if possible. * runtime/arith.scm[1.43]: Speed up RATIO->FLONUM and INT:->INEXACT by using (INTEGER->FLONUM N #b11) when N is small enough that it has an `exact' flonum representation. A prior log message comments on this, but the code does not seem to take advantage. DISCUSSION: Question: why is (INT:->INEXACT N) not simply (INTEGER->FLONUM N #b10) ? (EXACT->INEXACT (expt 2 3000)) used to fail in INTEGER->FLONUM, but now it returns MAXDOUBLE (due to ldexp), but an Infinity or an error would seem better. R4RS says: If an exact argument has no reasonably close inexact equivalent, the a violation of an implementation restriction may be reported. I would read this as NOT returning MAXDOUBLE as, say, 2^3000 is not `reasonably close' to any FP number. A previous log entry says INTEGER->FLONUM does not round reliably. This is because bignum_to_double in "bignum.c" accumulates, which may cause error due to intermediate rounding. Perhaps bignum_to_double should be changed to extract the top 53 bits and explicitly calculate the exponent; another test would be required in place of bignum_fits_in_word_p, which does not (and should not) understand rounding carry. Currently, calling bignum_to_double on (- (expt 2 1024) 1) signals a floating point overflow or returns an infinity depending on which FPU exceptions are enabled. If bignum_to_double was fixed it could be a lot faster than all the current bignum arithmetic. * microcode/fixnum.c[9.41]: Fixed thinko in FIXNUM->FLONUM. * runtime/arith.scm[1.42]: Changes in INT:->STRING to improve performance. 30% faster for huge bignums (10^1000), up to 2x-3x faster for small bignums (up to 10^100), slightly faster for fixnums. . Use a local version of DIGIT->CHAR since we don't need to check the radix. . PRINT-FIXNUM modified to be useful for generating digits in the middle of a number. . PRINT-MEDIUM and PRINT-LARGE work in units of several digits, the length of a unit pre-computed so that a unit can be printed using fixnum arithmetic. . PRINT-MEDIUM chops off groups of digits that can be printed by PRINT-FIXNUM. The microcode primitive LISTIFY-BIGNUM is no longer used. . PRINT-LARGE has a special check to try to avoid the last multiply in building the power stack (which is asymptotically 2/3 of the cost of building the stack). The recursion termination check is generalized to also catch sequences of digits with enough leading zeroes to be formatted by PRINT-FIXNUM (this can double the speed of printing numbers with many zeros). 1997-07-07 Stephen Adams * runtime/arith.scm[1.41]: Changes in INT:->STRING to improve performance. 30% faster for huge bignums (10^1000), up to 2x-3x faster for small bignums (up to 10^100), slightly faster for fixnums. . Use a local version of DIGIT->CHAR since we don't need to check the radix. . PRINT-FIXNUM modified to be useful for generating digits in the middle of a number. . PRINT-MEDIUM and PRINT-LARGE work in units of several digits, the length of a unit pre-computed so that a unit can be printed using fixnum arithmetic. . PRINT-MEDIUM chops off groups of digits that can be printed by PRINT-FIXNUM. The microcode primitive LISTIFY-BIGNUM is no longer used. . PRINT-LARGE has a special check to try to avoid the last multiply in building the power stack (which is asymptotically 2/3 of the cost of building the stack). The recursion termination check is generalized to also catch sequences of digits with enough leading zeroes to be formatted by PRINT-FIXNUM (this can double the speed of printing numbers with many zeros). 1997-07-04 Stephen Adams * microcode/bignum.c[9.45]: In bignum_remainder, replaced special case for remainder by `1' with a special case for remainder by small power of two. 1997-07-03 Stephen Adams * runtime/dragon4.scm[1.10]: Performance enhancements: 1. Changed DRAGON4-FIXUP to use fast scaling similar to described in Burger and Dybvig (reference in file). This makes an order of magnitude difference for unparsing flonums with large exponents. 2. Changed DRAGON4 to pass exponent to DRAGON4-FIXUP for scaling estimate. 3. Systematically replaced calls to generic operators with calls to int: variants (and rat:expt). The vast majority of operations are on bignums. Gives a gain of about 20%. Timings (Non-GC runtime) in msec for 1000 calls on 200Mhz Pentium Pro. Example Number Original Fast Scaling and INT:ops 3.141592653589793 840 820 580 1022. 320 300 230 1.234e300 4870 490 400 1.23456e-300 7130 680 540 It is still pretty sad that you can format only a few thousand numbers per second. PC-sampling shows that most of the time is spent as follows: (27% primitive 253 "INTEGER-MULTIPLY") (24% primitive 200 "GARBAGE-COLLECT") (24% primitive 248 "INTEGER-DIVIDE") (5%. primitive 260 "INTEGER-SUBTRACT") 1997-07-03 Chris Hanson * edwin/snr.scm[1.38]: Make sure that RMAIL variables are initialized before they are used. 1997-06-27 Chris Hanson * sos/method.scm[1.10]: Fix bug introduced by last change. * microcode/ux.h[1.68]: Toe the current ideological line. 1997-06-26 Stephen Adams * runtime/string.scm[14.14], runtime/string.scm[14.13]: Fixed a bug in argument checking SUBSTRING. Introduced GUARANTEE-SUBSTRING and edited other procedures to use it. 1997-06-26 Chris Hanson * microcode/nttop.c[1.21]: Don't use the external Scheme DLL any more. This is important for the moment as I have not yet figured out how to make working DLLs with the new Watcom compiler. However, the Scheme DLL probably doesn't matter any more as we no longer care about Windows 3.1. * microcode/nttrap.c[1.14]: Watcom 11: use __try/__except for new version of Watcom compiler, as it is now fixed and works properly. * microcode/bintopsb.c[9.67], microcode/hooks.c[9.57], microcode/lookup.c[9.56], microcode/ntenv.c[1.16], microcode/ntfs.c[1.15], microcode/ntgui.c[1.20], microcode/ntsys.c[1.8], microcode/ntsys.h[1.7], microcode/utils.c[9.72]: Watcom 11: eliminate compiler warning. * microcode/ntutl/makefile.wcc[1.7]: Watcom 11: various changes. * microcode/ntutl/scheme32.lnk[1.2]: Watcom 11: needs kernel and user librarys named explicitly now. * microcode/ntutl/scheme32.c[1.15]: Change for Watcom 11: documentation claims that 0 is not a valid value for the stack-size parameter to beginthreadx. 1997-06-25 Chris Hanson * edwin/vc.scm[1.26]: Change RCS-FIND-DELTA to have an extra argument saying whether or not to signal an error if there is no such delta. Use this feature to make VC-NEXT-ACTION do the right thing when it is given a version number that doesn't exist. * edwin/rcsparse.scm[1.3]: Change RCS-FIND-DELTA to have an extra argument saying whether or not to signal an error if there is no such delta. * sos/method.scm[1.9]: Allow computed methods to return concrete methods as well as procedures, provided that the returned method's specializers are restrictions of the computed method's specializers. * sos/slot.scm[1.6]: Delete accessor slot properties after they are used. This prevents them from holding on to the generic procedures, and from defining identical methods for each subclass. * sos/class.scm[1.8]: Fix typo. * sos/sos.pkg[1.7]: Fix think-o. * sos/instance.scm[1.6]: Allow INSTANCE-PREDICATE to take a specializer as an argument rather than just a class. * sos/class.scm[1.7]: Error-check arguments to MAKE-CLASS. Make sure that dispatch tag of record-type class is correct. * sos/class.scm[1.6]: Allow record types to be used in place of classes wherever sensible. * sos/class.scm[1.5], sos/slot.scm[1.5], sos/sos.pkg[1.6]: Signal CONDITION-TYPE:NO-SUCH-SLOT when given an invalid slot name. * runtime/record.scm[1.26], runtime/recslot.scm[1.3], runtime/runtime.pkg[14.283]: Add CONDITION-TYPE:NO-SUCH-SLOT and modify record code to signal this error when given an invalid slot name. 1997-06-24 Chris Hanson * runtime/make.scm[14.59], runtime/recslot.scm[1.2], runtime/runtime.pkg[14.282]: Modify %RECORD-ACCESSOR to signal an error if the accessed slot is uninitialized. 1997-06-19 Chris Hanson * sos/method.scm[1.8]: SPECIALIZER=? was not handling the case of mixed arguments properly. * runtime/defstr.scm[14.31]: Add option to allow user to specify a different name for the type descriptor. * sos/method.scm[1.7], sos/method.scm[1.6], sos/sos.pkg[1.5]: Eliminate UNION-SPECIALIZER=? and UNION-SPECIALIZER-CLASSES. * sos/slot.scm[1.4]: Eliminate unused definition. * sos/class.scm[1.4], sos/method.scm[1.5], sos/sos.pkg[1.4]: Add procedure SPECIALIZER-CLASSES. * sos/class.scm[1.3]: SUBCLASS? must allow its second argument to be any specializer. * microcode/ntfile.c[1.9], microcode/ntio.c[1.15], microcode/ntio.h[1.7]: Fix bug: microcode was forgetting about file being opened when it ran out of channel-table entries. This left the file locked until Scheme was exited. Additionally, the size of the channel table has been increased, and the number of allowable handles set to its maximum value. * microcode/prntfs.c[1.12]: When trying to get information about a file, if we get permission denied, try again using the directory reader. Some files, e.g. "\pagefile.sys", cannot be interrogated in the normal fashion, but are given in a directory listing. (More quality software design.) In SET-FILE-TIMES!, temporarily disable the read-only bit if it is enabled, as this prevents the primitive from completing successfully. * microcode/ntscreen.c[1.30]: Ignore the mouse click that activates a window. 1997-06-18 Chris Hanson * edwin/snr.scm[1.37]: Fix two bugs in article-posting code. * edwin/snr.scm[1.36]: Make sure that all article ranges are clipped when the group is updated. 1997-06-17 Chris Hanson * sos/slot.scm[1.3], sos/slot.scm[1.2]: Change slot-option merging code so that INITIAL-VALUE and INITIALIZER shadow each other properly. * runtime/blowfish.scm[1.3]: Add code to compute MD5 checksum for a file; to convert a checksum to either a number or a hex string; and to encrypt a substring. * microcode/prbfish.c[1.3]: Add primitive that accepts input as a substring rather than a string. * microcode/prmd5.c[1.3]: Add new primitives to simplify writing code to perform MD5 checksum on arbitrary-length streams. 1997-06-16 Chris Hanson * sos/load.scm[1.3]: Changes to interface and semantics of INSTANCE-CONSTRUCTOR. * sos/method.scm[1.4]: Now that MAKE-METHOD calls INITIALIZE-INSTANCE, it is necessary to provide a default EMP for INITIALIZE-INSTANCE until the default method is installed. This is done by means of the runtime system's default EMP kludge. * sos/instance.scm[1.5], sos/macros.scm[1.6]: Extensive revamp of INSTANCE-CONSTRUCTOR. Optional argument now specifies how many additional arguments the constructor accepts; the additional arguments are passed to INITIALIZE-INSTANCE. By default, any number of additional arguments are accepted and passed. 1997-06-15 Chris Hanson * sos/macros.scm[1.5]: Modify the CONSTRUCTOR class option to DEFINE-CLASS to allow it to specify the CALL-INIT-INSTANCE? argument to INSTANCE-CONSTRUCTOR. * sos/instance.scm[1.4], sos/method.scm[1.3], sos/sos.pkg[1.3]: Implement support for INITIAL-VALUE slot keyword. Add new generic procedure INITIALIZE-INSTANCE, and give INSTANCE-CONSTRUCTOR and optional boolean argument that, if true, says to call INITIALIZE-INSTANCE on the instance before it is returned. * microcode/os2utl/makefile.cmn[1.10]: Add blowfish and MD5 support. 1997-06-14 Chris Hanson * edwin/snr.scm[1.35]: Fix bug that could cause SEGV when downloading article bodies. * edwin/comint.scm[1.24]: Fix typo. 1997-06-13 Chris Hanson * microcode/version.h[11.151.1.4]: Update cmpauxmd/i386.m4 to revision 1.47. 1997-06-12 Chris Hanson * runtime/arith.scm[1.40], runtime/runtime.pkg[14.281]: Add definition for SQUARE. * sos/macros.scm[1.4]: Fix bug: when CALL-NEXT-METHOD used in DEFINE-METHOD, the generated code was using old calling conventions. * sos/compile.scm[1.2]: Move COMPILE-FILE into the compiler proper. * compiler/base/toplev.scm[4.53], compiler/machines/i386/compiler.pkg[1.23], compiler/machines/spectrum/compiler.pkg[1.48]: Add COMPILE-FILE incremental file compilation procedure. 1997-06-11 Chris Hanson * sos/macros.scm[1.3]: Fix bug: predicate not being generated when other class options given. 1997-06-10 Chris Hanson * edwin/evlcom.scm[1.53]: Fix bug: Scheme variable completion was failing in some cases because the completion code was unable to obtain the correct environment in which to look up the variables. 1997-06-09 Chris Hanson * microcode/prbfish.c[1.2], microcode/prmd5.c[1.2]: Fix typo. * edwin/os2.scm[1.40], edwin/unix.scm[1.79]: Add support for Blowfish. * runtime/blowfish.scm[1.2]: Add procedure to test for availability of Blowfish primitives. Modularize ciphertext-file support. * runtime/ed-ffi.scm[1.17], runtime/runtime.pkg[14.280]: Add interfaces to MD5 and Blowfish. 1997-06-06 Chris Hanson * microcode/rgxprim.c[1.12]: Change regular-expression primitives to treat failure-stack overflow as equivalent to "no match". Also, increase the maximum size of the failure stack from 1000 to 20000. This is important because it is far too easy to overflow the stack, the stack-overflow errors cause Edwin to bomb out. This is a problem because stack-overflow errors can be caused by user data -- the proximate example being a News message that bombed out the News reader because it had a header line was too complicated to match. Better to fail in these situations than to error. * microcode/regex.c[1.17]: Change regular-expression searches to treat failure-stack overflow as a failure to match, and to continue the search. * edwin/os2.scm[1.39], edwin/unix.scm[1.78], edwin/unix.scm[1.77]: Modify encrypted-file support to allow the ".ky" suffix. This is desirable because mixed-case filenames cause trouble when mapping between unix and case-insensitive file systems. 1997-06-05 Chris Hanson * runtime/record.scm[1.25]: Fix thinko in SET-RECORD-TYPE-UNPARSER-METHOD!. 1997-06-04 Chris Hanson * rcs/mklogs.scm[1.9]: Add SOS to list of directories needing to be processed. * sos/class.scm[1.2], sos/instance.scm[1.3], sos/instance.scm[1.2], sos/sos.pkg[1.2]: Reimplement INSTANCE-PREDICATE to return a generic procedure. Move INSTANCE-PREDICATE and INSTANCE-OF? to "instance.scm". * sos/method.scm[1.2]: Eliminate references to INSTANCE-PREDICATE. * sos/macros.scm[1.2]: Add options allowing DEFINE-CLASS to automatically generate predicate and constructor procedures. By default, generate a predicate. * edwin/rmail.scm[1.58]: Modify undigestifier so that it handles newer digests, e.g. the Debian mailing-list digestifier. * sos/load.scm[1.2]: Add line to startup banner. 1997-06-01 Chris Hanson * microcode/uxfs.c[1.13]: Change Linux file-system-type code to define explicit constants for many types. The reason is that many of these types are hard to get from the headers, either due to versioning problems with the header files, or because the desired definitions are hidden behind kernel conditionalizations. 1997-05-27 Chris Hanson * edwin/snr.scm[1.34], edwin/snr.scm[1.33]: Fix bug: news server can return #(0 0 0) as server-info for a news group, indicating that there are no articles on the server. News reader was expecting the last two numbers to be article numbers, but zero is not a valid article number. 1997-05-21 Chris Hanson * edwin/os2.scm[1.38], edwin/unix.scm[1.76]: Read and write .KY files as binary rather than text. * microcode/os2msg.c[1.12]: Fix some bugs, including an uninitialized-field bug for the QID_FILTER field, and an ambiguity in the allowable values for the end pointer of a msg_fifo. Add a QID_LOCK field, and use it to control access to the QID_SUBQUEUE field. Rearrange the locking slightly to make it more efficient and directed: the top-level qid_lock is now used only to mediate the QID_ALLOCATEDP and QID_TWIN fields. * microcode/os2pm.c[1.31]: Change error-reporting procedure to eliminate redundant sentences for fatal errors. 1997-05-19 Chris Hanson * runtime/io.scm[14.50], runtime/runtime.pkg[14.279]: Reimplement CLOSE-ALL-OPEN-FILES to close only file channels, and also to close the associated port of a file channel rather than the channel. Implement and export two new procedures: ALL-OPEN-CHANNELS and CLOSE-ALL-OPEN-CHANNELS. 1997-05-18 Chris Hanson * edwin/edwin.pkg[1.211], edwin/snr.scm[1.32]: * Add new command to show the full subject line of an article in a news-group buffer. * Add new command to show the full header of an article in a news-group buffer. * When first unread article in a group has an associated body, expand the thread to select that article when the group is opened. * Change posting mechanism to use "_-_" in message-id to indicate subject changes, as required by News standard. * edwin/curren.scm[1.122]: Change SET-BUFFER-POINT! to change the first window that the buffer is shown in if it is not the selected buffer. * edwin/evlcom.scm[1.52]: Fix bug: STRING-COLUMNS was being called with incorrect arguments. Apparently this reference was missed when the imaging code was rewritten. * edwin/bufcom.scm[1.103], edwin/dired.scm[1.167]: Implement POP-UP-TEMPORARY-BUFFER, a fairly general mechanism for popping up temporary buffers. Redefine several old uses of such buffers to use this new mechanism. 1997-05-17 Chris Hanson * microcode/ntscreen.c[1.29], microcode/ntscreen.h[1.15], microcode/prntio.c[1.6]: Change NT:MSGWAITFORMULTIPLEOBJECTS to check for messages that were removed from the input queue and placed on one of the screen queues. This eliminates a serious bug in Edwin: running an asynchronous evaluation that did no output would cause Edwin to lock up until the evaluation completed. 1997-05-15 Chris Hanson * win32/graphics.scm[1.12]: Add ability to specify custom color palette when creating a window. * runtime/runtime.pkg[14.278], runtime/runtime.pkg[14.277]: Add X-specific operation to return the visual-info data structures for a display, and a structure definition for these structures. * runtime/os2graph.scm[1.13], win32/graphics.scm[1.11]: Add generic operation to determine the bit-depth of an image associated with a window. * runtime/x11graph.scm[1.46]: Add generic operation to determine the bit-depth of an image associated with a window. Add X-specific operation to return the visual-info data structures for a display, and a structure definition for these structures. * microcode/x11graph.c[1.38]: Modify X image procedures to support images with depths greater than 8 bits. Add documentation strings to all of the image primitives. 1997-05-13 Chris Hanson * win32/dibutils/dibutils.c[1.3], win32/dibutils/dibutils.h[1.3]: Add "FAR WINAPI" declarations to the functions exported from this DLL, so that the Watcom compiler will compile them using the calling conventions that Scheme is expecting. 1997-05-11 Chris Hanson * microcode/os2conio.c[1.9], microcode/os2cthrd.c[1.9], microcode/os2cthrd.h[1.6], microcode/os2msg.c[1.11], microcode/os2msg.h[1.14], microcode/os2pmcon.c[1.23]: Two changes to improve inter-thread message-transmission performance: 1. Eliminate "msg_list_t" type and implement a fifo abstraction that is powerful enough to support the previous applications of message lists. This eliminates the calls to malloc and free that were needed to build the lists, and replaces them by an aggregate, amortized cost. 2. When transmitting a message for which a receiving thread is waiting, call DosSleep to give up the rest of the transmitting thread's time slice, so that the receiving thread will run as soon as possible. 1997-05-06 Chris Hanson * microcode/nttrap.c[1.13]: Don't use try...except exception handling with Watcom compiler. Instead use SetUnhandledExceptionFilter. 1997-05-05 Chris Hanson * microcode/s/Attic/linux.h[1.12]: Allow dld support to be disabled. * microcode/pruxdld.c[1.11]: Add an option to disable dld support, since the Red Hat Linux we are running on the action machines doesn't seem to support it, while the Debian Linux we're running on everything else does. * microcode/pruxdld.c[1.10]: Unknown change implemented by adams. * microcode/cmpauxmd/i386.m4[1.47]: Fix bug: scheme_to_interface must clear the floating-point register stack. Otherwise, inexplicable floating-point errors can occur. An example of such an error can be created by typing `-1e-194' at a freshly-booted scheme. The actual problem is somewhat involved. The C compiler assumes that all of the floating-point registers are empty on the entry to any procedure. As a consequence of this assumption, it feels free to use all 8 of the registers. However, if this assumption is violated, a C procedure that uses too many registers will signal a floating-point stack overflow. However, the Scheme compiler does not follow this convention; more precisely, since it was originally designed to use reasonable floating-point hardware, in which the floating-point registers are organized as a bank of registers rather than a stack, it doesn't do anything about popping registers when it is done with them. As a consequence, floating-point operations generated by the Scheme compiler often leave values on the floating-point stack. To work around this without redesigning the compiler, the compiled-code interface clears out the stack whenever it transfers between C and Scheme code. The bug fixed by this revision was a transfer point that did not have code to clear out the stack. 1997-05-03 Chris Hanson * runtime/arith.scm[1.39]: Fix thinko: INTEGER-ROUND was doing round-to-odd instead of round-to-even. 1997-05-02 Chris Hanson * runtime/numpar.scm[14.12]: Fix stupid typo in previous change. * runtime/arith.scm[1.38]: Fix incredibly stupid think-o in previous change. 1997-05-01 Chris Hanson * microcode/uxproc.c[1.20]: Changes needed to get PTY subprocesses working under BSDI. * microcode/version.h[11.151.1.3]: Changes to support BSDI and FreeBSD. * microcode/ux.h[1.67]: Fix think-o in previous change. * microcode/bchmmg.c[9.92]: Customize properly for POSIX, eliminating unnecessary prototype for "lseek", which has been causing problems on some BSD systems. * microcode/cmpauxmd/i386.m4[1.46]: Don't use ** operator, because it isn't recognized on some of the BSD versions of m4. Use << instead. * microcode/uxtop.c[1.20]: Disable declarations for sys_errlist and sys_nerr except where needed. Most systems define these nowadays. * microcode/Attic/oscond.h[1.23], microcode/s/Attic/386bsd.h[1.2], microcode/ux.h[1.66]: Customize for BSDI and FreeBSD. * microcode/s/Attic/linux.h[1.7.1.2], microcode/s/Attic/linux.h[1.11], microcode/unxutl/Attic/ymkfile[1.91]: Add switch USE_BUILT_IN_LIMITS_FILES for systems that have built-in and . Previously this hack was specific to Linux. 1997-04-28 Chris Hanson * microcode/intprm.c[1.7]: Add new primitive LIST->INTEGER. * runtime/arith.scm[1.37]: Optimize the change implemented in the previous revision, as it had a serious impact on performance. * runtime/arith.scm[1.36]: Change method used by EXACT->INEXACT on integers. It turns out that the old method, the INT:->FLONUM, does not round reliably, and as a consequence the LSB of the result is sometimes wrong. However, the conversion performed by INTEGER->FLONUM is accurate provided that the integer being converted can be exactly represented by a flonum, i.e. for IEEE double-precision floats, an integer with magnitude less than (EXPT 2 53). The algorithm used to convert ratnums to flonums already has this property, so the integer conversion has been changed to use it. * runtime/numpar.scm[14.11]: Fix two bugs: (1) parser was not recognizing radix prefixes when STRING->NUMBER called with an explicit radix argument; and (2) parser not allowing exponents without an explicit sign. 1997-04-24 Chris Hanson * runtime/numpar.scm[14.10], runtime/runtime.pkg[14.276]: Complete reimplementation of the number parser. New parser is 3.5 times as fast as the old one (see data below), and includes the contribution due to the improved EXACT->INEXACT. New switch FLONUM-PARSER-FAST? allows the number parser to sacrifice accuracy for performance, and gains another factor of 2.4 in performance on flonums. ---------------------------------------------------------------------- Tests performed with a list of 100000 randomly-generated strings. The strings were generated by "test-numpar.scm", which implements the R4RS number BNF, so the strings are arbitrary numeric syntax. This is a test of general number-reading performance. Results for old exact->inexact and old string->number: process time: 9690 (9060 RUN + 630 GC); real time: 9690 process time: 9460 (8830 RUN + 630 GC); real time: 9458 process time: 9450 (8820 RUN + 630 GC); real time: 9451 process time: 9460 (8830 RUN + 630 GC); real time: 9456 average real time: 9514 msec Results for new exact->inexact and new string->number: process time: 2800 (2800 RUN + 0 GC); real time: 2800 process time: 2790 (2790 RUN + 0 GC); real time: 2786 process time: 2700 (2700 RUN + 0 GC); real time: 2703 process time: 2680 (2680 RUN + 0 GC); real time: 2686 average real time: 2744 msec Average improvement is a factor of 3.5 in speed. * microcode/uxenv.c[1.16]: Workaround: Linux doesn't seem to record Scheme-program execution time as "user" process time, so change process-time clock to count both "user" and "system" time. Normally only "user" time counts. 1997-04-23 Chris Hanson * runtime/arith.scm[1.35], runtime/version.scm[14.173]: Dramatically improve the performance of EXACT->INEXACT on ratnums and (EXPT 2 x). Slightly improve INTEGER-ROUND. These changes require two new primitives implemented in microcode 11.158. Here are the results for EXACT->INEXACT. These tests were run by calling EXACT->INEXACT on a list of 100000 randomly-generated ratnums. The numerator and denominator were each chosen using a modulus of (EXPT 2 64), discarding zero denominators and integer quotients. The machine was a dual Pentium Pro 200MHz / 512kB cache, 128MB RAM, running SMP Linux 2.0.26 and libc 5.4.20. Scheme was run using the runtime.com band and a heap of 4000. The machine was otherwise quiescent. Results for old EXACT->INEXACT: process time: 1750 (1470 RUN + 280 GC); real time: 37350 process time: 1000 (780 RUN + 220 GC); real time: 37359 process time: 900 (900 RUN + 0 GC); real time: 37345 process time: 2460 (2060 RUN + 400 GC); real time: 37370 average real time: 37356 msec Results for new EXACT->INEXACT: process time: 580 (580 RUN + 0 GC); real time: 5825 process time: 240 (240 RUN + 0 GC); real time: 5480 process time: 910 (910 RUN + 0 GC); real time: 5450 process time: 840 (540 RUN + 300 GC); real time: 5770 average real time: 5631 msec Average improvement is a factor of 6.6 in speed. * microcode/version.h[11.158]: New primitives to support faster conversion of ratnum to flonum. * microcode/artutl.c[1.14], microcode/bignum.c[9.44], microcode/bignum.h[9.30], microcode/extern.h[9.55], microcode/intprm.c[1.6]: Add new primitive INTEGER-SHIFT-LEFT. This is a very fast way to multiply an integer by a power of two. 1997-04-22 Chris Hanson * microcode/artutl.c[1.13], microcode/extern.h[9.54], microcode/intprm.c[1.5]: Implement new primitive INTEGER-LENGTH-IN-BITS. This computes the length of a non-negative integer in the obvious way; it computes the length of a negative integer by negating it and then returning the value for the positive equivalent. This primitive can be used to greatly speed up the conversion of rational numbers to flonums. * microcode/bigprm.c[1.5]: Add primitive BIGNUM-LENGTH-IN-BITS. 1997-04-20 Chris Hanson * runtime/char.scm[14.6]: Speed up CHAR->DIGIT and DIGIT->CHAR. Also change all arithmetic to fixnum arithmetic, and reorganize file slightly. 1997-04-17 Chris Hanson * edwin/bufcom.scm[1.102]: Add code to prompt user when killing a buffer that is modified or has an active process. This is done by means of a variable containing a list of "query" procedures. 1997-04-11 Chris Hanson * edwin/loadef.scm[1.31], edwin/manual.scm[1.14]: Add command M-x clean-manual-entry. 1997-04-05 Chris Hanson * edwin/snr.scm[1.31]: Eliminate a few of the calls to NEWS-GROUP:CLOSE-DATABASE, since they have an adverse effect on performance. 1997-04-03 Chris Hanson * edwin/win32.scm[1.8]: Change event-reading loop to block when waiting for an event while none of the Edwin windows is active. This is safe because we won't get any events until one of them becomes active, and at that time the activation messages will cause a return from the block. * microcode/ntscreen.c[1.28], microcode/ntscreen.h[1.14], microcode/prntio.c[1.5]: Add conditionalized code to generate a trace file showing message receipt, waiting, and event fetching. This was used to track down a busy-wait loop in Edwin. 1997-04-02 Chris Hanson * edwin/rcsparse.scm[1.2]: Don't barf when a "branch" field appears in the admin block. * microcode/intrpt.h[1.19], microcode/ntscmlib.h[1.8], microcode/ntsig.c[1.20], microcode/nttop.c[1.20], microcode/ntutl/scheme31.c[1.9], microcode/ntutl/scheme32.c[1.14], microcode/version.h[11.157]: Rewrite Win32 (as opposed to Win32s) DLL to use auxiliary thread and Sleep() API call to generate async timer interrupts. Use a critical section to synchronize the two threads' access to the interrupt registers. These changes should eliminate the "spurious interrupt" error messages that have been showing up from time to time. 1997-04-01 Chris Hanson * microcode/os2pm.c[1.30], microcode/os2pm.scm[1.7], microcode/pros2pm.c[1.20], runtime/os2winp.scm[1.14]: Implement new primitive to get at the OS/2 PM "system values". 1997-03-31 Chris Hanson * edwin/edwin.pkg[1.210], edwin/nntp.scm[1.14], edwin/snr.scm[1.30]: Add code to close the NNTP database files after each high-level operation. This is desirable on OS/2 because keeping the files open prevents other programs from reading them. * runtime/option.scm[14.34]: Flush purification queue after loading an option. Otherwise, if the option creates a new environment, and that environment has state variables, the contents of those state variables will be purified at the time of the next GC. * microcode/prgdbm.c[1.2]: Replace incorrect use of stderr with outf_error. 1997-03-30 Chris Hanson * compiler/base/make.scm[4.107], compiler/machines/i386/rulfix.scm[1.28], compiler/machines/mips/lapgen.scm[1.14], compiler/machines/mips/rulfix.scm[1.10], compiler/machines/spectrum/rulfix.scm[4.47], compiler/rtlgen/opncod.scm[4.63]: Fix bug in code generation for the HEAP-AVAILABLE? primitive. The primitive compares addresses using an unsigned comparison, but the compiled code was using a signed comparison. This was the cause of sporadic failures that have been seen while running Edwin with a large heap on OS/2; it could have happened on any operating system when Edwin was run with a sufficiently large heap. This fix changes the compiled code to use an unsigned comparison. * edwin/os2term.scm[1.20]: Fix bug: C-x 5 o was not causing the selected frame to become active. * edwin/snr.scm[1.29]: Eliminate error that would occur when updating news groups while any groups list other than the subscribed-groups list was being shown in a buffer. * edwin/intmod.scm[1.87]: Make sure that evaluation buffers have the correct setting for the scheme-environment variable; this is needed so that completion will work correctly. This was a problem in debugger buffers. 1997-03-21 Chris Hanson * microcode/ux.c[1.16], microcode/version.h[11.151.1.2]: In linux_heap_malloc, use the MAP_FIXED flag to force the kernel to provide the page at the given address. Version 1.2 kernels ignore the "start address" argument if this flag is unspecified. 1997-03-19 Chris Hanson * edwin/info.scm[1.124]: Fix bug: info-directory-list should be allowed to contain pathnames as well as strings. 1997-03-18 Chris Hanson * microcode/ntgui.c[1.19]: Fix bug: Watcom compiler passes arguments in registers by default, and trick of pointing to first argument doesn't get pointer that points "into the stack". 1997-03-14 Chris Hanson * edwin/dosfile.scm[1.10]: Backup filenames being returned for deletion are supposed to be fully qualified; they were not. 1997-03-10 Chris Hanson * edwin/edwin.pkg[1.209], edwin/keyparse.scm[1.2], edwin/verilog.scm[1.4], edwin/vhdl.scm[1.4]: * Create interface to allow keyparser description to be built up incrementally. This aids in development and debugging of descriptions. * Modify indentation computation so that comment lines are indented properly. Previously they were indented just like code lines. * Change definition of MATCH-HEADER so that it accepts the keyparser stack as an argument. Also open up the stack-entry abstraction. These changes allow MATCH-HEADER to use contextual information in its decision-making process. * Fix some problems in the VHDL implementation. Use new MATCH-HEADER extension to distinguish two cases of FOR keyword that are otherwise syntactically identical. * edwin/comatch.scm[1.3]: Fix typo. Add another combinator. 1997-03-08 Chris Hanson * edwin/vhdl.scm[1.3]: Add entry for "loop" structure. * edwin/comatch.scm[1.2], edwin/vhdl.scm[1.2]: Remove evaluation information that is no longer accurate. 1997-03-07 Chris Hanson * edwin/decls.scm[1.59], edwin/ed-ffi.scm[1.42], edwin/edwin.ldr[1.59], edwin/edwin.pkg[1.208], edwin/loadef.scm[1.30], edwin/verilog.scm[1.3]: Implement VHDL mode. Generalize the keyword parser used by Verilog mode so that it is powerful enough to parse both languages. Implement a high-level extensible pattern matcher to allow the VHDL indenter to recognize keyword contexts in cases where it is necessary. * edwin/regexp.scm[1.70]: Fix typo in previous revision. 1997-03-04 Chris Hanson * 6001/floppy.scm[1.19]: Change to conform to new design of Edwin regular-expression procedures. * edwin/comhst.scm[1.5], edwin/comint.scm[1.23], edwin/debug.scm[1.41], edwin/dired.scm[1.166], edwin/dosfile.scm[1.9], edwin/edwin.pkg[1.207], edwin/edwin.pkg[1.206], edwin/fileio.scm[1.142], edwin/info.scm[1.123], edwin/malias.scm[1.3], edwin/manual.scm[1.13], edwin/occur.scm[1.3], edwin/regexp.scm[1.69], edwin/rmail.scm[1.57], edwin/rmailsrt.scm[1.9], edwin/rmailsum.scm[1.33], edwin/shell.scm[1.14], edwin/snr.scm[1.28], edwin/strtab.scm[1.45], edwin/telnet.scm[1.10], edwin/unix.scm[1.75], edwin/verilog.scm[1.2], runtime/rgxcmp.scm[1.108]: Create new data type for a compiled regular expression; this type contains the case-fold information used to compile the regexp. Modify the low-level regular-expression procedures to accept this new type and to no longer have an argument for case-fold. Modify the high-level regular-expression procedures to accept a compiled regular expression in place of a regular-expression string; in this case the optional case-fold argument is ignored. Edit all references to the low-level procedures to conform to this new design. 1997-03-03 Chris Hanson * edwin/lspcom.scm[1.157]: Add procedure to find the start of a definition that a mark is in. * edwin/edwin.pkg[1.205], edwin/regexp.scm[1.68], edwin/syntax.scm[1.79]: Add procedure to generate regular-expression "groups" from lists of alternatives. 1997-02-23 Chris Hanson * edwin/debug.scm[1.40], edwin/edwin.pkg[1.204], edwin/eystep.scm[1.4], edwin/info.scm[1.122], edwin/screen.scm[1.115], edwin/snr.scm[1.27]: Change data structures and calling conventions of screen abstraction so that "highlighting" can specify the "face" in which the text will appear. This generalization allows us to modify the terminal abstractions to support multiple fonts and colors. * runtime/vector.scm[14.10], runtime/vector.scm[14.9], runtime/vector.scm[14.8]: Add several new operations on vectors. Eliminate unnecessary bindings. 1997-02-22 Chris Hanson * runtime/vector.scm[14.7]: Add several new operations on vectors. Eliminate unnecessary bindings. 1997-02-21 Chris Hanson * runtime/chrset.scm[14.5], runtime/cpress.scm[1.9], runtime/cpress.scm[1.8], runtime/input.scm[14.18], runtime/input.scm[14.17], runtime/port.scm[1.10], runtime/port.scm[1.9], runtime/runtime.pkg[14.275]: Guarantee that all input ports have a READ-SUBSTRING operation. Implement procedures READ-STRING! and READ-LINE. 1997-02-20 Chris Hanson * microcode/prntfs.c[1.11]: Fix typo in translation of unix time to NT file time. 1997-02-12 Chris Hanson * microcode/interp.c[9.87], microcode/scheme.h[9.37]: Move only reference to COMPILE_STEPPER from "scheme.h" to "interp.c", since that is the only file affected. Also, the previous location of this reference prevented the assignment in "config.h" from being properly seen. * edwin/os2.scm[1.37]: Fix thinko from change to implement "krypt" support. * runtime/dragon4.scm[1.9]: Fix what appears to have been a thinko in the rounding of floating-point printed representations. This fix prevents the code from diverging with certain combinations of numbers and rounding modes. An example that caused this problem: (set! flonum-unparser-cutoff '(relative 4)) (/ (* 10e3 100e-15)) I'm not entirely convinced I understand the problem at this point; I don't have a copy of the paper at hand to remind me how the printer algorithm works. But the change fixes the bug, seems to work correctly on other test cases, and matches what my partial understanding says should be happening. 1997-02-08 Chris Hanson * edwin/cinden.scm[1.16]: Fix bug in C indentation. 1997-02-05 Chris Hanson * microcode/x11base.c[1.70]: Add hack suggested by "amu@mit.edu (Aaron M. Ucko)" to locally bind the BackSpace key to DEL. 1997-01-25 Chris Hanson * runtime/datime.scm[14.16]: Fix bug: code for make-decoded-time can easily signal an error when the time being represented is earlier than 1970 on a unix machine. Fix allows such times to be represented, but without filling in day-of-week, timezone, and daylight-savings fields. 1997-01-22 Chris Hanson * runtime/io.scm[14.49]: * Fix bug in INPUT-BUFFER/DISCARD-CHAR: was not doing anything if the input buffer was empty. * Change INPUT-BUFFER/READ-SUBSTRING to read a whole buffer from the input channel if the required number of characters is less than the size of the buffer. * Change INPUT-BUFFER/READ-SUBSTRING to continue reading from the input channel until the substring is filled or the channel has no more characters available. This is a correct fix for the change made in revision 14.47; this fix does a probe of the channel to determine if there are any characters immediately available. Previous to 14.47 the procedure might have blocked waiting for input that was not ready, even if it had already partly filled the substring. Now it will immediately return any characters that are available, and block only when nothing is available. 1997-01-15 Chris Hanson * edwin/rmail.scm[1.56]: Fix call to APPEND-TO-FILE that should have been patched in the previous change. 1997-01-13 Chris Hanson * microcode/s/Attic/linux.h[1.7.1.1], microcode/version.h[11.151.1.1]: Put mmap modifications from revision 1.10 into the 7.4 release. 1997-01-10 Chris Hanson * microcode/os2top.c[1.18]: Generalize version-number handling to detect IBM's continued use of version numbers such as 2.4 rather than 4.0. 1997-01-06 Chris Hanson * edwin/dos.scm[1.44]: Use new directory reader to get better attribute information from Win32. This requires microcode 11.156 and runtime 14.172. 1997-01-05 Chris Hanson * edwin/dos.scm[1.43]: Use new directory reader to get better attribute information from Win32. This requires microcode 11.156 and runtime 14.172. * runtime/ntprm.scm[1.11], runtime/runtime.pkg[14.274], runtime/version.scm[14.172]: Add new file to customize Win32 directory reader. Extend Win32 file attributes vector to include the mode bits. This version of the runtime system requires microcode 11.156 or later. * microcode/prntfs.c[1.10], microcode/version.h[11.156]: Extensive changes to the code that gets information about files; new code is smarter about reading protected files. Also add new directory-reading primitive to allow the runtime system to get full file-attribute information; this is otherwise impossible as the directory reader is able to get file information that the file-attribute calls can't. * microcode/ntfs.c[1.14]: Add new procedure to get all of the information from the directory reader. * microcode/ntfile.c[1.8]: Add file-opening flags that hint to the operating system about how to optimize file caching. * microcode/ntapi.h[1.2]: Add new system call. * microcode/ntutl/makefile.wcc[1.6]: Add dependencies for ntapi.h. * microcode/ntutl/makefile.wcc[1.5]: Add explicit dependencies to many of the files as wmake seems not to have this behavior. 1997-01-03 Chris Hanson * edwin/autosv.scm[1.31], edwin/filcom.scm[1.189], edwin/fileio.scm[1.141], edwin/fileio.scm[1.140], edwin/rmail.scm[1.55], edwin/sendmail.scm[1.35]: Change output procedures to ignore translate-file-data-on-output in some circumstances. This is necessary because RMAIL files want this variable set to #F, but M-x write-region should ignore the variable binding in that case and do translation anyway. 1997-01-02 Chris Hanson * microcode/ntutl/scheme16.c[1.10], microcode/ntutl/scheme32.c[1.13]: Rearrange the code that sets memtop to trigger an interrupt. I have a strong suspicion that these timer interrupts run in a separate thread under NT. If so, this is a really dangerous thing to be doing without synchronization. This rearrangement will minimize the window in which problems can occur. * microcode/avltree.c[1.3], microcode/bchdrn.h[1.8], microcode/bchpur.c[9.66], microcode/bignum.c[9.43], microcode/bintopsb.c[9.66], microcode/bitstr.c[9.60], microcode/comutl.c[1.30], microcode/extern.c[9.36], microcode/fasdump.c[9.62], microcode/findprim.c[9.51], microcode/hooks.c[9.56], microcode/lookprm.c[1.10], microcode/ntio.c[1.14], microcode/ntsys.c[1.7], microcode/nttrap.c[1.12], microcode/rgxprim.c[1.11], microcode/utils.c[9.71]: Eliminate compiler warnings generated under NT. * edwin/win32.scm[1.7]: Change event-reading code to use SELECT rather than kludge of giving up time slice and polling. This requires corresponding changes in microcode 11.155 and runtime 14.171. * runtime/ntprm.scm[1.10], runtime/version.scm[14.171]: *** Note: this version of the runtime system requires microcode version 11.155 or later. *** * Implement heuristic to detect unix drivers and perform appropriate end-of-line translations for them. * Provide names for Win32 file-system info flags. * Reimplement SELECT support to match changes in microcode. The improved support helps to prevent Scheme from getting stuck while waiting for input. * microcode/version.h[11.155]: Extensive changes to provide proper support for Win32 API calls. This new support integrates with the runtime system to provide correct names for procedures and errors, and eliminates the need to use a unix-style name in association with a Win32 API entity. * Create new Win32-specific channel types. Eliminate non-OS-specific channel type names. * Introduce new file "ntapi.h" to encapsulate information about the Win32 API. Rename macros for NT system calls, separating them into two groups: one to handle unix-style calls, the other to handle Win32-style calls. Eliminate NT_ aliases of C library procedures. Create Win32-specific system-call names, API-call names, and errors. Update all references to the old names. * Implement OS_malloc, OS_realloc, and OS_free; change various call sites to use these. * Change the low-level timer-interrupt handler to generate a GUI message when a Scheme interrupt is generated; this is necessary to unblock Scheme if it is blocked inside MsgWaitForMultipleObjects. 1997-01-01 Chris Hanson * microcode/Attic/dosfile.c[1.3], microcode/nt.h[1.6], microcode/ntenv.c[1.15], microcode/ntfile.c[1.7], microcode/ntfs.c[1.13], microcode/ntgui.h[1.7], microcode/ntio.c[1.13], microcode/ntscmlib.h[1.7], microcode/ntsig.c[1.19], microcode/nttop.c[1.19], microcode/ntutl/scheme16.c[1.9], microcode/ntutl/scheme31.c[1.8], microcode/ntutl/scheme32.c[1.12], microcode/osio.h[1.12], microcode/prntenv.c[1.6], microcode/prntfs.c[1.9], microcode/prntio.c[1.4], microcode/prosio.c[1.14], microcode/prospty.c[1.3], microcode/syscall.h[1.10], microcode/uxfile.c[1.8], microcode/uxio.c[1.40], microcode/uxterm.c[1.25]: Extensive changes to provide proper support for Win32 API calls. This new support integrates with the runtime system to provide correct names for procedures and errors, and eliminates the need to use a unix-style name in association with a Win32 API entity. * Create new Win32-specific channel types. Eliminate non-OS-specific channel type names. * Introduce new file "ntapi.h" to encapsulate information about the Win32 API. Rename macros for NT system calls, separating them into two groups: one to handle unix-style calls, the other to handle Win32-style calls. Eliminate NT_ aliases of C library procedures. Create Win32-specific system-call names, API-call names, and errors. Update all references to the old names. * Implement OS_malloc, OS_realloc, and OS_free; change various call sites to use these. * Change the low-level timer-interrupt handler to generate a GUI message when a Scheme interrupt is generated; this is necessary to unblock Scheme if it is blocked inside MsgWaitForMultipleObjects. * microcode/os2pm.c[1.29]: Simplify code that changes a window's size. Both the old and new code produces incorrect results on my machine. This seems to be an OS/2 bug, as it consistently adds too much padding to the frame window's header height. * microcode/os2pmcon.c[1.22], microcode/pros2pm.c[1.19]: Disable byte alignment for windows created by Scheme. 1996-12-25 Chris Hanson * edwin/snr.scm[1.26], edwin/snr.scm[1.25]: * Change terminology to refer to "seen" articles as "deleted". * Introduce new marking, "browsed", to indicate articles whose headers have been shown in a news-group buffer. These "browsed" markings are used to prevent a common problem with cross posts: after having marked an article in one group, re-marking the cross-posted article differently in another group clobbers the original markings. The news reader now examines the "browsed" marking, and does not re-mark any cross post that has already been "browsed". * Change code that selects initial header when opening a news-group buffer for the first time. New code does not automatically expand a thread whose first message is "deleted". * compiler/machines/i386/make.scm[1.5]: Don't disable stack checks for this architecture; stack overflow is impossible to debug without them (except on OS/2 which has clever virtual-memory support for this). Also note that all other architectures generate them by default. 1996-12-24 Chris Hanson * edwin/fileio.scm[1.139]: Modify BACKUP-BUFFER to chase through symbolic links so that the backup operates on the file rather than the link. * edwin/unix.scm[1.74]: Simplify OS/BACKUP-BUFFER? to be consistent with Emacs 19. * edwin/snr.scm[1.24]: Fix bug: not showing all headers when reverting group buffer. Also rewrite handling of cross posts to concentrate cross-post management in one place. 1996-12-19 Chris Hanson * edwin/edwin.pkg[1.203], edwin/snr.scm[1.23]: Implement new variable news-group-keep-ignored-headers. Change purging code to use new interface. * edwin/nntp.scm[1.13]: Reimplement code to purge pre-read headers and bodies. New code calls predicate with a header instead of with a message number, deletes message-id entries properly, and eliminates any body without a corresponding header. 1996-12-16 Chris Hanson * edwin/vc.scm[1.25]: Preserve time stamp of file when reverting to previous revision. * microcode/Attic/config.h[9.97], microcode/Attic/config.h[9.96], microcode/s/Attic/linux.h[1.10], microcode/ux.c[1.15]: Use special allocator to allocate the heap when running under Linux. Linux ELF pushes the text and data segments up into high addresses, leaving most of the low addresses empty. To get access to them, we must use mmap. 1996-12-11 Chris Hanson * microcode/x11base.c[1.69]: Add one final tweak to get X-WINDOW-SET-POSITION working properly. It now works correctly under XFree86; I haven't tested it under HP-UX mwm, but I think it is probably still failing there. There seems to be some kind of translation problem on that system. * microcode/s/Attic/linux.h[1.9]: Change location of X11 library; the previous location is not valid for many distributions now. * edwin/xcom.scm[1.15]: Change implementation of M-x show-frame-size to use new primitive to determine size of frame in pixels. * microcode/x11base.c[1.68]: Reimplement X-WINDOW-GET-POSITION and add new X-WINDOW-GET-SIZE. 1996-12-10 Chris Hanson * edwin/edwin.pkg[1.202], edwin/xcom.scm[1.14]: Implement commands to show the size and position of the editor frame. * microcode/x11base.c[1.67]: Implement new primitive to get the desktop coordinates of a window's frame. 1996-12-07 Chris Hanson * edwin/decls.scm[1.58], edwin/dos.scm[1.42], edwin/ed-ffi.scm[1.41], edwin/edwin.ldr[1.58], edwin/edwin.pkg[1.201]: Implement remaining Dired customizations for Win32. (All further customizations require subprocess support.) * edwin/snr.scm[1.22], edwin/snr.scm[1.21]: Fix thinko in recent change. 1996-12-06 Chris Hanson * edwin/edwin.ldr[1.57], edwin/os2.scm[1.36]: Add support for encrypted files. 1996-12-04 Stephen Adams * runtime/msort.scm[14.4]: Changed SORT to return a newly allocated list (as specified in the reference manual) in the case of a singleton list. 1996-12-01 Stephen Adams * runtime/msort.scm[14.3], runtime/partab.scm[14.4], runtime/qsort.scm[14.2], runtime/uproc.scm[1.10]: Changed some calls to ERROR to calls to ERROR:WRONG-TYPE-ARGUMENT etc. * runtime/x11graph.scm[1.45]: Added graphics operation DRAW-TEXT-OPAQUE. Removed duplicate X-GRAPHICS/FILL-POLYGON. 1996-12-01 Chris Hanson * edwin/rmail.scm[1.54]: Change to permit RMAIL files to be visited in RMAIL mode under NT (no support for reading mail yet). 1996-11-30 Chris Hanson * edwin/snr.scm[1.20]: Fix "unused variable" warning. 1996-11-26 Stephen Adams * runtime/msort.scm[14.2]: Speed up SORT! 45% by using fixnum index arithmetic. 1996-11-22 Chris Hanson * edwin/snr.scm[1.19]: Don't remove messages from the "seen" list when erasing their "ignored" bit. The appropriate action will be taken elsewhere. 1996-11-21 Chris Hanson * edwin/snr.scm[1.18]: * Add support for remembering marked articles in group structure and in group init file. Change server buffer to show which groups contain marked articles. Extend M-x news-read-marked-bodies so that it will work from the server buffer, fetching all of the marked articles in all of the groups. * Change group buffer to show threads that have pre-read bodies. * When marking an article, if it is not being ignored, make sure that it is removed from the ignored-subjects database. 1996-11-18 Chris Hanson * microcode/prntfs.c[1.8]: Ignore sharing-violation errors when reading file attributes, treating the file as non-existent. This is not correct, but until the NT errors are properly mapped, the runtime system won't be able to handle this error. * microcode/ntscreen.c[1.27]: Change call to `PostMessage' to use `SendMessage' to eliminate race condition when adjusting font and size of window together, as does my .edwin file. 1996-11-14 Stephen Adams * swat/scheme/widget-mit.scm[1.2]: Fixed '() <--> #F bug in FIND-TK-PROTECTION-LIST-FROM-NUMBER. 1996-11-13 Stephen Adams * microcode/hppacach.c[1.11]: reverted change but left both #defines of KERNEL_FILE in place. * microcode/hppacach.c[1.10]: Changed to look for both hpux9 and hpux10 kernel files. 1996-11-10 Stephen Adams * compiler/machines/i386/compiler.pkg[1.22]: Added the disassembler back into the normal system. 1996-11-08 Stephen Adams * microcode/s/Attic/linux.h[1.8]: Added support fo dynamic loading. Includes flag `-rdynamic' for linking main program. 1996-11-07 Stephen Adams * edwin/debug.scm[1.39]: Changed an occurence of MAP to FOR-EACH to make behaviour deterministic. Added variables `debugger-show-inner-frame-topmost?' and `debugger-compact-display?' to control the display of information. 1996-10-28 Chris Hanson * edwin/nntp.scm[1.12]: Don't purge the header database when updating the server info. This caused the newsreader startup to be extremely slow. * edwin/snr.scm[1.17]: Don't purge header database when reading headers in; this unnecessarily slows down the header-reading process. 1996-10-24 Chris Hanson * edwin/xterm.scm[1.54]: Synchronize action of XTERM-SCREEN/ENTER! until after the window is properly mapped on the screen. This will hopefully eliminate the weird race condition that has been causing so many errors. * edwin/key-x11.scm[1.4]: Fix bug that can cause a SIGSEGV. * edwin/nntp.scm[1.11]: Change NEWS-HEADER:GUARANTEE-FULL-TEXT! so that it stores the header text after it is fetched. This is necessary to allow off-line reading to work properly. 1996-10-23 Chris Hanson * edwin/nntp.scm[1.10]: Change code that joins and splits threads on the basis of subject. This code is now more discriminating than previously. * edwin/snr.scm[1.16], edwin/snr.scm[1.15]: When reading in context headers, mark them as ignored when necessary. Also, delete entire threads of "seen" context headers. 1996-10-15 Chris Hanson * edwin/nntp.scm[1.9]: Fix another thinko. * edwin/nntp.scm[1.8]: Fix thinko. * edwin/nntp.scm[1.7]: Fix bug: try harder to open the database files. * edwin/edwin.pkg[1.200]: Changes to news reader. * edwin/snr.scm[1.14]: * Add new switches: news-group-keep-seen-headers news-group-show-seen-headers * Change default for news-group-show-context-headers. * Change binding of news-toggle-online to shift-O. * Change code that collapses and expands threads so that only those threads that need to be changed are actually rewritten. * Add "B" marker in header lines to show which messages have associated bodies stored in the new body database. * Add command news-read-marked-bodies (bound to "r") to read the marked bodies in a news-group buffer. * Make noticeable change to the performance of header-parsing code, in order to support groups with very large numbers of headers. * edwin/nntp.scm[1.6]: * Add database for message bodies. * Modify handling of message-header database so that messages are keyed by ID as well as by number. * Purge obsolete headers from the cache and database when the server info is updated. * Change format in which headers are stored in database to improve performance. * Use gdbm_fastmode for database files at all times. * Various small performance tweaks to header-parsing code. * Change thread organizing code to separate the switch for context headers from the switch allowing server probes. 1996-10-14 Chris Hanson * edwin/snr.scm[1.13]: Make sure that groups are tracked after being unsubscribed so that they will be deleted from the groups list when their "article-seen" information is irrelevant. Save groups list whenever a group buffer is killed, to help insure consistency between the groups list and the header cache. 1996-10-10 Chris Hanson * edwin/dos.scm[1.41], edwin/edwin.pkg[1.199], edwin/notify.scm[1.17], edwin/os2.scm[1.35], edwin/rmail.scm[1.53], edwin/unix.scm[1.73]: Generalize how RMAIL looks for the spool directory and the movemail program. 1996-10-09 Chris Hanson * edwin/dos.scm[1.40], edwin/dosfile.scm[1.8], edwin/os2.scm[1.34]: Now that microcode implements directory-reading properly, use the OS/2 directory reader for Win32. This is implemented by moving the directory reader to "dosfile.scm", since we aren't supporting DOS any more. * runtime/runtime.pkg[14.273]: Now that microcode implements directory-reading properly, use the OS/2 directory reader for Win32 rather than the DOS directory. * microcode/ntscreen.c[1.26]: Fix font-selection code so that it will allow selection of raster fonts. * microcode/ntfs.c[1.12]: Fix directory reader so that wildcarding is done by the Win32 API rather than Scheme code. This improves performance and makes the wildcarding work as in other Win32 programs. Also implement OS_directory_read_matching which improves performance of completion in Edwin. 1996-10-08 Chris Hanson * microcode/x11base.c[1.66]: Further refine the error-catching code in X-WINDOW-SET-INPUT-FOCUS. It now catches the error that was causing the problems. * edwin/wincom.scm[1.121]: When creating a new frame, don't select it -- attempting to do this causes a race condition that can cause X to signal an error. Instead, rely on the window manager to select the window if that is appropriate. * microcode/ntutl/wconfig.bat[1.3]: Adjustment for correct Watcom configuration. 1996-10-07 Chris Hanson * runtime/ntprm.scm[1.9]: Define bits for Win32 attributes. * edwin/dos.scm[1.39]: Adjust handling of file modes that are now Win32 attributes rather than unix mode bits. * edwin/dos.scm[1.38]: Adjust dired line layout to accomodate Win32-specific mode string. * edwin/edwin.pkg[1.198], edwin/win32.scm[1.6], edwin/win32com.scm[1.7]: Implement M-x set-frame-size. Fix bug in M-x show-frame-size. * win32/clipbrd.scm[1.2], win32/wf_user.scm[1.7], win32/win32.pkg[1.9]: Add new procedures ADJUST-WINDOW-RECT, GET-CLIENT-RECT, WIN32-SCREEN-WIDTH, and WIN32-SCREEN-HEIGHT. Fix bug in GET-DEVICE-CAPS. * runtime/datime.scm[14.15], runtime/dosprm.scm[1.39], runtime/ntprm.scm[1.8], runtime/unxprm.scm[1.46]: Fix bug: previously, "universal time" was really unix time. This fix does the translation between universal time and unix time. * runtime/runtime.pkg[14.272]: Export new variable EPOCH. * microcode/ntgui.c[1.18]: Implement primitives to get the size of the character box in pixels and to set the size of the window. * microcode/ntscreen.c[1.25]: Change font-setting code to interpret the font size in points rather than in logical units. This makes this code consistent with the font-setting dialog. Handle the WM_WINDOWPOSCHANGING message in order to guarantee that the window is sized to an integral number of characters. Also, many formatting changes. * microcode/ntenv.c[1.14]: Change OS_encoded_time to use Win32 API. * microcode/ntfs.c[1.11]: Catch additional error code that can occur when file doesn't exist. * microcode/prntfs.c[1.7]: Change file-info primitives to use Win32 API calls instead of C library calls. Return mode string and mode bits in native format rather than unix format. * microcode/prosenv.c[1.14]: Change time decode/encode to use unsigned integer conversions. * microcode/ntscreen.h[1.13]: Add export for screen_char_dimensions. 1996-10-04 Chris Hanson * 6001/floppy.scm[1.18]: Fix bug: interface to OS/BUFFER-BACKUP-PATHNAME was changed and reference in this file was missed. * microcode/x11base.c[1.65]: Fix a thinko in the last change. 1996-10-03 Chris Hanson * microcode/os2utl/makefile.cmn[1.9]: Work around bug in GNU make on OS/2: backslash before output redirection seems to be generating a null-string argument which is misinterpreted by findprim. 1996-10-02 Chris Hanson * microcode/ansidecl.h[1.5], microcode/avltree.c[1.2], microcode/bignmint.h[1.5], microcode/bignum.c[9.42], microcode/bignum.h[9.29], microcode/bigprm.c[1.4], microcode/bitstr.c[9.59], microcode/bitstr.c[9.58], microcode/bitstr.c[9.57], microcode/boot.c[9.97], microcode/cmpint.c[1.90], microcode/debug.c[9.48], microcode/extern.c[9.35], microcode/fasdump.c[9.61], microcode/fasload.c[9.82], microcode/findprim.c[9.50], microcode/generic.c[9.38], microcode/hooks.c[9.55], microcode/hooks.c[9.54], microcode/intern.c[9.55], microcode/interp.c[9.86], microcode/lookup.c[9.55], microcode/lookup.h[9.49], microcode/memmag.c[9.63], microcode/memmag.h[1.5], microcode/ntfile.c[1.6], microcode/ntgui.c[1.17], microcode/ntscreen.c[1.24], microcode/ntsig.c[1.18], microcode/ntsys.c[1.6], microcode/nttty.c[1.6], microcode/ntutl/scheme32.c[1.11], microcode/ntutl/scm-cl3.lst[1.8], microcode/option.c[1.43], microcode/osscheme.c[1.9], microcode/prim.c[9.38], microcode/primutl.c[9.70], microcode/prntfs.c[1.6], microcode/prntio.c[1.3], microcode/prosio.c[1.13], microcode/prosterm.c[1.15], microcode/prostty.c[1.6], microcode/pruxfs.c[9.54], microcode/pruxfs.c[9.53], microcode/purutl.c[9.48], microcode/step.c[9.33], microcode/string.c[9.37], microcode/sysprim.c[9.42], microcode/term.c[1.13], microcode/usrdef.h[9.42], microcode/utils.c[9.70], microcode/vector.c[9.37], microcode/wabbit.c[1.4]: Many small changes to eliminate errors and warnings when compiling under Win32 using either Visual C++ 4.0 or Watcom C/C++ 10.6. * microcode/cmpauxmd/i386.m4[1.45], microcode/ntutl/makefile.wcc[1.4], microcode/ntutl/wconfig.bat[1.2]: Changes that result in a successful build with the Watcom compiler. * microcode/ntasutl.asm[1.5]: Fix bug: use of "tiny" memory model causes Watcom linker to produce invalid executable. The memory model is irrelevant here, anyway, since there are no references to memory in this code. * edwin/dired.scm[1.165], edwin/dos.scm[1.37], edwin/os2.scm[1.33], edwin/unix.scm[1.72]: Add new OS-specific procedure DIRED-PATHNAME-WILD? so that unix can support the full range of filename expansion provided by the shell. 1996-10-01 Chris Hanson * edwin/comtab.scm[1.67]: Eliminate duplicate bindings differing only in case in bindings lists. 1996-09-30 Chris Hanson * microcode/x11base.c[1.64]: In x-window-set-input-focus, flush the display queue right away. Otherwise, the error-catching code from the previous revision will have no effect since the command will be sent later. * edwin/rmail.scm[1.52]: Fix buffer-memoization bugs. Eliminate random patch installed by bal. 1996-09-28 Chris Hanson * 6001/edextra.scm[1.21], 6001/make.scm[15.25]: Change defaults for configuration directories: the course material goes under "~u6001" but the working directory is in the user's home directory. The directories are now all chosen when the editor is started rather than when the band is built. * edwin/os2term.scm[1.19]: When scrolling, inform the screen code that the cursor has been moved so that it can move it back if necessary. * edwin/screen.scm[1.114]: Add ability for the terminal-scrolling code to tell the screen code that the cursor position has been invalidated by the scroll. 1996-09-27 Chris Hanson * 6001/make.scm[15.24]: Change 6.001 package to put the student root directory in the user's home directory, rather than using an absolute pathname that might not exist on a given system. 1996-09-26 Chris Hanson * edwin/os2term.scm[1.18]: Fix interrupt hole in updating of screen size. 1996-09-20 Chris Hanson * microcode/x11base.c[1.63]: Patch to help fix bug in 6.001 debugger. 1996-09-12 Chris Hanson * microcode/x11base.c[1.62]: Patch X error handers so that they kill Scheme when the X connection is lost. This is a kludge, but is needed to fix a common problem. 1996-09-06 Chris Hanson * edwin/dired.scm[1.164]: Fix bug: error signalled in dired when trying to determine whether a given pathname specifies a directory. * runtime/uerror.scm[14.44]: Add entries to file-primitive translation table to cover the new primitives used to open files. 1996-08-26 Stephen Adams * runtime/pp.scm[14.38]: Added DEFINE-INTEGRABLE to list of specially formatted keywords. 1996-08-20 Stephen Adams * microcode/x11graph.c[1.37]: Added X-GRAPHICS-DRAW-IMAGE-STRING. 1996-08-19 Stephen Adams * microcode/uxtrap.h[1.25]: Made traps work for HPUX 10. 1996-08-12 Chris Hanson * microcode/cmpauxmd/hppa.m4[1.37]: Fix illegal instructions that are rejected by the new HP assembler. 1996-07-31 Stephen Adams * swat/scheme/tk-mit.scm[1.3]: Fix thinko: only conditions are errors! * swat/scheme/tk-mit.scm[1.2]: Wrapped call-backs in error trapping code. * swat/Makefile[1.2]: Added tags target. 1996-07-27 Stephen Adams * runtime/list.scm[14.22]: Re-instated the iterative version of MAP. I keep getting bitten by long lists. 1996-07-26 Stephen Adams * runtime/random.scm[14.16]: make random-state-tag define-integrable. * runtime/uerror.scm[14.43]: Added new stack frame type for preservation frames (restore-regs). Added a debugging-info method. Changed the illegal-arg error handler for primitive procedures to avoid using retry restarts when the primitive signalled a type or range error when called from compiled code. This is necessary because the compiler assumes that if it calls a primitive just to raise an error then teh primitive will not return. This assumption allows type inference to eliminate furthur checks. In order to stop the debugger returning a value, the primitive should be called `indirectly' via another compiler procedure which refuses to return. I.e instead of compiling the error CAR operation as INVOKE:PRIMITIVE (#[primitive-procedure car] x) call it like this: (signal-primitive-error '#[primitive-procedure car] x) where SIGNAL-PRIMITIVE-ERROR is compiled like this: (define (signal-primitive-error primitive . arguments) (apply primitive arguments) (error "...")) 1996-07-20 Stephen Adams * microcode/fixnum.c[9.40]: Typo. * microcode/fixnum.c[9.39]: Added FIXNUM->FLONUM. 1996-07-12 Stephen Adams * runtime/x11graph.scm[1.44]: Added graphcis operations DRAW-ARC, DRAW-CIRCLE and FILL-CIRCLE. * microcode/x11graph.c[1.36]: Fixed X-GRAPHICS-DRAW-ARC to do the right thing when the X and/or Y axes are flipped. * microcode/x11graph.c[1.35]: Added X-GRAPHICS-DRAW-ARC for drawing filled and unfilled arcs. 1996-07-02 Chris Hanson * microcode/uxio.c[1.39]: Rewrite `poll' support to make it conditionalized more cleanly. * microcode/uxio.c[1.38]: Use POLLNORM in preference to POLLIN since the former is supported more widely. * edwin/screen.scm[1.113]: Fix minor bug in handling of cursor during SCREEN-FORCE-UPDATE. 1996-07-01 Chris Hanson * microcode/uxio.c[1.37]: If the `poll' system call is available, use it in preference to `select'. This is needed for HP-UX 10.10 because `select' is broken in that release. * microcode/ux.h[1.65]: Add conditionalization to detect versions of HP-UX that supply the `poll' system call. * microcode/Attic/oscond.h[1.22]: Add conditionalization to detect HP-UX version 10.10. 1996-06-16 Chris Hanson * edwin/rmail.scm[1.51]: Fix bug that caused RMAIL to signal an error when converting poorly formed messages to RMAIL format. 1996-06-11 Chris Hanson * runtime/dragon4.scm[1.8]: Implement "engineering" display mode. 1996-06-07 Stephen Adams * swat/scheme/swat.sf[1.2]: Included "load.scm" in syntax sequence. Added copyright notice. * swat/scheme/load.scm[1.2]: Any identifier containing `protect' is no longer exported. 1996-06-06 Chris Hanson * runtime/dragon4.scm[1.7]: Extend FLONUM-UNPARSER-CUTOFF to allow specification of the display mode, e.g. SCIENTIFIC or ENGINEERING. 1996-05-24 Chris Hanson * edwin/process.scm[1.51]: Fix bug: don't enqueue a process in the process-input-queue if it is already in the queue. Otherwise, it can easily get entered very many times: if there is input waiting, and the editor is busy, the process will be queued as often as the select code can run. 1996-05-18 Chris Hanson * runtime/io.scm[14.48], runtime/runtime.pkg[14.271], runtime/socket.scm[1.8], runtime/version.scm[14.170]: Change mechanism used to open files and sockets, so that interrupts are enabled during the open. This is necessary, because any network-based operation could potentially hang for long periods of time, and it's desirable for the user to be able to interrupt out of the operation. This change requires microcode version 11.154 (or the corresponding version 13). In addition to this change, the low-level channel code was changed to eliminate the now-obsolete gc-daemon interlocking code. * microcode/os2sock.c[1.3]: Fix code so that interrupts delivered during socket calls will deallocated sockets where necessary. * microcode/uxsock.c[1.14]: Add code to allow delivery of interrupts during socket-opening system calls. * microcode/prosfile.c[1.8], microcode/pruxsock.c[1.10], microcode/version.h[11.154]: Implement new primitives to support new method for opening files and sockets. This code is required for runtime version 14.170. 1996-05-17 Chris Hanson * runtime/socket.scm[1.7]: Allow keyboard interrupts while opening sockets. This is only a partial solution: there is a small window in which an interrupt can arrive, leaving the descriptor open but forgotten. * runtime/boot.scm[14.11]: Implement new procedure, like WITHOUT-INTERRUPTS, except that it allows keyboard interrupts. * microcode/os2sock.c[1.2]: Allow interrupt delivery during socket system calls. * microcode/os2utl/makefile.cmn[1.8]: Fix typo. 1996-05-15 Chris Hanson * edwin/process.scm[1.50]: Fix thinko. * edwin/fileio.scm[1.138]: Fix bug: GROUP-INSERT-FILE! was depending on the fact that INPUT-BUFFER/READ-SUBSTRING did not return until the argument buffer was full -- which is no longer true. * edwin/process.scm[1.49]: Eliminate random heuristic buffer-size modulation from previous change. It turns out that the behavior that necessitated this heuristic was a bug in the runtime system. * runtime/io.scm[14.47]: Eliminate loop in INPUT-BUFFER/READ-SUBSTRING. When line-translation was in effect, this loop caused this procedure to read input until the buffer was filled. However, the procedure is supposed to return as soon as some input is available. * edwin/snr.scm[1.12]: Fix thinko: point was not being moved appropriately when marking headers backwards. * edwin/snr.scm[1.11]: Fix typo. * edwin/snr.scm[1.10]: Force the reader on-line when the user requests re-reading all of the headers in a group. Save the database files after refreshing all of the groups. Fix typo. * edwin/screen.scm[1.112]: In SCREEN-MOVE-CURSOR, forget current position of cursor in order to force it to be moved at the end of the update. This works around bugs in the terminal implementations: sometimes the cursor is moved as a side-effect of some other operation. It's easier to fix this here than to modify each implementation to guarantee that the cursor is not moved. 1996-05-14 Chris Hanson * edwin/screen.scm[1.111]: In SCREEN-FORCE-UPDATE, forget the cursor position, so that it will be updated during the redisplay. * edwin/process.scm[1.48]: Yet more work on synchronous-subprocess I/O. The simple loop using non-blocking I/O has atrocious performance characteristics, at least under OS/2. It's now been replaced by something that uses blocking I/O where possible, and modulates the buffer length to provide better feedback for incremental output. * edwin/os2term.scm[1.17]: Guarantee that the presentation space for a window is set to its normal colors at the end of a redisplay. Previously, it was often left in the highlight colors, which would cause areas of the window to be painted in the foreground color when they were exposed. * edwin/screen.scm[1.110]: Move the cursor only when its position is changed. Previously, the cursor was being moved many times in a row to the same location. This was caused by repeated screen updates being run as a result of processing input events. Input events can be quite common even when there is no typing going on, as a result of window-system operations, mouse tracking, etc. * edwin/edtfrm.scm[1.89], edwin/edwin.pkg[1.197], edwin/edwin.pkg[1.196], edwin/eystep.scm[1.3], edwin/process.scm[1.47], edwin/screen.scm[1.109], edwin/screen.scm[1.108], edwin/snr.scm[1.9], edwin/vc.scm[1.24], edwin/vc.scm[1.23], edwin/window.scm[1.158], edwin/window.scm[1.157]: Change DISPLAY-STYLE in order to orthogonalize the effects that it can have. New design allows each of the different style effects to be selected separately. * edwin/buffrm.scm[1.51], edwin/bufwin.scm[1.305], edwin/window.scm[1.156]: Change definition of UPDATE-INFERIOR! in order to centralize the testing of DISPLAY-STYLE when deciding whether or not to update the inferior. * edwin/process.scm[1.46]: When doing redisplay in a synchronous subprocess, update once before starting I/O loop. * runtime/runtime.pkg[14.270]: Define new operations: CLOSE-INPUT, CLOSE-OUTPUT, INPUT-OPEN?, OUTPUT-OPEN?, and WRITE-CHARS. * edwin/process.scm[1.45]: Rewrite SYNCHRONOUS-PROCESS-WAIT to reduce the amount of redisplay activity, and to eliminate direct references to channels. 1996-05-13 Chris Hanson * runtime/fileio.scm[1.10], runtime/genio.scm[1.7], runtime/ttyio.scm[1.5]: Define new operations: CLOSE-INPUT, CLOSE-OUTPUT, INPUT-OPEN?, OUTPUT-OPEN?, and WRITE-CHARS. * edwin/process.scm[1.44]: Fix bug: reading output from a subprocess would occasionally signal an error because the subprocess output channel was closed by Scheme when it detected that the subprocess had closed the other end of the pipe. However, the "output-copier" loop continued to operate assuming that the channel was open. 1996-05-12 Chris Hanson * edwin/os2.scm[1.32], edwin/unix.scm[1.71]: Change popclient code to use new indicator to allow redisplay during synchronous-subprocess execution. * edwin/process.scm[1.43]: Fix bug in code that writes data to subprocess -- channel was being closed before output buffer was flushed. Also, add code to specify whether or not redisplay is allowed during synchronous-process execution, and default it to disallowed, because it is extremely distracting while doing a revert-buffer in a Dired buffer. * edwin/debug.scm[1.38]: Wrap debugger extent with CLEANUP-POP-UP-BUFFERS. This allows the debugger to be called at times when there are active popped-up buffers. Previously, quitting from the debugger in this situation would cause the previously popped-up buffer to be hidden. * edwin/edwin.pkg[1.195], edwin/snr.scm[1.8]: Add commands to read and write the .newsrc file. 1996-05-11 Chris Hanson * edwin/snr.scm[1.7]: When doing certain extended server interactions, do redisplay periodically to show changes to the user. * edwin/os2term.scm[1.16]: Finish changes stared with previous revision: must handle visibility events specially while previewing events; must also handle paint events specially. Handling of paint events is different from handling of X expose events -- this seems to mean that when a window is exposed, X sends the expose event first, but OS/2 sends something other than the paint event first. * edwin/os2.scm[1.31], edwin/unix.scm[1.70]: Pop up a buffer showing the "popclient" output so that it is visible while "popclient" is running. Use new popped-up buffer features to keep it visible if an error occurs. * edwin/prompt.scm[1.168]: Use new procedure MAYBE-KILL-POP-UP-BUFFER. * edwin/wincom.scm[1.120]: Implement new procedures: MAYBE-KILL-POP-UP-BUFFER calls KILL-POP-UP-BUFFER if its argument is the popped-up buffer. KEEP-POP-UP-BUFFER prevents a popped-up buffer from being killed by an enclosing CLEANUP-POP-UP-BUFFERS. POPPED-UP-BUFFER returns the POPPED-UP buffer, if any. * edwin/process.scm[1.42]: Change SYNCHRONOUS-PROCESS-WAIT so that it does redisplay while it's waiting. This allows the output from a synchronous subprocess to be incrementally displayed as it is read. * edwin/editor.scm[1.241], edwin/fileio.scm[1.137], edwin/shell.scm[1.13], edwin/utils.scm[1.40]: Eliminate CALL-WITH-PROTECTED-CONTINUATION. 1996-05-10 Chris Hanson * microcode/os2.h[1.5], microcode/os2api.h[1.9], microcode/os2io.c[1.7], microcode/pros2fs.c[1.16]: Change initialization code to allocate a minimum of 256 file handles for Scheme. The old default of 20 is too small -- quickly eaten by a small number of subprocesses in Edwin -- and worse, the default is not a constant but depends on the method used to invoke Scheme. The number of file handles can by dynamically changed using a new primitive. The channel table is initialized to 1024 entries, allowing plenty of room for growth should that be desired. * edwin/process.scm[1.41]: Fix thinko in process-name allocation. 1996-05-09 Chris Hanson * microcode/pruxsock.c[1.9]: Fix typo. * microcode/os2utl/makefile.cmn[1.7]: Add support for sockets and GDBM under OS/2. * microcode/os2api.h[1.8], microcode/os2cthrd.c[1.8], microcode/os2cthrd.h[1.5], microcode/os2io.c[1.6], microcode/os2io.h[1.3], microcode/os2pipe.c[1.7], microcode/os2top.c[1.17], microcode/pruxsock.c[1.8]: Add support for sockets under OS/2. * edwin/nntp.scm[1.5]: Eliminate support for use of "tcp" subprocess in place of real socket support. This was used under OS/2 to work around the lack of socket support, but did not work properly because the subprocess could not be reliably killed. This is now moot since OS/2 socket support has been implemented. * microcode/version.h[11.153]: Change release version number from 7.4.3 to 7.5, since the former will be needed for patches to the 7.4 release, and the current sources contain code that won't go into the 7.4 series. Also replace the "(alpha)" with "a" to be more succinct. 1996-05-08 Chris Hanson * edwin/process.scm[1.40]: Fix bug -- inverted meaning of input vs. output for subprocess communications. * edwin/cinden.scm[1.15]: Fix bug in handling of top-level indentation. This bug was introduced in revision 1.11. 1996-05-06 Chris Hanson * edwin/edwin.pkg[1.194], edwin/snr.scm[1.6]: Another round of changes to the News reader. 1996-05-05 Chris Hanson * edwin/buffer.scm[1.169]: Make BUFFER-POINT a little smarter. 1996-05-04 Chris Hanson * edwin/dos.scm[1.36], edwin/fileio.scm[1.136], edwin/os2.scm[1.30], edwin/unix.scm[1.69]: Fix bug under OS/2: when overwriting a file that has its "archived" bit cleared, the bit should be set but was not. * runtime/datime.scm[14.14]: Fix bug: encoding times with time-zone information was not scaling the time-zone information to seconds as expected by the microcode. 1996-05-03 Chris Hanson * edwin/os2term.scm[1.15]: Fix handling of VISIBILITY event so that screen contents are immediately invalidated. This allows subsequent redisplay events to take proper action. * edwin/snr.scm[1.5]: Fix bug in marking of "ignored" articles from article buffer. * runtime/ntprm.scm[1.7], runtime/os2prm.scm[1.29]: Fix think-o in INIT-FILE-SPECIFIER->PATHNAME for OS/2 and Windows. * edwin/edwin.pkg[1.193]: Add exports for "win32com". * edwin/win32com.scm[1.6], edwin/win32com.scm[1.5]: Change command names and documentation strings to use the noun "frame" rather than "screen". * edwin/os2term.scm[1.14]: Add code to avoid writing the title-bar string except when it changes. Otherwise it flickers annoyingly in common circumstances. * edwin/os2com.scm[1.4]: Fix missing variable error. Improve documentation string. 1996-04-24 Chris Hanson * edwin/nntp.scm[1.4]: Fix some minor bugs. * runtime/os2prm.scm[1.28], runtime/random.scm[14.15], runtime/unxprm.scm[1.45]: Update copyright. * runtime/version.scm[14.169]: Many changes subsequent to release. * edwin/debug.scm[1.37], edwin/os2term.scm[1.13]: Fix typo. * runtime/defstr.scm[14.30], runtime/ed-ffi.scm[1.16], runtime/make.scm[14.58], runtime/packag.scm[14.25], runtime/pp.scm[14.37], runtime/random.scm[14.14], runtime/record.scm[1.24], runtime/runtime.pkg[14.269], runtime/unpars.scm[14.45], runtime/uproc.scm[1.9]: Integrate generic procedure mechanism into the runtime system. This mechanism implements a generic procedure call with good performance, but does not define an associated class structure as is common in object-oriented programming systems. It is, however, sufficiently general to allow such systems to be implemented on top of it, and even to share objects between different systems if the systems cooperate slightly. Much of the change here is to reorganize the cold-load sequence so that it is possible to bootstrap the runtime system. * runtime/ed-ffi.scm[1.15], runtime/optiondb.scm[1.4]: Add support for "gdbm" runtime load option. * runtime/io.scm[14.46], runtime/os2graph.scm[1.12], runtime/runtime.pkg[14.268], runtime/x11graph.scm[1.43]: Collect the several implementations of protection lists and merge them together in a single place. * runtime/dosprm.scm[1.38], runtime/ntprm.scm[1.6], runtime/os2prm.scm[1.27], runtime/sfile.scm[14.19], runtime/unxprm.scm[1.44]: Implement new "init-file" procedures for maintaining a database of files in the user's home directory. This is used by the Edwin News reader, which needs a convenient place to save its database files. * runtime/unxprm.scm[1.43]: Change OS/FILE-END-OF-LINE-TRANSLATION to use new FILE-SYSTEM-TYPE primitive to determine a more precise result. * runtime/datime.scm[14.13], runtime/dosprm.scm[1.37], runtime/ntprm.scm[1.5], runtime/os2prm.scm[1.26], runtime/os2prm.scm[1.25], runtime/runtime.pkg[14.267], runtime/unxprm.scm[1.42]: Implement support for time-zone information in decoded-time data type. Generalize the procedure FILE-TIME->STRING so that it generates an RFC-822 time string (when time-zone information is available from the microcode). * runtime/arith.scm[1.34], runtime/fixart.scm[1.2]: Move INT:->FLONUM from "arith" to "fixart" so that it will be available earlier in the cold-load sequence. * edwin/make.scm[3.91]: Numerous changes subsequent to release. * edwin/edwin.pkg[1.192], edwin/nntp.scm[1.3], edwin/snr.scm[1.4]: Extensive development of News reader; too many changes to list. * edwin/process.scm[1.39]: Change synchronous-process code to use line translation that is appropriate for the file associated with the process buffer, if any. This is necessary to get newline translation correct for compressed files. * edwin/dos.scm[1.35], edwin/os2.scm[1.29], edwin/unix.scm[1.68], edwin/utils.scm[1.39], edwin/vc.scm[1.22]: Implement new procedure FILE-TIME->LS-STRING, to generate a time string like that produced by the unix `ls' program. Change Dired and VC to use this string where appropriate. Consequently rewrite the DOS directory listing program to be more like that used for OS/2. * edwin/fileio.scm[1.135], edwin/os2.scm[1.28], edwin/unix.scm[1.67]: Change GROUP-INSERT-FILE! to accept an additional argument, which specifies the newline translation to be used for the insertion. This allows the compressed-file reading code to specify that the translation being used is that appropriate for the file being expanded. Formerly, the wrong translation was sometimes used because the compressed file is expanded into a temporary file, which can reside on a file system with a different translation, and the translation appropriate for the temporary was used. * edwin/dired.scm[1.163], edwin/dosfile.scm[1.7], edwin/fileio.scm[1.134], edwin/unix.scm[1.66]: Change OS/BUFFER-BACKUP-PATHNAME to accept another argument, the buffer being backed up. This is necessary to ensure that the backup control variables are properly referenced; formerly local bindings of these variables would not be referenced correctly. * edwin/edwin.pkg[1.191], edwin/linden.scm[1.125], edwin/schmod.scm[1.38]: Generalize lisp indentation code to support a new method for specifying how a lisp form is to be indented. The variable lisp-indent-regexps is an alist of regexp-method pairs, which is searched linearly for the first regexp that matches the keyword. This allows the "def" and "with-" rules to be implemented as special cases of this more general mechanism. * edwin/edwin.pkg[1.190], edwin/info.scm[1.121]: Change Info to use a list of info directories, rather than a single directory. This is now compatible with Emacs 19. * edwin/curren.scm[1.121], edwin/debug.scm[1.36], edwin/wincom.scm[1.119], edwin/xterm.scm[1.53]: Change OTHER-SCREEN to take a "count" argument. Change uses of OTHER-SCREEN to account for this, and to allow selection of "invisible" windows, which will now be auto-mapped. * edwin/edwin.pkg[1.189], edwin/sendmail.scm[1.34]: Modularize the header-generation and mail-mode initialization so that the relevant parts can be reused by the news reader. * edwin/rmail.scm[1.50]: Implement RMAIL label-manipulation commands. * edwin/edwin.pkg[1.188], edwin/regexp.scm[1.67]: Add some new procedures for using regular expressions on strings. * edwin/curren.scm[1.120]: Add optional argument to GLOBAL-WINDOW-MODELINE-EVENT! so that the caller can specify which windows the even applies to. * microcode/syntax.c[1.23], microcode/syntax.h[1.9]: Updating of character-syntax code, to handle C++-style comments. This is necessary for the new Verilog mode in Edwin. These changes require corresponding changes in Edwin. 1996-04-23 Chris Hanson * edwin/edwin.pkg[1.187], edwin/syntax.scm[1.78]: Fix typo. * edwin/modefs.scm[1.150]: Change frame-related key bindings to be compatible with Emacs 19. This means that C-x 5 has been redefined as a prefix key, and M-x split-window-horizontally is now bound to C-x 3 instead. * edwin/bufcom.scm[1.101], edwin/curren.scm[1.119], edwin/debug.scm[1.35], edwin/dired.scm[1.162], edwin/edwin.pkg[1.186], edwin/filcom.scm[1.188], edwin/os2com.scm[1.3], edwin/os2term.scm[1.12], edwin/scrcom.scm[1.5], edwin/sendmail.scm[1.33], edwin/tagutl.scm[1.55], edwin/wincom.scm[1.118], edwin/xcom.scm[1.13]: Change all user-visible references to the noun "screen" to use "frame" instead, for consistency with Emacs 19. * edwin/decls.scm[1.57], edwin/ed-ffi.scm[1.40], edwin/edwin.pkg[1.185], edwin/loadef.scm[1.29]: Add mode for editing Verilog programs. * edwin/cinden.scm[1.14], edwin/linden.scm[1.124], edwin/syntax.scm[1.77]: Change character syntax interface to use new features implemented by microcode. The new interface is almost like that of Lucid Emacs. * edwin/tximod.scm[1.20]: Add more features to Texinfo mode, to make it more like the current Emacs version. * edwin/manual.scm[1.12]: Change M-x manual-entry to use same naming convention for buffers that Emacs 19 uses. * edwin/comint.scm[1.22]: Change binding of M-x comint-bol from C-a to C-c C-a to match Emacs. * cref/make.scm[1.15], cref/redpkg.scm[1.9], cref/toplev.scm[1.10], edwin/edwin.sf[1.19]: Change CREF program so that it does not rewrite files unless the files they were derived from have changed. * compiler/machines/i386/compiler.sf[1.8], cref/cref.sf[1.9], edwin/edwin.sf[1.18], runtime/runtime.sf[14.12], sf/butils.scm[4.9], sf/sf.sf[4.7]: Improve SF-CONDITIONALLY to use same pathname-type defaulting that SF does. * microcode/version.h[11.152]: Update version numbers for post-release changes. * microcode/edwin.h[1.8]: Add primitive to test data type of Edwin "mark" objects. * microcode/ux.c[1.14]: Add error-checking OS-dependent procedures for allocating and deallocating memory. * microcode/pruxfs.c[9.52], microcode/syscall.h[1.9], microcode/ux.h[1.64], microcode/uxfs.c[1.12], microcode/uxtop.c[1.19]: Add primitive to allow unix systems to detect file-system type. This is particularly useful on systems like Linux which support many file-system types. * microcode/Attic/dosenv.c[1.9], microcode/ntenv.c[1.13], microcode/os2env.c[1.10], microcode/osenv.h[1.7], microcode/prosenv.c[1.13], microcode/ux.h[1.63], microcode/uxenv.c[1.15]: Add time-zone information to decoded-time structure. 1996-04-10 Chris Hanson * edwin/dired.scm[1.161]: Fix bug: dired commands that operate on multiple files were merging in the target directory without the target device; this works fine on Unix but not OS/2 or Windows. 1996-04-09 Stephen Adams * microcode/ntfile.c[1.5]: Fixed the problem of not being able to (edit and) save a file that is open for reading (usually by an error REPL). Files are now opened allowing concurrent reads AND writes. * microcode/ntsys.c[1.5], microcode/ntsys.h[1.6], microcode/nttop.c[1.18]: Changed Windows version handling so that Scheme correctly distinguishes Windows 3.1 from Windows 95. * runtime/ntprm.scm[1.4]: Kludged DOS/FS-LONG-FILENAMES? to return #F for ant FAT volume because of Windows'95 confusion about which names is the primary name and which names is the 8.3 alias * microcode/ntutl/scheme32.c[1.10]: Added #include to get rid of warnings. 1996-04-08 Chris Hanson * microcode/memmag.c[9.62]: Fix bug: primitives can't be conditionally defined, because the findprim program doesn't parse the conditionals. The previous change, which introduced a conditional primitive, broke this file on other operating systems. 1996-04-05 Chris Hanson * runtime/runtime.pkg[14.266]: Export *SAVE-UNCOMPRESSED-FILES?* and *UNCOMPRESSED-FILE-LIFETIME*, which are documented in the User's Guide. 1996-04-04 Chris Hanson * edwin/xterm.scm[1.52]: If a window is unmapped when it is selected, perhaps by deleting another window, map and raise it. * edwin/xterm.scm[1.51]: Differentiate between the primary Edwin window and all other (secondary) Edwin windows. Use distinct resource properties to determine the geometry of each type of window. If geometry is obtained from the resource class "Emacs", ignore the position information when creating secondary windows. This will make it possible to have secondary windows come up in non-overlapping positions on the display. * edwin/xterm.scm[1.50]: When window is hidden, either by being obscured or unmapped, and then revealed again, invalidate our model of the on-screen contents immediately, so that it is repainted the next time someone writes anything to the window. 1996-03-27 Stephen Adams * microcode/memmag.c[9.61]: Fixed copyright date. * microcode/memmag.c[9.60]: Win32 version: Made the VirtualFree/VirtualAlloc code optional and controlled by primitives. By default it is off, since it incurs the cost of zero-filling pages as they allocated. The main garbage collector should turn the feature is GC was paging, but how to measure this is not clear. 1996-03-23 Stephen Adams * microcode/cmpint.c[1.89], microcode/memmag.c[9.59], microcode/memmag.h[1.4], microcode/ntio.c[1.12], microcode/ntscmlib.h[1.6], microcode/ntsig.c[1.17], microcode/ntsys.h[1.5], microcode/nttop.c[1.17], microcode/ntutl/makefile[1.18], microcode/ntutl/scheme16.c[1.8], microcode/ntutl/scheme16.def[1.4], microcode/ntutl/scheme16.mak[1.4], microcode/ntutl/scheme31.c[1.7], microcode/ntutl/scheme31.def[1.3], microcode/ntutl/scheme32.c[1.9], microcode/ntutl/scheme32.def[1.3]: Changes to the Windows 3.1/95/NT version: auto-configuration and better virtual memory behaviour. There used to be two version of the library NTSCMLIB.DLL, one version for WIN32S, and another version for NT (and '95). The WIN32S version had a partner, NTW16LIB.DLL, to handle the 16-bit side of things. The system was configured for Windows 3.1 or NT by copying the appropriate version of NTSCMLIB.DLL into the same directory as SCHEME.EXE, or putting an appropriate directory in the PATH. The new scheme is that instead of two NTSCMLIB.DLL files and a NTW16LIB.DLL file there will be three files: SCHEME32.DLL The true 32 bit version (NT & '95) SCHEME31.DLL The windows 3.1 (win32s) version SCHEME16.DLL and its 16 bit buddy These are no longer bound at link time. Instead, nttop.c now detects WIN32S vs. NT and explicitly loads the appropriate version. To support this dynamic linking, the utilities referenced via a WIN32_SYSTEM_UTILITIES structure. Now both SCHEME31.DLL and SCHEME32.DLL use VirtualAlloc, so the garbage collector has been changed to de-commit and re-commit the pages in the old half-space. Toy experiments show that roughly 30-50% of the working set is in the old half-space. The allocation code *could* be changed to reserve the virtual address space of the whole heap as this would allow an extensible heap. 1996-03-23 Chris Hanson * runtime/graphics.scm[1.16]: Fix bug: GRAPHICS-TYPE-AVAILABLE? shouldn't be signalling errors. * edwin/rmail.scm[1.49]: Fix bug: rmail was trying to read new mail even when called with a filename as argument, in contradiction of the documentation string. * edwin/grpops.scm[1.23]: Add error check so that attempting to insert a negative number of characters results in a tractable error rather than a SIGSEGV. * edwin/cinden.scm[1.13]: Fix bug: the computed indentation could be negative, which caused Scheme to die with a SIGSEGV. 1996-03-21 Stephen Adams * edwin/edwin.pkg[1.184], edwin/win32.scm[1.5], edwin/win32com.scm[1.4]: Tidied the interface between WIN32-SCREENs and edwin commands. Modified Edwin commands SET-ICON. Added Edwin commands SET-FOREGROUND-COLOR SET-BACKGROUND-COLOR SET-FONT SET-DEFAULT-FONT SET-SCREEN-POSITION SHOW-SCREEN-SIZE SHOW-SCREEN-POSITION * win32/graphics.scm[1.10], win32/wf_user.scm[1.6], win32/win32.pkg[1.8]: Added new global variables WIN32/DEFINE-COLOR and WIN32/FIND-COLOR. Adjusted graphics code to work with them. Added new API `cover' procedure GET-WINDOW-RECT. * microcode/ntgui.c[1.16]: Added primitives: WIN32-SCREEN-SET-DEFAULT-FONT! WIN32-SCREEN-SET-FONT! WIN32-SCREEN-SET-FOREGROUND-COLOR! WIN32-SCREEN-SET-BACKGROUND-COLOR! * microcode/ntscreen.c[1.23], microcode/ntscreen.h[1.12]: Improved font handling: . Added ability to parse a string (e.g. "Courier New bold underline 20") into a font. . Use this to parse MITSCHEME_FONT. Removed MITSCHEME_FONT_SIZE env variable. . Added primitives WIN32-SCREEN-SET-FONT and WIN32-SCREEN-SET-DEFAULT-FONT Improved window sizing. Previously, if the main window was launched minimized, it woudl believe the main window should be the size of the icon, about 3x3 characters: too small to hold an error message. Now it figures out or guesses what the size and position would have been if and initializes to that. 1996-03-20 Chris Hanson * edwin/os2term.scm[1.11]: Change code that selects initial font so that it tries several fonts from a list, failing only when none of them is found. This is desirable because one user has reported that "System VIO" isn't available on his system. * microcode/os2pmcon.c[1.21]: Change code that selects initial font of console window so that it tries several fonts from a list, failing only when none of them is found. This is desirable because one user has reported that "System VIO" isn't available on his system. * microcode/os2pm.c[1.28]: Double PM thread stack size to eliminate nasty crashes during font dialog. Eliminate a variety of more subtle bugs in the font dialog code. 1996-03-11 Chris Hanson * microcode/uxproc.c[1.19], microcode/uxsig.c[1.32]: Fix bug: subprocesses were being started with SIGPIPE set to SIG_IGN. Some programs, notably gzip, depend on SIGPIPE being set to SIG_DFL (and don't bother to force this true themselves). 1996-03-09 Stephen Adams * runtime/unsyn.scm[14.19]: Fixed bug whereby ((lambda (x) x) 1 (f)) is unsyntaxed as (let ((x 1)) x). 1996-03-06 Chris Hanson * edwin/screen.scm[1.107]: Fix bug: new screens didn't update correctly under Linux (and probably other unixes), because their first update occurred before the first Expose event arrived, and that first update caused the NEEDS-UPDATE? flag to be cleared. The fix is to clear NEEDS-UPDATE? only when SCREEN-UPDATE is run. 1996-03-05 Stephen Adams * rcs/logmer.scm[1.15]: Added a check after the FILE-ATTRIBUTES-DIRECT call. The attributes will be #F if the file is a symlink to hyperspace. Failure to check was causing a SIGSEGV; now it print a warning. This still leaves the problem of symbolic link loops. I `fixed' this in the one place it was occuring by altering the symlinks. 1996-03-04 Chris Hanson * edwin/fileio.scm[1.133]: Fix bug that caused recentering under certain circumstances when writing out a buffer in which require-final-newline was set. * microcode/regex.c[1.16]: Fix bugs that caused ^ and $ to return incorrect answers when the gap was in specific locations. Repaginate. * microcode/Attic/config.h[9.95], microcode/cmpauxmd/i386.m4[1.44], microcode/s/Attic/linux.h[1.7], microcode/uxtop.c[1.18]: Changes to allow microcode to be compiled by the Linux ELF gcc. 1996-03-03 Chris Hanson * rcs/logmer.scm[1.14]: Trace symbolic links pointing to directories as well as those that point to files. This is necessary to get the directories "microcode/s" and "microcode/m" in the 7.4 tree. 1996-03-01 Chris Hanson * microcode/uxfs.c[1.11]: Finish change that was started in revision 1.10. * runtime/dospth.scm[1.36]: Fix bug in previous change. * edwin/lincom.scm[1.122]: Doing M-x reindent-then-newline-and-indent on a blank line would reindent that line and create a new indented line below it, leaving indentation in the original line. The fix eliminates this unnecessary indentation; the original line is empty after the command. * edwin/dired.scm[1.160]: When deleting files, determine whether a file is a directory using `file-attributes-direct' rather than `file-directory?'. The latter will return #t for a symbolic link pointing to a directory, in which case the deletion will fail. * edwin/c-mode.scm[1.54]: In M-x c-indent-command, if point is in the line's indentation, move it to the end of the indentation. * edwin/rmail.scm[1.48]: * get-pop-account-info, rmail-pop-accounts: allow arbitrary symbols to be specified as an account password. Currently, the symbol KERBEROS-V4 is allowed under unix systems. * rmail-output-to-rmail-file: when creating a new rmail file, put the header in a buffer and write the buffer out. This allows creation of a compressed rmail file. Previously, the file would be written with a ".gz" suffix, but not compressed. * edwin/unix.scm[1.65]: * os/pathname->display-string: discover pathnames that are aliases for the home directory. * unix/call-with-pop-client-password-options: allow Kerberos V4 passwords. 1996-02-29 Chris Hanson * edwin/dosfile.scm[1.6], edwin/unix.scm[1.64]: In OS/TRIM-PATHNAME-STRING, allow the user to delete part of an inserted directory and then follow it with an absolute pathname. * runtime/pathnm.scm[14.31]: In ENOUGH-PATHNAME, specially handle DOS network filenames, because they might partially match to non-network filenames. * runtime/dospth.scm[1.35], runtime/unxpth.scm[14.23]: Don't silently ignore pathname syntax errors; signal them. 1996-02-28 Stephen Adams * edwin/dos.scm[1.34]: Added cut and paste. * win32/win32.pkg[1.7]: Added clipbrd.scm and exported WIN32-CLIPBOARD-READ-TEXT and WIN32-CLIPBOARD-WRITE-TEXT. * win32/wf_user.scm[1.5]: Added Win32 API functions required for clipboard commands. 1996-02-28 Chris Hanson * runtime/dospth.scm[1.34], runtime/unxpth.scm[14.22]: Continuation of previous bug fix. 1996-02-27 Chris Hanson * edwin/unix.scm[1.63]: Fix long-standing bug in OS/HOSTNAME. * runtime/dospth.scm[1.33], runtime/unxpth.scm[14.21]: Fix bug: when an environment variable expands into a string that ends in a slash, that trailing slash must be ignored if the environment variable is delimited by a slash. * edwin/dosfile.scm[1.5], edwin/unix.scm[1.62]: Fix bug: code to determine when the user begins typing a new file name at the end of a file prompt must match the inserted file name in its entirety; previously it could mistakenly match against a substring of the inserted file name. 1996-02-24 Chris Hanson * microcode/os2fs.c[1.8]: Directory reader should treat "c:\\cph" differently from "c:\\cph\\", because the runtime system expects the former to return a listing for the directory file itself, and the latter to return a listing of the directory's contents. 1996-02-22 Chris Hanson * runtime/io.scm[14.45]: Fix bug: when line translation is in effect, reading a raw carriage-return would cause the end-index of an input buffer to become zero, indicating that the input channel had reached end-of-file. This is a logic error in the design of input buffers; it is fixed by defining logical end-of-file to be when input-buffer/real-end is zero, because the latter is unaffected by line translation. 1996-02-13 Chris Hanson * edwin/bufwiu.scm[1.30]: Fix bug: redisplay was needlessly recentering point whenever a change started at the first visible position of the buffer. This is rarely necessary. This bug was deliberately introduced in revision 1.25 to fix a more serious bug, in which the point could be left off-screen at the end of redisplay. This change fixes both bugs, by requesting redisplay whenever a change might affect point's position; previously it was incorrectly assumed that this request was unnecessary. * edwin/rmail.scm[1.47]: Fix bug: code to find unix mail messages appended to end of RMAIL file was failing due to incorrect regular expression. 1996-01-04 Chris Hanson * microcode/cmpint.c[1.88]: Change `declare_builtin' to do a sorted insertion into the table, so that a binary search works correctly. * microcode/cmpintmd/i386.h[1.30]: Add call to `declare_builtin' when setting up assembly-language builtins, so that the exception handler can properly recognize when an exception has occurred in a builtin. * microcode/cmpint.c[1.87]: Make sure that floating-point control word is properly initialized under OS/2. 1995-12-19 Chris Hanson * edwin/os2.scm[1.27]: Fix access violation caused by missing test for #f. 1995-11-26 Michael R. Blair * pcsample/pcsample.scm[1.2]: typo within backquote jungle. 1995-11-20 Chris Hanson * edwin/kilcom.scm[1.70], edwin/kilcom.scm[1.69]: Fix bug: when comparing interprogram-paste string to kill-ring, compare to last string killed, not last string yanked. Otherwise, when yanking from elsewhere in the ring, another copy of the last string killed will be inserted in the kill ring. 1995-11-19 Stephen Adams * pcsample/load.scm[1.3]: Add ZONES subpackage. * pcsample/zones.scm[1.2]: Renamed initialization procedure to INITIALIZE-PACKAGE! * pcsample/pcsdld.c[1.4]: Updateded documentation string. * pcsample/pcsample.c[1.4]: Changed %PC-SAMPLE/SET-ZONE! to incorporate a comparison with the pre-existing value. * pcsample/pcs.pkg[1.2]: Added ZONES sub-package. * rcs/mklogs.scm[1.8]: Added PCSAMPLE and SWAT to daily logs. 1995-11-19 Chris Hanson * edwin/xterm.scm[1.49]: Fix bug introduced in previous change to this file. This bug caused keystrokes to be lost when they were typed ahead while the editor was busy doing other things. 1995-11-13 Chris Hanson * edwin/debug.scm[1.34]: Don't override the geometry specification given in the X resource database. This can cause really unpleasant behavior. * runtime/runtime.pkg[14.265], runtime/socket.scm[1.6], runtime/thread.scm[1.22]: Disable the thread timer while doing hostname lookups, as it can cause the nameserver request to fail if the timer signal arrives while waiting for the nameserver reply. 1995-11-12 Chris Hanson * rcs/logmer.scm[1.13], rcs/logmer.scm[1.12], rcs/logmer.scm[1.11]: Generate more output to describe what is happening. * rcs/mklogs.scm[1.7]: Update with current directories, and also to use new calling conventions for RCS-DIRECTORY-LOG. * rcs/rcs.pkg[1.6]: Export RCS-DIRECTORY-LOG to the global environment, since that is where it's needed. * rcs/logmer.scm[1.10]: Don't regenerate RCS.log file unless at least one of the component RCS files has changed. This will make the common case more convenient, although it won't detect adding or removing files from the set being merged; in those cases the RCS.log should be deleted. Also, change the order of argument to RCS-DIRECTORY-LOG, default the output-file argument, and change it to be interpreted relative to the directory being merged. 1995-11-11 Chris Hanson * rcs/logmer.scm[1.9]: When reading directory, return both the working file and the RCS file for each entry, so that the merged log file can refer to the working file names rather than the RCS file names. * rcs/logmer.scm[1.8]: Fix bug in previous change. * rcs/logmer.scm[1.7], rcs/mklogs.scm[1.6]: Change log merger to accept a single directory argument, and to scan down that directory tree looking for files under RCS control. It additionally indirects through symbolic links, finding the RCS files for the linked files in their home directories. * microcode/prntenv.c[1.5]: Fix randomness in last change. 1995-11-10 Chris Hanson * edwin/dos.scm[1.33], edwin/dos.scm[1.32]: Assume that FILE-TIME->STRING will return a plausible string under all circumstances. * runtime/dosprm.scm[1.36], runtime/ntprm.scm[1.3]: Supply a default file-time string if the FILE-TIME->STRING primitive is unable to return a meaningful answer. * microcode/prntenv.c[1.4]: Don't return an empty string if ctime() doesn't know how to convert the argument -- return #F instead. 1995-11-09 Stephen Adams * microcode/uxio.c[1.36]: Reverted previous changes. * microcode/uxio.c[1.35]: *Attempt* to fix OS_channel_read_load_file and OS_channel_write_dump_file for sockets. Now it trys again if only part of the data is provided/consumed. BINARY-FASLOAD still failed occasionally, due to UX_read failing with errno==EINTR. BINARY-FASLOAD is well hairy so it is not clear to me that the usual UX_prim_check_errno would do the right thing (whatever that is). 1995-11-08 Stephen Adams * runtime/xeval.scm[1.5]: Fixed RCS header & copyright. 1995-11-07 Stephen Adams * runtime/chrset.scm[14.4]: Added STRING->CHAR-SET. 1995-11-06 Chris Hanson * microcode/Attic/dosfs.c[1.5], microcode/os2fs.c[1.7], microcode/pros2fs.c[1.15], microcode/pros2fs.c[1.14], microcode/prosfs.c[1.12], microcode/uxfs.c[1.10]: Reconcile various versions of file-copying primitives. * microcode/os2pmcon.c[1.20]: Force repainting of console window after a font change. This used to work, but changes to console_resize caused it to break. * microcode/os2utl/makefile.emx[1.7]: Patch to fix arguments to emxbind. * microcode/os2pm.c[1.27]: Patch for EMX/GCC. * edwin/make.scm[3.90], runtime/version.scm[14.168]: Update for release. 1995-11-04 Chris Hanson * microcode/version.h[11.151]: Update for release. * runtime/char.scm[14.5]: Fix RCS header line and copyright date. * edwin/edwin.sf[1.17], microcode/os2pm.c[1.26], microcode/pros2pm.c[1.18]: Fix typo. * runtime/os2graph.scm[1.11], runtime/runtime.pkg[14.264]: Set the icon of each graphics window to the standard graphics icon. * edwin/edwin.pkg[1.183], edwin/os2term.scm[1.10]: Set the icon of each Edwin screen to the standard Edwin icon. * microcode/os2pm.c[1.25], microcode/os2pm.scm[1.6], microcode/pros2pm.c[1.17], runtime/os2winp.scm[1.13]: Add primitive to destroy icons. * microcode/os2pm.c[1.24], microcode/os2pm.scm[1.5], microcode/pros2pm.c[1.16]: Fix first argument to WinLoadPointer. * microcode/pros2pm.c[1.15], microcode/pros2pm.c[1.14], runtime/os2winp.scm[1.12]: Fix typo: icon -> pointer. * microcode/os2pmcon.h[1.3], microcode/os2pmcon.h[1.2], microcode/os2pmcon.rc[1.4]: Change icon resources to be symbolically defined. * microcode/os2pm.c[1.23], microcode/os2pm.scm[1.4], microcode/pros2pm.c[1.13], runtime/os2winp.scm[1.11]: Add primitives to support loading and setting of icons. * microcode/os2pmcon.c[1.19], microcode/os2pmcon.rc[1.3]: Load an icon resource for the console window. * microcode/os2utl/makefile[1.13], microcode/os2utl/makefile.cmn[1.6], microcode/os2utl/makefile.emx[1.6], microcode/os2utl/makefile.gcc[1.5], microcode/os2utl/makefile.vac[1.5], microcode/os2utl/makefile.wcc[1.6]: Modify to customize resource files differently for scheme and bchscheme, and to allow debug/optimize to be selected by a setting in the main makefile. * microcode/os2pmcon.c[1.18]: Disable the "Copy" menu item when the marked region is not active. Improve logic that decides when it is active. Fix fencepost error in marked region determination. * microcode/os2pm.c[1.22], microcode/os2pm.scm[1.3], microcode/pros2pm.c[1.12]: Change OS2_menu_set_item_attributes to return the success value that the message-send returns. 1995-11-03 Stephen Adams * runtime/arith.scm[1.33]: In INT:->STRING . removed a DEFINE-INTEGRABLE that was causing unwanted code duplication, . Optimized PRINT-SMALL to use fixnum arithmetic when quotient is small enough. Gives 2x speedup for NUMBER->STRING on fixnums, * runtime/char.scm[14.4]: Changed DIGIT->CHAR and CHAR->DIGIT to give better error messages and to be faster. 1995-11-03 Chris Hanson * edwin/edwin.pkg[1.182], edwin/os2term.scm[1.9]: Use WinAlarm instead of DosBeep for ^G noise. * runtime/os2winp.scm[1.10]: Add some new primitives and events. * microcode/os2msg.h[1.13], microcode/os2pm.c[1.21], microcode/os2pm.h[1.12], microcode/os2pm.scm[1.2], microcode/os2pmcon.c[1.17], microcode/os2pmcon.rc[1.2], microcode/pros2pm.c[1.11]: * Reorganize the PM interface to encapsulate PM event messages and send them to the window's event qid in their original format. This simplifies the process of adding new event types, and allows the window's owner to decide what is relevant information. * Add some new interface calls to support mouse tracking and pop-up menus. * Implement a mechanism to mark characters with the mouse in the console window, and a Copy command to copy them to the clipboard. * microcode/os2xcpt.c[1.6]: Fix formatting of error message. * microcode/os2io.c[1.5]: Fix bug: don't signal an error when the type of a file handle can't be determined. Instead, just treat it like a pipe, which is operationally the least common denominator. * microcode/os2msg.c[1.10], microcode/pros2io.c[1.5]: Fix timing bug in inter-thread communications. This bug occurs when two threads read the same tqueue simultaneously, which violates the assumption that each tqueue is read by only one thread. This fix is a kludge that will be replaced later by a redesigned communications model. 1995-11-01 Chris Hanson * runtime/packag.scm[14.24], runtime/packag.scm[14.23]: Add ability to override default selection of constructor and loader files. * edwin/make.scm[3.89]: Save the operating-system-specific loading files under separate names, so that multiple operating systems may be supported from the same build-directory. 1995-10-31 Chris Hanson * edwin/edwin.sf[1.16], edwin/edwin.sf[1.15], edwin/edwin.sf[1.14], edwin/edwin.sf[1.13], edwin/make.scm[3.88], edwin/make.scm[3.87]: Save the operating-system-specific loading files under separate names, so that multiple operating systems may be supported from the same build-directory. * runtime/packag.scm[14.22]: Add ability to override default selection of constructor and loader files. * edwin/dos.scm[1.31]: Various listing-switches variables must accept strings, and allow themselves to be modified. * edwin/dired.scm[1.159]: Implement s command like that in Emacs 19. * edwin/diros2.scm[1.2], edwin/os2.scm[1.26]: Implement M command for Dired. Change Dired to show system/hidden files only when the "a" listing switch is given; by default these files are hidden. Implement S command to toggle the switch off and on. * microcode/pros2fs.c[1.13], runtime/os2prm.scm[1.24]: Change the FILE-INFO primitive to return two additional items: the attribute bits and the allocated file length. 1995-10-30 Chris Hanson * microcode/os2utl/makefile.wcc[1.5]: A variety of dependency changes corresponding to changes in the source files. Also, reconfigure to make debugging output the default, rather than optimized output. * microcode/os2utl/makefile.cmn[1.5], microcode/os2utl/makefile.emx[1.5], microcode/os2utl/makefile.vac[1.4]: A variety of dependency changes corresponding to changes in the source files. * microcode/os2pmcon.c[1.16]: Implement a variety of new features: a menu bar, a warning dialog on the "close", an "about" box, and a font-setting dialog. * microcode/os2msg.h[1.12], microcode/os2pm.c[1.20], microcode/os2pm.h[1.11], microcode/pros2pm.c[1.10]: Reorganize the OS/2 PM interface so that most of the interface procedures are automatically generated from templates by a Scheme program. This dramatically reduces the overhead required to implement a new PM procedure, or to modify the interface of an old one. * microcode/pros2fs.c[1.12]: Supply missing casts that are needed by IBM compiler. * microcode/os2.h[1.4]: Force inclusion of all possible interesting OS/2 header information. It's too much of a pain trying to restrict this information. * microcode/os2.c[1.7]: Add newlines so that error messages format better. * microcode/cmpauxmd/i386.m4[1.43]: Fix generation of .386p and .model declarations; they must always be supplied with Intel-style assemblers. 1995-10-28 Chris Hanson * runtime/ntprm.scm[1.2]: Change support for user-name and home directory so that it uses the environment variables that are being set in our NT configuration. Also, add better heuristic methods for discovering this information when it is not supplied in the environment variables. * microcode/ntfs.c[1.10]: Fix typos. * microcode/pros2fs.c[1.11]: Fix typo. * runtime/os2prm.scm[1.23], runtime/sfile.scm[14.18], runtime/unxprm.scm[1.41]: Move COPY-FILE into the operating-system-specific files. Both OS/2 and NT provide API calls to implement this operation, and these calls do a better job than is possible with the previous code. (For example, the OS/2 call also copies extended attributes.) * runtime/dosprm.scm[1.35], runtime/ed-ffi.scm[1.14], runtime/runtime.pkg[14.263]: New file "ntprm.scm" has Win32 primitive interface, which is now different from the DOS primitive interface. * microcode/pros2fs.c[1.10]: Guarantee that target file of copy operation is writable. * microcode/ntfs.c[1.9], microcode/prntfs.c[1.5]: Implement new primitives: NT-COPY-FILE, NT-GET-FILE-ATTRIBUTES, and NT-SET-FILE-ATTRIBUTES. * microcode/pros2fs.c[1.9], microcode/pros2fs.c[1.8]: Implement new primitive OS2-COPY-FILE. 1995-10-27 Chris Hanson * microcode/pros2fs.c[1.7]: Implement new primitive OS2-COPY-FILE. * microcode/os2api.h[1.7]: Add DosCopy API call. * runtime/dosprm.scm[1.34]: Use new Win32 volume-information primitive to properly implement DOS/FS-DRIVE-TYPE and DOS/FS-LONG-FILENAMES?. Also tweak pagination of environment-variable code. * microcode/Attic/prdosfs.c[1.4], microcode/prntfs.c[1.4]: Implement Win32 primitive to get information about a disk volume. This information will be used by the runtime system and Edwin to make decisions about how to form filenames and what end-of-line translation to use. 1995-10-25 Chris Hanson * edwin/dos.scm[1.30]: Fix typo. * microcode/cmpauxmd/i386.m4[1.42], microcode/ntutl/makefile.wcc[1.3], microcode/os2utl/makefile.wcc[1.4]: Win32 needs ".386" and ".model" declarations. * edwin/dosfile.scm[1.3]: *** empty log message *** * edwin/decls.scm[1.56]: Add new file "dosfile.scm". * edwin/ed-ffi.scm[1.39], runtime/ed-ffi.scm[1.13]: Corrections so that this information matches existing files. * microcode/nttop.c[1.16]: Flush copyright notice. Screw the compiler vendors. * edwin/dos.scm[1.29], edwin/dosfile.scm[1.4], edwin/dosfile.scm[1.2], edwin/edwin.ldr[1.56], edwin/edwin.pkg[1.181], edwin/os2.scm[1.25], edwin/os2.scm[1.24]: Merge common parts of DOS/WIN32 and OS2 file-name customization. * edwin/snr.scm[1.3], edwin/unix.scm[1.61]: Remove definition of OS/NEWSRC-FILE-NAME, moving it to OS-specific files. * runtime/dosprm.scm[1.33], runtime/os2prm.scm[1.22]: Rename OS2/FS-foo to DOS/FS-foo and supply definitions for DOS/WIN32 as well as OS/2. This enables sharing of the filename customization code in Edwin. 1995-10-24 Chris Hanson * edwin/dos.scm[1.28], edwin/edwin.pkg[1.180], runtime/dosprm.scm[1.32], runtime/os2prm.scm[1.21]: Changes to get Win32 system working again. * microcode/ntutl/makefile[1.17]: Supply missing dependencies. * microcode/ntutl/bch-cl3.lst[1.7], microcode/ntutl/scm-cl3.lst[1.7]: Supply missing filename. * microcode/nttop.c[1.15]: Bug fix: too little memory allocated for OS_Variant string, causing non-local memory problems later. Also changed name and fixed OS_Variant string to be consistent with new spec. * microcode/Attic/config.h[9.94], microcode/Attic/oscond.h[1.21], microcode/Attic/posixtyp.h[1.13], microcode/bchdmp.c[9.82], microcode/cmpauxmd/i386.m4[1.41], microcode/cmpauxmd/makefile[1.6], microcode/cmpauxmd/makefile[1.5], microcode/cmpintmd/i386.h[1.29], microcode/memmag.h[1.3], microcode/ntfs.c[1.8], microcode/ntgui.c[1.15], microcode/ntio.c[1.11], microcode/ntscmlib.h[1.5], microcode/ntscreen.h[1.11], microcode/nttrap.c[1.11], microcode/nttty.c[1.5], microcode/ntutl/makefile.wcc[1.2], microcode/ntutl/ntgui.rc[1.9], microcode/ntutl/scheme31.c[1.6], microcode/ntutl/scheme32.c[1.8], microcode/osio.h[1.11], microcode/outf.c[1.9], microcode/prntfs.c[1.3], microcode/s/Attic/nt.m4[1.2], microcode/term.c[1.12], microcode/utils.c[9.69]: Changes to allow Win32 microcode to be compiled by the Watcom C compiler. 1995-10-23 Chris Hanson * runtime/dosprm.scm[1.31], runtime/dospth.scm[1.32], runtime/dospth.scm[1.31], runtime/os2prm.scm[1.20], runtime/os2prm.scm[1.19], runtime/unxprm.scm[1.40]: Implement new operation OS/FILE-END-OF-LINE-TRANSLATION, which is used to determine appropriate line-translation by interrogating the file system to determine its type. Currently this is interesting only for OS/2, in which it is common to mount unix file systems. * microcode/os2fs.c[1.6]: Change the DRIVE-TYPE primitive to return mount-point information for NFS drives. This information will be used by the runtime system to disable end-of-line translation for unix file systems. 1995-10-19 Chris Hanson * runtime/rgxcmp.scm[1.107]: Add caching to RE-COMPILE-STRING, RE-COMPILE-CHAR-SET, and RE-COMPILE-PATTERN. This should clear up several small but noticeable pauses. 1995-10-18 Chris Hanson * edwin/dired.scm[1.158]: Implement M-x dired-create-directory and bind it to #\+. * runtime/dosprm.scm[1.30], runtime/unxprm.scm[1.39]: Change MAKE-DIRECTORY and DELETE-DIRECTORY to strip off any trailing slash from the filename before giving it to the primitive. Previously these were forcing a trailing slash onto the filename. Most unix implementations don't care about this, but Linux rejects the old behavior, and the new behavior is more "correct", in the sense that this is an operation on the file that is the directory. * runtime/dospth.scm[1.30], runtime/unxpth.scm[14.20]: Change definition of DIRECTORY-PATHNAME-AS-FILE so that it does nothing when the argument is already in "file" form. This makes it a true inverse to PATHNAME-AS-DIRECTORY. 1995-10-17 Chris Hanson * microcode/os2utl/makefile.cmn[1.4], microcode/os2utl/makefile.emx[1.4], microcode/os2utl/makefile.gcc[1.4], microcode/os2utl/makefile.wcc[1.3]: Miscellaneous changes to OS/2 makefiles. 1995-10-16 Chris Hanson * microcode/os2utl/makefile.cmn[1.3], microcode/os2utl/makefile.emx[1.3], microcode/os2utl/makefile.gcc[1.3], microcode/os2utl/makefile.vac[1.3], microcode/os2utl/makefile.wcc[1.2]: Fix usage of DEL command that assumed 4OS2. 1995-10-15 Chris Hanson * microcode/os2pm.h[1.10]: Supply missing prototype. * microcode/Attic/oscond.h[1.20], microcode/Attic/posixtyp.h[1.12], microcode/bchmmg.c[9.91], microcode/bchutl.c[1.7], microcode/cmpintmd/i386.h[1.28], microcode/os2env.c[1.9], microcode/os2thrd.c[1.5], microcode/os2top.c[1.16], microcode/os2utl/config.cmd[1.3], microcode/os2utl/makefile[1.12], microcode/os2utl/makefile.cmn[1.2], microcode/os2utl/makefile.emx[1.2], microcode/os2utl/makefile.gcc[1.2], microcode/os2utl/makefile.vac[1.2], microcode/prosproc.c[1.16]: Add conditionalizations for Watcom C/C++ running under OS/2. * microcode/bchdmp.c[9.81]: Fix conditionalizations to support EMX/GCC and Watcom C/C++ under OS/2. * microcode/os2cthrd.c[1.7]: Fix typo that prematurely deallocated a message buffer. * microcode/cmpauxmd/makefile[1.4]: Eliminate rule to generate OS/2 assembly-language file, as it is now generated during compilation. 1995-10-14 Chris Hanson * microcode/cmpauxmd/i386.m4[1.40]: Reconditionalize to separate use of Intel syntax from DOS conditionalization; needed using Watcom assembler under OS/2. Add other conditionalizations for Watcom assembler/compiler. 1995-10-12 Stephen Adams * runtime/numint.scm[1.5]: Fixed bug in MAKE-ATAN-OPERATOR. 1995-10-12 Chris Hanson * edwin/rmail.scm[1.46], edwin/unix.scm[1.60]: Fix typo in previous change. * edwin/rmail.scm[1.45], edwin/unix.scm[1.59]: Change so that RMAIL converts the POP password FILE pathname to an absolute namestring, so that the OS-specific code doesn't have to do this. * edwin/os2.scm[1.23]: Change to support (FILE ) password option for POP mail. * edwin/unix.scm[1.58]: Change to support (FILE ) password option for POP mail. Also add support for Debian popclient program, which has different argument options than regular popclient. * edwin/rmail.scm[1.44]: Add option to allow the user to specify a file that contains the POP password, rather than being prompted for it. 1995-10-09 Chris Hanson * microcode/os2utl/config.cmd[1.2], microcode/os2utl/makefile[1.11]: Reorganize makefile to allow it to be easily configured for different compilers. Now supports IBM Visual Age C++, IBM C Set++/2, EMX/GCC, and GCC/2. Watcom support will be added shortly. * microcode/bchdmp.c[9.80], microcode/bchmmg.c[9.90], microcode/bchutl.c[1.6], microcode/cmpintmd/i386.h[1.27], microcode/os2env.c[1.8], microcode/os2proc.c[1.3], microcode/os2thrd.c[1.4], microcode/os2top.c[1.15], microcode/os2xcpt.c[1.5], microcode/prosproc.c[1.15]: Add conditionalizations for EMX/GCC under OS/2. 1995-10-08 Chris Hanson * microcode/os2utl/makefile[1.10]: Changes to get this to work with Visual Age C++. * microcode/Attic/config.h[9.93]: Fix bug: define HEAP_FREE for OS/2. The procedure `free' has changed in the most recent release of the IBM C compiler, and barfs when it is handed a null pointer. Previously, it did nothing -- but it had not been my intention to take advantage of this behavior. * microcode/ansidecl.h[1.4], microcode/cmpint.c[1.86], microcode/outf.c[1.8]: Test __IBMC__ in addition to __STDC__ because the IBM OS/2 C compiler defines __STDC__ to mean "strict ANSI" rather than "ANSI features supported". * microcode/bchmmg.c[9.89], microcode/memmag.c[9.58]: Change order of #include files, so that "config.h" can override default definition of HEAP_FREE in "memmag.h". 1995-10-06 Chris Hanson * edwin/dired.scm[1.157]: Dired mode should not be case sensitive; this was changed between Emacs 18 and 19 and the case-insensitive default makes more sense. * microcode/s/Attic/linux.h[1.6]: Retract the most recent changes to get Linux ELF binaries to work. These changes do not and cannot work, because signal handlers cannot be run while the special Scheme segment registers are in use. The reason is that the signal handlers are registered as 32-bit offsets, and the associated segment descriptors are not registered with those offsets; when the signal arrives, the offset is used with whatever segment descriptor happens to be in the CS register. When the Scheme segment descriptors are in place, this offset is meaningless and causes Scheme to die immediately with a SIGSEGV. One possible workaround for this problem would be to re-register the signal handlers whenever the segment registers are hacked, but this is very expensive in time, and the Scheme<->C interface is already too slow. The only other feasibility is to get the Linux kernel changed so that signal handlers are invoked in a known segment without regard to the contents of CS at the time of the signal; but although this is a sensible idea, it's necessary to convince the kernel developer's of it's desirability, and meanwhile the existing Linux installations will not work. * microcode/cmpauxmd/i386.m4[1.39]: Tweaks to previous change. 1995-10-05 Chris Hanson * microcode/Attic/config.h[9.92], microcode/s/Attic/linux.h[1.5]: Change conditionalization for Linux ELF so that it is set in a single place. This simplifies building a non-ELF binary if desired. * microcode/Attic/config.h[9.91], microcode/cmpauxmd/i386.m4[1.38], microcode/cmpintmd/i386.h[1.26], microcode/s/Attic/linux.h[1.4], microcode/uxtop.c[1.17]: Implement changes needed for Linux ELF binary format. This format, unlike the older a.out format, translates the data segment to begin at 0x08000000, and additionally changes the calling conventions so that returned structures are allocated by the caller and passed in as pointers. We fix the first problem by extending the win32s segment register manipulation to also be used with Linux ELF. The second problem is fixed by extending the OS/2 assembly-language patches to also cover Linux ELF. * microcode/cmpint.c[1.85]: The Free register can't be compared to the value in REGBLOCK_MEMTOP unless it is translated from a "C" address to a "Scheme" address. This makes a difference on the i386 where we sometimes use the segment registers in a way that makes these two representations different. 1995-10-04 Chris Hanson * microcode/Attic/config.h[9.90]: Merge 8.0 and 7.4 versions of this file. 1995-10-03 Chris Hanson * edwin/os2.scm[1.22]: Change compressed-file support to match changes to unix support. * edwin/fileio.scm[1.132], edwin/unix.scm[1.57]: Make sure that the value from GROUP-INSERT-FILE! is returned by %INSERT-FILE. * edwin/unix.scm[1.56]: Change encoded file I/O methods to generate messages to indicate their activity. Change READ-COMPRESSED-FILE to uncompress the file to a temporary file, then read the temporary file into the buffer, as this makes it possible to read larger files without exhausting the heap. * edwin/fileio.scm[1.131]: Don't generate file read/write messages when using special file I/O methods. It is expected that these methods will have appropriate messages of their own. 1995-10-01 Chris Hanson * microcode/cmpauxmd/i386.m4[1.37], microcode/s/Attic/linux.h[1.3]: Patches to get the microcode to compile properly on Linux ELF systems. 1995-09-29 Chris Hanson * runtime/cpress.scm[1.7]: Performed by SRA: Add some declarations to increase performance. 1995-09-28 Chris Hanson * edwin/info.scm[1.120]: Change code to look for encoded files or ".info" suffix. Add switch to disable selection highlighting (GJS likes selections but not highlighting). * edwin/fileio.scm[1.130]: Add extra argument to GET-PATHNAME-OR-ALTERNATE, to allow it to be used in place of FILE-EXISTS?. * runtime/hashtb.scm[1.22]: Change interrupt locking of COMPUTE-KEY-HASH to avoid turning off the GC interrupt. This was causing fatal lossage for BDC. * edwin/unix.scm[1.55]: Apparently the unix definition of completion-ignored-extensions was missing all of the standard Scheme extensions. 1995-09-27 Chris Hanson * edwin/edwin.pkg[1.179], edwin/unix.scm[1.54], edwin/xterm.scm[1.48]: Implement X selection mechanism for doing cut and paste between Edwin and other X windows. This change requires recent changes to the microcode. There appears to be a bug in the implementation of the INCR protocol for receiving large selections -- after working on this for a day, I'm giving up and leaving it broken, since it will probably never be used. * microcode/x11base.c[1.61]: More changes for selection support. These changes are required for the current Edwin code. 1995-09-25 Stephen Adams * win32/graphics.scm[1.9]: Fixed bug with windows closed by user between last GC and exiting. * win32/dibutils/dibutils.h[1.2]: Put in MIT copyright notice. * win32/dibutils/dibutils.c[1.2]: Fixed bug in DeleteDIB. Rewrote loop to speed up DIBSetPixelsUnaligned by 2x-3x. Put in MIT copyright notice. 1995-09-25 Chris Hanson * edwin/dired.scm[1.156]: Handle symbolic link listings specially -- they require extra parsing to extract the file name. * microcode/x11base.c[1.60]: Add primitive to perform XSelectInput library call. 1995-09-18 Chris Hanson * microcode/x11base.c[1.59], microcode/x11base.c[1.58]: Implement some new primitives to support X selections. * microcode/artutl.c[1.12], microcode/extern.h[9.53], microcode/object.h[9.46], microcode/prims.h[9.45], microcode/utils.c[9.68], microcode/x11graph.c[1.34], microcode/x11term.c[1.24]: Add mechanism to support conversion of primitive arguments from Scheme integers to C `unsigned long' integers. 1995-09-15 Chris Hanson * edwin/edwin.pkg[1.178], edwin/xterm.scm[1.47]: Add option to ignore the button events associated with a click that selects the window. * microcode/interp.c[9.85]: Previous attempt to implement a mechanism to restore the signal mask when aborting to the interpreter was flawed: the signal mask was saved once, restored on the first abort, and left unchanged after that. The flaw is repaired by re-saving the signal mask after every abort. 1995-09-13 Chris Hanson * edwin/dos.scm[1.27], edwin/filcom.scm[1.187], edwin/fileio.scm[1.129], edwin/os2.scm[1.21], edwin/process.scm[1.38], edwin/unix.scm[1.53]: Changes dealing with encoded files: 1. Appending to an encoded file works by reading the file into a temporary buffer, appending the text, and writing it back out. 2. Line translation is handled for encoded files the same way it is for unencoded files. 3. Doing I/O to non-encoded files, if the file doesn't exist, an encoded file is used in its place if available. * runtime/process.scm[1.18], runtime/process.scm[1.17]: Change SUBPROCESS-I/O-PORT to allow setting of input and output line translation independently. * runtime/genio.scm[1.6]: Change MAKE-GENERIC-I/O-PORT to allow setting of input and output line translation independently. * edwin/rmail.scm[1.43], edwin/rmail.scm[1.42]: Always write RMAIL and unix mail files with line-translation disabled. Scheme will read such files fine, and this simplifies sharing of the files between operating systems. * edwin/debuge.scm[1.51], edwin/fileio.scm[1.128]: Replace Scheme variables *TRANSLATE-FILE-DATA-ON-INPUT?* and *TRANSLATE-FILE-DATA-ON-OUTPUT?* with corresponding editor variables. This allows the variables to be overridden on a per-buffer basis. 1995-09-11 Chris Hanson * edwin/prompt.scm[1.167]: Fix bug in previous change. * edwin/prompt.scm[1.166]: Add error-control to the prompt completion code. If any of the completion operations signals an error, the error will be caught and the user informed that the typein string is in error. This is particularly useful for such things as pathnames, which have a fairly restricted syntax. * runtime/dospth.scm[1.29], runtime/dospth.scm[1.28], runtime/error.scm[14.48], runtime/error.scm[14.47], runtime/error.scm[14.46], runtime/runtime.pkg[14.262], runtime/unxpth.scm[14.19]: Add new condition type ILLEGAL-PATHNAME-COMPONENT so that pathname parsing errors can be caught. 1995-09-05 Stephen Adams * runtime/usrint.scm[1.15]: Fixed call to ERROR:WRONG-TYPE-DATUM to pass correct number of arguments. 1995-08-29 Stephen Adams * runtime/unsyn.scm[14.18]: Added feature where (ACCESS ) is unsyntaxed as if UNSYNTAXER:ELIDE-GLOBAL-ACCESSES? is non-false and there are no shadowing bindings. This is slightly imperfect because the unsyntaxer cant know about names bound in the scode that surrounds the expression that was initially passed to UNSYNTAX. Perhaps these names should be a parameter. Debuggers could then augment the bound names with names from the environment (or perhaps unsyntaxing should be done with reference to an environment). The feature is currently OFF by default, but I envision it being necessary for sanity as more and more IEEE/R4RS operators are integrated as global accesses (so that the compiler knows that it can optimize them). 1995-08-20 Stephen Adams * runtime/numint.scm[1.4]: Changed the make--operator procedures to use arity dispatched procedures. 1995-08-08 Stephen Adams * pcsample/pcsample.c[1.3], pcsample/pcsdld.c[1.3]: Name change. * pcsample/pcsample.c[1.2], pcsample/pcsdld.c[1.2]: Added time `zones'. * runtime/sysclk.scm[14.3]: Added WITH-TIMINGS, a general procedure timing device. * runtime/runtime.pkg[14.261]: Export WITH-TIMINGS. 1995-08-06 Stephen Adams * runtime/pp.scm[14.36]: Moved call of NEWLINE in PP so that (1) there is only one call to NEWLINE, and (2) the newline is output after any warnings that may have been issued during unsyntaxing. 1995-08-04 Stephen Adams * wabbit/wabbit.sf[1.2]: Update package constructor & loader file name conventions. 1995-08-02 Stephen Adams * runtime/random.scm[14.13]: Replace INT:INTEGER? by faster EXACT-INTEGER? 1995-08-02 Chris Hanson * sf/usiexp.scm[4.35]: When an expander inserts multiple references to an operand, insert a LET so that the operand is only bound once. 1995-08-01 Chris Hanson * runtime/io.scm[14.44]: Fix weird bug in OUTPUT-BUFFER/WRITE-SUBSTRING. This bug only occurred when line-translation was used, and it caused the system to hang during some writes. There was some associated anomalous behavior that is not yet explained. 1995-07-29 Stephen Adams * rcs/logmer.scm[1.6]: Changed to use ENOUGH-PATHNAME for reporting the file names. The previous version was using the pathname-directory list and losing information. There was also a #F/() bug in this code. 1995-07-28 Stephen Adams * pcsample/load.scm[1.2]: Added kludge to get around a gratuitous name change between 7.4 and 8.0 1995-07-27 Stephen Adams * runtime/scomb.scm[14.14]: Added INDEX-FIXNUM? and new representation for unspecified conditional branch. * runtime/list.scm[14.21], runtime/string.scm[14.12], runtime/vector.scm[14.6]: General improvement of library procedures: Improved error checking. More procedures have checks. Code is organized to avoid duplicate checks and to reduce bloat from integrated GUARANTEE-* procedures. Makes use of new INDEX-FIXNUM? predicate. Replaced some recurive algorithms by iterative equivalents. New procedure: VECTOR-APPEND * runtime/udata.scm[14.17]: Added COMPILED-CODE-BLOCK/MARKED-START which returns the index that COMPILED-CODE-BLOCK/CONSTANTS-START used to. COMPILED-CODE-BLOCK/CONSTANTS-START now parses over the linkage section. * runtime/scomb.scm[14.13]: *** empty log message *** * runtime/unpars.scm[14.44]: The debugging information have been completely overhauled for the new compiler. Compiled files (.com files) now countain a COMPILED-MODULE object. Debugging information is accessed by a DBG-LOCATOR, and the located files must contains a DBG-WRAPPER with corresponding timestamps. These objects also contain a version which allows safe extension of the dbg information. DBG-BLOCKs now contain access paths which describe how to find the value for the bindings (they used to describe the inverse, i.e. the layout of the object). DBG-PROCEDURES have been streamlined to get lambda list information from the source code. DBG-VARIABLES are implemented as pairs to save on storage. Improved error message for ENVIRONMENT-* operations. Now there is only one kind of compiled environment which contains a root object and a DBG-BLOCK. The access paths in the DBG-BLOCK are relative to the root object. The access paths are evaluated by a stack machine which understands a fixed vocabulary of operations and 1- and 2- place primitives. CCENV/LOOKUP and CCENV/ASSIGN! now give an unbound variable error if he variable is not bound. They used to return an unavailable object (currently the symbol "??"). CCENV/ARGUMENTS tries to be clever with #!OPTIONAL arguements - an assignment trap (i.e. default-object?) determines the number of arguments provided that the previous argument is either required or available. * microcode/Attic/config.h[9.89]: Define the HPPA magical SHARP_F. * microcode/pruxenv.c[1.16]: Implement INSTRUCTION-ADDRESS->COMPILED-CODE-BLOCK. * microcode/uxtrap.c[1.26]: Better heuristic location of compiled code blocks. * microcode/sdata.h[9.33]: Arrange that GLOBAL_ENV is #F and END_OF_CHAIN is different for any representation choice of #F. * microcode/purify.c[9.55]: Use EMPTY_WEAK_CHAIN. * microcode/option.c[1.42], microcode/option.h[1.11]: Added option -empty-list-eq-false. 1995-07-26 Stephen Adams * microcode/load.c[9.37]: 1. New FASL versions. 2. Used outf_error in place of fprintf * microcode/gccode.h[9.54]: Changed for split fixnum tags. * microcode/fasload.c[9.81]: Added code to fix '() according to #F = '() or #F != '(). * microcode/cmpgc.h[1.29]: Improved heuristic for identifying compiled code blocks. * microcode/bchmmg.c[9.88]: Use EMPTY_WEAK_CHAIN for weak pair chain instead of EMPTY_LIST. * microcode/extern.h[9.52]: Added Debug_Stack_Trace and Debug_Print. * microcode/debug.c[9.47]: Changed for #F/(). * microcode/boot.c[9.96]: Merged changes from OS2 and OS2 and new tag scheme. 1995-07-25 Stephen Adams * microcode/x11base.c[1.57]: Attempt to fix Hal's SWAT+PPP problem. 1995-07-24 Chris Hanson * edwin/os2.scm[1.20]: Fix bug in INSERT-DIRECTORY that caused Dired buffer to get scrambled when using M-x dired-do-rename. 1995-07-19 Chris Hanson * runtime/random.scm[14.12]: Must use TYPE option with NAMED option. * runtime/random.scm[14.11]: Change representation of random-state objects to allow them to be saved and restored using fasdump/fasload. 1995-07-17 Stephen Adams * runtime/infutl.scm[1.58]: Implemented new version of the uncompressor. In addition to being faster, this version avoids the use of FLUID-LETting global bindings and a consequent re-entrancy bug. 1995-07-12 Stephen Adams * sf/pthmap.scm[4.3]: Added `unspecific' to the end of the file so that it may be loaded into an interpreted runtime band without causing an error from the reference trap that was returned ast the value of the last expression. * cref/toplev.scm[1.9]: During output of constructor and loader source files, fluid-let *UNPARSER-LIST-BREADTH-LIMIT* and *UNPARSER-LIST-DEPTH-LIMIT* to #F to avoid illegal triuncated source code. 1995-07-11 Chris Hanson * edwin/dos.scm[1.26], edwin/os2.scm[1.19], edwin/unix.scm[1.52]: New implementation of OS/TRIM-PATHNAME-STRING takes second argument (prefix to trim off) and tests to see if the prefix should be removed or retained. This changes behavior in some unusual cases, but allows the \\foo\bar notation to be used on DOS/OS2/NT. * edwin/filcom.scm[1.186], edwin/filcom.scm[1.185]: Change interface with OS/TRIM-PATHNAME-STRING to pass that procedure a second argument, which is the prefix string that is to be trimmed off. * runtime/dospth.scm[1.27], runtime/dospth.scm[1.26]: Install kludge to handle \\foo\bar notation. * sf/subst.scm[4.15]: Fix think-o in previous change. 1995-07-10 Stephen Adams * runtime/defstr.scm[14.29]: Added a few colons to error messages because I spent five minutes trying to understand a message that with the particular irritants happened to mean meant something different without the colon. 1995-07-07 Chris Hanson * runtime/os2prm.scm[1.18]: Change FILE-TIME->STRING to use a full year rather than just the last two digits. RFC 822 specifies just two digits, but this has been superseded by a later RFC. 1995-07-06 Chris Hanson * sf/subst.scm[4.14]: Another try. * sf/subst.scm[4.13]: Don't optimize away (LET () ...) if the body of the let contains declarations. * runtime/Attic/syntax.scm[14.27]: Fix typo that prevented the body of an IN-PACKAGE special form from being treated like a BEGIN WRT declarations. 1995-07-02 Chris Hanson * edwin/screen.scm[1.106]: Fix bug that would cause SIGSEGV when a screen changed while it was not visible. The optimization being performed for invisible screens was leaving the window redisplay data structures in an inconsistent state. The fix uses a less-agressive optimization that does all the redisplay up to the screen matrix, but avoids transferring the changes to the X window. 1995-06-30 Chris Hanson * microcode/uxterm.c[1.24]: Fix broken conditional in `OS_pty_master_send_signal', then reconditionalize to broaden the applicability of the code. * microcode/unxutl/Attic/ymkfile[1.90]: Don't use hard-par under linux since it isn't needed and it signals an error due to some GCC randomness. 1995-06-30 Nick Papadakis * microcode/sysprim.c[9.41]: Insert missing backslashes needed by previous change. 1995-06-29 Chris Hanson * microcode/s/Attic/linux.h[1.2]: Linux no longer needs special command-line args: oscond.h will detect `__linux' and set the appropriate definitions. * microcode/Attic/oscond.h[1.19]: Add conditionalizations to set up for Linux correctly. * microcode/ux.h[1.62]: Linux has `ftruncate'. * microcode/unxutl/Attic/config[1.29]: Change definition for linux, now named "i386-linux". 1995-06-28 Stephen Adams * edwin/win32.scm[1.4]: In READ-EVENT-1, include INTERRUPT-BIT/GLOBAL-1 so that messages (including keypresses) are dispatched to the screen window by the interrupt-handler, otherwise we could wait forever. * runtime/os2graph.scm[1.10], win32/graphics.scm[1.8]: Added new initial colour names "orange" and "pink". 1995-06-28 Chris Hanson * microcode/s/Attic/ultrix.m4[1.7]: Convert to Bourne shell format -- linux doesn't have csh. * edwin/unix.scm[1.51]: Implement POP support for unix systems that have popclient. 1995-06-27 Stephen Adams * runtime/numpar.scm[14.9]: Added back the (declare (usual-integrations)) that seems to have vanished between deltas 14.1 and 14.2 1995-06-23 Stephen Adams * sf/cgen.scm[4.3]: Added a list of declarations which are not handled by SF but are known to be handled by the compiler. This list is used only as a filter on the "Unused declaration" warning. 1995-06-23 Chris Hanson * microcode/os2.c[1.6]: Previous patch for random return code 3000 didn't work. Try a more sophisticated patch. Too bad IBM doesn't have a clue about this one. 1995-06-21 robblau * runtime/savres.scm[14.28]: TIME-WORLD-SAVED is now initially #F so that IDENTIFY-WORLD does not crash if DISK-SAVE has never been called in this world. 1995-06-20 Stephen Adams * microcode/sysprim.c[9.40]: Added primitive documentation to HEAP-AVAILABLE?, PRIMITIVE-GET-FREE and PRIMITIVE-INCREMENT-FREE. * cref/object.scm[1.9]: Added print procedures to many of the data structures. 1995-06-20 Chris Hanson * runtime/runtime.pkg[14.260]: Add missing export -- this should have been noticed many months ago. 1995-06-15 Chris Hanson * edwin/dired.scm[1.155]: On some file systems, file names may have spaces embedded in them. So use the end of line as the delimiter for the file name. This might still lose, but not as often. 1995-06-14 Chris Hanson * microcode/Attic/config.h[9.88]: Linux `frexp' losing -- comment it out. * compiler/base/macros.scm[4.15]: Fix typo in previous change. 1995-06-07 Chris Hanson * edwin/curren.scm[1.118]: When user requests that the last screen be closed, this should act like C-x C-c instead of C-x c. * edwin/kilcom.scm[1.68]: Tweak "interprogram-paste" code so that it doesn't signal an error when the kill ring is empty. 1995-06-02 Chris Hanson * runtime/packag.scm[14.21]: Add optional argument to PACKAGE/ADD-CHILD! to allow a new environment to overwrite a previous one. This is useful for reloading a packaged system and throwing away the old bindings. 1995-05-31 Chris Hanson * microcode/os2pm.c[1.19]: Previous change didn't work. Try explicitly setting colors to black and white. * microcode/os2pm.c[1.18]: Use CLR_ arguments to set initial colors for a window. Apparently the value returned by GpiQueryBackColor is invalid on some displays. 1995-05-25 Michael R. Blair * runtime/unpars.scm[14.43], runtime/usrint.scm[1.14]: Corrected printed representation of undefined values: they are _NOT_ useless since they supply synchronization points and help programmers to avoid ill- behaved implementation dependencies. 1995-05-23 Chris Hanson * edwin/sendmail.scm[1.32]: Fix bug: "sender" field was being inserted in such a way that it was not part of the message header. 1995-05-21 Chris Hanson * edwin/edwin.pkg[1.177]: Missed some variable bindings for "snr". * runtime/dospth.scm[1.25]: Change canonicalization of pathname case so that environment variables are case-sensitive. 1995-05-20 Chris Hanson * edwin/edwin.pkg[1.176], edwin/os2com.scm[1.2]: Change color stuff to use global color-name database implemented in the runtime system. Add M-x define-color. * runtime/os2graph.scm[1.9], runtime/os2winp.scm[1.9], runtime/runtime.pkg[14.259]: Move OS/2 console stuff to "os2graph", and flesh it out a little. * edwin/make.scm[3.86], microcode/version.h[11.150], microcode/version.h[11.149], runtime/version.scm[14.167]: New version in anticipation of OS/2 release. * microcode/os2pmcon.c[1.15]: Get resizing of console window to work properly. * microcode/os2msg.h[1.11], microcode/os2pm.c[1.17], microcode/os2pm.h[1.9], microcode/pros2pm.c[1.9]: Implement OS2PS-GET-FONT-METRICS primitive. * microcode/os2top.c[1.14]: Follow standard practice and call WinCancelShutdown for all of the non-PM threads in the program. * microcode/os2pmcon.c[1.14]: Eliminate compiler warning. * runtime/os2winp.scm[1.8], runtime/runtime.pkg[14.258]: Implement procedures to manipulate basic presentation parameters of the console window. * microcode/os2pmcon.c[1.13]: Add hooks to update PM console's font metric data when the font is changed. 1995-05-19 Chris Hanson * microcode/os2pm.c[1.16], microcode/os2pmcon.c[1.12], microcode/os2pmcon.c[1.11], microcode/os2pmcon.c[1.10], microcode/os2pmcon.c[1.9], microcode/os2pmcon.c[1.8]: Add hooks to update PM console's font metric data when the font is changed. * edwin/occur.scm[1.2]: M-x occur should leave point at beginning of buffer. * edwin/os2.scm[1.18]: Simplify error reporting for popclient. The output buffer will have a better description of the return status. 1995-05-16 Stephen Adams * runtime/defstr.scm[14.28]: Merged split-typecode and old versions. 1995-05-16 Chris Hanson * edwin/edwin.pkg[1.175], edwin/os2term.scm[1.8], microcode/os2msg.h[1.10], microcode/os2pm.c[1.15], microcode/os2pm.h[1.8], microcode/pros2pm.c[1.8], runtime/os2winp.scm[1.7], runtime/runtime.pkg[14.257]: Add primitives to create and manage menus. 1995-05-13 Stephen Adams * runtime/pp.scm[14.35]: Fixed prefix nodes to compose with highlighted nodes. 1995-05-13 Chris Hanson * microcode/os2pm.c[1.14]: Don't use WinQueryFocus to decide whether the cursor has been created. There is a short period of time in which it answers "yes" when in fact the answer is "no", which can result in errors from WinShowCursor. 1995-05-12 Chris Hanson * edwin/os2.scm[1.17]: OS/2 directory-listing procedures must canonicalize filename case, because filename completion code depends on case-sensitive string matching operations. 1995-05-10 Stephen Adams * runtime/arith.scm[1.32]: Changed some LAMBDAs in the arity-dispatched operators to NAMED-LAMBDAs for PP clarity. 1995-05-10 Chris Hanson * microcode/os2pm.c[1.13]: Fix random editing error. * microcode/os2.c[1.5]: Patch to work around sporadic error code in DosRequestMutexSem. * microcode/os2pm.c[1.12]: Patch to work around bugs in OS/2 PM API cursor procedures. * edwin/sendmail.scm[1.31], edwin/sendmail.scm[1.30]: Fix think-o in recent change. 1995-05-09 Chris Hanson * edwin/tparse.scm[1.70]: Fix two small bugs in the paragraph-parsing code. 1995-05-07 Chris Hanson * microcode/os2conio.c[1.8]: In the console readahead thread, when getch() returns EOF, send an empty readahead message to inform Scheme that the console channel has been closed. * microcode/os2pmcon.c[1.7]: Pay attention to the console_closedp flag, and take appropriate action when it is set. * microcode/os2pm.c[1.11]: When WM_QUIT is posted to the PM message queue, kill the Scheme program. This normally happens at one of two times: (1) the user clicks on "close" in the pop-up menu in the window list, and (2) the system is shutting down. 1995-05-06 Chris Hanson * microcode/os2pm.c[1.10]: Implement support for fixed-width outline fonts. * edwin/edwin.pkg[1.174], edwin/nntp.scm[1.2], edwin/snr.scm[1.2]: Add code to do news-group posting. 1995-05-05 Chris Hanson * edwin/sendmail.scm[1.29]: Change definition of MAIL-INSERT-FIELD to make it more general. * edwin/sendmail.scm[1.28]: If "To:" header field not given to MAIL-SETUP, don't insert one. * edwin/edwin.pkg[1.173], edwin/sendmail.scm[1.27]: Reorganize mail sending code into more general pieces, then export the pieces for use by other programs. * edwin/dos.scm[1.25], edwin/os2.scm[1.16], edwin/unix.scm[1.50]: Add OS/HOSTNAME procedure to get a host name suitable for use in an email address. (Implemented for unix and OS/2.) * edwin/sendmail.scm[1.26], edwin/sendmail.scm[1.25]: Change MAKE-MAIL-BUFFER to return the buffer it makes. If an old buffer exists and the user wants to keep it, return #F instead. Also make the SELECTOR argument optional, and allow it to be #F meaning that the buffer will not be selected but just returned (the default). Change the MAIL-SETUP-HOOK variable so that it is invoked with the mail buffer as an argument. * edwin/curren.scm[1.117]: Fix bug: select-buffer-hook not being invoked-with correct arguments. 1995-05-04 Chris Hanson * edwin/os2.scm[1.15]: Do CRLF translation when cutting to and pasting from the clipboard. 1995-05-03 Stephen Adams * runtime/global.scm[14.48]: Changed SHOW-TIME to break process time into non-gc and gc times. 1995-05-03 Chris Hanson * edwin/decls.scm[1.55], edwin/ed-ffi.scm[1.38], edwin/edwin.pkg[1.172], edwin/loadef.scm[1.28]: Add auto-loaded news reader. * runtime/optiondb.scm[1.3], runtime/runtime.pkg[14.256]: Add new file implementing operations on ordered vectors. 1995-05-02 Chris Hanson * edwin/dos.scm[1.24], edwin/edwin.pkg[1.171], edwin/kilcom.scm[1.67], edwin/kilcom.scm[1.66], edwin/kilcom.scm[1.65], edwin/os2.scm[1.14], edwin/unix.scm[1.49]: Integrate support for OS-dependent cut&paste buffer into the kill and yank commands, as is done in Emacs 19. This support is available in the OS/2 implementation. * runtime/os2winp.scm[1.6]: Add primitives to read and write the OS/2 clipboard. * microcode/os2msg.h[1.9], microcode/os2pm.c[1.9], microcode/os2pm.h[1.7], microcode/os2pmcon.c[1.6], microcode/pros2pm.c[1.7]: Add primitives to read and write the OS/2 clipboard. Also implement Shift-Insert command on the console window to allow pasting from the clipboard. * edwin/fileio.scm[1.127]: If a file insertion doesn't insert any data, don't do any of the post-processing that sets the modification bit, etc. * edwin/rmail.scm[1.41]: Previously a POP password was discarded any time an error happened while fetching mail from the POP server. Now, once mail has been fetched successfully, the password is kept regardless of any errors. * edwin/os2.scm[1.13]: If popclient program is successful, kill buffer showing its output. 1995-04-30 Stephen Adams * runtime/hashtb.scm[1.21]: Changed COMPUTE-KEY-HASH to compute hash value optimistically and only go into the SET-INTERRUPT-ENABLES! guarded loop if, as a post-check, the table needs rehashing. On a test case (the new compiler on list.scm) this reduces the profiled time in SET-INTERRUPT-ENABLES! from 9.9% to 3.4% 1995-04-30 Chris Hanson * edwin/fileio.scm[1.126]: Repaginate. * edwin/curren.scm[1.116], edwin/intmod.scm[1.86]: Change select-buffer hooks to take a second argument, the window that the buffer is being selected in. This is often useful, and if it's not passed in there's no way to get it. * edwin/comwin.scm[1.143]: Add optional argument to WINDOW-DELETE! procedure. This argument is a window that should get the space released by the deleted window. If it is not adjacent to the deleted window, the argument is ignored. * edwin/edwin.pkg[1.170], edwin/rmail.scm[1.40], edwin/sendmail.scm[1.24], edwin/vc.scm[1.21]: * Generalize and simplify sendmail interface, to give more control over the configuration of a mail buffer by a program. * Restructure parts of the RMAIL code that deal with replies and output to mail files. Export some of this code for use by other programs. 1995-04-29 Stephen Adams * runtime/option.scm[14.33]: (LOAD-OPTION name #!optional no-error?) now returns #F when NO-ERROR? is true and the option NAME is not available. It used to return NAME in all cases. * sf/usiexp.scm[4.34]: Added expansion for SYMBOL? (similar to those for numeric predicates). 1995-04-28 Stephen Adams * sf/pthmap.scm[4.2]: Yet another case where a BODY ended in a DEFINITION instead of an EXPRESSION. 1995-04-28 Chris Hanson * microcode/os2env.c[1.7], microcode/os2xcpt.c[1.4]: Eliminate compiler warning. * microcode/boot.c[9.95], microcode/option.c[1.41], microcode/os2.c[1.4], microcode/os2conio.c[1.7], microcode/os2cthrd.c[1.6], microcode/os2cthrd.h[1.4], microcode/os2env.c[1.6], microcode/os2io.h[1.2], microcode/os2msg.c[1.9], microcode/os2pipe.c[1.6], microcode/os2pm.c[1.8], microcode/os2proc.c[1.2], microcode/os2thrd.c[1.3], microcode/os2thrd.h[1.3], microcode/os2top.c[1.13], microcode/os2xcpt.c[1.3], microcode/outf.c[1.7]: * The procedure OS_set_working_dir_pathname in "os2env.c" had a serious bug: passing it a string like "d:\\" caused it to signal a Scheme error. What was serious was that this could occur while spawning a subprocess, which for some as-yet unexplained reason would crash Scheme with no error message. To compound matters, the bug appeared to be unreproduceable under a debugger (not true). The remaining changes were side effects of the blind debugging process: * Added OS2_initialize_early to "boot.c" and "os2top.c". This allows the microcode to do the initialization necessary to put up dialog boxes. Which in turn is needed to report boot-time errors, such as non-existent band file names. * "option.c" calls outf but did not include "outf.h". Under ANSI C, since outf takes a variable number of arguments, this results in unspecified behavior. Under OS/2 with IBM's compiler, this causes a mismatch in calling conventions, which can result in bizarre errors. * Modified "os2.c" to have an alternate implementation of OS_malloc and related procedures. This was generated while attempting to track down a nasty bug that appeared to be a memory-allocation error. The alternate implementation is #ifdef'ed out, but left in place should it be useful in the future. * Improved the definition of OS2_logic_error_1 so that it treats errors in non-essential subthreads as non-fatal. Also improved the wording of the error messages produced, and included more information for future reference. * All subthreads now have exception handlers and PM message queues, so they can catch and report any exceptions that occur in them. Previously, an exception occurring in a subthread would crash Scheme with no explanation. * Enhanced the acknowledgement messages sent to a channel readahead thread to carry a flag indicating whether the thread is being asked to read some more or to kill itself. This eliminates a race condition associated with closing of the channel. * Changed the input-pipe readahead thread to accept its arguments in a freshly malloc'ed structure that the thread is responsible for freeing. Previously, the arguments were accepted in a channel, which contained a context structure which in turn contained the arguments. The previous implementation had a race condition in that the argument data structures were owned by the Scheme thread, and could be deallocated before the readahead thread had a chance to dereference them. * In "os2proc.c", moved the allocation of the structure representing the child process into the locked region of the process initialization. This is necessary because the child-wait thread accesses the same structures as the allocator. * In "os2proc.c", the working directory was being saved and later restored. But this was a static string, and there weren't good guarantees as to it retaining its value -- so now it is copied before being stored. * When putting up a message box for a fatal error, the buffer used to compose the message was static. This caused garbling when the two threads attempted to produce fatal errors at the same time (this was occurring regularly during the debugging process). Now the message box uses a per-thread static buffer. * microcode/pros2pm.c[1.6]: Primitive OS2WIN-GET-EVENT was sometimes calling OS_free with a null pointer. This is legal with IBM's C library, but is not something I like to rely on. * microcode/pros2io.c[1.4]: In primitive OS2-SELECT-REGISTRY-TEST, there was a window where input could be waiting to be read, but the primitive would be blocked waiting for some input. This was because the primitive is composed of two phases, and input detected in the first phase was not used to prevent blocking in the second. * microcode/os2io.c[1.4]: Readahead message types belong to the channel-thread implementation and are already initialized there. The initialization here was an unnecessary duplicate. 1995-04-27 Chris Hanson * edwin/curren.scm[1.115]: Implement some renames that have been nagging for some time: current-buffer => selected-buffer current-buffer? => selected-buffer? current-window => selected-window current-window? => selected-window? With these renames, the accessors now have names that match the selectors. The old names remain as aliases. This was stimulated by a recent change that accidentally inserted a reference to one of the new names -- when I misremember the names I chose, it's time to change the names. 1995-04-26 Stephen Adams * edwin/fileio.scm[1.125], edwin/motion.scm[1.87]: Fiddled with a sequence of definitions and expressions to ensure the last form is an expression to comply with the new analchecking software. 1995-04-24 Stephen Adams * runtime/gcnote.scm[14.11], runtime/runtime.pkg[14.255]: Added SET-GC-NOTIFICATION! * runtime/wttree.scm[1.9]: Tweaked error checking code to make the integrated portion smaller. * compiler/base/macros.scm[4.14]: Fixed TRANSFORM/PACKAGE to always return UNSPECIFIC, which ensures that the last thing in the generated LET is not a definition. 1995-04-24 Chris Hanson * edwin/prompt.scm[1.165]: When doing completing prompt with REQUIRE-MATCH? set true, delay running completion procedure on final value. First try VERIFY-MATCH? procedure, and if it succeeds, don't do any completion. This shouldn't change the behavior since VERIFY-MATCH? must be run anyway, and if the result is already a match, completion does nothing. This is helpful when the completion procedure is expensive but VERIFY-MATCH? is relatively cheap. 1995-04-23 Chris Hanson * edwin/rmail.scm[1.39]: Fix think-o in POP server support. * runtime/datime.scm[14.12]: Fix typos in previous change. * runtime/os2prm.scm[1.17]: Add day-of-week prefix to string returned by FILE-TIME->STRING. At this point, the returned string is fully compliant with RFC 822. Furthermore, the procedure is not operating-system specific, except that it calls the procedure LOCAL-TIME-ZONE, which isn't currently defined for any other operating system. Offhand, it's not obvious what's involved in implementing LOCAL-TIME-ZONE for other systems, except for the more modern unix systems, in which it's trivial. * runtime/datime.scm[14.11], runtime/runtime.pkg[14.254]: Implement procedures to return strings for weekdays. * runtime/dosprm.scm[1.29], runtime/os2prm.scm[1.16], runtime/unxprm.scm[1.38]: Implement conversions between file time and universal time. * runtime/dosprm.scm[1.28], runtime/os2prm.scm[1.15], runtime/unxprm.scm[1.37]: Implement ENCODE-FILE-TIME. * microcode/os2utl/makefile[1.9]: Fix typo. * runtime/os2prm.scm[1.14]: Use new primitives to get time zone and daylight savings time information. * runtime/datime.scm[14.10]: Update to use new primitives that manipulate daylight savings time information. Change make-decoded-time to fill in the day-of-week and daylight-savings-time fields. * microcode/Attic/dosenv.c[1.8], microcode/Attic/dosenv.c[1.7], microcode/ntenv.c[1.12], microcode/ntenv.c[1.11], microcode/os2env.c[1.5], microcode/os2env.c[1.4], microcode/osenv.h[1.6], microcode/prosenv.c[1.12], microcode/uxenv.c[1.14], microcode/uxenv.c[1.13]: Extend the time decode/encode primitives to handle daylight savings time information. * microcode/os2env.c[1.3], microcode/pros2fs.c[1.6], microcode/pros2fs.c[1.5]: Implement primitives to get the timezone and daylight-savings information from the C library. 1995-04-22 Chris Hanson * runtime/datime.scm[14.9], runtime/datime.scm[14.8], runtime/os2prm.scm[1.13], runtime/runtime.pkg[14.253]: Implement some rudimentary time-zone code so that we can produce reasonably accurate time zones in RFC-822 dates. * microcode/os2msg.c[1.8]: Fix old typo in OS2_close_std_tqueue that was never noticed because this procedure was never called. * edwin/os2term.scm[1.7]: Fix bug: the C-x z command was closing the editor windows and leaving the editor in an unusable state. This happened because the actions of initializing and finalizing the PM interface were happening in the wrong place. * microcode/os2msg.c[1.7], microcode/os2msg.h[1.8]: Lock access to the twin of a qid more carefully. Previously, the code for sending messages was not locked at all, which meant that there were race conditions that could produce fatal errors. By locking, we limit the amount of concurrent communication slightly, but since the locks are active for only a short time this shouldn't be noticed. Also implement a new procedure OS2_qid_tqueue, which is used by inferior threads to obtain and close their associated tqueue objects when they finish. * microcode/os2pipe.c[1.5]: Don't send broken-pipe errors to the Scheme thread when they are detected by the pipe readahead thread. Recently, this has seemed to cause a fatal error under certain timing conditions (which unfortunately didn't hold while running under the debugger). Although this fatal error is now probably fixed, rather than run the risk of finding out, it seems safer to avoid the behavior that seemed to cause the problem. Since the value of reporting broken-pipe errors is minimal at best, this is not a big deal. * microcode/os2conio.c[1.6], microcode/os2pipe.c[1.4]: Close the qid and tqueue associated with a readahead thread when the thread finishes. This will fix the known bug of exhausting the set of available qids, and it will also fix a previously unnoticed memory leak. * edwin/curren.scm[1.114]: Add missing space to error message. 1995-04-21 Stephen Adams * microcode/bitstr.c[9.56]: Moved some comments to primitive documentation strings. 1995-04-21 Chris Hanson * runtime/genio.scm[1.5]: Change CLOSE-PORT to close the output side of an I/O port before it closes the input side. This matters when the same file channel is shared by both sides, and there is buffered data that must be flushed before the close. * microcode/os2cthrd.c[1.5]: Always send a readahead ACK when closing a channel with an associated reader thread. This prevents the thread from getting hung in a state where the channel is closed but the thread is waiting for the ACK. 1995-04-20 Chris Hanson * edwin/simple.scm[1.47]: Fix think-o in previous change. 1995-04-19 Chris Hanson * edwin/macros.scm[1.62]: Extend the SET-VARIABLE! and LOCAL-SET-VARIABLE! special forms to take an additional optional argument that specifies the buffer in which the variable is to be set. * edwin/buffer.scm[1.168]: Provide mechanism to permit BUFFER-GET to return a value different from #F when the buffer lacks a given property. * edwin/simple.scm[1.46]: Add basic text property procedures that accept marks instead of indexes. 1995-04-17 Chris Hanson * edwin/simple.scm[1.45]: Use new procedure GROUP-INSERT-CHARS! to reduce consing in several procedures. Add new procedures to do padded string insertions without consing. * edwin/edwin.pkg[1.169], edwin/grpops.scm[1.22]: Add new procedure GROUP-INSERT-CHARS!. 1995-04-15 Chris Hanson * edwin/edwin.pkg[1.168], edwin/edwin.pkg[1.167]: Eliminate unneeded reference to GET-TIME. * runtime/datime.scm[14.7], runtime/datime.scm[14.6], runtime/os2prm.scm[1.12], runtime/os2prm.scm[1.11]: Fix think-o in previous change. * edwin/vc.scm[1.20]: Use new procedure OS/LS-FILE-TIME-STRING. * edwin/os2.scm[1.12], edwin/unix.scm[1.48]: Implement new procedure OS/LS-FILE-TIME-STRING. * runtime/unxprm.scm[1.36]: Implement new procedure DECODE-FILE-TIME. * runtime/os2prm.scm[1.10]: Implement new procedure DECODE-FILE-TIME, and rewrite FILE-TIME->STRING so that it's result is (almost) in RFC-822 format. * 6001/floppy.scm[1.17]: Change random ACCESS statement to use now-exported name. * runtime/datime.scm[14.5], runtime/runtime.pkg[14.252]: Implement new procedure MAKE-DECODED-TIME. Rename several internal procedures to use Common Lisp names, and export them to the global environment. 1995-04-14 Chris Hanson * runtime/genio.scm[1.4], runtime/io.scm[14.43], runtime/process.scm[1.16]: Add means to control line translation in subprocess port. This is useful when communicating with a TCP stream relay subprocess, in which case the line terminators are defined by the network protocol rather than by the operating system. * runtime/Attic/illdef.scm[1.3], runtime/Attic/illdef.scm[1.2]: Code that walked LAMBDA body was being too strict -- body should allow definitions and expressions to be interspersed. 1995-04-13 Chris Hanson * edwin/edwin.ldr[1.55], edwin/edwin.pkg[1.166], edwin/key-x11.scm[1.3], edwin/key-x11.scm[1.2]: Reorganize X11 keys and eliminate unnecessary overriding of HOOK/MAKE-SPECIAL-KEY. * edwin/key-w32.scm[1.2]: Reorganize slightly. * edwin/modefs.scm[1.149]: Add bindings for PC's special keys. Under OS/2, these keys have their natural names rather than being mapped onto the names of the corresponding keys on the HP keyboard. * edwin/calias.scm[1.16]: Reorganize special-key code. * 6001/nodefs.scm[1.10]: Move CHECK-FOR-ILLEGAL-DEFINITIONS into the runtime system proper. * runtime/Attic/syntax.scm[14.26], runtime/ed-ffi.scm[1.12], runtime/make.scm[14.57], runtime/runtime.pkg[14.251]: Add code to check for illegal internal definitions and disallow them. 1995-04-12 Chris Hanson * runtime/runtime.pkg[14.250], runtime/unpars.scm[14.42]: Add switch to control special handling of abbreviations for QUOTE and friends. Default this switch to OFF. 1995-04-11 Chris Hanson * microcode/os2msg.c[1.6]: Fix bug in OS2_receive_message. It's possible to arrive here with a closed qid due to race conditions when the sending thread closes the qid while the reading thread is about to read from it. This was happening under some circumstances when sending mail: the sendmail program doesn't generate any output, and if it terminates before the input thread's first read, the qid will be closed. * microcode/os2thrd.c[1.2], microcode/os2thrd.h[1.2]: Add new procedure OS2_current_tid. 1995-04-10 Chris Hanson * edwin/os2.scm[1.11]: Fix OS/AUTO-SAVE-PATHNAME to rewrite the buffer name so that it uses only legal HPFS characters, when the pathname includes the buffer name. * edwin/edwin.pkg[1.165], edwin/rmail.scm[1.38]: Add support for fetching mail from POP servers using an OS-dependent mechanism. This is necessary because socket support is only implemented for unix, and other mechanisms are available for other systems. * edwin/os2.scm[1.10]: Add code to support fetching mail from a POP server using the freeware "popclient" program. Fix bug in precious-file backups. * edwin/sendmail.scm[1.23]: Call OS/FIND-PROGRAM explicitly in one place where it is needed. * edwin/os2term.scm[1.6]: Change C-g interrupt-signalling code to recognize the combination of the lower-case g and the control keys. Previously, it only recognized the upper-case g. This was not immediately noticed because the input stream lookahead code recognized both combinations. * edwin/process.scm[1.37]: RUN-SYNCHRONOUS-PROCESS now calls OS/FIND-PROGRAM on its program argument -- this allows invocation of a program without knowing its precise location in the file system. * edwin/prompt.scm[1.164]: Fix typos in previous change. 1995-04-09 Chris Hanson * edwin/dos.scm[1.23], edwin/os2.scm[1.9], edwin/rmail.scm[1.37], edwin/unix.scm[1.47]: Add hooks to allow OS-dependent POP mail support. * edwin/prompt.scm[1.163]: Tweak prompt-for-password slightly. * edwin/rmail.scm[1.36]: Patch two bugs. * edwin/dos.scm[1.22], edwin/os2.scm[1.8], edwin/rmail.scm[1.35], edwin/sendmail.scm[1.22], edwin/unix.scm[1.46], edwin/vc.scm[1.19], runtime/dosprm.scm[1.27], runtime/os2prm.scm[1.9], runtime/sfile.scm[14.17], runtime/unxprm.scm[1.35]: Make OS-independent binding for file-time->string. * microcode/os2api.h[1.6]: Add shared-memory API calls -- these will be needed for several different purposes. * edwin/dos.scm[1.21], edwin/notify.scm[1.16], edwin/rmail.scm[1.34], edwin/sendmail.scm[1.21], edwin/vc.scm[1.18], runtime/dosprm.scm[1.26], runtime/dospth.scm[1.24], runtime/os2prm.scm[1.8], runtime/unxprm.scm[1.34], runtime/unxpth.scm[14.18]: Make OS-independent bindings for the following procedures. These procedure were previously defined for all OSs, but with different names in each OS: user-home-directory current-user-name current-home-directory The old names have been aliased to the new, except for OS/2. 1995-03-30 Chris Hanson * edwin/linden.scm[1.123]: Fix handling of comments when indenting an expression. Previously, comments appearing at the end of a line containing code were not treated specially. Now, such comments are re-indented to the comment column after the line has been re-indented. 1995-03-21 Chris Hanson * microcode/bchdmp.c[9.79], microcode/bchdrn.h[1.7], microcode/bchgcc.h[9.58], microcode/bchmmg.c[9.87], microcode/bchutl.c[1.5], microcode/os2utl/makefile[1.8]: Changes to get bchscheme running under OS/2. * microcode/pros2fs.c[1.4]: Add new primitive to scan Scheme's memory usage. 1995-03-20 Stephen Adams * runtime/global.scm[14.47]: Changed PA to print primitive documentation rather than signal an error when given a primitive procedure. 1995-03-20 Chris Hanson * sf/usiexp.scm[4.33]: Add expansion for INTERN -- just like that for STRING->SYMBOL. 1995-03-13 Chris Hanson * microcode/os2utl/makefile[1.7]: Delete old definition of "all" target. * microcode/os2utl/makefile[1.6]: Add default target "all". Change references to assembler and to the libraries that it requires -- these files are now assumed to reside in the "os2utl" subdirectory. 1995-03-08 Chris Hanson * microcode/os2utl/makefile[1.5]: "os2top.obj" now depends on "scheme.h". * microcode/os2top.c[1.12], microcode/os2xcpt.c[1.2]: Implement OS/2 stack-overflow detection mechanism. This is a pile of hair involving some tricky memory management and a little cooperation from the OS/2 exception handler. See the code for details. * microcode/Attic/config.h[9.87], microcode/stack.h[9.37]: Add stack hooks for OS/2 stack-overflow detection. Move existing overrides of STACK_RESET macro from "stack.h" to "config.h". Change `Stack_Check' macro to use STACK_OVERFLOWED_P macro rather than comparing the stack pointer to `Stack_Bottom', because OS/2 overrides this macro with an unusual definition. 1995-03-07 Chris Hanson * runtime/stream.scm[14.9]: Fix think-o in previous change. 1995-03-06 Chris Hanson * 6001/6001.pkg[1.10], 6001/arith.scm[1.5]: Add INC and DEC procedures. * runtime/stream.scm[14.8]: Add operations required by new edition of SICP. * microcode/bitstr.c[9.55]: Fix stupid bug in `copy_bits': code to generate mask was doing ((1 << 32) - 1) and expecting something reasonable to happen on a 32-bit machine. 1995-03-04 Chris Hanson * runtime/pp.scm[14.34]: Reorganize code a little. Add general hook for generating the "description" of an object. * runtime/unpars.scm[14.41]: Add more general hook for unparsing records. 1995-03-03 Chris Hanson * runtime/list.scm[14.20], runtime/runtime.pkg[14.249]: Implement MAKE-INITIALIZED-LIST. 1995-03-02 Stephen Adams * runtime/wttree.scm[1.8]: Fiddled with argument ordering. 1995-03-01 Stephen Adams * runtime/runtime.pkg[14.248]: Exported WT-TREE/UNION-MERGE * runtime/wttree.scm[1.7]: Added operation (WT-TREE/UNION-MERGE merge tree1 tree2) merge = (lambda (key value1 value2) ...) 1995-02-26 Chris Hanson * microcode/cmpauxmd/i386.m4[1.36]: Guarantee that the floating-point register stack is empty when moving from C to Scheme and vice-versa. This appears to fix a floating-point stack overflow exception that has been observed under unix and OS/2. 1995-02-24 Chris Hanson * 6001/edextra.scm[1.20], 6001/floppy.scm[1.16], 6001/make.scm[15.23], 6001/make.scm[15.22], 6001/pic-imag.scm[1.7], 6001/picture.scm[1.23]: Lots of changes to generalize this code for OS/2 and Windows. * edwin/edwin.pkg[1.164], edwin/os2term.scm[1.5]: Add some extra screen-manipulation procedures, one of which is needed by the 6.001 support to allow a Scheme program to activate an editor screen. * runtime/os2graph.scm[1.8], runtime/runtime.pkg[14.247]: Final round of changes to get 6.001 images working right. * runtime/os2ctype.scm[1.2]: Put normalization case into CANONICALIZE-C-TYPE. * edwin/filcom.scm[1.184]: Don't beep when ignoring evaluation environment -- it's too annoying. 1995-02-21 Chris Hanson * win32/win32.pkg[1.6]: No longer need to import most image procedures since they are in the global environment. * win32/graphics.scm[1.7]: Change to reflect changes to graphics type and image support in the runtime system. * 6001/pic-imag.scm[1.6]: Change to use IMAGE/CREATE instead of 'CREATE-IMAGE graphics operation. * 6001/picture.scm[1.22]: Major cleanup of this file. Generalization of graphics code to support OS/2. * runtime/graphics.scm[1.15], runtime/os2graph.scm[1.7], runtime/x11graph.scm[1.42]: Change IMAGE/CREATE to extract the image type from its device argument. * runtime/os2graph.scm[1.6]: Yet another cut at getting backing store and image stuff to work correctly. Nearly done now. * runtime/runtime.pkg[14.246]: Various changes relating to graphics development. * runtime/os2winp.scm[1.5]: Add two new primitives, and export an operation to clobber the window field of an event -- thus allowing "user" events from graphics windows to contain the "user" graphics device rather than an internal descriptor. * runtime/os2prm.scm[1.7]: Put bullet-proofing code into OS2/FILE-TIME->STRING. It turns out that CD-ROM root directories have unusual time stamps. * runtime/graphics.scm[1.14], runtime/starbase.scm[1.12], runtime/x11graph.scm[1.41]: Several sweeping changes to graphics and image types. Graphics types now have their names associated with them so that code can dispatch on the name. Each image type is now associated with a particular graphics type, so that it is possible to get the image type given a graphics type. New procedures GRAPHICS-TYPE and IMAGE-TYPE provide very general ways to get pointers to such types. New procedure GRAPHICS-TYPE-NAME gets the name of a graphics type. These changes necessitated some changes in the interface to the graphics type definitions. In particular, there's no longer a procedure to register a graphics type's name, and also the procedure to construct a graphics type now accepts an additional argument, which is the name. * runtime/ed-ffi.scm[1.11]: New file "os2ctype.scm". * microcode/os2pmcon.c[1.5]: Limit initial width of console window to 80 characters. * microcode/os2msg.h[1.7], microcode/os2pm.c[1.7], microcode/os2pm.h[1.6], microcode/pros2pm.c[1.5]: Add new primitive OS2PS-GET-BITMAP and OS2PM-SYNCHRONIZE. Fix some minor bugs in OS2PS-GET-BITMAP-PARAMETERS. 1995-02-16 Chris Hanson * edwin/bufwin.scm[1.304]: Fix bug in redisplay: when variables that affect display (e.g. truncate-lines) are changed, the window start marks must be erased. Otherwise, the old start marks are used, and with the new display variables in effect, these marks could cause point to be left offscreen, or even force all of the buffer's text to be offscreen! * edwin/image.scm[1.133]: Reformat to meet page length and width standards. 1995-02-14 Chris Hanson * runtime/uproc.scm[1.8]: Add definition %ENTITY-EXTRA/APPLY-HOOK? so that Ziggy can identify internal data structure used to build apply-hooks out of entities. * microcode/os2pmcon.c[1.4]: Change to use presentation space calls where appropriate now that low-level PM support has changed to separate PS calls from window calls. * runtime/runtime.pkg[14.245]: Update to match "os2graph.scm" and "os2winp.scm". * runtime/os2graph.scm[1.5]: Complete redesign uses bitmaps as backing store and transfers the appropriate part of the backing store to the screen using GpiBitBlt whenever the PM says it needs to be updated. * runtime/os2winp.scm[1.4]: Add new primitives. Reorganize to make this easier to maintain. * runtime/os2prm.scm[1.6]: Change definition of OS2/FS-LONG-FILENAMES? so that it is true of any filesystem type except FAT. This is still not accurate, but is a better default, since there are compression filesystems that have unusual types but also have long filenames. * runtime/dospth.scm[1.23]: Redefine PATHNAME-WILD? under DOS/NT/OS2 so that it is true of any pathname containing a * or ? in its file-namestring. * edwin/decls.scm[1.54], edwin/dired.scm[1.154], edwin/dirunx.scm[1.10], edwin/ed-ffi.scm[1.37], edwin/edwin.ldr[1.54], edwin/edwin.pkg[1.163]: Add new file "diros2.scm" that supports compressed files under OS/2. * edwin/os2.scm[1.7]: Add support for compressed files. * microcode/os2msg.h[1.6], microcode/os2pm.c[1.6], microcode/os2pm.h[1.5], microcode/pros2pm.c[1.4]: Rewrite bitmap support to make it be closer to the API calls. This gives more power to the Scheme programmer at the expense of more datatypes and primitives. * microcode/os2file.c[1.2]: By default, don't allow opened file handles to be inherited by inferior processes. 1995-02-09 Stephen Adams * runtime/uenvir.scm[14.35]: Fixed COMPILED-PROCEDURE/ENVIRONMENT not to SIGSEGV on compiled procedures which have no free variables. This happened because the compiler failed to produce a dbg-block for the dbg-block/parent of the procedure's dbg-block. An alternative fix would be to modify the compiler to insert the correct IC dbg-block instead of leaving it as #F. 1995-02-08 Chris Hanson * edwin/edwin.pkg[1.162], edwin/os2term.scm[1.4], microcode/os2msg.h[1.5], microcode/os2pm.c[1.5], microcode/os2pm.h[1.4], microcode/pros2pm.c[1.3], runtime/os2graph.scm[1.4], runtime/os2winp.scm[1.3], runtime/runtime.pkg[14.244]: Reimplement OS/2 PM window support to separate the drawing operations from the windows. All drawing operations now operate on objects that represent "presentation spaces"; a window has a PS associated with it, but it is now possible to create other PS objects that represent bitmaps. Furthermore there are is a bitblt operation that can be used to move image data between bitmaps and windows. All of this support allows Scheme to store its graphics output in bitmaps and to refresh the windows when needed, thus allowing efficient backing store for windows. 1995-02-07 Chris Hanson * runtime/sfile.scm[14.16]: Add code to preserve modification time stamp on copied files. * microcode/os2msg.c[1.5], microcode/os2top.c[1.11]: Add more specific error messages to low-level message allocation code. * microcode/os2fs.c[1.5]: Never signal an error from file probe. There are too many things that can go wrong, so it's pointless to try to enumerate them. * edwin/curren.scm[1.113]: Add hook for user action when new screen is created. * edwin/cinden.scm[1.12]: Fix minor bug in M-x indent-c-exp. Still needs a little work, but at least this one isn't as broken as the previous. 1995-02-02 Chris Hanson * edwin/cinden.scm[1.11]: Completely reimplement indentation rules for C statements appearing at the top level of a file (that is, not inside any parenthetical characters). Old rules incorrectly indented the name line of a function definition that was written in the standard GNU style. New rules correctly indent this case, and all of the other cases that I've tried so far. * edwin/c-mode.scm[1.53]: Fix bug in M-x electric-c-terminator: it was not correctly handling goto tags that contained _ or $. * edwin/regexp.scm[1.66]: Change buffer search procedures to have their ending limit be optional. This makes them more convenient to use and also makes them just like the buffer match procedures. 1995-01-31 Chris Hanson * runtime/runtime.pkg[14.243]: Eliminate end-of-file markers. * runtime/os2prm.scm[1.5]: Temporary filenames now use long format which includes the Scheme PID if the filesystem that they are stored on supports long filenames. * microcode/pros2fs.c[1.3]: Add primitive to get Scheme's pid. * edwin/os2.scm[1.6]: Move OS2/FS-LONG-FILENAMES? to runtime system. * runtime/os2graph.scm[1.3]: Add SET-FONT operation to OS/2 graphics windows. * runtime/os2graph.scm[1.2]: Implement window-manipulation procedures for OS/2 graphics windows. * edwin/dired.scm[1.153], edwin/dirunx.scm[1.9]: Remove key bindings for unix-specific Dired commands. * edwin/compile.scm[1.4]: Generalize for OS/2. * microcode/os2api.h[1.5]: Fix mismatch between two syscall name lists. * edwin/fileio.scm[1.124], runtime/dosprm.scm[1.25], runtime/dospth.scm[1.22], runtime/fileio.scm[1.9], runtime/io.scm[14.42], runtime/os2prm.scm[1.4], runtime/pathnm.scm[14.30], runtime/unxprm.scm[1.33], runtime/unxpth.scm[14.17]: Eliminate end-of-file marker handling code. This is the code that used to handle ^Z in DOS files -- but the ^Z convention is very old and not worth putting in explicit support for. 1995-01-30 Chris Hanson * edwin/process.scm[1.36]: Fix bug reported by BAL: CALL-WITH-INPUT-COPIER was examining the value returned by OUTPUT-PORT/WRITE-SUBSTRING -- but that procedure has no useful value. 1995-01-25 Chris Hanson * microcode/bitstr.c[9.54]: Fix some more fencepost errors in the bit string copying code. 1995-01-24 Chris Hanson * microcode/bitstr.c[9.53]: Fix some fencepost errors in `copy_bits', and reformat the code to my standards. 1995-01-23 Chris Hanson * edwin/dos.scm[1.20], edwin/filcom.scm[1.183], edwin/os2.scm[1.5], edwin/process.scm[1.35], edwin/sendmail.scm[1.20], edwin/unix.scm[1.45]: Eliminate several operating-system dependencies. 1995-01-19 Chris Hanson * edwin/os2.scm[1.4]: Fix bug in presentation of pathnames to user -- if the pathname being presented is on a different device from the default, ENOUGH-PATHNAME cannot be used. This is because ENOUGH-PATHNAME and MERGE-PATHNAMES treat the device as separate from the directory, whereas Edwin wants the device to be considered as part of the directory. 1995-01-16 Chris Hanson * microcode/pros2io.c[1.3]: Change SELECT-DESCRIPTOR to return process-status flag when appropriate. * microcode/os2pm.c[1.4]: Change many of the fatal window-system errors to non-fatal warnings. Expand the error/warning text to make it clearer and more useful. * microcode/os2fs.c[1.4]: Error pop-ups are now disabled all the time. Additionally, catch more error codes when probing for file existence. Most of the new error codes have to do with floppy drives. * microcode/os2top.c[1.10]: Disable random error/exception pop-ups generated by OS/2 kernel. * edwin/filcom.scm[1.182]: Fix bug in pathname merging -- if the user specifies a device, don't merge in the default pathname's directory but instead start at that device's root directory. * edwin/os2.scm[1.3]: Fix bug in previous change: OS/NUMERIC-BACKUP-FILENAME? must return a pair consisting of the filename root and the backup version. * edwin/edwin.pkg[1.161]: Use new CREF directives to improve packaging. * edwin/cinden.scm[1.10]: Fix bug in C indentation: side-effect occurring at wrong time caused temporary markers to lose their position. 1995-01-14 Stephen Adams * runtime/runtime.pkg[14.242]: Exported *pp-arity-dispatched-procedure-style*. * runtime/pp.scm[14.33]: Taught the top level PP procedure about a range of new object types: . RECORDs with no recognised record type, WEAK PAIRs, and CELLs print out a bit like named structures. . arity-dispatched-procedures (a kind of ENTITY) print out as a CASE expression. The style is controlled by *pp-arity-dispatched-procedure-style* 1995-01-13 Stephen Adams * runtime/arith.scm[1.31]: Changed all the default procedures for the entities for +, min, < etc to be named procedures. * runtime/unpars.scm[14.40]: Fixed typo in previous edit. * runtime/unpars.scm[14.39]: If an arity-dispatched-procedure has a named compiled procedure as the default then this procedure's name is used in printing the #[..] object. * runtime/pp.scm[14.32]: Added pretty printer method for CASE which works like this: (case will-fit-on-line clause clause) or (case wont-fit-on-line clause clause) 1995-01-12 Stephen Adams * runtime/unpars.scm[14.38]: Entities used to inplement arity-dispatched-procedures print out slighty differently. * runtime/uproc.scm[1.7]: Added the predicate ARITY-DISPATCHED-PROCEDURE?, which is true for certain kinds of ENTITY. 1995-01-10 Chris Hanson * cref/make.scm[1.14], cref/object.scm[1.8], cref/redpkg.scm[1.8]: Add new directives INCLUDE and EXTEND-PACKAGE. 1995-01-06 Chris Hanson * microcode/os2ctty.c[1.3], microcode/os2ctty.c[1.2]: Don't enable interrupts which currently have no handlers. * microcode/os2top.c[1.9], microcode/os2top.c[1.8], microcode/os2top.c[1.7]: Eliminate extra period in OS/2 error messages. * microcode/os2fs.c[1.3]: Signal error when attempting to read non-existant directory. * rcs/rcs.pkg[1.5]: Update to reflect change to runtime system. * rcs/Attic/rcs.sf[1.7]: Use LOAD-OPTION to load CREF. * edwin/os2term.scm[1.3]: Change \\ to / in file specification so that unix systems won't get confused. * edwin/edwin.pkg[1.160]: Fix typos from last change. * runtime/os2winp.scm[1.2], runtime/runtime.pkg[14.241]: Add definition for OS2WIN-SET-MIX. * cref/conpkg.scm[1.5]: Use explicit reference to SYSTEM-GLOBAL-ENVIRONMENT rather than #F in top-level IN-PACKAGE. * sf/reduct.scm[4.9], sf/table.scm[4.4]: Merge in #F/() bug fix from split code. * 6001/6001.sf[1.9], compiler/machines/C/compiler.sf[1.5], compiler/machines/alpha/compiler.sf[1.5], compiler/machines/bobcat/compiler.sf[1.17], compiler/machines/i386/compiler.sf[1.7], compiler/machines/mips/compiler.sf-big[1.7], compiler/machines/mips/compiler.sf-little[1.7], compiler/machines/spectrum/compiler.sf[1.17], compiler/machines/vax/compiler.sf[1.8], cref/cref.sf[1.8], cref/cref.sf[1.7], edwin/edwin.sf[1.12], rcs/Attic/rcs.sf[1.6], runtime/make.scm[14.56], runtime/packag.scm[14.20], runtime/runtime.sf[14.11], win32/win32.sf[1.3]: Change 4-character suffixes used by package system to be 3-character suffixes. This is done by defaulting the output file on the call to SF, which now generates the correct 3-character suffix. * sf/make.scm[4.31], sf/sf.sf[4.6], sf/toplev.scm[4.13]: Change default output file name to be limited to a three character suffix. * edwin/editor.scm[1.240], edwin/editor.scm[1.239]: Fix problem with init-file loading: if the init file deletes the initial buffer or sets an inhibition flag, don't start the inferior REPL. * microcode/Attic/config.h[9.86], microcode/boot.c[9.94], microcode/os2api.h[1.4], microcode/os2top.c[1.6], microcode/syscall.h[1.8]: Simplify interface to OS/2 API by moving all definitions to one file: "os2api.h". By means of some trickery, this eliminates the OS/2 dependencies in "syscall.h". Additionally, add definitions to allow preallocation of the heap's memory (which is temporarily disabled due to problems it causes during debugging). * microcode/cmpauxmd/i386.m4[1.35]: Under OS/2, guarantee that correct number of type bits is used. * edwin/shell.scm[1.12]: Add OS conditionalizations so that OS/2 can be supported. * edwin/process.scm[1.34]: Add OS conditionalizations so that OS/2 can be supported. Change subprocess I/O to use input and output buffers so that end-of-line translation can be handled automatically by the runtime system. * edwin/os2term.scm[1.2]: Change to use runtime system's "os2winp" support. Change corresponding to microcode which now supports multiple event queues for windows. Add subprocess support. Reimplement management of state so that windows are closed down properly when the editor is killed. Change code that "controlifies" input characters -- previously it was not doing this correctly. Change handling of paint events to clear the region being painted before drawing in it -- previously the microcode took care of this, but it no longer does so. * edwin/os2.scm[1.2], edwin/unix.scm[1.44]: Implement OS-specific part of subprocess support. * edwin/lincom.scm[1.121]: Extend M-x count-lines to show the number of characters in the region as well as the number of lines. * edwin/fileio.scm[1.123]: Change text-mode translation to be done during buffer read or write by means of the input/output-buffer abstractions in the runtime system. This is MUCH faster than the mechanism previously implemented here. * edwin/evlcom.scm[1.51], edwin/filcom.scm[1.181]: Don't signal an error if a file has a "find-file initialization" that specifies an non-existent environment or syntax table. Instead, just print a warning message and set the environment to the default. * edwin/edwin.pkg[1.159]: Change to use new CREF OS-conditionalization expression, so that this file can be shared between unix, OS/2, DOS, and Windows without editing. Also add changes for OS/2 subprocess support. * edwin/edwin.ldr[1.53]: Change to load subprocess support for OS/2 as well as unix. * edwin/edtfrm.scm[1.88]: Don't allow the mouse to select the typein window if it is inactive. * edwin/editor.scm[1.238]: Change loading of editor init file so that it is performed before starting the inferior REPL. Also do not temporarily change the current buffer to a dummy buffer during this load. * edwin/dirunx.scm[1.8], edwin/vc.scm[1.17]: FIND-PROGRAM is now operating-system specific. * edwin/comint.scm[1.21]: Generalize code that finds the extent of a partial filename that is to be subject to completion. The generalization allows an operating system specific parsing method. * runtime/x11graph.scm[1.40]: Implement COLOR? predicate to determine if a given graphics window supports color. * runtime/runtime.pkg[14.240]: Add OS/2 graphics. Conditionalize loading of other graphics support so that only the support needed for the operating system is loaded. Thus, unix systems won't load OS/2 graphics, and OS/2 systems won't load X graphics. * runtime/os2dir.scm[1.4]: Fix OS/2 directory sorting algorithm to be normal alphabetic sorting on the FILE-NAMESTRING. * runtime/make.scm[14.55]: Console no longer does line translation, so writes to console must be conditionalized by OS to use the correct end-of-line sequence. Also, add initialization for OS/2 graphics. * runtime/io.scm[14.41]: Change MAKE-INPUT-BUFFER and MAKE-OUTPUT-BUFFER to default to text mode rather than binary mode. Ports that do not specify the mode usually want text mode. Unfortunately, the DOS/NT microcode believes that the console is special -- the console microcode performs line translation directly on those systems -- and this must be changed now. * runtime/ed-ffi.scm[1.10]: Add new files for OS/2 graphics. * runtime/dosprm.scm[1.24], runtime/dospth.scm[1.21], runtime/os2prm.scm[1.3], runtime/unxprm.scm[1.32]: Add OS-specific definitions for EOL and EOF markers. * cref/redpkg.scm[1.7], cref/toplev.scm[1.8]: Don't look for old files with 4-character suffixes; this will just make bringing up the DOS version more difficult. * microcode/os2io.c[1.3]: Set the NOINHERIT bit in all channels, so that the handles associated with those channels will not be inherited by subprocesses. The subprocess support will disable the bit in those channels that want to be inherited. * microcode/os2pmcon.c[1.3]: Fix some timing errors associated with opening the console window. * microcode/os2pm.h[1.3], microcode/pros2pm.c[1.2]: Change all coordinate variables from "unsigned short" to "short". Implement operations needed to draw lines and points in windows, to determine the capabilities of the display, and to change the title bar of a window. Extend the window-opening procedure to allow the window style to be specified. Change PM primitives to allow multiple event queues, so that messages for graphics windows can be kept separate from messages for Edwin windows. 1995-01-05 Stephen Adams * microcode/fixnum.c[9.38]: Added primitive INDEX-FIXNUM? from the split typecode system to allow some runtime files to be merged. 1995-01-05 Chris Hanson * microcode/os2pm.c[1.3]: Change all coordinate variables from "unsigned short" to "short". Implement operations needed to draw lines and points in windows, to determine the capabilities of the display, and to change the title bar of a window. Extend the window-opening procedure to allow the window style to be specified. Change PM primitives to allow multiple event queues, so that messages for graphics windows can be kept separate from messages for Edwin windows. * microcode/os2msg.c[1.4]: Add mechanism to "unread" messages back to the head of a message queue. Add mechanism to get the other end of a qid pair. Eliminate logic error that was being generated when sending a message to a qid whose other end had been closed (now we just discard the message). Reimplement message queues to NOT use the OS/2 queue abstraction -- apparently these queues use quite alot of memory and I recently ran into a situation in which the memory was exhausted, which caused Scheme to die. Now, the memory needed for the queues is taken from the Scheme process's virtual memory. * microcode/os2msg.h[1.4]: Add messages for graphics and subprocess support. Also add new mechanism for "unreading" messages from a message queue. * microcode/prosproc.c[1.14]: IBM's OS/2 C runtime library doesn't have `environ' -- instead it has `_environ', which is equivalent -- so add a conditionalized definition. * microcode/pros2io.c[1.2]: Add subprocess changes to "select" support. * microcode/pros2fs.c[1.2]: Implement DRIVE-TYPE primitive, which is used to distinguish between FAT and HPFS file systems where needed. Also, change the appearance of the "mode string" returned by the FILE-INFO primitive. * microcode/os2cthrd.c[1.4], microcode/os2cthrd.h[1.3], microcode/os2pipe.c[1.3]: Change implementation of readahead in input channels that require it. Readahead is now buffered in the input queue by means of a new operation to push a message back onto the head of the queue. Also, there is now a mechanism to delay starting the readahead thread until the first read occurs on the channel -- this is used for input pipes that are passed to child processes and never read from the Scheme end. It's important that such pipes not be read from. * microcode/os2conio.c[1.5]: Console must not perform newline translation -- that will be done by runtime system. Implement changes so that console works correctly with "translated" input and output. * microcode/os2top.c[1.5], microcode/syscall.h[1.7]: Add new system calls needed for OS/2 subprocess support. * microcode/os2api.h[1.3]: Eliminate "os2api.c" and add new system calls needed for subprocess support. * microcode/os2.c[1.3]: Put serializing lock in OS2_create_queue to guarantee atomic update to global counter variable. * microcode/os2utl/makefile[1.4]: Change to use static linking. Add support for subprocesses. Delete "os2api.c". * cref/make.scm[1.13], cref/redpkg.scm[1.6], cref/toplev.scm[1.7]: Implement new OS-TYPE-CASE expression; this is used to have operating-system specific conditionalizations in the package file. Also change all of the file types generated by CREF to be 3 characters long instead of 4; the code will automatically rename or delete the old names when they are seen. 1994-12-19 Chris Hanson * edwin/edwin.pkg[1.158]: Can no longer define (edwin win-commands) package because it now depends on other undefined win32 packages. * microcode/os2.c[1.2], microcode/os2.h[1.3], microcode/os2api.h[1.2], microcode/os2conio.c[1.4], microcode/os2cthrd.c[1.3], microcode/os2env.c[1.2], microcode/os2fs.c[1.2], microcode/os2io.c[1.2], microcode/os2msg.c[1.3], microcode/os2msg.h[1.3], microcode/os2pm.c[1.2], microcode/os2pm.h[1.2], microcode/os2pmcon.c[1.2], microcode/os2top.c[1.4], microcode/os2utl/makefile[1.3]: Many changes to support Edwin. Converging on a final design for the OS/2 support. * microcode/term.c[1.11]: Reconditionalize so that OS/2 is handled much like Windows -- using message boxes to show fatal output rather than writing it on the controlling terminal as in unix. * microcode/syscall.h[1.6]: Add some more OS/2 system calls. * microcode/regex.c[1.15]: Fix bug: must use signed character type when doing sign extension. IBM's OS/2 C compiler makes characters unsigned by default. * microcode/outf.c[1.6]: Add support for OS/2 message boxes, and send standard I/O to the console window. * microcode/boot.c[9.93]: Define hook to start interpreter for OS/2, needed in order to trap exceptions properly, much as in Windows. * runtime/conpar.scm[14.35], runtime/make.scm[14.54]: Merge in changes from split-tag system. * runtime/conpar.scm[14.34]: Merge in changes for OS/2 and from new compiler. * runtime/make.scm[14.53]: Change cold-load order to put INITIALIZE-SYSTEM-PRIMITIVES! before the thread initialization. This is because OS/2 wants to initialize its select-registry mechanism before the thread initialization attempts to use it. * runtime/conpar.scm[14.33]: Generalize HARDWARE-TRAP-FRAME/CODE to correctly handle OS/2 exception frames. * runtime/dospth.scm[1.20]: Fix code to do directory simplification better. Eliminate some more unnecessary restrictions. * runtime/os2dir.scm[1.3]: Tweak: OS/2 directory reader directly implements wildcard searches. * runtime/os2prm.scm[1.2]: Implement additional support needed for Edwin. * runtime/uerror.scm[14.42]: Add code to handle OS/2 hardware exceptions. * runtime/ed-ffi.scm[1.9]: Add DOS and OS/2 files. * runtime/sfile.scm[14.15]: In COPY-FILE, move mode-setting statement after closing of output file. This is required under OS/2, since setting the file modes is prohibited for a file that is opened for writing. * runtime/dosprm.scm[1.23], runtime/pathnm.scm[14.29], runtime/runtime.pkg[14.239], runtime/utabs.scm[14.12]: Implement and use new variable MICROCODE-ID/OPERATING-SYSTEM. * edwin/edwin.pkg[1.157], edwin/edwin.pkg[1.156]: Undo PC-specific changes from previous revision. Add OS/2 files. * edwin/dos.scm[1.19], edwin/fileio.scm[1.122], edwin/unix.scm[1.43]: Add new operating-system dependency: OS/SET-FILE-MODES-WRITABLE!. * edwin/filcom.scm[1.180]: Sort ed-ffi database after it is loaded in order to protect against user error in these files. * edwin/decls.scm[1.53], edwin/ed-ffi.scm[1.36], edwin/edwin.ldr[1.52]: Add OS/2 files. * edwin/comred.scm[1.112]: Fix bug that caused asynchronous thread events, and therefore C-g, to stop working after the first time C-g was typed. * edwin/ansi.scm[1.7], edwin/loadef.scm[1.27], edwin/make.scm[3.85]: Use new variable MICROCODE-ID/OPERATING-SYSTEM. 1994-12-15 Stephen Adams * runtime/uenvir.scm[14.34]: Added check for valid dbg-procedure/block to avoid SIGSEGV with the (temporarily) broken new debug info. * runtime/arith.scm[1.30]: Changed the implementation of +, -, *, /, <, <=, =, >=, >, min and max (most of the user-level lexprs) to use entities. Naive uses of these procedures is now a lot faster, e.g. (sort! vector <) is just over twice as fast. 1994-12-06 Stephen Adams * runtime/runtime.sf[14.10]: Used LOAD-OPTION to load cref. This ensures that, when cross-syntaxing, the host system's cref is loaded, not the cref from the target system. 1994-12-02 Stephen Adams * runtime/runtime.pkg[14.238]: I exported *pp-auto-highlighter* cph did something for os2. * runtime/pp.scm[14.31]: Added *pp-auto-highlighter*. When *pp-auto-highlighter* is #F (the default) pp behaves as before. When assigned a procedure of one argument this procedure is called for each part of the input tree. It may return: . #F indicating that pp should proceed normally . a new form which is pretty printed instead of the input, for example, it may be wrapped with a highlight. * runtime/parse.scm[14.27]: Fixed string reading again. This time it uses a string output prort to accumulate the characters. 1994-12-02 Chris Hanson * microcode/os2utl/makefile[1.2]: Changes for PM interface. * microcode/outf.c[1.5], microcode/outf.c[1.4]: Implement special support for OS/2 console. * microcode/os2.h[1.2]: Add PM interface header file. * microcode/os2conio.c[1.3], microcode/os2msg.c[1.2], microcode/os2msg.h[1.2]: Numerous changes driven by implementation of PM interface. * microcode/os2cthrd.c[1.2], microcode/os2cthrd.h[1.2], microcode/os2pipe.c[1.2]: Add "OS2_" prefixes to exported procedure names. Implement "readahead buffer" abstraction. * microcode/os2top.c[1.3]: Change initialization sequence so that OS/2 can start up its console window before the first `outf' call occurs. Also add initialization for PM console. * microcode/Attic/dostop.c[1.11], microcode/boot.c[9.92], microcode/nttop.c[1.14], microcode/uxtop.c[1.16]: Change initialization sequence so that OS/2 can start up its console window before the first `outf' call occurs. 1994-12-01 Stephen Adams * runtime/parse.scm[14.26]: Fixed in PARSE-OBJECT/STRING-QUOTE to make it behave better when reading large strings with escapes. Removed recursion and to reduced consing by doing a single string-append at the end rather than one per escape. Desirable for 7.3 release. 1994-11-28 Chris Hanson * microcode/os2conio.c[1.2], microcode/os2term.c[1.2]: Fix think-o. * microcode/prosterm.c[1.14]: Add OS/2 console to list of terminal-like channels. * runtime/io.scm[14.40]: Generalize runtime system's notion of "terminal" to coincide with that of microcode. Add OS/2 console to list of terminal-like channels. * runtime/os2dir.scm[1.2]: *** empty log message *** * runtime/dospth.scm[1.19], runtime/make.scm[14.52], runtime/pathnm.scm[14.28], runtime/unxpth.scm[14.16]: Eliminate "canonicalization" from pathname abstraction; this doesn't belong here. Change pathname abstraction so that DOS, NT, and OS/2 can share an single pathname implementation. * microcode/cmpauxmd/makefile[1.3]: Add rule to generate OS/2 assembly language file. * microcode/cmpauxmd/i386.m4[1.34]: Tweak to last change. * microcode/utils.c[9.67]: Clip out C_call_scheme under OS/2 -- this isn't needed. * microcode/syscall.h[1.5]: Final update for first working version of OS/2 port. * microcode/Attic/posixtyp.h[1.11]: Add conditionalizations for compiling with gcc under OS/2. * microcode/option.c[1.40]: Generalize handling of filenames to treat OS/2 like DOS and NT. * microcode/cmpauxmd/i386.m4[1.33]: Add tweaks necessary to get this running under OS/2. * microcode/Attic/config.h[9.85]: Define a special hook to allow OS/2 to shut down its extra threads in an orderly way when Scheme exits. * microcode/cmpint.c[1.84], microcode/cmpintmd/i386.h[1.25]: Add markers to identify procedures that are called from assembly language, so that they can be compiled with different calling conventions from the default. * microcode/cmpgc.h[1.28]: Supply missing definition needed for no-compiled-code support case. * microcode/Attic/dostop.c[1.10], microcode/boot.c[9.91], microcode/nttop.c[1.13], microcode/os2top.c[1.2], microcode/uxtop.c[1.15]: Call dstack_initialize and transaction_initialize from main rather than from the operating-system specific initialization procedures. 1994-11-27 Chris Hanson * microcode/option.c[1.39]: Fix bug in previous change. 1994-11-26 Guillermo J. Rozas * compiler/base/infnew.scm[4.11.1.1], compiler/base/toplev.scm[4.52.1.2], compiler/machines/spectrum/make.scm[4.89.1.1], compiler/machines/spectrum/rules3.scm[4.41.1.2], compiler/machines/spectrum/rulrew.scm[1.12.1.1]: Make source information propagate correctly 1994-11-20 Chris Hanson * runtime/runtime.pkg[14.237]: Export new names for channel-file-length etc. * microcode/prosfile.c[1.7]: Fix name conflict with new OS/2 primitive FILE-LENGTH. * edwin/notify.scm[1.15]: Change to use new file-length procedure. * runtime/dosprm.scm[1.22], runtime/infutl.scm[1.57], runtime/unxprm.scm[1.31]: Implement file-length procedure. * edwin/docstr.scm[1.2], edwin/fileio.scm[1.121], runtime/fileio.scm[1.8], runtime/io.scm[14.39], runtime/sfile.scm[14.14]: Rename procedures: file-length => channel-file-length file-position => channel-file-position file-set-position => channel-file-set-position This is needed to free up `file-length' for use as a procedure that accepts a file name as argument and returns the file's length. * microcode/option.c[1.38]: Don't use `access' -- use `OS_file_access' instead. 1994-11-20 Guillermo J. Rozas * runtime/framex.scm[14.18]: Delay environment construction until after it is determined that the debugging info contains a valid environment. * runtime/framex.scm[14.17]: Add new compiled-code methods for new compiler. 1994-11-19 Chris Hanson * microcode/fasl.h[9.36]: Fix typo that causes compiler warning in OS/2 compiler. 1994-11-14 Stephen Adams * runtime/wttree.scm[1.6]: Removed unused procedure. Added comment. * runtime/wttree.scm[1.5]: Copyright date. 1994-11-14 Chris Hanson * microcode/os.h[1.5], microcode/osscheme.c[1.8], microcode/osscheme.h[1.9], microcode/syscall.h[1.4], microcode/utils.c[9.66]: More small changes for OS/2. * microcode/intrpt.h[1.18]: Implement CLEAR_INTERRUPT_NOLOCK (needed for OS/2). * microcode/prosio.c[1.12]: Eliminate compiler warning. * edwin/strpad.scm[1.7]: Make WRITE-STRINGS-DENSELY more consistent -- it should not terminate its output with a newline. * edwin/editor.scm[1.237]: Reformat to eliminate over-long line. * microcode/Attic/dosio.c[1.8], microcode/Attic/dosio.h[1.4], microcode/ntio.c[1.10], microcode/ntio.h[1.6], microcode/osio.h[1.10], microcode/prosio.c[1.11], microcode/uxio.c[1.34], microcode/uxio.h[1.4]: Eliminate old channel select registry mechanism. * runtime/io.scm[14.38]: Eliminate unix-specific CHANNEL-TYPE=FOO? predicates. Use new CHANNEL-TYPE-NAME primitive if it is available. * runtime/runtime.pkg[14.236]: Eliminate unix-specific channel-type=foo? predicates. * microcode/prosio.c[1.10]: Implement channel-type-name primitive, which should isolate the runtime system from definitions of microcode channel-type indices. 1994-11-13 Chris Hanson * microcode/osio.h[1.9]: Expand channel_type table to include OS/2 channel types. Rename unix-specific channel types (defining old names as aliases). 1994-11-12 Stephen Adams * runtime/prgcop.scm[1.5]: Attended to bugs in copying DEFINITIONS and SEQUENCEs. 1994-11-06 Stephen Adams * edwin/win32com.scm[1.3]: Corrected a primitive's arity. * win32/graphics.scm[1.6]: Added DESCRIPTOR->DEVICE argument to OPERATION/OPEN. Graphics windows are now GC-ed and deleted before exit. * runtime/x11graph.scm[1.39]: *** empty log message *** * runtime/graphics.scm[1.13], runtime/starbase.scm[1.11]: OPERATION/OPEN now takes an mandatory argument DESCRIPTOR->DEVICE which converts a descriptor into a user level GRAPHICS-DEVICE. This allows a graphics device implementation access to the user level GRAPHICS-DEVICE object at initialization time, which may be used in in protection lists etc (as is done in the win32 implementation). 1994-11-04 Chris Hanson * runtime/unpars.scm[14.37]: Change printed representation of undefined values. * runtime/usrint.scm[1.13]: Change ";No value" to ";No useful value" per discussion with Meyer. 1994-11-03 Stephen Adams * edwin/display.scm[1.6], edwin/editor.scm[1.236], edwin/edwin.ldr[1.51], edwin/win32.scm[1.3]: Fixed edwin.ldr. Some files were loaded twice. Changed the selection of a default display type. If a display type is requested but is not available then an error is generated (the code used not to check). There is no longer a preference for the display type 'CONSOLE, so the list of defined types is always searched. The initialization sequence in edwin.ldr is tterm before (xterm or win32), which puts the graphical display types ahead of the console in the display types list, and this places them at a higher desirability. Doing this revealed that the win32 availablility predicate was implemented incorrectly. * edwin/bios.scm[1.4], edwin/tterm.scm[1.26]: Fixes to allow bios and the new tterm to work together. 1994-11-02 Stephen Adams * win32/wf_user.scm[1.4]: New Win32 API procedures: GET-FOCUS, SET-ACTIVE-WINDOW and SHOW-WINDOW. * microcode/ntutl/makefile[1.16]: Turned on optimization for worthwhile files: gcloop.c: test gc improved from 1.71s to 0.84s. fasload.c: fasloading large files is 20% faster. (Of course, debugging problems in these areas will be hell, unless they optimizations are (trivially) turned back off). * microcode/ntgui.c[1.14]: Rationalized or removed screen primitives to support the impoved Edwin Win32 Screen. * microcode/ntutl/ntgui.rc[1.8]: Add Coffee Icon. Update copyright date. * microcode/ntscreen.c[1.22], microcode/ntscreen.h[1.10]: Changes mainly to support the impoved Edwin Win32 Screen. . Eliminated WM_ERASEBKGND. Changed WM_PAINT to paint in the pixels near the edge that WM_ERASEBKGND. This change is more efficient and avoids flicker on resizing. . One icon per screen rather than one for all screens. . Key and mouse messages are not converted into input events when window is iconic . Added a focus-tracking device for use by Edwin. Re-worked Focus and Caret code to get it right. . Window text color defaults to the system default rather than black. . New mode SCREEN_MODE_VK_KEYS controls whether arrow key events are sent as special keys or emacs-ascii (^P for up etc). . Minimum screen size is 3 rows of 5 columns, pending rework of edwin to advise screen sizes * microcode/ntutl/conses.ico[1.2]: Tidying. * edwin/edwin.pkg[1.155]: Changes for the new Win32 screen driver (which somehow got omitted last time), plus changes for the improvements. * edwin/debug.scm[1.33]: DEBUGGER-START-NEW-SCREEN? is now default true for all systems. (This does the right thing for consoles, Xterms and Win32 screens.) * edwin/win32com.scm[1.2]: New command: SET-ICON sets the current screen's icon picture. New variables: SCREEN-NAME-FORMAT SCREEN-NAME-LENGTH These are like the X-* version, but no icons names as Windows does not make X's distinction between window and icon names. Default values are same as for X. * edwin/win32.scm[1.2]: Improvements to the Win32 screen driver . Rationalized names and the interface to some primitives. . Added screen name feature (like X version) . Ensured that windows are closed before exit / disk-restore. . Fixed bug in screen resize (you *have* to guard against resizing to the same size otherwise the rest of the system allocates new matrixes and then decides to optimize the screen reorganization, leading to random stuff being copied from the uninitialized matrixes to the screen). . The Close Window menu item now closes the window if there are more than one, otherwise it behaves like ^X ^C . Debugged multiple screens. Added a whole load of black magick for keeping Edwin's idea of the selected-screen in synch with the Windows screen with the input focus. . There is no need to hide the cursor (Caret) during redisplay as windows does this anyway, and manually hiding it causes visible caret flicker. * edwin/buffer.scm[1.167]: Changing WITHOUT-INTERRUPTS to WITH-EDITOR-INTERRUPTS-DISABLED was not the right thing. WITH-EDITOR-INTERRUPTS-DISABLED is required in the running editor but the first buffer is created before the editor structure exists, and variables may be set as early as initial file load time (prior to dumping the band) -- e.g vc.scm. WITHOUT-EDITOR-INTERRUPTS choses to do either a WITHOUT-INTERRUPTS or a WITH-EDITOR-INTERRUPTS-DISABLED (confused?). Perhaps WITH-EDITOR-INTERRUPTS-DISABLED ought to have this behaviour. 1994-11-01 Stephen Adams * edwin/intmod.scm[1.85]: Added a message to INFERIOR-REPL-DEBUG as this may take a long time when initially started. * edwin/ansi.scm[1.6]: Extended definition of ansi terminal driver trivially so that it matches the new termcap code. * edwin/tterm.scm[1.25]: Added a feature to decode special keys that are defined in the termcap entry. These now appear to Edwin as the special keys like up, left and f5. * edwin/termcap.scm[1.6]: Added termcap info for special keys (up, left, f5 etc). 1994-11-01 Chris Hanson * edwin/buffer.scm[1.166]: Change instances of without-interrupts to with-editor-interrupts-disabled. 1994-10-30 Chris Hanson * runtime/load.scm[14.50]: Change default for suspend files so that they are NOT generated by default. These aren't used much and they quickly clutter the file system. 1994-10-28 Jason Wilson * runtime/hashtb.scm[1.20]: I added hash-table/get-key which is useful when implementing sets and even more useful when using hash-tables to intern objects which you would also like to attach datums to. 1994-10-26 Stephen Adams * edwin/dos.scm[1.18]: Fixed accidental damage to INSERT-DISRECTORY! * win32/win_ffi.scm[1.4]: Fixed bug which caused an old wndproc to be associated with a new window if the handles were the same. * win32/win32.pkg[1.5], win32/win32.pkg[1.4]: runtim => runtime * win32/wf_user.scm[1.3]: Added DESTROY-WINDOW. Edit IS-MENU => IS-MENU? Fixed GetMenuString * win32/graphics.scm[1.5]: Rationalized error reporting. 1994-10-26 Chris Hanson * edwin/xcom.scm[1.12]: Add aliases for the old x-FOO commands. 1994-10-25 Stephen Adams * microcode/ntscreen.c[1.21]: Numerous changes, either bug fixes or changes to accomodate the new Edwin Win32 Screen. The events have been tweaked. Several entry points have been exported or written to allow efficient update of the display character grid by the new Edwin Win32 Screen driver. The display code has been fixed. It was seriously broken and then heavily kludged-upon. Now it does the right thing for WM_PAINT and WM_ERASEBKGND. This fixes the windows 3.1 problem of repainting the whole screen of a resize. It would probably be even better to eliminate WM_ERASEBKGND completely and make the resize code invalidate the orphan pixels which do not correspond to a character position. This would prevent the `flash' as the screen is repainted after a resize and then repainted again after Edwin has decided (or not) to change the display (line wraps etc) to fit the new size. Keyboard. Added direct code for all the `function' keys (like PgUp, f5 etc). Removed MIT_TranslateMessage, which was the wrong thing because it screwed non-edwin windows (like buttons, dialogs, menus, ...). Most of the keys are now handled specially at the WM_KEYDOWN level, avoiding WM_CHAR. This makes it possible to generate something for C-7 and M-C-. This is done in a very US keybaord layout specific way. The right thing is to ask what the key normally does (the KEYMAP program on the Developer's network does this) and then do the emacs thing only if the key is not o-umlaut or grave-accent-modifier (`deadkey') or whatever. * microcode/ntscreen.h[1.9]: See ntscreen.c * microcode/ntgui.c[1.13]: Added primitives for efficient access to the screen window (ntscreen.c). * microcode/ntenv.c[1.10]: Changed OS_process_clock so that it returns the process time (rather than the real time) under NT (or any variant of Win32 that supports GetProcessTimes). * edwin/calias.scm[1.15], edwin/debug.scm[1.32], edwin/decls.scm[1.52], edwin/ed-ffi.scm[1.35], edwin/edwin.ldr[1.50], edwin/edwin.pkg[1.154], edwin/modefs.scm[1.148], edwin/xcom.scm[1.11], edwin/xmodef.scm[1.2]: Changes to merge with Win32 edwin screen driver and support. The main change is the addition of a new Edwin screen device for Win32. The new device implements special keys and mouse buttons. A certain degree of reorganization has been done to make the X and Win32 versions as similar as possible. Some things that used to be called X-MUMBLE are now just called MUMBLE (e.g BUTTON1-UP, MOUSE-SET-POINT). New files: win32.scm: New screen device win32com.scm: Win32 specific commands key-w32.scm, key-x11.scm: System specific handling of special keys (arrows etc). These files replace key.scm mousecom.scm: mouse commands, edited from xcom.scm Notable changes: calias.scm: much of the old key.scm was moved here. Now the keys `f1', `up' etc are available in all Edwins, even if the keyboard cannot generate them. (I have a prototype fix for the console screen driver too). debug.scm, modefs.scm, xmodef.scm: renamed and/or reorganized bindings xcom.scm: A whole lot of this moved to mousecom.scm * edwin/dos.scm[1.17]: Fix working-directory lossage. 1994-10-25 Chris Hanson * edwin/comman.scm[1.79]: Add new procedure COPY-COMMAND. 1994-10-13 Chris Hanson * edwin/edwin.pkg[1.153], edwin/eystep.scm[1.2], runtime/ystep.scm[1.2]: Add new procedures YNODE-EXP-SPECIAL and YNODE-RESULT-SPECIAL to identify special markers within the ynode structure. 1994-10-12 Chris Hanson * edwin/txtprp.scm[1.16]: Fix bug in SPLIT-INTERVAL-LEFT!: because the splitting process could insert a new interval node in a non-leaf position, one of the assumptions of INSERT-FIXUP! was violated. This is fixed by making sure that the inserted node is always inserted in a leaf position. * edwin/vc.scm[1.16]: All existing calls to CURRENT-VC-MASTER require the optional #T argument because the callers cannot handle a returned value of #F. * edwin/debug.scm[1.31]: Fix typo in previous change. * edwin/decls.scm[1.51], edwin/ed-ffi.scm[1.34], edwin/edwin.pkg[1.152], edwin/loadef.scm[1.26], edwin/schmod.scm[1.37]: Add autoloaded stepper support. Requires corresponding support in runtime system. 1994-10-11 Chris Hanson * edwin/debug.scm[1.30], edwin/edwin.pkg[1.151], edwin/txtprp.scm[1.15]: Move HIGHLIGHT-REGION-EXCLUDING-INDENTATION to "txtprp.scm" and export it to the edwin package. * edwin/debug.scm[1.29]: Change HIGHLIGHT-REGION-EXCLUDING-INDENTATION to have same interface as HIGHLIGHT-REGION. * runtime/option.scm[14.32]: Fix think-o that resulted in unused variable. * runtime/ed-ffi.scm[1.8], runtime/optiondb.scm[1.2], runtime/runtime.pkg[14.235]: Add stepper to runtime system as load option. 1994-10-10 Chris Hanson * runtime/uerror.scm[14.41]: Use SYSTEM-CALL-ERROR-MESSAGE primitive to allow microcode to provide more meaningful error messages if possible. If the microcode is unable to provide an error message, fall back to the previous strategy. 1994-10-09 Chris Hanson * edwin/info.scm[1.119], edwin/info.scm[1.118], edwin/tximod.scm[1.19], microcode/fft.c[9.32]: Eliminate random control characters in source text. 1994-10-08 Chris Hanson * edwin/edwin.ldr[1.49]: Use new NO-ERROR optional argument to LOAD-OPTION to prevent errors if the KRYPT option is not present. * runtime/option.scm[14.31]: Add optional argument to LOAD-OPTION; this is a flag that says to not signal an error if the option is unknown. * microcode/Attic/dostop.c[1.9], microcode/nttop.c[1.12], microcode/uxtop.c[1.14]: Eliminate compiler warning from previous change. 1994-10-07 Stephen Adams * microcode/ntfs.c[1.7]: Fixed a bug in the directory read whereby the OS handle was never closed. This manifested under Windows 3.1 as Edwin being unable to do filename completion or file saving after 32 handles were opened but never closed. This fix should go in the 7.3 release. * edwin/dos.scm[1.16]: Undid previous ill-thought-out edits to the backup file name stuff. * edwin/dos.scm[1.15]: *** empty log message *** 1994-10-07 Chris Hanson * microcode/Attic/oscond.h[1.18]: Fix OS/2 conditionalizations. 1994-10-05 Stephen Adams * microcode/ntgui.c[1.12]: Removed some opportunities for GC to cause a side-effecting primitive to be restarted. * microcode/interp.h[9.40]: Changed macro IMPORT_REGS_AFTER_PRIMITIVE to import the History because the primitive may have (indirectly) called C_call_scheme to recursively enter the interpreter which will may rotate the History. 1994-10-04 Chris Hanson * microcode/Attic/dostop.c[1.8], microcode/boot.c[9.90], microcode/boot.c[9.89], microcode/boot.c[9.88], microcode/intern.c[9.54], microcode/nttop.c[1.11], microcode/utabmd.scm[9.76], microcode/utabmd.scm[9.75], microcode/uxtop.c[1.13], microcode/version.h[11.148]: Add new OS-dependent mechanism for building the system-call names tables that the runtime system uses for detecting and reporting system-call errors. This change is upwards compatible with previous versions of the microcode and also with previous versions of the runtime system. * microcode/Attic/oscond.h[1.17], microcode/Attic/oscond.h[1.16], microcode/Attic/posixtyp.h[1.10], microcode/intrpt.h[1.17]: Add conditionalizations for OS/2. 1994-10-03 Stephen Adams * runtime/option.scm[14.30]: Changed LOAD-OPTION yet again: . options are specified in a Scheme file (optiondb.scm), instead of using a data file (options.db). . options can be defined at the scheme REPL or in a .scheme.init file * runtime/runtime.pkg[14.234]: Changes for new LOAD-OPTION system: Export constructors for definine load options. 1994-09-30 Stephen Adams * runtime/runtime.pkg[14.233]: Sorry, that was *INITIAL-OPTIONS-FILE*. * runtime/runtime.pkg[14.232]: Exported *INITIAL-OPTIONS-FILE-PATHNAME* * runtime/option.scm[14.29]: Changed LOAD-OPTION to use database in separate file(s): Features: . No longer need to rebuild bands to make options available. . The database is re-read so new options become available without restarting Scheme. . Option databases have a `parent' field (like an environment frame) which allows the database to be tiered. . The databse format (s-expression) is documented in options.db 1994-09-29 Stephen Adams * microcode/utils.c[9.65]: Changed C_call_scheme to preserve and restore `last_return_code'. This fixes a bug which manifests as an access violation during GC. The GC bug happened because the incorrect value of `last_return_code' left after the recursive interpretation caused a negative stack segment size to be computed. When this was boxed as an unsigned value it became an illegal pointer object. Note that this manifestation would not have happened with the new tagging scheme. 1994-09-29 Chris Hanson * runtime/load.scm[14.49]: Attempt to simulate load-pathname and after-load-hooks in load-packed-binaries. New "make" files in subdirectories depend on this. 1994-09-28 Chris Hanson * edwin/dirunx.scm[1.7]: Eliminate compiler warning. Shorten page to 80 lines. * microcode/x11base.c[1.56]: Fix minor type error in X-LIST-FONTS. Rearrange code slightly. 1994-09-26 Chris Hanson * microcode/x11graph.c[1.33]: Fix typo in previous change. 1994-09-21 Guillermo J. Rozas * microcode/hppanwca.c[1.3]: Update instructions. Add definition of _HPUX to make it compile correctly. 1994-09-19 Stephen Adams * runtime/wttree.scm[1.4]: 1. Fixed #F/() bug in NODE/FIND 2. Declared many define-structure slots as READ-ONLY. 1994-09-17 Stephen Adams * microcode/x11base.c[1.55]: Added X-LIST-FONTS primitive. 1994-09-16 Chris Hanson * runtime/pp.scm[14.30]: Treat LET* and LETREC specially, just like LET. * microcode/x11base.c[1.54]: Fix think-o in X-WINDOW-FONT-STRUCTURE. * edwin/evlcom.scm[1.50]: Change default for evaluate-in-inferior-repl to #t. * edwin/intmod.scm[1.84]: Flush input queue of inferior REPL thread when abort interrupt is signalled. 1994-09-14 Stephen Adams * microcode/x11base.c[1.53]: Changed font structure stuff. X-FONT-STRUCTURE checks for sufficient heap to allocate the structure so that it will always match an XLoadQueryFont with and XFreeFont. New primitive X-WINDOW-FONT-STRUCTURE returns the font structure associated with the window. 1994-09-14 Chris Hanson * edwin/dirunx.scm[1.6], edwin/dirunx.scm[1.5]: Fix type error in M-x dired-do-compress. 1994-09-09 Stephen Adams * edwin/compile.scm[1.3]: Added M-x grep. Sorry, no error parsing yet. * edwin/vc.scm[1.15]: Fix #f/() bug in VC-COMMAND-ARGUMENTS. 1994-09-08 Stephen Adams * edwin/edwin.pkg[1.150]: Added exports to support CHAR-IMAGE-STRINGS buffer-local variable. * edwin/buffrm.scm[1.50], edwin/bufwfs.scm[1.19], edwin/bufwin.scm[1.303], edwin/bufwiu.scm[1.29], edwin/bufwmc.scm[1.17], edwin/comred.scm[1.111], edwin/image.scm[1.132], edwin/iserch.scm[1.20], edwin/modlin.scm[1.19], edwin/motion.scm[1.86], edwin/struct.scm[1.90], edwin/winout.scm[1.9]: Added support for customizable imaging of characters. The per-buffer variable CHAR-IMAGE-STRINGS holds a vector of 256 string which determine how characters are displayed. Using an approriate vector will allow the use of fonts with extra characters, `hex' displays, compound characters for displaying ISO Latin text in plain ASCII and lots of other tricks. Main components of this update: . image.scm to pass in the char-image-strings . bufwin.scm to cache the buffer-local variable . callers of the imaging routines now get the caches variable and pass it to the imaging routines. . fixed a few buglets in the caching of buffer-local variables . changed the criteria for calling the direct-output operations so that they are only used for characters or strings which will be displayed as themselves (comred.scm, winout.scm). 1994-09-08 Chris Hanson * edwin/bufwin.scm[1.302], edwin/bufwiu.scm[1.28]: Guarantee that buffer-local variables are cached in the window before any redisplay can happen. 1994-09-02 Stephen Adams * runtime/intrpt.scm[14.21]: Fixed illegal-interrupt-handler to clear the bit so that the interrupts has been cleared when the error repl re-enables all interrupts. 1994-09-01 Stephen Adams * runtime/record.scm[1.23]: Fixed SIGSEGV bug in %record-application-method. 1994-08-25 Chris Hanson * edwin/bufwiu.scm[1.27]: In %NOTICE-WINDOW-CHANGES!, handle cases where GROUP-START-CHANGES-INDEX is #F. 1994-08-24 Stephen Adams * edwin/utils.scm[1.38]: Fixed typo. * edwin/utils.scm[1.37]: Changed string-allocate and set-string-maximum-length to be primitives if the non-primitive version is interpreted (not compiled). The non-primitive versions in this file to not run interpreted. 1994-08-19 Chris Hanson * runtime/pp.scm[14.29]: Change default for PP to be AS-CODE. 1994-08-18 Stephen Adams * runtime/unsyn.scm[14.17]: Changed unsyntaxing of constants to be more R4RS-ish. Now the empty list and vectors are unsyntaxed as quotations. 1994-08-15 Chris Hanson * edwin/intmod.scm[1.83]: Eliminate prefix spacing for READ input-port operation on interaction buffer. * edwin/intmod.scm[1.82], runtime/dbgcmd.scm[14.15], runtime/emacs.scm[14.22], runtime/rep.scm[14.50], runtime/usrint.scm[1.12]: Change previous kludge: now, PROMPT-FOR-COMMAND- procedures accept a prompt which is a pair whose car is the symbol STANDARD and whose cdr is a string. Such a prompt is treated exactly as a bare string used to be. Now, a bare string is used directly as the prompt with no modification at all. * runtime/usrint.scm[1.11]: Kludge in more complicated support for PROMPT-FOR-COMMAND- procedures. These procedures now append spaces only to the standard prompts. Furthermore, the level number is printed on the standard console only for these prompts. * runtime/emacs.scm[14.21], runtime/port.scm[1.8], runtime/runtime.pkg[14.231]: Add additional kludge so that Emacs port is properly copied to all of the standard places. * edwin/intmod.scm[1.81]: Eliminate gratuitous space from command prompt. This space is filled in by the PROMPT-FOR-COMMAND- procedures anyway. 1994-08-12 Chris Hanson * runtime/arith.scm[1.29]: Fix +, -, *, and / so that they are consistently left-associative. 1994-08-05 Chris Hanson * runtime/arith.scm[1.28]: Change printing of +0.i and -0.i to be +0.i instead of -0.i 1994-08-04 Stephen Adams * runtime/runtime.pkg[14.230]: *** empty log message *** * runtime/unpars.scm[14.36]: Changed *unparse-with-addresses?* to *unparse-with-datum?* * runtime/runtime.pkg[14.229]: Exported *unparse-with-addresses?* flag from unparser package. * runtime/unpars.scm[14.35]: Added *unparse-with-addresses?* flag for default unparser method. 1994-08-04 Chris Hanson * edwin/edwin.pkg[1.149]: Rename DIRED-COMPRESS to DIRED-DO-COMPRESS. Eliminate DIRED-UNCOMPRESS. * edwin/dirunx.scm[1.4]: Change commands to act on marked files and take prefix argument just like other file commands. * edwin/dired.scm[1.152]: Rearrange key bindings to be closer to those of Emacs 19. Fix bug in DIRED-REDISPLAY. * edwin/dired.scm[1.151]: Make DIRED-MARKED-FILES do a case-insensitive comparison. * edwin/dired.scm[1.150]: Add declaration to eliminate compiler warning. * edwin/dired.scm[1.149], edwin/edwin.pkg[1.148]: Change commands that act on marked files so that they don't unmark the files. Implement M-DEL to allow unmarking of many files at once. Change M-x dired to select first nontrivial line on first selection, and not to re-read the directory on subsequent selection (both as in Emacs 19). 1994-07-24 Chris Hanson * runtime/uerror.scm[14.40], runtime/uerror.scm[14.39]: Add entry to trap system-call errors for the delete-directory primitive and convert them into file-operation errors. 1994-07-16 Chris Hanson * runtime/cpress.scm[1.6]: Eliminate case where over-long literal was being emitted. * runtime/cpress.scm[1.5]: Check for and eliminate case which was emitting a copy command of length one. Such a command is ill-formed and should not be emitted. 1994-07-04 Chris Hanson * edwin/debug.scm[1.28]: From MT: Fix bug in HIGHLIGHT-REGION-EXCLUDING-INDENTATION -- a fencepost error that occurs when the region ends at the buffer's end. 1994-06-28 Chris Hanson * microcode/Attic/config.h[9.84], microcode/dmpwrld.c[9.38]: Update old conditionalization based on "unix". * microcode/unxutl/Attic/cf-dist.h[1.22]: Change default compiler switches to enable debugging information and to set COMPILE_STEPPER. Rearrange definitions to put complicated HP-UX graphics options last. * microcode/unxutl/Attic/cf-dist.h[1.21]: Make installation of Starbase graphics support more automatic. * microcode/unxutl/Attic/cf-dist.h[1.20]: Fix comment that erroneously stated that COMPILE_STEPPER is defined in "config.h". * microcode/step.c[9.32]: Correct comments describing stepper primitives. 1994-06-21 Chris Hanson * cref/make.scm[1.12], cref/make.scm[1.11], edwin/make.scm[3.84], sf/make.scm[4.30], sf/make.scm[4.29]: Disregard working directory when file is loaded; use directory that file is loaded from instead. 1994-06-19 Chris Hanson * runtime/gensym.scm[14.4]: Change action of argument to GENERATE-UNINTERNED-SYMBOL: a symbol or string argument affects the result for that call only. 1994-06-02 Chris Hanson * runtime/unxprm.scm[1.30]: Patch UNIX/SYSTEM so that it works properly when the working directory is different from that of the microcode and when multiple threads are in use. * microcode/interp.c[9.84], microcode/interp.c[9.83], microcode/interp.c[9.82]: Patch to fix long-standing bug in forcing of promises. 1994-05-30 Chris Hanson * runtime/runtime.pkg[14.228]: Export EQV-HASH and EQUAL-HASH. * runtime/hashtb.scm[1.19]: Rewrite EQV-HASH-MOD and EQUAL-HASH-MOD so that EQV-HASH and EQUAL-HASH can be exported. 1994-05-20 Chris Hanson * edwin/dired.scm[1.148]: Fix think-o. * edwin/dired.scm[1.147]: Don't advance to next line when executing dired-do-rename. 1994-05-19 Stephen Adams * microcode/ntsig.c[1.16]: Extended catatonia timeout to 120s - much more reasonable on slow machines. 1994-05-13 Chris Hanson * edwin/bufcom.scm[1.100]: Use new optional argument to FIND-BUFFER to eliminate random errors caused by commands being passed names of non-existent buffers. * edwin/curren.scm[1.112]: Add optional arg to FIND-BUFFER which says to signal error if buffer doesn't exist. 1994-05-04 Chris Hanson * edwin/dired.scm[1.146]: Delete empty directories when requested. * edwin/utils.scm[1.36]: Implement DELETE-DIRECTORY-NO-ERRORS. * edwin/autosv.scm[1.30], edwin/fileio.scm[1.120], edwin/rmail.scm[1.33]: Use DELETE-FILE-NO-ERRORS instead of DELETE-FILE and CATCH-FILE-ERRORS. * runtime/sfile.scm[14.13]: Change DELETE-FILE-NO-ERRORS to return a flag indicating its success. 1994-05-03 Chris Hanson * microcode/uxsig.c[1.31]: Rewrite code that the Sun compiler won't accept. 1994-05-02 Chris Hanson * microcode/cmpintmd/mips.h[1.20]: Fix typo. 1994-05-01 Chris Hanson * microcode/version.h[11.146.1.1]: Update for release 7.3.1. 1994-04-30 Chris Hanson * edwin/vc.scm[1.14]: Fix think-o in VC-DIFF. * runtime/runtime.pkg[14.217.1.1]: Changes from between revisions 14.220 and 14.221. * microcode/option.c[1.37]: Undo gratuitous format changes from previous revision. * microcode/bchpur.c[9.63.1.1]: Same changes as those between revisions 9.64 and 9.65. * microcode/bchdmp.c[9.75.1.1]: Same changes as those between revisions 9.77 and 9.78. 1994-04-23 Chris Hanson * edwin/comhst.scm[1.4]: Change command history to keep track of the previous history insertion correctly so that text inserted adjacent to the inserted item does not get included within it. * edwin/intmod.scm[1.80]: Change nesting to guarantee that inferior REPL output mark is grabbed within the interrupt-locked region. 1994-04-22 Chris Hanson * edwin/edwin.pkg[1.147], edwin/intmod.scm[1.79], edwin/intmod.scm[1.78]: Change handling of inferior REPL output so that it does not affect the point of the inferior REPL buffer, and so that insertions to the right of the output mark remain to its right when output occurs. Additionally, implement new editor variable to control whether output from evaluation commands in other buffers cause the evaluation results to be written to the REPL buffer. * runtime/graphics.scm[1.12]: Allow first argument to MAKE-GRAPHICS-DEVICE to be optional. 1994-04-19 Chris Hanson * runtime/runtime.pkg[14.227]: Export FLO:RANDOM-UNIT from the random number generator. * runtime/random.scm[14.10]: Use a flonum vector instead of a vector to hold the state of the RNG. Rename GET-NEXT-ELEMENT to FLO:RANDOM-UNIT so that it can be exported to the global environment. 1994-04-05 Chris Hanson * microcode/cmpauxmd/hppa.m4[1.36], microcode/cmpauxmd/hppa.m4[1.35]: Eliminate assembly code to perform FIX/FLO and FLO/FIX cases of generic binary operations. This code was OK for + and - but failed to produce correct answer for * and / when one argument was exact zero. 1994-03-30 Guillermo J. Rozas * compiler/back/lapgn1.scm[4.16.1.1], compiler/back/lapgn2.scm[1.20.1.1], compiler/back/linear.scm[4.16.1.1], compiler/back/mermap.scm[1.4.1.1], compiler/back/regmap.scm[4.12.1.1], compiler/base/asstop.scm[1.10.1.1], compiler/base/debug.scm[4.13.1.1], compiler/base/make.scm[4.106.1.1], compiler/base/switch.scm[4.24.1.1], compiler/base/toplev.scm[4.52.1.1], compiler/base/utils.scm[4.19.1.1], compiler/machines/spectrum/compiler.pkg[1.46.1.1], compiler/machines/spectrum/compiler.sf[1.16.1.1], compiler/machines/spectrum/dassm1.scm[4.18.1.1], compiler/machines/spectrum/decls.scm[4.34.1.1], compiler/machines/spectrum/lapgen.scm[4.46.1.1], compiler/machines/spectrum/lapopt.scm[1.14.1.1], compiler/machines/spectrum/machin.scm[4.29.1.1], compiler/machines/spectrum/rules1.scm[4.35.1.1], compiler/machines/spectrum/rules2.scm[4.13.1.1], compiler/machines/spectrum/rules3.scm[4.41.1.1], compiler/machines/spectrum/rules4.scm[4.12.1.1], compiler/machines/spectrum/rulfix.scm[4.46.1.1], compiler/machines/spectrum/rulflo.scm[4.39.1.1], compiler/rtlbase/rtlcfg.scm[4.8.1.1], compiler/rtlbase/rtlexp.scm[4.19.1.1], compiler/rtlbase/rtline.scm[4.10.1.1], compiler/rtlbase/rtlreg.scm[4.5.1.1], compiler/rtlbase/rtlty1.scm[4.21.1.1], compiler/rtlopt/rcompr.scm[1.14.1.1], compiler/rtlopt/rcse1.scm[4.22.1.1], compiler/rtlopt/rcse2.scm[4.13.1.1], compiler/rtlopt/rcseep.scm[4.6.1.1], compiler/rtlopt/rcseht.scm[4.12.1.1], compiler/rtlopt/rcserq.scm[4.5.1.1], compiler/rtlopt/rdebug.scm[1.2.1.1], compiler/rtlopt/rdflow.scm[1.2.1.1], compiler/rtlopt/rinvex.scm[1.7.1.1], compiler/rtlopt/rlife.scm[1.60.1.1], compiler/rtlopt/rtlcsm.scm[1.1.1.1]: Snapshot of new compiler. 1994-03-28 Guillermo J. Rozas * microcode/memmag.c[9.57]: Fix comment. 1994-03-28 Michael R. Blair * wabbit/README[1.3]: fixed xrefs * wabbit/README[1.2]: pretty pretty texinfo kludge * runtime/option.scm[14.28]: add wabbit/headhunt load option rename pcsample option loader to "load" (from "make"). * microcode/utabmd.scm[9.74]: typo 1994-03-25 Guillermo J. Rozas * microcode/utabmd.scm[9.73]: Add GC-WABBIT-DESCRIPTOR. * microcode/dosutl/Attic/makefile[1.12], microcode/dosutl/Attic/makefile[1.11], microcode/ntutl/makefile[1.15], microcode/unxutl/Attic/ymkfile[1.89], microcode/unxutl/Attic/ymkfile[1.88]: Add wabbit.c to ordinary scheme's gc files. * microcode/fixobj.h[9.37]: Add wabbit-hunting slot. * microcode/wabbit.c[1.3]: Keep track of last_object better, because there are closure patterns embedded in compiled code blocks on the Snakes. 1994-03-24 Guillermo J. Rozas * runtime/runtime.pkg[14.226]: Fix exports of (runtime unsyntaxer) * runtime/unpars.scm[14.34]: Print #!aux as itself. * runtime/runtime.pkg[14.225]: Export lambda-auxiliary-tag to several other places. * runtime/parse.scm[14.25]: Variable name mismatch. 1994-03-23 Chris Hanson * edwin/dired.scm[1.145]: Change predicate in DIRED-MARKED-FILES in order to speed up search for marked files. New predicate does much less work for lines that are not marked. 1994-03-22 Chris Hanson * runtime/unsyn.scm[14.16]: Change definition of UNSYNTAXER:MACROIZE? so that if it is not #F and not #T then it means "don't macroize but hide internal lambda structures". * runtime/parse.scm[14.24], runtime/runtime.pkg[14.224], runtime/unsyn.scm[14.15]: Kludge: allow parser to recognize #!aux. * edwin/rmail.scm[1.32]: Fix bug in M-x rmail-search: when search locates the regexp in a message that has not yet been selected, the mark yielded by the search must be made permanent before the message is selected, because selecting the message changes its attributes, and consequently alters the amount of text preceding the mark. 1994-03-21 Stephen Adams * runtime/lambdx.scm[14.7]: FIxed #F/() bug 1994-03-18 Chris Hanson * edwin/vc.scm[1.13]: Fix typo in previous change. * edwin/comtab.scm[1.66], edwin/comtab.scm[1.65]: Fix kludge that defines upcased alias for keys that have char bits set; previously it only worked for keys that had zero bits. * edwin/vc.scm[1.12]: Implement vc-insert-headers. 1994-03-16 Chris Hanson * edwin/make.scm[3.83]: Numerous changes whose overall goal was the replacement of the old RCS interface with an Emacs-19-like VC interface. * edwin/modefs.scm[1.147]: Bind C-x v d to vc-directory. * edwin/vc.scm[1.11]: Implement VC-DIRED and VC-DIRECTORY commands. Generalize various commands to work in Dired buffers. * edwin/dired.scm[1.144], edwin/dos.scm[1.14], edwin/edwin.pkg[1.146], edwin/filcom.scm[1.179], edwin/unix.scm[1.42]: * Enhance dired to allow specification of a list of files in a specific directory in place of a directory. * Change OS-specific code for dired to be a single entry point, INSERT-DIRECTORY!, that can insert the listing for a single file, a whole directory, or a wildcarded expression. * Add new procedure, FOR-EACH-DIRED-MARK, that maps a procedure over the marked files in a dired buffer, and unmarks each file as it is processed. 1994-03-13 Jason Wilson * runtime/packag.scm[14.19]: Fix rebinding of load/default-types. 1994-03-11 Chris Hanson * edwin/modefs.scm[1.146]: Bind SHRINK-WINDOW-IF-LARGER-THAN-BUFFER to `C-x -'. * edwin/dired.scm[1.143]: Use SHRINK-WINDOW-IF-LARGER-THAN-BUFFER to implement special pop-up prompts for Dired (as in Emacs 19). * edwin/wincom.scm[1.117]: Implement SHRINK-WINDOW-IF-LARGER-THAN-BUFFER. * runtime/unxprm.scm[1.29]: Implement FILE-EXECUTABLE?. Tweak logic in FILE-WRITABLE?. * runtime/sfile.scm[14.12]: Change COPY-FILE to preserve file modes. * runtime/infutl.scm[1.56]: Handle case where temporary file is manually deleted behind Scheme's back. 1994-03-10 Chris Hanson * edwin/dired.scm[1.142], edwin/edwin.pkg[1.145]: Eliminate idiosyncratic multiple-file copying commands in favor of Emacs 19 generalized marking and copying commands. Rename several commands to match the new Emacs 19 names. 1994-03-09 Chris Hanson * edwin/vc.scm[1.10]: Fix typo in VC-RUN-SHELL-COMMAND. * edwin/vc.scm[1.9]: * Attach VC-PARENT-BUFFER property to vc-log buffers. Use that property to make some of the VC commands work from the log buffer. In particular, the VC-DIFF command now works from the log buffer. * Generalize the log-buffer mechanism to allow multiple log buffers to be open simultaneously. 1994-03-08 Chris Hanson * edwin/vc.scm[1.8]: Use new 'NO-OUTPUT display style to suppress visible changes to the screen when reverting a buffer. * edwin/screen.scm[1.105], edwin/screen.scm[1.104]: Add 'NO-OUTPUT display-style option which does full update of internal data structures, but does not update the screen. * edwin/vc.scm[1.7], edwin/vc.scm[1.6], edwin/vc.scm[1.5]: Attempt to preserve the WINDOW-START-MARK of a buffer's window when the buffer is reverted. * edwin/vc.scm[1.4]: Attempt to restore the "current" window that was in effect when the log entry was started. * edwin/vc.scm[1.3]: Implement VC-LIST-LOCKED-FILES. * edwin/curren.scm[1.111]: Disallow window commands to select other screens by default. This behavior must be requested by setting USE-MULTIPLE-SCREENS true. * edwin/vc.scm[1.2]: Fix random bugs in VC-VERSION-OTHER-WINDOW. * edwin/modefs.scm[1.145]: Add new definitions for VC. * edwin/decls.scm[1.50], edwin/ed-ffi.scm[1.33], edwin/edwin.ldr[1.48], edwin/edwin.pkg[1.144]: Replace "rcs" with "vc" and "rcsparse". * edwin/prompt.scm[1.162]: * Change reference to *PREVIOUS-POPPED-UP-BUFFER*. * Add extra optional argument to PROMPT-FOR-ALIST-VALUE; new arg controls case-sensistivity of match. * edwin/edwin.pkg[1.143]: Export new definitions for MODE-NAME, MINOR-MODE-ALIST, and supporting procedures. * edwin/buffrm.scm[1.49], edwin/editor.scm[1.235]: * Change definitions of and references to *PREVIOUS-POPPED-UP-WINDOW*, *PREVIOUS-POPPED-UP-BUFFER*, and *MINIBUFFER-SCROLL-WINDOW*; they are now bound to weak pairs instead of hash numbers. * edwin/wincom.scm[1.116]: * Change definitions of and references to *PREVIOUS-POPPED-UP-WINDOW*, *PREVIOUS-POPPED-UP-BUFFER*, and *MINIBUFFER-SCROLL-WINDOW*; they are now bound to weak pairs instead of hash numbers. * Extend KILL-POP-UP-BUFFER to allow it to take context information so it can restore the buffers that were popped over. * edwin/modlin.scm[1.18]: Change to use variables MODE-NAME and MINOR-MODE-ALIST instead of special constructs. The special %M and %m constructs still work, but are obsolete. * edwin/buffer.scm[1.165]: * Implement permanent-local declaration. * Change BUFFER-PUT! to do BUFFER-REMOVE! if value is #F. * Generalize VARIABLE-LOCAL-VALUE, VARIABLE-LOCAL-VALUE?, and SET-VARIABLE-LOCAL-VALUE! to accept #F as BUFFER, meaning to manipulate the default value instead. * Change %SET-BUFFER-MAJOR-MODE!, ENABLE-BUFFER-MINOR-MODE!, and DISABLE-BUFFER-MINOR-MODE! to update editor variables MODE-NAME and MINOR-MODE-ALIST so the modeline is correct. * edwin/sendmail.scm[1.19]: Random rearrangements. * edwin/utils.scm[1.35]: Add various useful definitions. * edwin/unix.scm[1.41]: Can now define auto-save-default in krypt buffers, because that variable is declared permanent-local. * edwin/comhst.scm[1.3]: Declare COMINT-INPUT-RING and COMINT-LAST-INPUT-MATCH to be permanent-local. * edwin/autosv.scm[1.29]: Declare AUTO-SAVE-DEFAULT to be permanent-local. * edwin/comman.scm[1.78]: Define VARIABLE-PERMANENT-LOCAL! and VARIABLE-PERMANENT-LOCAL?. 1994-03-07 Chris Hanson * edwin/wincom.scm[1.115]: Change OTHER-WINDOW-INTERACTIVE to not use multiple screens unless the editor variable USE-MULTIPLE-SCREENS is true. Since the default setting for this variable is false, the default behavior is like Emacs 19, which I find less confusing and more useful. * edwin/debug.scm[1.27]: Change browser to show just subexpression of a subproblem line, since this is what is most interesting about that line. This takes less space and is less confusing than the previous behavior, which showed the whole expression and highlighted the subexpression. 1994-03-04 Chris Hanson * edwin/edwin.ldr[1.47]: Load hash tables. * runtime/sfile.scm[14.11]: Add FILE-EQ? procedure. * edwin/unix.scm[1.40]: Change OS/PRECIOUS-BACKUP-PATHNAME to use Emacs 19 names. * edwin/modlin.scm[1.17], edwin/notify.scm[1.14]: Change notifier to use only the GLOBAL-MODE-STRING editor variable. 1994-03-03 Chris Hanson * edwin/tparse.scm[1.69]: Fix minor bug in BACKWARD-ONE-PARAGRAPH. 1994-03-02 Guillermo J. Rozas * runtime/string.scm[14.11]: Change string->list not to be brain dead. * runtime/string.scm[14.10]: Change string->list to be iterative. 1994-03-01 Chris Hanson * runtime/graphics.scm[1.11]: Fix bug in GRAPHICS-TYPE-AVAILABLE? -- this bug is present in the 7.3.0 release and must be fixed there also. 1994-02-25 Chris Hanson * runtime/Attic/syntax.scm[14.25]: Fix bug in previous change. 1994-02-22 Chris Hanson * runtime/Attic/syntax.scm[14.24], runtime/runtime.pkg[14.223]: Add means to detect whether a macro is being expanded at "top level". 1994-02-21 Chris Hanson * edwin/rmail.scm[1.31]: Eliminate another #f vs. '() bug. 1994-02-19 Guillermo J. Rozas * runtime/lambdx.scm[14.6]: Remove extraneous parameter in call to make-lambda. * runtime/lambdx.scm[14.5]: Prevent internally defining a name from causing a duplicate name error. 1994-02-18 Chris Hanson * microcode/uxsig.c[1.30], microcode/uxsig.h[1.4]: Move default definition of `record_signal_delivery' to "uxsig.h". 1994-02-18 Guillermo J. Rozas * runtime/lambda.scm[14.12]: Improve duplicate parameter test in lambda.scm 1994-02-16 Guillermo J. Rozas * runtime/list.scm[14.19]: Improve defn. of fold-left and fold-right. 1994-02-15 Chris Hanson * microcode/ux.h[1.61], microcode/uxsig.c[1.29]: Add additional kludge to last change to guarantee that the SIGCHLD handler is correctly reinstalled after `grantpt' is run. The previous change eliminated the serious bug but introduced another one. * microcode/uxsig.c[1.28], microcode/uxsig.h[1.3]: * Add debugging tool to keep trace of signal delivery in a history. The code to do this is disabled unless DEBUG_SIGNAL_DELIVERY is defined. * Define alternate version of `signal' to work around bug in Sony NEWS-OS 5.0.2. Scheme doesn't use `signal' on that system, but libc does. * Eliminate incorrect extra binding of signal handler for SIGIOT. 1994-02-15 Guillermo J. Rozas * microcode/wabbit.c[1.2]: First working version? 1994-02-09 Chris Hanson * microcode/bignum.c[9.41]: Fix typo in bignum_subtract_unsigned. 1994-02-04 Guillermo J. Rozas * microcode/cmpintmd/hppa.h[1.50]: Fix parameter name mismatch in use of DEFUN. 1994-02-02 Stephen Adams * compiler/fgopt/simapp.scm[4.8]: Added `Possible' to inapplicable operator warnings. * compiler/base/utils.scm[4.19]: Fixed to work with 2-tag fixnums. * compiler/base/switch.scm[4.24]: Added comment. * compiler/back/bitutl.scm[1.9], compiler/back/syerly.scm[1.10], compiler/base/pmerly.scm[1.8], compiler/base/proced.scm[4.19], compiler/fgopt/sideff.scm[1.8]: Fixed #F/() confusion. 1994-02-02 Guillermo J. Rozas * compiler/base/make.scm[4.106]: Re-synchronized RCS version with Scheme version. * compiler/base/infnew.scm[4.11], compiler/base/make.scm[4.105], compiler/base/proced.scm[4.18]: Separate target-block field from initial-callees field in procedure objects. The target-block field is useful in the debugging information, to be able to walk the procedure chain when debugging. * compiler/machines/C/compiler.sf[1.4], compiler/machines/alpha/compiler.sf[1.4], compiler/machines/bobcat/compiler.sf[1.16], compiler/machines/i386/compiler.sf[1.6], compiler/machines/mips/compiler.sf-big[1.6], compiler/machines/mips/compiler.sf-little[1.6], compiler/machines/spectrum/compiler.sf[1.16], compiler/machines/vax/compiler.sf[1.7]: Another instance of "comp" replaced with "compiler" 1994-02-01 Guillermo J. Rozas * microcode/cmpintmd/hppa.h[1.49]: Fix bug introduced in breakpoint proceeding when the layout of memory was changed. The proceed buffer was allocated at the top of constant space which is now the bottom of the heap, where a perfectly valid object resides. In fact, it was typically the object being breakpointed itself, being the object at the top of the stack (the first thing scanned). 1994-01-31 Guillermo J. Rozas * runtime/Attic/syntax.scm[14.23]: Make syntax default its syntax-table argument to the syntax table of the nearest repl. * runtime/defstr.scm[14.27]: define-structure expands into only definitions, so it can be used at the beginning of a body. In particular, the print method is now always declared by passing it along to the type constructor, fixing a problem introduced by the reordering of the definitions in the last change. * runtime/record.scm[1.22]: Modify make-record-type to accept the print-method as an optional argument. 1994-01-30 Stephen Adams * win32/win32.pkg[1.3]: Reference to ../runtime/runtim -> ../runtime/runtime 1994-01-30 Guillermo J. Rozas * microcode/bchdmp.c[9.78], microcode/bchmmg.c[9.86], microcode/bchpur.c[9.65], microcode/option.c[1.36]: Fix several problems with gc files: - Under DOS, the files were not unique for different instances of bchscheme. - Missing error messages under Windows (code had not been changed to use outf). - TEMP and TMP environment variables were not examined. 1994-01-29 Stephen Adams * runtime/hashtb.scm[1.18]: Changed ucode-type fixnum -> positive-fixnum * runtime/uenvir.scm[14.33]: *** empty log message *** * runtime/uenvir.scm[14.32]: Changed null-environment to be xor(#F,1) rather than TC_NULL::1. This is how it is defined in the new microcode and happens to be correct for the current microcode. * runtime/lambdx.scm[14.4], runtime/record.scm[1.21]: Fixed #F/() confusion. * runtime/equals.scm[14.7]: Minor efficiency tweak for eqv? on fixnums * runtime/graphics.scm[1.10]: Fixed for #F != '() * runtime/intrpt.scm[14.20]: Added a comment. * runtime/lambda.scm[14.11]: Removed various #F/() confusion. * runtime/unsyn.scm[14.14]: Fixed null? -> false? 1994-01-29 Guillermo J. Rozas * edwin/dos.scm[1.13]: WITH-REAL-WORKING-DIRECTORY-PATHNAME must really change the microcode's working directory pathname. * microcode/Attic/dosio.h[1.3]: Replace UXIO with DOSIO. * sf/gconst.scm[4.19], sf/usiexp.scm[4.32]: FIRST cannot be integrated as a constant because it is not a primitive. It must be expanded. * runtime/infutl.scm[1.55], runtime/uenvir.scm[14.31]: compiled-entry/dbg-object now returns meaningful info for the internal entry point. 1994-01-28 Guillermo J. Rozas * sf/gconst.scm[4.18]: Add FIRST to list of constants to be expanded. * microcode/ntscreen.c[1.20]: Add handlers for page-up, page-down, and insert keys. 1994-01-25 Chris Hanson * compiler/fggen/fggen.scm[4.31]: When constant-folding multiple definition values vector, must unmap reference traps so that definition works right. 1994-01-14 Chris Hanson * edwin/tagutl.scm[1.54]: Eliminate random error that occurs when file is missing. 1994-01-14 Guillermo J. Rozas * runtime/defstr.scm[14.26]: Move type-definitions to the end of the definition block. In this way there is no need for the symbol to be returned, since the type definition "returns" the symbol, and in addition, all the forms are definitions, so a DEFINE-STRUCTURE becomes legal amongst internal definitions. 1994-01-12 Stephen Adams * win32/graphics.scm[1.4]: changed ACCESS forms to use system-global-environment * runtime/wttree.scm[1.3]: *** empty log message *** 1994-01-12 Guillermo J. Rozas * microcode/bintopsb.c[9.65], microcode/psbtobin.c[9.56]: Make bintopsb align compiled-code blocks as necessary on the source machine. For the C back end, this should be innocuous, since there are no alignment constraints on code. For the native back ends, the native code is only meaningful on the same machine, so the alignment constraints should be the same. 1994-01-10 Chris Hanson * edwin/tagutl.scm[1.53]: Fix bugs that occur after tags-search is finished. 1994-01-10 Guillermo J. Rozas * microcode/cmpint.c[1.80.1.2], microcode/cmpint.c[1.83]: Add cast to eliminate warning. 1994-01-08 Guillermo J. Rozas * 6001/6001.pkg[1.9], compiler/machines/C/compiler.sf[1.3], compiler/machines/alpha/compiler.pkg[1.12], compiler/machines/alpha/compiler.sf[1.3], compiler/machines/bobcat/compiler.pkg[1.49], compiler/machines/bobcat/compiler.sf[1.15], compiler/machines/i386/compiler.pkg[1.21], compiler/machines/i386/compiler.sf[1.5], compiler/machines/mips/compiler.pkg[1.19], compiler/machines/mips/compiler.sf-big[1.5], compiler/machines/mips/compiler.sf-little[1.5], compiler/machines/spectrum/compiler.pkg[1.47], compiler/machines/spectrum/compiler.sf[1.15], compiler/machines/vax/compiler.pkg[1.21], compiler/machines/vax/compiler.sf[1.6]: Rename runtim.* to runtime.* Rename comp.* to compiler.* * compiler/machines/C/compiler.pkg[1.9]: Forgot to update the copyright. * compiler/base/make.scm[4.104]: Rename comp.* to compiler.* * compiler/machines/C/compiler.pkg[1.8], cref/cref.pkg[1.6], edwin/edwin.pkg[1.142], runtime/make.scm[14.51], runtime/runtime.sf[14.9], sf/sf.pkg[4.10]: Rename runtim.* to runtime.* * microcode/cmpint.c[1.80.1.1]: Update beta-release version with bug fixes from version 1.82. * microcode/fasload.c[9.78.1.1]: Update beta-release version with bug fixes from version 9.80. * microcode/fasload.c[9.80]: Fix cache-flushing bugs manifested on the MIPS R4000: - PUSH_D_CACHE_REGION was being called at the wrong time. * microcode/cmpint.c[1.82]: Fix cache-flushing bugs manifested on the MIPS R4000: - The linker cannot use PUSH_D_CACHE_REGION on the block being linked if it is returning to it, it must use FLUSH_I_CACHE_REGION. * microcode/cmpintmd/mips.h[1.19]: Fix cache-flushing bugs manifested on the MIPS R4000: - trampoline entries must be flushed after being written. - The R4000 has write-back caches, so FLUSH_I_CACHE_REGION and friends must also flush the D cache. - PUSH_C_CACHE_REGION != FLUSH_I_CACHE_REGION. 1994-01-06 Guillermo J. Rozas * microcode/bintopsb.c[9.64]: Patch to allow ordinary compiled files to work with allow_cc. The utilities vector is not relevant for ordinary code, only for bands or dumped linked objects, which, for now, bintopsb cannot handle. 1993-12-29 Chris Hanson * runtime/rep.scm[14.49]: Check arguments to MAKE-REPL to guarantee that they are valid. Otherwise, it's all too easy to end up with a REPL that can't be used at all. * runtime/Attic/syntab.scm[14.4], runtime/load.scm[14.48], runtime/rep.scm[14.48]: Change GUARANTEE-SYNTAX-TABLE to take second argument. 1993-12-28 Chris Hanson * runtime/arith.scm[1.27]: Use FOLD-LEFT instead of REDUCE to do n-ary versions of GCD and LCM -- REDUCE returns a negative number if there is a single negative argument, which is incorrect. 1993-12-23 Chris Hanson * compiler/back/bittop.scm[1.21], compiler/back/bitutl.scm[1.8]: Reimplement interval arithmetic and assembler relaxation code. New arithmetic uses geometric model to get more accurate results. Relaxation has been changed to eliminate assumption that if the low bound of an interval doesn't fit, then no point within the interval will fit. This assumption was proven incorrect by an example on the MIPS. * runtime/debug.scm[14.38], runtime/error.scm[14.45], runtime/rep.scm[14.47], runtime/runtime.pkg[14.222]: When invoking restart in another thread, must call RESTART-THREAD. Also, look for a special CONTINUE restart in the current thread and invoke that. * runtime/thread.scm[1.21]: Add option to allow RESTART-THREAD to prompt the user regarding whether events in the thread's queue should be discarded. 1993-12-22 Stephen Adams * sf/usiexp.scm[4.31], sf/usiexp.scm[4.30], sf/usiexp.scm[4.28], sf/usiexp.scm[4.27], sf/usiexp.scm[4.26], sf/usiexp.scm[4.25], sf/usiexp.scm[4.24], sf/usiexp.scm[4.23]: *** empty log message *** * sf/usiexp.scm[4.22]: Put ucode-type calls in procedures so that the procedures may be redefined for re-tagging 1993-12-22 Jim Miller * runtime/debug.scm[14.37]: Generalize Z command to allow NOT discarding thread events when restarting thread. 1993-12-21 Chris Hanson * runtime/urtrap.scm[14.4]: Reference traps must be fasdumpable. * runtime/uerror.scm[14.38]: Fix typo. * edwin/dired.scm[1.141]: Fix bug in dired-clean-directory -- roles of positive and negative arguments were reversed. 1993-12-18 Chris Hanson * compiler/back/bittop.scm[1.20]: Branch-tensioner assumptions are also violated in case where padding not in use, although I don't understand why since this code used to work. This patch at least allows the compiler to work without errors in this case. * compiler/machines/mips/lapgen.scm[1.13]: Work around new bug in variable-width instruction assembly: LW is being forced to use its long-offset form when the offset is small (in this case the offset is -4). * compiler/back/bittop.scm[1.19]: Fix bug in previous change. 1993-12-17 Chris Hanson * runtime/error.scm[14.44], runtime/error.scm[14.43]: Fix think-o. * runtime/error.scm[14.42]: Restore kludge to allow non-interactive restarts to be invoked interactively. * runtime/parse.scm[14.23]: Fix some typos. * edwin/comred.scm[1.110], edwin/schmod.scm[1.36], runtime/advice.scm[14.14], runtime/error.scm[14.41], runtime/error.scm[14.40], runtime/rep.scm[14.46], runtime/runtime.pkg[14.221], runtime/uerror.scm[14.37]: Implement WITH-RESTART to replace BIND-RESTART. WITH-RESTART takes an additional argument that specifies the interactor -- this is no longer done by means of a restart property. 1993-12-16 Chris Hanson * runtime/error.scm[14.39]: Bind BREAK-ON-SIGNALS types to '() when invoking the breakpoint. Otherwise passing a breakpoint type to BREAK-ON-SIGNALS will cause an infinite loop. 1993-12-15 Stephen Adams * runtime/parse.scm[14.22]: Added more special readers: #[name number fnord fnord ...] now reads as (unhash number), making it possible to read in some output that contains closures etc into the same Scheme process. #n= and #n# A tentative implementation of these Common Lisp readers for cyclic structures (lists and vectors). 1993-12-15 Chris Hanson * runtime/conpar.scm[14.32]: Handle built-in and utility hardware traps. 1993-12-14 Chris Hanson * runtime/uerror.scm[14.36]: Fix a couple of typos. 1993-12-11 Guillermo J. Rozas * microcode/bchdmp.c[9.77]: fasdump_compiled_entry was not aligning compiled-code blocks to floating-point boundaries as it copied them to the output file. * microcode/bchmmg.c[9.85]: Fix several bugs related to varying the size of constant space: - The gc file should be large enough to accomodate all the heap and constant space, not only the space indicated by the -heap parameter. - The size of the gc file should be a multiple of the gc buffer size. The garbage collector always writes a multiple of this quantity, even though at the end, only the area in use is read. 1993-12-10 Chris Hanson * edwin/schmod.scm[1.35]: In M-x show-parameter-list, handle case where no debugging information is available for procedure. 1993-12-09 Guillermo J. Rozas * compiler/machines/C/compiler.pkg[1.7], compiler/machines/alpha/compiler.pkg[1.11], compiler/machines/bobcat/compiler.pkg[1.48], compiler/machines/i386/compiler.pkg[1.20], compiler/machines/mips/compiler.pkg[1.18], compiler/machines/vax/compiler.pkg[1.20]: Update to match latest changes to the linearizer. * compiler/back/bittop.scm[1.18]: Fix typo in last change. 1993-12-08 Chris Hanson * runtime/hashtb.scm[1.17]: Change procedures that convert hash tables to lists so that they don't include invalid entries in the result. 1993-12-08 Guillermo J. Rozas * compiler/back/bittop.scm[1.17]: ?Fix violation in branch-tensioner assumptions introduced by padding. It was previously the case that when variable-width directives were not updated, the minimum width would work for all. This is no longer true. * compiler/back/bittop.scm[1.16], compiler/back/bitutl.scm[1.7], compiler/back/lapgn1.scm[4.16], compiler/back/linear.scm[4.16], compiler/back/syerly.scm[1.9], compiler/back/syntax.scm[1.26], compiler/base/asstop.scm[1.10], compiler/base/make.scm[4.103], compiler/machines/spectrum/compiler.pkg[1.46], compiler/machines/spectrum/instr2.scm[1.6], compiler/machines/spectrum/lapgen.scm[4.46], compiler/machines/spectrum/lapopt.scm[1.14], compiler/machines/spectrum/rules3.scm[4.41], compiler/machines/spectrum/rulflo.scm[4.39]: Several changes: - Closures are allocated differently: the compiler prepares a pattern, the linker finalizes it, the garbage collector relocates it, and the pattern is copied at runtime to make a new closure. - Tighten up the closure code: eliminate the privilege-bit-clearing instruction, and share the closure gc stubs between all the closures in a block. - Add a code segment facility to the linearizer. - Add a padding facility to the assembler. - Compiled code blocks are now aligned to floating-point boundaries so that they can contain embedded floating-point values and closure patterns can be copied using floating-point loads and stores. - Floating-point constants are now embedded in the code area, requiring fewer operations. * compiler/back/symtab.scm[1.46]: Fix "disappearing labels" bug by making the symbol table be strongly held. 1993-12-08 Jim Miller * runtime/option.scm[14.27]: Added SWAT option 1993-12-07 Guillermo J. Rozas * microcode/Attic/dostrap.c[1.6], microcode/bchdmp.c[9.76], microcode/bchgcc.h[9.57], microcode/bchgcl.c[9.49], microcode/bchpur.c[9.64], microcode/cmpgc.h[1.27], microcode/cmpint.c[1.81], microcode/fasdump.c[9.60], microcode/fasload.c[9.79], microcode/gccode.h[9.53], microcode/gcloop.c[9.45], microcode/nttrap.c[1.10], microcode/purify.c[9.54], microcode/purutl.c[9.47], microcode/uxtrap.c[1.25], microcode/version.h[11.147]: Some changes to closures: - Tightening of the entry sequence. - Closure generation by copying a pattern made by the compiler. - Add ability to set breakpoints in closures' internal entry points. - Add CLOSURE_PATTERN_LINKAGE_KIND used by the new patterns. Align compiled code blocks on floating-point boundaries so that the compiler can pad to guarantee that embedded floating-point numbers (and closure patterns, copied using floating-point instructions on the hppa) are aligned correctly. * microcode/cmpintmd/hppa.h[1.48]: Some changes to closures: - Tightening of the entry sequence. - Closure generation by copying a pattern made by the compiler. - Add ability to set breakpoints in closures' internal entry points. * microcode/cmpauxmd/hppa.m4[1.34]: *** empty log message *** 1993-12-06 Chris Hanson * microcode/flonum.c[9.42], microcode/flonum.c[9.41]: Eliminate duplicate definition of FLONUM_SIZE. * runtime/rep.scm[14.45]: Set up a CONTINUE restart for errors resignalled from other threads. 1993-12-05 Chris Hanson * microcode/object.h[9.45]: Fix typo in last change. * runtime/runtime.pkg[14.220], runtime/x11graph.scm[1.38]: Implement support for drawing multiple points and lines. * microcode/x11graph.c[1.32]: Add primitives to draw multiple points and lines. These have better performance characteristics for large plots. * microcode/dfloat.c[1.5], microcode/object.h[9.44], microcode/prims.h[9.44]: Generalize support for flonum vectors. 1993-12-01 Stephen Adams * win32/graphics.scm[1.3], win32/module.scm[1.3], win32/win_ffi.scm[1.3], win32/wt_user.scm[1.3]: Altered event:after-restarts to allow a band containing the win32 system to be loaded on a DOS-only microcode. 1993-11-29 Chris Hanson * runtime/random.scm[14.9]: Remove definition of INT:->FLONUM since it is now exported from the arithmetic package. * runtime/unxprm.scm[1.28]: Fix think-o in previous change. * sf/usiexp.scm[4.21]: Add expansion for INT:->FLONUM. * runtime/runtime.pkg[14.219]: Export INT:->FLONUM. * runtime/unxprm.scm[1.27]: Change temporary filename so that it has no file type. * runtime/infutl.scm[1.54]: Fix problem that caused trouble with debugging information when Scheme was installed on a different device from that on which it was built. 1993-11-29 Guillermo J. Rozas * compiler/machines/C/ctop.scm[1.12]: Make compile-procedure and compile-scode work. * compiler/base/toplev.scm[4.52], compiler/base/toplev.scm[4.51], compiler/base/toplev.scm[4.50]: Fix minor bug. * compiler/base/asstop.scm[1.9], compiler/base/toplev.scm[4.49]: Rename compiled-scode->procedure to compiler-output->procedure Add compiler-output->compiled-expression and compile-scode/internal/hook to make compile-procedure and compile-scode work in the C back end. 1993-11-24 Stephen Adams * microcode/ntutl/ntgui.rc[1.7]: Made release and version automatic from version.h * microcode/ntutl/ntgui.rc[1.6]: Fixed version info 1993-11-24 Guillermo J. Rozas * microcode/ux.h[1.60]: SUNOS calls it TIOCSIGNAL, not TIOCSIG! 1993-11-23 Chris Hanson * microcode/ux.h[1.59]: TIOCSIG not available on sun3. * edwin/process.scm[1.33]: POLL-PROCESS-FOR-OUTPUT must check the input channel to see if it is there at all -- SUBPROCESS-DELETE will change the channel to #F. * microcode/uxproc.c[1.18]: Conditionalize use of TIOCSCTTY to OSF/1 specifically -- HP-UX has this but calling it causes trouble. * microcode/uxproc.c[1.17]: Make sure that controlling PTY is informed of its process group when a subprocess is started. * edwin/process.scm[1.32]: BSD PTYs signal I/O-error when trying to read from a master side whose slave has been closed; SYSV PTYs return EOF in same case. Add code to handle BSD case (this code has a race in it but seems to work OK). 1993-11-23 Guillermo J. Rozas * compiler/machines/C/ctop.scm[1.11]: Add -O to alpha switches. * microcode/ux.h[1.58]: Disable ptys in Ultrix. 1993-11-22 Chris Hanson * microcode/ux.h[1.57]: Eliminate useless Ultrix conditionalization. * microcode/ux.h[1.56]: Fix conditionalization of HAVE_FTRUNCATE -- it was broken for those operating systems that were both POSIX and BSD. Also, define TIOCSIGSEND on several operating systems that support it under a different, undocumented name: TIOCSIG. * microcode/uxproc.c[1.16]: OSF/1 requires the TIOCSCTTY ioctl to be executed in order to associate a controlling terminal with a session leader. * microcode/ux.c[1.13]: Turns out that setpgrp(0,0) is different from setpgrp(pid,pid) -- and only the former works correctly on some BSD systems. 1993-11-22 Guillermo J. Rozas * microcode/pruxdld.c[1.9]: The 300s prefix symbols with _, have the dynamic loader take care of this automagically. * microcode/uxtrap.h[1.24]: Fix declaration of etext for hp9000s300. * microcode/x11base.c[1.52]: Fix bug in x_window_to_xw: it was not checking that the entry in the x_window_table was valid before extracting the window handle. * compiler/machines/C/TODO[1.6]: *** empty log message *** * microcode/cmpgc.h[1.26]: Define macros not present when there is no compiled code support. * microcode/bchdrn.h[1.6]: HP-UX, OSF, and AIX all have SysV shared memory. * microcode/bchmmg.c[9.84]: Fix bug introduced when moving constant space and not using SysV shared memory: The gc buffers need to be below Highest_Allocated_Address, since reset_allocator_parameters uses this boundary to set Heap_Top. 1993-11-21 Chris Hanson * runtime/load.scm[14.47]: In LOAD-PACKED-BINARIES, delay purification of the packed files until after the loading is complete. * runtime/infutl.scm[1.53]: Fix think-o in previous change. * runtime/apropos.scm[1.2]: Repaginate. Eliminate compiler warnings. 1993-11-21 Guillermo J. Rozas * compiler/machines/C/TODO[1.5]: Update. * microcode/s/Attic/sunos4.h[1.7]: Add missing l in dynamic library name. * microcode/s/Attic/sunos4.h[1.6]: Remove spurious #\= * microcode/s/Attic/decosf.h[1.4]: Add dynamic loading primitives * runtime/infutl.scm[1.52]: Fix last change. It was just wrong. * runtime/infutl.scm[1.51]: Add code to handle the load/purification-root of blocks produced by the C back end. 1993-11-20 Chris Hanson * runtime/equals.scm[14.6]: Rearrange order of predicate testing in EQUAL? to favor more common types. * sf/usiexp.scm[4.20]: Fix think-o in last change. * runtime/runtime.pkg[14.218]: Reinstall apropos now that release is finished. * rcs/mklogs.scm[1.5]: Update to reflect new directories. * sf/table.scm[4.3]: Fix typo in last change. * runtime/runtime.pkg[14.217]: Remove apropos from release. 1993-11-19 Chris Hanson * microcode/m/Attic/hp9k800.h[1.13]: Pass the +s option to the loader to enable the use of SHLIB_PATH in the resulting executable. * microcode/s/Attic/aix.h[1.2], microcode/s/Attic/hpux.h[1.11], microcode/s/Attic/sunos4.h[1.5]: Add definitions to enable the dynamic loading primitives on those operating systems that support them. * runtime/emacs.scm[14.20]: Add object that can be yielded as the result of an evaluation in order to suppress the ";value" message from the evaluation. This allows the Emacs interface to transmit commands to Scheme without having those commands appear in the buffer. * microcode/unxutl/Attic/ymkfile[1.87]: Fix cpp problem reported by birkholz. 1993-11-19 Guillermo J. Rozas * microcode/termcap.c[1.6]: Define NULL, not previously defined by any of the include files. * microcode/tparam.c[1.7]: Define NO_ARG_ARRAY by default, since arguments are often passed in registers and modern optimizing compilers will only put the addressed variable on the stack. 1993-11-18 Stephen Adams * microcode/ntutl/bch.ico[1.2], microcode/ntutl/edwin.ico[1.2], microcode/ntutl/graphics.ico[1.2], microcode/ntutl/liar3.ico[1.2], microcode/ntutl/shield3.ico[1.2], microcode/ntutl/shield4.ico[1.2]: Fiddling with appearance * runtime/runtime.pkg[14.215]: *** empty log message *** * runtime/runtime.pkg[14.214]: Added apropos 1993-11-18 Chris Hanson * runtime/infutl.scm[1.50]: Fix think-o in last change. * compiler/base/make.scm[4.102], cref/make.scm[1.10], edwin/make.scm[3.82], sf/make.scm[4.28]: Delay resolution of debugging-info filename until the file is needed. * runtime/infutl.scm[1.49], runtime/make.scm[14.50], runtime/site.scm.dos[1.13], runtime/site.scm.unix[1.14]: Implement new mechanism to allow the system to specify its debugging-info files as relative pathnames that are resolved at lookup time rather than at the time the .com files are loaded. 1993-11-18 Guillermo J. Rozas * microcode/regex.c[1.14]: The AIX C compiler does not sign-extend characters correctly. * edwin/editor.scm[1.234], edwin/undo.scm[1.57]: Split calls to add-gc-daemon! into calls to add-gc-daemon!/no-restore and add-event-receiver! event:after-restore ... * runtime/gcdemn.scm[14.7], runtime/runtime.pkg[14.216]: Define add-gc-daemon!/no-restore, required by the C back end. * microcode/uxio.c[1.33]: gcc complains about a type mismatch when declaring select on the RS6000. 1993-11-17 Stephen Adams * sf/lsets.scm[4.2], sf/table.scm[4.2]: Added $Id: line * 6001/pic-ops.scm[1.4], 6001/pic-reco.scm[1.6], win32/dibutils/dibutils.def[1.2], win32/ffimacro.scm[1.2]: Added copyright notice * win32/dibutils/makefile.msc[1.2]: Added copyright message 1993-11-17 Chris Hanson * edwin/notify.scm[1.13]: Eliminate race condition that often caused SIGSEGV when notifier was started up. 1993-11-17 Guillermo J. Rozas * compiler/machines/C/rules1.scm[1.7]: Fix unbound variable problem introduced in the last edit. * compiler/machines/C/rules1.scm[1.6]: Patch BYTE-OFFSET-ADDRESS rules to avoid warnings and errors from an implicit cast. * compiler/machines/C/ctop.scm[1.10]: Fix switches on AIX and Alpha. 1993-11-16 Stephen Adams * edwin/edwin.pkg[1.141.1.1]: Update to match Unix version 1.141 1993-11-16 Guillermo J. Rozas * compiler/machines/C/ctop.scm[1.9]: Files must be linked with cc on AIX. * compiler/machines/C/cout.scm[1.19]: Fix bug when displaying #\' * compiler/machines/C/cout.scm[1.18]: Finish renaming C-quotify. * microcode/version.h[11.146]: Changes to cmpint.c, psbtobin.c, and bintopsb.c to allow moving C-back-end bands to machines with a different word size. Bump version number. * microcode/bintopsb.c[9.63], microcode/psbtobin.c[9.55]: Teach psbtobin and bintopsb how to relocate the compiled code utilities vector correctly. * microcode/cmpint.c[1.80]: Change compiler_initialize and compiler_reset to produce (and restore) an ordinary compiled code block that includes a manifest vector header. It costs an extra word, but makes it possible for psbtobin and bintopsb to relocate the compiled code utilities correctly for the C back end. * microcode/cmpintmd/c.h[1.6]: Add cast to remove spurious warnings. * microcode/cmpintmd/c.h[1.5]: Fix MANIFEST_CLOSURE_COUNT and FIRST_MANIFEST_CLOSURE_ENTRY. The default versions only work when sizeof (unsigned long) = 2 * sizeof (format_word) * compiler/machines/C/cout.scm[1.17]: Fix character quoting -- we can't really use ANSI escapes (e.g. \a). 1993-11-15 Chris Hanson * edwin/make.scm[3.81]: Update version number. 1993-11-15 Guillermo J. Rozas * compiler/machines/C/cout.scm[1.16]: Fix conflict when timestamps have been disabled. 1993-11-13 Chris Hanson * compiler/etc/comfiles.scm[1.5]: Fix typo in previous change. 1993-11-13 Guillermo J. Rozas * compiler/base/asstop.scm[1.8], compiler/base/make.scm[4.101], compiler/machines/C/ctop.scm[1.8]: Load option compress when the compiler is loaded. * compiler/machines/C/cout.scm[1.15]: Add mechanism to disable timestamps to allow comparison of output. * compiler/machines/C/ctop.scm[1.7]: Fix bug when switch list is empty. Disable checking of return status of system. Apparently it does not quite work in SunOS. * compiler/machines/C/ctop.scm[1.6]: Use with-working-directory-pathname to make some C compilers happy. * compiler/machines/C/lapgen.scm[1.10]: Fix variable names: the number was previously duplicated. * compiler/machines/C/rules3.scm[1.8]: Fix variable name conflict when using dynamic links. * compiler/machines/C/ctop.scm[1.5]: Check cc and ld return codes, and delete .o file after producing the shared object. * runtime/site.scm.unix[1.13]: The primitive SET-WORKING-DIRECTORY-PATHNAME! does not like pathname objects. * compiler/machines/C/ctop.scm[1.4]: Make C back end invoke the C compiler and linker on the output by default. * microcode/liarc.h[1.12]: Fix typo. * compiler/machines/C/compiler.pkg[1.6]: Export C-back-end-specific switches. * microcode/liarc.h[1.11], microcode/unxutl/Attic/ymkfile[1.86]: Change default: liarc.h defines COMPILE_FOR_DYNAMIC_LOADING unless COMPILE_FOR_STATIC_LINKING is defined alredy, which is now defined by the makefile. * runtime/site.scm.unix[1.12]: Split system out of call/cc. * compiler/machines/C/make.scm[1.2], edwin/make.scm[3.80]: Use declare-shared-library to make -compiler and -edwin work in the C back end. * runtime/option.scm[14.26], runtime/runtime.pkg[14.213]: Add declare-shared-library for the C back end. * runtime/site.scm.unix[1.11]: Changes to call/cc: - Add customization switches - Disable timer interrupts around the call to system, to prevent interrupt lossage. - Change the microcode directory to make the command line win. 1993-11-13 Nick Papadakis * microcode/s/Attic/irix4.h[1.4]: Extend the -Olimit on the IRIX compiler. 1993-11-12 Chris Hanson * microcode/m/Attic/mips.h[1.9], microcode/s/Attic/ultrix.h[1.15]: Changes to prevent use of -std on Ultrix. 1993-11-12 Jim Miller * compiler/machines/alpha/compiler.pkg[1.10]: Forgot to add rtl:bump-closure to the export list * compiler/machines/alpha/make.scm[1.3]: Alpha now handles "compressed" top-level block as on the Spectrum and i386 * compiler/machines/alpha/rules3.scm[1.6]: Added code to handle compressed top-level files (generate/remote-links) * compiler/machines/alpha/instr1.scm[1.3]: Bad syntax for UWORD * compiler/machines/alpha/coerce.scm[1.2]: Added coerce-32-bit-unsigned to support UWORD (instr1) * compiler/machines/alpha/rulflo.scm[1.2]: Added support for floating-point vectors * compiler/machines/alpha/instr1.scm[1.2]: Added UWORD in preparation for future use in generate/remote-links (rules3) * compiler/machines/alpha/rules1.scm[1.2], compiler/machines/alpha/rules3.scm[1.5]: Changed format of OFFSET-ADDRESS, BYTE-OFFSET-ADDRESS, and FLOAT-OFFSET-ADDRESS to allow indexing by either a REGISTER or a MACHINE-CONSTANT, whereas it previously assumed MACHINE-CONSTANT only. * compiler/machines/alpha/make.scm[1.2]: Prepare for next version, where we'll use compiler:compress-top-level * compiler/machines/alpha/machin.scm[1.7]: Changed format of OFFSET-ADDRESS, BYTE-OFFSET-ADDRESS, and FLOAT-OFFSET-ADDRESS to allow indexing by either a REGISTER or a MACHINE-CONSTANT, whereas it previously assumed MACHINE-CONSTANT only. Also, updated list of floating point primitives not in-lined. 1993-11-11 Chris Hanson * microcode/psbtobin.c[9.54]: Fix typo. * runtime/load.scm[14.46]: GJR's changes for dynamic loader. Also repaginate and rearrange order. * microcode/Attic/posixtyp.h[1.9], microcode/bchutl.c[1.4], microcode/cmpint.c[1.79], microcode/psbmap.h[9.41]: Changes for NeXT. * microcode/unxutl/Attic/ymkfile[1.85]: Change for Sun3 and NeXT. * microcode/cmpauxmd/sun3-nfp.s[1.3], microcode/cmpauxmd/sun3.s[1.3]: Fix think-o in previous update. 1993-11-11 Guillermo J. Rozas * microcode/cmpintmd/hppa.h[1.47]: Change flush_i_cache_initialize to always check for environment variables. This allows overriding the name reported by uname under HP-UX! Change the environment variable from HPPAmodel to MITSCHEME_HPPA_MODEL. * microcode/hppacach.mc[1.2]: Add 755 cache parameters. 1993-11-10 Stephen Adams * win32/wt_user.scm[1.2]: Fixed integration of make-primitive ro ucode-primitive * win32/graphics.scm[1.2]: Fixed image drawing operations to be at transformed coords, not native coords. Sizes and image coords are still native because we dont want to have to scale the image (bitmap) * win32/module.scm[1.2]: Fixed $Header, fixed module loading to be even more lazy * win32/wf_user.scm[1.2]: Added more windows functions * win32/dib.scm[1.2], win32/make.scm[1.2], win32/protect.scm[1.2], win32/win32.pkg[1.2], win32/win32.sf[1.2], win32/win_ffi.scm[1.2]: Fixed $Header * win32/win32.cbf[1.2]: Compile now with error checking * 6001/picture.scm[1.21]: Fixed bug in positioning of picture within a window that is not of an exact fitting size. 1993-11-10 Guillermo J. Rozas * compiler/documentation/porting.guide[1.26]: Fix bug in the instructions to generate a cross-compiler band. * microcode/pruxdld.c[1.8]: Add dynamic loading for the RS6000 * compiler/machines/mips/machin.scm[1.14]: Fix bug in interpreter-environment-register? 1993-11-10 Jim Miller * compiler/rtlgen/opncod.scm[4.62]: Rearrange load evaluation order to fix bug in alpha. 1993-11-09 Stephen Adams * 6001/picture.scm[1.20]: Mergesd Win32 and X11 versions. * 6001/6001.pkg[1.8]: Make file names 8.3 * 6001/6001.sf[1.8]: Made file names 8.3 * 6001/pic-imag.scm[1.5]: *** empty log message *** * 6001/pic-reco.scm[1.5], 6001/picture.scm[1.19]: Fixed to correspond to new Image abstraction 1993-11-09 Chris Hanson * runtime/dosprm.scm[1.21], runtime/infutl.scm[1.48], runtime/sfile.scm[14.10], runtime/unxprm.scm[1.26], runtime/version.scm[14.166]: These changes require microcode version 11.145 or later. Reimplement handling of temporary files to update list in fixed objects vector; this list tells the microcode that the files should be deleted when Scheme is killed. Additionally, change the handling of ".bci" file expansion to use the new temporary file mechanism. The expander now accepts a third value for *SAVE-UNCOMPRESSED-FILES?* which says to expand the file into a temporary file that is deleted (by the GC) after it has not been used in a while, or when Scheme is killed. This new option is now the default, and the timeout for these temporary files defaults to five minutes. 1993-11-09 Guillermo J. Rozas * microcode/uxtop.c[1.12]: Fix problem in AIX: ENOTEMPTY = EEXIST. * microcode/bchmmg.c[9.83]: Fix declaration of select for sparcs. * microcode/bintopsb.c[9.62]: Fix initialization problem when loading with the C code table. * microcode/unxutl/Attic/cf-dist.h[1.19], microcode/unxutl/Attic/config[1.28]: Add -no-back-end option. * microcode/dosutl/Attic/bch-prm.lst[1.6], microcode/dosutl/Attic/bch-ztc.lst[1.7], microcode/dosutl/Attic/scm-prm.lst[1.6], microcode/dosutl/Attic/scm-ztc.lst[1.7], microcode/ntutl/bch-cl3.lst[1.6], microcode/ntutl/bch-p-nt.lst[1.5], microcode/ntutl/scm-cl3.lst[1.6], microcode/ntutl/scm-p-nt.lst[1.5]: Add avltree. * microcode/bchdmp.c[9.75], microcode/bchgcc.h[9.56], microcode/bintopsb.c[9.61], microcode/cmpgc.h[1.25], microcode/fasdump.c[9.59], microcode/fasload.c[9.78], microcode/gcloop.c[9.44], microcode/load.c[9.36], microcode/psbtobin.c[9.53], microcode/purify.c[9.53]: Make the C-back end work without HEAP_IN_LOW_MEMORY. * microcode/liarc.h[1.10]: define CLOSURE_ENTRY_DELTA, used to make the same .c source work with HEAP_IN_LOW_MEMORY and without it. * compiler/machines/C/cout.scm[1.14], compiler/machines/C/cout.scm[1.13]: Fix ordering and pagination. * compiler/machines/C/cout.scm[1.12], compiler/machines/C/cout.scm[1.11]: Fix data labels when timestamped. * sf/butils.scm[4.8]: Conditionalize output file extension for compiler (C back end produces .c files). * compiler/base/asstop.scm[1.7], compiler/base/toplev.scm[4.48], compiler/machines/C/ctop.scm[1.3]: Conditionalize output file extension. * compiler/machines/C/cout.scm[1.10]: Make non-top-level blocks have a time-stamp. * compiler/machines/C/machin.scm[1.7]: Fix closure-entry-distance when not HEAP_IN_LOW_MEMORY. 1993-11-08 Chris Hanson * microcode/term.c[1.10], microcode/version.h[11.145]: Implement mechanism to delete temporary files when Scheme exits. Reimplement Edwin auto-save mechanism to use new error-catching. * microcode/interp.c[9.81], microcode/interp.h[9.39]: Implement new mechanism to catch `abort_to_interpreter' throws from primitives. * microcode/boot.c[9.87], microcode/fixobj.h[9.36], microcode/utabmd.scm[9.72]: Add new slot to fixed objects vector, which contains a list of files to be deleted when the microcode exits. 1993-11-08 Guillermo J. Rozas * compiler/machines/C/machin.scm[1.6]: Fix bug in guaranteed-long/upper-limit and lower-limit. * microcode/ux.h[1.55]: Add SYTEM_VARIANT for AIX. * microcode/liarc.h[1.9]: Add dstack.h to included files. Needed by new interpreter abort mechanism. * microcode/fasload.c[9.77]: Use extra fasl field for systems without HEAP_IN_LOW_MEMORY to correctly relocate raw pointers. * microcode/dump.c[9.39], microcode/fasl.h[9.35], microcode/load.c[9.35]: Add extra fasl field for systems without HEAP_IN_LOW_MEMORY. * microcode/Attic/config.h[9.83], microcode/Attic/oscond.h[1.15], microcode/unxutl/Attic/config[1.27], microcode/ux.h[1.54], microcode/uxterm.c[1.23], microcode/uxtrap.h[1.23], microcode/wsize.c[9.33]: Add RS6000 support. * microcode/m/Attic/rs6000.h[1.2]: Replace $Header$ with $Id$ 1993-11-07 Guillermo J. Rozas * microcode/psbtobin.c[9.52]: Allow NMVs in bands: interpreted stack frames contain them. * microcode/bintopsb.c[9.60]: Eliminate some warnings from the HP C compiler on hp9k300s. * microcode/bintopsb.c[9.59]: Shadow some macros when not using the C back end. This avoids potential missing externs. * microcode/bintopsb.c[9.58], microcode/psbmap.h[9.40], microcode/psbtobin.c[9.51]: Teach bintopsb and bintopsb to deal with - constant and pure space - C back-end output - bands 1993-11-06 Chris Hanson * runtime/sfile.scm[14.9]: Add new procedure DELETE-FILE-NO-ERRORS. * microcode/pruxenv.c[1.15]: Implement CURRENT-PID primitive for unix. 1993-11-05 Guillermo J. Rozas * microcode/fasload.c[9.76]: Fix innocuous logical off-by-one error. * microcode/cmpauxmd/c.c[1.11]: Two significant changes: - Add consistency checking and table-restructuring at disk-restore to allow use of bands built by a differently-organized microcode. The consistency check only checks that each compiled code block has the same number of entries (and name). - Use the AVL tree code used in the primitive tables to speed lookup. * microcode/dosutl/Attic/makefile[1.10], microcode/ntutl/makefile[1.14], microcode/primutl.c[9.69], microcode/unxutl/Attic/ymkfile[1.84]: Separate AVL tree code from primutl.c and make it into a separate utilities file (avltree.[ch]) for use by other parts, in particular the C back end code block management. 1993-11-04 Chris Hanson * runtime/usrint.scm[1.10]: Rewrite manipulation of terminal modes because on BSD the input and output modes interact with one another. * runtime/graphics.scm[1.9]: Fix bug in previous change. 1993-11-04 Guillermo J. Rozas * microcode/cmpint.c[1.78]: Initialize Regs[REGBLOCK_PRIMITIVE] so that the C back end can abort correctly out of disk-restore. * microcode/fasload.c[9.75]: Call install_c_code_table only when restoring a band. * microcode/cmpint.c[1.77], microcode/dump.c[9.38], microcode/load.c[9.34]: Fix braino. * microcode/bchdmp.c[9.74], microcode/cmpint.c[1.76], microcode/dump.c[9.37], microcode/fasdump.c[9.58], microcode/fasl.h[9.34], microcode/fasload.c[9.74], microcode/load.c[9.33]: Add hooks for the C back end to dump a description of the C code blocks that a band depends on, and to verify compatibility after a disk-restore. * microcode/pruxdld.c[1.7]: Fix a cast. * microcode/bkpt.h[9.31]: Update copyright date. 1993-11-03 Stephen Adams * runtime/wttree.scm[1.2]: fixed delete-min! * runtime/runtime.pkg[14.212]: fixed wt-tree/delete-min! 1993-11-03 Chris Hanson * microcode/cmpauxmd/sun3-gcc.s[1.2], microcode/cmpauxmd/sun3-nfp.s[1.2], microcode/cmpauxmd/sun3.s[1.2]: Update to match current "mc68k.m4". * microcode/unxutl/Attic/config[1.26]: Update entry for `next'. 1993-11-03 Guillermo J. Rozas * microcode/unxutl/Attic/config[1.25]: Add syntax error. * microcode/unxutl/Attic/config[1.24]: Add call to usage in default in discriminate. 1993-11-03 Jim Miller * microcode/storage.c[9.55]: Fixes to allow ENABLE_DEBUGGING_FLAGS to work * microcode/interp.c[9.80]: Turned off Eval_Debug code permanently, since Print_Expressions isn't really available here. * microcode/bkpt.c[9.29], microcode/bkpt.h[9.30], microcode/debug.c[9.46]: Reversed the conditionalization so that we can support ENABLE_DEUBGGING_FLAGS again. 1993-11-02 Stephen Adams * runtime/option.scm[14.25]: Added wt-tree option * runtime/runtime.pkg[14.211]: added weight-balanced trees package 1993-11-02 Chris Hanson * 6001/edextra.scm[1.19]: Implement code to query user about overwriting files in M-x load-problem-set. * runtime/rep.scm[14.44]: ERROR-DECISION can't be done inside the REPL message, because that message is protected by IGNORE-ERRORS. If another error occurs during the decision, it must start a nested REPL. * edwin/intmod.scm[1.77]: Guarantee that ERROR-DECISION aborts the REPL in all cases. * 6001/floppy.scm[1.15]: Call SAVE-SOME-BUFFERS as part of CHECKPOINT-FLOPPY. 1993-11-02 Jim Miller * microcode/pruxdld.c[1.6]: Changed "unsigned long" to "long" to avoid spurious range errors signalled by arg_integer. 1993-11-01 Chris Hanson * runtime/x11graph.scm[1.37]: Patch to allow a "Configure" event to mark the window as "mapped". Yukk. Whether or not the "mapped" event shows up depends on the geometry string! * runtime/x11graph.scm[1.36]: New code to generate display object in X-GRAPHICS/OPEN. 1993-11-01 Guillermo J. Rozas * microcode/cmpint.c[1.75]: Add builtin_index_to_name, missing when there is no compiler support. * microcode/pruxdld.c[1.5]: Fix cast and typo. * microcode/pruxdld.c[1.4]: Make INVOKE-C-THUNK return a value. Add ADDRESS-TO-STRING. * compiler/machines/C/cout.scm[1.9], microcode/liarc.h[1.8]: dynamic initialization need not know the block name. * microcode/cmpauxmd/c.c[1.10]: Fix a problem when disk-restoring. The blocks data structure was not being reinitialized correctly. Add a performance counter. 1993-10-31 Guillermo J. Rozas * microcode/unxutl/Attic/ymkfile[1.83]: Add dependencies for cmpauxmd.o * compiler/machines/C/cout.scm[1.8]: Add newlines after every argument to RCONSM to make lines shorter. * microcode/fasload.c[9.73]: Fix problem with disk-restore complaining about lack of space when restoring the same band it is running! * compiler/machines/C/rules3.scm[1.7]: Remove some spurious macros. * compiler/machines/C/cout.scm[1.7]: - Canonicalize procedure names as well as labels, including the directory component. - Add a limit to the level of nesting of procedure calls used to generate constants. 1993-10-30 Guillermo J. Rozas * microcode/cmpauxmd/c.c[1.9]: Fix braino: Multiplying compiled_entries_size by a constant (or initializing to a constant) does not guarantee that the table is large enough for the current batch of entries. * microcode/cmpauxmd/c.c[1.8]: Fix off-by-one error. * compiler/machines/C/lapgen.scm[1.9]: Replace use of Rfp with Rhp. * compiler/machines/C/TODO[1.4], compiler/machines/C/cout.scm[1.6], compiler/machines/C/ctop.scm[1.2], compiler/machines/C/lapgen.scm[1.8], compiler/machines/C/rules1.scm[1.5], compiler/machines/C/rules3.scm[1.6]: Redo some things: - User Marc Feeley's hack for making the default case in the switch statements handle all cross-block jumps. - Divide the data and code sections so the data sections can be eliminated from the link avoiding the need to recompile the code sections. * microcode/cmpint.c[1.74], microcode/compinit.c[1.3], microcode/comutl.c[1.29], microcode/liarc.h[1.7], microcode/unxutl/Attic/ymkfile[1.82]: Two major changes to the C back end: - Redo the way that descriptors are done to improve speed. The default clause in each switch statement is now the only way to get out of a block. All JUMPs merely jump back to the dispatch point. - Divide initialization code into code and data, to allow splitting of the sources into two components. * microcode/cmpauxmd/c.c[1.7], microcode/cmpintmd/c.h[1.4]: Two major changes: - Redo the way that descriptors are done to improve speed. The default clause in each switch statement is now the only way to get out of a block. All JUMPs merely jump back to the dispatch point. - Divide initialization code into code and data, to allow splitting of the sources into two components. 1993-10-28 Chris Hanson * edwin/evlcom.scm[1.49]: Patch TRANSCRIPT-WRITE to work even if the transcript buffer is read-only. 1993-10-28 Guillermo J. Rozas * compiler/machines/C/rules1.scm[1.4]: Remove remaining reference to ulong. * compiler/machines/C/rules3.scm[1.5]: Add missing special invocations. * compiler/machines/C/lapgen.scm[1.7], compiler/machines/spectrum/lapgen.scm[4.45]: Update the code table. * compiler/machines/C/rulrew.scm[1.3]: Add a floating-vector rewrite rule. * compiler/machines/C/rulflo.scm[1.4]: Fix floating-vector rules. * compiler/machines/C/lapgen.scm[1.6], microcode/liarc.h[1.6]: Redo "word" registers. Rather than having specific C variables, and casting up the wazoo, there is now a union type for pointers and word values, and components are selected as needed. * compiler/machines/C/rulfix.scm[1.2]: Reformat some code to fit in 80 columns. * compiler/machines/C/rules3.scm[1.4]: Remove fossil. * compiler/machines/C/rules1.scm[1.3]: Fix mangled character constant. Replace incorrect use of LONG with ULONG. * compiler/machines/C/machin.scm[1.5], compiler/machines/C/rgspcm.scm[1.2]: Enable open-coding of certain primitives. * microcode/pruxdld.c[1.3]: Add dropped *. 1993-10-27 Chris Hanson * edwin/editor.scm[1.233], edwin/intmod.scm[1.76], edwin/notify.scm[1.12]: Implement mechanism to deregister inferior threads, and call it from the appropriate places. If this isn't done it's too easy to hold on to a pointer to the thread, which prevents the thread from being reclaimed by the GC. * edwin/intmod.scm[1.75]: Fix bug: inferior REPL thread was never being killed. * edwin/evlcom.scm[1.48]: Change PROMPT-FOR-EXPRESSION so that variable-name completion in the typein buffer uses the environment of the buffer that was current when PROMPT-FOR-EXPRESSION was called. * edwin/prompt.scm[1.161]: Generalize PROMPT-FOR-STRING to allow an initialization procedure to be used in place of the mode. * edwin/bufwiu.scm[1.26]: Fix bug: when buffer visible in two or more windows, buffer change that affected the modeline didn't update the modeline unless the change was visible in the window. 1993-10-27 Guillermo J. Rozas * microcode/bignmint.h[1.4], microcode/prim.c[9.37]: Remove uses of UL. Non-ANSI compilers (e.g. SunOS) can't handle it. * microcode/dstack.h[1.8]: Remove SunOS conflicts when using Sun's cc. * microcode/cmpauxmd/c.c[1.6]: Fix broken declarations. * microcode/cmpauxmd/c.c[1.5]: Fix signed problems on Alpha. * microcode/ux.c[1.12], microcode/ux.h[1.53], microcode/uxio.c[1.32], microcode/uxsock.c[1.13]: Conditionalize for SunOS 4.1.? * microcode/primutl.c[9.68]: Include os.h so that things like size_t are defined. * microcode/obstack.h[1.9]: SunOS 4.1.? declares abort to return int. * microcode/dstack.h[1.7]: SunOS 4.1.? declares abort to return void. * microcode/pruxdld.c[1.2]: Make it work under SunOS (and perhaps Alpha OSF). * compiler/machines/C/rules3.scm[1.3]: Use CONST instead of const, since the C compiler may not be ANSI compliant. * microcode/unxutl/Attic/ymkfile[1.81]: Fix capitalization bug. * microcode/Attic/config.h[9.82]: Disable Alpha shadowing of malloc when using the C back end. * microcode/liarc.h[1.5]: Remove unnecessary definition. * microcode/unxutl/Attic/ymkfile[1.80]: Fix bug in sed pattern. 1993-10-26 Chris Hanson * edwin/dired.scm[1.140]: Fix typo in last change. * runtime/graphics.scm[1.8]: Fix stupid think-o. * edwin/dired.scm[1.139], edwin/dos.scm[1.12], edwin/unix.scm[1.39]: Implement M-x dired-clean-directory. * runtime/numpar.scm[14.8], runtime/runtime.pkg[14.210]: Implement SUBSTRING->NUMBER. * edwin/debug.scm[1.26]: Eliminate unused variable. * edwin/tagutl.scm[1.52]: Don't automatically delete a tags-search buffer unless that buffer truly hasn't been modified. Previously, this was detected by checking the MODIFIED? flag of the buffer, but that is cleared if the file is written out. Now, it checks to see if any modifications have occurred since the file was read in. * edwin/dired.scm[1.138]: Disallow renaming or copying a file to an existing file. * edwin/debug.scm[1.25], edwin/edwin.pkg[1.141]: * Killing debugger buffer no longer deletes the buffer's screen; that happens only when M-x browser-quit is invoked, and the screen was created for the debugger. * Selection of a screen for a debugger buffer is now simpler. If desired, a new screen is created (previously this was not an option if there was already more than one screen). Otherwise, the current screen is used. No other existing screen will ever be used. * The X-windows-specific screen geometry stuff has been conditionalized so that it will not be used unless running under X. * edwin/intmod.scm[1.74]: Change debugger invocation to call the command M-x browse-continuation. * edwin/comred.scm[1.109]: Can't extract restart from condition, it's often not the right restart. * edwin/debug.scm[1.24]: Fix crufty problem with highlighting -- indentation was highlighted instead of text! * edwin/artdebug.scm[1.24], edwin/comred.scm[1.108], edwin/debug.scm[1.23], edwin/editor.scm[1.232], edwin/evlcom.scm[1.47]: Change RETURN-TO-COMMAND-LOOP to accept a condition as its sole argument. The restart that it invokes is extracted from the condition, not from the current restarts, and if it is an ABORT-CURRENT-COMMAND condition, its input is processed. * edwin/debug.scm[1.22]: Earlier change I made was lost by careless edit -- put it back in. 1993-10-26 Guillermo J. Rozas * microcode/unxutl/Attic/config[1.23]: Add -f flag to call to remove. * microcode/unxutl/Attic/config[1.22]: Automate the edit of cf.h for the C back end. * microcode/unxutl/Attic/cf-dist.h[1.18]: Fix bug introduced in the last edit, and automate the C back end edit. * compiler/machines/C/rulflo.scm[1.3]: Upcase types for consistency. * compiler/machines/C/compiler.pkg[1.5], compiler/rtlgen/opncod.scm[4.61]: Change needed to resurrect the C back end. * compiler/machines/C/rules3.scm[1.2]: Fix casting problem in move-frame-up. * microcode/liarc.h[1.4]: Add ifdefs for COMPILE_FOR_DYNAMIC_LOADING * microcode/unxutl/Attic/cf-dist.h[1.17]: Add comment to show how to override the back end. * microcode/unxutl/Attic/config[1.21]: Add options -C-back-end and -native-back-end. * compiler/machines/C/machin.scm[1.4]: Fix interpreter-environment-register? which had not been updated to use the new rtl format. * microcode/cmpint.c[1.73], microcode/comutl.c[1.28]: Rename declare_compiled_code to declare_compiled_code_block. The name declare_compiled_code was already in use by the C back end. 1993-10-26 Jason Wilson * microcode/Attic/dosconio.c[1.12], microcode/boot.c[9.86], microcode/cmpauxmd/c.c[1.4], microcode/intercom.c[9.30], microcode/liarc.h[1.3], microcode/ntsig.c[1.15], microcode/primutl.c[9.67]: These changes were to bring the C backend back to life. * compiler/machines/C/cout.scm[1.5], compiler/machines/C/lapgen.scm[1.5], compiler/machines/C/rules1.scm[1.2], compiler/machines/C/rulflo.scm[1.2]: These changes were to bring the C backend back to life. The major changes that were made was adding direct calls for floating point operations as well as using the new rules for floating point vectors (change in RTL syntax). 1993-10-25 Chris Hanson * edwin/editor.scm[1.231]: Bind notification-output-port to a null port that does not signal errors. * runtime/graphics.scm[1.7]: Reformatting to fit on page. * 6001/edextra.scm[1.18]: Suppress loading messages -- these formerly were harmless because the CMDL port soaked them up, now they signal errors. 1993-10-21 Chris Hanson * runtime/unpars.scm[14.33]: Fix typos. * runtime/defstr.scm[14.25], runtime/emacs.scm[14.19], runtime/error.scm[14.38], runtime/fileio.scm[1.7], runtime/genio.scm[1.3], runtime/packag.scm[14.18], runtime/pathnm.scm[14.27], runtime/poplat.scm[14.3], runtime/port.scm[1.7], runtime/prop1d.scm[14.5], runtime/strnin.scm[14.4], runtime/strott.scm[14.4], runtime/strout.scm[14.8], runtime/ttyio.scm[1.4], runtime/urtrap.scm[14.3], runtime/x11graph.scm[1.35]: * New port operation WRITE-SELF is like PRINT-SELF except that it uses STANDARD-UNPARSER-METHOD rather than UNPARSER/STANDARD-METHOD. * Rewrite instances of PRINT-SELF using WRITE-SELF. Rewrite instances of UNPARSER/STANDARD-METHOD using STANDARD-UNPARSER-METHOD. * runtime/boot.scm[14.10], runtime/output.scm[14.16], runtime/runtime.pkg[14.209], runtime/unpars.scm[14.32]: * Implement new procedure STANDARD-UNPARSER-METHOD. This has a less-idiosyncratic interface than UNPARSER/STANDARD-METHOD. Uses of the latter should be replaced with the former. * Implement new procedure WITH-CURRENT-UNPARSER-STATE which calls its second argument with the port from its first. The other components of the state are fluid-bound so that they become the defaults for calls to WRITE and DISPLAY. * GUARANTEE-UNPARSER-STATE and GUARANTEE-UNPARSER-TABLE now take an addition argument, the name of the procedure testing its argument. * runtime/error.scm[14.37], runtime/port.scm[1.6], runtime/rep.scm[14.43], runtime/rep.scm[14.42], runtime/runtime.pkg[14.208]: Remove ERROR-OUTPUT-PORT. * runtime/advice.scm[14.13], runtime/error.scm[14.36], runtime/fileio.scm[1.6], runtime/gcnote.scm[14.10], runtime/global.scm[14.46], runtime/input.scm[14.16], runtime/load.scm[14.45], runtime/output.scm[14.15], runtime/packag.scm[14.17], runtime/port.scm[1.5], runtime/rep.scm[14.41], runtime/rep.scm[14.40], runtime/runtime.pkg[14.207], runtime/uerror.scm[14.35], runtime/usrint.scm[1.9], runtime/version.scm[14.165]: * Define new standard ports to replace nearly all instances of NEAREST-CMDL/PORT. When a CMDL starts, it binds all of these ports to the CMDL port; but they can each be rebound separately without affecting the CMDL port. (ERROR-OUTPUT-PORT) errors and warnings (NOTIFICATION-OUTPUT-PORT) load messages, etc. (TRACE-OUTPUT-PORT) output from TRACE (INTERACTION-I/O-PORT) prompting * Implement IGNORE-ERRORS procedure. Change WRITE-CONDITION-REPORT so that it ignores errors that occur while writing the report, but only if the condition being reported is an error condition. * Implement GUARANTEE-I/O-PORT. * edwin/evlcom.scm[1.46]: Change the evaluation commands to bind the default input port to a dummy port that signals an error if it is read from. * edwin/editor.scm[1.230]: Instantiate the editor CMDL with a dummy I/O port that signals an error if it is read from or written to. Define the CHILD-PORT operation on that CMDL so that spawning a another CMDL under the editor CMDL (e.g. by DEBUG-INTERNAL-ERRORS? being true) will cause the child to use the port that was in effect when the editor was started. * edwin/intmod.scm[1.73]: Since REPL/START now binds the current input and output ports, there's no reason for them to be bound a second time here. * runtime/rep.scm[14.39], runtime/runtime.pkg[14.206]: Change MAKE-CMDL to allow the I/O port to be specified as #F, which means to inherit from the parent. Change PUSH-CMDL to use this specification. The parent can override this by defining a CHILD-PORT operation. Also change CMDL/START to bind the current input and output ports. 1993-10-20 Chris Hanson * runtime/hashtb.scm[1.16], runtime/hashtb.scm[1.15]: Grumble; fix stupid thinko from last change. * runtime/rep.scm[14.38]: Allow parent CMDL to override the port used for spawning children. 1993-10-20 Guillermo J. Rozas * microcode/cmpauxmd/mc68k.m4[1.25]: Replace Constant_Top with Stack_Bottom in out-of-line code for set-interrupt-enables. 1993-10-19 Chris Hanson * runtime/hashtb.scm[1.14], runtime/hashtb.scm[1.13], runtime/runtime.pkg[14.205]: Generalize interface to hash tables so that users can construct efficient address-based hashing procedures. 1993-10-18 Chris Hanson * edwin/comman.scm[1.77]: Don't invoke variable assignment daemons if the editor is not running. * edwin/intmod.scm[1.72], runtime/emacs.scm[14.18]: Don't do STRING-TRIM on PROMPT-FOR-COMMAND- strings. 1993-10-17 Chris Hanson * microcode/cmpauxmd/mips.m4[1.11]: Change Constant_Top to Stack_Bottom in set_interrupt_enables. This was necessitated by recent changes to the microcode. 1993-10-16 Chris Hanson * edwin/image.scm[1.131]: Fix fencepost bug. * edwin/intmod.scm[1.71]: Fix typo in last change. * edwin/unix.scm[1.38]: Generate minibuffer message while automatically decompressing files. * edwin/intmod.scm[1.70], runtime/dbgcmd.scm[14.14], runtime/emacs.scm[14.17], runtime/rep.scm[14.37], runtime/usrint.scm[1.8]: Change PROMPT-FOR-COMMAND-xxx port operations to take an additional argument, which is a level number; (NEAREST-CMDL/LEVEL) is passed for this argument. * edwin/artdebug.scm[1.23], edwin/debug.scm[1.21]: Fix old typo. * edwin/intmod.scm[1.69], edwin/prompt.scm[1.160]: Prompting commands now do standard modifications to prompt strings BEFORE passing them to custom operations; operations must compensate. * runtime/emacs.scm[14.16], runtime/usrint.scm[1.7]: Change prompting commands to do standard modifications to prompt strings BEFORE passing them to custom operations. * runtime/usrint.scm[1.6]: Restrict result of PROMPT-FOR-COMMAND-CHAR to be a graphic character. * edwin/intmod.scm[1.68]: Perform prompting differently: always use the current CMDL level as the level in the modeline, and recognize DEBUG and WHERE prompts as needing suppression. * runtime/emacs.scm[14.15]: Perform prompting differently: always send the current CMDL level as part of the prompt, and allow a new form of prompt that prints stuff in the Scheme buffer. * edwin/intmod.scm[1.67]: Fix typo. 1993-10-15 Chris Hanson * edwin/intmod.scm[1.66]: Clarify handling of run lights for inferior-REPL buffers. There is now a "global" REPL buffer that is responsible for driving the "global" run light. Run lights of individual REPL buffers are handled separately. * edwin/edwin.pkg[1.140], edwin/evlcom.scm[1.45], edwin/intmod.scm[1.65]: When evaluate-in-inferior-repl is true, distinguish between evaluations done in inferior REPL buffers and evaluations done in other buffers (and the minibuffer); change the latter so that the value of the evaluation is printed in the minibuffer, just as it would have been if evaluate-in-inferior-repl were false. Furthermore, if there is no inferior REPL, M-x eval-expression now works anyway. * runtime/advice.scm[14.12], runtime/emacs.scm[14.14], runtime/error.scm[14.35], runtime/load.scm[14.44], runtime/rep.scm[14.36], runtime/runtime.pkg[14.204], runtime/usrint.scm[1.5]: * Breakpoints have been reimplemented to use the condition system. A breakpoint is now a condition, and the continuation of that condition is the continuation of the breakpoint. (The debugger will not show the internal frames of the breakpoint any more.) * The procedure BREAKPOINT now takes a condition as an additional optional argument. * The environment of a breakpoint may be specified as the symbol CONTINUATION-ENVIRONMENT, in which case the breakpoint signaller will attempt to extract an environment from the continuation. If that fails, it uses the REPL environment, and prints a message informing the user that it was unable to find an appropriate environment for the breakpoint. * CMDL/START has been modified to detect the situation where the thread starting the CMDL is not the owner of its port. Previously this check was done only for errors. As a result of this change, CONDITION-TYPE:DERIVED-THREAD-ERROR has been generalized to accept any kind of condition, not just error conditions. * The WRITE-RESULT output-port operation has been redefined to accept an additional argument: the expression that was evaluated to produce the value being printed. This expression is useful if the CURRENT-EXPRESSION-CONTEXT operation is implemented; it is the key needed to get the context information. As a result of this change, HOOK/REPL-WRITE was redefined to accept the same additional argument. * A new procedure CURRENT-LOAD-PATHNAME has been defined. When a file is being loaded, this procedure returns that file's pathname. At other times, it signals an error of type CONDITION-TYPE:NOT-LOADING. LOAD/PUSH-HOOK! has been changed to signal this error in the same situation, rather than the anonymous error it signalled before. * runtime/debug.scm[14.36]: Handle eval-boundary frame when it is the first subproblem in the continuation being debugged. * edwin/evlcom.scm[1.44], edwin/filcom.scm[1.178]: Change special treatment of evaluate-in-inferior-repl and run-light editor variables. These variables are now given buffer-local values to disable the use of an inferior repl when either scheme-environment or scheme-syntax-table is given a local binding that overrides the default. Also, these automatic bindings are only performed if the variables do not already have buffer-local bindings. * edwin/comman.scm[1.76]: * Editor variables can now define a procedure that will "normalize" their values. The DEFINE-VARIABLE has been extended to allow the specification of this normalization procedure to follow the specification of a validity test. * New procedure VARIABLE-LOCAL-VALUE? is true iff the given variable is locally bound in the given buffer. * Procedure VARIABLE-VALUE-VALID? has been eliminated. 1993-10-15 Guillermo J. Rozas * edwin/edwin.pkg[1.140.1.1]: Update to match Unix version 1.140. * microcode/default.h[9.42]: Fix broken #endif. 1993-10-14 Chris Hanson * edwin/buffer.scm[1.164], edwin/comman.scm[1.75], edwin/hlpcom.scm[1.107], edwin/macros.scm[1.61]: * Editor variables can now define a procedure that will "normalize" their values. The DEFINE-VARIABLE has been extended to allow the specification of this normalization procedure to follow the specification of a validity test. * New procedure VARIABLE-LOCAL-VALUE? is true iff the given variable is locally bound in the given buffer. * Procedure VARIABLE-VALUE-VALID? has been eliminated. * edwin/sercom.scm[1.63]: Eliminate random local variable bindings at file's end. * runtime/random.scm[14.8], runtime/random.scm[14.7]: Allow MAKE-RANDOM-STATE to accept #T as an argument. 1993-10-14 Guillermo J. Rozas * microcode/Attic/dostrap.h[1.3], microcode/bchgcl.c[9.48], microcode/bchpur.c[9.63], microcode/bintopsb.c[9.57], microcode/default.h[9.41], microcode/ppband.c[9.47], microcode/storage.c[9.54], microcode/tterm.c[1.4]: Update date. * microcode/Attic/dostrap.c[1.5], microcode/bchdmp.c[9.73], microcode/bchgcc.h[9.55], microcode/bchgcl.c[9.47], microcode/bchmmg.c[9.82], microcode/bchpur.c[9.62], microcode/bintopsb.c[9.56], microcode/boot.c[9.85], microcode/default.h[9.40], microcode/extern.h[9.51], microcode/fasdump.c[9.57], microcode/fasload.c[9.72], microcode/gccode.h[9.52], microcode/gcloop.c[9.43], microcode/interp.c[9.79], microcode/intrpt.h[1.16], microcode/memmag.c[9.56], microcode/nttrap.c[1.9], microcode/object.h[9.43], microcode/ppband.c[9.46], microcode/psbtobin.c[9.50], microcode/purify.c[9.52], microcode/purutl.c[9.46], microcode/stack.h[9.36], microcode/storage.c[9.53], microcode/sysprim.c[9.39], microcode/uxtrap.c[1.24], microcode/version.h[11.144]: Change Scheme memory layout and make constant space grow as needed when things are purified. 1993-10-13 Chris Hanson * runtime/string.scm[14.9]: Fix definition of STRING-PAD-LEFT: it's supposed to truncate from the left, not the right. * compiler/machines/C/compiler.sf[1.2], compiler/machines/alpha/compiler.sf[1.2], compiler/machines/bobcat/compiler.sf[1.14], compiler/machines/i386/compiler.sf[1.4], compiler/machines/mips/compiler.sf-big[1.4], compiler/machines/mips/compiler.sf-little[1.4], compiler/machines/spectrum/compiler.sf[1.14], compiler/machines/vax/compiler.sf[1.5]: Eliminate another vestige of "base/hashtb". 1993-10-12 Chris Hanson * compiler/machines/C/decls.scm[1.3], compiler/machines/alpha/decls.scm[1.5], compiler/machines/bobcat/decls.scm[4.36], compiler/machines/i386/decls.scm[1.7], compiler/machines/mips/decls.scm[1.9], compiler/machines/sparc/decls.scm[1.3], compiler/machines/spectrum/decls.scm[4.34], compiler/machines/vax/decls.scm[4.12]: Fix think-o in last change. * runtime/hashtb.scm[1.12], runtime/runtime.pkg[14.203]: Change names: hash-table/strong-constructor => strong-hash-table/constructor hash-table/weak-constructor => weak-hash-table/constructor * compiler/back/symtab.scm[1.45], compiler/base/infnew.scm[4.10], compiler/base/make.scm[4.100], compiler/machines/C/compiler.cbf[1.2], compiler/machines/C/compiler.pkg[1.4], compiler/machines/C/decls.scm[1.2], compiler/machines/alpha/compiler.cbf[1.2], compiler/machines/alpha/compiler.pkg[1.9], compiler/machines/alpha/decls.scm[1.4], compiler/machines/bobcat/compiler.cbf[1.2], compiler/machines/bobcat/compiler.pkg[1.47], compiler/machines/bobcat/decls.scm[4.35], compiler/machines/i386/compiler.cbf[1.3], compiler/machines/i386/compiler.pkg[1.19], compiler/machines/i386/decls.scm[1.6], compiler/machines/mips/compiler.cbf[1.2], compiler/machines/mips/compiler.pkg[1.17], compiler/machines/mips/decls.scm[1.8], compiler/machines/sparc/decls.scm[1.2], compiler/machines/spectrum/compiler.cbf[1.2], compiler/machines/spectrum/compiler.pkg[1.45], compiler/machines/spectrum/decls.scm[4.33], compiler/machines/vax/compiler.cbf[1.5], compiler/machines/vax/compiler.pkg[1.19], compiler/machines/vax/decls.scm[4.11], compiler/rtlbase/rtlobj.scm[4.11]: Eliminate "base/btree" and "base/hashtb" files. Rewrite code to use runtime system's rb-tree and hash-table abstractions. * edwin/txtprp.scm[1.14]: Use SYMBOL * cref/Attic/triv.con[1.4], cref/Attic/triv.ldr[1.3], cref/conpkg.scm[1.4], cref/cref.pkg[1.5], cref/cref.sf[1.6], cref/forpkg.scm[1.8], cref/make.scm[1.9], cref/object.scm[1.6], cref/redpkg.scm[1.5], cref/toplev.scm[1.6]: Eliminate BTREE data structure, replacing it with RB-TREE implementation that is built in to the runtime system. This replacement improves overall performance by a factor of three. * runtime/symbol.scm[1.2]: New procedures SYMBOL=? and SYMBOL * runtime/hashtb.scm[1.10], runtime/runtime.pkg[14.202]: Implement MAKE-EQUAL-HASH-TABLE. Change EQV? hash tables to hold onto numbers strongly; other pointer objects are still held weakly. * runtime/equals.scm[14.5]: Use fixnum arithmetic on vectors. Convert explicit type code tests to predicates that open-code into the same thing. * sf/gconst.scm[4.17], sf/usiexp.scm[4.19]: Arrange for CELL? to be open-coded by the compiler. 1993-10-09 Chris Hanson * runtime/hashtb.scm[1.9], runtime/runtime.pkg[14.201]: HASH-TABLE/STRONG-CONSTRUCTOR and HASH-TABLE/WEAK-CONSTRUCTOR simplify definition of most common constructors. * runtime/hashtb.scm[1.8]: Fix rehashing code to handle invalid keys correctly. Merge two places that did rehashing into a single procedure. 1993-10-08 Chris Hanson * runtime/hashtb.scm[1.7]: Fix think-o in previous change. * runtime/hashtb.scm[1.6], runtime/runtime.pkg[14.200]: Implement eqv?-hash tables. * runtime/hashtb.scm[1.5], runtime/runtime.pkg[14.199]: Implementation of new, very efficient EQ?-hash tables. These tables use address hashing, automatically rehash themselves when garbage collections move their keys around, and automatically clean themselves as their keys are reclaimed by the GC. MAKE-EQ-HASH-TABLE is used to create these tables; MAKE-OBJECT-HASH-TABLE and MAKE-SYMBOL-HASH-TABLE are now aliases for this new procedure. HASH-TABLE/SIZE now returns the "usable size" of the table, as claimed by the documentation, rather than the "physical size". New enumeration procedures HASH-TABLE->ALIST, HASH-TABLE/KEY-LIST, and HASH-TABLE/DATUM-LIST. * runtime/rbtree.scm[1.4]: Modify RB-TREE->ALIST, RB-TREE/KEY-LIST, and RB-TREE/DATUM-LIST to be iterative rather than recursive. Previously they were recursive with a stack depth proportional to the length of the result; since balanced trees are designed for use with very large collections this was disastrous. 1993-10-07 Chris Hanson * runtime/hashtb.scm[1.4], runtime/rbtree.scm[1.3]: Limit interrupt locking to minimum needed for single process. This protects against interrupts occurring during a critical section, but does not prevent concurrent access to the data structures. * runtime/hashtb.scm[1.3], runtime/runtime.pkg[14.198]: Complete rewrite of hash-table implementation to improve efficiency, to implement shrinking of hash tables, and to fix amortization of table growth. 1993-10-06 Chris Hanson * runtime/rbtree.scm[1.2], runtime/runtime.pkg[14.197]: Add type-checking of tree arguments and interrupt locking. Add new operations RB-TREE/KEY-LIST and RB-TREE/DATUM-LIST. * edwin/edwin.pkg[1.138], edwin/info.scm[1.117]: Add new editor variable info-selection-key which implements mouse-sensitive, highlighted regions for selecting Info nodes and menu items. * edwin/comtab.scm[1.64], edwin/edwin.pkg[1.137]: Export COMTAB-KEY? which is true of keys that can be placed in comtabs. * edwin/edwin.pkg[1.136]: Export new Info editor variable. Also export Info commands. * edwin/debug.scm[1.20], edwin/edwin.pkg[1.135], edwin/txtprp.scm[1.13]: Define some procedures to hide the use of the text-property mechanism for highlighting, local comtabs, and read-only regions. 1993-10-05 Chris Hanson * edwin/bufwfs.scm[1.18], edwin/edwin.pkg[1.134], edwin/txtprp.scm[1.12], edwin/undo.scm[1.56]: Major rewrite of text property mechanism. New implementation uses red/black trees for properties within intervals, and uses red/black balancing algorithm for intervals. Interface to editor is simplified, as is the interface to the undo mechanism. The redisplay code no longer uses the internals of the implementation, but instead uses standard external entries. Adjacent intervals are now merged together when their property sets are the same; property data are compared for equality using EQV?. * edwin/edwin.ldr[1.46]: Load red/black tree implementation for use by text-property code. * edwin/filcom.scm[1.177]: Fix think-o: argument to SET-VISITED-PATHNAME might be #F. * runtime/option.scm[14.24], runtime/runtime.pkg[14.196]: Add red/black tree datatype option. 1993-10-04 Stephen Adams * microcode/errors.h[9.41]: *** empty log message *** 1993-09-30 Stephen Adams * runtime/runtime.pkg[14.195]: exported FOLD-LEFT and FOLD-RIGHT to () * runtime/list.scm[14.18]: Added fold-left and fold-right 1993-09-30 Brian A. LaMacchia * edwin/edwin.ldr[1.45], edwin/loadef.scm[1.25], edwin/rmail.scm[1.30], edwin/rmailsum.scm[1.32]: Made rmailsum.scm part of the default edwin system (i.e. it's no longer an autoload) to fix a bug in RMAIL-CEASE-EDIT (rmail-summary-buffer was unassigned if rmailsum.scm wasn't loaded). 1993-09-23 Chris Hanson * runtime/conpar.scm[14.31]: Redo last change -- can't just rewrite frame elements because that potentially screws up operation that builds continuations from stack frames. * edwin/comred.scm[1.107]: Don't treat input events as commands unless they're button events. Even the latter case doesn't always want to be treated that way, but there's no good way to figure out what the correct treatment is. * edwin/bufwiu.scm[1.25]: "Clever" fix to handle case of deletion to window start causes "point not visible at end of redisplay" error. This happens when the start mark is clobbered and the new start is not near enough to the point; for example by deleting some text, then replacing it with itself. Also, somehow UPDATE-OUTLINES! is getting called with FORCE-REDRAW? and the CURRENT-START-MARK both false, which shouldn't be able to happen; compiled code deals with this by treating #f as 0. This change fixes this unusual case. * runtime/conpar.scm[14.30]: Stack-marker frames must be identifiable as such. Several things depend on this. Also, it's very undesirable for such frames to be identified as subproblem frames; if so, they clutter up the debugger output significantly. 1993-09-21 Guillermo J. Rozas * microcode/nttrap.c[1.8]: Add a kludge to prevent a double-fault under Windows 3.1 * microcode/nttrap.c[1.7]: Allow other guard page accesses to continue. Set the stack protection boundary to the page before Stack_Guard so that the interpreter will find its own problems. 1993-09-20 Guillermo J. Rozas * runtime/gc.scm[14.15]: Missing unguarded cdr of the result of purify. * runtime/gc.scm[14.14]: Take cdr of pairs only. * runtime/gc.scm[14.13]: Avoid infinite loop. * runtime/gc.scm[14.12]: Simplify interface to purify. * runtime/gc.scm[14.11]: default/gc-flip should always flip, even when purify fails. * microcode/ntutl/config.bat[1.6], microcode/ntutl/makefile[1.13]: Add .cur files. 1993-09-19 Stephen Adams * runtime/make.scm[14.49]: Altered order of graphics initialization to make X the default graphics device type (in preference to starbase). 1993-09-18 Guillermo J. Rozas * runtime/gc.scm[14.10]: purify can now return three possible status codes: - true: did it. - false: cannot do it. - otherwise: can do it, but not at this gc. 1993-09-17 Chris Hanson * edwin/cinden.scm[1.9]: Fix old typo. 1993-09-16 Stephen Adams * microcode/ntutl/ntgui.rc[1.5]: Added VERSIONINFO resource * microcode/ntscreen.c[1.19]: More frightening message when closing master_tty_window * microcode/ntutl/ntgui.rc[1.4]: Added icon & cursor 1993-09-16 Chris Hanson * edwin/schmod.scm[1.34]: SCHEME-COMPLETE-SYMBOL now downcases the prefix that it is trying to complete; previously it did not which caused lossage when the prefix had upper-case characters in it. 1993-09-15 Stephen Adams * runtime/x11graph.scm[1.34]: Added x-graphics-default-geometry & ..-default-display-name * runtime/runtime.pkg[14.194]: Globalized x-graphics-default-geometry & x-graphics-default-display-name * runtime/x11graph.scm[1.33]: * Added new graphics-device-type protocol - use 'X instrad of x-graphics-device-type * generalized X-IMAGE. The CRAETE-IMAGE operation now returns an IMAGE. To get the orginal X-IMAGE, use (image/descriptor IMAGE) * to draw image, use (graphics-operation device 'draw-image x y image) * runtime/starbase.scm[1.10]: New graphics-device-type protocol * runtime/graphics.scm[1.6]: Added generalized images * runtime/runtime.pkg[14.193]: Generalized graphics images 1993-09-15 Chris Hanson * edwin/comred.scm[1.106]: Make sure that keyboard macro definition is terminated when ^G is typed or when an error occurs. 1993-09-15 Guillermo J. Rozas * microcode/utils.c[9.64]: Remove spurious comma that was legal but had the completely wrong effect! * sf/subst.scm[4.12]: build-new-code was incorrectly passing scode to combination/optimizing-make. 1993-09-14 Guillermo J. Rozas * microcode/m/Attic/hp9k300.h[1.12], microcode/m/Attic/hp9k400.h[1.8]: Define hp9000s300, gone in 9.01. 1993-09-13 Guillermo J. Rozas * microcode/ntutl/scheme16.c[1.7], microcode/ntutl/scheme31.c[1.5], microcode/ntutl/scheme32.c[1.7]: offsets are not unsigned. Make ntwntlib.c and ntw16lib.c timer interrupt handlers virtually identical. * microcode/ntsig.c[1.14]: Increase the catatonia period. Loading large bands takes longer than 15 seconds. * microcode/ntscreen.c[1.18]: Add alloc_event_failure so that a breakpoint can be set easily. * microcode/ntscmlib.h[1.4]: Offsets are not unsigned! * microcode/ntfile.c[1.4]: Open all files with read sharing. * microcode/intrpt.h[1.15]: Make COMPILER_SETUP_INTERRUPT test only for enabled interrupts. * edwin/utils.scm[1.34]: Close the interrupt window correctly. 1993-09-12 Guillermo J. Rozas * microcode/cmpint.c[1.72]: Take interrupts at the point at which the interrupt mask is restored. * microcode/cmpint.c[1.71]: Fix mismatch in dummy version of do_bkpt_proceed. * microcode/hooks.c[9.53]: Can't count. * edwin/edwin.pkg[1.133.1.1]: Update to match the Unix version. 1993-09-11 Guillermo J. Rozas * microcode/cmpintmd/hppa.h[1.46], microcode/comutl.c[1.27]: Change breakpoint handles to non-marked-vectors to make the runtime system's life easier. * runtime/conpar.scm[14.29], runtime/conpar.scm[14.28], runtime/udata.scm[14.16]: Add the ability to parse special compiled code frames. * microcode/cmpint.c[1.70]: Distinguish between return-to-interpreter and reflect-to-interface. * microcode/cmpint.c[1.69]: Make the interrupt window in breakpoint proceed narrower by taking all interrupts before actually proceeding. * microcode/cmpint.c[1.68], microcode/comutl.c[1.26], microcode/const.h[9.43], microcode/fixobj.h[9.35], microcode/hooks.c[9.52], microcode/ntgui.c[1.11], microcode/ntgui.h[1.6], microcode/ntsig.c[1.13], microcode/prosio.c[1.9], microcode/utabmd.scm[9.71], microcode/version.h[11.143]: - Add a primitive facility to set breakpoints on compiled code. - Improve with-interrupt-mask and with-stack-marker from compiled code. * microcode/cmpauxmd/hppa.m4[1.33], microcode/cmpintmd/hppa.h[1.45]: Add a primitive facility to set breakpoints on compiled code. 1993-09-10 Chris Hanson * runtime/io.scm[14.37], runtime/thread.scm[1.20]: Change BLOCK-ON-INPUT-DESCRIPTOR to return one of the three symbols: INPUT-AVAILABLE, PROCESS-STATUS-CHANGE, or INTERRUPT. This call will now reliably return PROCESS-STATUS-CHANGE when the microcode signals such a change. * edwin/xterm.scm[1.46]: Check for process status changes before blocking. No longer need to treat INTERRUPT as a possible process status change since the runtime system has been modified to reliably produce the right result. * edwin/process.scm[1.31]: Signal modeline events appropriately for changes to a process's status. This guarantees that the modeline is updated correctly when the events occur. * runtime/thread.scm[1.19]: Generalize input descriptors -- test them using eqv? instead of =. 1993-09-10 Guillermo J. Rozas * microcode/ntscreen.c[1.17]: Yet another pass at the alloc_event bug: have rewritten all the deallocation code. 1993-09-09 Chris Hanson * edwin/xterm.scm[1.45], microcode/uxio.c[1.31]: Attempt to detect process status changes more reliably. * edwin/edwin.pkg[1.133], edwin/txtprp.scm[1.11]: Rename PREV-SPECIFIC-PROPERTY-CHANGE to PREVIOUS-SPECIFIC-PROPERTY-CHANGE. * edwin/edwin.pkg[1.132], edwin/txtprp.scm[1.10]: Rename GET-PROPERTY-AT to GET-TEXT-PROPERTY and TEXT-PROPERTIES-AT to GET-TEXT-PROPERTIES. * edwin/edwin.pkg[1.131]: Eliminate GET-PROPERTY which is now undefined. * edwin/debug.scm[1.19], edwin/debug.scm[1.18]: Eliminate unused variable warnings. * edwin/debug.scm[1.17]: Change to use new property operations. Repaginate. * edwin/edwin.pkg[1.130], edwin/txtprp.scm[1.9]: Implement new operations ADD-TEXT-PROPERTY and REMOVE-TEXT-PROPERTY. Make type and range checking on modification operations more strict. Add interrupt locking to the modification operations. Fix some typos. * edwin/dired.scm[1.137]: Fix bug: renaming last file in dired buffer to another directory signalled an error. 1993-09-09 Guillermo J. Rozas * microcode/lookup.c[9.54]: Fix the error the right way. * microcode/lookup.c[9.53]: Add cast to eliminate warning. * microcode/bchdmp.c[9.72], microcode/unxutl/Attic/config[1.20], microcode/ux.h[1.52], microcode/ux.h[1.51], microcode/uxsock.c[1.12], microcode/uxtrap.h[1.22]: Linux patch. 1993-09-08 Chris Hanson * runtime/version.scm[14.164], runtime/x11graph.scm[1.32]: This is an incompatible change that requires microcode 11.142. This change affects only the X11 graphics interface. Change handling of Configure events so that the runtime system receives them and instructs the microcode to do the reconfiguration. This is necessary to get correct synchronization of these events. Additionally fix some bugs in the user-event mechanism. * microcode/version.h[11.142], microcode/x11graph.c[1.31]: This is an incompatible change that requires runtime 14.164. This change affects only the X11 graphics interface. Change handling of Configure events so that the runtime system receives them and instructs the microcode to do the reconfiguration. This is necessary to get correct synchronization of these events. * edwin/filcom.scm[1.176]: Change find-file-hooks to pass the buffer to the event receivers. 1993-09-08 Guillermo J. Rozas * microcode/ntgui.h[1.5], microcode/ntsig.c[1.12], microcode/ntutl/scheme16.c[1.6], microcode/ntutl/scheme32.c[1.6]: Prevent multiple catatonia messages. * microcode/bchmmg.c[9.81], microcode/memmag.c[9.55], microcode/nttrap.c[1.6], microcode/stack.h[9.35]: Add ability to detect stack overflow in NT/Windows. 1993-09-07 Guillermo J. Rozas * runtime/site.scm.dos[1.12]: Add default value for the TERM environment variable. * runtime/dosprm.scm[1.20]: Default variables can now be initialized by running a thunk. * edwin/utils.scm[1.33]: Close interrupt window in string-allocate. * microcode/interp.c[9.78]: Take interrupts immediately when restoring the interrupt mask. * microcode/cmpint.c[1.67]: Check interrupts on return from primitives for the i386 back end. i386 compiled code now checks for interrupts on the calling side of the return address, not the receiving side. * microcode/ntgui.c[1.10]: Attempt to preclude multiple catatonia windows for showing up. * microcode/ntscreen.c[1.16]: Fix keyboard event storage leak. Reduce input buffer size to 250. Increase maximum screen size. * microcode/ntsig.c[1.11]: Reduce catatonia timer to 15 sec. 1993-09-04 Guillermo J. Rozas * microcode/ntgui.c[1.9], microcode/ntgui.h[1.4], microcode/ntscmlib.h[1.3], microcode/ntscreen.c[1.15], microcode/ntscreen.h[1.8], microcode/ntsig.c[1.10], microcode/nttop.c[1.10], microcode/ntutl/makefile[1.12], microcode/ntutl/scheme16.c[1.5], microcode/ntutl/scheme31.c[1.4], microcode/ntutl/scheme32.c[1.5]: Add a catatonia timer. * edwin/decls.scm[1.49]: Add Arthur's debugger to the list of files to be processed. 1993-09-03 Chris Hanson * runtime/thread.scm[1.18]: Don't restart the real-time timer interrupt unless the restart would cause the interrupt to be delivered before it would have been otherwise. * edwin/comman.scm[1.74], edwin/decls.scm[1.48], edwin/ed-ffi.scm[1.32], edwin/edwin.ldr[1.44], edwin/edwin.pkg[1.129]: Fix typo. Split new doc string stuff into separate file. 1993-09-03 Guillermo J. Rozas * microcode/bchmmg.c[9.80]: Change error output under NT. The console-based interface doesn't work. * edwin/edwin.pkg[1.129.1.1]: Update to match Unix version. * microcode/ntsys.c[1.4], microcode/ntsys.h[1.4], microcode/nttop.c[1.9]: Fix version number. * microcode/ntscreen.c[1.14]: Redo timers to use the Windows WM_TIMER mechanism. Fix problem with turds left behind when resizing the screen. * microcode/ntenv.c[1.9], microcode/ntgui.c[1.8], microcode/ntscreen.h[1.7], microcode/ntsig.c[1.9]: Redo timers to use the Windows WM_TIMER mechanism. * microcode/prntio.c[1.2]: Check for pre-buffered window events (i.e. keystrokes) before going off to MsgWaitForMultipleObjects. * microcode/ntutl/scheme32.c[1.4]: Change the timer period. * microcode/ntutl/bch-cl3.lst[1.5], microcode/ntutl/makefile[1.11], microcode/ntutl/scm-cl3.lst[1.5]: Flush ntutil 1993-09-02 Chris Hanson * runtime/site.scm.unix[1.10]: Update for current directories. * edwin/intmod.scm[1.64]: Eliminate "unused binding" warning. 1993-09-02 Guillermo J. Rozas * edwin/tterm.scm[1.24]: Avoid screen update when the screen has not been resized. * edwin/comman.scm[1.73]: Fix bug introduced in last edit. * edwin/comman.scm[1.72]: Make docstring search default to the edwin etc directory. 1993-09-02 Joe Bank * edwin/debug.scm[1.16]: Changed a few things so that it will work on windows. Now will only create screen if on a unix system. 1993-09-01 Chris Hanson * runtime/x11graph.scm[1.31], runtime/x11graph.scm[1.30]: Fix think-o in last change. * runtime/runtime.pkg[14.192], runtime/x11graph.scm[1.29]: Add some new functionality to the X graphics interface to allow access to mouse, keyboard, and focus events that are used by the interface itself. These events can be used to build useful user interfaces. * sf/copy.scm[4.4], sf/make.scm[4.27], sf/object.scm[4.7], sf/pardec.scm[4.9], sf/reduct.scm[4.8], sf/subst.scm[4.11], sf/toplev.scm[4.12], sf/usiexp.scm[4.18], sf/xform.scm[4.6]: Extend REPLACE-OPERATOR declaration to allow it to work on a combination whose operator is a primitive procedure. In order to do this, it was necessary to extend the COMBINATION datatype to include a BLOCK object; this change affected quite a few files. 1993-09-01 Guillermo J. Rozas * runtime/dosprm.scm[1.19]: Get rid of unbound variable. * runtime/conpar.scm[14.27]: Teach the runtime system how to display the names of utilities and builtins when a trap occurs within them. * microcode/cmpint.c[1.66]: Fix typo. * microcode/cmpauxmd/hppa.m4[1.32], microcode/cmpint.c[1.65], microcode/comutl.c[1.25]: Generate the names of the builtins automatically. * microcode/uxio.c[1.30]: Remove fossil. * microcode/Attic/dosio.c[1.7]: No select in DOS. * microcode/ntio.c[1.9]: Fix minor mispellings. * edwin/edwin.pkg[1.128.1.1]: Update to match Unix version. * microcode/version.h[11.141]: - Fix various redisplay/resize bugs, and add notification of resize for Edwin. - Add select capabilities to NT version. * microcode/ntscreen.c[1.13], microcode/ntscreen.h[1.6]: Fix various bugs, and add notification of resize for Edwin. * microcode/ntio.c[1.8], microcode/ntsig.c[1.8], microcode/nttop.c[1.8]: Add select capability to NT version. * microcode/ntgui.c[1.7]: Add high-priority hot-key polling. * microcode/ntenv.c[1.8]: Add (disabled) timer code. * microcode/ntutl/bch-cl3.lst[1.4], microcode/ntutl/bch-p-nt.lst[1.4], microcode/ntutl/makefile[1.10], microcode/ntutl/scm-cl3.lst[1.4], microcode/ntutl/scm-p-nt.lst[1.4], runtime/dosprm.scm[1.18]: Add select capabilities for NT. * edwin/edwin.pkg[1.128]: Add resize capability for consoles. Add ability to dump docstrings. * edwin/edwin.ldr[1.43]: Print message reminding user to dump doc strings. * edwin/comman.scm[1.71], edwin/modes.scm[1.27]: Add ability to dump doc strings externally. * edwin/tterm.scm[1.23]: Add resize-screen. * edwin/termcap.scm[1.5]: tn-x-size and tn-y-size are mutable. * edwin/scrcom.scm[1.4]: Add resize-screen command. * edwin/modefs.scm[1.144]: Bind resize-scree to #\m-S * edwin/ansi.scm[1.5]: Add enter/exit from termcap mode for the NT emulator. 1993-09-01 Michael R. Blair * runtime/option.scm[14.23]: Add pc-sample to the options list, and make load-option do a temporary cd to the directory where the option file comes from, so that subsequent loads, for multiple-file options, work correctly. -- GJR * runtime/option.scm[14.22]: Finalized packaging of PC sample load option 1993-08-31 Chris Hanson * sf/usiexp.scm[4.17]: Fix pagination. * runtime/boot.scm[14.9], runtime/intrpt.scm[14.19]: Undo random gratuitous changes. 1993-08-31 Guillermo J. Rozas * microcode/term.c[1.9]: If the fixed objects vector is not valid, edwin_auto_save should not fail. * microcode/cmpauxmd/hppa.m4[1.31]: Forgot nullify in cross_segment_call. 1993-08-31 Michael R. Blair * runtime/intrpt.scm[14.18]: Fix parenthesis problem, again. * runtime/boot.scm[14.8]: Remove Descartes interrupt bits. They are only needed in the PC Sampler. * runtime/intrpt.scm[14.17]: Remove spurious close paren. * runtime/intrpt.scm[14.16]: Reserve interrupt slots for the Descartes PC sampler, and initialize to the illegal interrupt handler. * runtime/runtime.pkg[14.191]: Export compiled-code-block/filename to the global. 1993-08-30 Guillermo J. Rozas * microcode/scheme.h[9.36]: Add macro to protect against multiple inclusion. 1993-08-30 Jacob Katzenelson * sf/usiexp.scm[4.16]: (CPH:) Add expansion of expt for small exact exponents. 1993-08-30 Michael R. Blair * runtime/ed-ffi.scm[1.7], runtime/option.scm[14.21]: More uniform naming to keep related modules together: coblprof -> pcscobl iproprof -> pcsiproc * runtime/option.scm[14.20]: added PC sample option module * runtime/make.scm[14.48]: tweek comments * runtime/ed-ffi.scm[1.6]: copyrighted and added pc sample hooks * runtime/boot.scm[14.7]: added hooks for dynamically loadable (option) PC sample code 1993-08-29 Guillermo J. Rozas * microcode/ntscreen.c[1.12]: Fix redisplay bugs. 1993-08-29 Michael R. Blair * microcode/prosenv.c[1.11]: changed comments in profile-timer-set/clear: did say ``PC sample'' but should have said just ``profile'' since PC sampling is not the only use of this timer. My mistake. ziggy 1993-08-28 Guillermo J. Rozas * cref/Attic/triv.ldr[1.2]: Eliminate redundancies, and use single-file load. * microcode/uxsig.h[1.2]: Fix date. * microcode/Attic/dosenv.c[1.6], microcode/fixobj.h[9.34], microcode/intrpt.h[1.14], microcode/ntenv.c[1.7], microcode/osenv.h[1.5], microcode/prosenv.c[1.10], microcode/unxutl/Attic/ymkfile[1.79], microcode/uxenv.c[1.12], microcode/uxsig.c[1.27], microcode/uxtrap.c[1.23], microcode/uxtrap.h[1.21], microcode/version.h[11.140]: Add hooks for Ziggy's pc-sample profiler. * microcode/utabmd.scm[9.70]: Add pc-sample profiler slots to the fixed-objects vector. * microcode/primutl.c[9.66]: Add missing parameter to non-ANSI param list. * microcode/primutl.c[9.65], microcode/syscall.h[1.3], microcode/unxutl/Attic/ymkfile[1.78], microcode/usrdef.h[9.41], microcode/utabmd.scm[9.69], microcode/version.h[11.139]: Add primitive dynamic loading ability to the microcode. 1993-08-27 Chris Hanson * runtime/Attic/syntax.scm[14.22]: Improve syntax error checking for ACCESS. 1993-08-27 Guillermo J. Rozas * microcode/ntscreen.c[1.11], microcode/ntscreen.h[1.5]: - Fix ANSI emulator to handle commands accross buffer boundaries. - Fix redisplay bug in [C - Add background color customization. 1993-08-26 Guillermo J. Rozas * compiler/machines/i386/rules2.scm[1.7]: Add missing rule. * compiler/fgopt/folcon.scm[4.8]: fold-combinations can fail when it invokes apply. Add a restart to skip that combination and continue with the rest. * compiler/machines/C/compiler.pkg[1.3], compiler/machines/alpha/compiler.pkg[1.8], compiler/machines/bobcat/compiler.pkg[1.46], compiler/machines/mips/compiler.pkg[1.16], compiler/machines/spectrum/compiler.pkg[1.44], compiler/machines/vax/compiler.pkg[1.18]: Add export of *block-associations*. * compiler/base/asstop.scm[1.6]: Sort variables in fluid-let. * compiler/back/lapgn1.scm[4.15], compiler/base/asstop.scm[1.5], compiler/machines/i386/compiler.pkg[1.18], compiler/machines/i386/rules3.scm[1.27]: - Move interrupt test on continuation invocation to return point (from continuation entry point). - Share return sequences in a single compiled code block. - Share closure interrupt code. * compiler/machines/i386/lapgen.scm[1.24], microcode/cmpauxmd/i386.m4[1.32], microcode/cmpint.c[1.64], microcode/cmpintmd/i386.h[1.24]: Add hook for interrupt-continuation-2. 1993-08-25 Chris Hanson * edwin/txtprp.scm[1.8]: Add error checks to various exported procedures, since mistakes in these arguments cause obscure bugs and because the procedures can afford the time. Also abstract a few common patterns. * edwin/bufwfs.scm[1.17]: INTERVAL-PROPERTY now takes three arguments instead of two. * edwin/comred.scm[1.105]: Fix "N" interactive argument letter so that it converts the command argument to a numeric value. 1993-08-25 Joe Bank * edwin/debug.scm[1.15]: Made a change so that it still highlights the error message. Now the text prop it seems to want is '((highlighted . #t)) not just '((highlighted)) 1993-08-24 Stephen Adams * microcode/ntscreen.c[1.10]: Separate DELETE key now returns ^D 1993-08-24 Brian A. LaMacchia * microcode/unxutl/Attic/ymkfile[1.77]: Undid the changes, going to wait a day for Jinx. * microcode/uxyp.c[1.2]: *** empty log message *** * microcode/unxutl/Attic/ymkfile[1.76]: Added files uxyp.c and uxyp.h, BAL's RPC Yellow Pages code * edwin/rmailsum.scm[1.31]: rmail-summary-buffer was unassigned initially. 1993-08-24 Chris Hanson * edwin/autosv.scm[1.28]: Add code to update an alist in the fixed-objects vector. This alist is used by the microcode's "auto-save on exit" feature. * microcode/term.c[1.8]: Implement an "auto-save on exit" feature. This assumes that Edwin keeps the fixed-objects-vector slot FIXOBJ_EDWIN_AUTO_SAVE up to date with an alist of group/filename pairs. The auto-save feature determines which entries in the alist need to be saved and writes them out to auto-save files. The activity is echoed on the error stream. * microcode/boot.c[9.84]: Add fixed-objects slot to contain Edwin data structure describing files that might need to be saved. Initialize this slot to '(). 1993-08-24 Guillermo J. Rozas * microcode/ntscreen.c[1.9]: - Fix C-M under Win 3.1. - Make interrupts flush typeahead correctly. * microcode/ntutl/scheme16.c[1.4]: Restore some debugging aids. * microcode/ntutl/scheme16.def[1.3]: Fix 16-bit .def file after figuring out what some of the options mean. * microcode/ntutl/scheme31.c[1.3]: Insert additional call to VirtualFree, using MEM_RELEASE, to make Win 3.1 happy. * microcode/gccode.h[9.51]: Work-around HP-C optimizer bug. 1993-08-24 Michael R. Blair * microcode/interp.c[9.77]: Merge in change to delay setting of Env register until environment is completely constructed. 1993-08-23 Chris Hanson * microcode/edwin.h[1.7]: Add definition for GROUP-MODIFIED? accessor since that is needed to do auto-save from microcode. * microcode/fixobj.h[9.33], microcode/utabmd.scm[9.68]: Add fixed-objects slot to contain Edwin data structure describing files that might need to be saved. Initialize this slot to '(). * edwin/txtprp.scm[1.7]: Fix bug in INTERVAL-PROPERTIES-EQUAL?. Consider two properties equal if they are EQ?. * edwin/txtprp.scm[1.6]: Fix bug in implementation of READ-ONLY text property. 1993-08-23 Guillermo J. Rozas * microcode/utils.c[9.63]: Change feature macro from I386 to i386. I386 is undefined. Add WINNT try/finally block. * microcode/cmpauxmd/i386.m4[1.31]: Move manipulation of C's es to interface_initialize. It does not change for the duration of the session. * microcode/bchdmp.c[9.71], microcode/bchgcc.h[9.54], microcode/bchgcl.c[9.46], microcode/bchpur.c[9.61], microcode/cmpintmd/i386.h[1.23]: Make bchscheme work with address relocation. * microcode/dosutl/Attic/makefile[1.9]: Add memmag.h as a dependency of memmag.c and bchmmg.c * microcode/ntutl/makefile[1.9]: Add bchscheme back to list of generated programs. 1993-08-23 Joe Bank * edwin/debug.scm[1.14]: Made minor revision so that it accepts #f as an environment. 1993-08-22 Guillermo J. Rozas * microcode/bchmmg.c[9.79], microcode/bchpur.c[9.60], microcode/gccode.h[9.50], microcode/memmag.c[9.54], microcode/purify.c[9.51], microcode/purutl.c[9.45], microcode/version.h[11.138]: Merge in microcode gc hook support for Ziggy's profiler. * microcode/bchgcc.h[9.53]: NT requires O_BINARY in the file flags. * edwin/loadef.scm[1.24]: Dos-specific libraries are also defined under NT so that bands can be shared. * microcode/cmpint.c[1.63], microcode/comutl.c[1.24], microcode/fasload.c[9.71], microcode/version.h[11.137]: - Add definition of declare-compiled-code-block, used by the compiler and the program copier to guarantee that the caches have been synchronized. - Modify fasload to synchronize the caches when necessary. - Eliminate compiled-expression cache-flushing kludge since it is no longer necessary because of the other modifications. * compiler/base/asstop.scm[1.4], runtime/prgcop.scm[1.4]: Add calls to declare-compiled-code-block to guarantee that the caches have been synchronized for newly-created code. * edwin/artdebug.scm[1.22]: Merge in personal changes. * edwin/edwin.pkg[1.127.1.1]: DOS version. * edwin/edwin.pkg[1.127]: Add new imports to (edwin debugger) for improvements to Arthur's debugger. * edwin/edwin.pkg[1.126.1.1]: DOS/NT version. * edwin/edwin.ldr[1.42], edwin/edwin.pkg[1.126]: Merge in changes for NT. * edwin/comhst.scm[1.2], edwin/comint.scm[1.20]: Move comint-record-input from comint.scm to comhst.scm. comint.scm is not loaded in the DOS/Windows version. 1993-08-21 Guillermo J. Rozas * microcode/ntutl/scheme16.c[1.3]: Forgot to remove switch entries in last edit. * microcode/ntasutl.asm[1.4]: Lost "end" during the last edit. * microcode/unxutl/Attic/ymkfile[1.75]: Add dependency from memmag.c to memmag.h * microcode/cmpauxmd/makefile[1.2]: Reorder to make "make all" work correctly. * microcode/cmpauxmd/i386.m4[1.30], microcode/ntenv.c[1.6], microcode/ntfs.c[1.6], microcode/ntgui.c[1.6], microcode/ntio.c[1.7], microcode/ntio.h[1.5], microcode/ntscmlib.h[1.2], microcode/ntsig.c[1.7], microcode/ntsys.c[1.3], microcode/ntsys.h[1.3], microcode/nttop.c[1.7], microcode/nttrap.c[1.5], microcode/nttrap.h[1.4], microcode/nttty.c[1.4], microcode/ntutl/ntgui.rc[1.3], microcode/ntutl/scheme16.c[1.2], microcode/ntutl/scheme16.def[1.2], microcode/ntutl/scheme16.mak[1.3], microcode/ntutl/scheme16.mak[1.2], microcode/ntutl/scheme31.c[1.2], microcode/ntutl/scheme31.def[1.2], microcode/ntutl/scheme32.c[1.3], microcode/ntutl/scheme32.def[1.2], microcode/ntutl/scm-cl3.lst[1.3], microcode/ntutl/scm-p-nt.lst[1.3], microcode/object.h[9.42], microcode/prntenv.c[1.3], microcode/prntfs.c[1.2], microcode/purify.c[9.50], microcode/version.h[11.136]: - Handle address relocation to allow the NT version of Scheme to run under Windows 3.1. - Cleanup of the NT sources. Remove DOS fossils. * microcode/ntutl/config.bat[1.5], microcode/ntutl/makefile[1.8]: Move some files to ntutl. * microcode/nt.h[1.5], microcode/ntasutl.asm[1.3]: Allow for address relocation to make Scheme run under Windows 3.1. Plus general cleanup of NT code. * microcode/findprim.c[9.49]: Add a cast to output to remove warnings from the Microsoft Windows NT compiler. * microcode/Attic/config.h[9.81], microcode/cmpint.c[1.62], microcode/cmpintmd/i386.h[1.22], microcode/fasdump.c[9.56], microcode/fasload.c[9.70], microcode/gccode.h[9.49], microcode/gcloop.c[9.42], microcode/intrpt.h[1.13], microcode/memmag.h[1.2], microcode/ntutl/config.bat[1.4], microcode/ntutl/makefile[1.7]: Allow for address relocation to make Scheme run under Windows 3.1. * microcode/boot.c[9.83]: Add enter-interpreter hook to make exception handling work under Windows NT. * microcode/ntutl/bch-cl3.lst[1.3], microcode/ntutl/bch-p-nt.lst[1.3]: Flush ntconio.obj, not needed. 1993-08-20 Chris Hanson * edwin/rmail.scm[1.29]: Disable undo in RMAIL buffers, since it shouldn't be needed. The storage needed for the undo has caused problems for at least one user. Undo is enabled for buffers in rmail-edit mode. * edwin/utils.scm[1.32]: Supply missing noun in error message for allocation-failure. * edwin/xterm.scm[1.44]: Fixed two bugs: (1) the HALT-UPDATE and PEEK-NO-HANG operations were not generating input events to cause redisplay when subprocess or inferior REPL output required them; (2) there was an interrupt window between the test for such output and entry into a blocking read. The former now generate the appropriate events, and the latter has been eliminated. * edwin/input.scm[1.98]: Interaction between HANDLE-SIMPLE-EVENTS and KEYBOARD-READ-1 had a window in which it was possible to process an event that caused a redisplay to be needed, but subsequently avoid the redisplay test and go directly into a blocking read. This window has been eliminated. 1993-08-19 Stephen Adams * microcode/prntenv.c[1.2]: fixed FILE-TIME->STRING to check for a null string returned from ctime(). This happens with the SDK C runtime library when the time is -1. The returned string is empty. 1993-08-19 Chris Hanson * edwin/comred.scm[1.104], edwin/kmacro.scm[1.40]: Fix pagination. * edwin/input.scm[1.97]: Fix bug introduced by last change: when an input-event is processed by a "peek" routine, it must be discarded, otherwise the reader gets stuck in a loop processing the same event over and over. 1993-08-19 Jason Wilson * edwin/kmacro.scm[1.39]: Rewrote the loop in KEYBOARD-MACRO-EXECUTE so that CALL-WITH-CURRENT-CONTINUATION would get called just once per keyboard macro. I also made the call to COMMAND-READER supply an optional arguement (#f) that wasn't being supplied before. * edwin/comred.scm[1.103]: Made the command reader loop aware of keyboard-macros so that a call to without-editor-interupts could be avoided thus speeding up the code. 1993-08-18 Chris Hanson * edwin/bufwin.scm[1.301]: Fix instance of "point not visible at end of redisplay" error that Matt Birkholz pointed out. Change code that generates this error to conditionally force the point to be visible; this results in more robust behavior. * runtime/io.scm[14.36]: Guarantee that CHANNEL-READ not return #f if the argument channel is set to blocking mode. 1993-08-17 Chris Hanson * edwin/debug.scm[1.13]: Eliminate random delay, which should no longer be needed now that window initialization sequence is fixed. * edwin/make.scm[3.79], edwin/xterm.scm[1.43]: These changes require microcode version 11.135 or later. Change the startup sequence for X windows. It turns out that there is a poorly documented constraint which says that the client may not draw on a newly-created window until the first Expose event for the window is received. These changes implement this constraint (see the source code comments for details). Additionally, the startup sequence now guarantees that the event mask and Edwin's data structures are properly initialized before the window is mapped, guaranteeing that by the time the first event arrives, everything is ready for it. * microcode/version.h[11.135], microcode/x11base.c[1.51]: These changes are required for Edwin version 3.79. Older versions of Edwin will still work with this microcode. * Change "map" argument to window creation primitives so that it can specify the resource names _and_ not to map the window. Previously specifying the resource names forced mapping. * Change the X-DEBUG primitive to accept non-negative fixnums to allow the amount of debugging information to be set. #f and #t are still accepted, meaning the same as 0 and 1, respectively. * Extend "expose" objects with another element that identifies each one as either an Expose event or a GraphicsExpose event. * Implement new primitive X-WINDOW-FLUSH. 1993-08-16 Chris Hanson * 6001/nodefs.scm[1.9]: Change WRITE-DEFINITION-VALUE to return the description of the definition as a string rather than writing it to the REPL port. * microcode/x11term.c[1.23]: When reconfiguring a window, clear it. This prevents garbage from being left in the internal border of the window. * edwin/xterm.scm[1.42]: Change handling of "configure" events so that the microcode and Edwin update their notions of the window's size at the same time. Previously, the microcode was updated first, then Edwin was updated later. It was possible for Edwin to write to the screen in the interval, with arguments based on its (obsolete) notion of the window's size. * edwin/curren.scm[1.109]: Don't delete a screen if it's already deleted. * edwin/screen.scm[1.103]: Initialize cursor X and Y of a screen matrix to 0, not #F. 1993-08-16 Jason Wilson * runtime/ttyio.scm[1.3]: Added hooks so that the new emacs debugger that I'm writing can load in after the console ports have already been made. 1993-08-16 Joe Bank * edwin/debug.scm[1.12]: Tweaked a typo. 1993-08-15 Joe Bank * edwin/debug.scm[1.11]: Made changes to help. 1993-08-14 Jason Wilson * edwin/struct.scm[1.89]: Made groups start out writable? again. 1993-08-14 Joe Bank * edwin/debug.scm[1.10]: Made minor change to select-bline 1993-08-13 Chris Hanson * edwin/regexp.scm[1.64], edwin/struct.scm[1.88]: Add %HASH-NUMBER field to group data structure. This is used to cache the OBJECT-HASH of the group to speed up regular expression searching. * edwin/buffer.scm[1.163], edwin/fileio.scm[1.119], edwin/grpops.scm[1.21], edwin/regops.scm[1.86], edwin/rmail.scm[1.28], edwin/struct.scm[1.87], edwin/txtprp.scm[1.5]: Alter WITH-READ-ONLY-DEFEATED so that it defeats read-only intervals within the group. Additionally, eliminate several instances of GROUP-INDEX: variables to make later transition away from DEFINE-NAMED-STRUCTURE easier. * edwin/debug.scm[1.7]: Use new procedure STACK-FRAME/REPL-EVAL-BOUNDARY? to detect standard REPL evaluation boundary frames. This replaces crufty mechanism that was previously in use here. * 6001/nodefs.scm[1.8]: Use new procedure REPL-SCODE-EVAL to do a standard evaluation of the SCode within HOOK/REPL-EVAL. * runtime/rep.scm[14.35], runtime/runtime.pkg[14.190]: Implement REPL-SCODE-EVAL to capture the common idiom of evaluating some SCode from a REPL. * runtime/conpar.scm[14.26], runtime/debug.scm[14.35], runtime/rep.scm[14.34], runtime/runtime.pkg[14.189]: Implement WITH-REPL-EVAL-BOUNDARY and STACK-FRAME/REPL-EVAL-BOUNDARY? to mark the boundary between stack frames that are part of the REPL and those that are part of the expression being evaluated by the REPL. This marker frame is a "subproblem" frame because that is the easiest way to make it visible to the debuggers, but operationally it is a "reduction" frame. The runtime system's debugger currently ignores these marker frames; at some point it should be modified to do something with them. 1993-08-13 Jason Wilson * edwin/txtprp.scm[1.4]: I can't believe i wrote this shitty code in the first place but i blew it in delete-interval. * edwin/debug.scm[1.9]: Fix fencepost error in highlighting of subexpressions. * edwin/screen.scm[1.102]: Fix highlighting bug in SCREEN-GET-OUTPUT-LINE. 1993-08-13 Joe Bank * edwin/debug.scm[1.8]: Changed continuation->blines and system-frame? to work if the flag debugger-hide-system-code? is set false. 1993-08-12 Chris Hanson * 6001/nodefs.scm[1.7]: Use new operation, CURRENT-EXPRESSION-CONTEXT, to find out where the expression being rewritten came from. Use this contextual information to restrict the generation of definition messages so that they only occur for expressions evaluated directly in the repl buffer. * edwin/intmod.scm[1.63]: Add a new operation on the interface port, CURRENT-EXPRESSION-CONTEXT, that returns a context description associated with the expression most recently read from the port. The context description is a symbol which says where the expression came from. This information will be used by the 6.001 code to make the generation of special definition messages sensitive to the context. * edwin/debug.scm[1.6], edwin/evlcom.scm[1.43], runtime/load.scm[14.43], runtime/rep.scm[14.33], runtime/usrint.scm[1.4]: Change HOOK/REPL-EVAL to accept the calling REPL as its first argument, in addition to the other arguments. * edwin/intmod.scm[1.62]: Change handling of command prompts so that only the standard prompts are ignored; other prompts are printed. The standard prompts can also be printed by changing the value of a flag. The set of standard prompts is defined by a list which can be augmented. These changes make the prompt argument of PROMPT-FOR-COMMAND-EXPRESSION useful. * 6001/make.scm[15.21]: It's OK to print compound procedure names. * 6001/arith.scm[1.4]: Change / operation to return exact quotient of two exact integers if the numerator is a multiple of the denominator. * edwin/bufout.scm[1.9]: Add operation to get the mark from a buffer output port. * runtime/pp.scm[14.28]: Extend highlighting mechanism so that Edwin can take advantage of it. 1993-08-12 Guillermo J. Rozas * compiler/machines/spectrum/rulfix.scm[4.46]: Fix the register*constant fixnum-multiply rule to match the change to the corresponding rewrite rules. 1993-08-12 Jason Wilson * edwin/edwin.ldr[1.41]: Changed the order of loading xcom so that joe's debugger would be happy. 1993-08-12 Joe Bank * edwin/debug.scm[1.5], edwin/edwin.pkg[1.125]: New version of the edwin debugger added. 1993-08-11 Stephen Adams * microcode/ntscreen.c[1.8]: Hacked in temporary arrow keys and Home (^A) and End (^E) keys. 1993-08-11 Chris Hanson * compiler/machines/C/compiler.pkg[1.2], compiler/machines/alpha/compiler.pkg[1.7], compiler/machines/bobcat/compiler.pkg[1.45], compiler/machines/i386/compiler.pkg[1.17], compiler/machines/mips/compiler.pkg[1.15], compiler/machines/spectrum/compiler.pkg[1.43], compiler/machines/vax/compiler.pkg[1.17]: Add compiler:COALESCING-CONSTANT-WARNINGS? to list of switches exported to the global environment. * 6001/6001.cbf[1.6], cref/cref.cbf[1.2], edwin/edwin.cbf[1.3], runtime/runtime.cbf[1.2], sf/sf.cbf[1.2]: Don't show warnings about constant coalescing. * microcode/term.c[1.7]: Supply missing argument to outf_fatal in TERM_SIGNAL handler. Make termination message for TERM_HALT appear on stdout, since it is not error information. 1993-08-10 Stephen Adams * microcode/utils.c[9.62]: Paramterized stack saving in C_call_scheme for I386 1993-08-10 Chris Hanson * edwin/grpops.scm[1.20]: Conditionalize calls to text-property operations on an open-coded test for the existence of properties in the group being modified. * edwin/buffer.scm[1.162], edwin/bufset.scm[1.11], edwin/comman.scm[1.70]: Eliminate instances of DEFINE-NAMED-STRUCTURE. * edwin/txtprp.scm[1.3]: Implement INTERVAL-PROPERTIES-EQUAL?. * edwin/tagutl.scm[1.51]: Eliminate spurious compiler warning. * edwin/comred.scm[1.102], edwin/comtab.scm[1.63], edwin/ed-ffi.scm[1.31], edwin/edtfrm.scm[1.87], edwin/edwin.ldr[1.40], edwin/edwin.pkg[1.124], edwin/fill.scm[1.59], edwin/hlpcom.scm[1.106], edwin/txtprp.scm[1.2]: Define mechanism to find and execute commands from point-local comtabs when they exist, and modify various places to use it instead of COMTAB-ENTRY. Fix installation of text properties: "edwin.pkg" not propertly modified. Change name of package for text properties. * edwin/basic.scm[1.130], edwin/buffrm.scm[1.48], edwin/bufmnu.scm[1.125], edwin/c-mode.scm[1.52], edwin/dosshell.scm[1.3], edwin/edtstr.scm[1.22], edwin/filcom.scm[1.175], edwin/fileio.scm[1.118], edwin/info.scm[1.116], edwin/iserch.scm[1.19], edwin/loadef.scm[1.23], edwin/macros.scm[1.60], edwin/modlin.scm[1.16], edwin/motcom.scm[1.46], edwin/notify.scm[1.11], edwin/outline.scm[1.7], edwin/sercom.scm[1.62], edwin/strtab.scm[1.44], edwin/techinfo.scm[1.4]: Fix pagination. * microcode/option.c[1.35]: Remove random ^Z. 1993-08-09 Jason Wilson * edwin/bufwfs.scm[1.16]: Made changes to draw-region! so that one could have highlighted regions. * edwin/comred.scm[1.101]: Made the command reader check for a command-table in the text before using the default command table. * edwin/edtfrm.scm[1.86]: Changed the button event handler so that it would search for a command table in the text before calling the ordinary routine. * edwin/decls.scm[1.47], edwin/ed-ffi.scm[1.30], edwin/edwin.ldr[1.39]: Added the file txtprp.scm. * edwin/grpops.scm[1.19]: Changed insert and delete to check the text-property field for READ-ONLY regions by calling: text-not-insertable? and text-not-deleteable? * edwin/struct.scm[1.86]: Added a text-property field to the group data structures. Legal values for this field are false or an interval tree. * edwin/undo.scm[1.55]: Changes to undo so that text property changes could be undone using undo. 1993-08-07 Stephen Adams * microcode/utils.c[9.61]: Fix for re-entrant foreign function: saves C stack & frame pointers * microcode/option.c[1.34]: Adjustment of default constant size under NT * microcode/ntgui.c[1.5]: Added: support for relinking DLLs * microcode/ntutl/ntgui.rc[1.2]: Added a plethora of groovy icons * microcode/ntscreen.c[1.7]: Changed default icon 1993-08-06 Jason Wilson * compiler/machines/spectrum/rulrew.scm[1.12]: Make multiply-fixnum do inline case more often. Previously we were being screwed by the CSE. 1993-08-05 Chris Hanson * edwin/intmod.scm[1.61]: Inferior thread should not return from WAIT-FOR-INPUT until the desired input is really available. 1993-08-04 Chris Hanson * microcode/primutl.c[9.64]: The utility procedure `strcmp_ci' had a built-in assumption that the input strings contained no uppercase letters. This is not the case. The procedure `toupper' is guaranteed to work on all characters iff the implementation is ANSI compliant. The procedure `_toupper' (ant `toupper' in non-ANSI implementations) is guaranteed to work _only_ on lowercase letters. * microcode/unxutl/Attic/ymkfile[1.74]: Supply missing dependencies on "memmag.h". * edwin/intmod.scm[1.60]: Don't write a message when the working directory of the inferior REPL is changed; this now happens at odd times and the messages are at best distracting. 1993-08-03 Guillermo J. Rozas * microcode/ntutl/scheme32.c[1.2]: Fix problem when shutting down before having set up the timer. * microcode/primutl.c[9.63]: - Add prototypes for C library procedures. - Primitive aliasing no longer requires the base primitive to be present. When incorporating an alias to an inexistent primitive, the inexistent primitive is declared first. * microcode/memmag.c[9.53]: Remove WINNT fossil. * sf/reduct.scm[4.5]: Forgot to upgrate to match new data structures. * microcode/syscall.h[1.2]: Forgot comment characters after #endif. * microcode/primutl.c[9.62]: Add casts to remove warnings by HP cc. * microcode/errors.h[9.40]: Fix a problem introduced when checking the file in. * microcode/dosutl/Attic/makefile[1.8], microcode/unxutl/Attic/ymkfile[1.73]: Fix braino in last change. * microcode/Attic/dostop.c[1.7], microcode/Attic/msdos.h[1.6], microcode/bchmmg.c[9.78], microcode/boot.c[9.82], microcode/cmpauxmd/hppa.m4[1.30], microcode/cmpint.c[1.61], microcode/cmpintmd/hppa.h[1.44], microcode/debug.c[9.45], microcode/dosutl/Attic/makefile[1.7], microcode/errors.h[9.39], microcode/extern.c[9.34], microcode/fasload.c[9.69], microcode/findprim.c[9.48], microcode/interp.h[9.38], microcode/memmag.c[9.52], microcode/nt.h[1.4], microcode/nttop.c[1.6], microcode/ntutl/makefile[1.6], microcode/object.h[9.41], microcode/prename.h[1.8], microcode/prim.h[9.44], microcode/prims.h[9.43], microcode/primutl.c[9.61], microcode/unxutl/Attic/ymkfile[1.72], microcode/usrdef.h[9.40], microcode/utils.c[9.60], microcode/ux.h[1.50], microcode/uxtop.c[1.11], microcode/version.h[11.134]: Change the primitive tables to allow for dynamic declaration of primitives. * runtime/parse.scm[14.21]: Remove warning from sf. * sf/cgen.scm[4.2], sf/copy.scm[4.3], sf/object.scm[4.6], sf/sf.pkg[4.9], sf/subst.scm[4.10], sf/toplev.scm[4.11], sf/usicon.scm[4.3], sf/usiexp.scm[4.15], sf/xform.scm[4.5]: Add a mechanism for mapping input scode objects to output scode objects. The original scode objects are passed through to the output, and the *sf-associate* hook is called on the output scode and the original scode. The default *sf-associate* does nothing. 1993-08-03 Jacob Katzenelson * sf/pardec.scm[4.8]: Upgrade dumpable expanders to satisfy new arity. * sf/reduct.scm[4.7]: Clean up last change -- GJR. * sf/reduct.scm[4.6]: Fix the same bug in replace-operator that was just fixed in reduce-operator. -- GJR 1993-08-02 Chris Hanson * edwin/comred.scm[1.100], edwin/debug.scm[1.4], edwin/editor.scm[1.229], edwin/edwin.pkg[1.123], edwin/evlcom.scm[1.42]: Condition handlers can not invoke ABORT-CURRENT-COMMAND because the handler for that condition might have been bound inside of the binding for the condition being handled, and thus be unavailable at that time. This is fixed by introducing a restart, ABORT-EDITOR-COMMAND, and an associated procedure, RETURN-TO-COMMAND-LOOP. Condition handlers should invoke this restart rather than signalling the ABORT-CURRENT-COMMAND condition. * edwin/prompt.scm[1.159], edwin/unix.scm[1.37]: Change ABORT-CURRENT-COMMAND to EDITOR-ERROR. * edwin/loadef.scm[1.22], edwin/rmailsum.scm[1.30]: RMAIL-SUMMARY-BUFFER must be bound in order for RMAIL-CEASE-EDIT to work correctly. * edwin/comred.scm[1.99], edwin/editor.scm[1.228], edwin/edwin.pkg[1.122], edwin/intmod.scm[1.59], edwin/iserch.scm[1.18], edwin/process.scm[1.30], edwin/prompt.scm[1.158], edwin/tterm.scm[1.22], edwin/xterm.scm[1.41]: * Change handling of ^G interrupts and of ABORT-CURRENT-COMMAND. Both now use the condition system; ^G conditions are a specialization of ABORT-CURRENT-COMMAND conditions. This change makes it easy to bind some action to occur when a command is aborted for whatever reason. Consequently, the procedure INTERCEPT-^G-INTERRUPTS has been deleted. * The inferior thread output mechanism has been modified to allow a thread to request that the editor exit the keyboard reader and return to the command reader. The request is phrased by the thread output procedure returning 'FORCE-RETURN. This new mechanism is used by the inferior REPL code to force the command reader to immediately execute a command override for an unsolicited prompt. * Aborting an unsolicited prompt causes the associated inferior thread to execute ABORT->NEAREST. * Inferior REPL buffers now initialize their working directory to the default directory of the selected buffer at the time the REPL buffer is created. * Inferior REPL buffers now have their own bindings of %EXIT and QUIT that affect only the inferior thread. In particular, %EXIT kills the inferior thread but leaves Scheme running; QUIT does nothing. * edwin/comint.scm[1.19]: Add new procedure COMINT-RECORD-INPUT which is like RING-PUSH! except that it doesn't push the string argument if it is the same as the one on the top of the ring. This is usually desirable -- it's not necessary to record more than one of a series of identical commands. 1993-08-02 Guillermo J. Rozas * runtime/parse.scm[14.20]: Add a mechanism for mapping objects to the character positions in the input port at which they started. 1993-08-01 Chris Hanson * edwin/input.scm[1.96]: Change handling of simple events so that it does not invoke the main keyboard-reading loop with its management of updating and messages. * edwin/curren.scm[1.108]: Disallow selection of a deleted screen. Unfortunately this can happen because MWM generates these two events in sequence when the "close" window menu entry is selected: 1. WM_DELETE_WINDOW event on the given screen. 2. FocusIn event on the given screen. Yuck! Side effect of selecting the menu button on the screen. * edwin/intmod.scm[1.58]: If an inferior REPL generates an unsolicited prompt, perform the prompt only when the REPL buffer is selected. If the buffer is not selected, delay the prompt until selection occurs. What is still missing is a notification mechanism to alert the user that the inferior REPL needs attention. * edwin/curren.scm[1.107]: Add per-buffer selection hooks. * edwin/edwin.pkg[1.121], edwin/input.scm[1.95]: Extend handling of simple events to include deletion of non-selected screens. * edwin/comred.scm[1.98], edwin/edwin.pkg[1.120], edwin/input.scm[1.94], edwin/prompt.scm[1.157], edwin/tterm.scm[1.21], edwin/xterm.scm[1.40]: Change KEYBOARD-READ, KEYBOARD-PEEK, and KEYBOARD-PEEK-NO-HANG to intercept "update" and "resize" events and to handle them rather than returning them. Other events with potentially troublesome actions are returned as before. Additionally, several places where input events were discarded have been fixed -- input events must ALWAYS be handled. 1993-07-31 Chris Hanson * runtime/rep.scm[14.32], runtime/rep.scm[14.31], runtime/runtime.pkg[14.188], runtime/wrkdir.scm[14.7]: Make WORKING-DIRECTORY-PATHNAME and *DEFAULT-PATHNAME-DEFAULTS* be different for each CMDL. Change SET-WORKING-DIRECTORY-PATHNAME! so that it only changes the working directory of the Scheme process if the CMDL is the initial top-level REPL. The end result of these changes is to make the working directory of an Edwin inferior REPL buffer be independent of the global working directory. 1993-07-30 Chris Hanson * edwin/intmod.scm[1.57]: Most uses of CURRENT-REPL-BUFFER should not signal an error if there is no such buffer. 1993-07-30 Guillermo J. Rozas * edwin/dos.scm[1.11]: File-attributes fails (returns #f) on `..' in CD file systems. Accommodate. * microcode/ntfs.c[1.5]: Remove check to verify that the first entry of a directory is a subdirectory. Root directories on FAT volumes do not have `.' and `..' entries, so this is not guaranteed to be the case. * microcode/ntscreen.c[1.6]: Fix line-wrapping. It dropped characters and did not invalidate correctly. 1993-07-29 Guillermo J. Rozas * microcode/cmpint.c[1.60]: Trampoline headers have a different tag so the profiler can distinguish them from ordinary cc blocks. * microcode/cmpauxmd/hppa.m4[1.29], microcode/cmpint.c[1.59], microcode/cmpintmd/hppa.h[1.43], microcode/comutl.c[1.23], microcode/unxutl/Attic/ymkfile[1.71], microcode/uxtrap.c[1.22], microcode/uxtrap.h[1.20]: Generalize hook/builtin information for use by trap recovery and PC sampling. * edwin/ansi.scm[1.4]: Add a larger set of capabilities, supported by the ANSI emulator built into the Scheme microcode under Windows NT. 1993-07-28 Chris Hanson * runtime/infutl.scm[1.47], runtime/runtime.pkg[14.187]: New procedure COMPILED-CODE-BLOCK/FILENAME. 1993-07-28 Guillermo J. Rozas * microcode/ntscreen.c[1.5]: Improve Edwin redisplay speed by avoiding repeated calls to InvalidateRect when painting, and by adding insert/delete line capabilities. * microcode/ntio.c[1.6]: Eliminate spurious 0-length write messages. 1993-07-27 Chris Hanson * runtime/runtime.pkg[14.186], runtime/thread.scm[1.17]: Add new procedure ALLOW-THREAD-EVENT-DELIVERY. * runtime/unxprm.scm[1.25]: Don't allocate a new result vector to pass to SELECT-REGISTRY-TEST each time that it is called. Instead, maintain a pool of these vectors and pick one from the pool if it's available. 1993-07-27 Guillermo J. Rozas * microcode/bchmmg.c[9.77], microcode/cmpint.c[1.58], microcode/memmag.c[9.51], microcode/ntenv.c[1.5], microcode/ntio.c[1.5], microcode/ntscreen.c[1.4], microcode/ntsig.c[1.6], microcode/nttop.c[1.5], microcode/nttrap.c[1.4], microcode/ntutl/bch-cl3.lst[1.2], microcode/ntutl/bch-p-nt.lst[1.2], microcode/ntutl/makefile[1.5], microcode/ntutl/scm-cl3.lst[1.2], microcode/ntutl/scm-p-nt.lst[1.2]: NT changes: - Abstract functionality not available in Win32s so it can be provided in a DLL. - Remove some fossil DOS code from ntsig.c. - ntscreen.c can now emulate an ansi.sys terminal. * microcode/cmpauxmd/hppa.m4[1.28]: Fix bug. The val register was not preserved around flonum calls. (flo:+ (flo:sin x) (flo:expt x y)) was failing because the result of flo:expt (close-coded) was left in val around the call to sin, and the stub (and C code, potentially) were clobbering it. 1993-07-23 Nick Papadakis * microcode/unxutl/Attic/y700.lcl[1.8]: Added FLOATING_VECTOR_ARG to support vectors of double floats Added FFI stuf to ymake.lcl for 700's * microcode/prims.h[9.42]: Added FLOATING_VECTOR_ARG to support vectors of double floats 1993-07-22 Chris Hanson * edwin/edwin.pkg[1.119]: Change corresponding to most recent change to "tterm.scm". * edwin/dirunx.scm[1.3], edwin/unix.scm[1.36]: "gzip" now uses ".gz" suffix instead of ".z"; make corresponding changes to Edwin. 1993-07-21 Guillermo J. Rozas * microcode/ntfs.c[1.4]: Fix wrong syscall name. * microcode/ntgui.c[1.4], microcode/ntio.c[1.4], microcode/ntscreen.c[1.3], microcode/ntscreen.h[1.4], microcode/ntsig.c[1.5]: Changes to make terminal-based Edwin work. * microcode/ntutl/makefile[1.4]: Use GUI interface, and not console interface. 1993-07-20 Guillermo J. Rozas * compiler/machines/mips/machin.scm[1.13], compiler/machines/mips/rules1.scm[1.6], compiler/machines/mips/rules3.scm[1.17], compiler/machines/mips/rulflo.scm[1.7], compiler/machines/mips/rulrew.scm[1.6]: Update to match new RTL syntax, and add floating-point vector support. 1993-07-19 Chris Hanson * microcode/x11term.c[1.22]: When drawing cursor on highlighted text, and the cursor color is the same as the foreground color, invert the cursor so that it appears different from the highlighting. 1993-07-18 Guillermo J. Rozas * microcode/Attic/dosconio.c[1.11], microcode/ntgui.c[1.3], microcode/ntsig.c[1.4], runtime/runtime.pkg[14.185]: Allow DOS and NT to share bands. * microcode/ntutl/makefile[1.3]: Update unconfig. * microcode/ntutl/config.bat[1.3]: Copy setup.bat out of ntutl. * microcode/outf.c[1.3]: The WINNT compilers do not pre-define __STDC__. * microcode/ntenv.c[1.4]: Add missing semi-colon. 1993-07-17 Chris Hanson * microcode/ux.h[1.49]: Eliminate #undef's for sony that aren't needed now and cause warnings. 1993-07-17 Guillermo J. Rozas * compiler/machines/i386/rulfix.scm[1.27]: Fix yet another register allocation bug in division. * microcode/Attic/dostrap.c[1.4]: Integer divide by zero was not being signalled correctly. 1993-07-16 Guillermo J. Rozas * microcode/Attic/dosconio.c[1.10]: Set up an appropriate interrupt mask for the DOS high-priority interrupt. * compiler/etc/comfiles.scm[1.4], compiler/etc/disload.scm[1.7]: Kludge to make defaulting of directory work under DOS (and NT?). * compiler/machines/i386/decls.scm[1.5], compiler/machines/i386/lapgen.scm[1.23], compiler/machines/i386/machin.scm[1.18], compiler/machines/i386/rules1.scm[1.18], compiler/machines/i386/rules2.scm[1.6], compiler/machines/i386/rules3.scm[1.26], compiler/machines/i386/rulfix.scm[1.26], compiler/machines/i386/rulflo.scm[1.20], compiler/machines/i386/rulrew.scm[1.12]: Update back end to reflect changes to the RTL and to handle floating-point vectors. * edwin/edwin.pkg[1.118.1.2]: tterm needs have-select? from the runtime system. * edwin/tterm.scm[1.20]: Make read-event work on systems without select. * microcode/Attic/dostop.c[1.6], microcode/nttop.c[1.4]: Update the copyright. * edwin/edwin.pkg[1.118.1.1]: Merge with 1.118. * edwin/dosproc.scm[1.3]: Add new dummy predicates needed by the rest of edwin. 1993-07-09 Guillermo J. Rozas * compiler/rtlbase/rtlcon.scm[4.27], compiler/rtlgen/rgcomb.scm[4.20], compiler/rtlgen/rgrval.scm[4.22]: Fix a bug in closure bumping. The code was written in a hybrid of locative-level rtl and "real" rtl. 1993-07-08 Guillermo J. Rozas * compiler/rtlgen/rgcomb.scm[4.19]: Fix bug in last edit. I used rtl:make-offset instead of rtl:locative-offset. * compiler/machines/bobcat/lapgen.scm[4.49]: Fix lurking bug found in the 386 back end. 1993-07-07 Guillermo J. Rozas * compiler/machines/i386/compiler.pkg[1.16], compiler/machines/mips/compiler.pkg[1.14]: Export rtl:bump-closure. * compiler/machines/i386/dassm1.scm[1.6], compiler/machines/mips/dassm1.scm[1.3]: Improve disassembler output of compiled code blocks. * runtime/runtime.pkg[14.184], runtime/thread.scm[1.16]: Don't use select-registry primitives unless the operating system supports the `select' system Call. * compiler/machines/spectrum/rulrew.scm[1.11]: Fix bug with unexpected constants appearing in the middle of expressions. * microcode/Attic/dosenv.c[1.5]: Missing arg list. 1993-07-06 Chris Hanson * edwin/comred.scm[1.97]: Try not to clear the message unnecessarily when processing input events. 1993-07-06 Guillermo J. Rozas * compiler/machines/bobcat/rules3.scm[4.40]: Fix an out-of-range error because the @PCRXS addressing mode has a limited range. * compiler/machines/bobcat/compiler.pkg[1.44], compiler/machines/bobcat/lapgen.scm[4.48], compiler/machines/bobcat/machin.scm[4.31], compiler/machines/bobcat/make.scm-68040[4.89], compiler/machines/bobcat/rules1.scm[4.38], compiler/machines/bobcat/rules2.scm[4.14], compiler/machines/bobcat/rules3.scm[4.39], compiler/machines/bobcat/rules4.scm[4.14], compiler/machines/bobcat/rulrew.scm[1.6]: - Update to match change in RTL introduced to improve array indexing. - Add floating-vector support. - Add top-level code compression support. 1993-07-03 Guillermo J. Rozas * compiler/machines/bobcat/dassm1.scm[4.18]: Write block description more clearly. * compiler/rtlopt/rcompr.scm[1.14]: Update a use of rtl:make-offset that I missed in the last set of edits. 1993-07-02 Guillermo J. Rozas * compiler/machines/spectrum/dassm2.scm[4.20]: bit-string-andc-bang cannot be integrated where it is used. Fix the heuristic for detection of external labels and pc-relative addressing. 1993-07-01 Chris Hanson * runtime/runtime.pkg[14.183], runtime/thread.scm[1.15]: Reimplement `thread-dead?' because Edwin needs it. * microcode/Attic/dosenv.c[1.4], microcode/ntenv.c[1.3], microcode/osenv.h[1.4], microcode/prosenv.c[1.9], microcode/uxenv.c[1.11]: Change interfaces of OS_real_time_clock and OS_process_clock to return double instead of clock_t. This combined with changes in the implementations of these procedures should prevent wraparound of these clocks. * runtime/debug.scm[14.34], runtime/error.scm[14.34], runtime/runtime.pkg[14.182], runtime/thread.scm[1.14]: Added mechanism to stop threads and restart them. When a derived-thread error is signalled, the signalling thread stops itself to allow debugging to occur. The debugger recognizes such stopped threads and restarts them appropriately when the user requests a continuation. Also changed the handling of the thread timer to vary the period of the timer in cases where the next desired timer event is longer than the default timer interval. 1993-07-01 Guillermo J. Rozas * compiler/etc/disload.scm[1.6]: Addressing-granularity means something different. * compiler/etc/disload.scm[1.5], compiler/etc/disload.scm[1.4]: Fix typo in last edit. * compiler/etc/disload.scm[1.3]: Compute addressing-granularity rather than default to 4. * compiler/machines/spectrum/rulflo.scm[4.38]: Fix a register allocator bug in float-load/offset, and add yet another floating-point pattern. * compiler/machines/spectrum/compiler.pkg[1.42]: Changes to support better array indexing. * compiler/rtlopt/rerite.scm[1.3]: Add rewrite rule for instances of byte-offset-address used for closure bumping. * compiler/rtlopt/rcse1.scm[4.22], compiler/rtlopt/rcsesr.scm[4.3]: Reflect changes to OFFSET and friends. * compiler/rtlopt/rcompr.scm[1.13]: Handle some more cases. * compiler/rtlgen/rgcomb.scm[4.18], compiler/rtlgen/rgrval.scm[4.21]: rtl offsets have changed. * compiler/rtlgen/opncod.scm[4.60]: Add open coding for floating-vector primitives vector-cons-style primitives flonum-atan2 * compiler/rtlbase/rtlcon.scm[4.26], compiler/rtlbase/rtlexp.scm[4.19], compiler/rtlbase/rtlty1.scm[4.21], compiler/rtlbase/rtlty2.scm[4.12]: Diddle with locatives to allow index addressing modes. * compiler/machines/spectrum/rulrew.scm[1.10]: Fix a common float reference. * compiler/machines/spectrum/rulflo.scm[4.37]: Add floating-point vector support, and support for trig and friends. * compiler/machines/spectrum/rulfix.scm[4.45]: Add handlers for a few common cases. * compiler/machines/spectrum/rules3.scm[4.40]: Improve primitive calling code. Handle allocation primitives. * compiler/machines/spectrum/rules1.scm[4.35]: Update rules to handle new OFFSET and friends RTL addressing modes. Add improved generation of common patterns. * compiler/machines/spectrum/rgspcm.scm[4.3]: Add handlers for string-allocate, vector-cons, and floating-vector-cons. * compiler/machines/spectrum/machin.scm[4.29]: More primitives are handled. Redo floating-point sizing. * compiler/machines/spectrum/lapopt.scm[1.13]: Teach the peephole optimizer to handle DEPI, and friends, and some FLOPs. * compiler/machines/spectrum/lapgen.scm[4.44]: Add new hooks (invoke-primitive, allocation and flonum primitives). Reorder registers so priority is given to the C callee saves registers. * compiler/base/switch.scm[4.23]: Add compiler:assume-safe-fixnums? * compiler/base/make.scm[4.99]: New array indexing code. Open coding of floating-point vector operations. Special handling of string-allocate, vector-cons, and floating-vector-cons. Special handling of flo:sin, etc. on the Snakes. Better primitive calling on the Snakes. * compiler/base/macros.scm[4.13]: Fix bug in rtl-common which introduced a bound-variable conflict if a slot has the same as the item being defined. * compiler/back/lapgn2.scm[1.20]: Fix bug in load-machine-register!: If machine-register is a floating-point register, it is not OK to ask for any alias. * compiler/etc/disload.scm[1.2]: Allow disload to load into a compiler-less image. * compiler/machines/spectrum/dassm1.scm[4.18]: Pretty up the output. 1993-06-30 Guillermo J. Rozas * compiler/etc/comfiles.scm[1.3]: Make check-stage more tolerant of missing files. * microcode/cmpauxmd/hppa.m4[1.27], microcode/cmpintmd/hppa.h[1.42]: Add hooks for faster primitive invocation, faster allocation of vectors, strings, and floating-point vectors, and for non-boxing flonum operations. 1993-06-29 Chris Hanson * runtime/intrpt.scm[14.15]: Eliminate unnecessary declaration. * sf/gconst.scm[4.16]: Rename global-2 interrupt bit to after-gc, and add new mask timer-ok. * microcode/unxutl/Attic/makefile[1.27]: Change *.touch to *.tch in "clean" rule. * runtime/boot.scm[14.6], runtime/gc.scm[14.9], runtime/gcdemn.scm[14.6], runtime/hash.scm[14.5], runtime/intrpt.scm[14.14], runtime/runtime.pkg[14.181], runtime/version.scm[14.163]: This runtime system requires microcode version 11.133 or later. Implement a new interrupt that is signalled after each GC and which runs at roughly the same priority as character interrupts. All GC daemons, with the exception of the object hash daemon, run in this interrupt handler rather than during the GC proper. This allows GC daemons to allocate storage and prevents GC daemons from running during critical sections. * microcode/boot.c[9.81], microcode/fixobj.h[9.32], microcode/intrpt.h[1.12], microcode/utils.c[9.59], microcode/version.h[11.133]: Redefine the GLOBAL-2 interrupt bit to be the interrupt that is signalled after each GC. Change the interrupt code to allow the runtime system to specify what interrupt mask should be installed immediately before an interrupt handler is invoked. This allows the runtime system to override the simple prioritized masking being performed by the microcode. * microcode/utabmd.scm[9.67]: Add slot in fixed objects vector for interrupt masks. 1993-06-29 Guillermo J. Rozas * compiler/machines/C/machin.scm[1.3], compiler/machines/i386/machin.scm[1.17], compiler/machines/mips/machin.scm[1.12], compiler/machines/sparc/machin.scm[1.2], compiler/machines/vax/machin.scm[4.12]: Disable some primitives until the back end learns how to handle them. * compiler/machines/alpha/machin.scm[1.6]: Change flonum addressing units. * compiler/machines/alpha/machin.scm[1.5], compiler/machines/bobcat/machin.scm[4.30]: Disable some primitive open coding until the back end is taught how to do it. * compiler/base/scode.scm[4.9], compiler/fgopt/simapp.scm[4.7]: Fix shadowing problem. * compiler/fgopt/simapp.scm[4.6]: Fix check that only allows primitives and compiled procedures. Any procedures are legal here. 1993-06-28 Chris Hanson * microcode/unxutl/Attic/ynws3250.lcl[1.3]: Define "clean.world". * microcode/m/Attic/mips.h[1.8]: Use "-std" switch to make compiler ANSI. * microcode/outf.c[1.2]: Generalize variable number of arguments code to work in non-ANSI implementations. * microcode/outf.h[1.3]: Don't include because it might not be available in a given implementation. Don't declare voutf because it's not referred to and it requires . * microcode/ux.h[1.48]: On Sony, defines ioctl. * microcode/bchdrn.c[1.6]: Fix incorrect declaration: static declarations cannot be local, and ANSI declaration arglists cannot be empty. 1993-06-25 Guillermo J. Rozas * runtime/packag.scm[14.16]: Finish fixing the problem. * runtime/packag.scm[14.15]: Fix spurious I/O introduced in the last edit. * compiler/machines/spectrum/lapopt.scm[1.12]: Fix problem: Nullified branch instruction cannot be moved before an instruction that the branch tensioner may expand into multiple instructions. * microcode/unxutl/Attic/y700.lcl[1.7]: Minor problems in last update. * runtime/version.scm[14.162]: Make the order of invocation of gc-daemons the same as the order of "declaration", and make the rehash daemon be the first. * runtime/gcdemn.scm[14.5]: Change gc-daemons and secondary-gc-daemons into queues so that the daemons are invoked in the order in which they are "declared". * runtime/queue.scm[14.3]: Add queue->list and queue->list/unsafe operations. * runtime/make.scm[14.47]: Reorder initializations so that hash is initialized before primitive-io, to make the rehash GC daemon the first one to execute. * microcode/utils.c[9.58]: Reorder some stuff so that when a boot-time error fails because of an unbound variable, the stack trace prints the name of the variable. 1993-06-24 Guillermo J. Rozas * microcode/unxutl/Attic/ymkfile[1.70]: Fix some capitalization problems. * microcode/intext.c[1.4]: Fix copyright. * microcode/boot.c[9.80]: define FILE_READABLE. * microcode/primutl.c[9.60]: Fix bug in search_for_primitive. If the second allocate_marked_vector call aborted because of a GC, the global variables were left in an inconsistent state. * microcode/unxutl/Attic/ymkfile[1.69]: Fix bug if COMPILED_OBJECTS is empty. * microcode/dosutl/Attic/makefile[1.6], microcode/ntutl/makefile[1.2]: Rename hard-params to hard-par, and improve "make clean" * microcode/dosutl/Attic/config.bat[1.2], microcode/ntutl/config.bat[1.2]: Remove echo. * microcode/unxutl/Attic/cf-dist.h[1.16]: Update some defaults. * microcode/outf.h[1.2]: Add ansidecl.h to define DOTS and friends. * microcode/s/Attic/dos.m4[1.6]: Fix comment. * microcode/s/Attic/bsd4-2.h[1.7], microcode/s/Attic/bsd4-3.h[1.5], microcode/s/Attic/irix4.h[1.3], microcode/s/Attic/mach4-3.h[1.3], microcode/s/Attic/newsos5.h[1.4], microcode/s/Attic/nextos.h[1.6], microcode/s/Attic/sunos3.h[1.4], microcode/s/Attic/sunos4.h[1.4], microcode/s/Attic/sysv3.h[1.4], microcode/s/Attic/sysv4.h[1.3], microcode/s/Attic/ultrix.h[1.14], microcode/s/Attic/ultrix.m4[1.6], microcode/s/Attic/umax.h[1.5]: Fix bug in automatic edit. * microcode/s/Attic/dos.m4[1.5]: Change RCS header. * microcode/copyrigh.c[1.2]: Change to new format * microcode/Attic/dosasutl.asm[1.3], microcode/Attic/dosexcp.h[1.3], microcode/Attic/dosfg.c[1.3], microcode/Attic/dosfile.c[1.2], microcode/Attic/dosi10.asm[1.2], microcode/Attic/dosio.h[1.2], microcode/Attic/doskbd.h[1.2], microcode/Attic/dosselec.h[1.2], microcode/Attic/dosterm.h[1.2], microcode/Attic/dostop.h[1.2], microcode/Attic/dostrap.h[1.2], microcode/Attic/dostterm.c[1.2], microcode/Attic/dosutil.c[1.2], microcode/Attic/dosutil.h[1.2], microcode/array.h[9.35], microcode/bchdrn.h[1.5], microcode/bchgcl.c[9.45], microcode/bchpur.c[9.59], microcode/bignmint.h[1.3], microcode/bigprm.c[1.3], microcode/bkpt.c[9.28], microcode/bkpt.h[9.29], microcode/bltdef.h[1.3], microcode/breakup.c[9.24], microcode/char.c[9.30], microcode/cmpint.h[10.5], microcode/comlin.c[1.8], microcode/comlin.h[1.6], microcode/copyrigh.c[1.1], microcode/critsec.h[1.3], microcode/dfloat.c[1.4], microcode/dmpwrld.c[9.37], microcode/dstack.h[1.6], microcode/edwin.h[1.6], microcode/extern.c[9.33], microcode/fixobj.h[9.31], microcode/flonum.c[9.40], microcode/future.c[9.28], microcode/futures.h[9.28], microcode/generic.c[9.37], microcode/gpio.c[1.10], microcode/history.h[9.28], microcode/hunk.c[9.28], microcode/image.h[9.24], microcode/intercom.c[9.29], microcode/load.c[9.32], microcode/locks.h[9.25], microcode/lookprm.c[1.9], microcode/lookup.h[9.48], microcode/missing.c[9.30], microcode/osctty.h[1.3], microcode/osfile.h[1.2], microcode/osproc.h[1.8], microcode/ospty.h[1.3], microcode/ossig.h[1.3], microcode/ostop.h[1.4], microcode/ostty.c[1.3], microcode/ostty.h[1.4], microcode/ppband.c[9.45], microcode/prim.c[9.36], microcode/prim.h[9.43], microcode/prims.h[9.41], microcode/prmcon.h[1.2], microcode/prosfile.c[1.6], microcode/prosproc.c[1.13], microcode/prospty.c[1.2], microcode/prostty.c[1.5], microcode/pruxfs.c[9.51], microcode/pruxsock.c[1.7], microcode/psbtobin.c[9.49], microcode/regex.c[1.13], microcode/regex.h[1.6], microcode/rgxprim.c[1.10], microcode/sample.c[9.25], microcode/scode.h[9.25], microcode/sdata.h[9.32], microcode/sgraph.h[1.6], microcode/starbase.c[1.6], microcode/starbasx.c[1.5], microcode/step.c[9.31], microcode/string.c[9.36], microcode/syntax.c[1.22], microcode/syntax.h[1.8], microcode/trap.h[9.43], microcode/tterm.c[1.3], microcode/typename.txt[1.3], microcode/usrdef.h[9.39], microcode/uxctty.c[1.12], microcode/uxfile.c[1.7], microcode/uxio.h[1.3], microcode/uxproc.c[1.15], microcode/uxproc.h[1.4], microcode/uxsock.h[1.5], microcode/uxterm.h[1.4], microcode/uxtop.h[1.2], microcode/uxtty.c[1.9], microcode/uxutil.c[1.5], microcode/uxutil.h[1.2], microcode/winder.h[9.25], microcode/x11.h[1.15], microcode/x11color.c[1.4], microcode/x11graph.c[1.30], microcode/x11term.c[1.21], microcode/zones.h[9.25]: Fixing the RCS header * microcode/interp.c[9.76]: Remove left-over printfs. * microcode/cmpauxmd/vax.m4[1.2], microcode/dosutl/Attic/bch-prm.lst[1.5], microcode/dosutl/Attic/scm-prm.lst[1.5], microcode/s/Attic/bsd4-2.h[1.6], microcode/s/Attic/bsd4-3.h[1.4], microcode/s/Attic/irix4.h[1.2], microcode/s/Attic/mach4-3.h[1.2], microcode/s/Attic/newsos5.h[1.3], microcode/s/Attic/nextos.h[1.5], microcode/s/Attic/sunos3.h[1.3], microcode/s/Attic/sunos4.h[1.3], microcode/s/Attic/sysv3.h[1.3], microcode/s/Attic/sysv4.h[1.2], microcode/s/Attic/ultrix.h[1.13], microcode/s/Attic/ultrix.m4[1.5], microcode/s/Attic/umax.h[1.4]: Fix RCS header. * microcode/Attic/dosint10.c[1.8]: Flush spurious ^Z at the end of the file. * microcode/Attic/dosio.c[1.6], microcode/Attic/msdos.h[1.5], microcode/Attic/oscond.h[1.14], microcode/Attic/posixtyp.h[1.8], microcode/ansidecl.h[1.3], microcode/bchdmp.c[9.70], microcode/bchgcc.h[9.52], microcode/bchmmg.c[9.76], microcode/bchutl.c[1.3], microcode/bignum.c[9.40], microcode/boot.c[9.79], microcode/cmpauxmd/i386.m4[1.29], microcode/cmpgc.h[1.24], microcode/cmpint.c[1.57], microcode/cmpintmd/alpha.h[1.5], microcode/cmpintmd/c.h[1.3], microcode/cmpintmd/hppa.h[1.41], microcode/cmpintmd/i386.h[1.21], microcode/cmpintmd/mc68k.h[1.35], microcode/cmpintmd/mips.h[1.18], microcode/cmpintmd/vax.h[1.8], microcode/debug.c[9.44], microcode/dosutl/Attic/bch-ztc.lst[1.6], microcode/dosutl/Attic/makefile[1.5], microcode/dosutl/Attic/scm-ztc.lst[1.6], microcode/error.c[1.5], microcode/extern.h[9.50], microcode/fasload.c[9.68], microcode/findprim.c[9.47], microcode/gc.h[9.33], microcode/gccode.h[9.48], microcode/gcloop.c[9.41], microcode/hppacach.c[1.9], microcode/hppanwca.c[1.2], microcode/interp.c[9.75], microcode/interp.h[9.37], microcode/liarc.h[1.2], microcode/lookup.c[9.52], microcode/memmag.c[9.50], microcode/option.c[1.33], microcode/os.h[1.4], microcode/osscheme.c[1.7], microcode/osscheme.h[1.8], microcode/prmcon.c[1.2], microcode/psbmap.h[9.39], microcode/ptrvec.c[1.2], microcode/purify.c[9.49], microcode/purutl.c[9.44], microcode/returns.h[9.41], microcode/scheme.h[9.35], microcode/sgraph_a.c[1.15], microcode/sgx.c[1.8], microcode/sgx11.c[1.3], microcode/stack.h[9.34], microcode/term.c[1.6], microcode/transact.c[1.2], microcode/unxutl/Attic/cf-dist.h[1.15], microcode/unxutl/Attic/config[1.19], microcode/unxutl/Attic/makefile[1.26], microcode/unxutl/Attic/y300.lcl[1.24], microcode/unxutl/Attic/y700.lcl[1.6], microcode/unxutl/Attic/y800.lcl[1.2], microcode/unxutl/Attic/ymkfile[1.68], microcode/unxutl/Attic/ynws3250.lcl[1.2], microcode/utils.c[9.57], microcode/ux.h[1.47], microcode/uxsig.c[1.26], microcode/version.h[11.132], microcode/wind.c[1.5], microcode/xdebug.c[9.32]: Global NT merge. * microcode/nt.h[1.3], microcode/ntgui.h[1.3], microcode/ntio.h[1.4], microcode/ntscreen.h[1.3]: Fix inclusion symbol. * microcode/ntterm.h[1.3], microcode/nttop.h[1.3]: Fix date, RCS header, and inclusion symbol. * microcode/ntsig.c[1.3], microcode/ntsys.h[1.2]: Fix date and inclusion symbol. * microcode/ntscreen.c[1.2], microcode/ntscreen.h[1.2]: Add copyright and RCS header. * microcode/ntio.c[1.3], microcode/ntio.h[1.3], microcode/ntsys.c[1.2], microcode/nttop.c[1.3], microcode/nttrap.c[1.3], microcode/nttrap.h[1.3], microcode/nttty.c[1.3]: Fix date. * microcode/ntgui.c[1.2], microcode/ntgui.h[1.2]: Add copyright. * microcode/ntfile.c[1.3], microcode/ntfs.c[1.3], microcode/nttterm.c[1.2]: Fix date and RCS header. * microcode/ntasutl.asm[1.2]: Fix RCS header and date. * microcode/ntenv.c[1.2], microcode/ntfile.c[1.2], microcode/ntfs.c[1.2], microcode/ntio.c[1.2], microcode/ntio.h[1.2], microcode/ntsig.c[1.2], microcode/ntterm.h[1.2], microcode/nttop.c[1.2], microcode/nttop.h[1.2], microcode/nttrap.c[1.2], microcode/nttrap.h[1.2], microcode/nttty.c[1.2]: Global NT merge * microcode/nt.h[1.2]: First NT global merge. 1993-06-18 Guillermo J. Rozas * runtime/unpars.scm[14.31]: Teach the unparser to print floating-point vectors. 1993-06-17 Guillermo J. Rozas * compiler/etc/comcmp.scm[1.4]: Make it handle the new constants used with DEFINE-MULTIPLE. 1993-06-16 Guillermo J. Rozas * runtime/io.scm[14.35]: Fix bug in translated output where by doing a newline when the output buffer is full would cause an infinite loop. 1993-06-15 Guillermo J. Rozas * microcode/unxutl/Attic/makefile[1.25]: Remove compinit.h . * microcode/Attic/config.h[9.80], microcode/Attic/config.h[9.79]: Add support for C back end. * microcode/cmpauxmd/c.c[1.3]: Some versions of realloc (e.g. SunOS4) do not understand realloc(NULL, size). * microcode/ux.h[1.46], microcode/uxsock.c[1.11]: SunOS 4 conditionalization. * microcode/unxutl/Attic/ymkfile[1.67]: Add liarc.touch to the compinit.h dependencies and construction. 1993-06-12 Guillermo J. Rozas * microcode/cmpintmd/hppa.h[1.40]: GCC now supports shared libraries in HP-UX. The closure hack has to be used with it as well. 1993-06-11 Jason Wilson * compiler/machines/C/TODO[1.3]: add two more entries. 1993-06-10 Guillermo J. Rozas * compiler/machines/C/lapgen.scm[1.4]: Fix renamed variables. * compiler/machines/C/lapgen.scm[1.3]: Fix new problems with the "register allocator". Floating-point values cannot be allocated to ordinary variables and viceversa. * runtime/packag.scm[14.14]: Fix incorrect variable name. * runtime/packag.scm[14.13], runtime/runtime.pkg[14.180], runtime/runtime.pkg[14.179]: Add support for code compiled to C. * compiler/machines/C/rulrew.scm[1.2]: Fix incorrect use of make-machine-register. It should be make-machine-constant. 1993-06-10 Jason Wilson * compiler/machines/C/machin.scm[1.2]: Add interpreter register FREE. * compiler/machines/C/cout.scm[1.4]: Handle random non-pointers with TRUE and FALSE tags. * compiler/machines/C/cout.scm[1.3]: Handle false and empty list as pathname directories. 1993-06-09 Jason Wilson * compiler/machines/C/TODO[1.2], microcode/cmpintmd/c.h[1.2]: Add correct date. * microcode/compinit.c[1.2], microcode/comutl.c[1.22], microcode/unxutl/Attic/ymkfile[1.66]: Merge in C back end changes. * microcode/boot.c[9.78], microcode/const.h[9.42], microcode/option.c[1.32], microcode/unxutl/Attic/makefile[1.24]: Add support for booting the C back end. * microcode/unxutl/Attic/makefile[1.23]: ymake.local automatically generated to avoid standard loss. * compiler/machines/C/lapgen.scm[1.2]: Fix standard-target! and standard-move-to-target! * compiler/machines/C/cout.scm[1.2]: Make sure that there is a valid pathname directory before taking its last component. * microcode/cmpauxmd/c.c[1.2]: Add scheme_hook_{low,high}, needed by HP-PA trap handling code. * runtime/make.scm[14.46]: Change "LiarC_" to "runtime_" 1993-06-08 Guillermo J. Rozas * microcode/hppacach.c[1.8]: Remove noise when printing. * microcode/unxutl/Attic/makefile[1.22]: Add top-level entry for hppacache. * microcode/hppacach.c[1.7]: Update date. * microcode/unxutl/Attic/ymkfile[1.65], microcode/ux.h[1.45]: Linux changes. * microcode/intext.h[1.4]: Preserve errno around dstack operations. * microcode/hppacach.c[1.6]: Rename -update option to -add. Add -replace option. * microcode/hppacach.c[1.5]: Fix bug. Missing &. I wonder how this ever worked. 1993-06-04 Chris Hanson * microcode/hppacach.c[1.4]: Supply missing argument to fprintf. * microcode/hooks.c[9.51]: When stack is erased by WITHIN-CONTROL-POINT, the history information stored in Prev_Restore_History_* must be reset. 1993-04-29 Chris Hanson * runtime/intrpt.scm[14.13]: Change keyboard interrupt code so that all interrupt activity occurs inside the event transmitted to the console port's owner. This stuff can't be done directly by the interrupt handler because it can be executed when there is no thread at all. 1993-04-28 Chris Hanson * edwin/xterm.scm[1.39]: Don't use BLOCK-THREAD-EVENTS to prevent the previewer from running -- there's a window in which an event can be delivered, causing a character to be queued; but READ-EVENT doesn't look at the queue after it's in that state. * runtime/thread.scm[1.12]: Fix typo in last change. 1993-04-28 Hal Abelson * runtime/thread.scm[1.13]: Always restore state of BLOCK-EVENTS? flag in a thread when returning from SUSPEND-CURRENT-THREAD. 1993-04-27 Chris Hanson * microcode/array.c[9.45]: Delete extraneous semicolon. * microcode/m/Attic/hp9k300.h[1.11], microcode/m/Attic/hp9k400.h[1.7]: Update for HP-UX 9.0. * microcode/uxio.c[1.29], microcode/uxio.c[1.28]: Fix typo. * microcode/x11base.c[1.50]: Fix bug caused by error in Xlib man page (and all of the books I've seen too): Xlib IO error handlers take only one arg, not two. * microcode/uxio.c[1.27]: Fix oversight in UX_select_input that was detected by C compiler. * edwin/editor.scm[1.227], edwin/edwin.pkg[1.118], edwin/intmod.scm[1.56], edwin/make.scm[3.78], edwin/process.scm[1.29], edwin/tterm.scm[1.19], edwin/xterm.scm[1.38]: These changes require microcode 11.131 and runtime 14.161. The changes are a redesign of the keyboard input, subprocess, and inferior thread communication mechanisms to use the new `select' interface support. The changes should not be visible to users or customizers. * edwin/fileio.scm[1.117]: Use CHANNEL-READ-BLOCK instead of CHANNEL-READ. * runtime/io.scm[14.34], runtime/runtime.pkg[14.177], runtime/thread.scm[1.10], runtime/unxprm.scm[1.24], runtime/version.scm[14.161], runtime/x11graph.scm[1.28]: This runtime requires microcode version 11.131 or later. Edwin versions prior to 3.78 will not work correctly with this runtime. The aim of these changes is to provide a central mechanism to detect input on all input channels, and thus to prevent a single thread from performing a blocking input operation that locks out other threads that can do useful work. Now, in places where a thread would block on an input device, it instead registers its interest in the device with a centralized registry, and suspends. If all threads in the system are suspended, then Scheme blocks by calling `select' and waiting for something interesting to happen. * Introduce new procedures that use the `select' system call to provide a mechanism to monitor input availability on many input devices simultaneously: ADD-TO-SELECT-REGISTRY! CHANNEL-DESCRIPTOR-FOR-SELECT DEREGISTER-INPUT-THREAD-EVENT MAKE-SELECT-REGISTRY PERMANENTLY-REGISTER-INPUT-THREAD-EVENT REGISTER-INPUT-THREAD-EVENT REMOVE-FROM-SELECT-REGISTRY! SELECT-DESCRIPTOR SELECT-REGISTRY-TEST TEST-FOR-INPUT-ON-CHANNEL TEST-FOR-INPUT-ON-DESCRIPTOR These procedures require the operating system to support `select' or some equivalent. Calling them in another operating system, e.g. DOS, will cause an error to be signalled. * Delete old `select' mechanism procedures which are no longer used or supported (these will be deleted from the microcode in the future): CHANNEL-REGISTER CHANNEL-UNREGISTER CHANNEL-REGISTERED? CHANNEL-SELECT-THEN-READ * Modify CHANNEL-READ to automatically call TEST-FOR-INPUT-ON-CHANNEL if the `select' system call is supported by the operating system. One consequence of this is that CHANNEL-READ can return #F for channels that are in "blocking" mode; if you don't want #F you must call CHANNEL-READ-BLOCK instead (this was always a good idea anyway). * Change X graphics devices to use the new select machinery to preview the event stream from the X server. -------------------- The following changes are not part of the general aim stated above, although most of them either derive from it or support it: * Add new procedures to the "threads" package: (THREADS-LIST) returns a list of all thread objects, including dead threads, that haven't yet been garbage collected. (THREAD-EXECUTION-STATE thread) returns the "execution state" of a thread, a symbol. * Add code to the threads package that attempts to clean up all attachments of the thread when it is exited. This is a generalization of previous patches generated by GJR and GJS for 6.001. * Plug several holes in the thread event delivery mechanism which allowed the threads package to get into states where events were not delivered to their threads. * SUSPEND-CURRENT-THREAD now returns the event that caused the thread the be resumed; previously it had an unspecified value. If several events are delivered before resumption, the event returned is the first one that is not #F, or #F if all of the events were #F. * Fix several typos that caused errors when generating reports for conditions in the threads package. * runtime/error.scm[14.33]: Fix two bugs related to inheritance: CONDITION-PREDICATE and CONDITION-ACCESSOR did not allow a condition of an inherited type as an argument, and MAKE-CONDITION-TYPE would incorrectly compute the number of fields in a condition type which overrode one of the field names in its generalization. * microcode/pruxio.c[1.4], microcode/uxio.c[1.26], microcode/uxselect.h[1.5], microcode/version.h[11.131], microcode/x11base.c[1.49]: These changes affect any code using the SELECT-REGISTRY-TEST primitive. Runtime 14.161 requires this microcode revision or later, but older bands can run over this microcode. * Change interface to SELECT-REGISTRY-TEST. Order or second and third arguments is reversed. Third argument is changed from a select registry to a vector. Primitive returns a nonnegative integer indicating the number of descriptors that were stored in the vector, or a negative integer indicating that nothing is stored and that another interesting condition holds. * Add new primitive SELECT-DESCRIPTOR, a simplified version of SELECT-REGISTRY-TEST that works for a single descriptor and does not require consing in the interface. 1993-04-27 Hal Abelson * runtime/runtime.pkg[14.178], runtime/thread.scm[1.11]: Add new procedures REGISTER-TIMER-THREAD and DEREGISTER-TIMER-THREAD to allow asynchronous delivery of timer events. 1993-04-20 Jason Wilson * edwin/tagutl.scm[1.50]: "Fixed" a bug in tags-search having to do with the case-sensitivty arguement. we now accept this argument but do nothing with it. This should be fixed at some point. 1993-04-19 Chris Hanson * microcode/Attic/dosio.c[1.5], microcode/osterm.h[1.10], microcode/prosterm.c[1.13], microcode/uxterm.c[1.22], runtime/io.scm[14.33], runtime/runtime.pkg[14.176]: Add primitives to set the baud rate of a terminal. 1993-04-15 Chris Hanson * edwin/dirunx.scm[1.2], edwin/unix.scm[1.35]: Add support for "gzipped" files. * microcode/unxutl/Attic/makefile[1.21]: Expand rule for "locked" to include subdirectories. 1993-04-06 Chris Hanson * microcode/Attic/dosio.c[1.4], microcode/osio.h[1.8], microcode/prosio.c[1.8], microcode/pruxio.c[1.3], microcode/pruxio.c[1.2], microcode/uxio.c[1.25], microcode/uxselect.h[1.4], microcode/version.h[11.130], microcode/x11base.c[1.48]: Implement primitive to detect availability of `select' system call. 1993-04-04 Michael R. Blair * microcode/list.c[9.31]: Added document strings for primitives. 1993-04-02 Chris Hanson * edwin/schmod.scm[1.33]: Add declarations to ignore unused variables. 1993-04-01 Chris Hanson * edwin/schmod.scm[1.32], edwin/schmod.scm[1.31]: Add M-x show-parameter-list to Scheme mode as M-A. * microcode/m/Attic/hp9k800.h[1.12]: Update for HP-UX 9.01. 1993-03-31 Michael R. Blair * microcode/hooks.c[9.50]: Add request-interrupts! primitive and re-document interrupt mask primitives. 1993-03-28 Guillermo J. Rozas * compiler/machines/i386/rules1.scm[1.17]: Add missing B suffix to use of MOVZX instruction. 1993-03-25 Jason Wilson * compiler/documentation/porting.guide[1.25]: fixed a misleading DEFINE-INSTRUCTION example. 1993-03-24 Guillermo J. Rozas * compiler/fggen/canon.scm[1.15]: Fix bug in canonicalize/lambda. Lambda expressions that need the binding of #[environment] cannot be compiled separately. 1993-03-23 Chris Hanson * microcode/cmpgc.h[1.23]: Work around what is apparently a bug in the HP-UX 9.01 C compiler for the S700 machines. 1993-03-22 Chris Hanson * microcode/s/Attic/hpux.h[1.10]: *** empty log message *** 1993-03-17 Chris Hanson * runtime/defstr.scm[14.24]: Improve error message for NAMED option without TYPE option. 1993-03-17 Guillermo J. Rozas * microcode/unxutl/Attic/ymkfile[1.64]: rm in install causes no problems. * microcode/cmpauxmd/hppa.m4[1.26]: Remove early stack-pop instructions. 1993-03-16 Guillermo J. Rozas * runtime/debug.scm[14.33]: Add ``M'' command to print the stack frame in raw format. * microcode/cmpauxmd/hppa.m4[1.25]: Declare the assembly hook region for the trap handler, and change the flonum return convention so that some state is available in case of a trap. * microcode/uxtrap.c[1.21], microcode/uxtrap.h[1.19]: Teach continue_from_trap about assembly hooks. * runtime/x11graph.scm[1.27]: After disk-restore, the display list must be flushed. 1993-03-15 Chris Hanson * microcode/uxio.c[1.24]: Work around stupid restrictions on aggregate initializers. 1993-03-15 Guillermo J. Rozas * microcode/termcap.c[1.5], microcode/termcap.c[1.4]: Remove more alpha problems. 1993-03-14 Guillermo J. Rozas * microcode/termcap.c[1.3]: Move includes before code so that external decls for a few procedures are visible before the compiler infers decls. * microcode/uxtrap.h[1.18]: New alpha trap definitions. 1993-03-13 Jason Wilson * runtime/load.scm[14.42]: Fix magic constant in load/purification-root. 1993-03-11 Chris Hanson * microcode/memmag.c[9.49]: Automatically disable GC reference trace at end of GC. 1993-03-10 Chris Hanson * microcode/unxutl/Attic/ymkfile[1.63], microcode/uxio.c[1.23], microcode/uxselect.h[1.3], microcode/version.h[11.129], microcode/x11base.c[1.47]: Implement new interface to `select' system call, which allows construction of "registries" of file descriptors, which can then be passed in as arguments. * microcode/fasdump.c[9.55], microcode/gccode.h[9.47], microcode/gcloop.c[9.40], microcode/memmag.c[9.48], microcode/purify.c[9.48]: Add new primitive GC-TRACE-REFERENCES which will compute the set of objects that point to a given object. This primitive is implemented only when the compile-time flag ENABLE_GC_DEBUGGING_TOOLS is set. 1993-03-10 Guillermo J. Rozas * compiler/fggen/canon.scm[1.14]: Fix bug in canonicalize/comment. 1993-03-09 Chris Hanson * runtime/thread.scm[1.9]: Don't hold on to continuation of caller to CREATE-THREAD. 1993-03-08 Guillermo J. Rozas * runtime/load.scm[14.41]: Modify load/purification-root to allow the C back end not to generate Scode comments. 1993-03-07 Chris Hanson * runtime/defstr.scm[14.23], runtime/make.scm[14.45], runtime/record.scm[1.20], runtime/runtime.pkg[14.175], runtime/unpars.scm[14.30]: Add hooks to the runtime system that are for use by SOS: * Add a slot to record types to hold the class wrapper so that records can have classes associated with them, and thus be dispatched on by generic procedures. * Maintain a population of record types so that classes can be added to records retroactively when the object system is loaded. * Add a new unparser hook that overrides the default unparser for records that satisfy RECORD? (records with explicit unparsers are unaffected). * Add a new unparser hook that may override the representation of procedures, so that generic procedures can have a special representation. * Change the DEFINE-STRUCTURE macro so that record-based structures don't have an explicit unparser unless the PRINT-PROCEDURE option is used. 1993-03-05 Guillermo J. Rozas * edwin/dos.scm[1.10]: Remove subprocess-job-control-available?, no longer needed and interfering with the Unix version. 1993-03-03 Chris Hanson * runtime/Attic/syntax.scm[14.21]: Eliminate a few more error checks that were missed in the last edit. 1993-03-03 Guillermo J. Rozas * compiler/machines/i386/rules1.scm[1.16]: Enable use of MOVZX. 1993-03-02 Guillermo J. Rozas * compiler/fggen/canon.scm[1.13]: Fix some bugs in the last edit. * compiler/fggen/canon.scm[1.12]: Improve code generated by multi-definition by using new CONSTANTIFY directive. * compiler/fggen/fggen.scm[4.30]: Add CONSTANTIFY directive. 1993-03-01 Arthur Gleckler * microcode/types.h[9.34]: Insert missing comma (after "COMPILED-CODE-BLOCK" in TYPE_NAME_TABLE) reported by Jim Miller. 1993-03-01 Guillermo J. Rozas * runtime/make.scm[14.44]: Make DEFINE-MULTIPLE return the value returned by the last definition. * compiler/machines/i386/make.scm[1.4]: Turn compress-top-level? on. * compiler/machines/i386/rules3.scm[1.25]: Add generate/remote-links. 1993-02-28 Chris Hanson * runtime/Attic/syntax.scm[14.20]: Eliminate prohibition against using syntactic keywords as variables. If done properly, we could prohibit top-level variable bindings that might cause trouble while allowing local bindings; but this requires redesign of the syntaxer. 1993-02-28 Guillermo J. Rozas * compiler/machines/spectrum/lapopt.scm[1.11]: Fix bug in fix-complex-return. The instr moved could be the one storing the return address being loaded in the LDW instruction! * compiler/machines/spectrum/machin.scm[4.28], compiler/machines/spectrum/make.scm[4.89]: Add generate/remote-links, PC caching, and cache hints for consing, and PA-RISC 1.1 registers. * compiler/machines/spectrum/lapgen.scm[4.43], compiler/machines/spectrum/rules1.scm[4.34], compiler/machines/spectrum/rulflo.scm[4.36]: Add generate/remote-links, PC caching, and cache hints for consing. * compiler/machines/spectrum/rules3.scm[4.39]: Add generate/remote-links and PC caching. 1993-02-27 Guillermo J. Rozas * compiler/machines/spectrum/rulrew.scm[1.9]: Eliminate spurious ZDEPs. * runtime/infutl.scm[1.46], runtime/infutl.scm[1.45]: Speed up the uncompressor. 1993-02-26 Chris Hanson * runtime/list.scm[14.17]: Fix various bugs from previous edit. 1993-02-25 Chris Hanson * runtime/list.scm[14.16], runtime/list.scm[14.15]: Install missing error checks in various procedures that take lists as arguments. Replace simple error calls with calls to more specific error signalling procedures. Change mapping procedures to use iterative algorithm for multiple-list case. 1993-02-25 Guillermo J. Rozas * runtime/option.scm[14.19]: Fix package for dosprocess. * edwin/loadef.scm[1.21]: shell-command must be autoloaded. `M-x shell' needs it. * edwin/dos.scm[1.9], edwin/editor.scm[1.226], edwin/unix.scm[1.34]: Directory must be passed to os/quit. By the time it is invoked, the code is not running in the context of the editor. * edwin/basic.scm[1.129]: Fix backwards conditional. * edwin/decls.scm[1.46]: Add doscom and dosshell * edwin/edwin.pkg[1.117]: Fix transposed characters (c-t). * runtime/make.scm[14.43]: Eliminate warning from SF. * edwin/edwin.pkg[1.116.1.1]: Update DOS version. * edwin/loadef.scm[1.20]: Add dos commands and pseudo shell. * edwin/doscom.scm[1.2], edwin/dosshell.scm[1.2]: Add load-option. * edwin/edwin.pkg[1.116]: Add package (edwin dosjob) * runtime/option.scm[14.18]: Add option DOSPROCESS * edwin/basic.scm[1.128], edwin/dos.scm[1.8], edwin/editor.scm[1.225], edwin/unix.scm[1.33]: Add os/quit and os/scheme-can-quit? * compiler/base/make.scm[4.98]: Changes for the C back end and to improve the open coding of vectors on the 386. * compiler/machines/alpha/compiler.pkg[1.6], compiler/machines/bobcat/compiler.pkg[1.43], compiler/machines/i386/compiler.pkg[1.15], compiler/machines/mips/compiler.pkg[1.13], compiler/machines/spectrum/compiler.pkg[1.41], compiler/machines/vax/compiler.pkg[1.16]: Export available-machine-registers and remove the disassembler. * compiler/rtlbase/rtlcon.scm[4.25]: Improve code generated by TYPED-CONS:VECTOR. It now does something different if the number of elements exceeds the number of the available word registers. * compiler/base/switch.scm[4.22]: Add compiler:avoid-scode? * compiler/fggen/canon.scm[1.11]: Add new rewrite that avoids Scode lambdas. Originally written for the C back end. * runtime/make.scm[14.42]: Fix bug in last edit. * runtime/make.scm[14.41]: Add changes for the C back end. 1993-02-23 Guillermo J. Rozas * microcode/boot.c[9.77]: Bug when checking in the last version. * microcode/interp.c[9.74]: Bug when checking in. * compiler/machines/i386/lapgen.scm[1.22]: Fix bug in reference->register-transfer. The bug was the cause of multiple (mov w (r 0) (r 0)) instructions in the output. * microcode/boot.c[9.76], microcode/interp.c[9.73], microcode/utils.c[9.56]: Add C_call_scheme. * microcode/errors.h[9.38], microcode/utabmd.scm[9.66]: Add new errors. 1993-02-22 Chris Hanson * compiler/rtlopt/ralloc.scm[1.17]: Handle case where REGISTER-LIVE-LENGTH of a register is zero. This can happen when a register is assigned but not referenced; ideally it would be best not to generate code like this but in at least one case it is hard to avoid. * edwin/fill.scm[1.58]: Fix bug that occurs in last line of paragraph when there's no whitespace in the line and it's longer than the fill column. 1993-02-22 Guillermo J. Rozas * microcode/error.c[1.4]: Remove warnings. 1993-02-22 Nick Papadakis * microcode/array.h[9.34]: Fixed bug with scmsig/scm6003 involving image.o Somehow, #ifndef for REAL_IS_DEFINED_DOUBLE managed to vanish ... * microcode/unxutl/Attic/y700.lcl[1.5]: Fixed bug with scmsig/scm6003 involving image.o * microcode/unxutl/Attic/makefile[1.20]: Removed references to local version of scheme (scmsig, scm6003, etc.) Added call to 'clean.world' target in xmakefile (with errors ignored) to take care of most of the reasons for the references. 1993-02-21 Chris Hanson * edwin/dired.scm[1.136], edwin/unix.scm[1.32]: Read value of DIRED-LISTING-SWITCHES that is local to the dired buffer being filled. 1993-02-21 Guillermo J. Rozas * microcode/termcap.c[1.2]: Kludge in termcap.c for OSs with NO_BAUD_CONVERSION. * microcode/ux.h[1.44]: 386BSD defines all the _SC_..., it just doesn't have sysconf. * microcode/uxsig.c[1.25]: SIGCHLD may be initially ignored, if the process that started (exec'd to) scheme had set it to SIG_IGN. 1993-02-20 Guillermo J. Rozas * microcode/ux.h[1.43]: Add NO_BAUD_CONVERSION to OSF (at least DEC OSF). 1993-02-19 Chris Hanson * compiler/machines/bobcat/rules3.scm[4.38]: Fix typo. * microcode/cmpauxmd/mc68k.m4[1.24], microcode/cmpintmd/mc68k.h[1.34], microcode/version.h[11.128]: Implement SET-INTERRUPT-ENABLES! hook. * edwin/ed-ffi.scm[1.29]: Fix inconsistency with "edwin.pkg". 1993-02-19 Jason Wilson * edwin/sercom.scm[1.61]: I added a primitive form of toggling case-sensitivity by giving search commands a numeric argument. C-s and C-r are dumb in that if you restart a search (ie C-s C-s), it won't remember if you were toggling case-fold-search before. Also, search-prompt and re-search-prompt should display the numeric arguement or better yet, the new sensitivity when prompting. 1993-02-18 Guillermo J. Rozas * compiler/machines/spectrum/lapopt.scm[1.10]: Remove spurious NOPs * compiler/machines/spectrum/lapgen.scm[4.42], compiler/machines/spectrum/rules3.scm[4.38]: Eliminate spurious NOPs. * microcode/uxterm.c[1.21]: Add macro NO_BAUD_CONVERSION. * microcode/ux.c[1.11], microcode/ux.h[1.42]: Add EMULATE_FPATHCONF, EMULATE_SYSCONF, and fix a few prototypes. * microcode/dump.c[9.36]: ifdef extern declarations to prevent warnings. * microcode/bchdmp.c[9.69], microcode/tparam.c[1.6]: Fix prototypes. * microcode/unxutl/Attic/config[1.18]: Add 386bsd. * compiler/machines/alpha/lapgen.scm[1.4]: Fix bug in split-64-bits. 1993-02-16 Arthur Gleckler * microcode/uxterm.c[1.20]: Fix = vs. == bug in OS_baud_rate_to_index. 1993-02-15 Guillermo J. Rozas * compiler/machines/alpha/lapgen.scm[1.3]: Disable warning about 64-bit constants. * compiler/machines/alpha/rules3.scm[1.4], microcode/s/Attic/decosf.h[1.3]: DEC OSF BL10 has fixed the bug about writing to the code containing the PC. Re-enable the linker code. * compiler/machines/alpha/rulrew.scm[1.2]: Fix bugs, missing rtl:constant-value * compiler/machines/spectrum/lapopt.scm[1.9]: Fix braino in last edit. * compiler/machines/spectrum/lapopt.scm[1.8]: Do not move instructions that mention *PC*. * compiler/machines/spectrum/lapopt.scm[1.7]: Fix braino. * microcode/m/Attic/alpha.h[1.4]: Eliminate obsolete flag and add optimization flag for BL10. * microcode/unxutl/Attic/ymkfile[1.62]: Add missing dependency from fixnum.o to mul.c * microcode/fasl.h[9.33], microcode/mul.c[9.33]: Fix problems on the Alpha 1993-02-14 Guillermo J. Rozas * edwin/telnet.scm[1.9]: Add #\C-c #\C-d . * microcode/ux.h[1.41]: Change to use correct osf feature macro. * compiler/machines/spectrum/lapopt.scm[1.6]: Add info on STWM. * compiler/machines/spectrum/lapopt.scm[1.5]: Fix parenthesis bug. * compiler/machines/spectrum/lapopt.scm[1.4]: Use reverse! instead of reverse to avoid holding onto two copies of the instruction list. * compiler/machines/spectrum/lapopt.scm[1.3]: Do not move conditionals around conditionals. * compiler/machines/spectrum/lapopt.scm[1.2]: Add a simple peephole optimizer to improve common patterns. * compiler/machines/spectrum/instr2.scm[1.5]: Fix bug introduced in last edit. 1993-02-13 Guillermo J. Rozas * compiler/machines/spectrum/instr1.scm[1.3], compiler/machines/spectrum/instr2.scm[1.4], compiler/machines/spectrum/lapgen.scm[4.41]: Remove NOPs from conditionals by adding a branch-tensioner hack to accomodate the sign of the displacement. 1993-02-12 Guillermo J. Rozas * compiler/machines/spectrum/rulflo.scm[4.35]: Remove name conflict introduced by last change. * compiler/machines/spectrum/rulflo.scm[4.34]: Fix NaN handling in floating-point conditions. 1993-02-11 Stephen Adams * microcode/psbmap.h[9.38]: Conditionalized include of `8.3' filename for NT: bignumint.h -> bignumin.h * microcode/Attic/posixtyp.h[1.7]: Added posix types for Windows/NT + cl386 * microcode/Attic/oscond.h[1.13]: Added conditionalizations for Windows/NT * microcode/os.h[1.3]: Parameterized 8.3 `8.3' filename problem for Windows/NT * microcode/option.c[1.31]: Added Windows/NT-isms * microcode/fixnum.c[9.37], microcode/option.h[1.10]: Changed `Header:' to `Id:'. * microcode/fasdump.c[9.54], microcode/fft.c[9.31], microcode/fhooks.c[9.33]: Header: -> Id: 1993-02-11 Chris Hanson * compiler/machines/bobcat/dassm2.scm[4.22]: Update to reflect new hook for SET-INTERRUPT-ENABLES!. 1993-02-10 Stephen Adams * microcode/image.c[9.33], microcode/intext.h[1.3], microcode/list.c[9.30]: Header: -> Id: * microcode/bignum.c[9.39]: Windows/NT `8.3' filename conflict in #include "bignumint.h" 1993-02-10 Chris Hanson * runtime/random.scm[14.6]: Fix typo. * edwin/process.scm[1.28]: Eliminate unfortunate loop that caused error to be signalled by C-x C-c when there were active processes. * edwin/edwin.pkg[1.115]: Change to match changes to "tagutl". * edwin/tagutl.scm[1.49]: Repaginate. 1993-02-09 Arthur Gleckler * edwin/outline.scm[1.6]: Make FORWARD-TOPIC and FORWARD-UP-TOPIC move to the first topic marker if the point starts before the first topic marker. Previously, they had no effect in that case. 1993-02-09 Chris Hanson * runtime/random.scm[14.5]: Completely new generator, interface is upwards compatible with previous design. RANDOM accepts any real number as a modulus argument. MAKE-RANDOM-STATE additionally accepts an exact integer, which it uses as a seed to create the state, thus providing a simple means of producing a specific random state. 1993-02-06 Guillermo J. Rozas * microcode/cmpintmd/hppa.h[1.39]: Bug in last edit. * microcode/uxsig.c[1.24]: Eta convert fclose to make it work with incompatible system-dependent declarations. * microcode/Attic/posixtyp.h[1.6], microcode/tparam.c[1.5], microcode/ux.h[1.40], microcode/uxenv.c[1.10], microcode/uxtop.c[1.10], microcode/uxtrap.h[1.17]: Make it work under Utah BSD 4.3 * microcode/hppacach.h[1.4], microcode/m/Attic/hp9k800.h[1.11]: Make it work under BSD. * microcode/Attic/config.h[9.78]: Fix bad conditionalization for HP hardware. The definitions are hardware dependent, not OS dependent. * microcode/cmpintmd/hppa.h[1.38]: Add support for BSD, with no uname call to find model, and with heaps potentially non-executable. * microcode/bchdrn.c[1.5]: Avoid duplicate include of setjmp.h * microcode/bchdmp.c[9.68]: Eta convert read and write to avoid conflicting system-dependent declarations. 1993-02-02 Guillermo J. Rozas * edwin/basic.scm[1.127], edwin/dos.scm[1.7]: Add a pseudo-suspend to DOS that invokes a subshell. * microcode/Attic/dossig.c[1.16], microcode/Attic/dosx32.c[1.6]: Add a pseudo-suspend that invokes a subshell. 1993-02-02 Jason Wilson * compiler/rtlgen/opncod.scm[4.59]: Fix bug by which RTL INVOCATION:PRIMITIVEs had the wrong frame size for combinations with partial open codings in tail-recursive position. 1993-02-02 Nick Papadakis * microcode/x11base.c[1.46]: Swapped order of arguments to x_default_color, was preferring "Emacs" resources over "edwin" resources. 1993-02-01 Chris Hanson * runtime/arith.scm[1.26]: Signal an error for (/ 1/2 0). 1993-01-29 Stephen Adams * runtime/make.scm[14.40], runtime/runtime.pkg[14.173]: Add (runtime pathname nt) * runtime/pathnm.scm[14.26]: Change MS-NT to NT. 1993-01-29 Chris Hanson * edwin/bufwiu.scm[1.24]: Procedure that tests to see if window needs redisplay must first call %NOTICE-WINDOW-CHANGES. A reply of #T permits the use of direct output, which is wrong if there are buffer changes that haven't yet been written to the screen. * runtime/runtime.pkg[14.174]: Simplify FILE-CASE clauses -- otherwise CREF generates *two* entries for every binding in each duplicated file. * runtime/thread.scm[1.8]: Fix bug that caused THREAD-TIMER-RUNNING? to be true when the timer was not running. Redesign code that toggles the timer on and off to make it simpler (and less likely to fail). 1993-01-28 Stephen Adams * runtime/runtime.pkg[14.172]: Add dummy variants for Windows NT. 1993-01-27 Guillermo J. Rozas * microcode/typename.txt[1.2]: Add record types. 1993-01-25 Jason Wilson * edwin/tagutl.scm[1.48]: I finished up the new tag stuff. Now you can include other tags files as in emacs 19. Also, you can optionally cause tags-search and tags-query-replace to kill buffers that aren't modified. 1993-01-25 Nick Papadakis * 6001/floppy.scm[1.14]: Use the right package this time ... arrgh. 1993-01-24 Chris Hanson * edwin/undo.scm[1.54]: UNDO-DONE! shouldn't enable undo if it is disabled. 1993-01-24 Gerald Jay Sussman * 6001/floppy.scm[1.12]: updated floppy.scm to conform to the change made by Bill RCS file: /scheme/src/runtime/RCS/unxprm.scm,v Working file: unxprm.scm head: 1.23 branch: locks: strict access list: symbolic names: RELEASE_7_1_0: 1.9 RELEASE_7_0_0: 1.4 comment leader: ";;; " keyword substitution: kv total revisions: 23; selected revisions: 23 description: ---------------------------- revision 1.23 date: 1993/01/12 19:01:28; author: gjr; state: Exp; lines: +2 -5 Remove current-file-time, replaced by get-time. 1993-01-24 Nick Papadakis * 6001/floppy.scm[1.13]: Just get-time, not unix/get-time 1993-01-23 Chris Hanson * edwin/fileio.scm[1.116]: Redesign interaction between line-end translation and changes/undo recording. New model suppresses changes and undo only for output translations, since these translations will be undone before the redisplay occurs. When inserting a file into the buffer, it does not affect the change recording at all, since the translation won't exceed the boundaries of the inserted text, and it's desirable to notice the change of inserting the file in the usual way. 1993-01-23 Nick Papadakis * microcode/unxutl/Attic/y700.lcl[1.4], microcode/unxutl/Attic/ymkfile[1.61]: Added conditionalization for REAL_IS_DEFINED_DOUBLE in array.h scmsig wants this set to 1, all other schemes (in particular, scm6003) want this set to 0. 1993-01-20 Chris Hanson * edwin/utils.scm[1.31]: Fix fencepost error in code that places zero byte at end of string. * edwin/utils.scm[1.30]: SET-STRING-MAXIMUM-LENGTH! was locking interrupts with INTERRUPT-MASK/GC-OK. Needless to say, GC is *not* OK during this operation. * runtime/wind.scm[14.5]: Change DYNAMIC-WIND (and FLUID-LET) so that they record the state transition *after* the "before" thunk is executed. This guarantees that both the "before" and "after" thunks execute in the dynamic state outside of the DYNAMIC-WIND call. **** NB: **** The particular change I made is buggy: I only changed how the state transition is performed in the normal case. If you throw out from the "during" thunk and then throw back in, the "before" thunk will be executed after its state transition is recorded. In order to fix this properly, the state space structure must be extended to include information indicating whether the transition should be recorded before or after the transition thunk. * edwin/intmod.scm[1.55]: Fix typo in PROMPT-FOR-CONFIRMATION operation on REPL mode console port. 1993-01-20 Jason Wilson * edwin/tagutl.scm[1.47]: I added the ability to use more than one TAGS file at one time using the command visit-additional-tags-file. Still to be done is to handle included TAGS files ala Emacs 19. 1993-01-19 Chris Hanson * runtime/strout.scm[14.7]: Always grow string by fixed ratio to guarantee constant amortized cost of insertion. 1993-01-18 Chris Hanson * runtime/strout.scm[14.5]: Don't call APPLY with a list that could potentially be huge. Instead allocate a string buffer and fill it; grow buffer when necessary and accept that there will be some memory waste. * runtime/rep.scm[14.30]: When printing error messages, put some large limits on the output to prevent the error message from causing secondary lossage. * microcode/hooks.c[9.49]: Don't lose completely when second arg to APPLY is too long to fit in stack. 1993-01-18 Guillermo J. Rozas * edwin/edwin.pkg[1.114.1.2]: Bump date. * edwin/edwin.pkg[1.114.1.1]: Update DOS version to match Unix version. * runtime/strout.scm[14.6]: Fix bug: write-substring was not growing the accumulator enough when the substring was larger than the size of the accumulator. 1993-01-16 Chris Hanson * edwin/bufwin.scm[1.300]: Must run %NOTICE-WINDOW-CHANGES! when doing direct update so that any changes to the window are handled correctly. 1993-01-13 Chris Hanson * runtime/unxpth.scm[14.15]: (DIRECTORY-PATHNAME-AS-FILE "/") can't represent its result properly, because null strings aren't allowed as pathname names. So just return the argument in this case and hope for the best. * runtime/random.scm[14.4], runtime/runtime.pkg[14.171]: Install new version of RANDOM from slib1c4. * compiler/machines/bobcat/lapgen.scm[4.47], compiler/machines/bobcat/rules3.scm[4.37]: Implement calls to SET-INTERRUPT-ENABLES! by jumping to assembly-language hook in compiled code interface. 1993-01-12 Brian A. LaMacchia * edwin/bufwiu.scm[1.23]: Fix boundary error involving changes indexes in buffer and narrowing. 1993-01-12 Chris Hanson * runtime/runtime.pkg[14.169], runtime/x11graph.scm[1.26]: Define new procedure X-GRAPHICS/WINDOW-ID, which returns the resource ID of the X window. * microcode/x11base.c[1.45]: Add new primitive X-WINDOW-ID. * 6001/edextra.scm[1.16]: Fix spelling error that has been corrected in Edwin. * edwin/bufwin.scm[1.299], edwin/bufwiu.scm[1.22], edwin/bufwmc.scm[1.16], edwin/decls.scm[1.45], edwin/image.scm[1.130], edwin/motion.scm[1.85], edwin/undo.scm[1.53], edwin/utlwin.scm[1.58]: Change method by which a window recomputes its starting point. Old method did too much work, particularly in cases where the line was very long. New method searches backward -- exactly once -- to start of first line that will appear in the window, and saves all of the resulting information in the window for later use. Unfortunately, there are many other problems with the algorithms that make them dependent on line length, and it's a lot of work to fix them. To fix it write will involve rewriting the display update code, yet again, and I'm not in the mood for that right now. However, it won't be necessary to rewrite the starting-point computation when that does finally happen. * edwin/filcom.scm[1.174]: Fix two bugs in M-x recover-file. * compiler/machines/mips/rules3.scm[1.16]: Calls to SET-INTERRUPT-ENABLES! primitive should be compiled as traps to the special assembly hook. This change requires microcode 11.126. * compiler/rtlgen/opncod.scm[4.58]: Disable open-coding of SET-INTERRUPT-ENABLES! -- it can't work without a good deal of hair, and in that case it's probably not desirable. * microcode/cmpauxmd/mips.m4[1.10], microcode/version.h[11.126]: Add assembly hook to implement SET-INTERRUPT-ENABLES! primitive. 1993-01-12 Guillermo J. Rozas * runtime/dospth.scm[1.18], runtime/fileio.scm[1.5], runtime/io.scm[14.32], runtime/pathnm.scm[14.25], runtime/runtime.pkg[14.170], runtime/unxpth.scm[14.14], runtime/version.scm[14.160]: Add support for handling end-of-file ^Z under DOS. * microcode/prename.h[1.7]: Add CURRENT-FILE-TIME as an alias for ENCODED-TIME. * microcode/Attic/dosenv.c[1.3], microcode/osenv.h[1.3], microcode/prosenv.c[1.8], microcode/uxenv.c[1.9], microcode/version.h[11.127], runtime/datime.scm[14.4]: Redo time primitives to provide conversion between decoded and encoded times. * microcode/Attic/msdos.h[1.4], microcode/utabmd.scm[9.65], microcode/ux.h[1.39]: Add syscall_mktime. * microcode/Attic/prdosenv.c[1.10], microcode/pruxenv.c[1.14]: Remove current-file-time. * edwin/edwin.pkg[1.114]: Import get-time. * edwin/rmail.scm[1.27], edwin/sendmail.scm[1.18]: Replace unix/current-file-time with get-time. * runtime/unxprm.scm[1.23]: Remove current-file-time, replaced by get-time. * runtime/dosprm.scm[1.17]: Remove current-file-time, not in use. 1993-01-12 Gerald Jay Sussman * 6001/edextra.scm[1.17]: Fix print-graphics to work with all windows * 6001/picture.scm[1.18]: Fix bugs in consistent assignment of coordinate limits. 1993-01-10 Chris Hanson * edwin/basic.scm[1.126], edwin/edwin.pkg[1.113], edwin/grpops.scm[1.18], edwin/struct.scm[1.85]: New code to grow and shrink buffers guarantees that the average time of inserting or deleting each character is bounded by a constant. The user is given some control over this behavior by means of the editor variable BUFFER-REALLOCATION-FACTOR, which allows a space-time tradeoff between the average insertion/deletion time and the average load factor of the buffer. BUFFER-REALLOCATION-FACTOR may be given a local value in a given buffer to change that buffer's allocation without affecting other buffers. * edwin/undo.scm[1.52]: Change GC undo truncation code to use buffer-local values of limit variables. * edwin/kilcom.scm[1.64]: Fix typo. * edwin/comred.scm[1.96]: Typed characters are now grouped properly by undo regardless of their position on the line. * edwin/class.scm[1.71], edwin/clscon.scm[1.6], edwin/debuge.scm[1.50]: Class and object data structures are now tagged as if by DEFINE-STRUCTURE. 1993-01-09 Chris Hanson * edwin/edwin.pkg[1.112]: GAP-ALLOCATION-EXTRA no longer defined. * edwin/fileio.scm[1.115], edwin/utils.scm[1.29]: Define a new condition type that is signalled when STRING-ALLOCATE is unable to allocate the string due to a lack of memory. Set up a condition handler for this type in the file-reading code so that the error message tells the user that the file is too big to fit in memory. * edwin/bufwin.scm[1.298], edwin/bufwiu.scm[1.21], edwin/intmod.scm[1.54]: Fix several instances of SET-INTERRUPT-ENABLES! that appear in value position but are intended to be for effect. * edwin/buffer.scm[1.161], edwin/edwin.pkg[1.111], edwin/struct.scm[1.84], edwin/struct.scm[1.83]: Add a SHRINK-LENGTH field to the group data structure, and change the allocation of groups to initialize them to a fixed minimum size. * edwin/buffrm.scm[1.47], edwin/bufwin.scm[1.297], edwin/bufwiu.scm[1.20], edwin/bufwmc.scm[1.15], edwin/comred.scm[1.95], edwin/curren.scm[1.106], edwin/decls.scm[1.44], edwin/edtfrm.scm[1.85], edwin/edwin.pkg[1.110], edwin/fileio.scm[1.114], edwin/grpops.scm[1.17], edwin/image.scm[1.129], edwin/macros.scm[1.59], edwin/make.scm[3.77], edwin/motion.scm[1.84], edwin/struct.scm[1.82], edwin/things.scm[1.84], edwin/undo.scm[1.51], edwin/utils.scm[1.28]: This version of Edwin requires microcode 11.125 or later. It should be compiled with compiler version 4.97 or later, because its performance depends on several new compiler optimizations. * Major redesign of low-level insert and delete operations, the primary aim of which is to greatly improve performance: * Insert, delete, and move-point daemons flushed. * Limits that track the extent of the changes to a buffer between display updates are now per-buffer rather than per-window. The windows are notified of these changes at display update rather than while the changes are occurring. * Calls to the primitives STRING-ALLOCATE, SUBSTRING-MOVE-RIGHT!, and SUBSTRING-MOVE-LEFT! have been replaced with calls to Scheme procedures that perform the same functions. These new procedures avoid the cost of calling C code, which can be very high. The latter two procedures use heuristics to decide whether it is better to call the C primitive or to do the operation in line. * The undo subsystem has been reimplemented. The new implementation is a near-exact translation of the new undo code from Emacs 18.56. The major features of this implementation are: unlimited undo memory for one undo step; significantly better performance; and much clearer implementation, reducing probability of bugs (the previous implementation is known to be buggy). * The new implementation of STRING-ALLOCATE fixes the bug that caused the editor to go into an infinite loop when reading in a file that was too large to fit in memory. * The MOVE-TO-COLUMN procedure had a problem because it was searching for the end of line in order to pass it as a limit argument to GROUP-COLUMN->INDEX. In some cases, particularly paragraph fill, this changed a linear algorithm to quadratic. This has been fixed by changing GROUP-COLUMN->INDEX to stop at end of line even if that is not the given limit. * The DEFINE-NAMED-STRUCTURE macro has been changed to create an object like those created by DEFINE-STRUCTURE, so that the printer and pretty-printer will treat them in the usual way. * The LINE-START and LINE-END procedures have been rewritten to make them faster. These procedures are used in many places in the editor and must be fast. The associated MOVE-VERTICALLY has been eliminated as it's no longer used. * TRANSPOSE-THINGS has been rewritten so that it doesn't leave permanent marks attached to the buffer. * HORIZONTAL-SPACE-START and HORIZONTAL-SPACE-END no longer look for the nearest line limit, since that was completely unnecessary. The procedures that they call automatically stop at the line edge. * BOCHSER code, which was not being loaded, is now also not compiled since it depended on the move-point daemons. 1993-01-08 Chris Hanson * microcode/unxutl/Attic/makefile[1.19]: Add entries for "scmsig" and "everything". * compiler/base/make.scm[4.97], compiler/machines/alpha/machin.scm[1.4], compiler/machines/bobcat/dassm2.scm[4.21], compiler/machines/bobcat/machin.scm[4.29], compiler/machines/i386/machin.scm[1.16], compiler/machines/mips/machin.scm[1.11], compiler/machines/mips/rulfix.scm[1.9], compiler/machines/mips/rulrew.scm[1.5], compiler/machines/spectrum/machin.scm[4.27], compiler/machines/vax/dassm2.scm[4.12], compiler/machines/vax/machin.scm[4.11], compiler/rtlbase/rtlty2.scm[4.11], compiler/rtlgen/opncod.scm[4.57]: Fixed bug in inline expander for OBJECT-TYPE?. Added inline expanders for primitives: GET-INTERRUPT-ENABLES, SET-INTERRUPT-ENABLES!, PRIMITIVE-GET-FREE, PRIMITIVE-INCREMENT-FREE, HEAP-AVAILABLE?, and SET-STRING-LENGTH!. Some of these primitives are new with microcode version 11.125. For the MIPS, added support for open-coding of FIXNUM-LSH. 1993-01-08 Guillermo J. Rozas * compiler/base/lvalue.scm[4.20]: Remove fossil? 1993-01-07 Chris Hanson * microcode/sysprim.c[9.38], microcode/version.h[11.125]: Added new primitives: PRIMITIVE-GET-FREE, PRIMITIVE-INCREMENT-FREE, HEAP-AVAILABLE?. * runtime/rep.scm[14.29], runtime/runtime.pkg[14.168]: Export REPL history variables needed to make new histories and install them in an active REPL. 1993-01-05 Guillermo J. Rozas * compiler/base/crsend.scm[1.9], compiler/base/crstop.scm[1.12]: Change cc-vector structures to be of type vector so they can be dumped. 1993-01-04 Chris Hanson * sf/emodel.scm[4.3]: Don't allow the same name to be interned twice in the same block. 1993-01-02 Chris Hanson * sf/chtype.scm[4.2], sf/copy.scm[4.2], sf/emodel.scm[4.2], sf/free.scm[4.2], sf/make.scm[4.26], sf/object.scm[4.5], sf/pardec.scm[4.7], sf/reduct.scm[4.4], sf/sf.pkg[4.8], sf/subst.scm[4.9], sf/tables.scm[4.2], sf/toplev.scm[4.10], sf/usiexp.scm[4.14], sf/xform.scm[4.4]: Complete redesign of environment model and declaration parser. This was prompted by a bug that had been present since the original design; the bug was inherent in the design, hence the need for a redesign. The new design has the following features: * The old design used a two-level environment model for the top-level environment, in which imported and global bindings were distinguished from top-level bindings appearing in the file. The new design uses a single top-level environment for all bindings. This is the change fixed the bug, but introduced performance problems because the two-level design had a special hack for the global environment; the performance problems were fixed by: * The new design uses a hash table to hold the bindings in (the model of) an environment frame when the number of bindings exceeds a preset threshold. This allows very large environment frames to have reasonable access times, while avoiding the time and space overhead of the hash table for small environment frames; typically only a few frames will use the hash table mechanism. The hash table uses open addressing with double hashing. * Because ".ext" files are internal data structures that are written to a file, old ".ext" files are incompatible with the new scode optimizer. In order to prevent lossage, ".ext" files have a new format, which contains a version number. When the scode optimizer encounters an old ".ext" file, or a new one with the wrong version number, it will emit a warning and ignore it. * Code that supported special "error combinations" has been removed, since these are no longer used. * Code that generated ".unf" files has been removed. Since several procedures with semi-public interfaces accept arguments or return values relating to these files, the procedures ignore such arguments and return dummy values. The global variable SFU? has been eliminated. 1992-12-30 Guillermo J. Rozas * compiler/fggen/canon.scm[1.10]: Add definition compression for the C back end. * compiler/base/scode.scm[4.8]: Add scode/sequence? * compiler/back/lapgn1.scm[4.14], compiler/rtlgen/opncod.scm[4.56]: Changes for the C back end. * compiler/back/asutl.scm[1.2]: Add < and expt to the set of back-end-specific operations. 1992-12-29 Guillermo J. Rozas * compiler/base/infnew.scm[4.9], compiler/base/switch.scm[4.21]: Some changes for the C back end. 1992-12-28 Chris Hanson * compiler/base/make.scm[4.96], compiler/machines/mips/rules3.scm[1.15]: Change implementation of INVOCATION:APPLY to use the new shortcircuit_apply code in the microcode interface. This change requires version 11.124 of the microcode. * compiler/machines/mips/lapgen.scm[1.12], compiler/machines/mips/rulfix.scm[1.8]: Tweak fixnum rules slightly so that previous implementation of logical fixnum operations will work correctly. * compiler/rtlgen/opncod.scm[4.55]: Fix think-o in implementation of object-type inliner. * runtime/defstr.scm[14.22]: Fix bug in code that recognizes named structures. Don't integrate predicates, since compiler is unable to take advantage of this integration in the situations that need it. * microcode/cmpauxmd/mips.m4[1.9], microcode/version.h[11.124]: Install shortcircuit_apply support for MIPS. 1992-12-23 Chris Hanson * compiler/machines/mips/rulrew.scm[1.4]: Fix think-o from the past. * compiler/Attic/Makefile[1.10]: Change ".binf" to ".bci". * compiler/rtlgen/opncod.scm[4.54]: Fix typo in previous change. 1992-12-22 Chris Hanson * runtime/defstr.scm[14.21]: Integrate structure predicates. * runtime/global.scm[14.45], sf/usiexp.scm[4.13]: Define CALL-WITH-VALUES to be an alias for WITH-VALUES. * compiler/machines/mips/machin.scm[1.10], compiler/machines/mips/rulfix.scm[1.7]: Add open-coding for FIXNUM-NOT, FIXNUM-AND, FIXNUM-ANDC, FIXNUM-OR, and FIXNUM-XOR. 1992-12-17 Chris Hanson * runtime/record.scm[1.19]: Change reference from UNPARSER-METHOD? to PROCEDURE? so that cold-load will work with interpreted code. The error test this implements isn't very important anyway. 1992-12-16 Guillermo J. Rozas * compiler/fgopt/reuse.scm[1.7]: Fix bug. Dependents are not nodes, but targets. * compiler/rtlgen/opncod.scm[4.53]: Fix bug in last edit. * compiler/rtlgen/opncod.scm[4.52]: Improve the open coder for OBJECT-TYPE? * compiler/rtlopt/rinvex.scm[1.7]: Generalize an identity from value-class=datum to value-class=immediate. * compiler/rtlgen/opncod.scm[4.51]: Bug in object-type open coding! 1992-12-15 Chris Hanson * microcode/hooks.c[9.48]: Turn off stack-overflow interrupt in both WITHIN-CONTINUATION and CALL-WITH-CURRENT-CONTINUATION, since they eliminate the condition. 1992-12-15 Guillermo J. Rozas * edwin/edwin.pkg[1.109.1.1]: Update DOS version to match Unix version. * edwin/edwin.pkg[1.109]: Add blank line to make comparing with DOS version easier. 1992-12-11 Arthur Gleckler * edwin/edwin.pkg[1.108]: Set up (EDWIN DEBUGGER) package to handle my (older) version of the debugger by linking some variables the new debugger doesn't need. 1992-12-11 Guillermo J. Rozas * edwin/dos.scm[1.6]: Fix bug in finding init file. Teach the edwin filename parser about ~ on DOS. 1992-12-10 Chris Hanson * microcode/x11base.c[1.44]: Change primitives that set window colors to use the window's colormap instead of the display's default colormap. * microcode/x11base.c[1.43]: Ignore BadWindow errors generated by XDestroyWindow. * runtime/record.scm[1.18], runtime/runtime.pkg[14.167], runtime/uproc.scm[1.6], runtime/uproc.scm[1.5]: Change record support to understand that a record is applicable only when its type is a record whose length field has been specially marked. 1992-12-09 Chris Hanson * microcode/interp.c[9.72]: Further restrict application of records: the type that appears in the record's zeroth slot must be a record whose length field is marked with TC_TRUE. This allows a record to have another record be its type without having to reserve the application-procedure slot in all records. * compiler/rtlgen/opncod.scm[4.50]: Add inline coding for OBJECT-TYPE, PRIMITIVE-OBJECT-TYPE, and PRIMITIVE-OBJECT-SET-TYPE. Change coding for %RECORD-LENGTH to not assume that record length has type code zero. 1992-12-08 Chris Hanson * compiler/base/refctx.scm[1.2]: DEFINE-STRUCTURE no longer allows NAMED to be used with an argument unless TYPE is given. 1992-12-07 Chris Hanson * microcode/unxutl/Attic/y300.lcl[1.23], microcode/unxutl/Attic/y700.lcl[1.3]: Add scmsig to "everything" rule. * runtime/boot.scm[14.5], runtime/defstr.scm[14.20], runtime/events.scm[14.3], runtime/io.scm[14.31], runtime/make.scm[14.39], runtime/packag.scm[14.12], runtime/record.scm[1.17], runtime/runtime.pkg[14.166], runtime/scode.scm[14.15], runtime/unpars.scm[14.29], runtime/version.scm[14.159]: Rewrite record package and DEFINE-STRUCTURE macro to use the record datatype rather than vectors. * sf/usiexp.scm[4.12]: Constant-fold STRING->SYMBOL. 1992-12-05 Chris Hanson * microcode/gccode.h[9.46], microcode/gctype.c[9.32], microcode/types.h[9.33]: Finish job of defining TC_RECORD type code. 1992-12-04 Chris Hanson * runtime/string.scm[14.8], runtime/string.scm[14.7]: Undo last change: a substring cannot be upper or lower case unless there is at least one character of that case in it. Rewrite SUBSTRING-CAPITALIZED? to fix the bug properly. 1992-12-04 Nick Papadakis * microcode/unxutl/Attic/y300.lcl[1.22]: Added GJS's signal-processing version of scheme 1992-12-03 Arthur Gleckler * edwin/unix.scm[1.31]: Made MAYBE-WRITE-ENCRYPTED-FILE depend on ENABLE-ENCRYPTED-FILES instead of ENABLE-COMPRESSED-FILES. 1992-12-03 Chris Hanson * runtime/uproc.scm[1.4]: Add support for RECORD objects. * cref/object.scm[1.5], runtime/infstr.scm[1.8], runtime/lambda.scm[14.10], runtime/pathnm.scm[14.24], runtime/uenvir.scm[14.30], sf/object.scm[4.4]: Make explicitly-named structures have explicit type. 1992-12-03 Guillermo J. Rozas * compiler/machines/alpha/rulfix.scm[1.3]: Upate to match changed interface to __divq and __remq. 1992-12-03 Nick Papadakis * microcode/unxutl/Attic/y700.lcl[1.2]: Changed REAL_IS_DEFINED_DOUBLE to 1 for GJS Added scmsig to ymakefile for GJS * microcode/array.h[9.33]: Changed REAL_IS_DEFINED_DOUBLE to 1 1992-12-02 Chris Hanson * compiler/base/make.scm[4.95], compiler/rtlgen/opncod.scm[4.49], runtime/record.scm[1.16], runtime/record.scm[1.15], runtime/record.scm[1.14], runtime/runtime.pkg[14.165], runtime/runtime.pkg[14.164], runtime/version.scm[14.158], sf/gconst.scm[4.15], sf/make.scm[4.25], sf/usiexp.scm[4.11]: Add support for RECORD objects. * microcode/interp.c[9.71], microcode/object.h[9.40], microcode/vector.c[9.36], microcode/vector.c[9.35], microcode/version.h[11.123]: Add support for TC_RECORD data type. * edwin/fill.scm[1.57]: Fix fencepost error in paragraph fill. 1992-12-01 Guillermo J. Rozas * compiler/machines/alpha/rulfix.scm[1.2]: Fix unbound variable. * compiler/machines/alpha/compiler.pkg[1.5]: Missed edit. * edwin/dabbrev.scm[1.3]: replace-match has its second argument negated in Edwin when compared to GNU Emacs. * runtime/string.scm[14.6]: Change the definition of substring-lower-case? and substring-upper-case? so that strings with no upper (lower) case characters match. The previous definition required at least one lower (upper) case character. Thus the empty string (or a string with only non-alphabetic characters) is both lower and upper case, while it was previously neither. * edwin/regexp.scm[1.63]: Switch the order of the capitalized and uppercased tests in replace-match. It only makes a difference on strings of length 1, in which case it preferes to capitalize. * edwin/dabbrev.scm[1.2]: Fix case replacement decision. 1992-11-30 Chris Hanson * microcode/x11base.c[1.42]: Allow X primitives to accept nonnegative integers as pixel values. 1992-11-30 Guillermo J. Rozas * microcode/bitstr.c[9.52]: Fix missing type in header for bit_string_set. * microcode/bitstr.c[9.51]: Add bit_string_set and extern allocate_bit_string and clear_bit_string for the C back end. 1992-11-29 Brian A. LaMacchia * edwin/prompt.scm[1.156]: Fixed bug in prompt-for-password. 1992-11-29 Guillermo J. Rozas * runtime/Attic/syntax.scm[14.19], runtime/debug.scm[14.32], runtime/defstr.scm[14.19], runtime/infstr.scm[1.7], runtime/lambda.scm[14.9], runtime/packag.scm[14.11], runtime/pathnm.scm[14.23], runtime/record.scm[1.13], runtime/scan.scm[14.5], runtime/uenvir.scm[14.29]: Fix references to string->symbol in loading sequence to use the primitive. 1992-11-25 Chris Hanson * edwin/process.scm[1.27]: Can't use set-variable-default-value! during editor startup. * edwin/dired.scm[1.135]: Fix unused variable warning. 1992-11-25 Guillermo J. Rozas * edwin/edwin.pkg[1.107.1.1]: Update DOS version to match Unix version 1.107. * runtime/contin.scm[14.7]: Fix CALL-WITH-CURRENT-CONTINUATION to be tail-recursive. * microcode/hooks.c[9.47]: Fix CALL-WITH-CURRENT-CONTINUATION to be tail-recursive. Improve WITHIN-CONTROL-POINT to delay copying the stack. * microcode/cmpintmd/hppa.h[1.37]: GCC version 2.2.2 uses non-closure function pointers. 1992-11-24 Arthur Gleckler * edwin/sort.scm[1.6]: Replace mark-temporary-right-inserting-copy with mark-temporary-copy. * edwin/sort.scm[1.5]: Better solution to previous fix. * edwin/sort.scm[1.4]: Fix bug that makes sort commands sometimes duplicate the text in the sorted region. 1992-11-24 Chris Hanson * edwin/edwin.pkg[1.107]: Add several commands: rcs-ci-locked-files, rcs-list-locked-files, rcs-diff, and rcs-log. Also add new variable rcs-append-output, which controls what happens to output to previous rcs commands when a new one is executed. * edwin/process.scm[1.26]: Add variable shell-file-name and initialize it properly. 1992-11-24 Guillermo J. Rozas * microcode/xdebug.c[9.31]: Update to match new interface to find_symbol. * microcode/intern.c[9.53]: Change the interface to find_symbol to allow char pointers to be looked up in the obarray, thus there is no need to cons if there is already a symbol by the name being checked. * runtime/savres.scm[14.27]: Close interrupt window in disk-restore: The continuation dumped must have no interrupts enabled until after it resets the fixed objects vector (containing the interrupt-handlers vector). * microcode/fasload.c[9.67]: Close interrupt window. CScheme dumps an Scode combination whose operator is the continuation object. On restore, it checks for interrupts at the apply point, and if an interrupt is taken, the fixed objects vector (containing the interrupt-handlers vector) is invalid because it has not been set yet. * microcode/utils.c[9.55]: Setup_Interrupt is now careful to make sure that there is a valid interrupt vector. 1992-11-23 Guillermo J. Rozas * edwin/artdebug.scm[1.21]: Fix bug in last edit -- DEFINE-VARIABLE-LOCAL-VALUE! is not a macro. * microcode/Attic/dossig.c[1.15]: ``i'' response to interactive interrupt handler clears the hard attention counter. * microcode/Attic/dossig.c[1.14]: Fix typo. * microcode/Attic/dosconio.c[1.9]: Add interrupt flag to console_read to prevent infinite loop in interactive interrupt handler. * microcode/Attic/dosio.c[1.3]: Add interrupt flag to dos_read to prevent infinite loop in interactive interrupt handler. * microcode/Attic/dossig.c[1.13]: Some changes to be able to disable interrupts by using appropriate environment variables. * microcode/Attic/doskbd.c[1.12]: Conditionalize x32 keyboard according to environment variable. * microcode/Attic/dostrap.c[1.3]: Print trapping pc and sp if there is no handler in an attempt to find out what's happening with the spurious traps at boot time. * microcode/boot.c[9.75]: Disable interrupts at boot time. 1992-11-22 Guillermo J. Rozas * edwin/rename.scm[1.6]: Test availability before exporting names. * edwin/artdebug.scm[1.20]: Update to match new define-major-mode * edwin/edwin.pkg[1.106.1.1]: Update to version 1.106. 1992-11-20 Brian A. LaMacchia * edwin/rmail.scm[1.26]: Fixed a bug in rmail-cease-edit * edwin/dired.scm[1.134]: Made dired-encrypt-file use prompt-for-confirmed-password * edwin/dired.scm[1.133]: Updated mode help string. 1992-11-20 Chris Hanson * edwin/edwin.pkg[1.106], edwin/sort.scm[1.3]: Fix typo. * edwin/edwin.pkg[1.105], edwin/edwin.pkg[1.104], edwin/xcom.scm[1.10], edwin/xcom.scm[1.9], edwin/xterm.scm[1.37], edwin/xterm.scm[1.36]: Don't update window and icon names unless they have changed. * edwin/sort.scm[1.2]: Fix two bugs. Discard permanent marks when no longer needed. Repaginate. 1992-11-20 Guillermo J. Rozas * runtime/advice.scm[14.11]: Eliminate constant Scode object from compiled file. * microcode/cmpint.c[1.56]: Add CC_BLOCK_ENTRY_DISTANCE for the C back end. 1992-11-18 Chris Hanson * edwin/edwin.ldr[1.38], edwin/unix.scm[1.30]: Move load of krypt option to "edwin.ldr". * edwin/schmod.scm[1.30]: Change syntax definitions of brackets and braces, to make them act like parentheses. * edwin/rmailsum.scm[1.29]: When summary buffer is killed, delete pointer from RMAIL buffer to summary buffer. * edwin/rmail.scm[1.25]: Fix bug in INSERT-INBOX-TEXT: when inbox was empty, random newline was inserted. 1992-11-18 Guillermo J. Rozas * microcode/m/Attic/alpha.h[1.3], microcode/m/Attic/apoll68k.h[1.3], microcode/m/Attic/hcx.h[1.2], microcode/m/Attic/hp9k300.h[1.10], microcode/m/Attic/hp9k400.h[1.6], microcode/m/Attic/hp9k800.h[1.10], microcode/m/Attic/i386.h[1.5], microcode/m/Attic/ibm032.h[1.2], microcode/m/Attic/mips.h[1.7], microcode/m/Attic/next.h[1.5], microcode/m/Attic/sun3.h[1.6], microcode/m/Attic/sun4.h[1.3], microcode/m/Attic/umax.h[1.2], microcode/m/Attic/vax.h[1.5]: Conditionalize according to PROC_TYPE. * microcode/cmpint.c[1.55]: Conditionalize according to CMPINT_USE_STRUCS. The new version (not using strucs) does not need interface_to_scheme and interface_to_C, which makes it easier to write. * compiler/machines/bobcat/decls.scm[4.34]: Fix typo in last edit. * compiler/machines/alpha/compiler.pkg[1.4], compiler/machines/alpha/decls.scm[1.3], compiler/machines/alpha/machin.scm[1.3], compiler/machines/bobcat/compiler.pkg[1.42], compiler/machines/bobcat/decls.scm[4.33], compiler/machines/bobcat/machin.scm[4.28], compiler/machines/i386/compiler.pkg[1.14], compiler/machines/i386/decls.scm[1.4], compiler/machines/i386/machin.scm[1.15], compiler/machines/mips/compiler.pkg[1.12], compiler/machines/mips/decls.scm[1.7], compiler/machines/mips/machin.scm[1.9], compiler/machines/spectrum/compiler.pkg[1.40], compiler/machines/spectrum/decls.scm[4.32], compiler/machines/spectrum/machin.scm[4.26], compiler/machines/vax/compiler.pkg[1.15], compiler/machines/vax/decls.scm[4.10], compiler/machines/vax/machin.scm[4.10], compiler/rtlbase/rtlcon.scm[4.24], compiler/rtlbase/rtlty2.scm[4.10], compiler/rtlgen/opncod.scm[4.48], compiler/rtlgen/rgrval.scm[4.20]: Move some back-end-dependent stuff to back/asutl. The C back end has its own replacement. 1992-11-17 Chris Hanson * edwin/make.scm[3.76]: Install Matt Birkholz's changes. * edwin/evlcom.scm[1.41]: Don't allow minor modes to be set in prompt-for-expression mode. * edwin/decls.scm[1.43], edwin/edwin.ldr[1.37], edwin/edwin.pkg[1.103], edwin/modefs.scm[1.143]: Add M-x dabbrev-expand. * edwin/macros.scm[1.58]: Add description to output of DEFINE-NAMED-STRUCTURE so that PP knows how to print out these structures in a useful way. * edwin/buffer.scm[1.160]: Change SET-BUFFER-MAJOR-MODE! so it doesn't reset the buffer's alist. Instead, the alist is only reset when the buffer is reset. Buffer properties now differ from buffer-local variables in that they survive a mode change. * edwin/buffer.scm[1.159], edwin/bufmnu.scm[1.124], edwin/c-mode.scm[1.51], edwin/c-mode.scm[1.50], edwin/comint.scm[1.18], edwin/comint.scm[1.17], edwin/dired.scm[1.132], edwin/filcom.scm[1.173], edwin/info.scm[1.115], edwin/info.scm[1.114], edwin/intmod.scm[1.53], edwin/midas.scm[1.17], edwin/pasmod.scm[1.46], edwin/rmail.scm[1.24], edwin/rmailsum.scm[1.28], edwin/schmod.scm[1.29], edwin/schmod.scm[1.28], edwin/sendmail.scm[1.17], edwin/shell.scm[1.11], edwin/telnet.scm[1.8], edwin/texcom.scm[1.38], edwin/texcom.scm[1.37], edwin/tximod.scm[1.18]: Fixes to last set of changes. 1992-11-16 Brian A. LaMacchia * edwin/dired.scm[1.129]: Added dired-krypt -- encrypts and decrypts files using krypt.scm. 1992-11-16 Chris Hanson * edwin/buffer.scm[1.158], edwin/bufmnu.scm[1.123], edwin/c-mode.scm[1.49], edwin/comint.scm[1.16], edwin/compile.scm[1.2], edwin/dired.scm[1.131], edwin/evlcom.scm[1.40], edwin/filcom.scm[1.172], edwin/fileio.scm[1.113], edwin/info.scm[1.113], edwin/intmod.scm[1.52], edwin/macros.scm[1.57], edwin/midas.scm[1.16], edwin/pasmod.scm[1.45], edwin/rmail.scm[1.23], edwin/rmailsum.scm[1.27], edwin/schmod.scm[1.27], edwin/sendmail.scm[1.16], edwin/shell.scm[1.10], edwin/telnet.scm[1.7], edwin/texcom.scm[1.36], edwin/tximod.scm[1.17]: Change MODE-INITIALIZATION (for both major and minor modes) to accept the buffer as its argument; previously mode initializations had no arguments. Rewrite all mode initializations to be lambda expressions with explicit bindings for the buffer argument. Eliminate notion of BUFFER-INITIALIZATIONS -- buffer's mode is now set immediately when SET-BUFFER-MAJOR-MODE! or SET-BUFFER-MINOR-MODE! is called. ---> NOTE WELL!!! <--- All mode hooks have been changed to take the buffer as an argument -- this is an incompatible change that will affect anyone who uses a mode hook in their initialization file. 1992-11-16 Guillermo J. Rozas * edwin/dired.scm[1.130]: Move load-option from top-level to inside the encryption/decryption command. In this way krypt is only loaded when first accessed, and not at edwin load time. 1992-11-15 Chris Hanson * edwin/filcom.scm[1.171], edwin/fileio.scm[1.112], edwin/rmail.scm[1.22]: Redesign AFTER-FIND-FILE and related procedures to be more like GNU Emacs. Implement M-x recover-file. 1992-11-14 Chris Hanson * edwin/wincom.scm[1.114]: Fix typo in previous change. 1992-11-14 Guillermo J. Rozas * compiler/base/asstop.scm[1.3], compiler/base/utils.scm[4.18], compiler/machines/alpha/compiler.pkg[1.3], compiler/machines/bobcat/compiler.pkg[1.41], compiler/machines/i386/compiler.pkg[1.13], compiler/machines/mips/compiler.pkg[1.11], compiler/machines/spectrum/compiler.pkg[1.39], compiler/machines/vax/compiler.pkg[1.14]: Add hook for C back end so that generated labels are legal C labels. 1992-11-13 Chris Hanson * edwin/wincom.scm[1.113]: Add optional argument to pop-up-buffer, which disables use of current window. * edwin/dos.scm[1.5], edwin/fileio.scm[1.111], edwin/unix.scm[1.29]: Make backup-by-copying of symbolic link be dependent on a variable. * edwin/modefs.scm[1.142], edwin/syntax.scm[1.76]: Add M-x describe-syntax. * edwin/loadef.scm[1.19], edwin/manual.scm[1.11]: Add variable manual-command to override the manual program name. * edwin/hlpcom.scm[1.105]: Change list of help commands to include describe-syntax. * edwin/fill.scm[1.56]: Redefine AUTO-FILL-BREAK? to use Emacs definition. * edwin/curren.scm[1.105]: Change setting of buffer-point to conform to Emacs. * edwin/comint.scm[1.15]: Add M-x comint-send-invisible and M-x comint-send-char. * edwin/bufmnu.scm[1.122]: Add buffer-menu-mode-hook, and set truncate-lines true in buffer-menu buffers. 1992-11-12 Brian A. LaMacchia * edwin/rmail.scm[1.21], edwin/rmailsrt.scm[1.8], edwin/rmailsum.scm[1.26]: writeable -> writable 1992-11-12 Chris Hanson * edwin/bufcom.scm[1.99], edwin/buffer.scm[1.157], edwin/bufmnu.scm[1.121], edwin/debuge.scm[1.49], edwin/dired.scm[1.128], edwin/evlcom.scm[1.39], edwin/filcom.scm[1.170], edwin/fileio.scm[1.110], edwin/info.scm[1.112], edwin/modlin.scm[1.15], edwin/struct.scm[1.81], edwin/techinfo.scm[1.3]: Fix spelling: "writeable" -> "writable". 1992-11-12 Guillermo J. Rozas * runtime/runtime.pkg[14.163], runtime/savres.scm[14.26], runtime/usrint.scm[1.3]: Fix bug in disk-save/disk-restore by which bands dumped from emacs were not restartable. 1992-11-11 Brian A. LaMacchia * edwin/rmailsum.scm[1.25]: Fixed a bug in rmail-make-basic-summary-line. 1992-11-10 Chris Hanson * microcode/utabmd.scm[9.64]: Do not set MICROCODE-TERMINATION-PROCEDURES slot of fixed objects vector in this file; the runtime system will take care of it. This was a problem because the existing termination procedures were being erased at DISK-RESTORE. 1992-11-09 Brian A. LaMacchia * edwin/rmailsum.scm[1.24]: Changed the way summary lines are constructed. Use the first 25 characters of the extracted-name, not the last 25 characters. 1992-11-09 Chris Hanson * edwin/debuge.scm[1.48]: Disregard minibuffers in SAVE-EDITOR-FILES. * edwin/debuge.scm[1.47], edwin/debuge.scm[1.46]: Fix two bugs in SAVE-EDITOR-FILES. 1992-11-09 Guillermo J. Rozas * compiler/machines/alpha/rules4.scm[1.2], compiler/machines/bobcat/rules4.scm[4.13], compiler/machines/i386/rules4.scm[1.7], compiler/machines/mips/rules4.scm[1.3], compiler/machines/spectrum/rules4.scm[4.12], compiler/machines/vax/rules4.scm[4.4], compiler/rtlbase/rtlcon.scm[4.23], compiler/rtlbase/rtlty1.scm[4.20], compiler/rtlgen/rgproc.scm[4.13], compiler/rtlgen/rgrval.scm[4.19], compiler/rtlgen/rgstmt.scm[4.16], compiler/rtlgen/rtlgen.scm[4.29]: Add label argument to all interpreter calls for the C back-end. 1992-11-08 Guillermo J. Rozas * runtime/global.scm[14.44]: Allow (cd) * runtime/scode.scm[14.14]: Re-define string->symbol. The new version now copies the string if the symbol is being interned for the first time. In this way string mutation of the string does not affect the symbol. * sf/gconst.scm[4.14]: Remove string->symbol from integrable primitives list. The runtime system version now copies the string if the symbol is being interned for the first time. In this way string mutation of the string does not affect the symbol. * compiler/machines/alpha/machin.scm[1.2], compiler/machines/bobcat/machin.scm[4.27], compiler/machines/i386/machin.scm[1.14], compiler/machines/mips/machin.scm[1.8], compiler/machines/spectrum/machin.scm[4.25], compiler/machines/vax/machin.scm[4.9], compiler/rtlgen/rgrval.scm[4.18]: Conditionalization for the C back end. 1992-11-07 Guillermo J. Rozas * edwin/edwin.pkg[1.102.1.1]: Add sort to match the Unix version. 1992-11-06 Chris Hanson * compiler/machines/mips/compiler.pkg[1.10]: Export variables controlling debugging info generation to global env. 1992-11-06 Guillermo J. Rozas * sf/subst.scm[4.8]: Fix bug in last set of changes. 1992-11-05 Brian A. LaMacchia * edwin/rmail.scm[1.20]: Fixed rmail-cease-edit to remove the cached summary line (in the message headers). Forces rmail-summary mode to recalc the summary line next time it is needed. Thus, if you now edit the Subject: line of a message, the summary line will change to reflect this. 1992-11-05 Chris Hanson * edwin/loadef.scm[1.18]: Add SORT library (from arthur). * rcs/logmer.scm[1.5]: Eliminate references to obsolete primitives. Eliminate references to MAPCAN. * edwin/loadef.scm[1.17], edwin/print.scm[1.12]: Add new editor variable LPR-PROCEDURE to allow complete customization of the printing method. 1992-11-05 Guillermo J. Rozas * runtime/runtime.pkg[14.162]: New version of apply. conversion to pathname objects during a directory-read operation no longer attemps to expand environment variables, etc. 1992-11-04 Guillermo J. Rozas * sf/make.scm[4.24], sf/object.scm[4.3], sf/pardec.scm[4.6], sf/reduct.scm[4.3], sf/sf.pkg[4.7], sf/subst.scm[4.7], sf/toplev.scm[4.9], sf/usiexp.scm[4.10]: Fix bugs in the implementation of REDUCE-OPERATOR and extend capabilities so that all the optimizations performed by USUAL-INTEGRATIONS can be expressed as declarations. * microcode/cmpint.c[1.54]: Fix back-out problem in compiled APPLY. 1992-11-03 Guillermo J. Rozas * runtime/version.scm[14.157]: Provide a new, faster version of apply. Prevent directory expansion while reading directories. * runtime/dosdir.scm[1.6], runtime/dospth.scm[1.17], runtime/unxdir.scm[14.10], runtime/unxpth.scm[14.13]: Prevent directory expansion while reading directories. * runtime/dosprm.scm[1.16]: Eliminate a warning from SF. * runtime/Attic/syntax.scm[14.18], runtime/error.scm[14.32], runtime/global.scm[14.43], runtime/make.scm[14.38], runtime/parse.scm[14.19], runtime/uerror.scm[14.34], runtime/unsyn.scm[14.13]: Provide a new, faster version of apply. * microcode/cmpauxmd/hppa.m4[1.24]: Recode fixnum_remainder because the FREM instruction has always been emulated and has been dropped from the architecture. 1992-11-01 Arthur Gleckler * edwin/decls.scm[1.42], edwin/ed-ffi.scm[1.28], edwin/edwin.pkg[1.102]: Add new sorting package. 1992-10-31 Guillermo J. Rozas * microcode/bintopsb.c[9.55]: Declare expt as an int instead of long so that frexp won't complain. * microcode/cmpauxmd/hppa.m4[1.23]: Fix bug in remainder. FPREM can return negative values for positive arguments since it is defined as follows: FPREM (x, y) = x - (n * y) where n is the nearest integer to x/y and thus n*y can have an absolute value greater than x. 1992-10-30 Arthur Gleckler * edwin/unix.scm[1.28]: Comment out buffer auto-save disabling that doesn't work anyway because we (CPH and Arthur) don't know how to fix it. 1992-10-27 Guillermo J. Rozas * microcode/cmpint.c[1.53], microcode/hooks.c[9.46], microcode/version.h[11.122]: Add a mechanism for primitives to apply compiled procedures without aborting to the interpreter (canonicalizing context). * microcode/cmpint.c[1.52]: Teach comutil_apply about arity dispatchers. * microcode/interp.c[9.70]: Teach internal_apply about arity dispatchers. 1992-10-26 Chris Hanson * edwin/telnet.scm[1.6]: Initialize process-filter in M-x telnet rather than in the mode initialization for telnet mode. Previously there was no guarantee that the process was started by the time the mode initialization was performed. 1992-10-24 Guillermo J. Rozas * compiler/base/utils.scm[4.17]: The separator in labels is not a constant. * compiler/back/lapgn1.scm[4.13], compiler/back/lapgn3.scm[4.11], compiler/base/asstop.scm[1.2], compiler/base/toplev.scm[4.47]: Move a few things around to accomodate the C back end. 1992-10-21 Guillermo J. Rozas * microcode/prename.h[1.6]: Eliminate old alias. * microcode/Attic/dosfs.c[1.4], microcode/osfs.h[1.6], microcode/prosfs.c[1.11], microcode/uxfs.c[1.9], runtime/uerror.scm[14.33]: Eliminate fossil primitives. * microcode/Attic/prdosenv.c[1.9], microcode/pruxenv.c[1.13], microcode/uxenv.c[1.8]: Eliminate extra indirection. * microcode/Attic/dosenv.c[1.2], microcode/Attic/prdosenv.c[1.8]: Move various primitives from prosenv.c to pruxenv.c and prdosenv.c . 1992-10-20 Guillermo J. Rozas * microcode/osenv.h[1.2], microcode/prosenv.c[1.7], microcode/pruxenv.c[1.12]: Move various primitives from prosenv.c to pruxenv.c and prdosenv.c . * edwin/edwin.ldr[1.36]: Make ->environment not fail when the file will not be loaded. * edwin/macros.scm[1.56]: Change definition of define-command so commands can share descriptions. * edwin/calias.scm[1.14], edwin/decls.scm[1.41], edwin/edwin.ldr[1.35], edwin/edwin.pkg[1.101.1.1], edwin/edwin.pkg[1.101], edwin/make.scm[3.75], edwin/modefs.scm[1.141]: Re-arrange some stuff to make the DOS load smaller. * edwin/bios.scm[1.3]: Microcode Initialize only sets internal variables, and exit only clears them. Neither does any screen operations. Change the console driver in Edwin to accomodate the microcode changes. * microcode/Attic/dosint10.c[1.7]: Initialize only sets internal variables, and exit only clears them. Neither does any screen operations. * microcode/Attic/dosint10.c[1.6]: Fix bug in background color handling. The attributes were not being constructed correctly. 1992-10-19 Guillermo J. Rozas * compiler/base/make.scm[4.94], compiler/machines/alpha/compiler.pkg[1.2], compiler/machines/alpha/decls.scm[1.2], compiler/machines/bobcat/compiler.pkg[1.40], compiler/machines/bobcat/decls.scm[4.32], compiler/machines/bobcat/decls.scm[4.31], compiler/machines/i386/compiler.pkg[1.12], compiler/machines/i386/decls.scm[1.3], compiler/machines/mips/compiler.pkg[1.9], compiler/machines/mips/decls.scm[1.6], compiler/machines/spectrum/compiler.pkg[1.38], compiler/machines/spectrum/decls.scm[4.31], compiler/machines/vax/compiler.pkg[1.13], compiler/machines/vax/decls.scm[4.9]: Split toplev and move a couple of things around to make integration of the C back end, and other back ends that use native post-processing, easier. * compiler/back/lapgn3.scm[4.10], compiler/back/linear.scm[4.15]: Move set-current-branches! from lapgn3.scm to linear.scm. * compiler/base/toplev.scm[4.46]: Split toplev.scm into two pieces: toplev.scm asstop.scm toplev includes all the top level codes and all the structure through lap linearization. asstop contains the assembler and linker top-level. This allows an alternate back end (e.g. C, or one that uses the machine's native assembler) to be substituted. * compiler/base/crstop.scm[1.11]: Move last reference to base/macros.scm . * compiler/base/macros.scm[4.12]: Move last reference here. 1992-10-17 Guillermo J. Rozas * edwin/basic.scm[1.125]: QUIT not yet implemented under DOS. * edwin/bios.scm[1.2]: Use bios:initialize! instead of bios:enter!, with environment variable lookup done in Scheme. Flush bios:discard! Make SF happy. * microcode/Attic/doskbd.c[1.11]: Do not install keyboard hooks if the standard input is not the keyboard. * microcode/Attic/dosint10.c[1.5]: Add range-checking to bios:INITIALIZE! * runtime/site.scm.dos[1.11]: Use set-environment-variable-default! instead of an event receiver. In this way the order is guaranteed to be correct. * runtime/dosprm.scm[1.15]: Add definition of set-environment-variable-default! * runtime/make.scm[14.37]: Reorder initialization so that environment variables are reset before the command line is processed. * microcode/Attic/dosint10.c[1.4], microcode/Attic/dosint10.h[1.2]: Get rid of environment variables in the microcode. * microcode/sysprim.c[9.37]: Flush set-run-light! -- It has not been used in a while. 1992-10-15 Guillermo J. Rozas * compiler/machines/alpha/rules3.scm[1.3]: Add stack checking code to closures (they do not use interrupt-check). * compiler/machines/alpha/lapgen.scm[1.2]: Add definition of reg:stack-guard. * compiler/machines/alpha/rules3.scm[1.2], compiler/machines/i386/rules3.scm[1.24], compiler/machines/vax/rules3.scm[4.11]: Update interrupt-check to avoid generating stack checks when entering continuations and leaf procedures. 1992-10-12 Guillermo J. Rozas * microcode/Attic/dosx32.c[1.5]: Make X32_DPMI_system raise the global interrupt on return, in case an interrupt was missed while the handler was disabled. 1992-10-08 Guillermo J. Rozas * runtime/dospth.scm[1.16]: Add hook/dos/end-of-line-string. Allow empty string as the first component of an absolute pathname to kludge shared network file systems. * runtime/dosprm.scm[1.14]: Change definitions of dos/user-home-directory and dos/current-user-name not to signal an error. In this way, restarting scheme won't fail if the environment variables are not set. 1992-10-07 Guillermo J. Rozas * microcode/Attic/dosconio.c[1.8], microcode/Attic/dosexcp.c[1.5], microcode/Attic/dosinsn.h[1.2], microcode/Attic/dosint10.c[1.3], microcode/Attic/dosio.c[1.2], microcode/Attic/doskbd.c[1.10], microcode/Attic/dossig.c[1.12], microcode/Attic/dossys.c[1.4], microcode/Attic/dossys.h[1.2], microcode/Attic/dostty.c[1.3], microcode/Attic/dosx32.c[1.4], microcode/Attic/msdos.h[1.3]: Remove unused DOS code. Clean up some interrupt code. * compiler/machines/i386/make.scm[1.3]: Stack checks are disabled on the 386 by default because they are not needed under DPMI/Windows. 1992-10-02 Guillermo J. Rozas * microcode/Attic/prdosenv.c[1.7]: Flush spurious primitives. * runtime/dosprm.scm[1.13]: Get rid of uses of spurious primitives. 1992-10-01 Arthur Gleckler * edwin/bufcom.scm[1.98]: Fix bug that made SWITCH-TO-BUFFER, SWITCH-TO-BUFFER-OTHER-WINDOW, and SWITCH-TO-BUFFER-OTHER-SCREEN prompt with the current buffer as default instead of the previous buffer. 1992-10-01 Chris Hanson * microcode/unxutl/Attic/y300.lcl[1.21]: Use -ldvio instead of -lndvio. 1992-10-01 Guillermo J. Rozas * microcode/Attic/prdosenv.c[1.6]: Add missing call to long_to_integer. * microcode/Attic/dosx32.c[1.3], microcode/Attic/prdosenv.c[1.5]: Add rudimentary (synchronous) subprocesses. 1992-09-30 Chris Hanson * compiler/machines/spectrum/rulfix.scm[4.44]: Fix typo. * compiler/base/switch.scm[4.20], compiler/machines/bobcat/rules3.scm[4.36], compiler/machines/mips/rules3.scm[1.14]: Turn on COMPILER:GENERATE-STACK-CHECKS? by default. * compiler/base/make.scm[4.93], compiler/rtlgen/rtlgen.scm[4.28]: Tweak definition of RTL-PROCEDURE/STACK-LEAF? to be true only when the procedure pushes a continuation, and to consider inline-coded descendant procedures as part of the ancestor. * compiler/machines/spectrum/rules3.scm[4.37]: Don't generate stack checks for continuations or for procedures that have STACK-LEAF? true. * compiler/rtlbase/rtlobj.scm[4.10], compiler/rtlgen/rtlgen.scm[4.27]: Add STACK-LEAF? element to RTL procedure objects. This element, if true, says that the procedure does not push any stack frames. * 6001/floppy.scm[1.11]: Adjust presentation appearance. * 6001/floppy.scm[1.10]: Confirm before deleting any files from floppy disk. * 6001/edextra.scm[1.15]: Use SELECT-BUFFER-NOT-FOUND-HOOKS to change behavior of C-x b so that it always creates buffers that are associated with files. * edwin/bufcom.scm[1.97]: Fix definition of SELECT-BUFFER-NOT-FOUND-HOOKS so that the procedures in it must return either a buffer or #F. * edwin/fileio.scm[1.109], edwin/modefs.scm[1.140]: Make PATHNAME-DEFAULT-MODE public, so that it can be used to set the mode of a buffer based on its name rather than its pathname. Add new editor variable AUTO-MODE-ALIST with same semantics as in GNU Emacs; this new variable overrides FILE-TYPE-TO-MAJOR-MODE. * edwin/bufcom.scm[1.96]: Fix sense of SELECT-BUFFER-CREATE. * edwin/bufcom.scm[1.95]: Add editor variable SELECT-BUFFER-NOT-FOUND-HOOKS to permit customization of PROMPT-FOR-BUFFER when the user selects a non-existent buffer. 1992-09-30 Guillermo J. Rozas * microcode/Attic/prdosenv.c[1.4]: Add system under X32 but not DPMI (does not interact well with the Scheme timer interrupt). * microcode/dosutl/Attic/makefile[1.4]: Remove HAS_COMPILER_SUPPORT and TYPE_CODE_LENGTH. They are now defined in config.h . * microcode/Attic/dossig.c[1.11]: Cast Stack_Guard before passing it to DPMI_alloc_scheme_stack. * runtime/numint.scm[1.3]: Change invocations of utilities from arith to include the names of procedures. * edwin/dos.scm[1.4]: Eliminate spurious variable binding. * microcode/Attic/doskbutl.asm[1.6]: Improve the real-mode keyboard interrupt handler to eliminate some jumps. * microcode/option.c[1.30]: Bump 386 SMALL_CONSTANT and EDWIN_CONSTANT by 5. * edwin/filcom.scm[1.169]: Change read-buffer-interactive to invoke find-file-not-found-hooks if the file is not found (but not if the file is not readable). Previously it was not being invoked at all because of the way that it and read-buffer work. 1992-09-29 Chris Hanson * edwin/intmod.scm[1.51]: Use MAJOR-MODE-LOCKED feature to prevent users from frobbing the major mode of a REPL buffer. Conditionalize this feature by the editor variable REPL-MODE-LOCKED, normally enabled. * edwin/bufcom.scm[1.94], edwin/buffer.scm[1.156]: Add MAJOR-MODE-LOCKED feature. 1992-09-28 Chris Hanson * compiler/machines/bobcat/rules3.scm[4.35]: Reimplement in-line combined stack and interrupt check, now that microcode will support it properly. * compiler/machines/spectrum/rules3.scm[4.36]: Eliminate an additional instruction in the in-line combined stack and interrupt check; total is now four instructions. 1992-09-26 Chris Hanson * compiler/machines/spectrum/rules3.scm[4.35]: Tighten up the code sequence for the combined interrupt and stack check. New sequence is same number of instructions, but eliminates a load-delay interlock. Sequence can perhaps be shortened by one additional instruction. * compiler/machines/mips/rules3.scm[1.13]: Tighten up the code sequence for the combined interrupt and stack check. New sequence is 6 instructions rather than former 8. * 6001/arith.scm[1.3]: Don't refer to COMPLEX:COMPLEX? here -- use NUMBER? instead. * compiler/machines/spectrum/rules3.scm[4.34]: The microcode no longer knows how many bytes the interrupt-check sequence is, so allow in-line stack checks again. * microcode/Attic/config.h[9.77], microcode/Attic/config.h[9.76]: Add conditional to allow this file to be included multiple times. * microcode/Attic/dossig.c[1.10], microcode/cmpint.c[1.51], microcode/cmpint.c[1.50], microcode/cmpintmd/alpha.h[1.3], microcode/cmpintmd/hppa.h[1.34], microcode/cmpintmd/i386.h[1.19], microcode/cmpintmd/mc68k.h[1.32], microcode/cmpintmd/mips.h[1.16], microcode/cmpintmd/vax.h[1.6], microcode/default.h[9.39], microcode/extern.h[9.49], microcode/gc.h[9.32], microcode/interp.c[9.69], microcode/interp.h[9.36], microcode/intrpt.h[1.11], microcode/stack.h[9.33], microcode/storage.c[9.52], microcode/utils.c[9.54], microcode/version.h[11.121]: Change `(Registers[REGBLOCK_STACK_GUARD])' to be a cache for the C variable `Stack_Guard'. Change COMPILER_SETUP_INTERRUPT so that compiled code doesn't signal GC or stack-overflow interrupts when the corresponding interrupt enable bit is not set. Change compiled-code interface to assume this, and eliminate back-out code; this eliminates the _SKIPPED_CHECK_OFFSET constants built into the microcode, allowing the compiled code more coding flexibility. * microcode/Attic/config.h[9.75], microcode/gctype.c[9.31], microcode/m/Attic/alpha.h[1.2], microcode/m/Attic/apoll68k.h[1.2], microcode/m/Attic/hp9k300.h[1.9], microcode/m/Attic/hp9k400.h[1.5], microcode/m/Attic/hp9k800.h[1.9], microcode/m/Attic/i386.h[1.4], microcode/m/Attic/mips.h[1.6], microcode/m/Attic/next.h[1.4], microcode/m/Attic/sun3.h[1.5], microcode/m/Attic/vax.h[1.4], microcode/option.c[1.29], microcode/unxutl/Attic/ymkfile[1.60], microcode/unxutl/Attic/ymkfile[1.59], microcode/wsize.c[9.32]: Move definitions of TYPE_CODE_LENGTH and HAS_COMPILER_SUPPORT out of the command line and into "config.h" 1992-09-26 Guillermo J. Rozas * runtime/dospth.scm[1.15]: Allow UNSPECIFIC as a directory specifier. That way we can construct pathnames for DOS devices (e.g. NUL, CON, etc.) 1992-09-25 Chris Hanson * microcode/m/Attic/hp9k400.h[1.4]: Remove some now-unnecessary compiler switches. * compiler/machines/bobcat/dassm2.scm[4.20], compiler/machines/bobcat/lapgen.scm[4.46], compiler/machines/bobcat/rules3.scm[4.34], microcode/cmpauxmd/mc68k.m4[1.23], microcode/cmpintmd/mc68k.h[1.31]: Implement close-coded stack and interrupt check. * 6001/edextra.scm[1.14]: Override DEFAULT-HOMEDIR-DIRECTORY to be the "work" directory so that buffers with no natural directory end up being in a reasonable place. * edwin/hlpcom.scm[1.104], edwin/paths.scm[1.13], edwin/sendmail.scm[1.15]: Add binding of DEFAULT-HOMEDIR-PATHNAME to allow 6.001 to override the default "home" directory. 1992-09-25 Guillermo J. Rozas * microcode/Attic/dossig.c[1.9], microcode/Attic/dosxcutl.asm[1.7]: Add critical-error handling outside of DPMI (Windows). * microcode/Attic/dossig.c[1.8]: Work around bug in X32 by which it swaps ss if it is not what it expected when a trap occurs. We now use DPMI exceptions directly under DPMI rather than X32 exceptions. * microcode/Attic/dosxcutl.asm[1.6]: Remove unnecessary segment overrides. 1992-09-24 Brian A. LaMacchia * edwin/rmailsrt.scm[1.7]: more bug fixes; prevented rmail-sort-messages from keeping multiple strings with message text around; improved date handling 1992-09-24 Chris Hanson * compiler/machines/bobcat/compiler.pkg[1.39]: Export variables controlling generation of debugging info files. * 6001/floppy.scm[1.9]: Bypass use of shell for DOS file commands. This obviates the need for quoting. * 6001/floppy.scm[1.8]: Quote unusual characters in filenames that are passed to the shell. * microcode/primutl.c[9.59], microcode/primutl.c[9.58]: Change typing of procedure to match arguments that are normally passed to it. * microcode/Attic/dosconio.c[1.7], microcode/boot.c[9.74]: Use incorrect typing of references to `make_primitive' to eliminate warning messages. * microcode/Attic/oscond.h[1.12]: Add conditionalization that works with ANSI cpp when `unix' isn't defined. 1992-09-24 Guillermo J. Rozas * edwin/edwin.pkg[1.100.1.1]: Update version that uses the old debugger to match version 1.100. 1992-09-23 Guillermo J. Rozas * edwin/decls.scm[1.40], edwin/edwin.ldr[1.34], edwin/edwin.pkg[1.100]: Split dired and comint into system-independent and system-dependent portions. This eliminates the need for most process stubs under DOS. * edwin/dos.scm[1.3], edwin/unix.scm[1.27]: Move dired system-dependent stuff elsewhere (dos.scm, unix.scm, dirunx.scm). * edwin/dired.scm[1.127]: Move system-dependent stuff elsewhere (dos.scm, unix.scm, dirunx.scm). * edwin/dosproc.scm[1.2]: Remove most of the contents. dired and comint have been cleaned so that fewer bindings are needed. * edwin/comint.scm[1.14], edwin/make.scm[3.74], edwin/process.scm[1.25]: Split comint into history manipulation and subprocess manipulation. History is used by intmod, but the rest is not available under DOS. * edwin/edwin.sf[1.11]: Update date. 1992-09-22 Chris Hanson * runtime/x11graph.scm[1.25]: Fix implementation of X-GRAPHICS/DISCARD-EVENTS. * 6001/6001.cbf[1.5]: Re-enable stack checks -- they're fixed now. * microcode/cmpauxmd/hppa.m4[1.22]: Fix typo in sense of conditional branch. * runtime/infutl.scm[1.44]: COMPRESSED-LOADER now takes a second argument, the pathname-type of the uncompressed file to be generated when *SAVE-UNCOMPRESSED-FILES?* is true. This is necessary to allow COMPRESSED-LOADER to be used to load ".bcs" files as well as ".bci" files. * 6001/arith.scm[1.2]: Changes to match those to runtime system's arithmetic. 1992-09-21 Chris Hanson * 6001/make.scm[15.20], runtime/pp.scm[14.27], runtime/runtime.pkg[14.161], runtime/unpars.scm[14.28]: Add hack to eliminate (lambda #f ...). * runtime/arith.scm[1.25]: Some n-ary procedures return their argument when they are passed exactly one. Previously these procedures performed no type-checking on such arguments; these checks have been added. 1992-09-19 Guillermo J. Rozas * microcode/Attic/dossig.c[1.7]: Fix DPMI_stack_fault_handler to use INT_Stack_Overflow. * microcode/Attic/dosexcp.c[1.4]: Fix limit handling in DPMI_alloc_scheme_stack. 1992-09-18 Chris Hanson * runtime/runtime.pkg[14.160], runtime/x11graph.scm[1.24]: Implement new procedure X-GRAPHICS/DISCARD-EVENTS to discard mouse button events that are in the queue. * edwin/filcom.scm[1.168]: Signal error if user tries to set the pathname of a buffer to a directory. 1992-09-18 Guillermo J. Rozas * microcode/daemon.c[9.30]: Use OS_channel_close_noerror instead of OS_channel_close in CLOSE-LOST-OPEN-FILES. * microcode/artutl.c[1.11]: Fix typo. * microcode/artutl.c[1.10]: Can't use signed as a variable name. * microcode/prosenv.c[1.6]: Use ulong_to_integer instead of long_to_integer to handle clock wrap around correctly. * microcode/artutl.c[1.9], microcode/extern.h[9.48]: Add ulong_to_integer and integer_to_ulong. * microcode/bignum.c[9.38], microcode/bignum.h[9.28]: Add ulong_to_bignum and bignum_to_ulong. * runtime/dosprm.scm[1.12]: Add the arities for all the primitives so the file can be sf'd on a non-DOS. * runtime/unxprm.scm[1.22]: Fix bug in last edit. * runtime/unxprm.scm[1.21]: Add the arities for all the primitives so the file can be sf'd on a non-Unix. * microcode/Attic/dosexcp.c[1.3], microcode/Attic/dossig.c[1.6], microcode/Attic/dostrap.c[1.2]: Add hardware stack overflow protection under DPMI. * microcode/hooks.c[9.45], microcode/stack.h[9.32]: Add STACK_RESET macro for machines/OSs in which we have hardware stack protection. * microcode/cmpauxmd/i386.m4[1.28]: Initialize Scheme_Stack_Segment_Selector only if it has not been initialized. * microcode/cmpauxmd/i386.m4[1.27]: Add Scheme_Stack_Segment_Selector for DOS, and make sure that esp is loaded immediately after ss because the 386 architecture masks interrupts for one instruction after modifying ss. * microcode/cmpintmd/i386.h[1.18]: Rename improperly declared extern (i386_interface_initialize. * edwin/edwin.pkg[1.99.1.1]: Package file for alternate debugger. 1992-09-17 Chris Hanson * 6001/floppy.scm[1.7]: Add code to recognize the "write-protected" error when writing to the floppy, and to give a more succinct error message. * edwin/prompt.scm[1.155]: In TYPEIN-EDIT-OTHER-WINDOW, don't return a window that has been deleted. Always return *some* window, even if all of the saved windows has been deleted. * 6001/edextra.scm[1.13]: Add code to detect non-DOS filenames and discourage their use. 1992-09-17 Guillermo J. Rozas * microcode/Attic/dossys.c[1.3]: int 21h 60h only writes 128 bytes. * runtime/thread.scm[1.7]: Fix the adjustment for real-time timer wrap around. * runtime/thread.scm[1.6]: Add a patch to deliver-timer-events for real-time timer wrap-around. * runtime/dosprm.scm[1.11]: Flush references to indirect primitives. They do not exist for DOS. * microcode/Attic/prdosfs.c[1.3]: Flush indirect primitives. They make no sense in DOS. * runtime/dosprm.scm[1.10]: Add file-access-time-direct, file-access-time-indirect, file-access-time, and set-file-times! * edwin/notify.scm[1.10]: Fix broken conditional in notifier. The notify string was not being updated at all if the mail notification hook was not installed. 1992-09-15 Guillermo J. Rozas * microcode/Attic/dosxcutl.asm[1.5]: Get rid of IntEnb and IntCode as independent variables. They are now part of the register block. * microcode/Attic/dosfs.c[1.3], microcode/Attic/dosint10.c[1.2], microcode/Attic/dossys.c[1.2], microcode/Attic/dostop.c[1.5], microcode/Attic/prdosfs.c[1.2]: Make FILE-EQ? work correctly under DOS. 1992-09-14 Chris Hanson * runtime/rep.scm[14.28]: Add HOOK/REPL-PROMPT. * 6001/make.scm[15.19]: Define NIL and USER-INITIAL-ENVIRONMENT. * 6001/make.scm[15.18]: Disable EXIT and QUIT so that students aren't logged out by accident. * edwin/editor.scm[1.224]: Use new %QUIT. * runtime/global.scm[14.42]: Add %QUIT to guarantee access to basic QUIT mechanism. * runtime/global.scm[14.41]: Add HOOK/EXIT and HOOK/QUIT to allow EXIT and QUIT to be overridden. * 6001/edextra.scm[1.12]: Change mail to insert both "From:" and "Reply-to:" addresses. * 6001/floppy.scm[1.6]: Install new login window text from LAS. * 6001/floppy.scm[1.5]: Use home directory if "work/" doesn't exist. * 6001/floppy.scm[1.4]: Add code to support a "motd" file. * microcode/unxutl/Attic/ymkfile[1.58]: Add dependencies for "lookprm". * microcode/interp.c[9.68]: Fix occurrences of `set_IntEnb'. * microcode/intrpt.h[1.10]: In definitions of interrupt registers, use `Registers' instead of `Regs', because the latter breaks in "interp.c" where references occur outside of `Interpret'. * edwin/xterm.scm[1.35]: For FOCUS-IN events, don't generate a SELECT-SCREEN operation if the screen is already selected. This should prevent spurious failures of PROMPT-FOR-CHAR. 1992-09-12 Chris Hanson * compiler/machines/spectrum/rules3.scm[4.33], microcode/cmpauxmd/hppa.m4[1.21], microcode/version.h[11.120]: Add new hook for close-coded stack/interrupt check. 1992-09-11 Chris Hanson * compiler/machines/spectrum/lapgen.scm[4.40]: Add new hook for close-coded stack/interrupt check. * microcode/Attic/dosconio.c[1.6], microcode/const.h[9.41], microcode/extern.h[9.47], microcode/interp.c[9.67], microcode/intrpt.h[1.9], microcode/storage.c[9.51]: Move IntCode and IntEnb to the register block so that compiled code can access them. * 6001/6001.cbf[1.4]: Disable generation of stack checks until implementation bugs are fixed. * microcode/cmpint.c[1.49]: Handle stack checks correctly. Previous code was jumping to interrupt code even when stack-overflow interrupt was disabled. 1992-09-10 Chris Hanson * 6001/floppy.scm[1.3]: Don't do compensation kludge for 60-second granularity, it causes all files to be written back to floppy every time. * 6001/floppy.scm[1.2]: Tweak some of the presentations. * 6001/6001.sf[1.7]: Add "floppy" to the list of files that need compilation. * 6001/edextra.scm[1.11], 6001/make.scm[15.17]: Move editor customizations from "make.scm" to "edextra.scm". Extend filename customizations so that they do the usual thing when the files being operated on are not part of the student environment. Add remaining backup and auto-save filename customizations. Add Scheme's file types to list of ignored types. Disable key bindings that exit the editor. * 6001/edextra.scm[1.10], 6001/make.scm[15.16], 6001/make.scm[15.15]: Add first version of floppy code. * edwin/buffrm.scm[1.46], edwin/bufmnu.scm[1.120], edwin/curren.scm[1.104], edwin/edwin.pkg[1.99], edwin/rename.scm[1.5], edwin/wincom.scm[1.112], edwin/winren.scm[1.4]: Extend the definition of SELECT-BUFFER-IN-WINDOW so that it has the functionality of SET-WINDOW-BUFFER!. Eliminate the latter, then export the procedure of the same name from the window package. 1992-09-08 Chris Hanson * edwin/buffrm.scm[1.45]: Fix think-o in window-configuration stuff. * 6001/edextra.scm[1.9]: Eliminate losing and unnecessary definitions of string->number and number->string. * edwin/buffrm.scm[1.44]: Fix typo in previous change. * edwin/buffrm.scm[1.43], edwin/edwin.pkg[1.98], edwin/screen.scm[1.101]: Install mechanism for saving and restoring window configurations. 1992-09-07 Guillermo J. Rozas * microcode/Attic/dosconio.c[1.5]: Fix off-by-one error. 1992-09-06 Guillermo J. Rozas * microcode/Attic/dosconio.c[1.4], microcode/Attic/doskbd.c[1.9], microcode/Attic/doskbutl.asm[1.5], microcode/Attic/dosscan.h[1.4], microcode/Attic/dosxcutl.asm[1.4]: Make caps-lock work correctly by adding a third translation table. 1992-09-05 Chris Hanson * runtime/unxprm.scm[1.20]: Add new procedures to read file access time and to set file times. * microcode/pruxfs.c[9.50]: Add primitives to read file access time. 1992-09-05 Guillermo J. Rozas * microcode/Attic/dosscan.h[1.3]: Move attn key to F10. Some computers don't generate anything for F12. 1992-09-04 Nick Papadakis * 6001/edextra.scm[1.8], 6001/edextra.scm[1.7]: bugfixes to load-problem-set * 6001/edextra.scm[1.6]: Added support for load-problem-set 1992-09-03 Chris Hanson * 6001/make.scm[15.14]: Disable handling of compressed and encrypted files. 1992-09-03 Guillermo J. Rozas * microcode/Attic/dosconio.c[1.3]: Flush obsolete primitive. * microcode/Attic/dosconio.c[1.2], microcode/Attic/doskbd.c[1.8], microcode/Attic/doskbutl.asm[1.4], microcode/Attic/dosscan.h[1.2], microcode/Attic/dossig.c[1.5], microcode/Attic/dosx32.c[1.2], microcode/Attic/dosxcutl.asm[1.3]: Change DOS timer interrupt behavior: - Low level timer interrupt sets the "Global GC" interrupt but. - The Global GC interrupt handler (a primitive) tracks user timer requests and sets the timer interrupt bit when appropriate. It also invokes consume_typeahead to look for keyboard interrupt characters. Keyboard interrupt behavior changes: - The interactive handler is invoked from the consume_typeahead routine, not when Scheme is trying to map the interrupt character. In this way, its range of actions is greater. - Add reset option and hard attention keys. Keyboard interrupt handler: - Implement X32 version (does not work under DPMI). - Rewrite DPMI handler to use masm-assembled code instead of hand-assembled code. This makes it considerably easier to modify. 1992-09-02 Chris Hanson * 6001/edextra.scm[1.5], 6001/picture.scm[1.17]: Add procedure to restore focus to the editor's screen. * 6001/edextra.scm[1.4]: Load PRINT library using new procedure LOAD-EDWIN-LIBRARY. * edwin/autold.scm[1.53]: Create new procedure LOAD-EDWIN-LIBRARY that can be used to load a library when Edwin is not running. * edwin/edwin.pkg[1.97], edwin/xterm.scm[1.34]: Export procedures to force focus to a particular Edwin screen. * 6001/edextra.scm[1.3]: Make sure printing library is loaded for this code. * 6001/edextra.scm[1.2]: Fix some bugs. * edwin/print.scm[1.11]: Change switch-generation procedure to return a string instead of a list of strings. This is a little more useful since no further processing will be performed on the switches after that point. 1992-09-02 Guillermo J. Rozas * runtime/site.scm.dos[1.10]: Remove timer interrupt hack. This stuff is done directly by the microcode now. * runtime/thread.scm[1.5], runtime/version.scm[14.156]: Timer interrupts are now only requested when there are other runnable threads or pending timer events, rather than at all tmes. * runtime/intrpt.scm[14.12]: Copy the global GC handler from the old interrupt vector to the new one. The new DOS keyboard interrupt code requires this because it pre-initializes and uses the global GC interrupt. * microcode/boot.c[9.73]: Add hook for DOS to initialize part of the fixed objects vector. 1992-09-01 Chris Hanson * 6001/picture.scm[1.16]: Fix think-o in last change. * 6001/6001.pkg[1.7], 6001/6001.pkg[1.6], 6001/make.scm[15.13]: Try different magic for edwin extensions package. * 6001/picture.scm[1.15], 6001/picture.scm[1.14]: In picture->pgm-file, always scale. * 6001/6001.pkg[1.5], 6001/6001.sf[1.6], 6001/6001.sf[1.5], 6001/picture.scm[1.13], edwin/print.scm[1.10]: Add support for M-x print-graphics. 1992-08-30 Guillermo J. Rozas * microcode/bchdmp.c[9.67]: Fix truncate and ftruncate prototypes and flush FTRUNCATE_DECLARED nonsense. * microcode/cmpgc.h[1.22]: Remove extraneous back-slash. * microcode/version.h[11.119]: "Final" alpha merge. 1992-08-29 Guillermo J. Rozas * compiler/machines/alpha/assmd.scm[1.1], compiler/machines/alpha/coerce.scm[1.1], compiler/machines/alpha/compiler.cbf[1.1], compiler/machines/alpha/compiler.pkg[1.1], compiler/machines/alpha/dassm1.scm[1.1], compiler/machines/alpha/dassm2.scm[1.1], compiler/machines/alpha/dassm3.scm[1.1], compiler/machines/alpha/decls.scm[1.1], compiler/machines/alpha/inerly.scm[1.1], compiler/machines/alpha/insmac.scm[1.1], compiler/machines/alpha/instr1.scm[1.1], compiler/machines/alpha/instr2.scm[1.1], compiler/machines/alpha/instr3.scm[1.1], compiler/machines/alpha/lapgen.scm[1.1], compiler/machines/alpha/lapopt.scm[1.1], compiler/machines/alpha/machin.scm[1.1], compiler/machines/alpha/make.scm[1.1], compiler/machines/alpha/rgspcm.scm[1.1], compiler/machines/alpha/rules1.scm[1.1], compiler/machines/alpha/rules2.scm[1.1], compiler/machines/alpha/rules3.scm[1.1], compiler/machines/alpha/rules4.scm[1.1], compiler/machines/alpha/rulfix.scm[1.1], compiler/machines/alpha/rulflo.scm[1.1], compiler/machines/alpha/rulrew.scm[1.1]: Initial revision. * microcode/bchdmp.c[9.66], microcode/ux.h[1.38]: Move HAVE_FTRUNCATE from bchdmp.c to ux.h. * microcode/ux.h[1.37]: Fix bug in last edit: I interpreted the diff incorrectly. * microcode/ux.h[1.36]: OSF does not have truncate, apparently. * microcode/bignum.c[9.37]: Fix many instances of 1 (replaced by 1L). * microcode/bitstr.c[9.50]: Fix many instances of 1 (replaced by 1L). Remove internal static declarations for functions. They are not legal to some compilers. * microcode/cmpintmd/mips.h[1.15]: Add call to prevent Ultrix from "fixing" unaligned accesses. * microcode/error.c[1.3]: Internal static is not legal, according to some compilers. * microcode/intprm.c[1.4]: Fix word-size bug. The code implicitly assumed that longs were always large enough to fit a full fixnum. * microcode/pruxenv.c[1.11]: Add real-uid and real-gid primitives. * microcode/uxtrap.c[1.20]: Fix word size problem. * microcode/ux.h[1.35]: Remove spurious CONST in return type of getenv. Add a couple of syscalls. * microcode/extern.h[9.46], microcode/osscheme.h[1.7]: Fix inconsistent prototype between definition and export. * microcode/bitstr.h[1.8]: Fix word size problem manifested on Alpha: 1 -> 1L * microcode/cmpintmd/alpha.h[1.2]: Add page_size for autoclobber code. * microcode/s/Attic/decosf.h[1.2]: Define AUTOCLOBBER_BUG. * microcode/cmpgc.h[1.21], microcode/cmpint.c[1.48], microcode/fasload.c[9.66], microcode/hard-par.c[1.2], microcode/unxutl/Attic/ymkfile[1.57], microcode/uxtrap.h[1.16]: Alpha mods. 1992-08-28 Chris Hanson * edwin/print.scm[1.9]: Repaginate. * edwin/print.scm[1.8]: Abstract the code to generate the list of lpr switches. 1992-08-28 Guillermo J. Rozas * edwin/macros.scm[1.55]: Add command-defined? so various files can test for features being present or not. * edwin/notify.scm[1.9]: Change date format to match Emacs. Conditionalize mail notification on presence of rmail. * runtime/dosdir.scm[1.5]: Teach pattern matcher to handle multiple asterisks. * runtime/string.scm[14.5]: Add substring? 1992-08-27 Guillermo J. Rozas * microcode/m/Attic/i386.h[1.3]: Conditionalize M4_SWITCH_MACHINE on _SYSV. * microcode/s/Attic/sysv3.h[1.2]: Define _SYSV so m.h can tell it is running under SYSV. * edwin/make.scm[3.73]: Add BIOS driver for DOS version of Scheme. * edwin/editor.scm[1.223]: Change top level to not know how many display types there are in the system. * edwin/edwin.pkg[1.96.1.1]: Version that uses the old debugger. * edwin/artdebug.scm[1.19]: Rename continuation-browser to continuation-browser-buffer so that it can replace the new debugger. * edwin/edwin.pkg[1.96]: Add direct BIOS driver for DOS version of Scheme. Remove exports of console-display-type and x-display-type. * edwin/edwin.ldr[1.33]: Add direct BIOS driver for DOS version of Scheme. * edwin/termcap.scm[1.4]: Make sure that termcap primitives are implemented before invoking them. * edwin/decls.scm[1.39]: Add direct bios driver for DOS version of CScheme. * edwin/tterm.scm[1.18]: Make SF not complain. * edwin/print.scm[1.7]: Add missing #\? from string-prefix? call. 1992-08-25 Chris Hanson * edwin/manual.scm[1.10]: HP-UX 8.07 uses "Reformatting entry" message instead of "Reformatting page". 1992-08-24 Chris Hanson * sf/butils.scm[4.7]: CREF doesn't like ACCESS to non-global environment. Work around by using ENVIRONMENT-LOOKUP. 1992-08-24 Guillermo J. Rozas * microcode/cmpauxmd/i386.m4[1.26]: Fix a few comments. * microcode/s/Attic/dos.m4[1.4]: Add a few blank lines. * microcode/s/Attic/dos.m4[1.3]: Make dos.m4 preserve comments. * microcode/unxutl/Attic/makefile[1.18]: Add unconfig option. * microcode/cmpauxmd/mips.m4[1.8]: $30 is also a callee-saves register. It was not being preserved. 1992-08-22 Guillermo J. Rozas * microcode/Attic/dostop.c[1.4]: Fix typo (ENONENT instead of ENOENT). * compiler/etc/xcbfdir.scm[1.8], sf/butils.scm[4.6]: Observe compiler:cross-compiling? 1992-08-21 Chris Hanson * 6001/make.scm[15.12]: In MAIL-DEFAULT-REPLY-TO, must use 'INSERTED-DEFAULT because otherwise it is impossible to return null string. * edwin/loadef.scm[1.16], edwin/print.scm[1.6]: Add option switches for 6.001 support. Change print commands to insert -J and -T switches when possible to make the output easier to identify. * edwin/intmod.scm[1.50]: Don't permit inferior REPL evaluation unless the buffer is in inferior-repl mode. 1992-08-21 Guillermo J. Rozas * microcode/Attic/dostop.c[1.3]: Add more known error names. * microcode/Attic/dostop.c[1.2]: Change the copyright notice to be accurate. 1992-08-20 Chris Hanson * edwin/debug.scm[1.3]: Link where and eval buffers to debugger browser so that they are killed along with the debugger. Change M-x browser-quit so that if the browser is associated with another browser or will be selecting another browser then that browser is selected and its associated information buffer is also shown. 1992-08-20 Guillermo J. Rozas * microcode/regex.c[1.12]: Fix potential OOE bug, and fix sign-extension (or unsigned char) bug on SGIs. * compiler/base/toplev.scm[4.45]: Fix bug by which temporary files were being mapped and therefore shared and not deleted. * microcode/unxutl/Attic/ymkfile[1.56]: Add alpha conditionalization. * compiler/machines/i386/rulflo.scm[1.16.1.4]: Merge in floating-point bug fixes from main branch. * microcode/cmpintmd/mips.h[1.14]: Fix typo from previous edit. * microcode/cmpintmd/mips.h[1.13]: Fix an allocation bug. * microcode/cmpauxmd/mips.m4[1.7]: Change comment-syntax for Emacs mode declaration. * compiler/machines/mips/instr1.scm[1.6], compiler/machines/mips/lapgen.scm[1.11], compiler/machines/mips/machin.scm[1.7], compiler/machines/mips/rules3.scm[1.12], compiler/machines/mips/rulfix.scm[1.6], microcode/cmpauxmd/mips.m4[1.6], microcode/cmpintmd/mips.h[1.12]: New MIPS closure code. Works on newer R3000 systems (with larger cache-line sizes) and on R4000 systems in 32-bit mode. 1992-08-19 Chris Hanson * 6001/make.scm[15.11]: Allow students to specify a null "reply-to:" address. Always ask for this, but keep the last non-null address around and supply it as a default. 1992-08-19 Guillermo J. Rozas * compiler/machines/spectrum/rulfix.scm[4.42]: Fix bug in fixnum-remainder. * compiler/machines/spectrum/rulfix.scm[4.43], compiler/machines/spectrum/rulfix.scm[4.41]: Fix bugs in fixnum-quotient. * compiler/machines/i386/dassm2.scm[1.7]: Fix edit bug. 1992-08-18 Chris Hanson * edwin/evlcom.scm[1.38], edwin/intmod.scm[1.49]: Fix implementation of transcript-disable-evaluation variable so that it now works. Implement new option variable transcript-buffer-read-only, which defaults to true. * 6001/make.scm[15.10]: Fix missing argument in call to prompt-for-string. * 6001/make.scm[15.9]: Fix think-o in previous change. * edwin/edwin.pkg[1.95]: Export some variables from the operating-system specifics directory. * 6001/make.scm[15.8]: Set mail-default-reply-to so that it prompts for a reply address the first time mail is sent. * edwin/sendmail.scm[1.14]: Extend definition of mail-default-reply-to so that it can be a thunk that returns a string. * 6001/make.scm[15.7]: Enable version-control for 6.001 band, and trim-versions-without-asking. * microcode/x11graph.c[1.29]: Fix y-offset bug in X-GRAPHICS-FILL-POLYGON. * edwin/editor.scm[1.222]: Detect errors that are generated by the X primitives when the connection to the X server is broken, and kill the editor when that occurs. * microcode/x11.h[1.14], microcode/x11base.c[1.41]: Add code to periodically transmit something to the X server, so that if the connection dies an error will be signalled to Scheme. * runtime/intrpt.scm[14.11], runtime/load.scm[14.40], runtime/runtime.pkg[14.159]: Add command-line switch "-no-suspend-file" to disable the generation of "~/scheme_suspend" files. 1992-08-18 Jason Wilson * edwin/dired.scm[1.126]: Changed Dired so that the copy flag char and the delete flag char are Scheme variables instead of hard-wired constants. 1992-08-18 Guillermo J. Rozas * compiler/machines/i386/dassm2.scm[1.6]: Fix OOE bug in disassemble-one-instruction. * compiler/machines/i386/dassm3.scm[1.4]: offset -> (next-offset) * compiler/machines/i386/instr2.scm[1.5]: Bind correct variable in a MOV rule. 1992-08-17 Chris Hanson * microcode/s/Attic/newsos5.h[1.2]: Don't use -non_shared for GCC. 1992-08-17 Guillermo J. Rozas * compiler/machines/i386/machin.scm[1.13], compiler/machines/vax/lapgen.scm[4.14]: Update stack-guard offset to new value. 1992-08-16 Guillermo J. Rozas * microcode/bintopsb.c[9.54], microcode/ppband.c[9.44]: Explicitly set HEAP_MALLOC to malloc in case it has been defined to be another procedure that is not linked in. * microcode/psbtobin.c[9.48]: Fix bug going to compilers where int != long. Handle - (1 << FIXNUM_DATUM_LENGTH) correctly. 1992-08-14 Guillermo J. Rozas * runtime/dospth.scm[1.14]: Simplify parse-directory-component. * runtime/dospth.scm[1.13]: Fix yet another directory parser bug. 1992-08-13 Guillermo J. Rozas * runtime/dospth.scm[1.12]: Fix bug in parse-directory-component. * runtime/load.scm[14.39]: Add delayed-action capability to command line processing. This allows -eval and -load to delay their action until after the init file is loaded. 1992-08-12 Guillermo J. Rozas * compiler/machines/i386/dassm2.scm[1.5]: Fix signedness of offset field in read-procedure. * runtime/pathnm.scm[14.22]: Add missing field to the unimplemented host type. * runtime/dospth.scm[1.11]: Fix typo in last edit! * runtime/dospth.scm[1.10]: Fix dos/canonicalize to not extract substrings when the string has the proper length. * runtime/dospth.scm[1.9]: Fix parenthesis bug from last edit. * runtime/dospth.scm[1.8], runtime/pathnm.scm[14.21], runtime/unxpth.scm[14.12]: Add system-dependent pathname canonicalization. * compiler/machines/i386/rulflo.scm[1.19]: Fix bug in flonum-negative?, flonum-zero?, flonum-less?, and flonum-equal? by which unordered comparisons always compared true, breaking code in runtime/dragon4.scm, for example. * compiler/machines/i386/instrf.scm[1.13]: Add F%SUB and friends to accomodate Intel book bugs. * compiler/machines/i386/rulflo.scm[1.18]: Change uses of fsub into f%sub, and fdiv into f%div, etc. * microcode/cmpauxmd/i386.m4[1.25]: Change FP initialization for DOS until we get FP trap handling. * runtime/load.scm[14.38], runtime/runtime.pkg[14.158], runtime/version.scm[14.155]: Make command-line parser extensible. 1992-08-11 Guillermo J. Rozas * runtime/list.scm[14.14]: Replace recursive append with iterative append. * compiler/machines/mips/dassm2.scm[1.4]: Remove spurious variable assignments. Teach it how to destructure execute caches. * compiler/machines/mips/dassm1.scm[1.2]: Remove spurious variable assignments. Fix problem with compiler:write-lap-file, remove spurious assigned variables, and update write-caches to use compiled-code-block/procedure-cache-offset. * compiler/machines/vax/dassm2.scm[4.11]: Remove spurious variable assignments. * compiler/machines/vax/dassm1.scm[4.6]: Fix problem with compiler:write-lap-file, remove spurious assigned variables, and update write-caches to use compiled-code-block/procedure-cache-offset. * compiler/machines/spectrum/dassm2.scm[4.19]: Teach the disassemble how to read execute caches. * compiler/machines/bobcat/dassm1.scm[4.17], compiler/machines/i386/dassm1.scm[1.5]: Fix compiler:write-lap-file. * compiler/machines/bobcat/dassm1.scm[4.16], compiler/machines/spectrum/dassm1.scm[4.17]: Flush spurious variables assigned by dassm2.scm . Update disassembler/write-linkage-section to use compiled-code-block/procedure-cache-offset. * compiler/machines/bobcat/dassm2.scm[4.19], compiler/machines/spectrum/dassm2.scm[4.18]: Flush spurious assignments. * compiler/machines/i386/dassm3.scm[1.3]: Replace by the real thing. * compiler/machines/i386/dassm2.scm[1.4]: Replace stubs by the real thing. 1992-08-10 Guillermo J. Rozas * compiler/machines/i386/instr2.scm[1.4]: Change syntax of segment register ops. 1992-08-08 Guillermo J. Rozas * runtime/dosdir.scm[1.4]: Improve the pattern matcher to allow a trailing #\* to mean .* as well. 1992-08-07 Guillermo J. Rozas * compiler/machines/i386/compiler.pkg[1.11]: Export compiler:open-code-floating-point-arithmetic? and lap->code . 1992-08-06 Guillermo J. Rozas * runtime/dosdir.scm[1.3]: Eliminate some spurious consing. * runtime/dosdir.scm[1.2]: Add somewhat improved wildcard matching (in the middle of components). 1992-08-05 Guillermo J. Rozas * compiler/machines/i386/compiler.pkg[1.10], compiler/machines/vax/compiler.pkg[1.12]: Export compiler:generate-stack-checks? * compiler/machines/i386/instrf.scm[1.12]: Fix more floating-point documentation bugs. * compiler/machines/i386/instrf.scm[1.11]: Fix swapped opcodes bug in i486 manual (FDIV <-> FDIVR, FSUB <-> FSUBR). * compiler/machines/i386/lapgen.scm[1.21], compiler/machines/i386/rules3.scm[1.23], compiler/machines/vax/lapgen.scm[4.13], compiler/machines/vax/rules3.scm[4.10]: Add stack checks under control of compiler:generate-stack-checks? * compiler/machines/spectrum/rulfix.scm[4.40]: Improve quotient and remainder code. * microcode/Attic/config.h[9.74]: The alpha uses alpha_heap_malloc to allocate the heap in order to change its protection to make it R+W+X, instead of just R+W. * microcode/object.h[9.39]: Use HEAP_MALLOC macro instead of using malloc directly. 1992-08-04 Chris Hanson * runtime/uenvir.scm[14.28]: Fix bug in ENVIRONMENT-BOUND-NAMES -- it was not showing variables bound in the environment extension of an IC environment when there was an internal lambda being used. 1992-08-03 Chris Hanson * edwin/rmailsum.scm[1.23]: Change message-selection code to use SHOW-MESSAGE instead of indirecting through the #\j binding of the RMAIL buffer's comtab. The old method failed when the RMAIL buffer was in rmail-edit mode. * edwin/rmail.scm[1.19]: Reimplement M-x rmail-edit-current-message to make it more like that of Emacs. Signal an error if user attempts to select a message when the buffer is not in rmail mode. 1992-07-31 Guillermo J. Rozas * runtime/infutl.scm[1.43]: Add code to preserve uncompressed .bif files. In this way, when debugging a file, the cost is paid only once. The most recent of the .inf, .bif, and .bci files is used. 1992-07-30 Chris Hanson * microcode/option.c[1.28]: Increase size of HP-PA large constant space. 1992-07-30 Guillermo J. Rozas * microcode/cmpauxmd/mips.m4[1.5]: Add missing NOPs in branch-delay slots. * microcode/Attic/config.h[9.73], microcode/Attic/oscond.h[1.11], microcode/ux.h[1.34], microcode/uxtrap.h[1.15]: Add SGI Iris mods. * microcode/unxutl/Attic/config[1.17]: Add SGI entry. 1992-07-29 Chris Hanson * compiler/machines/bobcat/compiler.pkg[1.38], compiler/machines/i386/compiler.pkg[1.9], compiler/machines/mips/compiler.pkg[1.8], compiler/machines/vax/compiler.pkg[1.11]: Fix support for assembly-labels files so that compiler can properly generate disassemblies. * 6001/6001.cbf[1.3]: Compile with stack-overflow checks. * compiler/base/make.scm[4.92], compiler/base/switch.scm[4.19], compiler/machines/bobcat/compiler.pkg[1.37], compiler/machines/bobcat/lapgen.scm[4.45], compiler/machines/bobcat/rules3.scm[4.33], compiler/machines/mips/compiler.pkg[1.7], compiler/machines/mips/lapgen.scm[1.10], compiler/machines/mips/rules3.scm[1.11], compiler/machines/spectrum/compiler.pkg[1.37], compiler/machines/spectrum/lapgen.scm[4.39], compiler/machines/spectrum/rules3.scm[4.32]: Add optional stack-overflow checks. By default this is disabled. * microcode/cmpint.c[1.47], microcode/const.h[9.40], microcode/extern.h[9.45], microcode/gc.h[9.31], microcode/interp.h[9.35], microcode/stack.h[9.31], microcode/storage.c[9.50], microcode/utils.c[9.53], microcode/version.h[11.118]: Move Stack_Guard into the register block so that compiler can reference it for stack-overflow checks. 1992-07-28 Guillermo J. Rozas * runtime/dospth.scm[1.7]: Handle screwy directories with dots in their names. * microcode/dosutl/Attic/makefile[1.3]: Add copyright. * microcode/dosutl/Attic/bch-prm.lst[1.4], microcode/dosutl/Attic/bch-ztc.lst[1.5], microcode/dosutl/Attic/scm-prm.lst[1.4], microcode/dosutl/Attic/scm-ztc.lst[1.5]: Sort files according to groups, and alphabetically within. * microcode/dosutl/Attic/scm-prm.lst[1.3]: Sort file names Changes for exception handling under X32 and direct calls to BIOS for faster screen update. * microcode/dosutl/Attic/bch-ztc.lst[1.4], microcode/dosutl/Attic/scm-ztc.lst[1.4]: Sort file names * microcode/dosutl/Attic/bch-prm.lst[1.3], microcode/dosutl/Attic/bch-ztc.lst[1.3], microcode/dosutl/Attic/makefile[1.2], microcode/dosutl/Attic/scm-ztc.lst[1.3]: Changes for exception handling under X32 and direct calls to BIOS for faster screen update. * microcode/Attic/dostty.c[1.2]: DOS_initialize_tty now finds out the lines and columns directly from the BIOS. * microcode/Attic/dosasutl.asm[1.2]: model small -> model tiny. * runtime/dospth.scm[1.6]: Make the DOS pathname code canonicalize pathnames to their maximum length to prevent duplicates. * microcode/storage.c[9.49]: MemTop, IntCode, and IntEnb are allocated elsewhere on DOS. * microcode/Attic/dossig.c[1.4]: Merge in latest changes: timer interrupts and exceptions when using X32. * microcode/Attic/dosexcp.c[1.2], microcode/Attic/dosexcp.h[1.2]: Merge in latest changes: timer interrupts and exceptions when using X32. * microcode/Attic/doskbutl.asm[1.3]: Merge in latest changes (tiny model instead of small). * microcode/Attic/dosxcutl.asm[1.1.1.1]: Alternate trap handler for X32. * microcode/Attic/dosxcutl.asm[1.2]: Add support for exception handling under X32. * microcode/cmpauxmd/i386.m4[1.24]: Merge in latest changes (tiny model, Registers allocated elsewhere under DOS). 1992-07-25 Guillermo J. Rozas * compiler/documentation/porting.guide[1.24]: Update after 386 and Alpha ports. 1992-07-24 Chris Hanson * runtime/runtime.pkg[14.157], runtime/stream.scm[14.7]: Implement STREAM-FIRST and STREAM-REST as aliases for STREAM-CAR and STREAM-CDR, respectively. 1992-07-23 Guillermo J. Rozas * microcode/primutl.c[9.57]: Declare some strings correctly and cast where appropriate. * microcode/ospty.h[1.2]: Fix incorrect presence macro. * microcode/unxutl/Attic/config[1.16]: Add Alpha entries. * microcode/bchgcc.h[9.51]: read and write return ssize_t. * microcode/Attic/config.h[9.72]: Rename alpha preprocessor macro. * microcode/obstack.c[1.5], microcode/obstack.h[1.8]: int->long for 64-bit systems. * microcode/Attic/oscond.h[1.10]: Make OS conditionalziation consistent. * microcode/tparam.c[1.4]: Remove unneeded alpha conditionalization. 1992-07-21 Brian K. Zuzga * runtime/global.scm[14.39]: Add dump-option option to fasdump. 1992-07-21 Chris Hanson * runtime/global.scm[14.40], runtime/scomb.scm[14.12], runtime/uenvir.scm[14.27]: Eliminate bad cold-load dependency. * microcode/fixnum.c[9