summaryrefslogtreecommitdiffstats
path: root/runtime/doc/os_390.txt
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/doc/os_390.txt')
-rw-r--r--runtime/doc/os_390.txt340
1 files changed, 340 insertions, 0 deletions
diff --git a/runtime/doc/os_390.txt b/runtime/doc/os_390.txt
new file mode 100644
index 0000000000..420260692d
--- /dev/null
+++ b/runtime/doc/os_390.txt
@@ -0,0 +1,340 @@
+*os_390.txt* For Vim version 7.0aa. Last change: 2003 Jun 03
+
+
+ VIM REFERENCE MANUAL by Ralf Schandl
+
+ *zOS* *z/OS* *OS390* *os390* *MVS*
+This file contains the particulars for the z/OS UNIX version of Vim.
+
+1. Open source on z/OS UNIX |zOS-open-source|
+2. Your feedback is needed |zOS-feedback|
+3. Building VIM for z/OS UNIX |zOS-building|
+4. ASCII/EBCDIC dependent scripts |zOS-has-ebcdic|
+5. XTerm Problems |zOS-xterm|
+6. Motif Problems |zOS-Motif|
+7 Bugs |zOS-Bugs|
+8. Known weaknesses |zOS-weaknesses|
+9. Changes |zOS-changes|
+
+DISCLAIMER: ~
+We are IBM employees, but IBM is not responsible for this port. This is our
+private fun, and is provided in the hopes that it may be useful to others.
+
+Please note that this software has NOT been submitted to any formal IBM
+testing and is published AS IS. Please do not contact IBM for support for this
+software, as it is not an official component of any IBM product. IT IS NOT
+SUPPORTED, GUARANTEED, OR RELATED WHATSOEVER TO IBM.
+
+Contributors: ~
+The port to z/OS UNIX was done by Ralf Schandl for the Redbook mentioned
+below.
+
+Changes, bug-reports, or both by:
+
+ David Moore
+ Anthony Giorgio <agiorgio@fastmail.fm>
+ and others
+
+This document was written by Ralf Schandl and revised by Anthony Giorgio.
+
+==============================================================================
+1. Open source on z/OS UNIX *OS390-open-source* *zOS-open-source*
+
+If you are interested in other Open Source Software on z/OS UNIX, have a
+look at the following Redbook:
+
+ Mike MacIsaac et al
+ "Open Source Software for z/OS and OS/390 UNIX"
+ IBM Form Number: SG24-5944-01
+ ISBN: 0738424633
+
+You can find out more information, order a hard copy, or download a PDF
+version of these Redbooks at:
+
+ http://www.redbooks.ibm.com
+
+==============================================================================
+2. Your feedback is needed *OS390-feedback* *zOS-feedback*
+
+Vim should compile, link, and run right out of the box on a standard IBM z/OS
+UNIX mainframe. I've personally run it on z/OS V1R2 and V1R3 machines without
+problems.
+
+Many changes had to be done to the code to port Vim to z/OS UNIX. As like
+most UNIX programs, Vim contained heavy ASCII dependencies. I might have
+missed an ASCII dependency, or it is possible that a new one has been added
+with a feature or bug fix. Most programmers are simply not aware of possible
+ASCII/EBCDIC conversion issues. If you hit a problem that seems related to
+this, feel free to contact us at the email addresses above.
+
+One indication of ASCII/EBCDIC conversion problems is screen corruption with
+"unprintable" characters. For example, at one point the errorbell was broken
+in Vim. Any time Vim tried to ring the terminal bell an ASCII character 0x07
+would be printed. This works fine on most terminals, but is broken on an
+EBCDIC one. The correct solution was to define a different value for the bell
+character on EBCDIC systems.
+
+Remember, it's only possible to fix a bug if the community knows about it.
+Don't rely on someone else to report it! See the section |bug-reports|.
+
+==============================================================================
+3. Building VIM for z/OS UNIX *OS390-building* *zOS-building*
+
+A word on debugging code first: ~
+
+The normal run of configure adds the flag '-g' to the compiler options,
+to include debugging information into the executable. This information
+are normally removed from the executable with the strip command during
+installation. On z/OS UNIX, it is not possible to remove this from
+the executable. The strip command exists on z/OS UNIX and is called
+during the installation, but it does nothing. It is equivalent to the
+'touch' command. This is due to the way debug symbols are stored in the
+objects generated by the compiler.
+
+If you want to build Vim without debugging code, export the environment
+variable CFLAGS set to an empty string before you call the configure script.
+>
+ export CFLAGS=""
+
+
+Building without X11: ~
+
+Note: Use cc to build Vim. The c89 compiler has stricter syntax checking
+and will not compile Vim cleanly.
+
+If you build VIM without X11 support, compiling and building is
+straightforward. Don't forget to export _CC_CCMODE=1 before calling
+configure and make.
+>
+ $ export _CC_CCMODE=1
+ $./configure --with-features=big --without-x --enable-gui=no
+ $ make
+ $ make test
+<
+ Test notes:
+ Test 11 will fail if you do not have gzip installed.
+ Test 42 will fail, as VIM on z/OS UNIX doesn't support the multibyte
+ feature. (David Moore: "Doesn't work _yet_! :-) I'll see what I
+ can do.")
+>
+
+ $ make install
+
+
+Building with X11: ~
+
+There are two ways for building Vim with X11 support. You can link it
+statically with the X11 libraries or can bind it with the X11 DLLs. The
+statically linked version results in a huge executable (~13MB), while the
+dynamically linked executable is much smaller (~4.5MB).
+
+Here is what you do, if you want Motif:
+
+ a) Static link >
+ $ configure --with-features=big --enable-gui=motif
+ $ make
+<
+ VIM is now linked statically with the X11 libraries.
+
+ b) Dynamic link:
+ Make VIM as described for the static link. Then change the contents of
+ the 'auto/link.sed' file by appending: >
+ s%-lXm *%/usr/lib/Xm.x %g
+ s%-lX11 *%/usr/lib/X11.x %g
+ s%-lSM *%/usr/lib/SM.x %g
+ s%-lICE *%/usr/lib/ICE.x %g
+<
+ Then do: >
+ $ rm vim
+ $ make
+<
+ Now Vim is linked with the X11-DLLs.
+
+See the Makefile and the file link.sh on how link.sed is used.
+
+==============================================================================
+4. ASCII/EBCDIC dependent scripts *OS390-has-ebcdic* *zOS-has-ebcdic*
+
+For the internal script language the feature "ebcdic" was added. With this
+you can fix ASCII dependent scripts like this:
+>
+ if has("ebcdic")
+ let space = 64
+ else
+ let space = 32
+ endif
+<
+==============================================================================
+5. XTerm problems *OS390-xterm* *zOS-xterm*
+
+Note: This problem was resolved in version 6.1b. ~
+
+I saw one problem with XTerm on z/OS UNIX. The terminal code for moving the
+cursor to the left is wrong in the termlib database. Perhaps not wrong, but
+it didn't work with VIM syntax highlighting and command line cursor movement.
+
+If the highlighting is messed up while you type, but is okay after you refreshed
+the screen with <C-L> or if you can't move to the left with the cursor key on
+the command line, try adding >
+ :set t_le=^H
+<
+to your .vimrc. Note: '^H' is one character, hit <C-V><C-H> to get it.
+
+==============================================================================
+6. Motif Problems *OS390-Motif* *zOS-Motif*
+
+It seems that in porting the Motif library to z/OS, a translation from EBCDIC
+to ASCII for the accelerator characters of the pull-down menus was forgotten.
+Even after I tried to hand convert the menus, the accelerator keys continued
+to only work for the opening of menus (like <Alt-F> to open the file menu).
+They still do not work for the menu items themselves (like <Alt-F>O to open
+the file browser).
+
+There is no solution for this as of yet.
+
+==============================================================================
+7. Bugs *OS390-bugs* *zOS-Bugs*
+
+- Vim will consistently hang when a large amount of text is selected in
+ visual block mode. This may be due to a memory corruption issue. Note that
+ this occurs in both the terminal and gui versions.
+
+==============================================================================
+8. Known weaknesses *OS390-weaknesses* *zOS-weaknesses*
+
+- No binary search in tag files.
+ The program /bin/sort sorts by ASCII value by default. This program is
+ normally used by ctags to sort the tags. There might be a version of
+ ctags out there, that does it right, but we can't be sure. So this seems to
+ be a permanent restriction.
+
+- Multibyte support (utf-8) doesn't work, it's disabled at compile time.
+ (|multibyte|)
+
+- The cscope interface (|cscope|) doesn't work for the version of cscope
+ that we use on our mainframe. We have a copy of version 15.0b12, and it
+ causes Vim to hang when using the "cscope add" command. I'm guessing that
+ the binary format of the cscope database isn't quite what Vim is expecting.
+ I've tried to port the current version of cscope (15.3) to z/OS, without
+ much success. If anyone is interested in trying, drop me a line if you
+ make any progress.
+
+- No glib/gtk support. I have not been able to successfully compile glib on
+ z/OS UNIX. This means you'll have to live without the pretty gtk toolbar.
+
+Never tested:
+ - Perl interface (|perl|)
+ - Hangul input (|hangul|)
+ - Encryption support (|encryption|)
+ - Langmap (|'langmap'|)
+ - Python support (|Python|)
+ - Right-to-left mode (|'rightleft'|)
+ - SNiFF+ interface (|sniff|)
+ - TCL interface (|tcl|)
+ ...
+
+If you try any of these features and they work, drop us a note!
+
+==============================================================================
+9. Changes *OS390-changes* *zOS-changes*
+
+This is a small reference of the changes made to the z/OS port of Vim. It is
+not an exhaustive summary of all the modifications made to the code base.
+
+6.1b (beta):
+ Changed KS_LE in term.c to be "\b" instead of "\010" This fixed the
+ screen corruption problems in gVim reported by Anthony Giorgio.
+
+ Anthony Giorgio updated this document:
+ - Changed OS/390 to z/OS where appropriate. IBM decided to rename
+ all of its servers and operating systems. z/OS and OS/390
+ are the same product, but the version numbering system was
+ reset for the name change. (e.g. OS/390 V2R11 == z/OS V1R1)
+ - Added information about second edition of the Open Source Redbook.
+ - Moved Redbook information to a separate section.
+ - Various tweaks and changes.
+ - Updated testing section.
+
+6.0au:
+ Changed configure.in
+ Changed documentation.
+ Anthony Giorgio fixed the errorbell.
+
+ David Moore found some problems, which were fixed by Bram and/or David for
+ 6.0au.
+
+6.0q (alpha):
+ Minor changes for nrformats=alpha (see |'nrformats'|).
+ Problem with hard-coded keycode for the English pound sign. Added a define in
+ ascii.h
+ Disabled multibyte for EBCDIC in feature.h
+
+6.0f (alpha):
+ First compile of Vim 6 on z/OS UNIX. Some minor changes were needed.
+
+ Finally found the reason why make from the top level didn't work (I must have
+ been blind before!). The Makefile contained a list of targets in one target
+ line. On all other UNIX's the macro $@ evaluates to the first target in this
+ list, only on z/OS UNIX it evaluates to the last one :-(.
+
+5.6-390d:
+ Cleaned up some hacks.
+
+5.6-390c:
+ I grepped through the source and examined every spot with a character
+ involved in a operation (+-). I hope I now found all EBCDIC/ASCII
+ stuff, but ....
+
+ Fixed:
+ - fixed warning message in do_fixdel()
+ - fixed translation from Ctrl-Char to symbolic name (like ^h to CTRL-H)
+ for :help
+ - fixed yank/delete/... into register
+ - fixed :register command
+ - fixed viminfo register storing
+ - fixed quick-access table in findoptions()
+ - fixed 'g^H' select mode
+ - fixed tgetstr() 'get terminal capability string', ESC and
+ Ctrl chars where wrong. (Not used on OS/390 UNIX)
+
+
+ ctags:
+ - added trigraphs support (used in prolog of system header files)
+ (get.c)
+ - fixed sorting order with LC_COLLATE=S390 to force EBCDIC sorting.
+ (sort.c)
+
+5.6-390b:
+ Changed:
+ - configure.in:
+ - added test for OS/390 UNIX
+ - added special compiler and linker options if building with X11
+ - configure:
+ - after created via autoconf hand-edited it to make the test for
+ ICEConnectionNumber work. This is a autoconf problem. OS/390 UNIX
+ needs -lX11 for this.
+ - Makefile
+ - Don't include the lib directories ('-L...') into the variable
+ ALL_LIBS. Use own variable ALL_LIB_DIRS instead. A fully POSIX
+ compliant compiler must not accept objects/libraries and options
+ mixed. Now we can call the linker like this:
+
+ $(CC) $(LDFLAGS) $(ALL_LIB_DIRS) $(OBJ) $(ALL_LIBS)
+
+ Fixed:
+ - Double quote couldn't be entered
+ Missed ASCII dependencies while setting up terminal
+ In ASCII 127 is the delete char, in EBCDIC codepage 1047 the value 127
+ is the double quote.
+ - fixed ':fixdel'
+
+5.6-390a:
+ first alpha release for OS/390 UNIX.
+
+ Addition:
+ - For the internal script language I added the feature "ebcdic".
+ This can be queried with the has()-function of the internal
+ script language.
+
+------------------------------------------------------------------------------
+ vim:tw=78:fo=tcq2:ts=8:ft=help:norl: