Chris Hanson [Mon, 7 Oct 1996 17:54:58 +0000 (17:54 +0000)]
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.
Chris Hanson [Mon, 7 Oct 1996 17:52:47 +0000 (17:52 +0000)]
Change time decode/encode to use unsigned integer conversions.
Chris Hanson [Mon, 7 Oct 1996 17:51:47 +0000 (17:51 +0000)]
Add export for screen_char_dimensions.
Chris Hanson [Fri, 4 Oct 1996 19:30:23 +0000 (19:30 +0000)]
Fix bug: interface to OS/BUFFER-BACKUP-PATHNAME was changed and
reference in this file was missed.
Chris Hanson [Fri, 4 Oct 1996 18:48:39 +0000 (18:48 +0000)]
Fix a thinko in the last change.
Stephen Adams [Thu, 3 Oct 1996 14:08:12 +0000 (14:08 +0000)]
Fixed the number of code bits to be correct for either 7 bit or 16 bit
characters.
Chris Hanson [Thu, 3 Oct 1996 04:19:53 +0000 (04:19 +0000)]
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.
Chris Hanson [Wed, 2 Oct 1996 21:18:08 +0000 (21:18 +0000)]
Many small changes to eliminate errors and warnings when compiling
under Win32 using either Visual C++ 4.0 or Watcom C/C++ 10.6.
Chris Hanson [Wed, 2 Oct 1996 21:14:10 +0000 (21:14 +0000)]
Many small changes to eliminate errors and warnings when compiling
under Win32 using either Visual C++ 4.0 or Watcom C/C++ 10.6.
Chris Hanson [Wed, 2 Oct 1996 19:17:34 +0000 (19:17 +0000)]
Many small changes to eliminate errors and warnings when compiling
under Win32 using either Visual C++ 4.0 or Watcom C/C++ 10.6.
Chris Hanson [Wed, 2 Oct 1996 19:01:40 +0000 (19:01 +0000)]
Many small changes to eliminate errors and warnings when compiling
under Win32 using either Visual C++ 4.0 or Watcom C/C++ 10.6.
Chris Hanson [Wed, 2 Oct 1996 18:53:21 +0000 (18:53 +0000)]
Changes that result in a successful build with the Watcom compiler.
Chris Hanson [Wed, 2 Oct 1996 18:51:15 +0000 (18:51 +0000)]
Initial revision
Chris Hanson [Wed, 2 Oct 1996 17:59:40 +0000 (17:59 +0000)]
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.
Chris Hanson [Wed, 2 Oct 1996 17:00:35 +0000 (17:00 +0000)]
Add new OS-specific procedure DIRED-PATHNAME-WILD? so that unix can
support the full range of filename expansion provided by the shell.
Chris Hanson [Tue, 1 Oct 1996 05:55:55 +0000 (05:55 +0000)]
Eliminate duplicate bindings differing only in case in bindings lists.
Chris Hanson [Mon, 30 Sep 1996 18:31:14 +0000 (18:31 +0000)]
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.
Chris Hanson [Mon, 30 Sep 1996 01:01:39 +0000 (01:01 +0000)]
Fix buffer-memoization bugs. Eliminate random patch installed by bal.
Chris Hanson [Sat, 28 Sep 1996 18:29:33 +0000 (18:29 +0000)]
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.
Chris Hanson [Sat, 28 Sep 1996 03:51:26 +0000 (03:51 +0000)]
When scrolling, inform the screen code that the cursor has been moved
so that it can move it back if necessary.
Chris Hanson [Sat, 28 Sep 1996 03:50:38 +0000 (03:50 +0000)]
Add ability for the terminal-scrolling code to tell the screen code
that the cursor position has been invalidated by the scroll.
Chris Hanson [Fri, 27 Sep 1996 23:06:22 +0000 (23:06 +0000)]
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.
Chris Hanson [Thu, 26 Sep 1996 23:20:08 +0000 (23:20 +0000)]
Fix interrupt hole in updating of screen size.
Chris Hanson [Fri, 20 Sep 1996 18:54:48 +0000 (18:54 +0000)]
Patch to help fix bug in 6.001 debugger.
Chris Hanson [Thu, 12 Sep 1996 19:23:48 +0000 (19:23 +0000)]
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.
Chris Hanson [Fri, 6 Sep 1996 17:10:57 +0000 (17:10 +0000)]
Fix bug: error signalled in dired when trying to determine whether a
given pathname specifies a directory.
Chris Hanson [Fri, 6 Sep 1996 16:51:54 +0000 (16:51 +0000)]
Add entries to file-primitive translation table to cover the new
primitives used to open files.
Stephen Adams [Mon, 26 Aug 1996 20:42:45 +0000 (20:42 +0000)]
Added DEFINE-INTEGRABLE to list of specially formatted keywords.
Stephen Adams [Tue, 20 Aug 1996 03:48:13 +0000 (03:48 +0000)]
Added X-GRAPHICS-DRAW-IMAGE-STRING.
Stephen Adams [Mon, 19 Aug 1996 18:46:52 +0000 (18:46 +0000)]
Made traps work for HPUX 10.
Chris Hanson [Mon, 12 Aug 1996 23:14:10 +0000 (23:14 +0000)]
Fix illegal instructions that are rejected by the new HP assembler.
Stephen Adams [Thu, 1 Aug 1996 11:38:02 +0000 (11:38 +0000)]
Fixed kmp->ppp so that it doesnt barf on improper lists in RTL constants.
Stephen Adams [Wed, 31 Jul 1996 18:31:20 +0000 (18:31 +0000)]
Fix thinko: only conditions are errors!
Stephen Adams [Wed, 31 Jul 1996 18:12:58 +0000 (18:12 +0000)]
Wrapped call-backs in error trapping code.
Stephen Adams [Wed, 31 Jul 1996 16:15:36 +0000 (16:15 +0000)]
Added tags target.
Stephen Adams [Tue, 30 Jul 1996 20:11:40 +0000 (20:11 +0000)]
Rouge ')'.
Stephen Adams [Tue, 30 Jul 1996 19:52:55 +0000 (19:52 +0000)]
Fixed spelling of some procedure names.
Stephen Adams [Tue, 30 Jul 1996 19:42:23 +0000 (19:42 +0000)]
Initial revision
Stephen Adams [Tue, 30 Jul 1996 19:29:57 +0000 (19:29 +0000)]
Typerew uses checking operations (e.g. CAR with type checks enabled,
or explicit calls to ERROR:WRONG-TYPE-ARGUMENT, etc) to deduce type
information about values in the program. The assumption is that the
error signalling code never returns.
This set of changes makes these operations bulletproof by arranging
that the continuations of the error signalling procedures cannot
resume the code that was compiled under the types deduced from the
assumption. The error continuations now `trap' by jumping to an
appropriate handler.
fakeprim.scm
New operator %halt.
New operator %reference.
errcont.scm
Edits a program to replace continuations to error procedures
(which typically merge back with the non-error case) with
continuations that just call %halt.
laterew.scm
Eliminate %reference.
rtlgen.scm
Recognise continuations containing %halt and produce terse code to
`trap' to the appropriate support procedure.
simplify.scm
Tweak to LETREC case for recognizing dead procedures earlier.
This allows `diamond' code to be linearized in one pass rather than
two.
typerew.scm
Changed to generate code to signal errors calling global procedure
%COMPILED-CODE-SUPPORT:SIGNAL-ERROR-IN-PRIMITIVE
Stephen Adams [Tue, 30 Jul 1996 19:00:42 +0000 (19:00 +0000)]
Initial revision
Stephen Adams [Tue, 30 Jul 1996 18:23:53 +0000 (18:23 +0000)]
Fixed a bug where stackopt was getting confused if the
%make-stack-closure operator was integrated as a (non-operator)
%constant.
Stephen Adams [Tue, 30 Jul 1996 16:54:58 +0000 (16:54 +0000)]
Fixed arity and formatting problems.
Stephen Adams [Tue, 30 Jul 1996 16:26:51 +0000 (16:26 +0000)]
Added %COMPILED-CODE-SUPPORT:SIGNAL-ERROR-IN-PRIMITIVE.
Stephen Adams [Tue, 30 Jul 1996 00:12:55 +0000 (00:12 +0000)]
Added COMPILED-CODE-SUPPORT:NONRESTARTABLE-CONTINUATION.
Stephen Adams [Sat, 27 Jul 1996 05:13:49 +0000 (05:13 +0000)]
Changed coercion code to use the global procedure
COERCE-TO-COMPILED-PROCEDURE rather than the primitive.
Stephen Adams [Sat, 27 Jul 1996 04:46:06 +0000 (04:46 +0000)]
Re-instated the iterative version of MAP.
I keep getting bitten by long lists.
Stephen Adams [Sat, 27 Jul 1996 03:31:38 +0000 (03:31 +0000)]
Added a flag to TYPE:USER-DESCRIPTION.
Stephen Adams [Sat, 27 Jul 1996 03:30:17 +0000 (03:30 +0000)]
*** empty log message ***
Stephen Adams [Sat, 27 Jul 1996 03:29:10 +0000 (03:29 +0000)]
Added info for %RECORD.
Stephen Adams [Sat, 27 Jul 1996 02:43:15 +0000 (02:43 +0000)]
Tweaked integration.
Stephen Adams [Fri, 26 Jul 1996 23:43:03 +0000 (23:43 +0000)]
Avoid interrupt checks due solely to tailing into an ordinary
(i.e. not apply-like) primitive.
Stephen Adams [Fri, 26 Jul 1996 23:39:26 +0000 (23:39 +0000)]
Fixed logic bug with +0 and +1 arity encodings.
Added a missing else to a case expression.
Stephen Adams [Fri, 26 Jul 1996 20:00:31 +0000 (20:00 +0000)]
make random-state-tag define-integrable.
Stephen Adams [Fri, 26 Jul 1996 19:57:38 +0000 (19:57 +0000)]
Reorganized and extended code.
Stephen Adams [Fri, 26 Jul 1996 14:58:55 +0000 (14:58 +0000)]
Fixed load sequence bug.
Stephen Adams [Fri, 26 Jul 1996 14:38:26 +0000 (14:38 +0000)]
Initial cut at writing COERCE-TO-COMPILED-PROCEDURE in Scheme. The
next change will be to make the compiler generate calls to this
procedure rather than the primitive COERCE-TO-COMPILED-PROCEDURE,
which should result in both faster generation and invocation of
trampolines.
Eventually we might make the linker use this code too.
The code is a bit hairy and needs special initialization, hence the
changes in make.scm.
Stephen Adams [Fri, 26 Jul 1996 14:25:07 +0000 (14:25 +0000)]
Initial revision
Stephen Adams [Fri, 26 Jul 1996 01:01:44 +0000 (01:01 +0000)]
Tweaked format of time reports so that the non-gc process time is
always first.
Stephen Adams [Fri, 26 Jul 1996 00:59:26 +0000 (00:59 +0000)]
Fixed bug: LEXPR primitive were being mistaken as having the wrong
arity and thus were being applied via short_circuit_apply_n.
Stephen Adams [Fri, 26 Jul 1996 00:36:11 +0000 (00:36 +0000)]
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 "..."))
Stephen Adams [Wed, 24 Jul 1996 23:42:04 +0000 (23:42 +0000)]
Fixed missing argument bug.
Stephen Adams [Wed, 24 Jul 1996 22:56:34 +0000 (22:56 +0000)]
Fixed typo.
Stephen Adams [Wed, 24 Jul 1996 22:32:30 +0000 (22:32 +0000)]
Fixed a bug with constant folding binary operators: the continuation
was being ignored.
Added a whole bunch of code to rewrite return (and calls with few
arguments) sequences that are passing an inlined predicate or
conditional expression.
For limited cases, for example, returning (null? x) or tail-calling, e.g.
(f (if (pair? x) (car x) #F))
there is small benefit.
Stephen Adams [Wed, 24 Jul 1996 17:07:07 +0000 (17:07 +0000)]
Made extra arguments in some calls (e.g. %internal-apply) explicit to
COMPAT/REWRITE-CALL/SPLIT.
Stephen Adams [Wed, 24 Jul 1996 15:11:44 +0000 (15:11 +0000)]
Added code so that %RECORD-REF/SET! at known index 0 does not do a
range check. %RECORDs are always created with at least a descriptor
slot.
Stephen Adams [Wed, 24 Jul 1996 04:44:06 +0000 (04:44 +0000)]
Improved hashing of flonums.
Stephen Adams [Wed, 24 Jul 1996 04:03:51 +0000 (04:03 +0000)]
Made CSE of predicate arguments only occur for REGISTER expressions.
This allows pre-cse-rewriting to block cheap arguments from being
CSE-ed.
Stephen Adams [Wed, 24 Jul 1996 03:45:18 +0000 (03:45 +0000)]
. Fixed bug that was preventing CSE of flonums.
. Changed `CSE avoiding' rewrites to use CONSTANT-REGISTER-EXPRESSION, thus
including #F and '() in the games we play with `0'.
. Punted the `is-rtl-zero?' predicate as no longer used.
. Simplified REGISTER-KNOWN-FIXNUM-CONSTANT
. Added `CSE avoiding' rewrites for comparison operators.
Stephen Adams [Wed, 24 Jul 1996 03:33:54 +0000 (03:33 +0000)]
. Improved predicates FITS-IN-nn-BITS?.
. Split REGISTER-EXPRESSION, extracting CONSTANT-REGISTER-EXPRESSION for the
pre-loaded registers.
Stephen Adams [Wed, 24 Jul 1996 03:25:54 +0000 (03:25 +0000)]
Tweaked with constant costs.
Removed some code from the ols split type-code compiler.
Stephen Adams [Wed, 24 Jul 1996 03:09:30 +0000 (03:09 +0000)]
Extended hashing to include reals rather than just (exact and inexact)
integers. Enables flonums like PI to be subject to CSE.
Stephen Adams [Tue, 23 Jul 1996 20:02:21 +0000 (20:02 +0000)]
Removed rules containing CHAR->ASCII because the rtlgen.scm does not
generate this RTL.
Stephen Adams [Tue, 23 Jul 1996 19:23:21 +0000 (19:23 +0000)]
revert one line.
Stephen Adams [Tue, 23 Jul 1996 19:11:20 +0000 (19:11 +0000)]
Removed lots (500 lines) of tagged-fixnum code. If you want it, use
RCS. Changed the comments to reflect the current code.
Made things more robust:
. Changed FITS-IN-nn-BITS? predicates to test for fixnum arguments.
. Changed all the register*constant and constant*register predicates
to be true only if the constant is a *fixnum* in the correct range.
. Punted the GUARANTEE-SIGNED-FIXNUM (as the predicates now guarantee it).
The net effect is that the compiler now compiles code like (fix:+ x
1.2) or (fix:* 'a n) to the obvious, albeit meaningless, instructions
rather than signalling a confusing error. Note that the midend
typerew phase can generate error messages for any of these conditions.
Stephen Adams [Tue, 23 Jul 1996 16:13:42 +0000 (16:13 +0000)]
Changed FORM->SOURCE-IRRITANT to give a more useful output when source
is not available.
Stephen Adams [Tue, 23 Jul 1996 15:41:23 +0000 (15:41 +0000)]
Removed old (mostly unused) method of reporting type errors via bogus
re-writes that issue the warning and leave the program unchanged.
Replaced with type-checks based on the typedb information. All
operators with typedb information are checked (not just those with
rewrites). Checking (and thus warnings) are disabled by setting
COMPILER:TYPE-ERROR-WARNINGS? to false.
Stephen Adams [Tue, 23 Jul 1996 15:34:53 +0000 (15:34 +0000)]
Added type:user-description, which gives an english description of the
type for some simple types.
Stephen Adams [Tue, 23 Jul 1996 15:33:51 +0000 (15:33 +0000)]
Fixed typo.
Stephen Adams [Tue, 23 Jul 1996 15:17:13 +0000 (15:17 +0000)]
Removed debugging print code, reformated 2 small procedures.
Stephen Adams [Tue, 23 Jul 1996 14:57:33 +0000 (14:57 +0000)]
Added switch compiler:type-error-warnings?, default true.
Stephen Adams [Tue, 23 Jul 1996 14:49:42 +0000 (14:49 +0000)]
Added SORT[!], FOR-EACH and MAP, and some generic arithmetic operators.
Stephen Adams [Tue, 23 Jul 1996 03:44:03 +0000 (03:44 +0000)]
Fixed to keep runtime and runtime-check debugging info separate.
Stephen Adams [Tue, 23 Jul 1996 02:28:13 +0000 (02:28 +0000)]
Disable optimizations with INTEGER-<relation> because it causes loops
in the arith.scm generic handlers.
Stephen Adams [Tue, 23 Jul 1996 02:27:12 +0000 (02:27 +0000)]
Fix typos.
Stephen Adams [Mon, 22 Jul 1996 23:12:49 +0000 (23:12 +0000)]
Fixed bug in typerew/remember* (it was sometimes returning unspecific).
Stephen Adams [Mon, 22 Jul 1996 19:04:06 +0000 (19:04 +0000)]
Added EXACT->INEXACT, INEXACT->EXACT, MAKE-STRING, MAKE-VECTOR,
STRING, STRING-APPEND and STRING-COPY to global procedures.
Stephen Adams [Mon, 22 Jul 1996 18:48:32 +0000 (18:48 +0000)]
Removed suggestion mechanism for rewrites. It was no longer used and
might be a problem because it couples type analysis to the use of the
information.
Stephen Adams [Mon, 22 Jul 1996 18:06:48 +0000 (18:06 +0000)]
Deleted unused let-binding.
Stephen Adams [Mon, 22 Jul 1996 18:04:14 +0000 (18:04 +0000)]
. Changes to permit use of procedures with variable arity in the
typedb.scm database.
. EXACT->INEXACT may be replaced by %fixnum->flonum if appropriate.
. Changes to generic arithmetic for fix*flo combinations. Now these
are open-coded with an explicit conversion (which man be constant
folded).
Stephen Adams [Mon, 22 Jul 1996 17:49:20 +0000 (17:49 +0000)]
Added LENGTH, and vector and string constructors.
Stephen Adams [Mon, 22 Jul 1996 17:47:18 +0000 (17:47 +0000)]
Improved the ascii byte store code (elide object->datum on store).
Stephen Adams [Mon, 22 Jul 1996 17:46:16 +0000 (17:46 +0000)]
Removed useless rule for flonum-subtract.
Stephen Adams [Mon, 22 Jul 1996 17:45:29 +0000 (17:45 +0000)]
Canonicalized (flonum-less? x 0.) to flonum-negative? etc.
Stephen Adams [Mon, 22 Jul 1996 16:24:01 +0000 (16:24 +0000)]
Added open-coder for %fixnum->flonum.
Stephen Adams [Mon, 22 Jul 1996 04:46:15 +0000 (04:46 +0000)]
*** empty log message ***
Stephen Adams [Mon, 22 Jul 1996 04:45:41 +0000 (04:45 +0000)]
Added (FLONUM-1-ARG FIXNUM->FLONUM ...) rules.
Stephen Adams [Sat, 20 Jul 1996 23:03:03 +0000 (23:03 +0000)]
Added constant-folding of %fixnum->flonum.
Stephen Adams [Sat, 20 Jul 1996 22:57:13 +0000 (22:57 +0000)]
Added %fixnum->flonum.
Stephen Adams [Sat, 20 Jul 1996 22:36:00 +0000 (22:36 +0000)]
Typo.
Stephen Adams [Sat, 20 Jul 1996 22:26:26 +0000 (22:26 +0000)]
Added FIXNUM->FLONUM.