Stephen Adams [Sun, 6 Aug 1995 20:00:24 +0000 (20:00 +0000)]
Removed %vector-index expressions and the indexify phase. The index
computation is now implicit and handled by rtlgen and dbgred.
Looking at the structure of some large programs (e.g. symb in
nscmutils) revealed that up to 32% of the text of a program was
%vector-index expressions. These get copied in every pass after
closconv/2. The `elegance' is not worth the performance hit. About
30% of the remaining text is %stack-closure-ref expressions. The
overhead could be reduced by introducing another KMP special form
(which would also mean that the DBG info would not need to compress
the expressions, saving time).
Stephen Adams [Sun, 6 Aug 1995 19:50:08 +0000 (19:50 +0000)]
Removed %vector-index expressions and the indexify phase. The index
computation is now implicit and handled by rtlgen and dbgred.
Looking at the structure of some large programs (e.g. symb in
nscmutils) revealed that up to 32% of the text of a program was
%vector-index expressions. These get copied in every pass after
closconv/2. The `elegance' is not worth the performance hit. About
30% of the remaining text is %stack-closure-ref expressions. The
overhead could be reduced by introducing another KMP special form
(which would also mean that the DBG info would not need to compress
the expressions, saving time).
Stephen Adams [Sun, 6 Aug 1995 19:24:46 +0000 (19:24 +0000)]
Added new, faster SORT-MACHINE-REGISTERS procedure.
Stephen Adams [Sun, 6 Aug 1995 15:53:07 +0000 (15:53 +0000)]
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.
Stephen Adams [Sat, 5 Aug 1995 16:26:53 +0000 (16:26 +0000)]
*** empty log message ***
Stephen Adams [Sat, 5 Aug 1995 16:25:13 +0000 (16:25 +0000)]
Initial revision
Stephen Adams [Sat, 5 Aug 1995 16:15:16 +0000 (16:15 +0000)]
Initial revision
Stephen Adams [Fri, 4 Aug 1995 19:48:50 +0000 (19:48 +0000)]
DBG-REDUCE now stored %stack-closure-ref (and also %read-closure-ref)
expressions in a compact form as this is the dominant expression kind.
CLOSCONV generates these expressions directly, and DBG-INFO/REMEMBER
converts others. STACKOPT is modified to update the stack frame
ordering and INDEXIFY leaves them alone (the call to vectro-index
occurs in DBG info generation).
Stephen Adams [Fri, 4 Aug 1995 17:35:53 +0000 (17:35 +0000)]
Fixed bug whereby (LOAD '("file" ... )) would load only the last file.
Stephen Adams [Fri, 4 Aug 1995 13:40:31 +0000 (13:40 +0000)]
Fixed COMPILED-PROCEDURE/ENVIRONMENT -- it was expecting an
`uncompressed' path and thus failing to recognize top-level IC
environments.
Stephen Adams [Fri, 4 Aug 1995 01:33:11 +0000 (01:33 +0000)]
Update package constructor & loader file name conventions.
Stephen Adams [Thu, 3 Aug 1995 23:28:21 +0000 (23:28 +0000)]
Fix typo.
Stephen Adams [Thu, 3 Aug 1995 23:23:50 +0000 (23:23 +0000)]
Overhauled debugging info so that it combines forwards and backwards search.
Stephen Adams [Thu, 3 Aug 1995 00:17:40 +0000 (00:17 +0000)]
Repaginate.
Stephen Adams [Wed, 2 Aug 1995 23:32:42 +0000 (23:32 +0000)]
Initial revision
Chris Hanson [Wed, 2 Aug 1995 21:42:14 +0000 (21:42 +0000)]
When an expander inserts multiple references to an operand, insert a
LET so that the operand is only bound once.
Stephen Adams [Wed, 2 Aug 1995 21:28:26 +0000 (21:28 +0000)]
Initial revision
Stephen Adams [Wed, 2 Aug 1995 20:47:38 +0000 (20:47 +0000)]
Fixed buglet whereby the system would complain that the dbg info was
not `wrapped' when in fact it was absent.
Stephen Adams [Wed, 2 Aug 1995 19:02:17 +0000 (19:02 +0000)]
Fixed typos which were causing INT:INTEGER and WITH-VALUES not to be
open-coded.
Stephen Adams [Wed, 2 Aug 1995 14:05:42 +0000 (14:05 +0000)]
Added some statistics gathering to help figure out why dbg-reduce is
slow on huge programs.
Stephen Adams [Wed, 2 Aug 1995 03:56:44 +0000 (03:56 +0000)]
Replace INT:INTEGER? by faster EXACT-INTEGER?
Stephen Adams [Wed, 2 Aug 1995 03:51:01 +0000 (03:51 +0000)]
Enlarged heap for building compiler band.
Stephen Adams [Wed, 2 Aug 1995 03:11:55 +0000 (03:11 +0000)]
Changed COMPILE-PROCEDURE so that `temporary' KMP, RTL and LAP files
are produced only if the corresponding COMPILER:GENERATE-*-FILES? flag
is true.
Chris Hanson [Tue, 1 Aug 1995 05:05:08 +0000 (05:05 +0000)]
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.
Stephen Adams [Mon, 31 Jul 1995 19:26:22 +0000 (19:26 +0000)]
*** empty log message ***
Stephen Adams [Mon, 31 Jul 1995 19:13:14 +0000 (19:13 +0000)]
CC-ENTRY labels may have disappeared in RTL optimization.
Be graceful about this.
Stephen Adams [Mon, 31 Jul 1995 18:27:07 +0000 (18:27 +0000)]
Made obsolete.
When 7.4 vanishes we should rename rebuild-8.0 to be rebuild.
Stephen Adams [Sat, 29 Jul 1995 17:02:30 +0000 (17:02 +0000)]
Currently being run daily from adams's crontab
Stephen Adams [Sat, 29 Jul 1995 16:58:43 +0000 (16:58 +0000)]
*** empty log message ***
Stephen Adams [Sat, 29 Jul 1995 16:55:56 +0000 (16:55 +0000)]
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.
Stephen Adams [Sat, 29 Jul 1995 15:01:10 +0000 (15:01 +0000)]
Initial revision
Stephen Adams [Sat, 29 Jul 1995 14:56:29 +0000 (14:56 +0000)]
Updated to reflect new directories.
Stephen Adams [Sat, 29 Jul 1995 14:48:14 +0000 (14:48 +0000)]
Updated to reflect new directories.
Stephen Adams [Sat, 29 Jul 1995 14:45:30 +0000 (14:45 +0000)]
Initial revision
Stephen Adams [Fri, 28 Jul 1995 21:28:59 +0000 (21:28 +0000)]
Changed default *MAXIMUM-NODE-COUNT* down to 10000.
Stephen Adams [Fri, 28 Jul 1995 17:45:09 +0000 (17:45 +0000)]
Added COMPILED-MODULE-EVAL.
Stephen Adams [Fri, 28 Jul 1995 15:56:55 +0000 (15:56 +0000)]
Removed a BKPT.
Stephen Adams [Fri, 28 Jul 1995 14:25:11 +0000 (14:25 +0000)]
Added kludge to get around a gratuitous name change between 7.4 and 8.0
Stephen Adams [Fri, 28 Jul 1995 14:14:08 +0000 (14:14 +0000)]
Initial revision
Stephen Adams [Thu, 27 Jul 1995 23:19:50 +0000 (23:19 +0000)]
Initial revision
Stephen Adams [Thu, 27 Jul 1995 22:00:28 +0000 (22:00 +0000)]
Added INDEX-FIXNUM? and new representation for unspecified conditional
branch.
Stephen Adams [Thu, 27 Jul 1995 21:33:44 +0000 (21:33 +0000)]
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
Stephen Adams [Thu, 27 Jul 1995 21:23:12 +0000 (21:23 +0000)]
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.
Stephen Adams [Thu, 27 Jul 1995 21:15:28 +0000 (21:15 +0000)]
*** empty log message ***
Stephen Adams [Thu, 27 Jul 1995 21:11:41 +0000 (21:11 +0000)]
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.
Stephen Adams [Thu, 27 Jul 1995 21:07:21 +0000 (21:07 +0000)]
The cold boot file "make.com" must contain an scode expression.
Extended to ensure that this is true as the compiler dumps a
COMPILED-MODULE structure.
Stephen Adams [Thu, 27 Jul 1995 21:04:49 +0000 (21:04 +0000)]
Currently broken.
Has to be fixed to understand COMPILED-MODULEs.
Stephen Adams [Thu, 27 Jul 1995 21:03:12 +0000 (21:03 +0000)]
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.
Stephen Adams [Thu, 27 Jul 1995 20:42:20 +0000 (20:42 +0000)]
New methods for compiled frames to match new dbg info.
Stephen Adams [Thu, 27 Jul 1995 20:40:20 +0000 (20:40 +0000)]
Bindings yielding the `unavailable' object are printed as
FOO is unavailable
Stephen Adams [Thu, 27 Jul 1995 20:37:03 +0000 (20:37 +0000)]
STACK-FRAME/RETURN-ADDRESS is now intelligent and returns the
interrupted entry for interrupt frames. The actual return address (in
this case reflect_to_interface) is available from the file-local
procedure STACK-FRAME/REAL-RETURN-ADDRESS.
Added stack-frame-type methods for converting the stack frames back
into a stream of elements for STACK-FRAME->CONTROL-POINT.
STACK-FRAME/COMPILED-INTERRUPT? now returns the entry to which the
frame belongs.
Stephen Adams [Thu, 27 Jul 1995 20:31:23 +0000 (20:31 +0000)]
Changed bit pattern associated with unspecific.
This really ought to be done by asking the microcode.
Stephen Adams [Thu, 27 Jul 1995 20:22:21 +0000 (20:22 +0000)]
New compiled module code to find purification root and to eval the
compiled module.
Stephen Adams [Thu, 27 Jul 1995 18:30:17 +0000 (18:30 +0000)]
Added customization for scheme-7.4.
Stephen Adams [Thu, 27 Jul 1995 14:28:21 +0000 (14:28 +0000)]
Changed RTLGEN/EMIT-ALTERNATIVES to keep all preservation info because
a CFG node internal to the predicate may be the dominator of either
the consequent or alternate.
Stephen Adams [Thu, 27 Jul 1995 14:25:55 +0000 (14:25 +0000)]
DBG formats are now the same as in the runtime.
Stephen Adams [Thu, 27 Jul 1995 14:23:46 +0000 (14:23 +0000)]
*** empty log message ***
Stephen Adams [Thu, 27 Jul 1995 14:22:18 +0000 (14:22 +0000)]
Put unspecific after final SET!
Stephen Adams [Thu, 27 Jul 1995 14:21:18 +0000 (14:21 +0000)]
Changes for new DBG info and .com formats.
Stephen Adams [Thu, 27 Jul 1995 14:20:23 +0000 (14:20 +0000)]
Package changes for new DBG info.
Stephen Adams [Thu, 27 Jul 1995 14:18:57 +0000 (14:18 +0000)]
Removed all the higher order constructors as there is now only one
compiler.
Stephen Adams [Thu, 27 Jul 1995 14:17:36 +0000 (14:17 +0000)]
Altered DEFINE-EXPORT's expansion so that it (and consequently a file)
does not end in a SET!.
Stephen Adams [Thu, 27 Jul 1995 14:15:46 +0000 (14:15 +0000)]
Added code to merge dbg-block model.
Stephen Adams [Thu, 27 Jul 1995 14:13:55 +0000 (14:13 +0000)]
Modified evaluation to understand modules - this should go in the runtime.
Reorganized dbg-info dumping.
Stephen Adams [Thu, 27 Jul 1995 01:26:34 +0000 (01:26 +0000)]
Define the HPPA magical SHARP_F.
Stephen Adams [Thu, 27 Jul 1995 00:37:51 +0000 (00:37 +0000)]
Implement INSTRUCTION-ADDRESS->COMPILED-CODE-BLOCK.
Stephen Adams [Thu, 27 Jul 1995 00:35:24 +0000 (00:35 +0000)]
Better heuristic location of compiled code blocks.
Stephen Adams [Thu, 27 Jul 1995 00:27:08 +0000 (00:27 +0000)]
New type-codes.
Stephen Adams [Thu, 27 Jul 1995 00:23:31 +0000 (00:23 +0000)]
New type-codes: new precomputed trap constants.
Stephen Adams [Thu, 27 Jul 1995 00:22:16 +0000 (00:22 +0000)]
Arrange that GLOBAL_ENV is #F and END_OF_CHAIN is different for any
representation choice of #F.
Stephen Adams [Thu, 27 Jul 1995 00:20:04 +0000 (00:20 +0000)]
Use EMPTY_WEAK_CHAIN.
Stephen Adams [Thu, 27 Jul 1995 00:18:45 +0000 (00:18 +0000)]
New type-code assignments.
New encoding scheme for objects like #F, (), #T etc.
New PSB version.
Stephen Adams [Thu, 27 Jul 1995 00:12:36 +0000 (00:12 +0000)]
Split fixnum type-codes.
Stephen Adams [Thu, 27 Jul 1995 00:11:31 +0000 (00:11 +0000)]
Added option -empty-list-eq-false.
Stephen Adams [Thu, 27 Jul 1995 00:06:04 +0000 (00:06 +0000)]
New type-codes.
Stephen Adams [Wed, 26 Jul 1995 23:59:44 +0000 (23:59 +0000)]
Fixed to work with split fixnums: they are signed and have an
effective odd word length.
Stephen Adams [Wed, 26 Jul 1995 23:45:49 +0000 (23:45 +0000)]
Split fixnum type-codes.
Stephen Adams [Wed, 26 Jul 1995 23:42:24 +0000 (23:42 +0000)]
1. New FASL versions.
2. Used outf_error in place of fprintf
Stephen Adams [Wed, 26 Jul 1995 23:38:51 +0000 (23:38 +0000)]
Monster typo last version managed to duplicate most of the file.
Stephen Adams [Wed, 26 Jul 1995 23:29:50 +0000 (23:29 +0000)]
New type-codes.
Stephen Adams [Wed, 26 Jul 1995 23:27:53 +0000 (23:27 +0000)]
Changed for split fixnum tags.
Stephen Adams [Wed, 26 Jul 1995 23:23:38 +0000 (23:23 +0000)]
Added code to fix '() according to #F = '() or #F != '().
Stephen Adams [Wed, 26 Jul 1995 23:20:52 +0000 (23:20 +0000)]
New FASL versions for split fixnum typecodes.
Stephen Adams [Wed, 26 Jul 1995 23:18:37 +0000 (23:18 +0000)]
New constants based on new type-codes.
Allocate REGBLOCK entry for the empty list.
Stephen Adams [Wed, 26 Jul 1995 23:16:29 +0000 (23:16 +0000)]
Improved heuristic for identifying compiled code blocks.
Stephen Adams [Wed, 26 Jul 1995 23:03:33 +0000 (23:03 +0000)]
New version for split fixnum typecodes and #F != ().
Stephen Adams [Wed, 26 Jul 1995 22:47:25 +0000 (22:47 +0000)]
Use EMPTY_WEAK_CHAIN for weak pair chain instead of EMPTY_LIST.
Stephen Adams [Wed, 26 Jul 1995 21:38:19 +0000 (21:38 +0000)]
Bumped version number.
Stephen Adams [Wed, 26 Jul 1995 21:36:10 +0000 (21:36 +0000)]
New type-codes.
LINKER-TRAMPOLINE-GENERATOR slot in fixed objects vector.
Stephen Adams [Wed, 26 Jul 1995 21:20:23 +0000 (21:20 +0000)]
Added RC_COMP_LINK_CACHES_CONTINUE.
Stephen Adams [Wed, 26 Jul 1995 21:16:17 +0000 (21:16 +0000)]
Mostly reformatting.
Merged in changes in 7.4 since split fixnum type-codes.
Stephen Adams [Wed, 26 Jul 1995 21:07:44 +0000 (21:07 +0000)]
Added slot for trampoline generator.
Stephen Adams [Wed, 26 Jul 1995 21:06:15 +0000 (21:06 +0000)]
Added Debug_Stack_Trace and Debug_Print.
Stephen Adams [Wed, 26 Jul 1995 21:04:40 +0000 (21:04 +0000)]
Changed for #F/().
Stephen Adams [Wed, 26 Jul 1995 20:44:08 +0000 (20:44 +0000)]
Merged in changes for new compiler.
Stephen Adams [Wed, 26 Jul 1995 19:08:48 +0000 (19:08 +0000)]
Merged OS2 changes and new compiler changes.
OS2 changes tag external entry points with a calling convention (the C
compiler supports several).
New compiler changes:
Fixed continuation bug on i386. An incorrect continuation was being
left as garbage on the stack, where the i386 expected #f if the value
was expected to be discarded.
coerce_to_compiled now understands arity dispatched entities. There
are now several places where procedures are turned into trampolines.
These ought to be rationalized.
Fixed incorrect arity in coerce_to_compiled.
Fixed but with failure cases when applying a compiled procedure from
PRIMITIVE_APPLY from a compiled context.
These type-in (i.e. interpreted) test cases now all give correct and
parsable error stack frames:
. The original bug case (...->primitive APPLY->apply_compiled_from_primitive)
((access apply-2 (->environment '(runtime apply)))
make-list '(1 2 3 4 5 6 7 8 9 10))
. Primitive called from interpreted context (...->apply_compiled_procedure)
((make-primitive-procedure 'apply) make-list '(1 2 3 4 5 6 7 8 9 10))
. Compiled procedure called from interpreted context
(...->apply_compiled_procedure)
(make-list 1 2 3 4 5 6 7 8 9 10)
. Compiled procedure called from interpreted context
(...-> compiled funcall->short_circuit_apply_5->comutil_apply)
((access apply-2 (->environment '(runtime apply))) make-list '(1 2 3 4))
Stephen Adams [Wed, 26 Jul 1995 18:41:54 +0000 (18:41 +0000)]
New version for new compiler. Many changes due to new register
calling convention and preservation.
95/06/28
Fixed fixnum_lsh to compute correct values for negative shifts.
95/03/28
Fixed off-by-1 error at end of ADDIB chain at new_interrupt_common.
94/12/13
Tidied up generic arithmetic some more. Flonum allocation is now
`open-coded', trimming a few cycles of the operation.
Re-arranged the builtin table as some things had moved position.
94/12/12
. fixed generic multiply to do fixnum*fixnum case (it was calling the
handler procedure, reducing performance by a factor of 7).
. fixed generic multiply to return exact 0 when multiplying a flonum
by exact 0.
. tidied other generic operations
Stephen Adams [Wed, 26 Jul 1995 18:31:47 +0000 (18:31 +0000)]
Merged changes from OS2 and OS2 and new tag scheme.
Stephen Adams [Tue, 25 Jul 1995 16:45:29 +0000 (16:45 +0000)]
Attempt to fix Hal's SWAT+PPP problem.
Chris Hanson [Mon, 24 Jul 1995 22:08:39 +0000 (22:08 +0000)]
Fix bug in INSERT-DIRECTORY that caused Dired buffer to get scrambled
when using M-x dired-do-rename.