Short: GNU Emacs-19.34 V2.11 Intuition 32bit Author: Patched by bertw@knuut.de (Bert Winkelmann) Uploader: bertw knuut de (Bert Winkelmann) Type: text/edit Version: AmigaOS patchlevel 2.11 Requires: OS-v39 (for GUI), 8MB RAM, 68ec20, IxEmul library Architecture: m68k-amigaos This distribution holds version 19.34 of GNU Emacs, the extensible, customizable, self-documenting real-time display editor. {Sorry about my bad English. Note: for a list of improvements to the previous version, see the list at the end of this readme file}} This Amiga port, like most IxEmul ports, is probably more close to its baseline version than previous ports. Despite of this, it does have also some of the Amiga features (ARexx, AppWindow, ASL). The Intuition based GUI is very similar to the X GUI. You should be able to use all GUI based Lisp applications without making any adaptions. Normally you may want to use this program with Intuition, but you can also use it on terminals via AUX:. It's also possible to run it on X, but you need a different configured programfile version for that. Amiga related Features ====================== AREXX port (not in X nor TTY-only versions) Intuition-GUI: multiple colors and font styles * multiple frames (Intuition windows) on one or more public screens (and invisible frames too) * vertical scroll bars * pens are not really obtained from system until first use in drawing. * Workbench iconify and drag'n'drop * clipboard support * pop-up menu (configurable, scroll-able, full keyboard control) * ASL file+font requester (used by "Amiga" menu) * provides most of old "amiga-" LISP-functions for compatibility with formerly Emacs-18 AmigaOS port (e.g. amiga-set-geometry) * 2 different modes for numeric keypad (NumLock) * provides Meta, Super and Hyper modifier keys Console: amiga-set-font implements font changing on CON: TTY: you can open a sub shell if your shell implements no job-control. Version Numbers =============== There are two version numbers. One ist the baseline version number (19.34). Note that the diff archives contains currently patches for two different baseline versions (19.34 and 20.3). The other number specifies the version of my patches (like V2.11). The current version is V2.11. The version for the binary main archive may be different (like V2.9). It will be updated automatically if you install any of the program archive on top it (they contain not only the program files but also some updates to the main archive too (delta update)). Parts of this Distribution ========================== There exists both a source and binary distribution. Source Code ----------- The source distribution comes in two different forms: a small diff archive and a big complete archive. ------------------ ---------------------------------------- em1934dif.lha - GNU Emacs 19.34 V2.11 diffs em1934src.lha - GNU Emacs 19.34 V2.10 source ------------------ ---------------------------------------- Note: The LhA archives may contain "tar.gz" or even "tar.bz2" archives. You will need a "tar" unarchiver (tar/untar) and the correct decompression program (gzip for .gz; bzip2 for .bz2). I will limit the use of bzip2 to the really big (and rather uninteresting) source archive. Note: If you want to compile Emacs yourself and if you have acces to the original baseline sources, you need only the diffs archive. All what you have to do ist invoking "sh install.sh 19.34 src/emacs-19.34" to patch the source. It's tested. Otherwise, if you want to use the already patched source archive coming with this distribution (V2.10), you also should have the diff archive to update the source tree to the newest patchlevel (V2.11). Binaries -------- The binary distribution consist of a single main archive and some Emacs program files (in different flavors). Note: The installation should go into the "gg:" directory. This could be a multi-assign too. Emacs depends on this. Please read the README* file in the program archive to learn how to make the dumpfile (it's very easy now). Note: Install the main archive *before* the program archive. Otherwise the newer files in the program archive will be overwritten by older versions from the main archive. ------------------ ---------------------------------------- em1934bin.lha - GNU Emacs 19.34 V2.11 installed in gg: em1934i0.lha - GNU Emacs 19.34 V2.11 Intuition 28bit em1934i1.lha - GNU Emacs 19.34 V2.11 Intuit. 28bit-seg em1934i3.lha - GNU Emacs 19.34 V2.11 Intuition 32bit ------------------ ---------------------------------------- Optional Archives: Program Files ------------------ ---------------------------------------- em1934x0.lha - GNU Emacs 19.34 V2.11 X 28bit em1934x1.lha - GNU Emacs 19.34 V2.11 X 28bit-seg em1934x3.lha - GNU Emacs 19.34 V2.11 X 32bit em1934t0.lha - GNU Emacs 19.34 V2.11 CON/AUX 28bit em1934t1.lhaa - GNU Emacs 19.34 V2.11 CON/AUX 28bit-seg em1934t3.lha - GNU Emacs 19.34 V2.11 CON/AUX 32bit ------------------ ---------------------------------------- ELisp Source Files Missing in em1934bin.lha (needed for debugging and educational purposes only) ------------------ ---------------------------------------- em1934els.lha - GNU Emacs 19.34 V2.10 ELisp sources ------------------ ---------------------------------------- What does 28, 28s and 32 bit mean? ---------------------------------- First you have to use "ShowConfig" to learn about the address spaces where your machine has its FastMem installed. If your machine does not have RAM above 28bit, then everything is fine. Just use the "28bit" version, which is faster than the others: normal/28 - RAM inside 28bit address range is usable. It runs on machines having RAM upto $0fffffff only. A4000 and A1200 with Blizzard-A1230-I (not IV!) can run this program. If your machine has RAM above 28bit you have to use one of the following program versions which implements segmented RAM. Note that the version "32" will work on all machines but runs slower than the "28s" version. If you are unsure, just try the normal version first. It will give you an error message if it cannot run on your machine. Then try the 28s program and at last the 32bit program. seg1/28s - RAM inside of one 28bit segment is usable. It runs on machines with FastMem above 28bit RAM in range $x0000000..$xfffffff (i.e. the high nibble (x) must be the same for all usable RAM). A1200 with Blizzard-A1230-IV can run this program. Note: You don't have to tell Emacs the value of the nibble, it's automatic of course. But if you have the source, you could compile a slightly faster program using the #define AMAL_CONST_SEGMENT (e.g. make CPPFLAGS+="-DAMAL_CONST_SEGMENT=0x60000000"). seg3/32 - RAM inside 8 independent 25bit segments usable. It runs on machines with both FastMem above and below 28bit. (allows using of mixed RAM (Chip, Z2, Z3) not being in a common 28bit block (i.e. with a different high nibble)). Here comes additional info taken from my WWW page. =========================================================================== DESCRIPTION This project is about running GNU Emacs 19+20 on AmigaOS using the IxEmul library and GCC. It supports both the native AmigaOS window system "Intuiton" (>=V39) and X (and of course plain terminals too). The Intuition GUI implements almost all features of the X GUI except 16bit fonts. You will also get Drag'n'Drop and an ARexx port. I have tried to make it so compatible as possbile to prevent you and me from changing any LISP packages. You should never have to change path syntax, font names, window system names. On the other hand, you can use ASL file and font requesters via the Amiga menu item. You can use AmigaDOS path syntax in some LISP commands too. The current patch-set supports the following baseline versions: GNU-Emacs-19.34b, 20.2, 20.2.92, 20.2.97, 20.3. SYSTEM REQUIREMENTS For using intuition: graphics.library-39 or better is required. (part of AmigaOS V39) General: A lot of RAM or virtual memory. A fast CPU is recommended. I have only an 68030-40MHz which is sometimes too slow even for parts of some standard ELISP packages. Note: Different ELISP packages may have very different RAM-/CPU-usage. LIBRARIES ixemul.library - the free UNIX kernel emulation + standard C library (incl. socket interface) If you want to configure and build Emacs for running on X window system, you will need the required X libraries and headers. A free X11R6 package is part of ADE/GG. There are other X window ports, but I have tested only ADE-X. NO PROBLEMS I used Emacs (20.2) mainly as programming environment, to write HTML and as editor for an external News+Mail-reader. I have used the following packages very often: c/c++-mode (indenting slow since 20.2) * font-lock/fast-lock (in 20.2 sometimes you have to restart it because of a not complete fixed bug) * ETags * sh-mode * Info * Ediff * GUD (for programs using signal handlers (like Emacs itself) it's better to use gdb on console because there are no process-groups and Emacs handle/blocks some signals). * Emacs-Server * HTML-mode * ELISP modes and tools like debuggers and profilers. * Occur, IMenu, HS I have tested, but don't use the following packages: AucTeX (seems to work OK but I don't need it currently) * GNus (works, but is very slow on my machine) * W3 (works, but is very slow) * Ange-FTP (needs PTYs, you have to install+run Devs:fifo.handler). BUILT-IN WORKAROUNDS HOME variable is translated from AmigaOS to UNIX syntax at startup of Emacs, EmacsServer, EmacsClient. That means all subprocesses inherit the UNIX syntax version. (prevents problems by using $HOME as kind of ID on sockets). The home directory read from password files will be translated to UNIX syntax. A built-in default TERMCAP entry for TERM=amiga exists. Note: Internally Emacs uses UNIX-path syntax (to gain maximal compatibility with ELISP packages written for UNIX). I changed a few user-interface functions to accept both UNIX- and AmigaOS syntax. This works very well. The Intuition code inside of Emacs implements serveral X functions (limited to the needs of Emacs). It even fakes the `window-system' variable to X. Therefore, any ELisp package written for X should work without any changes. To check for running on Intuition, you have to test for (boundp 'amiga-i-windows). Console: Because `^C' is always handled by console (SIGBREAK_C) there is a key-translation from C-z to C-c (located in "lisp/term/amiga.el"). FEATURES AmigaOS specific: Bidirectional AREXX port as interface to ELISP language * Two different file-system path syntaxes. Intuition-GUI: multiple colors and font styles * multiple frames (Intuition windows) on one or more public screens (and invisible frames too) * vertical scroll bars * pens are not really obtained from system until first use in drawing. * Workbench iconify and drag'n'drop * clipboard support * pop-up menu (configurable, scroll-able, full keyboard control) * ASL file+font requester (used by "Amiga" menu) * provides most of old "amiga-" LISP-functions for compatibility with formerly Emacs-18 AmigaOS port (e.g. amiga-set-geometry) * 2 different modes for numeric keypad (NumLock) * provides Meta, Super and Hyper modifier keys console: amiga-set-font implements font changing on CON: TTY: you can open a sub shell if your shell implements no job-control. MULE on Emacs-20: I merged in relevant parts of MBSK to allow switching it (MBSK) on/off on different window systems. To enable MBSK it's needed to pass the parameter "no-mule" to "lisp/loadup.el" at dump-time. The Makefile do handle this automatically (using the variable LOADUP_ARRGS): MBSK is per default enabled for Intuition-GUI, but disabled for X. Example: To always disable MBSK compile with $ make "LOADUP_ARGS=" ... To always enable it use $ make "LOADUP_ARGS=no-mule" ... BUGS Intuition: Italic font style is broken (it's nearly unusable for editing) * Currently no gad-tools menu (we use the pop up menu by the menu-bar too) * No 16 bit fonts. Use ADE-X to have a full working MULE. * No working multi keyboard * Never tried a 2 button mouse, but I guess there are ELISP-packages handling that problem already MultiUser: I have running MultiUser (mufs) on my system. This causes the root directory of volume in RAM: having access bits "700","drwx------". You cannot create files and call DirEd in that directory. But you can/should change at least the access bits of sub-directories in RAM: like this: $ chmod 777 /ram/T /ram/ENV /ram/ClipBoards. TeX: IxEmul has a problem to pass `' as part of arguments to all non-ixemul binaries. This is a problem when using the TeX program from PasTeX on Meeting-Pearls-CDROM. There is a workaround in directory `amigaos/' using the small non-ixemul command-shell from Emacs-18.59-amigaos. Another problem: killing a non-ixemul TeX binary may crash the system. A ixemul port of TeX may work better. Such one is part of ADE/GG. Soft-Links: The clash detection uses soft-links since Emacs-20.2. I have no problems with this so far. In general, for editing files visited over a soft-link you may need to use: (setq find-file-visit-truename t) in your ~/.emacs file. This may not required if you use the latest BETA-ffs (http://www.amiga.de). Unluckily, as it seems, there is no MuliUser patch for that FFS. HISTORY * August '98: Emacs-20.3 * June '98: Emacs-19.34b updated. New distribution format (common amiga specific files in base distributions and patches in updates; bug-fix-patches in base-distributions; version patches for baseline files in base distributions and updates) * May '98: X window tested (ADE-X11R6.3 running on A1200-030/40) * March '98: Clipboard and AREXX * January '98: Emacs-20.2 * Winter '97: Emacs-19.34b * Autumn '97: Emacs-19.29 (Intuition) * Summer '97: Emacs-19.28 (Tty only) =========================================================================== Version history: V2.11 from 11-Apr-99 -------------------- * Fix: Filename completion was partially broken on 3rd party file systems (no inodes on topmost directory). * Fix: Possible crashing when running 28s program on machines with memory above 28bit in out of memory situations. * Fix: Avoiding allocating 24bit RAM (could be slow chip memory) for "interval" blocks was not working very well. Note that it does not work for machines having memory on addresses with topmost nibble 3 or 5 (i.e. addresses like $3xxxxxxx or $5xxxxxxx). If you have such a machine, then you should tell me about it, so I can change it. Please send me your ShowConfig output. Currently I know only about machines having 0, 4 or 6 as high nibble. If you have a machine using another value, you may tell me about it too. This would prevent me from using that value in future releases.