Chris Hanson [Sat, 2 Jan 1988 14:21:45 +0000 (14:21 +0000)]
Change definitions and names of operations on objects whose type is
`delayed'. Old name for such objects was `delayed-evaluation', new
name is `promise'. The microcode has been extended to allow a new
kind of `promise', distinguished by a fixnum zero in its car, whose
cdr is a procedure of no arguments which is applied to get the value.
This is used to support compiled promises.
Chris Hanson [Sat, 2 Jan 1988 14:05:57 +0000 (14:05 +0000)]
Changes to `force' primitive to support compiled `delay'. Bug fixes
to "regex.c" from JRM.
Panayotis Skordos [Thu, 31 Dec 1987 18:51:55 +0000 (18:51 +0000)]
Changed the name of local variable in loop macros to
avoid conflict/shadowing of other variables.
"i" ----> "mcrindx".
Chris Hanson [Thu, 31 Dec 1987 10:43:40 +0000 (10:43 +0000)]
Change macros because of randomness in scode-optimizer.
Chris Hanson [Thu, 31 Dec 1987 10:26:18 +0000 (10:26 +0000)]
Add missing rule for type-test of offset memory location.
Chris Hanson [Thu, 31 Dec 1987 10:01:50 +0000 (10:01 +0000)]
Change particular constructors from procedures to macros so we can
inline code them as calls to `vector', rather than as lexpr primitives
which call `list->vector'.
Chris Hanson [Thu, 31 Dec 1987 08:51:44 +0000 (08:51 +0000)]
Implement open coding of `vector' primitive. Change primitive open
coding so that arguments which are known constants or references to
known locations do not use intermediate registers if possible.
Chris Hanson [Thu, 31 Dec 1987 07:01:21 +0000 (07:01 +0000)]
Change treatment of interpreter memory registers so that they do not
cause invalidation of random memory addresses. No other pointers will
ever point into that address block.
Chris Hanson [Thu, 31 Dec 1987 05:51:14 +0000 (05:51 +0000)]
Change symbol table representation for disassembler so that it can
find multiple symbols with the same offset and print them. Also
needed to find when one of the symbols is external but not all of
them.
Chris Hanson [Thu, 31 Dec 1987 05:49:33 +0000 (05:49 +0000)]
Must invalidate memory for all assignments. Was losing in case where
destination of assignment was non-volatile and source was volatile.
Joe Marshall [Wed, 30 Dec 1987 21:43:43 +0000 (21:43 +0000)]
re_compile_fastmap
1) regexpcode_exact_n grabbed wrong character (wrong index)
2) regexpcode_any_char fell into next case (no goto)
RE_SEARCH_FORWARD_FAST
Conditional backward
RE_SEARCH_BACKWARD_FAST
Conditional backward
Chris Hanson [Wed, 30 Dec 1987 10:53:57 +0000 (10:53 +0000)]
Fix stupid bugs relating to invocation of lexpr primitives.
Chris Hanson [Wed, 30 Dec 1987 09:10:36 +0000 (09:10 +0000)]
The procedure's name is not a variable, just a symbol now.
Chris Hanson [Wed, 30 Dec 1987 09:09:57 +0000 (09:09 +0000)]
*ic-procedure-headers* needs to associate with external labels, not
internal ones.
Chris Hanson [Wed, 30 Dec 1987 08:33:43 +0000 (08:33 +0000)]
Split alpha subdirectory into fggen and fgopt.
Chris Hanson [Wed, 30 Dec 1987 08:21:49 +0000 (08:21 +0000)]
Move butils to etc subdirectory.
Chris Hanson [Wed, 30 Dec 1987 07:13:28 +0000 (07:13 +0000)]
Final check-in for version 4.1 of compiler.
Chris Hanson [Wed, 23 Dec 1987 04:48:05 +0000 (04:48 +0000)]
Implement `LEXPR' primitive arity, which translates to `-1'.
Chris Hanson [Wed, 23 Dec 1987 04:22:11 +0000 (04:22 +0000)]
Implement `vector' as primitive.
Chris Hanson [Wed, 23 Dec 1987 03:47:41 +0000 (03:47 +0000)]
Implement `vector' primitive.
Chris Hanson [Wed, 23 Dec 1987 03:46:10 +0000 (03:46 +0000)]
Implement `vector' primitive. Add some machinery to facilitate
definition of other lexpr primitives.
Chris Hanson [Wed, 23 Dec 1987 03:44:55 +0000 (03:44 +0000)]
Implement more argument macros. Implement two new macros, `ARG_LOC'
and `LEXPR_N_ARGUMENTS', to facilitate writing lexpr primitives.
Chris Hanson [Wed, 23 Dec 1987 03:43:31 +0000 (03:43 +0000)]
Implement more powerful operations for manipulating stack locatives.
These are useful for writing lexpr primitives.
Chris Hanson [Fri, 18 Dec 1987 00:03:51 +0000 (00:03 +0000)]
Alter `OS_tty_read_char' under unix so that it echoes the input if the
standard input is a file.
Chris Hanson [Thu, 17 Dec 1987 20:34:34 +0000 (20:34 +0000)]
Define `string-hash-mod' in the global environment.
Chris Hanson [Thu, 17 Dec 1987 04:12:31 +0000 (04:12 +0000)]
Typo in `subvector_move_prefix'.
Chris Hanson [Wed, 16 Dec 1987 19:39:33 +0000 (19:39 +0000)]
Fix several bugs in "vector.c" found by Morry Katz, mostly having to
do with indices not being checked to eliminate negative numbers.
Reorganize and update all of the code.
Chris Hanson [Wed, 16 Dec 1987 19:38:05 +0000 (19:38 +0000)]
Fix several bugs found by Morry Katz, mostly having to do with indices
not being checked to eliminate negative numbers. Reorganize and
update all of the code.
Chris Hanson [Tue, 15 Dec 1987 16:07:57 +0000 (16:07 +0000)]
Make `arg_channel' be a public function per request of AAB.
Chris Hanson [Mon, 14 Dec 1987 00:15:38 +0000 (00:15 +0000)]
Change `System_Clock' to `OS_process_clock', scaling in milliseconds
instead of centiseconds. Implement `real-time-clock' primitive.
Implement "suspension" feature which generates special interrupt.
This feature is activated by SIGHUP.
Chris Hanson [Sun, 13 Dec 1987 22:47:00 +0000 (22:47 +0000)]
Update this to match microcode.
Chris Hanson [Sun, 13 Dec 1987 22:19:36 +0000 (22:19 +0000)]
Add new interrupt code which means that the interpreter was
requested to exit by some external source.
Chris Hanson [Sun, 13 Dec 1987 21:59:30 +0000 (21:59 +0000)]
Add new termination code which means that the interpreter was
requested to exit by some external source.
Chris Hanson [Sun, 13 Dec 1987 21:23:53 +0000 (21:23 +0000)]
Change `System_Clock' to `OS_process_clock', scaling in milliseconds
instead of centiseconds.
Panayotis Skordos [Sun, 13 Dec 1987 00:12:39 +0000 (00:12 +0000)]
fixed histogram
Panayotis Skordos [Sat, 12 Dec 1987 22:06:42 +0000 (22:06 +0000)]
Added array-read-ascii-file, array-write-ascii-file
Removed array-log! (covered by array-unary-function!).
Panayotis Skordos [Sat, 12 Dec 1987 19:13:51 +0000 (19:13 +0000)]
*** empty log message ***
Chris Hanson [Fri, 11 Dec 1987 16:13:21 +0000 (16:13 +0000)]
Fix mistaken bug fix of last revision.
Chris Hanson [Thu, 10 Dec 1987 21:52:18 +0000 (21:52 +0000)]
The type object being constructed for named structures of type LIST
was incorrect.
Chris Hanson [Thu, 10 Dec 1987 04:01:50 +0000 (04:01 +0000)]
Fix typo.
Chris Hanson [Thu, 10 Dec 1987 02:40:19 +0000 (02:40 +0000)]
Change `xscheme-select-process-buffer' to select the window of the
Scheme process if that is visible.
Guillermo J. Rozas [Wed, 9 Dec 1987 22:35:43 +0000 (22:35 +0000)]
Add the STACK-TOP-ADDRESS primitive to comutl.c for use by the
compiled code debugger.
Guillermo J. Rozas [Wed, 9 Dec 1987 22:11:26 +0000 (22:11 +0000)]
Typo.
Guillermo J. Rozas [Wed, 9 Dec 1987 21:51:55 +0000 (21:51 +0000)]
Add hooks for the compiled code debugger.
Joe Marshall [Wed, 9 Dec 1987 21:37:43 +0000 (21:37 +0000)]
Fix RE-CHAR-SET-ADJOIN! to have arg_ascii_integer.
Guillermo J. Rozas [Wed, 9 Dec 1987 06:31:42 +0000 (06:31 +0000)]
Fix bug in purify
Under some circumstances (prob = 1/512) a bufferfull was lost between
the pure copy and the constant copy, because the header overflowed the
free buffer, and the free buffer dumping code assumed that the buffer
would be dumped when scan was dumped, but scan was reinitialized
immediately.
Chris Hanson [Tue, 8 Dec 1987 14:01:05 +0000 (14:01 +0000)]
Implement error message for unrecognized slot options.
Chris Hanson [Tue, 8 Dec 1987 13:56:09 +0000 (13:56 +0000)]
Major redesign of front end of compiler. Continuations are now
modeled more exactly by means of a CPS-style analysis. Poppers have
been flushed in favor of dynamic links, and optimizations have been
added that eliminate the use of static and dynamic links in many
cases.
Chris Hanson [Mon, 7 Dec 1987 10:38:16 +0000 (10:38 +0000)]
Adjust documentation to reflect behavior on older releases of Scheme.
Chris Hanson [Mon, 7 Dec 1987 10:23:15 +0000 (10:23 +0000)]
Minor tweaks.
Chris Hanson [Mon, 7 Dec 1987 09:59:01 +0000 (09:59 +0000)]
Add command to select the process buffer automatically.
Chris Hanson [Mon, 7 Dec 1987 09:42:13 +0000 (09:42 +0000)]
Improve documentation substantially. Add a message which is displayed
at the start of the Scheme process to tell novices what to do. This
can be disabled by setting it to the empty string. Change the
handling of the keymaps so that they do not inherit. Implement a
command to signal the interpreter to proceed from a breakpoint.
Change the names of the major modes to be more systematic.
Chris Hanson [Mon, 7 Dec 1987 09:38:00 +0000 (09:38 +0000)]
Change documentation for scheme-mode to indicate extra stuff for
controlling the inferior process. Undo some earlier organizational
changes because xscheme no longer uses the hooks that were provided.
Chris Hanson [Mon, 7 Dec 1987 04:47:23 +0000 (04:47 +0000)]
Add variable `xscheme-allow-pipelined-evaluation' to control whether
errors are signalled when attempting to overlap evaluations. By
default, such pipelining is allowed. Change `xscheme-message' so that
it writes a message to in the Scheme process buffer and echoes in the
minibuffer much the same way that values are displayed.
Chris Hanson [Mon, 7 Dec 1987 02:39:58 +0000 (02:39 +0000)]
Add `examples' directory to distribution.
Chris Hanson [Sat, 5 Dec 1987 19:56:04 +0000 (19:56 +0000)]
Create third keymap which is exclusively for Scheme process buffer in
REP mode. Cause all three keymaps to inherit dynamically. Fix bug in
which value of evaluation was not shown in message area when the
Scheme process buffer was visible but not its output mark. Change
process runlight and mode strings so that they appear only in Scheme
buffers.
Chris Hanson [Sat, 5 Dec 1987 17:27:18 +0000 (17:27 +0000)]
*** empty log message ***
Chris Hanson [Sat, 5 Dec 1987 17:02:07 +0000 (17:02 +0000)]
Change Emacs interface to have special mode for `debug' and `where'.
Chris Hanson [Sat, 5 Dec 1987 16:40:57 +0000 (16:40 +0000)]
Change Emacs interface to have special mode for `debug' and `where'.
Guillermo J. Rozas [Fri, 4 Dec 1987 22:20:47 +0000 (22:20 +0000)]
Some changes to make calling primitives from compiled code cheaper:
- Primitives back out in the interpreter, rather than directly.
- A table with the arity in bytes has been added to usrdef.c
- Primitive objects have two fields: a table index for invocation,
and a virtual number for bookkeeping purposes. The table index is
always valid, even for unimplemented primitives. In this case it
points to a procedure which causes an UNIMPLEMENTE-PRIMITIVE error
when invoked. The back out mechanism takes care
Chris Hanson [Fri, 4 Dec 1987 20:35:52 +0000 (20:35 +0000)]
Major redesign of front end of compiler. Continuations are now
modeled more exactly by means of a CPS-style analysis. Poppers have
been flushed in favor of dynamic links, and optimizations have been
added that eliminate the use of static and dynamic links in many
cases.
Chris Hanson [Fri, 4 Dec 1987 20:18:28 +0000 (20:18 +0000)]
Major redesign of front end of compiler. Continuations are now
modeled more exactly by means of a CPS-style analysis. Poppers have
been flushed in favor of dynamic links, and optimizations have been
added that eliminate the use of static and dynamic links in many
cases.
Chris Hanson [Fri, 4 Dec 1987 20:05:24 +0000 (20:05 +0000)]
Major redesign of front end of compiler. Continuations are now
modeled more exactly by means of a CPS-style analysis. Poppers have
been flushed in favor of dynamic links, and optimizations have been
added that eliminate the use of static and dynamic links in many
cases.
Chris Hanson [Fri, 4 Dec 1987 19:28:21 +0000 (19:28 +0000)]
Major redesign of front end of compiler. Continuations are now
modeled more exactly by means of a CPS-style analysis. Poppers have
been flushed in favor of dynamic links, and optimizations have been
added that eliminate the use of static and dynamic links in many
cases.
Chris Hanson [Fri, 4 Dec 1987 19:24:45 +0000 (19:24 +0000)]
Change `else' to `t' in final clause of cond.
Chris Hanson [Fri, 4 Dec 1987 19:23:42 +0000 (19:23 +0000)]
*** empty log message ***
Chris Hanson [Fri, 4 Dec 1987 19:18:26 +0000 (19:18 +0000)]
*** empty log message ***
Chris Hanson [Fri, 4 Dec 1987 19:06:50 +0000 (19:06 +0000)]
Major redesign of front end of compiler. Continuations are now
modeled more exactly by means of a CPS-style analysis. Poppers have
been flushed in favor of dynamic links, and optimizations have been
added that eliminate the use of static and dynamic links in many
cases.
Chris Hanson [Fri, 4 Dec 1987 18:58:01 +0000 (18:58 +0000)]
Conditionalize `xscheme-send-interrupt' so that it sends the
terminating NUL only when synchronization is enabled.
Guillermo J. Rozas [Fri, 4 Dec 1987 11:56:07 +0000 (11:56 +0000)]
Patch because compiled-error-procedure is not a real primitive. It's
arity cannot be found.
Chris Hanson [Fri, 4 Dec 1987 10:07:31 +0000 (10:07 +0000)]
Initial revision
Guillermo J. Rozas [Fri, 4 Dec 1987 06:17:32 +0000 (06:17 +0000)]
Get the compiler ready for "lexpr" primitives.
Guillermo J. Rozas [Fri, 4 Dec 1987 05:16:15 +0000 (05:16 +0000)]
Makefile 9.59
Findprim.c 9.31
unix.c 9.45
cmp68020.s 9.63
Update Makefile to match the new C compiler.
Add missing declaration in Findprim.c noticed in VMS.
Invert name of cpp option in unix.c .
Fix restarting bugs in cmp68020.s .
Guillermo J. Rozas [Thu, 3 Dec 1987 19:30:52 +0000 (19:30 +0000)]
Add declaration for VMS.
Joe Marshall [Tue, 1 Dec 1987 16:34:04 +0000 (16:34 +0000)]
Fix end of SCAN-SEXPS-FORWARD to return a valid object.
Guillermo J. Rozas [Wed, 25 Nov 1987 01:39:12 +0000 (01:39 +0000)]
Add reg:lexpr-primitive-arity and entry:compiler-primitive-lexpr-apply
Joe Marshall [Tue, 24 Nov 1987 22:27:04 +0000 (22:27 +0000)]
Fix typo in PARSE-NAME that caused "." to parse into ".."
Guillermo J. Rozas [Tue, 24 Nov 1987 07:58:33 +0000 (07:58 +0000)]
Fix a couple of minor (although fatal) bugs:
- lseek was being invoked with arguments in the wrong order.
- table_end was being used instead of table_top in the call to
initialize_primitive_table.
Chris Hanson [Mon, 23 Nov 1987 18:32:32 +0000 (18:32 +0000)]
Conditionalize ^G synchronization code so that it is in effect only
for hp-ux.
Chris Hanson [Mon, 23 Nov 1987 17:35:16 +0000 (17:35 +0000)]
Change `OS_working_dir_pathname' to attempt to use `getcwd' first,
then default to the user's home directory if that fails.
Chris Hanson [Mon, 23 Nov 1987 06:46:36 +0000 (06:46 +0000)]
Previous changes introduced dependency on "string.h".
Chris Hanson [Mon, 23 Nov 1987 06:37:38 +0000 (06:37 +0000)]
Shorten names of some files to allow Emacs version numbers to be used
on ATT file systems. Add alternative primitive definition macro which
works correctly with Emacs tags tables.
Chris Hanson [Mon, 23 Nov 1987 05:18:09 +0000 (05:18 +0000)]
Shorten names of some files to allow Emacs version numbers to be used
on ATT file systems. Add alternative primitive definition macro which
works correctly with Emacs tags tables.
Chris Hanson [Mon, 23 Nov 1987 05:07:42 +0000 (05:07 +0000)]
Shorten names of some files to allow Emacs version numbers to be used
on ATT file systems. Add alternative primitive definition macro which
works correctly with Emacs tags tables.
`STRING->SYNTAX-ENTRY' was not allowing trailing spaces in the
argument.
`SCAN-SEXPS-FORWARD' was returning #F under some circumstances,
instead of a state vector.
Chris Hanson [Mon, 23 Nov 1987 04:57:02 +0000 (04:57 +0000)]
Shorten names of some files to allow Emacs version numbers to be used
on ATT file systems. Add alternative primitive definition macro which
works correctly with Emacs tags tables.
Chris Hanson [Mon, 23 Nov 1987 04:55:56 +0000 (04:55 +0000)]
Shorten names of some files to allow Emacs version numbers to be used
on ATT file systems.
Chris Hanson [Mon, 23 Nov 1987 04:55:17 +0000 (04:55 +0000)]
Add alternative primitive definition macro which works correctly with
Emacs tags tables.
Chris Hanson [Sun, 22 Nov 1987 22:17:39 +0000 (22:17 +0000)]
Remove code for `check-and-clean-up-interrupt-channel'. This has been
moved to two places: (1) the buffer-flushing code has moved into the
microcode, and (2) the interrupt acknowledgement has been moved to the
interrupt system.
Chris Hanson [Sun, 22 Nov 1987 22:16:08 +0000 (22:16 +0000)]
Change ^G interrupt handler to signal Emacs indicating that the
interrupt has been received.
Guillermo J. Rozas [Sat, 21 Nov 1987 18:47:39 +0000 (18:47 +0000)]
Some bug fixes by CPH.
Change to make primitives be renumbered by the fasloader.
When make is loaded it now asks whether it should be loaded compiled
or interpreted.
Guillermo J. Rozas [Sat, 21 Nov 1987 18:46:28 +0000 (18:46 +0000)]
Primitives are fecthed from the constant block, and passed as objects
to the appropriate microcode utility.
Guillermo J. Rozas [Sat, 21 Nov 1987 18:45:34 +0000 (18:45 +0000)]
Abstract the constant object to label procedures.
Guillermo J. Rozas [Sat, 21 Nov 1987 18:43:08 +0000 (18:43 +0000)]
Primitives are no longer considered non-pointers by the compiler.
They must appear in the constant block (rather than as immediate
constants in the instruction stream) so the fasloader can renumber
them.
Guillermo J. Rozas [Sat, 21 Nov 1987 18:06:51 +0000 (18:06 +0000)]
Rewrite sort!, uncomment it, and make sort handle vectors and do some
argument checking.
Guillermo J. Rozas [Sat, 21 Nov 1987 18:06:02 +0000 (18:06 +0000)]
Use number->string directly rather than write-to-string.
Panayotis Skordos [Fri, 20 Nov 1987 16:39:02 +0000 (16:39 +0000)]
Array-Make-Histogram was using (n-1) bins when asked for n-bin
histogram. Fixed.
Guillermo J. Rozas [Fri, 20 Nov 1987 08:21:12 +0000 (08:21 +0000)]
1) The version of memtop used by compiled code was being set to the
opposite value from that desired.
2) Eliminate all remaining uses of Request_Interrupt .
3) Clean up the eventual pushing stuff in interpret.c .
4) Fix a potential stacklet bug in error-procedure.
5) Make the compiled code interface always update memtop on interrupts
or gc.
6) Eliminate some code in non-stacklet version in interpret.c
7) Bintopsb and Psbtobin have been updated to handle compiled code.
Chris Hanson [Wed, 18 Nov 1987 22:32:07 +0000 (22:32 +0000)]
Fix bug in rule: target register being allocated BEFORE deletion of
dead registers rather than AFTER.
Guillermo J. Rozas [Wed, 18 Nov 1987 19:31:34 +0000 (19:31 +0000)]
Some changes for primitives accessed specially from compiled code
(arithmetic).
Guillermo J. Rozas [Wed, 18 Nov 1987 00:09:22 +0000 (00:09 +0000)]
Allow #T as a parameter make tohe microcode version of
make-primitive-procedure.