kaplan@m.cs.uiuc.edu (12/24/89)
I realize the following will be a duplication for some people who also read
comp.emacs, and I apologize: However, several people tried to send me
email about getting epoch and/or joining the epoch mailing list, and I have
been unable to reply to the addresses they gave me. If you are one such
person, please try get hold of me again, but give specific return addresses
in the body of your message (several if possible).
thanks,
Simon Kaplan
kaplan@cs.uiuc.edu
uunet!uiucdcs!kaplan
kaplan%cs.uiuc.edu@uiucvmd.bitnet
Message follows:
Epoch 2.0 is now available from cs.uiuc.edu by anonymous ftp.
This is a major extension of epoch-beta-1.0. We have tried to incorporate
all the changes and suggestions made by users of the beta version. We believe
this new version is significantly more robust and has much improved features.
User-visible changes include:
1. Screen title reflects current buffer name, and this is changed as
buffers change.
2. New improved event handlers, deal with focus events properly.
3. More ICCCM compatible.
4. Reliance on GWM removed (we still prefer gwm though :-)
5. Updated documentation
6. save/restore problem fixed. Can now switch screens robustly when in
minibuffer.
7. epoch-mode-alist allows you to set defaults for screens based on
file mode. This in turn means that you can do things like have
all C-mode screens with one set of configurations (color, size etc),
TeX-mode screens with another, etc.
8. When used as an emacsclient, epoch will pop a new screen for the server
tasks.
9. Screen titles optionally include name of machine epoch is running on.
Useful if you run epoch on multiple machines.
10. Multiple-screen updating now works. You can control the granularity
of this for efficiency reasons: Anything from all screens update to
only selected screens update to only current screen updates. Useful
if you have shells, LaTeX jobs, etc running in disjoint screens and
you want to watch them while working in another screen.
11. ... and lots more... see the changes documentation below.
As before, you get it by ftp'ing to cs.uiuc.edu and then cd to
pub/epoch-files/epoch.
The files in the release directory are as follows:
README.release-2.0 mostly this message
epoch-2.0.tar.Z: 144-bit compressed entire release (code+manual)
epoch-2.0-lisp.tar.Z: 144-bit compressed epoch-lisp-files.
epoch-2.0-man.tar.Z: 144-bit compressed epoch manual
epoch-1.0-2.0-src.tar.Z:144-bit compressed diffs and new files for src
subdirectory *only*.
To make the whole thing, just get epoch-2.0.tar.Z.
Otherwise get the other 3 tar files. The first replaces the old
epoch-lisp-files subdirectory, the second the old epoch-man subdirectory and
the third is diffs for the src directory, and some new files. The diffs
assume you have installed the earlier patch for focus-in events. (in the file
epoch-beta-1.0-diffs.tar.Z; the old epoch.tar.Z holding 1.0 has been
renamed epoch-beta-1.0.tar.Z)
SINCE THIS RELEASE IS A MAJOR REVISION, WE STRONGLY ENCOURAGE YOU TO GET THE
WHOLE THING AND START FROM A FRESH BASE.
The following summarizes the changes to epoch since release 1.0. We hope that
most of the points you have all raised have been addressed here. Release 3.0
will be out in a while: 3.0 will upgrade epoch to be 18.55 compatible, and
make any other fixes necessary..
Changes / Fixes installed :
(12/23/89)
+ Removed the dreaded screenX.h preprocessor problem.
+ Installed the Mips-required code from beldar@mips.com
+ Made new version of server.el that will pop a new screen
when using emacsclient with epoch. Made this conditional,
so you can use this code with regular ol gnuemacs also.
+ Installed new version of epoch.el and maintain-titled-screen.el
The default is now that a screen's title is <buffer-name> @
<system-name>. The @ System-name part can be turned off
by setting the variable include-system-name to nil (default t).
Minibuffer is now named minibuffer@system-name, default screen
is also renamed to be buffer-name@machine. The std ^X keybindings
are rebound in the file maintain-titled-screen to keep all this
consistent. To inhibit this, dont load the file. To inhibit
minibuffer and first screen getting the @system-name stuff, set
include-system-name to nil.
+ variable auto-raise-screen. nil ==> dont autoraise screens on
focus in.
+ Rewrite event handler code in epoch.el to work with new event
handling scheme. (see below and manual)
+ updated manual to include newest stuff.
(12/22/89)
+ More fixes to save/restore. Fixed stability problems. A clear and
definite bug was found and mashed out of its slimy existence.
+ New style event handling. "coed" references removed. New system
works like this:
Property changes are no longer special. The Q is now a variety
of X events. The old primitives are gone. The new primitives are
(*x-get-event*) return the next X event in the Q. Events are
returned as a 3-vector. 0 is the type (a symbol), 1 is the value,
and 2 is the screen, e.g. [ key-symbol value screen ].
Property change events are now returned as
[ x-property-change ( "Property-name" . "New Value" ) <screen> ]
Focus in and out are no longer cause property changes. They are
returned as distinct events, in the form
[ x-focus state <screen> ] where state is t if it was a focus in,
and nil if it was a focus out. You can install a handler for
these events by setting the variable x-event-handler to have a
function. This function is called whenever Epoch is waiting for
input and there are events in the Q. There is another variable
x-event-handler-abort, which controls what happens when there
is an error in the event handler function. If not nil, x-event-handler
is set to nil, to avoid error runaway. If nil, then just the current
call is aborted, and if there are more events, the handler is called
again. The default is t, so default is to cancel the handler in
event of error.
IF YOU SET x-event-handler-abort TO nil EPOCH MAY WELL GO
BEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEP CONTINOUSLY.
+ Property name changes: COED_ROOTBLOCK is now EPOCH_SCREEN_ID.
COED_CURRENT is now EPOCH_CURRENT.
+ WM_SIZE_HINTS property changes are now expanded by *x-get-event*.
I don't know why I did this - they don't seem to show up anyway.
(12/21/89)
+ Save/restore window configuration problems hopefully fixed. Very
gnarly bit of coding. If you select a different screen while in a
recursive edit, the selection is kept, and the window structure of
the old screen is restored. Updates should be better - the dangling
completion window problem should be fixed.
+ Command line options now actually override .Xdefaults.
The WM_COMMAND property is now correctly set on the minibuffer
window. The command-line-args variable does not have any of the
X options in it. If you really need them, do a
(*x-get-property* "WM_COMMAND" (*x-minibuf-screen*))
This also fixes the "editing X options" problem. A new option -R
is available to set reverse off. If you want to mess with options,
look in xdefault.c, there's a table of options for the command line.
+ The (void *) problem is fixed. All (void *) references are now
(VOID *), with a #define VOID void in config.h. If your compiler
doesn't handle void pointers, change the #define to
#define VOID char.
+ Icon name added. .Xdefault string is epoch.screen.icon.name.
Alist key is 'x-icon-name. To set or change an icon name,
use the function (x-icon-name [value ] [screen])
If [value] is nil, the current icon name is returned. Otherwise,
it is set to value.
(12/20/89)
+ New variable "epoch-version", which gives information on the Epoch
version. Useful for having conditional checks in a .emacs.
+ Minibuffer size changes recognized now. They used to be ignored.
+ Mouse events are now a triplet, ( X Y SCREEN ). The Turing-awful
malloc()'s in the SIGIO handler are gone.
+ The initial hints for screens are more thorough. This fixes some
problems with UWM and screens starting at 0x0.
+ A new primitive *x-mapraised-screen* is available that does a
MapRaised on a screen.
+ Some internal stuff was cleaned up. A bug with having the same buffer
in two different screens causing incorrect displays was fixed.
+ Multi-screen updates: this is installed, and alledgedly works, although
it has not been throroughly tested.
To enable the feature, set x-global-update to non-nil (e.g., t).
For each screen, there is a flag to say if it gets globally updated.
This is set by (x-set-update t), which returns the previous value.
(x-update-p) returns the current state. The property symbol
'x-update can be used in screen property alists for setting a new
screen. So, to have this on all screens, do
(setq x-global-update t)
(setq x-screen-properties
(cons (cons 'x-update t) x-screen-properties))
(x-set-update t) ; do first edit screen
This has no meaning for the minibuffer, since it is always udpated.michaud@decvax.dec.com (Jeff Michaud) (12/27/89)
> I realize the following will be a duplication for some people who also read > comp.emacs, ... You seemed to of forgot one thing in your posting however (unless what is epoch? I don't want to ftp the thing first to find out what it is :-) Happy Holiday's! /--------------------------------------------------------------\ |Jeff Michaud michaud@decwrl.dec.com michaud@decvax.dec.com| |DECnet-ULTRIX #include <standard/disclaimer.h> | \--------------------------------------------------------------/