comparison man/xemacs-faq.texi @ 593:5fd7ba8b56e7

[xemacs-hg @ 2001-05-31 12:45:27 by ben] xemacs-faq.texi: Major rewrite. Update all MS Windows info to current. Redo section 6.1 almost completely. Incorporate sections 1 and 2 of Hrvoje's FAQ. etags.el: Fix infloop when going up to the root. s\cygwin32.h: Don't unilaterally include ntplay, but only when we're compiling with native sound (look in configure now). event-msw.c: Fix yet more problems with C-g handling. Implement debug-mswindows-events. event-stream.c, events.h, signal.c, sysdep.h: Rearrange the signal-handling code to eliminate the former spaghetti logic paths in it. Document clearly what "low-level" and "high-level" timeouts are. Rename some functions with unclear names (e.g. "...alarm...") to names that reflect what they actually do (e.g. "...async_timeout..."). Fix numerous bugs discovered in the process. console-x.h, event-Xt.c, event-msw.c, frame-x.c: Hopefully make XEmacs properly maintain the "iconified" state on frames at all times. This should fix the "can't delete a frame with C-x 5 0 when there's another iconified frame out there" bug. Put a notice in of further changes that should probably be made to clean up the frame-visibility support. (especially directed at Jan Vroonhof) lisp.h, miscplay.c: Rename SBufbyte to CBufbyte to avoid a misleading name. Eliminate UChar, which is not used anywhere and contributes no semantic info. Add a comment about the documentation-only properties of the char/unsigned char typedefs. Add SChar_Binary as an explicitly `signed' version of Char_Binary and put back the `signed' declarations in miscplay.c. alloc.c: Use char typedefs. console-msw.c, device-msw.c, dialog-msw.c, editfns.c, fileio.c, glyphs-eimage.c, menubar-msw.c, ntplay.c, objects-msw.c, realpath.c, redisplay-msw.c, select-msw.c, syswindows.h, win32.c: Eliminate numerous C++ errors. frame-msw.c: Eliminate numerous C++ errors and Mule-ize. glyphs-msw.c: Eliminate numerous C++ errors and use char typedefs. configure.in: Fix problems detecting both native and Linux sound on Cygwin when compiled with --with-msw=no. Rearrange file-coding handling a bit to avoid warning when compiling with Mule. configure.in, configure.usage, INSTALL: Document XEMACS_CC and corresponding compiler option --xemacs-compiler. Explain how to build xemacs using a C++ compiler.
author ben
date Thu, 31 May 2001 12:45:41 +0000
parents 183866b06e0b
children 38db05db9cb5
comparison
equal deleted inserted replaced
592:4f6ba8f1fb3d 593:5fd7ba8b56e7
5 @setchapternewpage off 5 @setchapternewpage off
6 @c %**end of header 6 @c %**end of header
7 @finalout 7 @finalout
8 @titlepage 8 @titlepage
9 @title XEmacs FAQ 9 @title XEmacs FAQ
10 @subtitle Frequently asked questions about XEmacs @* Last Modified: $Date: 2001/05/24 07:50:53 $ 10 @subtitle Frequently asked questions about XEmacs @* Last Modified: $Date: 2001/05/31 12:45:30 $
11 @sp 1 11 @sp 1
12 @author Tony Rossini <rossini@@biostat.washington.edu> 12 @author Tony Rossini <rossini@@biostat.washington.edu>
13 @author Ben Wing <ben@@xemacs.org> 13 @author Ben Wing <ben@@xemacs.org>
14 @author Chuck Thompson <cthomp@@xemacs.org> 14 @author Chuck Thompson <cthomp@@xemacs.org>
15 @author Steve Baur <steve@@xemacs.org> 15 @author Steve Baur <steve@@xemacs.org>
378 378
379 General Info: 379 General Info:
380 * Q6.0.1:: What is the status of the XEmacs port to Windows? 380 * Q6.0.1:: What is the status of the XEmacs port to Windows?
381 * Q6.0.2:: What flavors of MS Windows are supported? 381 * Q6.0.2:: What flavors of MS Windows are supported?
382 * Q6.0.3:: Are binaries available? 382 * Q6.0.3:: Are binaries available?
383 * Q6.0.4:: Can I build XEmacs on MS Windows with support for X or Cygwin? 383 * Q6.0.4:: Can I build XEmacs on MS Windows with X support? Do I need to?
384 * Q6.0.5:: I'd like to help out. What do I do?
385 * Q6.0.6:: What are Cygwin and MinGW, and do I need them to run XEmacs?
386 * Q6.0.7:: What exactly are all the different ways to build XEmacs under Windows?
384 387
385 Building XEmacs on MS Windows: 388 Building XEmacs on MS Windows:
386 * Q6.1.1:: I decided to run with X. Where do I get an X server? 389 * Q6.1.1:: What compiler/libraries do I need to compile XEmacs?
387 * Q6.1.2:: What compiler do I need to compile XEmacs? 390 * Q6.1.2:: How do I compile the native port?
388 * Q6.1.3:: How do I compile for the native port? 391 * Q6.1.3:: What do I need for Cygwin?
389 * Q6.1.4:: How do I compile for the X port? 392 * Q6.1.4:: How do I compile under Cygwin?
390 * Q6.1.5:: How do I compile for Cygnus' Cygwin? 393 * Q6.1.5:: How do I compile using MinGW (aka @samp{the -mno-cygwin flag to gcc})?
391 * Q6.1.6:: What do I need for Cygwin? 394 * Q6.1.6:: I decided to run with X. Where do I get an X server?
395 * Q6.1.7:: How do I compile with X support?
392 396
393 Customization and User Interface: 397 Customization and User Interface:
394 * Q6.2.1:: How will the port cope with differences in the Windows user interface? 398 * Q6.2.1:: How does the port cope with differences in the Windows user interface?
395 * Q6.2.2:: How do I change fonts in XEmacs on MS Windows? 399 * Q6.2.2:: How do I change fonts in XEmacs on MS Windows?
396 * Q6.2.3:: Where do I put my @file{init.el}/@file{.emacs} file? 400 * Q6.2.3:: Where do I put my @file{init.el}/@file{.emacs} file?
397 401
398 Miscellaneous: 402 Miscellaneous:
399 * Q6.3.1:: Will XEmacs rename all the win32-* symbols to w32-*? 403 * Q6.3.1:: Does XEmacs rename all the win32-* symbols to w32-*?
400 * Q6.3.2:: What are the differences between the various MS Windows emacsen? 404 * Q6.3.2:: What are the differences between the various MS Windows emacsen?
401 * Q6.3.3:: What is the porting team doing at the moment? 405 * Q6.3.3:: What is the porting team doing at the moment?
402 406
403 Troubleshooting: 407 Troubleshooting:
404 * Q6.4.1:: XEmacs won't start on Windows. (NEW) 408 * Q6.4.1:: XEmacs won't start on Windows. (NEW)
651 @end example 655 @end example
652 656
653 @node Q1.0.10, Q1.0.11, Q1.0.9, Introduction 657 @node Q1.0.10, Q1.0.11, Q1.0.9, Introduction
654 @unnumberedsubsec Q1.0.10: Is there a port of XEmacs to Microsoft ('95 or NT)? 658 @unnumberedsubsec Q1.0.10: Is there a port of XEmacs to Microsoft ('95 or NT)?
655 659
656 Yes, @xref{MS Windows}. 660 Yes, see @ref{MS Windows}.
657 661
658 @node Q1.0.11, Q1.0.12, Q1.0.10, Introduction 662 @node Q1.0.11, Q1.0.12, Q1.0.10, Introduction
659 @unnumberedsubsec Q1.0.11: Is there a port of XEmacs to the Macintosh? 663 @unnumberedsubsec Q1.0.11: Is there a port of XEmacs to the Macintosh?
660 @c changed 664 @c changed
661 665
1645 @code{gdb}. If you don't have any such debugger available, complain to 1649 @code{gdb}. If you don't have any such debugger available, complain to
1646 your system administrator. 1650 your system administrator.
1647 1651
1648 It's possible that a core file didn't get produced, in which case you're 1652 It's possible that a core file didn't get produced, in which case you're
1649 out of luck. Go complain to your system administrator and tell him not 1653 out of luck. Go complain to your system administrator and tell him not
1650 to disable core files by default. Also @xref{Q2.1.15}, for tips and 1654 to disable core files by default. Also see @ref{Q2.1.15}, for tips and
1651 techniques for dealing with a debugger. 1655 techniques for dealing with a debugger.
1652 1656
1653 When making a problem report make sure that: 1657 When making a problem report make sure that:
1654 1658
1655 @enumerate 1659 @enumerate
2225 2229
2226 @node Q2.1.18, Q2.1.19, Q2.1.17, Installation 2230 @node Q2.1.18, Q2.1.19, Q2.1.17, Installation
2227 @unnumberedsubsec Q2.1.18: XEmacs is outputting lots of X errors. 2231 @unnumberedsubsec Q2.1.18: XEmacs is outputting lots of X errors.
2228 2232
2229 If this is happening, we would very much like to know what's causing 2233 If this is happening, we would very much like to know what's causing
2230 them. To find this out, @xref{Q2.1.15}. Try to get both a C and Lisp 2234 them. To find this out, see @ref{Q2.1.15}. Try to get both a C and Lisp
2231 backtrace, and send them to @email{xemacs-beta@@xemacs.org}. 2235 backtrace, and send them to @email{xemacs-beta@@xemacs.org}.
2232 2236
2233 @node Q2.1.19, Q2.1.20, Q2.1.18, Installation 2237 @node Q2.1.19, Q2.1.20, Q2.1.18, Installation
2234 @unnumberedsubsec Q2.1.19: XEmacs does not follow the local timezone. 2238 @unnumberedsubsec Q2.1.19: XEmacs does not follow the local timezone.
2235 2239
2331 You have been used to doing `foo', but now when you invoke it (or click 2335 You have been used to doing `foo', but now when you invoke it (or click
2332 the toolbar button or select the menu item), nothing (or an error) 2336 the toolbar button or select the menu item), nothing (or an error)
2333 happens. The simplest explanation is that you are missing a package 2337 happens. The simplest explanation is that you are missing a package
2334 that is essential to you. You can either track it down and install it 2338 that is essential to you. You can either track it down and install it
2335 (there is a list of packages and brief descriptions of their contents in 2339 (there is a list of packages and brief descriptions of their contents in
2336 @file{etc/PACKAGES}), or install the `Sumo Tarball' (see @pxref{Q2.0.14}). 2340 @file{etc/PACKAGES}), or install the `Sumo Tarball' (@pxref{Q2.0.14}).
2337 2341
2338 @c #### should xref to XEmacs manual here 2342 @c #### should xref to XEmacs manual here
2339 2343
2340 @node Customization, Subsystems, Installation, Top 2344 @node Customization, Subsystems, Installation, Top
2341 @unnumbered 3 Customization and Options 2345 @unnumbered 3 Customization and Options
3007 @unnumberedsubsec Q3.4.2: Can I really connect to a running XEmacs after calling up over a modem? How? 3011 @unnumberedsubsec Q3.4.2: Can I really connect to a running XEmacs after calling up over a modem? How?
3008 3012
3009 Yes. Use @code{gnuclient -nw}. (Prior to 20.3, use the @code{gnuattach} 3013 Yes. Use @code{gnuclient -nw}. (Prior to 20.3, use the @code{gnuattach}
3010 program supplied with XEmacs instead.) 3014 program supplied with XEmacs instead.)
3011 3015
3012 Also @xref{Q5.0.12}. 3016 Also see @ref{Q5.0.12}.
3013 3017
3014 @node Q3.5.1, Q3.5.2, Q3.4.2, Customization 3018 @node Q3.5.1, Q3.5.2, Q3.4.2, Customization
3015 @unnumberedsec 3.5: The Keyboard 3019 @unnumberedsec 3.5: The Keyboard
3016 @unnumberedsubsec Q3.5.1: How can I bind complex functions (or macros) to keys? 3020 @unnumberedsubsec Q3.5.1: How can I bind complex functions (or macros) to keys?
3017 3021
3102 3106
3103 (define-key key-translation-map 'delete 'redirected-delete) 3107 (define-key key-translation-map 'delete 'redirected-delete)
3104 (global-set-key 'redirected-delete 'foo) 3108 (global-set-key 'redirected-delete 'foo)
3105 @end lisp 3109 @end lisp
3106 3110
3107 Also @xref{Q3.5.10}. 3111 Also see @ref{Q3.5.10}.
3108 3112
3109 @node Q3.5.5, Q3.5.6, Q3.5.4, Customization 3113 @node Q3.5.5, Q3.5.6, Q3.5.4, Customization
3110 @unnumberedsubsec Q3.5.5: Scrolling one line at a time. 3114 @unnumberedsubsec Q3.5.5: Scrolling one line at a time.
3111 3115
3112 Can the cursor keys scroll the screen a line at a time, rather than the 3116 Can the cursor keys scroll the screen a line at a time, rather than the
3242 @code{delete-key-deletes-forward} to t. You can also change this with 3246 @code{delete-key-deletes-forward} to t. You can also change this with
3243 Customize. Select from the @code{Options} menu 3247 Customize. Select from the @code{Options} menu
3244 @code{Advanced (Customize)->Emacs->Editing->Basics->Delete Key Deletes Forward} or 3248 @code{Advanced (Customize)->Emacs->Editing->Basics->Delete Key Deletes Forward} or
3245 type @kbd{M-x customize @key{RET} editing-basics @key{RET}}. 3249 type @kbd{M-x customize @key{RET} editing-basics @key{RET}}.
3246 3250
3247 Also @xref{Q3.5.4}. 3251 Also see @ref{Q3.5.4}.
3248 3252
3249 @node Q3.5.10, Q3.5.11, Q3.5.9, Customization 3253 @node Q3.5.10, Q3.5.11, Q3.5.9, Customization
3250 @unnumberedsubsec Q3.5.10: Can I turn on @dfn{sticky} modifier keys? 3254 @unnumberedsubsec Q3.5.10: Can I turn on @dfn{sticky} modifier keys?
3251 3255
3252 Yes, with @code{(setq modifier-keys-are-sticky t)}. This will give the 3256 Yes, with @code{(setq modifier-keys-are-sticky t)}. This will give the
3719 (setq zmacs-regions nil) 3723 (setq zmacs-regions nil)
3720 @end lisp 3724 @end lisp
3721 3725
3722 @strong{Warning: This command turns off all region highlighting.} 3726 @strong{Warning: This command turns off all region highlighting.}
3723 3727
3724 Also @xref{Q3.10.1}. 3728 Also see @ref{Q3.10.1}.
3725 3729
3726 @node Q3.10.5, , Q3.10.4, Customization 3730 @node Q3.10.5, , Q3.10.4, Customization
3727 @unnumberedsubsec Q3.10.5: The region disappears when I hit the end of buffer while scrolling. 3731 @unnumberedsubsec Q3.10.5: The region disappears when I hit the end of buffer while scrolling.
3728 3732
3729 This has been fixed by default starting with XEmacs-20.3. 3733 This has been fixed by default starting with XEmacs-20.3.
5853 5857
5854 General Info 5858 General Info
5855 * Q6.0.1:: What is the status of the XEmacs port to Windows? 5859 * Q6.0.1:: What is the status of the XEmacs port to Windows?
5856 * Q6.0.2:: What flavors of MS Windows are supported? 5860 * Q6.0.2:: What flavors of MS Windows are supported?
5857 * Q6.0.3:: Where are the XEmacs on MS Windows binaries? 5861 * Q6.0.3:: Where are the XEmacs on MS Windows binaries?
5858 * Q6.0.4:: Can I build XEmacs on MS Windows with support for X or Cygwin? 5862 * Q6.0.4:: Can I build XEmacs on MS Windows with X support? Do I need to?
5863 * Q6.0.5:: I'd like to help out. What do I do?
5864 * Q6.0.6:: What are Cygwin and MinGW, and do I need them to run XEmacs?
5865 * Q6.0.7:: What exactly are all the different ways to build XEmacs under Windows?
5859 5866
5860 Building XEmacs on MS Windows 5867 Building XEmacs on MS Windows
5861 * Q6.1.1:: I decided to run with X. Where do I get an X server? 5868 * Q6.1.1:: What compiler/libraries do I need to compile XEmacs?
5862 * Q6.1.2:: What compiler do I need to compile XEmacs? 5869 * Q6.1.2:: How do I compile the native port?
5863 * Q6.1.3:: How do I compile for the native port? 5870 * Q6.1.3:: What do I need for Cygwin?
5864 * Q6.1.4:: How do I compile for the X port? 5871 * Q6.1.4:: How do I compile under Cygwin?
5865 * Q6.1.5:: How do I compile for Cygnus' Cygwin? 5872 * Q6.1.5:: How do I compile using MinGW (aka @samp{the -mno-cygwin flag to gcc})?
5866 * Q6.1.6:: What do I need for Cygwin? 5873 * Q6.1.6:: I decided to run with X. Where do I get an X server?
5874 * Q6.1.7:: How do I compile with X support?
5867 5875
5868 Customization and User Interface 5876 Customization and User Interface
5869 * Q6.2.1:: How will the port cope with differences in the Windows user interface? 5877 * Q6.2.1:: How does the port cope with differences in the Windows user interface?
5870 * Q6.2.2:: How do I change fonts in XEmacs on MS Windows? 5878 * Q6.2.2:: How do I change fonts in XEmacs on MS Windows?
5871 * Q6.2.3:: Where do I put my @file{init.el}/@file{.emacs} file? 5879 * Q6.2.3:: Where do I put my @file{init.el}/@file{.emacs} file?
5872 5880
5873 Miscellaneous 5881 Miscellaneous
5874 * Q6.3.1:: Will XEmacs rename all the win32-* symbols to w32-*? 5882 * Q6.3.1:: Does XEmacs rename all the win32-* symbols to w32-*?
5875 * Q6.3.2:: What are the differences between the various MS Windows emacsen? 5883 * Q6.3.2:: What are the differences between the various MS Windows emacsen?
5876 * Q6.3.3:: What is the porting team doing at the moment? 5884 * Q6.3.3:: What is the porting team doing at the moment?
5877 5885
5878 Troubleshooting: 5886 Troubleshooting:
5879 * Q6.4.1:: XEmacs won't start on Windows. (NEW) 5887 * Q6.4.1:: XEmacs won't start on Windows. (NEW)
5882 5890
5883 @node Q6.0.1, Q6.0.2, MS Windows, MS Windows 5891 @node Q6.0.1, Q6.0.2, MS Windows, MS Windows
5884 @unnumberedsec 6.0: General Info 5892 @unnumberedsec 6.0: General Info
5885 @unnumberedsubsec Q6.0.1: What is the status of the XEmacs port to Windows? 5893 @unnumberedsubsec Q6.0.1: What is the status of the XEmacs port to Windows?
5886 5894
5887 Is XEmacs really getting ported to MS Windows? What is the status of the port? 5895 Is XEmacs really ported to MS Windows? What is the status of the port?
5888 5896
5889 Yes, a group of volunteers actively works on making XEmacs code base 5897 Beginning with release 21.0, XEmacs has worked under MS Windows. A
5890 cleanly compile and run on MS Windows operating systems. The mailing 5898 group of dedicated developers actively maintains and improves the
5891 list at @email{xemacs-nt@@xemacs.org} is dedicated to that effort 5899 Windows-specific portions of the code. The mailing list at
5892 (please use the -request address to subscribe). 5900 @email{xemacs-nt@@xemacs.org} is dedicated to that effort (please use
5893 5901 the -request address to subscribe). (Despite its name, XEmacs actually
5894 At this time, XEmacs on MS Windows is stable and full-featured. 5902 works on all versions of Windows.)
5895 However, the internationalization (Mule) support does not work -- 5903
5896 although this is being actively worked on. 5904 As of May 2001, XEmacs on MS Windows is stable and full-featured, and
5905 has been so for a year or more -- in fact, some features, such as
5906 printing, actually work better on Windows than native Unix. However,
5907 the internationalization (Mule) support does not work -- although this
5908 is being actively worked on.
5909
5897 5910
5898 @node Q6.0.2, Q6.0.3, Q6.0.1, MS Windows 5911 @node Q6.0.2, Q6.0.3, Q6.0.1, MS Windows
5899 @unnumberedsubsec Q6.0.2: What flavors of MS Windows are supported? The list name implies NT only. 5912 @unnumberedsubsec Q6.0.2: What flavors of MS Windows are supported? The list name implies NT only.
5900 5913
5901 The list name is misleading, as XEmacs will support Windows 95, Windows 5914 The list name is misleading, as XEmacs supports and has been compiled on
5902 98, Windows NT, Windows 2000, Windows ME, Windows XP, and all newer 5915 Windows 95, Windows 98, Windows NT, Windows 2000, Windows ME, Windows
5903 versions of Windows. The MS Windows-specific code is based on Microsoft 5916 XP, and all newer versions of Windows. The MS Windows-specific code is
5904 Win32 API, and will not work on MS Windows 3.x or on MS-DOS. 5917 based on Microsoft Win32 API, and will not work on MS Windows 3.x or on
5918 MS-DOS.
5919
5920 XEmacs also supports the Cygwin and MinGW development and runtime
5921 environments, where it also uses native Windows code for graphical
5922 features.
5905 5923
5906 5924
5907 @node Q6.0.3, Q6.0.4, Q6.0.2, MS Windows 5925 @node Q6.0.3, Q6.0.4, Q6.0.2, MS Windows
5908 @unnumberedsubsec Q6.0.3: Are binaries available? 5926 @unnumberedsubsec Q6.0.3: Are binaries available?
5909 5927
5910 Binaries are available at 5928 Binaries are available at @uref{http://www.xemacs.org/Download/win32/}
5911 @uref{ftp://ftp.xemacs.org/pub/xemacs/binaries/win32/} for the native MS 5929 for the native and Cygwin MS Windows versions of 21.4, and the native
5912 Windows version. 5930 version of 21.1.
5913 5931
5914 @node Q6.0.4, Q6.1.1, Q6.0.3, MS Windows 5932 The 21.4 binaries use a modified version of the Cygwin installer. Run
5915 @unnumberedsubsec Q6.0.4: Can I build XEmacs on MS Windows with support for X or Cygwin? 5933 the provided @file{setup.exe}, and follow the instructions.
5916 5934
5917 Yes. XEmacs can be built in several ways in the MS Windows environment. 5935
5936 @node Q6.0.4, Q6.0.5, Q6.0.3, MS Windows
5937 @unnumberedsubsec Q6.0.4: Can I build XEmacs on MS Windows with X support? Do I need to?
5938
5939 Yes, you can, but no you do not need to. In fact, we recommend that you
5940 use a native-GUI version unless you have a specific need for an X
5941 version.
5942
5943 @node Q6.0.5, Q6.0.6, Q6.0.4, MS Windows
5944 @unnumberedsubsec Q6.0.5: I'd like to help out. What do I do?
5945
5946 It depends on the knowledge and time you possess. If you are a
5947 programmer, try to build XEmacs and see if you can improve it.
5948 Windows-specific improvements like integration with established
5949 Windows environments are especially sought after.
5950
5951 Otherwise, you can still help by downloading the binaries, using
5952 XEmacs as your everyday editor and reporting bugs you find to the
5953 mailing list.
5954
5955 Another area where we need help is the documentation: We need good
5956 documentation for building XEmacs and for using it. This FAQ is a
5957 small step in that direction.
5958
5959 @node Q6.0.6, Q6.0.7, Q6.0.5, MS Windows
5960 @unnumberedsubsec Q6.0.6: What are Cygwin and MinGW, and do I need them to run XEmacs?
5961
5962 To answer the second part of the question: No, you, you don't need
5963 Cygwin or MinGW to build or to run XEmacs. But if you have them and
5964 want to use them, XEmacs supports these environments.
5965
5966 (One important reason to support Cygwin is that it lets the MS Windows
5967 developers test out their code in a Unix environment without actually
5968 having to have a Unix machine around. For this reason alone, Cygwin
5969 support is likely to remain supported for a long time in XEmacs. Same
5970 goes for the X support under Cygwin, for the same reasons. MinGW
5971 support, on the other hand, depends on volunteers to keep it up to date;
5972 but this is generally not hard.)
5973
5974 Cygwin is a set of tools providing Unix-like API on top of Win32.
5975 It makes it easy to port large Unix programs without significant
5976 changes to their source code. It is a development environment as well
5977 as a runtime environment.
5978
5979 When built with Cygwin, XEmacs supports all display types -- TTY, X &
5980 Win32 GUI, and can be built with support for all three simultaneously.
5981 If you build with Win32 GUI support then the Cygwin version uses the
5982 majority of the Windows-specific code, which is mostly related to
5983 display. If you want to build with X support you need X libraries (and
5984 an X server to display XEmacs on); see @ref{Q6.1.4}. TTY and Win32 GUI
5985 require no additional libraries beyond what comes standard with Cygwin.
5986
5987 The advantages of the Cygwin version are that it integrates well with
5988 the Cygwin environment for existing Cygwin users; uses configure so
5989 building with different features is very easy; and actively supports X &
5990 TTY. Furthermore, the entire Cygwin environment and compiler are free,
5991 whereas Visual C++ costs money.
5992
5993 The disadvantage is that it requires the whole Cygwin environment,
5994 whereas the native port requires only a suitable MS Windows compiler.
5995 Also, it follows the Unix filesystem and process model very closely
5996 (some will undoubtedly view this as an advantage).
5997
5998 See @uref{http://sources.redhat.com/cygwin/} for more information on
5999 Cygwin.
6000
6001 MinGW is a collection of header files and import libraries that allow
6002 one to use GCC under the Cygwin environment to compile and produce
6003 exactly the same native Win32 programs that you can using Visual C++.
6004 Programs compiled with MinGW make use of the standard Microsoft runtime
6005 library @file{MSVCRT.DLL}, present on all Windows systems, and look,
6006 feel, and act like a standard Visual-C-produced application. (The only
6007 difference is the compiler.) This means that, unlike a
6008 standardly-compiled Cygwin application, no extra runtime support
6009 (e.g. Cygwin's @file{cygwin1.dll}) is required. This, along with the
6010 fact that GCC is free (and works in a nice Unix-y way in a nice Unix-y
6011 environment, for those die-hard Unix hackers out there), is the main
6012 advantage of MinGW. It is also potentially faster than Cygwin because
6013 it has less overhead when calling Windows, but you lose the POSIX
6014 emulation layer, which makes Unix programs harder to port. (But this is
6015 irrelevant for XEmacs since it's already ported to Win32.)
6016
6017 See @uref{http://www.mingw.org/} for more information on MinGW.
6018
6019 @node Q6.0.7, Q6.1.1, Q6.0.6, MS Windows
6020 @unnumberedsubsec Q6.0.7: What exactly are all the different ways to build XEmacs under Windows?
6021
6022 XEmacs can be built in several ways in the MS Windows environment.
5918 6023
5919 The standard way is what we call the "native" port. It uses the Win32 6024 The standard way is what we call the "native" port. It uses the Win32
5920 API and has no connection with X whatsoever -- it does not require X 6025 API and has no connection with X whatsoever -- it does not require X
5921 libraries to build, nor does it require an X server to run. The native 6026 libraries to build, nor does it require an X server to run. The native
5922 port is the most reliable version and provides the best graphical 6027 port is the most reliable version and provides the best graphical
5923 support. Almost all development is geared towards this version, and 6028 support. Almost all development is geared towards this version, and
5924 there is little reason not to use it. 6029 there is little reason not to use it.
5925 6030
5926 You can also build XEmacs "X" port---it requires X libraries to build 6031 The second way to build is the Cygwin port. It takes advantage of
5927 and an X server to run. Internally it uses the Xt event loop and makes 6032 Cygnus emulation library under Win32. @xref{Q6.0.6}, for more
5928 use of X toolkits. Its look is quite un-Windowsy, and it is not well 6033 information.
5929 maintained, but it is being kept around for the time being because it 6034
5930 has a long history. 6035 A third way is the MinGW port. It uses the Cygwin environment to build
5931 6036 but does not require it at runtime. @xref{Q6.0.6}, for more
5932 There is also a third special case, the Cygwin port. It takes 6037 information.
5933 advantage of Cygnus emulation library under Win32, which enables it to 6038
5934 reuse much of the Unix XEmacs code base, such as processes and network 6039 Finally, you might also be able to build the non-Cygwin, non-MinGW "X"
5935 support, or internal select() mechanisms. 6040 port. This was actually the first version of XEmacs that ran under MS
5936 6041 Windows, and although the code is still in XEmacs, it's essentially
5937 Cygwin port supports all display types---TTY, X & MS GUI, and can be 6042 orphaned and it's unlikely it will compile without a lot of work. If
5938 built with support for all three. If you build with MS GUI support 6043 you want an MS Windows versin of XEmacs that supports X, use the Cygwin
5939 then the Cygwin version uses the majority of the msw code, which is 6044 version. (The X support there is actively maintained, so that Windows
5940 mostly related to display. If you want to build with X support you 6045 developers can test the X support in XEmacs.)
5941 need X libraries. If you want to build with TTY support you need 6046
5942 ncurses. MS GUI requires no additional libraries. 6047
5943 6048 @node Q6.1.1, Q6.1.2, Q6.0.7, MS Windows
5944 The advantages of the Cygwin version are that it integrates well with
5945 Cygwin environment for existing Cygwin users; uses configure so building
5946 with different features is very easy; and has process support in X &
5947 tty.
5948
5949 The disadvantage is that it requires several Unix utilities and the
5950 whole Cygwin environment, whereas the native port requires only a
5951 suitable MS Windows compiler. Also, it follows the Unix filesystem and
5952 process model very closely (some will undoubtedly view this as an
5953 advantage).
5954
5955 @node Q6.1.1, Q6.1.2, Q6.0.4, MS Windows
5956 @unnumberedsec 6.1: Building XEmacs on MS Windows 6049 @unnumberedsec 6.1: Building XEmacs on MS Windows
5957 @unnumberedsubsec Q6.1.1: I decided to run with X. Where do I get an X server? 6050 @unnumberedsubsec Q6.1.1: What compiler/libraries do I need to compile XEmacs?
5958 6051
5959 Pointers to X servers can be found at 6052 You need Visual C++ 4.2, 5.0, or 6.0 for the native version. (We have
5960 @iftex 6053 some beta testers currently trying to compile with VC.NET, aka version
5961 @* 6054 7.0, but we can't yet report complete success.) For the Cygwin and MinGW
5962 @end iftex 6055 versions, you need the Cygwin environment, which comes with GCC, the
5963 @uref{http://dao.gsfc.nasa.gov/software/grads/win32/X11R6.3/}; 6056 compiler used for those versions. @xref{Q6.0.6}, for more information
5964 6057 on Cygwin and MinGW.
5965 look for "Where to get an X server". Also note that, although the above
5966 page talks about Cygnus gnu-win32 (Cygwin), the information on X servers
5967 is Cygwin-independent. You don't have to be running/using Cygwin to use
5968 these X servers, and you don't have to compile XEmacs under Cygwin to
5969 use XEmacs with these X servers. An "X port" XEmacs compiled under
5970 Visual C++ will work with these X servers (as will XEmacs running on a
5971 Unix box, redirected to the server running on your PC).
5972
5973 6058
5974 @node Q6.1.2, Q6.1.3, Q6.1.1, MS Windows 6059 @node Q6.1.2, Q6.1.3, Q6.1.1, MS Windows
5975 @unnumberedsubsec Q6.1.2: What compiler do I need to compile XEmacs? 6060 @unnumberedsubsec Q6.1.2: How do I compile the native port?
5976
5977 You need Visual C++ 4.2, 5.0, or 6.0, with the exception of the Cygwin
5978 port, which uses Gcc. There is also a MINGW32 port of XEmacs (using
5979 Gcc, but using native libraries rather than the Cygwin libraries). ####
5980 More information about this should be provided.
5981
5982
5983 @node Q6.1.3, Q6.1.4, Q6.1.2, MS Windows
5984 @unnumberedsubsec Q6.1.3: How do I compile for the native port?
5985 6061
5986 Please read the file @file{nt/README} in the XEmacs distribution, which 6062 Please read the file @file{nt/README} in the XEmacs distribution, which
5987 contains the full description. 6063 contains the full description.
5988 6064
6065 @node Q6.1.3, Q6.1.4, Q6.1.2, MS Windows
6066 @unnumberedsubsec Q6.1.3: What do I need for Cygwin?
6067
6068 You can find the Cygwin tools and compiler at:
6069
6070 @uref{http://sources.redhat.com/cygwin/}
6071
6072 Click on the @samp{Install now!} link, which will download a file
6073 @file{setup.exe}, which you can use to download everything else. (You
6074 will need to pick a mirror site; @samp{mirrors.rcn.net} is probably the
6075 best.) You should go ahead and install everything -- you'll get various
6076 ancillary libraries that XEmacs needs or likes, e.g. XPM, PNG, JPEG,
6077 TIFF, etc.
6078
6079 If you want to compile under X, you will also need the X libraries; see
6080 @ref{Q6.1.6}.
6081
5989 6082
5990 @node Q6.1.4, Q6.1.5, Q6.1.3, MS Windows 6083 @node Q6.1.4, Q6.1.5, Q6.1.3, MS Windows
5991 @unnumberedsubsec Q6.1.4: How do I compile for the X port? 6084 @unnumberedsubsec Q6.1.4: How do I compile under Cygwin?
5992
5993 Again, it is described in @file{nt/README} in some detail. Basically, you
5994 need to get X11 libraries from ftp.x.org, and compile them. If the
5995 precompiled versions are available somewhere, I don't know of it.
5996
5997
5998 @node Q6.1.5, Q6.1.6, Q6.1.4, MS Windows
5999 @unnumberedsubsec Q6.1.5: How do I compile for Cygnus' Cygwin?
6000 6085
6001 Similar as on Unix; use the usual `configure' and `make' process. 6086 Similar as on Unix; use the usual `configure' and `make' process.
6002 Some problems to watch out for: 6087 Some problems to watch out for:
6003 6088
6004 @itemize @bullet 6089 @itemize @bullet
6005 @item 6090 @item
6006 make sure HOME is set. This controls where you 6091 make sure HOME is set. This controls where you
6007 @file{init.el}/@file{.emacs} file comes from; 6092 @file{init.el}/@file{.emacs} file comes from;
6008 6093
6009 @item 6094 @item
6010 CYGWIN needs to be set to tty for process support work. e.g. CYGWIN=tty; 6095 CYGWIN needs to be set to tty for process support to work, e.g. CYGWIN=tty;
6011 (use CYGWIN32=tty under b19 and older.)
6012 6096
6013 @item 6097 @item
6014 picking up some other grep or other UNIX-like tools can kill configure; 6098 picking up some other grep or other UNIX-like tools can kill configure;
6015 6099
6016 @item 6100 @item
6017 static heap too small, adjust @file{src/sheap-adjust.h} to a more positive 6101 static heap too small, adjust @file{src/sheap-adjust.h} to a more positive
6018 number; 6102 number;
6019 6103
6020 @item 6104 @item
6021 The Cygwin version doesn't understand @file{//machine/path} type paths so you 6105 (Unconfirmed) The Cygwin version doesn't understand
6022 will need to manually mount a directory of this form under a unix style 6106 @file{//machine/path} type paths so you will need to manually mount a
6023 directory for a build to work on the directory. 6107 directory of this form under a unix style directory for a build to work
6108 on the directory;
6109
6110 @item
6111 If you're building @strong{WITHOUT} X11, don't forget to change symlinks
6112 @file{/usr/lib/libXpm.a} and @file{/usr/lib/libXpm.dll.a} to point to
6113 the non-X versions of these libraries. By default they point to the X
6114 versions. So:
6115
6116 @example
6117 /usr/lib/libXpm.a -> /usr/lib/libXpm-noX.a
6118 /usr/lib/libXpm.dll.a -> /usr/lib/libXpm-noX.dll.a
6119 @end example
6120
6121
6122 @item
6123 Other problems are listed in the @file{PROBLEMS} file, in the top-level
6124 directory of the XEmacs sources.
6024 6125
6025 @end itemize 6126 @end itemize
6026 6127
6027 @node Q6.1.6, Q6.2.1, Q6.1.5, MS Windows 6128
6028 @unnumberedsubsec Q6.1.6: What do I need for Cygwin? 6129 @node Q6.1.5, Q6.1.6, Q6.1.4, MS Windows
6029 6130 @unnumberedsubsec Q6.1.5: How do I compile using MinGW (aka @samp{the -mno-cygwin flag to gcc})?
6030 You can find the Cygwin tools and compiler at: 6131
6031 6132 Similar to the method for Unix. Things to remember:
6032 @uref{http://sourceware.cygnus.com/cygwin/} 6133
6033 6134 @itemize @bullet
6034 You will need version b19 or later. 6135 @item
6035 The latest current version is 1.1.1. 6136 Specify the target host on the command line for @file{./configure}, e.g.
6036 Other common versions you will see are b20.1. 6137 @samp{./configure i586-pc-mingw32}.
6037 6138
6038 Another location, one of the mirror sites of the site just mentioned, 6139 @item
6039 is usually a last faster: 6140 Be sure that your build directory is mounted such that it has the
6040 6141 same path either as a cygwin path (@file{/build/xemacs}) or as a Windows
6041 @uref{ftp://ftp.freesoftware.com/pub/sourceware/cygwin/} 6142 path (@file{c:\build\xemacs}).
6042 6143
6043 You can obtain the latest version (currently 1.1.1) from the 6144 @item
6044 @samp{latest/} subdirectory of either of the above two just-mentioned 6145 Build @samp{gcc -mno-cygwin} versions of the extra libs, i.e. @file{libpng},
6045 URL's. 6146 @file{compface}, etc.
6046 6147
6047 @strong{WARNING: The version of GCC supplied under @samp{latest/}, as of 6148 @item
6048 June 6th, 2000, does not appear to work. It generates loads of spurious 6149 Specify the target location of the extra libs on the command line
6049 preprocessor warnings and errors, which makes it impossible to compile 6150 to @file{configure}, e.g.
6050 XEmacs with it.} 6151 @samp{./configure --site-prefixes=/build/libs i586-pc-mingw32}.
6051 6152 @end itemize
6052 You will also need the X libraries. You can get them on the XEmacs FTP 6153
6053 site at 6154
6054 6155 @node Q6.1.6, Q6.1.7, Q6.1.5, MS Windows
6055 @uref{ftp://ftp.xemacs.org/pub/xemacs/aux/cygwin/} 6156 @unnumberedsubsec Q6.1.6: I decided to run with X. Where do I get an X server?
6056 6157
6057 You will find b19 and b20 versions of the X libraries, plus b19 and b20 6158 As of May 2001, we are recommending that you use the port of XFree86 to
6058 versions of stuff that should go into @samp{/usr/local/}, donated by 6159 Cygwin. This has recently stabilized, and will undoubtedly soon make
6059 Andy Piper. This includes pre-built versions of various graphics libraries, 6160 most other MS Windows X servers obsolete. It is what the Windows
6060 such as PNG, JPEG, TIFF, and XPM. (Remember, GIF support is built-in to 6161 developers use to test the MS Windows X support.
6061 XEmacs.) 6162
6062 6163 To install, go to @uref{http://xfree86.cygwin.com/}. There is a
6063 (X libraries for v1 and beyond of Cygwin can be found on the Cygwin site 6164 detailed description on that site of exactly how to install it. This
6064 itself -- look in the @samp{xfree/} subdirectory.) 6165 installation also provides the libraries, include files, and other stuff
6065 6166 needed for development; a large collection of internationalized fonts;
6066 @emph{NOTE:} There are two versions of the XPM library provided in 6167 the standard X utilities (xterm, twm, etc.) -- in a word, the works.
6067 Andy's packets. Once is for building with X support, and the other for 6168
6068 building without. The X version should work if you're building with 6169 NOTE: As of late May 2001, there is a bug in the file
6069 both X and Windows support. The two files are called @file{libXpm-X.a} 6170 @file{startxwin.bat}, used to start X Windows. It passes the option
6070 and @file{libXpm-noX.a} respectively, and you must symlink the 6171 @samp{-engine -4} to the X server, which is bogus -- you need to edit
6071 appropriate one to @file{libXpm.a}. @strong{CAREFUL:} By default, the 6172 the file and change it to @samp{-engine 4}.
6072 non-X version is symlinked in. If you then configure XEmacs with X, 6173
6073 you won't run into problems until you start compiling @file{events.c}, 6174
6074 at which point you'll get strange and decidedly non-obvious errors. 6175 @node Q6.1.7, Q6.2.1, Q6.1.6, MS Windows
6075 6176 @unnumberedsubsec Q6.1.7: How do I compile with X support?
6076 Please see @uref{http://www.xemacs.freeserve.co.uk/} (Andy Piper's home 6177
6077 page) for more information. 6178 To compile under Cygwin, all you need to do is install XFree86
6078 6179 (@pxref{Q6.1.6}). Once installed, @file{configure} should automatically
6079 BTW There are also libraries at 6180 find the X libraries and compile with X support.
6080 @iftex 6181
6081 @* 6182 As noted above, the non-Cygwin X support is basically orphaned, and
6082 @end iftex 6183 probably won't work. But if it want to try, it's described in
6083 @uref{http://dao.gsfc.nasa.gov/software/grads/win32/X11R6.3/}, but 6184 @file{nt/README} in some detail. Basically, you need to get X11
6084 these are not b19 compatible, and may in fact be native-compiled. 6185 libraries from ftp.x.org, and compile them. If the precompiled versions
6085 6186 are available somewhere, we don't know of it.
6086 6187
6087 @node Q6.2.1, Q6.2.2, Q6.1.6, MS Windows 6188
6189 @node Q6.2.1, Q6.2.2, Q6.1.7, MS Windows
6088 @unnumberedsec 6.2: Customization and User Interface 6190 @unnumberedsec 6.2: Customization and User Interface
6089 @unnumberedsubsec Q6.2.1: How will the port cope with differences in the Windows user interface? 6191 @unnumberedsubsec Q6.2.1: How does the port cope with differences in the Windows user interface?
6090 6192
6091 XEmacs (and Emacs in general) UI is pretty 6193 XEmacs (and Emacs in general) UI is pretty different from what is
6092 different from what is expected of a typical MS Windows program. How will 6194 expected of a typical MS Windows program. How does the MS Windows port
6093 the MS Windows port cope with it? 6195 cope with it?
6094 6196
6095 Fortunately, Emacs is also one of the most configurable editor beasts 6197 As a general rule, we follow native MS Windows conventions as much as
6096 in the world. The MS Windows "look and feel" (mark via shift-arrow, 6198 possible. In cases where there's a clear UI conflict, we currently use
6097 self-inserting deletes region, etc.) can be easily configured via 6199 normal Unix XEmacs behavior by default, but make sure the MS Windows
6098 various packages distributed with XEmacs. The `pending-delete' 6200 "look and feel" (mark via shift-arrow, self-inserting deletes region,
6099 package is an example of such a utility. 6201 Alt selects menu items, etc.) is easily configurable (respectively:
6100 6202 using the variable @code{shifted-motion-keys-select-region} in 21.4 and
6101 In future versions, some of these packages might be turned on by 6203 above [it's in fact the default in these versions], or the
6204 @file{pc-select} package; using the @file{pending-del} package; and
6205 setting the variable @code{menu-accelerator-enabled} to
6206 @code{menu-force} in 21.4 and above). In fact, if you use the sample
6207 @file{init.el} file as your init file, you will get all these behaviors
6208 automatically turned on.
6209
6210 In future versions, some of these features might be turned on by
6102 default in the MS Windows environment. 6211 default in the MS Windows environment.
6103 6212
6104 6213
6105 @node Q6.2.2, Q6.2.3, Q6.2.1, MS Windows 6214 @node Q6.2.2, Q6.2.3, Q6.2.1, MS Windows
6106 @unnumberedsubsec Q6.2.2: How do I change fonts in XEmacs on MS Windows? 6215 @unnumberedsubsec Q6.2.2: How do I change fonts in XEmacs on MS Windows?
6107 6216
6108 In 21.2.*, use the font menu. In 21.1.*, you can change font 6217 In 21.4 and above, use the font menu. In all versions, you can change
6109 manually. For example: 6218 font manually. For example:
6110 6219
6111 @display 6220 @display
6112 (set-face-font 'default "Lucida Console:Regular:10") 6221 (set-face-font 'default "Lucida Console:Regular:10")
6113 (set-face-font 'modeline "MS Sans Serif:Regular:10") 6222 (set-face-font 'modeline "MS Sans Serif:Regular:10")
6114 @end display 6223 @end display
6124 the HOME environment variable. If this is not set, it defaults to 6233 the HOME environment variable. If this is not set, it defaults to
6125 `C:\'. 6234 `C:\'.
6126 6235
6127 @node Q6.3.1, Q6.3.2, Q6.2.3, MS Windows 6236 @node Q6.3.1, Q6.3.2, Q6.2.3, MS Windows
6128 @unnumberedsec 6.3: Miscellaneous 6237 @unnumberedsec 6.3: Miscellaneous
6129 @unnumberedsubsec Q6.3.1: Will XEmacs rename all the win32-* symbols to w32-*? 6238 @unnumberedsubsec Q6.3.1: Does XEmacs rename all the win32-* symbols to w32-*?
6130 6239
6131 In his flavor of Emacs 20, Richard Stallman has renamed all the win32-* 6240 In his flavor of Emacs 20, Richard Stallman has renamed all the win32-*
6132 symbols to w32-*. Will XEmacs do the same? 6241 symbols to w32-*. Does XEmacs do the same?
6133 6242
6134 We consider such a move counter-productive, thus we will not use the 6243 We consider such a move counter-productive, thus we will not use the
6135 `w32' prefix. However, we do recognize that Win32 name is little more 6244 `w32' prefix. However, we do recognize that Win32 name is little more
6136 than a marketing buzzword (will it be Win64 in the next release?), so 6245 than a marketing buzzword (will it be Win64 in the next release?), so
6137 we decided not to use it. Using `windows-' would be wrong because the 6246 we decided not to use it. Using `windows-' would be wrong because the
6159 Here is a recount of various Emacs versions running on MS Windows: 6268 Here is a recount of various Emacs versions running on MS Windows:
6160 6269
6161 @itemize @bullet 6270 @itemize @bullet
6162 6271
6163 @item 6272 @item
6273 XEmacs
6274
6275 @itemize @minus
6276
6277 @item
6278 Beginning with XEmacs 19.12, XEmacs' architecture was redesigned
6279 in such a way to allow clean support of multiple window systems. At
6280 this time the TTY support was added, making X and TTY the first two
6281 "window systems" XEmacs supported. The 19.12 design is the basis for
6282 the current native MS Windows code.
6283
6284 @item
6285 Some time during 1997, David Hobley (soon joined by Marc Paquette)
6286 imported some of the NT-specific portions of GNU Emacs, making XEmacs
6287 with X support compile under Windows NT, and creating the "X" port.
6288
6289 @item
6290 Several months later, Jonathan Harris sent out initial patches to use
6291 the Win32 API, thus creating the native port. Since then, various
6292 people have contributed, including Kirill M. Katsnelson (contributed
6293 support for menubars, subprocesses and network, as well as loads of
6294 other code), Andy Piper (ported XEmacs to Cygwin environment,
6295 contributed Windows unexec, Windows-specific glyphs and toolbars code,
6296 and more), Ben Wing (loads of improvements; currently the most active MS
6297 Windows developer), Jeff Sparkes (contributed scrollbars support) and
6298 many others.
6299 @end itemize
6300
6301 @item
6302 NT Emacs
6303
6304 @itemize @minus
6305
6306 @item
6307 NT Emacs is a version of GNU Emacs modified to compile and run under
6308 MS MS Windows 95 and NT using the native Win32 API. As such, it is close
6309 in spirit to the XEmacs "native" port.
6310
6311 @item
6312 NT Emacs has been written by Geoff Voelker, and more information can be
6313 found at
6314 @iftex
6315 @*
6316 @end iftex
6317 @uref{http://www.cs.washington.edu/homes/voelker/ntemacs.html}.
6318 @end itemize
6319
6320 @item
6164 Win-Emacs 6321 Win-Emacs
6165 6322
6166 @itemize @minus 6323 @itemize @minus
6167 6324
6168 @item 6325 @item
6169 Win-Emacs is a port of Lucid Emacs 19.6 to MS Windows using X 6326 Win-Emacs was a port of Lucid Emacs 19.6 to MS Windows using X
6170 compatibility libraries. Win-Emacs has been written by Ben Wing. The 6327 compatibility libraries. Win-Emacs was written by Ben Wing. The MS
6171 MS Windows code has not made it back to Lucid Emacs, which left Win-Emacs 6328 Windows code never made it back to Lucid Emacs, and its creator (Pearl
6172 pretty much dead for our purposes. Win-Emacs used to be available at 6329 Software) has long since gone out of business.
6173 Pearlsoft, but not anymore, since Pearlsoft went out of business.
6174 @end itemize 6330 @end itemize
6175 6331
6176 @item 6332 @item
6177 GNU Emacs for DOS 6333 GNU Emacs for DOS
6178 6334
6179 @itemize @minus 6335 @itemize @minus
6180 6336
6181 @item 6337 @item
6182 GNU Emacs features support for MS-DOS and DJGPP (D.J. Delorie's DOS 6338 GNU Emacs features support for MS-DOS and DJGPP (D.J. Delorie's DOS
6183 port of Gcc). Such an Emacs is heavily underfeatured, because it does 6339 port of Gcc). Such an Emacs is heavily underfeatured, because it does
6184 not supports long file names, lacks proper subprocesses support, and 6340 not support long file names, lacks proper subprocesses support, and
6185 is far too big compared to typical DOS editors. 6341 is far too big compared to typical DOS editors.
6186 @end itemize 6342 @end itemize
6187 6343
6188 @item 6344 @item
6189 GNU Emacs compiled with Win32 6345 GNU Emacs compiled with Win32
6196 is is very similar to GNU Emacs compiled under MS DOS, only it 6352 is is very similar to GNU Emacs compiled under MS DOS, only it
6197 supports longer file names, etc. This "port" is similar to the "X" 6353 supports longer file names, etc. This "port" is similar to the "X"
6198 flavor of XEmacs on MS Windows. 6354 flavor of XEmacs on MS Windows.
6199 @end itemize 6355 @end itemize
6200 6356
6201 @item
6202 NT Emacs
6203
6204 @itemize @minus
6205
6206 @item
6207 NT Emacs is a version of GNU Emacs modified to compile and run under
6208 MS MS Windows 95 and NT using the native Win32 API. As such, it is close
6209 in spirit to the XEmacs "native" port.
6210
6211 @item
6212 NT Emacs has been written by Geoff Voelker, and more information can be
6213 found at
6214 @iftex
6215 @*
6216 @end iftex
6217 @uref{http://www.cs.washington.edu/homes/voelker/ntemacs.html}.
6218
6219 @end itemize
6220
6221 @item
6222 XEmacs
6223
6224 @itemize @minus
6225
6226 @item
6227 Beginning with XEmacs 19.12, XEmacs' architecture has been redesigned
6228 in such a way to allow clean support of multiple window systems. At
6229 this time the TTY support was added, making X and TTY the first two
6230 "window systems" XEmacs supported. The 19.12 design is the basis for
6231 the current native MS Windows code.
6232
6233 @item
6234 Some time during 1997, David Hobley (soon joined by Marc Paquette)
6235 imported some of the NT-specific portions of GNU Emacs, making XEmacs
6236 with X support compile under Windows NT, and creating the "X" port.
6237
6238 @item
6239 Several months later, Jonathan Harris sent out initial patches to use
6240 the Win32 API, thus creating the native port. Since then, various
6241 people have contributed, including Kirill M. Katsnelson (contributed
6242 support for menubars, subprocesses and network, as well as loads of
6243 other code), Andy Piper (ported XEmacs to Cygwin environment,
6244 contributed Windows unexec, Windows-specific glyphs and toolbars code,
6245 and more), Jeff Sparkes (contributed scrollbars support) and many
6246 others.
6247
6248 @end itemize
6249
6250 @end itemize 6357 @end itemize
6251 6358
6252 6359
6253 @node Q6.3.3, Q6.4.1, Q6.3.2, MS Windows 6360 @node Q6.3.3, Q6.4.1, Q6.3.2, MS Windows
6254 @unnumberedsubsec Q6.3.3: What is the porting team doing at the moment? 6361 @unnumberedsubsec Q6.3.3: What is the porting team doing at the moment?
6255 6362
6256 (as of March 2001) 6363 (as of June 2001)
6257 6364
6258 The porting team is continuing work on the MS Windows-specific code. 6365 The porting team is continuing work on the MS Windows-specific code.
6259 Major projects are the development of Mule (internationalization) 6366 Major projects are the development of Mule (internationalization)
6260 support for Windows and the improvement of the widget support (better 6367 support for Windows and the improvement of the widget support (better
6261 support for dialog boxes, buttons, edit fields, and similar UI 6368 support for dialog boxes, buttons, edit fields, and similar UI
6262 elements). 6369 elements).
6263 6370
6371
6264 @node Q6.4.1, ,Q6.3.3, MS Windows 6372 @node Q6.4.1, ,Q6.3.3, MS Windows
6265 @unnumberedsec 6.3: Troubleshooting 6373 @unnumberedsec 6.3: Troubleshooting
6266 @unnumberedsubsec Q6.4.1 XEmacs won't start on Windows. (NEW) 6374 @unnumberedsubsec Q6.4.1 XEmacs won't start on Windows. (NEW)
6267 6375
6268 XEmacs relies on a process called "dumping" to generate a working 6376 XEmacs relies on a process called "dumping" to generate a working
6269 executable. Under MS-Windows this process effectively fixes the memory 6377 executable. Under MS-Windows this process effectively fixes the memory
6270 addresses of information in the executable. When XEmacs starts up it tries 6378 addresses of information in the executable. When XEmacs starts up it tries
6271 to reserve these memory addresses so that the dumping process can be 6379 to reserve these memory addresses so that the dumping process can be
6272 reversed - putting the information back at the correct addresses. 6380 reversed -- putting the information back at the correct addresses.
6273 Unfortunately some .dlls (For instance the soundblaster driver) occupy 6381 Unfortunately some .DLLs (for instance the soundblaster driver) occupy
6274 memory addresses that can conflict with those needed by the dumped XEmacs 6382 memory addresses that can conflict with those needed by the dumped XEmacs
6275 executable. In this instance XEmacs will fail to start without any 6383 executable. In this instance XEmacs will fail to start without any
6276 explanation. Note that this is extremely machine specific. 6384 explanation. Note that this is extremely machine specific.
6277 6385
6278 21.1.10 includes a fix for this that makes more intelligent guesses 6386 21.1.10 includes a fix for this that makes more intelligent guesses
6279 about which memory addresses will be free, and this should cure the 6387 about which memory addresses will be free, and this should cure the
6280 problem for most people. Unfortunately, no binary is yet available for 6388 problem for most people. 21.4 implements "portable dumping", which
6281 this version. Check back periodically at 6389 eliminates the problem altogether. We recommend you use the 21.4
6282 6390 binaries, but you can use the 21.1 binaries if you are very paranoid
6283 @uref{ftp://ftp.xemacs.org/pub/xemacs/binaries/}. 6391 about stability. @xref{Q6.0.3}.
6284
6285 21.2 implements "portable dumping" which will eliminate the problem
6286 altogether. You might have better luck with the 21.2 beta binary,
6287 available at
6288
6289 @uref{ftp://ftp.xemacs.org/pub/xemacs/beta/binaries/}.
6290 6392
6291 6393
6292 @node Current Events, , MS Windows, Top 6394 @node Current Events, , MS Windows, Top
6293 @unnumbered 7 What the Future Holds 6395 @unnumbered 7 What the Future Holds
6294 6396