Stephen Adams [Tue, 28 Feb 1995 01:11:46 +0000 (01:11 +0000)]
Removed dynamic link stuff.
Stephen Adams [Tue, 28 Feb 1995 00:41:04 +0000 (00:41 +0000)]
Static expressions are now cpsconv/trivial?. The effect is that the
nested LETs for creating read/etc caches are rewritten as one (CALL
(LAMBDA ...) ...) which later gets rewritten as a single LET by
simplify.
Stephen Adams [Mon, 27 Feb 1995 23:05:55 +0000 (23:05 +0000)]
Tidying.
Stephen Adams [Mon, 27 Feb 1995 22:40:58 +0000 (22:40 +0000)]
Fixed use of wrong variable.
Stephen Adams [Mon, 27 Feb 1995 22:39:39 +0000 (22:39 +0000)]
Added unary comparisons zero? negative? positive? like &= &< &>
Stephen Adams [Mon, 27 Feb 1995 22:38:15 +0000 (22:38 +0000)]
Tweaked with if to make it do the old general cps style for BEGIN
actions because rtlgen doesnt like (begin (if x x y) ...). rtlgen
should be fixed too.
Stephen Adams [Mon, 27 Feb 1995 21:33:26 +0000 (21:33 +0000)]
Made noise message conditional on COMPILER:GURU?
Stephen Adams [Mon, 27 Feb 1995 17:33:45 +0000 (17:33 +0000)]
Tweaked with (IF <simple> <conseq> <alt>)
Stephen Adams [Mon, 27 Feb 1995 16:30:56 +0000 (16:30 +0000)]
Changed handling of IF and NOT:
For IF: now strips NOTs before & after cleaning up the predicate.
For NOT: (NOT (IF p c a)) => (IF p (NOT c) (NOT a))
when one or more of c & a is an operator for which the NOT will be
compiled out.
Stephen Adams [Sun, 26 Feb 1995 16:35:19 +0000 (16:35 +0000)]
Added rewrite (IF p p #F) ==> p for simple & side effect free p.
This catches those nasty little `diamonds' produced in both earlyrew
and laterew for code such as (&+ x x).
Stephen Adams [Sun, 26 Feb 1995 16:28:48 +0000 (16:28 +0000)]
Open coded (NOT x) as (IF x #F #T).
In all likelihood any NOTs left at this stage are in value expressions
(as opposed to predicates) and this rewrite prevents nastiness when X
is a predicate, as in
(lambda (x y) (<= x y))
which is
(lambda (x y) (not (&> x y)))
This rewrite forces the coercion from predicate to value up to the
whole body.
Stephen Adams [Sun, 26 Feb 1995 14:59:03 +0000 (14:59 +0000)]
Removed open-coding of tiny procedures comprising only known
operators. It is a bad idea to do this early as hand coded loop
invariants get substituted back into loops.
This should be added back but with a parameter, so we can have
aggressive inlining if the user wants it, or if there is a
declaration.
Chris Hanson [Sun, 26 Feb 1995 03:34:36 +0000 (03:34 +0000)]
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.
Chris Hanson [Fri, 24 Feb 1995 00:38:28 +0000 (00:38 +0000)]
Lots of changes to generalize this code for OS/2 and Windows.
Chris Hanson [Fri, 24 Feb 1995 00:37:51 +0000 (00:37 +0000)]
Lots of changes to generalize this code for OS/2 and Windows.
Chris Hanson [Fri, 24 Feb 1995 00:36:53 +0000 (00:36 +0000)]
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.
Chris Hanson [Fri, 24 Feb 1995 00:35:44 +0000 (00:35 +0000)]
Final round of changes to get 6.001 images working right.
Chris Hanson [Fri, 24 Feb 1995 00:34:46 +0000 (00:34 +0000)]
Put normalization case into CANONICALIZE-C-TYPE.
Chris Hanson [Fri, 24 Feb 1995 00:30:27 +0000 (00:30 +0000)]
Don't beep when ignoring evaluation environment -- it's too annoying.
Stephen Adams [Thu, 23 Feb 1995 13:58:12 +0000 (13:58 +0000)]
Added a useful tip under integration declarations.
Stephen Adams [Wed, 22 Feb 1995 13:37:04 +0000 (13:37 +0000)]
Mismatched paren.
Stephen Adams [Wed, 22 Feb 1995 05:50:15 +0000 (05:50 +0000)]
Form predicates now know that a BEGIN with DECLAREs followed by
expression should be treated like the expression.
Stephen Adams [Wed, 22 Feb 1995 05:32:50 +0000 (05:32 +0000)]
Added %internal-apply-unchecked
Stephen Adams [Wed, 22 Feb 1995 04:09:20 +0000 (04:09 +0000)]
Fixed so that internal declarations are not lost.
Chris Hanson [Tue, 21 Feb 1995 23:28:04 +0000 (23:28 +0000)]
No longer need to import most image procedures since they are in the
global environment.
Chris Hanson [Tue, 21 Feb 1995 23:26:40 +0000 (23:26 +0000)]
Change to reflect changes to graphics type and image support in the
runtime system.
Chris Hanson [Tue, 21 Feb 1995 23:23:42 +0000 (23:23 +0000)]
Change to use IMAGE/CREATE instead of 'CREATE-IMAGE graphics
operation.
Chris Hanson [Tue, 21 Feb 1995 23:22:24 +0000 (23:22 +0000)]
Major cleanup of this file. Generalization of graphics code to
support OS/2.
Chris Hanson [Tue, 21 Feb 1995 23:20:21 +0000 (23:20 +0000)]
Change IMAGE/CREATE to extract the image type from its device
argument.
Chris Hanson [Tue, 21 Feb 1995 23:15:58 +0000 (23:15 +0000)]
Yet another cut at getting backing store and image stuff to work
correctly. Nearly done now.
Chris Hanson [Tue, 21 Feb 1995 23:15:33 +0000 (23:15 +0000)]
Various changes relating to graphics development.
Chris Hanson [Tue, 21 Feb 1995 23:13:58 +0000 (23:13 +0000)]
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.
Chris Hanson [Tue, 21 Feb 1995 23:12:47 +0000 (23:12 +0000)]
Put bullet-proofing code into OS2/FILE-TIME->STRING. It turns out
that CD-ROM root directories have unusual time stamps.
Chris Hanson [Tue, 21 Feb 1995 23:11:22 +0000 (23:11 +0000)]
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.
Chris Hanson [Tue, 21 Feb 1995 23:01:09 +0000 (23:01 +0000)]
New file "os2ctype.scm".
Chris Hanson [Tue, 21 Feb 1995 23:00:42 +0000 (23:00 +0000)]
Initial revision
Chris Hanson [Tue, 21 Feb 1995 22:55:42 +0000 (22:55 +0000)]
Limit initial width of console window to 80 characters.
Chris Hanson [Tue, 21 Feb 1995 22:54:30 +0000 (22:54 +0000)]
Add new primitive OS2PS-GET-BITMAP and OS2PM-SYNCHRONIZE. Fix some
minor bugs in OS2PS-GET-BITMAP-PARAMETERS.
Stephen Adams [Tue, 21 Feb 1995 21:19:28 +0000 (21:19 +0000)]
Improved ANDIFY
Stephen Adams [Tue, 21 Feb 1995 06:33:13 +0000 (06:33 +0000)]
Added constant folding. For now we just do it for the generic
arithmetic. We need to figure out a general and efficient way to do
operations safely so that we can either defer the operation until run
time or compile it into code that signals an error.
Stephen Adams [Tue, 21 Feb 1995 06:27:08 +0000 (06:27 +0000)]
. Changed EARLYREW/NUMBER? -> FORM/NUMBER?
. Improved careful arithmetic to compile into a call the out of line
generic operation rather than signalling an error during compilation.
Stephen Adams [Tue, 21 Feb 1995 06:20:05 +0000 (06:20 +0000)]
Changed cellified SET! code to use a new name to maintain alpha-conversion.
Stephen Adams [Tue, 21 Feb 1995 05:32:05 +0000 (05:32 +0000)]
Changed LATEREW/NUMBER? to FORM/NUMBER? and tidied a few expression.
Stephen Adams [Mon, 20 Feb 1995 20:48:53 +0000 (20:48 +0000)]
ILLEGAL calls NO-LONGER-LEGAL if the form is a KMP form.
Most phases can now call ILLEGAL instead of choosing between the two.
Stephen Adams [Mon, 20 Feb 1995 20:13:39 +0000 (20:13 +0000)]
Added FORM/NUMBER? and diddled with careful operators stuff.
Stephen Adams [Mon, 20 Feb 1995 18:24:41 +0000 (18:24 +0000)]
Changed the careful operations to return the `mapped' result or #F.
UNMAP-CAREFUL should be used to get the real result.
Stephen Adams [Fri, 17 Feb 1995 23:41:57 +0000 (23:41 +0000)]
Added rewrites for EXPT and SQRT which are `enabled' by using EXPT and
SQRT like this:
((access SQRT system-global-environment) 6.7)
i.e. they dispatch of (CALL %invoke-remote-operator ...) (declare
(usual-integrations)) should be changed to make operator references to
these standard procedures into global references.
SQRT just does constant folding. EXPT also expands to a small
expression trees of <= some number of generic multiplies for a small
exact integer exponent.
Chris Hanson [Thu, 16 Feb 1995 22:45:37 +0000 (22:45 +0000)]
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!
Chris Hanson [Thu, 16 Feb 1995 21:59:01 +0000 (21:59 +0000)]
Reformat to meet page length and width standards.
Stephen Adams [Thu, 16 Feb 1995 13:19:38 +0000 (13:19 +0000)]
Made the production of more noise conditional on COMPILER:GURU?
Stephen Adams [Wed, 15 Feb 1995 23:43:06 +0000 (23:43 +0000)]
Moved PUT, GET and ASSQ to library.scm
Stephen Adams [Wed, 15 Feb 1995 21:54:14 +0000 (21:54 +0000)]
Fixed a bug in the substitution code. Now it keeps a reference to the
call rather than the lookup when the operator of a call is a lookup,
as expected in the rest of the program.
Stephen Adams [Wed, 15 Feb 1995 13:07:53 +0000 (13:07 +0000)]
Initial revision
Stephen Adams [Tue, 14 Feb 1995 02:39:50 +0000 (02:39 +0000)]
Fixed buglet when opencoding &*
Stephen Adams [Tue, 14 Feb 1995 02:38:45 +0000 (02:38 +0000)]
Fixed bug where (&* (side-effect) 0) => 0
Improved handling of exactness.
Chris Hanson [Tue, 14 Feb 1995 01:06:18 +0000 (01:06 +0000)]
Add definition %ENTITY-EXTRA/APPLY-HOOK? so that Ziggy can identify
internal data structure used to build apply-hooks out of entities.
Stephen Adams [Tue, 14 Feb 1995 00:58:08 +0000 (00:58 +0000)]
Added a patch to ensure that out-of-line hooks are not called with a
constructed continuation.
(call 'hook (call %make-stack-closure ...) x y)
=>
(call %invoke-continuation
(call %make-stack-closure ...)
(call 'hook '#F x y))
This is required because out-of-line hooks have to generate their own
continuation to do the restoring, and the code merges with a control
flow path from somewhere prior to the call so that this continuation
is part of the same rgraph, i.e. the RTL graph sblock for an
INVOKE-SPECIAL-PRIMITIVE is connected to the bblock for the
continuation. This means that RTL pseudo register value classes must
agree across this boundary, which is not so if we generate one from
%make-stack-closure.
Also tidies a few things.
Stephen Adams [Tue, 14 Feb 1995 00:44:06 +0000 (00:44 +0000)]
Changed SIMPLIFY/SUBSTITUTE! to
. rename bound variables when substituing in a manner that causes
code duplication.
. correctly maintain references (and hence reference counts) to free
variables in the copied code
. The copying code is not yet DBG-aware.
Chris Hanson [Tue, 14 Feb 1995 00:41:31 +0000 (00:41 +0000)]
Change to use presentation space calls where appropriate now that
low-level PM support has changed to separate PS calls from window
calls.
Chris Hanson [Tue, 14 Feb 1995 00:37:35 +0000 (00:37 +0000)]
Update to match "os2graph.scm" and "os2winp.scm".
Chris Hanson [Tue, 14 Feb 1995 00:36:58 +0000 (00:36 +0000)]
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.
Chris Hanson [Tue, 14 Feb 1995 00:36:04 +0000 (00:36 +0000)]
Add new primitives. Reorganize to make this easier to maintain.
Chris Hanson [Tue, 14 Feb 1995 00:35:23 +0000 (00:35 +0000)]
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.
Chris Hanson [Tue, 14 Feb 1995 00:33:54 +0000 (00:33 +0000)]
Redefine PATHNAME-WILD? under DOS/NT/OS2 so that it is true of any
pathname containing a * or ? in its file-namestring.
Chris Hanson [Tue, 14 Feb 1995 00:30:59 +0000 (00:30 +0000)]
Initial revision
Chris Hanson [Tue, 14 Feb 1995 00:30:44 +0000 (00:30 +0000)]
Add new file "diros2.scm" that supports compressed files under OS/2.
Chris Hanson [Tue, 14 Feb 1995 00:29:13 +0000 (00:29 +0000)]
Add support for compressed files.
Chris Hanson [Tue, 14 Feb 1995 00:25:43 +0000 (00:25 +0000)]
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.
Chris Hanson [Tue, 14 Feb 1995 00:20:06 +0000 (00:20 +0000)]
By default, don't allow opened file handles to be inherited by
inferior processes.
Stephen Adams [Sat, 11 Feb 1995 03:16:45 +0000 (03:16 +0000)]
Tidied check for static form.
Stephen Adams [Sat, 11 Feb 1995 02:50:11 +0000 (02:50 +0000)]
IFs with sufficiently simple subexpressions are now handled piecemeal,
reducing all the intermediate procedures that ensue when generic
arithmetic operations are expanded early.
Stephen Adams [Sat, 11 Feb 1995 02:47:34 +0000 (02:47 +0000)]
Adjusted the predicates FORM/SIMPLE? and friends.
Stephen Adams [Sat, 11 Feb 1995 02:04:02 +0000 (02:04 +0000)]
Added code to handle
(CALL (LAMBDA (cont ...) ...)
'#F
e1 e2)
as a post-cps expression, but commented it out when I discovered why
pseudo-letify was producing this code.
Stephen Adams [Sat, 11 Feb 1995 01:59:38 +0000 (01:59 +0000)]
Added set-interrupt-enables! to the list of uninteresting possible
delta-reductions.
Stephen Adams [Sat, 11 Feb 1995 01:58:44 +0000 (01:58 +0000)]
Added debugging info and changed data structures to keep dbg info references.
Stephen Adams [Sat, 11 Feb 1995 01:56:55 +0000 (01:56 +0000)]
Changed pseudo-letify to LET-bind pseudo-simple expressions (e.g. %+)
instead of merely simple expression because early-rewriting can
produce these.
Stephen Adams [Thu, 9 Feb 1995 21:23:49 +0000 (21:23 +0000)]
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.
Stephen Adams [Thu, 9 Feb 1995 04:29:15 +0000 (04:29 +0000)]
`Improved' last change by moving test.
Stephen Adams [Thu, 9 Feb 1995 04:15:32 +0000 (04:15 +0000)]
No longer lifts variables satisfying IGNORED-CONTINUATION-VARIABLE?
Chris Hanson [Wed, 8 Feb 1995 01:21:05 +0000 (01:21 +0000)]
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.
Chris Hanson [Tue, 7 Feb 1995 23:56:33 +0000 (23:56 +0000)]
Add code to preserve modification time stamp on copied files.
Chris Hanson [Tue, 7 Feb 1995 23:54:55 +0000 (23:54 +0000)]
Add more specific error messages to low-level message allocation code.
Chris Hanson [Tue, 7 Feb 1995 23:53:05 +0000 (23:53 +0000)]
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.
Chris Hanson [Tue, 7 Feb 1995 23:51:22 +0000 (23:51 +0000)]
Add hook for user action when new screen is created.
Chris Hanson [Tue, 7 Feb 1995 23:50:20 +0000 (23:50 +0000)]
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.
Chris Hanson [Thu, 2 Feb 1995 21:25:17 +0000 (21:25 +0000)]
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.
Chris Hanson [Thu, 2 Feb 1995 21:22:52 +0000 (21:22 +0000)]
Fix bug in M-x electric-c-terminator: it was not correctly handling
goto tags that contained _ or $.
Chris Hanson [Thu, 2 Feb 1995 21:20:02 +0000 (21:20 +0000)]
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.
Stephen Adams [Thu, 2 Feb 1995 19:35:50 +0000 (19:35 +0000)]
Tidied code.
Stephen Adams [Thu, 2 Feb 1995 05:01:54 +0000 (05:01 +0000)]
Added a couple of operators to the list of operators which should not be
complained about.
Stephen Adams [Wed, 1 Feb 1995 20:53:41 +0000 (20:53 +0000)]
Removed breakpoint.
Stephen Adams [Wed, 1 Feb 1995 20:52:17 +0000 (20:52 +0000)]
Added procedure that looks to see if a node in operator position has
multiple known procedures. Enabled by COMPILER:GURU?
Chris Hanson [Tue, 31 Jan 1995 23:00:47 +0000 (23:00 +0000)]
Eliminate end-of-file markers.
Chris Hanson [Tue, 31 Jan 1995 22:36:55 +0000 (22:36 +0000)]
Temporary filenames now use long format which includes the Scheme PID
if the filesystem that they are stored on supports long filenames.
Chris Hanson [Tue, 31 Jan 1995 22:11:35 +0000 (22:11 +0000)]
Add primitive to get Scheme's pid.
Chris Hanson [Tue, 31 Jan 1995 22:06:04 +0000 (22:06 +0000)]
Move OS2/FS-LONG-FILENAMES? to runtime system.
Chris Hanson [Tue, 31 Jan 1995 22:04:28 +0000 (22:04 +0000)]
Add SET-FONT operation to OS/2 graphics windows.
Chris Hanson [Tue, 31 Jan 1995 22:00:21 +0000 (22:00 +0000)]
Implement window-manipulation procedures for OS/2 graphics windows.
Chris Hanson [Tue, 31 Jan 1995 21:38:17 +0000 (21:38 +0000)]
Remove key bindings for unix-specific Dired commands.
Chris Hanson [Tue, 31 Jan 1995 21:35:02 +0000 (21:35 +0000)]
Generalize for OS/2.