view nt/PROBLEMS @ 1315:70921960b980

[xemacs-hg @ 2003-02-20 08:19:28 by ben] check in makefile fixes et al Makefile.in.in: Major surgery. Move all stuff related to building anything in the src/ directory into src/. Simplify the dependencies -- everything in src/ is dependent on the single entry `src' in MAKE_SUBDIRS. Remove weirdo targets like `all-elc[s]', dump-elc[s], etc. mule/mule-msw-init.el: Removed. Delete this file. mule/mule-win32-init.el: New file, with stuff from mule-msw-init.el -- not just for MS Windows native, boys and girls! bytecomp.el: Change code inserted to catch trying to load a Mule-only .elc file in a non-Mule XEmacs. Formerly you got the rather cryptic "The required feature `mule' cannot be provided". Now you get "Loading this file requires Mule support". finder.el: Remove dependency on which directory this function is invoked from. update-elc.el: Don't mess around with ../src/BYTECOMPILE_CHANGE. Now that Makefile.in.in and xemacs.mak are in sync, both of them use NEEDTODUMP and the other one isn't used. dumped-lisp.el: Rewrite in terms of `list' and `nconc' instead of assemble-list, so we can have arbitrary forms, not just `when-feature'. very-early-lisp.el: Nuke this file. finder-inf.el, packages.el, update-elc.el, update-elc-2.el, loadup.el, make-docfile.el: Eliminate references to very-early-lisp. msw-glyphs.el: Comment clarification. xemacs.mak: Add macros DO_TEMACS, DO_XEMACS, and a few others; this macro section is now completely in sync with src/Makefile.in.in. Copy check-features, load-shadows, and rebuilding finder-inf.el from src/Makefile.in.in. The main build/dump/recompile process is now synchronized with src/Makefile.in.in. Change `WARNING' to `NOTE' and `error checking' to `error-checking' TO avoid tripping faux warnings and errors in the VC++ IDE. Makefile.in.in: Major surgery. Move all stuff related to building anything in the src/ directory from top-level Makefile.in.in to here. Simplify the dependencies. Rearrange into logical subsections. Synchronize the main compile/dump/build-elcs section with xemacs.mak, which is already clean and in good working order. Remove weirdo targets like `all-elc[s]', dump-elc[s], etc. Add additional levels of macros \(e.g. DO_TEMACS, DO_XEMACS, TEMACS_BATCH, XEMACS_BATCH, XEMACS_BATCH_PACKAGES) to factor out duplicated stuff. Clean up handling of "HEAP_IN_DATA" (Cygwin) so it doesn't need to ignore the return value from dumping. Add .NO_PARALLEL since various aspects of building and dumping must be serialized but do not always have dependencies between them (this is impossible in some cases). Everything related to src/ now gets built in one pass in this directory by just running `make' (except the Makefiles themselves and config.h, paths.h, Emacs.ad.h, and other generated .h files). console.c: Update list of possibly valid console types. emacs.c: Rationalize the specifying and handling of the type of the first frame. This was originally prompted by a workspace in which I got GTK to compile under C++ and in the process fixed it so it could coexist with X in the same build -- hence, a combined TTY/X/MS-Windows/GTK build is now possible under Cygwin. (However, you can't simultaneously *display* more than one kind of device connection -- but getting that to work is not that difficult. Perhaps a project for a bored grad student. I (ben) would do it but don't see the use.) To make sense of this, I added new switches that can be used to specifically indicate the window system: -x [aka --use-x], -tty \[aka --use-tty], -msw [aka --use-ms-windows], -gtk [aka --use-gtk], and -gnome [aka --use-gnome, same as --use-gtk]. -nw continues as an alias for -tty. When none have been given, XEmacs checks for other parameters implying particular device types (-t -> tty, -display -> x [or should it have same treatment as DISPLAY below?]), and has ad-hoc logic afterwards: if env var DISPLAY is set, use x (or gtk? perhaps should check whether gnome is running), else MS Windows if it exsits, else TTY if it exists, else stream, and you must be running in batch mode. This also fixes an existing bug whereby compiling with no x, no mswin, no tty, when running non- interactively (e.g. to dump) I get "sorry, must have TTY support". emacs.c: Turn on Vstack_trace_on_error so that errors are debuggable even when occurring extremely early in reinitialization. emacs.c: Try to make sure that the user can see message output under Windows (i.e. it doesn't just disappear right away) regardless of when it occurs, e.g. in the middle of creating the first frame. emacs.c: Define new function `emacs-run-status', indicating whether XEmacs is noninteractive or interactive, whether raw, post-dump/pdump-load or run-temacs, whether we are dumping, whether pdump is in effect. event-stream.c: It's "mommas are fat", not "momas are fat". Fix other typo. event-stream.c: Conditionalize in_menu_callback check on HAVE_MENUBARS, because it won't exist on w/o menubar support, lisp.h: More hackery on RETURN_NOT_REACHED. Cygwin v3.2 DOES complain here if RETURN_NOT_REACHED() is blank, as it is for GCC 2.5+. So make it blank only for GCC 2.5 through 2.999999999999999. Declare Vstack_trace_on_error. profile.c: Need to include "profile.h" to fix warnings. sheap.c: Don't fatal() when need to rerun Make, just stderr_out() and exit(0). That way we can distinguish between a dumping failing expectedly (due to lack of stack space, triggering another dump) and unexpectedly, in which case, we want to stop building. (or go on, if -K is given) syntax.c, syntax.h: Use ints where they belong, and enum syntaxcode's where they belong, and fix warnings thereby. syntax.h: Fix crash caused by an edge condition in the syntax-cache macros. text.h: Spacing fixes. xmotif.h: New file, to get around shadowing warnings. EmacsManager.c, event-Xt.c, glyphs-x.c, gui-x.c, input-method-motif.c, xmmanagerp.h, xmprimitivep.h: Include xmotif.h. alloc.c: Conditionalize in_malloc on ERROR_CHECK_MALLOC. config.h.in, file-coding.h, fileio.c, getloadavg.c, select-x.c, signal.c, sysdep.c, sysfile.h, systime.h, text.c, unicode.c: Eliminate HAVE_WIN32_CODING_SYSTEMS, use WIN32_ANY instead. Replace defined (WIN32_NATIVE) || defined (CYGWIN) with WIN32_ANY. lisp.h: More futile attempts to walk and chew gum at the same time when dealing with subr's that don't return.
author ben
date Thu, 20 Feb 2003 08:19:44 +0000
parents abe6d1db359e
children
line wrap: on
line source

                                                  -*- mode:outline -*-

This file describes various problems that have been encountered in
running XEmacs on Windows 95, 98 and NT. It has been updated for
XEmacs 21.0.

This is the first release of XEmacs on Windows. In testing it has
proved to be extremely stable in general use (but see the gnus and
subprocess problems below), but not all features or packages work
correctly yet.

Use `C-c C-f' to move to the next equal level of outline, and
`C-c C-b' to move to previous equal level.  `C-h m' will give more
info about the Outline mode.

Also, Try finding the things you need using one of the search commands
XEmacs provides (e.g. `C-s').

General advice:
    Remember your .emacs file! ~\.emacs is your Emacs init file.  If
    you observe strange problems, invoke XEmacs with the `-q' option
    and see if you can repeat the problem.


* Problems with running XEmacs
==============================
** Conflicts with FSF NTEmacs

Depending on how it is installed, FSF NTEmacs may setup various EMACS*
variables in your environment. The presence of these variables may
cause XEmacs to fail at startup, cause you to see corrupted
doc-strings, or cause other random problems.

You should remove these variables from your environment. These
variables are not required to run FSF NTEmacs if you start it by
running emacs.bat.

** XEmacs can't find my .emacs file

XEmacs looks for your .emacs in your "home" directory. XEmacs decides
that your "home" directory is, in order of preference:
	
- The value of the HOME environment variable, if the variable exists.
- The value of the HOMEDRIVE and HOMEPATH environment variables, if
  these variables both exist.
- The directory that XEmacs was started from.

** XEmacs can't find any packages

XEmacs looks for your packages in subdirectories of a directory which
is set at compile-time, and defaults to C:\Program Files\XEmacs. The
variable configure-package-path holds the actual path that was
compiled into your copy of XEmacs.

The compile-time default location can be overridden by the
EMACSPACKAGEPATH environment variable or by the
SOFTWARE\GNU\XEmacs\EMACSPACKAGEPATH registry entry. You should check
that these variables, if they exist, point to the actual location of
your package tree.

** XEmacs sometimes crashes when using gnus

This is a known bug in this release of XEmacs on Windows.

If you want to use gnus anyway, you should minimize any possible data
loss by saving any modified buffers before you start and ensuring that
you haven't set gnus-use-dribble-file to nil or disabled the normal
XEmacs auto-save mechanism.

** XEmacs doesn't die when shutting down Windows 95 or 98

When shutting down Windows 95 or 98 you may see a dialog that says
  "xemacs / You must quit this program before you quit Windows".
It is safe to
  "Click OK to quit the program and Windows",
but you won't be offered a chance to save any modified XEmacs buffers.

* Look and feel
===============
** Key bindings

The C-z, C-x, C-c, and C-v keystrokes have traditional uses in both
emacs and Windows programs. XEmacs binds these keys to their
traditional emacs uses, and provides Windows 3.x style bindings for
the Cut, Copy and Paste functions.

	Function	XEmacs binding
	--------	--------------
	Undo		C-_
	Cut		Sh-Del
 	Copy		C-Insert
	Paste		Sh-Insert

You can rebind keys to make XEmacs more Windows-compatible; for
example, to bind C-z to undo:

       (global-set-key [(control z)] 'undo)

Rebindind C-x and C-c is trickier because by default these are prefix
keys in XEmacs. See the "Key Bindings" node in the XEmacs manual.

** Behavior of selected regions

Selected regions behave differently in XEmacs from typical Windows
programs. The pc-select package provides various functions to enable
the standard Windows behavior for selected regions (eg mark via
shift-arrow, self-inserting deletes region, etc).

** Limitations on the use of the AltGr key.

In some locale and OS combinations you can't generate M-AltGr-key or
C-M-AltGr-key sequences at all.

To generate C-AltGr-key or C-M-AltGr-key sequences you must use the
right-hand Control key and you must press it *after* AltGr.

These limitations arise from fundamental problems in the way that the
win32 API reports AltGr key events. There isn't anything that XEmacs
can do to work round these problems that it isn't already doing.

You may want to create alternative bindings if any of the standard
XEmacs bindings require you to use some combination of Control or Meta
and AltGr.


* Features not fully supported in this release
==============================================
** Limited support for subprocesses

Attempting to use call-process to run a 16bit program gives a
"Spawning child process: Exec format error". For example shell-command
fails under Windows 95 and 98 if you use command.com or any other
16bit program as your shell.

XEmacs may incorrectly quote your call-process command if it contains
double quotes, backslashes or spaces.

start-process and functions that rely on it are supported under Windows 95,
98 and NT. However, starting a 16bit program that requires keyboard input
may cause XEmacs to hang or crash under Windows 95 and 98, and will leave
the orphaned 16bit program consuming all available CPU time.

Sending signals to subprocesses started by call-process or by
start-process fails with a "Cannot send signal to process" error under
Windows 95 and 98. As a side effect of this, quitting XEmacs while it
is still running subprocesses causes it to crash under Windows 95 and
98.

** Changing fonts from the Options menu

The "Font" and "Size" entries on the Options menu don't work yet. This
will be fixed in a future release. In the meantime, you can either
change face fonts with customize or manually; for example:

    (set-face-font 'default "Lucida Console:Regular:10::Western")
    (set-face-font 'modeline "MS Sans Serif:Regular:10::Western")

Font weight and style and character set must be supplied in English as
above. Common weights and styles are "Regular", "Regular Italic",
"Bold" and "Bold Italic". Common character sets are "Western",
"Central European" and "OEM/DOS".

Windows 95 only comes with one fixed-width font that is suitable for
use by XEmacs, namely "Courier New".

** No MULE support

This release of XEmacs on Windows does not contain MULE support. MULE
support has not been a priority for the XEmacs on Windows developers.

** Printing

This release of XEmacs on Windows does not support printing natively.

You can use the lpr-command and lpr-switches variables to specify an
external print program.