Article View: gnu.epoch.misc
Article #1717epoch 4.0 alpha release
From: Simon Kaplan
Date: Tue, 01 Oct 1991 21:52
Date: Tue, 01 Oct 1991 21:52
252 lines
9314 bytes
9314 bytes
(this is a repost... the first copy didnt seem to even reach our nntp
server!... sorry if you've seen this already)
This announcement is for those with a yen to hack around with epoch ONLY.
Please read carefully.
Epoch 4.0 Alpha is now available. The rest of this document explains:
o how stable is it.
o who should be interested in picking up the distribution
o how epoch 4.0 differs from epoch 3.2
o what to do if you have problems. in particular, we do not want to
use the epoch or gnu.epoch.misc forums to discuss an alpha release,
so as not to annoy our regular users; a special mailing list has
been created for this.
o the README from the 4.0 alpha distribution.
HOW STABLE IS EPOCH 4.0-alpha
We have found it to be stable on our test machines, which are sun, hp,
Next (under mouseX).
WHO SHOULD PICK UP EPOCH 4.0-alpha
anyone who writes epoch-lisp code, especially those who want to put code in
the 4.0 distribution contrib directories.
anyone who is interested in providing input as to the directions epoch is
going.
anyone who wants to make sure epoch 4.0 runs on their architecture.
anyone else who would like to play with it
HOW DOES EPOCH 4.0 differ from 3.2
1. runs on more platforms
2. based on 18.57 emacs
3. completely rebuilt display code: now support proper proportional
fonts.
4. changes from attributes to styles.
5. minibuffer can now be in its own window (traditional epoch) or in the
same window as the epoch screens (traditional emacs)
6. manual reworked to reflect changes.
7. Mouse maps now based on Ken laprade's mouse package
8. selections rather than cut-buffers (but cut-buffers do still work)
WHAT SHOULD I DO IF I GET THIS
you should join the epoch-design mailing list to discuss
improvements/bugs/etc for epoch 4.0. We will not discuss this on the
regular epoch lists until such time as its in regular release. There is no
epoch-design news group as yet (if there is a strong desire for this we
could ask the gnu world to create this for us). send email to
epoch-design-request@cs.uiuc.edu if you would like to join.
WHERE DO I GET IT:
the usual place: anon ftp from cs.uiuc.edu, directory
pub/epoch-files/epoch/epoch-4.0a0.tar.Z
the files will be there by 17:00 today, october 1, 1991.
... the remainder of this document is the README from the epoch-4.0
distribution.
Epoch 4.0 Alpha Test
====================
This distribution constitutes the Alpha test release of Epoch 4.0. No
guarantees as to the stability of this release are being made; it
works for us, your mileage may vary. :^) Hardware/OS platforms we've
tested with include:
Sparcstation, SunOS 4.1.1
Sun3/60, SunOS 4.1.1
HP9000s345, HPUX 7.0
NeXT, NeXTStep 2.0 ?
Encore Multimax, Umax 4.3
We'd like to hear about sucesses/problems on other platforms, as those
solutions could be included prior to an official release in the
future.
All Epoch 4.0 discussions (bugs, design issues, etc.) should be sent
to the epoch-design mailing list (epoch-design@cs.uiuc.edu, requests
to epoch-design-request@cs.uiuc.edu). Key announcements (future test
releases, official releases, etc.) will also be made to the regular
mailing list/newsgroup.
Known Shortcomings
------------------
1. Horizontal scrolling of Emacs windows via scroll-left,
scroll-right, set-window-hscroll is not supported, and has been
disabled.
2. Vertical scrolling optimizations. Vertical scrolling can be
optimized in certain situations, such as when a window is scrolled by
less than its height, and areas of the screen can be moved in X rather
than being redrawn.
3. ASCII support. We are still planning to re-integrate support for
regular terminals (ASCII/XTERM).
Changes
-------
The manual has been updated, and is available via Info (C-h i).
Here's an outline of major changes in Epoch 4.0 from Epoch 3.2:
1. Minibuffer modes.
It is possible to have the minibuffer in its own distinct screen
(non-local, traditional Epoch) or at the bottom of each edit screen
(local, traditional GNU Emacs). In the case of non-local minibuffers,
text typed/displayed in the minibuffer is synchronized in *all*
minibuffer windows; this behavior is open to debate.
To select non-local minibuffers, either invoke Epoch with the
"-nm" flag (no minibuffer screen), or include the following in your
XDefaults:
epoch.nonlocal.minibuf: false
2. Style-based display.
Attributes no longer exist. In particular, references to
attributes in Elisp will be invalid. Epoch Buttons now reference
styles directly. The old primitives (reserve-attribute),
(set-button-attribute), (button-attribute), and (set-attribute-style)
have been replaced/superceded by (set-button-style), and
(button-style). An example of this is:
(setq s (make-style))
(set-style-foreground s "red")
(setq b (make-button))
(set-button-style b s)
(move-button b 5 18)
The style used for displaying characters in a buffer is now
determined according to a style hierarchy:
1. Button style (if present, following the button display
rule)
2. Buffer-local styles (setting the buffer-local variable
buffer-style)
3. Screen styles.
Screen styles are set with the existing primitives such as
(font), (foreground), (background), and (cursor-color).
Styles can be embedded in the Elisp variables mode-line-format
and default-mode-line-format, which define modeline appearance. See
the file "~love/test/mode-demo.el" for an example of this.
4. Proportional font support.
Epoch 4.0 supports proportional fonts and lines with fonts of
differing heights. Fonts are specified with the existing
(epoch::font) primitive, and may be specified in styles
(set-style-font). Note that with proportional fonts, text using TABs
and containing alligned columns will not display as expected with
fixed-width fonts.
Screen geometry specifications are in characters, based on the
base font for the screen. (Epoch 4.0 is therefore compatible with
Xdefault settings from Epoch 3.2)
Emacs windows under Epoch now specify their dimensions in
pixels rather than characters. Character dimensions are calculated
based on fonts used, and will not necessarily be constant. New
functions returning pixel values are:
(window-pixheight)
(window-pixwidth)
(window-pixedges)
Existing Emacs functions still exist and return calculated
dimensions in character values:
(window-height)
(window-width)
(window-edges)
Additionally, functions to change window sizes or to split
windows will still take character arguments.
Existing GNU Emacs packages should behave as expected if no
proportional fonts or fonts of differing heights are used; otherwise
things may be strange. I have used Epoch-4.0 with the following
major/common Elisp packages without problems:
Gnus
Mh-e
GDB
Auto-fill mode (note that this does *not* do kerning)
RCS minor mode
Hyper-man/hypertext Info browser (contrib)
5. Mouse maps
Epoch-4.0 mouse support is based on Ken Laprade's mouse
package, so there is support for detecting mouse presses, etc. on
window modelines, etc.
Mouse and motion event data is now passed to the Elisp event
code as pixel data rather than characters. Key functions for using
this data are:
(query-mouse)
(query-pointer)
(coordinates-in-window-p)
(coords-to-point)
GNU Emacs x-mouse-* C primitives are disabled. Enabling these
for compatibility with Emacs is subject to debate.
6. Conversion of Epoch 3.2 Elisp code
As mentioned in section 2, attributes no longer exist. The
basic changes required to Epoch 3.2 Elisp packages to run under Epoch
4.0 are:
Typical Epoch 3.2 code:
(defvar foo-attribute (reserve-attribute))
(defvar foo-style (make-style))
...
(set-attribute-style foo-attribute foo-style)
(add-button start end foo-attribute)
Corresponding Epoch 4.0 code:
(defvar foo-style (make-style))
...
(add-button start end foo-style)
==> Note that all other reference to attribute functions are
also deleted.
==> Note that the ability to have buffer-local "attributes" is
not lost; the variable corresponding to a particular style can be made
buffer-local, with the values being separate styles in desired
circumstances.
--
Simon Kaplan kaplan@cs.uiuc.edu
Department of Computer Science uiucdcs!kaplan@uunet.uu.net
University of Illinois at Urbana-Champaign
1304 W. Springfield Ave phone: +1 217 244 0392
Urbana Illinois 61801, USA fax: +1 217 333 3501
Technical Details
Message-ID:
<KAPLAN.91Oct1155249@marula.cs.uiuc.edu>Path:
arc1-ca.pugleaf.net!gmdzi!unido!mcsun!uunet!wupost!m.cs.uiuc.edu!uiucdcs!kaplanShow Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: fc7ee,ba216972e76dbd62,start X-Google-Attributes: gidfc7ee,public X-Google-ArrivalTime: 1991-10-02 14:38:01 PST Path: arc1-ca.pugleaf.net!gmdzi!unido!mcsun!uunet!wupost!m.cs.uiuc.edu!uiucdcs!kaplan From: kaplan@marula.cs.uiuc.edu (Simon Kaplan) Newsgroups: gnu.epoch.misc Subject: epoch 4.0 alpha release Message-ID: <KAPLAN.91Oct1155249@marula.cs.uiuc.edu> Date: 1 Oct 91 21:52:49 GMT Sender: news@m.cs.uiuc.edu (News Database (admin-Mike Schwager)) Distribution: gnu Organization: University of Illinois at Urbana-Champaign Lines: 252 Nntp-Posting-Host: marula.cs.uiuc.edu