Joe Marshall [Wed, 15 Jun 1988 18:35:33 +0000 (18:35 +0000)]
Change unparsing of compiled procedures to be more informative.
Joe Marshall [Wed, 15 Jun 1988 18:24:01 +0000 (18:24 +0000)]
Added compiler-info package.
Joe Marshall [Wed, 15 Jun 1988 18:21:19 +0000 (18:21 +0000)]
Initial revision
Joe Marshall [Wed, 15 Jun 1988 16:04:05 +0000 (16:04 +0000)]
Add procedures DISCRIMINATE-COMPILED-ENTRY and
COMPILED-CODE-BLOCK/MANIFEST-CLOSURE?
Chris Hanson [Tue, 14 Jun 1988 14:45:31 +0000 (14:45 +0000)]
Do not unsyntax a `make-environment' special form unless the last
action in its body is `the-environment'.
Chris Hanson [Tue, 14 Jun 1988 10:32:05 +0000 (10:32 +0000)]
Always load compiled if possible. Adjust version to agree with RCS
version.
Chris Hanson [Tue, 14 Jun 1988 10:29:46 +0000 (10:29 +0000)]
Adjust formatting of package filenames.
Chris Hanson [Tue, 14 Jun 1988 09:38:11 +0000 (09:38 +0000)]
Merge in vector range checking.
Chris Hanson [Tue, 14 Jun 1988 09:11:03 +0000 (09:11 +0000)]
Merge in vector range checking.
Chris Hanson [Tue, 14 Jun 1988 08:58:17 +0000 (08:58 +0000)]
Initial revision
Chris Hanson [Tue, 14 Jun 1988 08:55:55 +0000 (08:55 +0000)]
First checkin for runtime system version 14.
Chris Hanson [Tue, 14 Jun 1988 08:48:58 +0000 (08:48 +0000)]
First checkin for runtime system version 14.
Chris Hanson [Tue, 14 Jun 1988 08:11:04 +0000 (08:11 +0000)]
First checkin for runtime version 14.
Chris Hanson [Mon, 13 Jun 1988 13:06:17 +0000 (13:06 +0000)]
*** empty log message ***
Chris Hanson [Mon, 13 Jun 1988 13:05:41 +0000 (13:05 +0000)]
*** empty log message ***
Chris Hanson [Mon, 13 Jun 1988 12:38:37 +0000 (12:38 +0000)]
Initial revision
Chris Hanson [Mon, 13 Jun 1988 12:31:31 +0000 (12:31 +0000)]
First checkin for runtime system version 14.
Chris Hanson [Mon, 13 Jun 1988 12:07:50 +0000 (12:07 +0000)]
First checkin for version 14.
Chris Hanson [Mon, 13 Jun 1988 12:00:56 +0000 (12:00 +0000)]
First checkin for version 14.
Chris Hanson [Mon, 13 Jun 1988 10:50:01 +0000 (10:50 +0000)]
*** empty log message ***
Chris Hanson [Fri, 10 Jun 1988 07:58:04 +0000 (07:58 +0000)]
Fix nasty bug in tty interrupt code. The symptom of the bug was:
typing ^G while the microcode was in `TYI_Immediate' caused the next
read from the tty to get EOF; subsequently Scheme signalled TERM_EOF.
The problem was that there was local storage in `TYI_Immediate', which
contained trash after the interrupt performed a `longjmp' back into
the procedure. According to the definition of `setjmp', it is illegal
to depend on such local storage. We are unlucky in that only a little
bit of the local storage was affected so it took a long time to notice
this problem.
This was fixed by introducing a fluid-binding mechanism to allocate
and deallocate local state. There may be a problem with the
interaction between `longjmp' and this mechanism. If we `longjmp'
past the deallocation routine the world will be messed up.
Joe Marshall [Wed, 8 Jun 1988 16:10:06 +0000 (16:10 +0000)]
Fix to bitstr.c
Joe Marshall [Wed, 8 Jun 1988 16:05:31 +0000 (16:05 +0000)]
Attempt to fix one path through copy bits. I think this works,
but I make no claims about understanding why.
Chris Hanson [Tue, 7 Jun 1988 16:43:10 +0000 (16:43 +0000)]
Add new escape sequence which tells Emacs to change the working
directory of the Scheme process buffer.
Henry M. Wu [Sun, 5 Jun 1988 00:59:25 +0000 (00:59 +0000)]
Added complex number arithmetic (no trancendentals).
Henry M. Wu [Sat, 4 Jun 1988 23:23:21 +0000 (23:23 +0000)]
Added complex number abstraction.
Chris Hanson [Fri, 3 Jun 1988 23:54:57 +0000 (23:54 +0000)]
(cse/assign) Notice pops from stack and adjust stack pointer
accordingly. Can't understand why this wasn't noticed before.
Chris Hanson [Fri, 3 Jun 1988 15:14:13 +0000 (15:14 +0000)]
Variety of bug fixes. Also revert this file so that the names
exported from the compiler package are put directly in the global
environment, instead of the environment into which the file is loaded.
Chris Hanson [Fri, 3 Jun 1988 14:58:15 +0000 (14:58 +0000)]
(hash-table-insert!) If `hash' is false, do not link the resulting
element into a hash bucket -- just save it in the value chain.
Chris Hanson [Fri, 3 Jun 1988 14:56:55 +0000 (14:56 +0000)]
(invalidate-memory-destination!) Optimize this -- if both class and
hash are not given, don't bother to insert the element in the hash
table, because it will have no useful effect.
Chris Hanson [Fri, 3 Jun 1988 14:54:29 +0000 (14:54 +0000)]
(assignment-memory-insertion) Do not perform CSE on the memory
address. Doing that causes problems because the memory address cannot
be distinguished from a reference to that address. The RTL should be
fixed so that these things are distinguished, and then we can
re-enable memory address CSE.
Chris Hanson [Fri, 3 Jun 1988 14:51:51 +0000 (14:51 +0000)]
(add-pseudo-register-alias) Delete the alias from the register map
first. This prevents the map from having two entries for the same
alias, one of which is incorrect.
Chris Hanson [Fri, 3 Jun 1988 14:50:41 +0000 (14:50 +0000)]
Change `compiler:write-rtl-file' to do defaulting of file type
differently, and to allow an optional output file argument.
Chris Hanson [Sat, 28 May 1988 04:11:13 +0000 (04:11 +0000)]
Add new rule.
Chris Hanson [Fri, 20 May 1988 01:06:12 +0000 (01:06 +0000)]
*** empty log message ***
Mark Friedman [Thu, 19 May 1988 18:37:36 +0000 (18:37 +0000)]
Oops. Small bug with fixnum additions and subtractions of constants.
Mark Friedman [Thu, 19 May 1988 15:39:50 +0000 (15:39 +0000)]
open coded vector-ref and vector-set! for non-constant
indices.
Mark Friedman [Thu, 19 May 1988 15:32:53 +0000 (15:32 +0000)]
Added expression cost for FIXNUM->OBJECT.
Subtracted the boxing cost for the fixnum operations
because we now do the boxing explicitly via FIXNUM->OBJECT.
Mark Friedman [Thu, 19 May 1988 15:29:00 +0000 (15:29 +0000)]
Fixed code for fixnum operations involving constants.
Multiplication by a power of 2 becomes a shift.
If the fixnum operation is commutative and involves a
constant, better code may be generated by swaping the
order of the operands. This is now done.
Mark Friedman [Thu, 19 May 1988 15:26:57 +0000 (15:26 +0000)]
Added support for FIXNUM->OBJECT rtl type.
Removed the implicit boxing of fixnum operations
because it is now done explicitly by FIXNUM->OBJECT.
Mark Friedman [Thu, 19 May 1988 15:22:46 +0000 (15:22 +0000)]
Added an explicit FIXNUM->OBJECT rtl type for eventual
support for reusing the unboxed results of fixnum operations
Mark Friedman [Thu, 19 May 1988 15:10:36 +0000 (15:10 +0000)]
Open coded vector-ref and vector-set! with non-constant indices.
No index range checking yet.
Commented out code for open codinf of system-... functions with
side effects. These were causing an esoteric GC problem.
Guillermo J. Rozas [Thu, 19 May 1988 01:47:37 +0000 (01:47 +0000)]
Fix bug in INTERPRETER-REGISTER. It now checks whether the offset is
a known offset directly, and if not, it tries the aligned version
instead. The bug was noticed because interpreter entries are 6 bytes
long, so only half of them are aligned, and the others were not found.
Henry M. Wu [Tue, 17 May 1988 16:57:01 +0000 (16:57 +0000)]
Character Stuff.
Guillermo J. Rozas [Sat, 14 May 1988 16:20:17 +0000 (16:20 +0000)]
Disassembler changes:
- Fix unbound variable bugs in the disassembler.
- Fix symbolic/numeric register bug.
- Fix bug backing out of undefined instructions.
- Make bad 68020 extended forms back out instead of causing errors.
- Add handlers for 68020 32/64 bit multiplication and division.
Chris Hanson [Fri, 13 May 1988 03:01:07 +0000 (03:01 +0000)]
Add aliases for `object-new-type' and `primitive-object-new-type'.
Chris Hanson [Thu, 12 May 1988 22:28:29 +0000 (22:28 +0000)]
Conditionalize phase error test so that it is ignored if
FLOATING_ALIGNMENT is defined. This will eventually be fixed
correctly.
Chris Hanson [Wed, 11 May 1988 17:21:16 +0000 (17:21 +0000)]
Bugs: `object-gc-type' was using `MAKE_UNSIGNED_FIXNUM' to compute its
result when in fact the result was signed. `object-set-type' was
going to `Microcode_Termination' when its first argument was an
unknown type code, rather than signalling a bad-range error.
Guillermo J. Rozas [Wed, 11 May 1988 04:20:07 +0000 (04:20 +0000)]
Initial revision
Guillermo J. Rozas [Wed, 11 May 1988 04:19:27 +0000 (04:19 +0000)]
Add a REDUCE-OPERATOR declaration so that users can get the same
functionality as the system already provides for +, -, list, etc.
Shorten some of the warning messages.
Henry M. Wu [Tue, 10 May 1988 19:53:41 +0000 (19:53 +0000)]
Added knowledge of byte/char operations
Chris Hanson [Tue, 10 May 1988 18:14:04 +0000 (18:14 +0000)]
Change type check on first argument to `dump-band' to include all
applicable types.
Change definitions of SMALLEST_FIXNUM and BIGGEST_FIXNUM to have
explicit casts to long type. Previously this was automatically true
but ANSI C forces such constants to be unsigned long instead.
Chris Hanson [Tue, 10 May 1988 18:12:45 +0000 (18:12 +0000)]
Change type check on first argument to `dump-band' to include all
applicable types.
Chris Hanson [Tue, 10 May 1988 17:34:41 +0000 (17:34 +0000)]
Change definitions of SMALLEST_FIXNUM and BIGGEST_FIXNUM to have
explicit casts to long type. Previously this was automatically true
but ANSI C forces such constants to be unsigned long instead.
Chris Hanson [Tue, 10 May 1988 15:16:46 +0000 (15:16 +0000)]
Move `get-fluid-bindings' and `set-fluid-bindings!' into the normal
microcode. This allows the new runtime system to have the hooks for
fluid-bindings even if they aren't in use.
Henry M. Wu [Tue, 10 May 1988 00:38:45 +0000 (00:38 +0000)]
CHAR/STRING open-coding, bug fix
Henry M. Wu [Tue, 10 May 1988 00:10:33 +0000 (00:10 +0000)]
CHAR/STRING open-coding, bug fix
Henry M. Wu [Mon, 9 May 1988 20:01:32 +0000 (20:01 +0000)]
CHAR/STRING open-coding
Henry M. Wu [Mon, 9 May 1988 19:57:17 +0000 (19:57 +0000)]
Added string/char open-coding.
Chris Hanson [Fri, 6 May 1988 12:40:26 +0000 (12:40 +0000)]
Default `load-noisily?' to false. People seem to prefer this.
Chris Hanson [Fri, 6 May 1988 09:09:44 +0000 (09:09 +0000)]
Update `primitive-purify' to new interface. Forgot to do this one
when the regular version was updated.
Chris Hanson [Thu, 5 May 1988 09:35:34 +0000 (09:35 +0000)]
Eliminate random escape from string. Rename variable `string' to
`str' because `string' is a typedef. HP compiler works but this is
illegal combination.
Chris Hanson [Thu, 5 May 1988 09:29:44 +0000 (09:29 +0000)]
Illegal to take address of a variable that has been declared
`register'. HP's compiler never complained by GCC does.
Chris Hanson [Thu, 5 May 1988 08:42:47 +0000 (08:42 +0000)]
Change interface of `primitive-purify' to take an extra argument,
`safety-margin' (which works like the argument to `garbage-collect'),
and returns an extra value (which is like the value of
`garbage-collect'). These changes will allow purify to be used
instead of gc when desired.
Guillermo J. Rozas [Wed, 4 May 1988 20:44:33 +0000 (20:44 +0000)]
1) Change -compiler to default parameters, so that they can be
overriden with -band, -heap, etc.
2) Add double MC68881 code in hand-coded generic arithmetic for use by
compiled code.
Guillermo J. Rozas [Wed, 4 May 1988 19:22:12 +0000 (19:22 +0000)]
1) Change -compiler to default parameters, so that they can be
overriden with -band, -heap, etc.
2) Add double MC68881 code in hand-coded generic arithmetic for use by
compiled code.
Guillermo J. Rozas [Wed, 4 May 1988 04:17:49 +0000 (04:17 +0000)]
Increment COMPILER_CONSTANT_SIZE and COMPILER_HEAP_SIZE.
Guillermo J. Rozas [Tue, 3 May 1988 21:53:15 +0000 (21:53 +0000)]
Initial revision
Guillermo J. Rozas [Tue, 3 May 1988 19:22:09 +0000 (19:22 +0000)]
Implement environment-link-name.
Split lookup.c into lookup.c and lookprm.c which contains the
primitive procedures to invoke the lookup code.
Guillermo J. Rozas [Tue, 3 May 1988 19:04:42 +0000 (19:04 +0000)]
Fix paranoia bug in list.scm (map, map*, and for-each were not
paranoid enough).
Add error handlers for environment-link-name.
Guillermo J. Rozas [Tue, 3 May 1988 18:55:13 +0000 (18:55 +0000)]
Fix paranoia bug in list.scm (map, map*, and for-each were not
paranoid enough).
Add error handlers for environment-link-name.
Guillermo J. Rozas [Tue, 3 May 1988 16:30:39 +0000 (16:30 +0000)]
Restore bad-assignment error for environment-link-name.
Henry M. Wu [Tue, 3 May 1988 01:09:33 +0000 (01:09 +0000)]
Added information on FIXNUM size.
Henry M. Wu [Tue, 3 May 1988 01:04:25 +0000 (01:04 +0000)]
Fixed bug with FIXNUM-CONSTANT not sign-extending.
Henry M. Wu [Tue, 3 May 1988 00:35:08 +0000 (00:35 +0000)]
Added information on FIXNUM size.
Henry M. Wu [Mon, 2 May 1988 23:53:41 +0000 (23:53 +0000)]
Added information on FIXNUM size.
Mark Friedman [Fri, 29 Apr 1988 15:04:16 +0000 (15:04 +0000)]
OOPS. Last version had a missinbg paren.
Mark Friedman [Fri, 29 Apr 1988 14:55:22 +0000 (14:55 +0000)]
Added support for open coding of fixnum arithmetic and predicates.
Chris Hanson [Thu, 28 Apr 1988 18:52:03 +0000 (18:52 +0000)]
Always use a pipe to communicate with Scheme even if PTYs are
available. Scheme doesn't care and this fixes random PTY bugs.
Henry M. Wu [Wed, 27 Apr 1988 18:26:12 +0000 (18:26 +0000)]
Removed default mapping between ascii and mit-ascii.
Henry M. Wu [Wed, 27 Apr 1988 18:24:54 +0000 (18:24 +0000)]
Fixed position of meta bit, added ASCII names.
Guillermo J. Rozas [Wed, 27 Apr 1988 04:12:44 +0000 (04:12 +0000)]
deep_lookup was being called with an extraneous fourth argument.
Guillermo J. Rozas [Wed, 27 Apr 1988 03:07:56 +0000 (03:07 +0000)]
Fix a bug in local lexprs.
Guillermo J. Rozas [Wed, 27 Apr 1988 01:10:33 +0000 (01:10 +0000)]
Fix a bug in local lexprs.
Guillermo J. Rozas [Wed, 27 Apr 1988 01:09:19 +0000 (01:09 +0000)]
Remove RC_REPEAT_DISPATCH.
Chris Hanson [Tue, 26 Apr 1988 19:41:49 +0000 (19:41 +0000)]
Change `load' to interact better with Emacs interface. Dissect REP
loop slightly to allow its parts to be used independently by `load'.
Now whenever `load' prints a value it is also entered in the REP
printer history. Also, the value of the last file loaded is returned
to the REP loop as the value of the `load' expression.
All of this is useful for allowing Emacs to use `load' for zapping.
Now, zapping from a file is more or less equivalent to zapping through
a pipe. Before, there were significant differences, especially
noticeable in interaction with the printer history.
Mark Friedman [Tue, 26 Apr 1988 18:56:24 +0000 (18:56 +0000)]
Added a new test in optimize-rtl called rtl:optimizable?
Currently it is only used to prevent the optimization of
OBJECT->FIXNUM. This is done to prevent an explosion in the
number of rules necessary in the back end. See the commant in
optimize-rtl for more info.
Mark Friedman [Tue, 26 Apr 1988 18:52:37 +0000 (18:52 +0000)]
Added cse methods for FIXNUM-PRED-2-ARGS and FIXNUM-PRED-1-ARG.
This is in support of binary and unary open coded fixnum predicates.
Mark Friedman [Tue, 26 Apr 1988 18:48:18 +0000 (18:48 +0000)]
Added fixnums to non-object-invalidate. Someday we may not
need to do this. We may be able to keep these guys around.
See the log message for rtlbase/rtlcon.scm 4.6 for some more info.
Mark Friedman [Tue, 26 Apr 1988 18:33:37 +0000 (18:33 +0000)]
Support added for the generation of rtl for open coded fixnum
arithmetic and predicates.
NOTE: Someday, when we have some support for the persistance of
untyped objects (i.e. when we have some way of saving unboxed
fixnums across GC calls) we can do some fancier things such as
eliminating the boxing of a fixnum calculation which is just going
to be unboxed and used in another fixnum calculation. My idea
for doing this is to add an explicit FIXNUM->OBJECT rtl expression
and when OBJECT->FIXNUM is simplified and its operand is FIXNUM->OBJECT
then cancel them out and return the operand of the FIXNUM->OBJECT.
The result of an fixnum expression expression will then have to be
considered an RTL:FIXNUM-VALUED-EXPRESSION? and OBJECT-NON-INVALIDATE
will have to be updated.
Mark Friedman [Mon, 25 Apr 1988 21:45:08 +0000 (21:45 +0000)]
Added a FIXNUM type of register analagous to ADDRESS registers.
Their current use is to hold the results of OBJECT->FIXNUM expressions
and assignments of such registers to other registers. We have to tell
the cse code that such registers and expressions are invalid across
anything that can call the garbage collector. This is because the
garbage collector would currently barf on such values that have no
type codes (i.e. fixnums which have had their type codes removed).
In the future, FIXNUM registers may contain the reults of fixnum
arithmetic expressions, so that we are not doing so much boxing and
unboxing. Currently however, all such results are boxed into their
destinations.
Mark Friedman [Mon, 25 Apr 1988 21:34:43 +0000 (21:34 +0000)]
Added a FIXNUM type of register analagous to ADDRESS registers.
Their current use is to hold the results of OBJECT->FIXNUM expressions
and assignments of such registers to other registers. We have to tell
the cse code that such registers and expressions are invalid across
anything that can call the garbage collector. This is because the
garbage collector would currently barf on such values that have no
type codes (i.e. fixnums which have had their type codes removed).
In the future, FIXNUM registers may contain the reults of fixnum
arithmetic expressions, so that we are not doing so much boxing and
unboxing. Currently however, all such results are boxed into their
destinations.
Mark Friedman [Mon, 25 Apr 1988 21:27:54 +0000 (21:27 +0000)]
Added the following RTL types for the support of fixnum operations:
FIXNUM-2-ARGS - for binary fixnum arithmetic operations
FIXNUM-1-ARG - for unary fixnum arithmetic operations
FIXNUM-PRED-2-ARGS - for binary fixnum predicates
FIXNUM-PRED-1-ARG - for unary fixnum-predicates
OBJECT->FIXNUM - for unboxing fixnum objects
Chris Hanson [Mon, 25 Apr 1988 17:50:01 +0000 (17:50 +0000)]
Rename variable `string' to `str'; it conflicts with a typedef of the
same name. Change character constant '\=' to '='; former is undefined
escape sequence.
Chris Hanson [Mon, 25 Apr 1988 17:30:02 +0000 (17:30 +0000)]
Fix typo.
Chris Hanson [Mon, 25 Apr 1988 15:43:08 +0000 (15:43 +0000)]
Change conditionalization of `__GNU__' to `__GNUC__'. Fix bug in
`flush_input_buffer()' on USG systems: argument is `int', not `int *'.
Change file I/O to unbuffered; tty I/O remains buffered using stdio.
Opening fasl output file now deletes existing file first.
Chris Hanson [Mon, 25 Apr 1988 12:53:38 +0000 (12:53 +0000)]
Add indentation for `with-values'.
Chris Hanson [Sun, 24 Apr 1988 10:04:59 +0000 (10:04 +0000)]
Remove random parens from end of #ifndef statements.
Chris Hanson [Sat, 23 Apr 1988 12:37:41 +0000 (12:37 +0000)]
Add missing rule.
Chris Hanson [Sat, 23 Apr 1988 08:55:34 +0000 (08:55 +0000)]
Move all `integrate-external' declarations into the files, using
relative pathnames.