Start getting compiler to work when built with the core.
Malcolm Beattie [Fri, 20 Feb 1998 17:54:58 +0000 (17:54 +0000)]
[Still won't work as of this change.]

p4raw-id: //depot/perl@563

18 files changed:
1  2 
MANIFEST
Makefile.SH
bytecode.pl
ext/B/Makefile.PL
lib/B/Asmdata.pm
lib/B/Assembler.pm
lib/B/Bblock.pm
lib/B/Bytecode.pm
lib/B/C.pm
lib/B/CC.pm
lib/B/Debug.pm
lib/B/Deparse.pm
lib/B/Disassembler.pm
lib/B/Lint.pm
lib/B/Showlex.pm
lib/B/Stackobj.pm
lib/B/Terse.pm
lib/B/Xref.pm

diff --cc MANIFEST
index 90cb5ba,0000000..7d2920b
mode 100644,000000..100644
--- /dev/null
+++ b/MANIFEST
@@@ -1,948 -1,0 +1,971 @@@
 +Artistic              The "Artistic License"
 +Changes                       Differences from previous version
 +Changes5.000          Differences between 4.x and 5.000
 +Changes5.001          Differences between 5.000 and 5.001
 +Changes5.002          Differences between 5.001 and 5.002
 +Changes5.003          Differences between 5.002 and 5.003
 +configure.gnu         Crude emulation of GNU configure
 +Configure             Portability tool
 +Copying                       The GNU General Public License
 +EXTERN.h              Included before foreign .h files
 +INSTALL                       Detailed installation instructions
 +INTERN.h              Included before domestic .h files
 +MANIFEST              This list of files
 +Makefile.SH           A script that generates Makefile
 +Porting/Glossary      Glossary of config.sh variables
 +Porting/makerel               Release making utility
 +Porting/patchls               Flexible patch file listing utility
 +Porting/pumpkin.pod   Guidelines and hints for Perl maintainers
 +README                        The Instructions
 +README.amiga          Notes about AmigaOS port
 +README.cygwin32               Notes about Cygwin32 port
 +README.dos            Notes about dos/djgpp port
 +README.os2            Notes about OS/2 port
 +README.plan9          Notes about Plan9 port
 +README.qnx            Notes about QNX port
 +README.threads                Notes about multithreading
 +README.vms            Notes about VMS port
 +README.win32          Notes about Win32 port
 +Todo                  The Wishlist
 +Todo.5.005            What needs doing before 5.005 release
 +XSUB.h                        Include file for extension subroutines
 +av.c                  Array value code
 +av.h                  Array value header
++bytecode.h            Bytecode header for compiler
++bytecode.pl           Produces byterun.h, byterun.c and lib/B/Asmdata.pm
++cc_runtime.h          Macros need by runtime of compiler-generated code
 +cflags.SH             A script that emits C compilation flags per file
 +compat3.sym           List of symbols for binary-compatibility with 5.003
 +config_H              Sample config.h
 +config_h.SH           Produces config.h
 +configpm              Produces lib/Config.pm
 +cop.h                 Control operator header
 +cv.h                  Code value header
 +cygwin32/cw32imp.h    Cygwin32 port
 +cygwin32/gcc2         Cygwin32 port
 +cygwin32/ld2          Cygwin32 port
 +cygwin32/perlgcc      Cygwin32 port
 +cygwin32/perlld               Cygwin32 port
 +deb.c                 Debugging routines
 +djgpp/config.over       DOS/DJGPP port
 +djgpp/configure.bat     DOS/DJGPP port
 +djgpp/djgpp.c         DOS/DJGPP port
 +djgpp/djgppsed.sh     DOS/DJGPP port
 +djgpp/fixpmain                DOS/DJGPP port
 +doio.c                        I/O operations
 +doop.c                        Support code for various operations
 +dosish.h              Some defines for MS/DOSish machines
 +dump.c                        Debugging output
 +eg/ADB                        An adb wrapper to put in your crash dir
 +eg/README             Intro to example perl scripts
 +eg/cgi/RunMeFirst             Setup script for CGI examples
 +eg/cgi/clickable_image.cgi    CGI example
 +eg/cgi/cookie.cgi             CGI example
 +eg/cgi/crash.cgi              CGI example
 +eg/cgi/customize.cgi          CGI example
 +eg/cgi/diff_upload.cgi                CGI example
 +eg/cgi/file_upload.cgi                CGI example
 +eg/cgi/frameset.cgi           CGI example
 +eg/cgi/index.html             Index page for CGI examples
 +eg/cgi/internal_links.cgi     CGI example
 +eg/cgi/javascript.cgi         CGI example
 +eg/cgi/monty.cgi              CGI example
 +eg/cgi/multiple_forms.cgi     CGI example
 +eg/cgi/nph-clock.cgi          CGI example
 +eg/cgi/popup.cgi              CGI example
 +eg/cgi/save_state.cgi         CGI example
 +eg/cgi/tryit.cgi              CGI example
 +eg/cgi/wilogo.gif.uu          Small image for CGI examples
 +eg/changes            A program to list recently changed files
 +eg/client             A sample client
 +eg/down                       A program to do things to subdirectories
 +eg/dus                        A program to do du -s on non-mounted dirs
 +eg/findcp             A find wrapper that implements a -cp switch
 +eg/findtar            A find wrapper that pumps out a tar file
 +eg/g/gcp              A program to do a global rcp
 +eg/g/gcp.man          Manual page for gcp
 +eg/g/ged              A program to do a global edit
 +eg/g/ghosts           A sample /etc/ghosts file
 +eg/g/gsh              A program to do a global rsh
 +eg/g/gsh.man          Manual page for gsh
 +eg/muck                       A program to find missing make dependencies
 +eg/muck.man           Manual page for muck
 +eg/myrup              A program to find lightly loaded machines
 +eg/nih                        Script to insert #! workaround
 +eg/relink             A program to change symbolic links
 +eg/rename             A program to rename files
 +eg/rmfrom             A program to feed doomed filenames to
 +eg/scan/scan_df               Scan for filesystem anomalies
 +eg/scan/scan_last     Scan for login anomalies
 +eg/scan/scan_messages Scan for console message anomalies
 +eg/scan/scan_passwd   Scan for passwd file anomalies
 +eg/scan/scan_ps               Scan for process anomalies
 +eg/scan/scan_sudo     Scan for sudo anomalies
 +eg/scan/scan_suid     Scan for setuid anomalies
 +eg/scan/scanner               An anomaly reporter
 +eg/server             A sample server
 +eg/shmkill            A program to remove unused shared memory
 +eg/sysvipc/README     Intro to Sys V IPC examples
 +eg/sysvipc/ipcmsg     Example of SYS V IPC message queues
 +eg/sysvipc/ipcsem     Example of Sys V IPC semaphores
 +eg/sysvipc/ipcshm     Example of Sys V IPC shared memory
 +eg/travesty           A program to print travesties of its input text
 +eg/unuc                       Un-uppercases an all-uppercase text
 +eg/uudecode           A version of uudecode
 +eg/van/empty          A program to empty the trashcan
 +eg/van/unvanish               A program to undo what vanish does
 +eg/van/vanexp         A program to expire vanished files
 +eg/van/vanish         A program to put files in a trashcan
 +eg/who                        A sample who program
 +eg/wrapsuid           A setuid script wrapper generator
 +emacs/cperl-mode.el   An alternate perl-mode
 +emacs/ptags           Creates smart TAGS file
 +embed.h                       Maps symbols to safer names
 +embed.pl              Produces embed.h
 +embedvar.h            C namespace management
++ext/B/B.xs            Compiler backend external subroutines
++ext/B/Makefile.PL     Compiler backend makefile writer
++ext/B/NOTES           Compiler backend notes
++ext/B/README          Compiler backend README
++ext/B/TESTS           Compiler backend test data
++ext/B/Todo            Compiler backend Todo list
++ext/B/byteperl.c      Bytecode runner
++ext/B/ramblings/cc.notes      Compiler ramblings: notes on CC backend
++ext/B/ramblings/curcop.runtime        Compiler ramblings: notes on curcop use
++ext/B/ramblings/flip-flop     Compiler ramblings: notes on flip-flop
++ext/B/ramblings/magic         Compiler ramblings: notes on magic
++ext/B/ramblings/reg.alloc     Compiler ramblings: register allocation
++ext/B/ramblings/runtime.porting       Compiler ramblings: porting PP enging
++ext/B/typemap         Compiler backend interface types
 +ext/DB_File/Changes           Berkeley DB extension change log
 +ext/DB_File/DB_File.pm                Berkeley DB extension Perl module
 +ext/DB_File/DB_File.xs                Berkeley DB extension external subroutines
 +ext/DB_File/DB_File_BS                Berkeley DB extension mkbootstrap fodder
 +ext/DB_File/Makefile.PL               Berkeley DB extension makefile writer
 +ext/DB_File/typemap           Berkeley DB extension interface types
 +ext/DynaLoader/DynaLoader.pm  Dynamic Loader perl module
 +ext/DynaLoader/Makefile.PL    Dynamic Loader makefile writer
 +ext/DynaLoader/README         Dynamic Loader notes and intro
 +ext/DynaLoader/dl_aix.xs      AIX implementation
 +ext/DynaLoader/dl_cygwin32.xs Cygwin32 implementation
 +ext/DynaLoader/dl_dld.xs      GNU dld style implementation
 +ext/DynaLoader/dl_dlopen.xs   BSD/SunOS4&5 dlopen() style implementation
 +ext/DynaLoader/dl_hpux.xs     HP-UX implementation
 +ext/DynaLoader/dl_next.xs     Next implementation
 +ext/DynaLoader/dl_none.xs     Stub implementation
 +ext/DynaLoader/dl_vms.xs      VMS implementation
 +ext/DynaLoader/dlutils.c      Dynamic loader utilities for dl_*.xs files
 +ext/Fcntl/Fcntl.pm            Fcntl extension Perl module
 +ext/Fcntl/Fcntl.xs            Fcntl extension external subroutines
 +ext/Fcntl/Makefile.PL         Fcntl extension makefile writer
 +ext/GDBM_File/GDBM_File.pm    GDBM extension Perl module
 +ext/GDBM_File/GDBM_File.xs    GDBM extension external subroutines
 +ext/GDBM_File/Makefile.PL     GDBM extension makefile writer
 +ext/GDBM_File/typemap         GDBM extension interface types
 +ext/IO/IO.pm                  Top-level interface to IO::* classes
 +ext/IO/IO.xs                  IO extension external subroutines
 +ext/IO/Makefile.PL            IO extension makefile writer
 +ext/IO/README                 IO extension maintenance notice
 +ext/IO/lib/IO/File.pm         IO::File extension Perl module
 +ext/IO/lib/IO/Handle.pm               IO::Handle extension Perl module
 +ext/IO/lib/IO/Pipe.pm         IO::Pipe extension Perl module
 +ext/IO/lib/IO/Seekable.pm     IO::Seekable extension Perl module
 +ext/IO/lib/IO/Select.pm               IO::Select extension Perl module
 +ext/IO/lib/IO/Socket.pm               IO::Socket extension Perl module
 +ext/NDBM_File/Makefile.PL     NDBM extension makefile writer
 +ext/NDBM_File/NDBM_File.pm    NDBM extension Perl module
 +ext/NDBM_File/NDBM_File.xs    NDBM extension external subroutines
 +ext/NDBM_File/hints/dec_osf.pl        Hint for NDBM_File for named architecture
 +ext/NDBM_File/hints/dynixptx.pl       Hint for NDBM_File for named architecture
 +ext/NDBM_File/hints/solaris.pl        Hint for NDBM_File for named architecture
 +ext/NDBM_File/hints/svr4.pl   Hint for NDBM_File for named architecture
 +ext/NDBM_File/typemap         NDBM extension interface types
 +ext/ODBM_File/Makefile.PL     ODBM extension makefile writer
 +ext/ODBM_File/ODBM_File.pm    ODBM extension Perl module
 +ext/ODBM_File/ODBM_File.xs    ODBM extension external subroutines
 +ext/ODBM_File/hints/dec_osf.pl        Hint for ODBM_File for named architecture
 +ext/ODBM_File/hints/hpux.pl   Hint for ODBM_File for named architecture
 +ext/ODBM_File/hints/sco.pl    Hint for ODBM_File for named architecture
 +ext/ODBM_File/hints/solaris.pl        Hint for ODBM_File for named architecture
 +ext/ODBM_File/hints/svr4.pl   Hint for ODBM_File for named architecture
 +ext/ODBM_File/hints/ultrix.pl Hint for ODBM_File for named architecture
 +ext/ODBM_File/typemap         ODBM extension interface types
 +ext/Opcode/Makefile.PL                Opcode extension makefile writer
 +ext/Opcode/Opcode.pm          Opcode extension Perl module
 +ext/Opcode/Opcode.xs          Opcode extension external subroutines
 +ext/Opcode/Safe.pm            Safe extension Perl module
 +ext/Opcode/ops.pm             "Pragma" form of Opcode extension Perl module
 +ext/POSIX/Makefile.PL         POSIX extension makefile writer
 +ext/POSIX/POSIX.pm            POSIX extension Perl module
 +ext/POSIX/POSIX.pod           POSIX extension documentation
 +ext/POSIX/POSIX.xs            POSIX extension external subroutines
 +ext/POSIX/hints/linux.pl      Hint for POSIX for named architecture
 +ext/POSIX/hints/next_3.pl     Hint for POSIX for named architecture
 +ext/POSIX/hints/sunos_4.pl    Hint for POSIX for named architecture
 +ext/POSIX/typemap             POSIX extension interface types
 +ext/SDBM_File/Makefile.PL     SDBM extension makefile writer
 +ext/SDBM_File/SDBM_File.pm    SDBM extension Perl module
 +ext/SDBM_File/SDBM_File.xs    SDBM extension external subroutines
 +ext/SDBM_File/sdbm/CHANGES            SDBM kit
 +ext/SDBM_File/sdbm/COMPARE            SDBM kit
 +ext/SDBM_File/sdbm/Makefile.PL                SDBM kit
 +ext/SDBM_File/sdbm/README             SDBM kit
 +ext/SDBM_File/sdbm/README.too         SDBM kit
 +ext/SDBM_File/sdbm/biblio             SDBM kit
 +ext/SDBM_File/sdbm/dba.c              SDBM kit
 +ext/SDBM_File/sdbm/dbd.c              SDBM kit
 +ext/SDBM_File/sdbm/dbe.1              SDBM kit
 +ext/SDBM_File/sdbm/dbe.c              SDBM kit
 +ext/SDBM_File/sdbm/dbm.c              SDBM kit
 +ext/SDBM_File/sdbm/dbm.h              SDBM kit
 +ext/SDBM_File/sdbm/dbu.c              SDBM kit
 +ext/SDBM_File/sdbm/grind              SDBM kit
 +ext/SDBM_File/sdbm/hash.c             SDBM kit
 +ext/SDBM_File/sdbm/linux.patches      SDBM kit
 +ext/SDBM_File/sdbm/makefile.sdbm      SDBM kit
 +ext/SDBM_File/sdbm/pair.c             SDBM kit
 +ext/SDBM_File/sdbm/pair.h             SDBM kit
 +ext/SDBM_File/sdbm/readme.ms          SDBM kit
 +ext/SDBM_File/sdbm/sdbm.3             SDBM kit
 +ext/SDBM_File/sdbm/sdbm.c             SDBM kit
 +ext/SDBM_File/sdbm/sdbm.h             SDBM kit
 +ext/SDBM_File/sdbm/tune.h             SDBM kit
 +ext/SDBM_File/sdbm/util.c             SDBM kit
 +ext/SDBM_File/typemap         SDBM extension interface types
 +ext/Socket/Makefile.PL        Socket extension makefile writer
 +ext/Socket/Socket.pm  Socket extension Perl module
 +ext/Socket/Socket.xs  Socket extension external subroutines
 +ext/Thread/Makefile.PL        Thread extension makefile writer
 +ext/Thread/Notes      Thread notes
 +ext/Thread/README     Thread README
 +ext/Thread/Thread/Queue.pm    Thread synchronised queue objects
 +ext/Thread/Thread/Semaphore.pm        Thread semaphore objects
 +ext/Thread/Thread/Specific.pm Thread specific data access
 +ext/Thread/Thread.pm  Thread extension Perl module
 +ext/Thread/Thread.xs  Thread extension external subroutines
 +ext/Thread/create.t   Test thread creation
 +ext/Thread/die.t      Test thread die()
 +ext/Thread/die2.t     Test thread die() differently
 +ext/Thread/io.t               Test threads doing simple I/O
 +ext/Thread/join.t     Test thread joining
 +ext/Thread/join2.t    Test thread joining differently
 +ext/Thread/list.t     Test getting list of all threads
 +ext/Thread/lock.t     Test lock primitive
 +ext/Thread/queue.t    Test Thread::Queue module
 +ext/Thread/specific.t Test thread-specific user data
 +ext/Thread/sync.t     Test thread synchronisation
 +ext/Thread/sync2.t    Test thread synchronisation
 +ext/Thread/typemap    Thread extension interface types
 +ext/Thread/unsync.t   Test thread implicit synchronisation
 +ext/Thread/unsync2.t  Test thread implicit synchronisation
 +ext/Thread/unsync3.t  Test thread implicit synchronisation
 +ext/Thread/unsync4.t  Test thread implicit synchronisation
 +ext/attrs/Makefile.PL attrs extension makefile writer
 +ext/attrs/attrs.pm    attrs extension Perl module
 +ext/attrs/attrs.xs    attrs extension external subroutines
 +ext/util/make_ext     Used by Makefile to execute extension Makefiles
 +ext/util/mkbootstrap  Turns ext/*/*_BS into bootstrap info
 +fakethr.h             Fake threads header
 +form.h                        Public declarations for the above
 +global.sym            Symbols that need hiding when embedded
 +globals.c             File to declare global symbols (for shared library)
 +gv.c                  Glob value code
 +gv.h                  Glob value header
 +h2pl/README           How to turn .ph files into .pl files
 +h2pl/cbreak.pl                cbreak routines using .ph
 +h2pl/cbreak2.pl               cbreak routines using .pl
 +h2pl/eg/sizeof.ph     Sample sizeof array initialization
 +h2pl/eg/sys/errno.pl  Sample translated errno.pl
 +h2pl/eg/sys/ioctl.pl  Sample translated ioctl.pl
 +h2pl/eg/sysexits.pl   Sample translated sysexits.pl
 +h2pl/getioctlsizes    Program to extract types from ioctl.h
 +h2pl/mksizes          Program to make %sizeof array
 +h2pl/mkvars           Program to make .pl from .ph files
 +h2pl/tcbreak          cbreak test routine using .ph
 +h2pl/tcbreak2         cbreak test routine using .pl
 +handy.h                       Handy definitions
 +hints/3b1.sh          Hints for named architecture
 +hints/3b1cc           Hints for named architecture
 +hints/README.hints    Notes about hints
 +hints/aix.sh          Hints for named architecture
 +hints/altos486.sh     Hints for named architecture
 +hints/amigaos.sh      Hints for named architecture
 +hints/apollo.sh               Hints for named architecture
 +hints/aux_3.sh                Hints for named architecture
 +hints/broken-db.msg   Warning message for systems with broken DB library
 +hints/bsdos.sh                Hints for named architecture
 +hints/convexos.sh     Hints for named architecture
 +hints/cxux.sh         Hints for named architecture
 +hints/cygwin32.sh     Hints for named architecture
 +hints/dcosx.sh                Hints for named architecture
 +hints/dec_osf.sh      Hints for named architecture
 +hints/dgux.sh         Hints for named architecture
 +hints/dos_djgpp.sh    Hints for named architecture
 +hints/dynix.sh                Hints for named architecture
 +hints/dynixptx.sh     Hints for named architecture
 +hints/epix.sh         Hints for named architecture
 +hints/esix4.sh                Hints for named architecture
 +hints/fps.sh          Hints for named architecture
 +hints/freebsd.sh      Hints for named architecture
 +hints/genix.sh                Hints for named architecture
 +hints/greenhills.sh   Hints for named architecture
 +hints/hpux.sh         Hints for named architecture
 +hints/i386.sh         Hints for named architecture
 +hints/irix_4.sh               Hints for named architecture
 +hints/irix_5.sh               Hints for named architecture
 +hints/irix_6.sh               Hints for named architecture
 +hints/irix_6_0.sh     Hints for named architecture
 +hints/irix_6_1.sh     Hints for named architecture
 +hints/isc.sh          Hints for named architecture
 +hints/isc_2.sh                Hints for named architecture
 +hints/linux.sh                Hints for named architecture
 +hints/lynxos.sh               Hints for named architecture
 +hints/machten.sh      Hints for named architecture
 +hints/machten_2.sh    Hints for named architecture
 +hints/mips.sh         Hints for named architecture
 +hints/mpc.sh          Hints for named architecture
 +hints/mpeix.sh                Hints for named architecture
 +hints/ncr_tower.sh    Hints for named architecture
 +hints/netbsd.sh               Hints for named architecture
 +hints/newsos4.sh      Hints for named architecture
 +hints/next_3.sh               Hints for named architecture
 +hints/next_3_0.sh     Hints for named architecture
 +hints/next_4.sh               Hints for named architecture
 +hints/opus.sh         Hints for named architecture
 +hints/os2.sh          Hints for named architecture
 +hints/os390.sh                Hints for named architecture
 +hints/powerux.sh      Hints for named architecture
 +hints/qnx.sh          Hints for named architecture
 +hints/sco.sh          Hints for named architecture
 +hints/sco_2_3_0.sh    Hints for named architecture
 +hints/sco_2_3_1.sh    Hints for named architecture
 +hints/sco_2_3_2.sh    Hints for named architecture
 +hints/sco_2_3_3.sh    Hints for named architecture
 +hints/sco_2_3_4.sh    Hints for named architecture
 +hints/solaris_2.sh    Hints for named architecture
 +hints/stellar.sh      Hints for named architecture
 +hints/sunos_4_0.sh    Hints for named architecture
 +hints/sunos_4_1.sh    Hints for named architecture
 +hints/svr4.sh         Hints for named architecture
 +hints/ti1500.sh               Hints for named architecture
 +hints/titanos.sh      Hints for named architecture
 +hints/ultrix_4.sh     Hints for named architecture
 +hints/umips.sh                Hints for named architecture
 +hints/unicos.sh               Hints for named architecture
 +hints/unicosmk.sh     Hints for named architecture
 +hints/unisysdynix.sh  Hints for named architecture
 +hints/utekv.sh                Hints for named architecture
 +hints/uts.sh          Hints for named architecture
 +hv.c                  Hash value code
 +hv.h                  Hash value header
 +installhtml           Perl script to install html files for pods
 +installman            Perl script to install man pages for pods
 +installperl           Perl script to do "make install" dirty work
 +interp.sym            Interpreter specific symbols to hide in a struct
 +intrpvar.h            Variables held in each interpreter instance
 +keywords.h            The keyword numbers
 +keywords.pl           Program to write keywords.h
 +lib/AnyDBM_File.pm    Perl module to emulate dbmopen
 +lib/AutoLoader.pm     Autoloader base class
 +lib/AutoSplit.pm      Split up autoload functions
++lib/B.pm              Compiler backend support functions and methods
++lib/B/assemble                Assemble compiler bytecode
++lib/B/cc_harness      Simplistic wrapper for using -MO=CC compiler
++lib/B/disassemble     Disassemble compiler bytecode output
++lib/B/makeliblinks    Make a simplistic XSUB .so symlink tree for compiler
 +lib/Benchmark.pm      Measure execution time
 +lib/Bundle/CPAN.pm    The CPAN bundle
 +lib/CGI.pm            Web server interface ("Common Gateway Interface")
 +lib/CGI/Apache.pm     Support for Apache's Perl module
 +lib/CGI/Carp.pm               Log server errors with helpful context
 +lib/CGI/Fast.pm               Support for FastCGI (persistent server process)
 +lib/CGI/Push.pm               Support for server push
 +lib/CGI/Switch.pm     Simple interface for multiple server types
 +lib/CPAN.pm           Interface to Comprehensive Perl Archive Network
 +lib/CPAN/FirstTime.pm Utility for creating CPAN config files
 +lib/CPAN/Nox.pm               Runs CPAN while avoiding compiled extensions
 +lib/Carp.pm           Error message base class
 +lib/Class/Struct.pm   Declare struct-like datatypes as Perl classes
 +lib/Cwd.pm            Various cwd routines (getcwd, fastcwd, chdir)
 +lib/Devel/SelfStubber.pm Generate stubs for SelfLoader.pm
 +lib/DirHandle.pm      like FileHandle only for directories
 +lib/English.pm                Readable aliases for short variables
 +lib/Env.pm            Map environment into ordinary variables
 +lib/Exporter.pm               Exporter base class
 +lib/ExtUtils/Command.pm       Utilities for Make on non-UNIX platforms
 +lib/ExtUtils/Embed.pm Utilities for embedding Perl in C programs
 +lib/ExtUtils/Install.pm       Handles 'make install' on extensions
 +lib/ExtUtils/Liblist.pm       Locates libraries
 +lib/ExtUtils/MM_OS2.pm                MakeMaker methods for OS/2
 +lib/ExtUtils/MM_Unix.pm               MakeMaker base class for Unix
 +lib/ExtUtils/MM_VMS.pm                MakeMaker methods for VMS
 +lib/ExtUtils/MM_Win32.pm      MakeMaker methods for Win32
 +lib/ExtUtils/MakeMaker.pm     Write Makefiles for extensions
 +lib/ExtUtils/Manifest.pm      Utilities to write MANIFEST files
 +lib/ExtUtils/Mkbootstrap.pm   Writes a bootstrap file (see MakeMaker)
 +lib/ExtUtils/Mksymlists.pm    Writes a linker options file for extensions
 +lib/ExtUtils/testlib.pm               Fixes up @INC to use just-built extension
 +lib/ExtUtils/typemap          Extension interface types
 +lib/ExtUtils/xsubpp           External subroutine preprocessor
 +lib/Fatal.pm          Make errors in functions/builtins fatal
 +lib/File/Basename.pm  Emulate the basename program
 +lib/File/CheckTree.pm Perl module supporting wholesale file mode validation
 +lib/File/Compare.pm   Emulation of cmp command
 +lib/File/Copy.pm      Emulation of cp command
 +lib/File/DosGlob.pm   Win32 DOS-globbing module
 +lib/File/Find.pm      Routines to do a find
 +lib/File/Path.pm      Do things like `mkdir -p' and `rm -r'
 +lib/File/stat.pm      By-name interface to Perl's builtin stat
 +lib/FileCache.pm      Keep more files open than the system permits
 +lib/FileHandle.pm     Backward-compatible front end to IO extension
 +lib/FindBin.pm                Find name of currently executing program
 +lib/Getopt/Long.pm    Fetch command options (GetOptions)
 +lib/Getopt/Std.pm     Fetch command options (getopt, getopts)
 +lib/I18N/Collate.pm   Routines to do strxfrm-based collation
 +lib/IPC/Open2.pm      Open a two-ended pipe
 +lib/IPC/Open3.pm      Open a three-ended pipe!
 +lib/Math/BigFloat.pm  An arbitrary precision floating-point arithmetic package
 +lib/Math/BigInt.pm    An arbitrary precision integer arithmetic package
 +lib/Math/Complex.pm   A Complex package
 +lib/Math/Trig.pm      A simple interface to complex trigonometry
 +lib/Net/Ping.pm               Hello, anybody home?
 +lib/Net/hostent.pm    By-name interface to Perl's builtin gethost*
 +lib/Net/netent.pm     By-name interface to Perl's builtin getnet*
 +lib/Net/protoent.pm   By-name interface to Perl's builtin getproto*
 +lib/Net/servent.pm    By-name interface to Perl's builtin getserv*
++lib/O.pm              Compiler front-end module (-MO=...)
 +lib/Pod/Functions.pm  used by pod/splitpod
 +lib/Pod/Html.pm               Convert POD data to HTML
 +lib/Pod/Text.pm               Convert POD data to formatted ASCII text
 +lib/Search/Dict.pm    Perform binary search on dictionaries
 +lib/SelectSaver.pm    Enforce proper select scoping
 +lib/SelfLoader.pm     Load functions only on demand
 +lib/Shell.pm          Make AUTOLOADed system() calls
 +lib/Symbol.pm         Symbol table manipulation routines
 +lib/Sys/Hostname.pm   Hostname methods
 +lib/Sys/Syslog.pm     Perl module supporting syslogging
 +lib/Term/Cap.pm               Perl module supporting termcap usage
 +lib/Term/Complete.pm  A command completion subroutine
 +lib/Term/ReadLine.pm  Stub readline library
 +lib/Test.pm           A simple framework for writing test scripts
 +lib/Test/Harness.pm   A test harness
 +lib/Text/Abbrev.pm    An abbreviation table builder
 +lib/Text/ParseWords.pm        Perl module to split words on arbitrary delimiter
 +lib/Text/Soundex.pm   Perl module to implement Soundex
 +lib/Text/Tabs.pm      Do expand and unexpand
 +lib/Text/Wrap.pm      Paragraph formatter
 +lib/Tie/Array.pm      Base class for tied arrays
 +lib/Tie/Hash.pm               Base class for tied hashes
 +lib/Tie/RefHash.pm    Base class for tied hashes with references as keys
 +lib/Tie/Scalar.pm     Base class for tied scalars
 +lib/Tie/SubstrHash.pm Compact hash for known key, value and table size
 +lib/Time/Local.pm     Reverse translation of localtime, gmtime
 +lib/Time/gmtime.pm    By-name interface to Perl's builtin gmtime
 +lib/Time/localtime.pm By-name interface to Perl's builtin localtime
 +lib/Time/tm.pm                Internal object for Time::{gm,local}time
 +lib/UNIVERSAL.pm      Base class for ALL classes
 +lib/User/grent.pm     By-name interface to Perl's builtin getgr*
 +lib/User/pwent.pm     By-name interface to Perl's builtin getpw*
 +lib/abbrev.pl         An abbreviation table builder
 +lib/assert.pl         assertion and panic with stack trace
 +lib/autouse.pm                Load and call a function only when it's used
 +lib/base.pm           Establish IS-A relationship at compile time
 +lib/bigfloat.pl               An arbitrary precision floating point package
 +lib/bigint.pl         An arbitrary precision integer arithmetic package
 +lib/bigrat.pl         An arbitrary precision rational arithmetic package
 +lib/blib.pm           For "use blib"
 +lib/cacheout.pl               Manages output filehandles when you need too many
 +lib/chat2.pl            Obsolete ipc library (use Comm.pm etc instead)
 +lib/complete.pl               A command completion subroutine
 +lib/constant.pm               For "use constant"
 +lib/ctime.pl          A ctime workalike
 +lib/diagnostics.pm    Print verbose diagnostics
 +lib/dotsh.pl          Code to "dot" in a shell script
 +lib/dumpvar.pl                A variable dumper
 +lib/exceptions.pl     catch and throw routines
 +lib/fastcwd.pl                a faster but more dangerous getcwd
 +lib/fields.pm         Set up object field names for pseudo-hash-using classes
 +lib/find.pl           A find emulator--used by find2perl
 +lib/finddepth.pl      A depth-first find emulator--used by find2perl
 +lib/flush.pl          Routines to do single flush
 +lib/ftp.pl            FTP code (obsolete, use Net::FTP instead)
 +lib/getcwd.pl         A getcwd() emulator
 +lib/getopt.pl         Perl library supporting option parsing
 +lib/getopts.pl                Perl library supporting option parsing
 +lib/hostname.pl               Old hostname code
 +lib/importenv.pl      Perl routine to get environment into variables
 +lib/integer.pm                For "use integer"
 +lib/less.pm           For "use less"
 +lib/lib.pm            For "use lib"
 +lib/locale.pm         For "use locale"
 +lib/look.pl           A "look" equivalent
 +lib/newgetopt.pl      A perl library supporting long option parsing
 +lib/open2.pl          Open a two-ended pipe (uses IPC::Open2)
 +lib/open3.pl          Open a three-ended pipe (uses IPC::Open3)
 +lib/overload.pm               Module for overloading perl operators
 +lib/perl5db.pl                Perl debugging routines
 +lib/pwd.pl            Routines to keep track of PWD environment variable
 +lib/shellwords.pl     Perl library to split into words with shell quoting
 +lib/sigtrap.pm                For trapping an abort and giving traceback
 +lib/stat.pl           Perl library supporting stat function
 +lib/strict.pm         For "use strict"
 +lib/subs.pm           Declare overriding subs
 +lib/syslog.pl         Perl library supporting syslogging
 +lib/tainted.pl                Old code for tainting
 +lib/termcap.pl                Perl library supporting termcap usage
 +lib/timelocal.pl      Perl library supporting inverse of localtime, gmtime
 +lib/validate.pl               Perl library supporting wholesale file mode validation
 +lib/vars.pm           Declare pseudo-imported global variables
 +makeaperl.SH          perl script that produces a new perl binary
 +makedepend.SH         Precursor to makedepend
 +makedir.SH            Precursor to makedir
 +malloc.c              A version of malloc you might not want
 +mg.c                  Magic code
 +mg.h                  Magic header
 +minimod.pl            Writes lib/ExtUtils/Miniperl.pm
 +miniperlmain.c                Basic perl w/o dynamic loading or extensions
 +mv-if-diff            Script to mv a file if it changed
 +myconfig              Prints summary of the current configuration
 +nostdio.h             Cause compile error on stdio calls
 +op.c                  Opcode syntax tree code
 +op.h                  Opcode syntax tree header
 +opcode.h              Automatically generated opcode header
 +opcode.pl             Opcode header generatore
 +os2/Changes           Changelog for OS/2 port
 +os2/Makefile.SHs      Shared library generation for OS/2
 +os2/OS2/ExtAttr/Changes               EA access module
 +os2/OS2/ExtAttr/ExtAttr.pm    EA access module
 +os2/OS2/ExtAttr/ExtAttr.xs    EA access module
 +os2/OS2/ExtAttr/MANIFEST      EA access module
 +os2/OS2/ExtAttr/Makefile.PL   EA access module
 +os2/OS2/ExtAttr/myea.h                EA access module
 +os2/OS2/ExtAttr/t/os2_ea.t    EA access module
 +os2/OS2/ExtAttr/typemap               EA access module
 +os2/OS2/PrfDB/Changes         System database access module
 +os2/OS2/PrfDB/MANIFEST                System database access module
 +os2/OS2/PrfDB/Makefile.PL     System database access module
 +os2/OS2/PrfDB/PrfDB.pm                System database access module
 +os2/OS2/PrfDB/PrfDB.xs                System database access module
 +os2/OS2/PrfDB/t/os2_prfdb.t   System database access module
 +os2/OS2/PrfDB/typemap         System database access module
 +os2/OS2/Process/MANIFEST      system() constants in a module
 +os2/OS2/Process/Makefile.PL   system() constants in a module
 +os2/OS2/Process/Process.pm    system() constants in a module
 +os2/OS2/Process/Process.xs    system() constants in a module
 +os2/OS2/REXX/Changes          DLL access module
 +os2/OS2/REXX/MANIFEST         DLL access module
 +os2/OS2/REXX/Makefile.PL      DLL access module
 +os2/OS2/REXX/REXX.pm          DLL access module
 +os2/OS2/REXX/REXX.xs          DLL access module
 +os2/OS2/REXX/t/rx_cmprt.t     DLL access module
 +os2/OS2/REXX/t/rx_dllld.t     DLL access module
 +os2/OS2/REXX/t/rx_objcall.t   DLL access module
 +os2/OS2/REXX/t/rx_sql.test    DLL access module
 +os2/OS2/REXX/t/rx_tiesql.test DLL access module
 +os2/OS2/REXX/t/rx_tievar.t    DLL access module
 +os2/OS2/REXX/t/rx_tieydb.t    DLL access module
 +os2/OS2/REXX/t/rx_varset.t    DLL access module
 +os2/OS2/REXX/t/rx_vrexx.t     DLL access module
 +os2/POSIX.mkfifo      POSIX.xs patch
 +os2/diff.configure    Patches to Configure
 +os2/dl_os2.c          Addon for dl_open
 +os2/dlfcn.h           Addon for dl_open
 +os2/os2.c             Additional code for OS/2
 +os2/os2ish.h          Header for OS/2
 +os2/perl2cmd.pl               Corrects installed binaries under OS/2
 +os2/os2thread.h               pthread-like typedefs
 +os2/os2.sym           Additional symbols to export
 +patchlevel.h          The current patch level of perl
 +perl.c                        main()
 +perl.h                        Global declarations
 +perl_exp.SH           Creates list of exported symbols for AIX
 +perldir.h             perldir stuff
 +perlenv.h             perlenv stuff
 +perlio.c              C code for PerlIO abstraction
 +perlio.h              Interface to PerlIO abstraction
 +perlio.sym            Symbols for PerlIO abstraction
 +perllio.h             perllio stuff
 +perlmem.h             perlmem stuff
 +perlproc.h            perlproc stuff
 +perlsdio.h            Fake stdio using perlio
 +perlsfio.h            Prototype sfio mapping for PerlIO
 +perlsh                        A poor man's perl shell
 +perlsock.h            perlsock stuff
 +perlvars.h            Global variables
 +perly.c                       A byacc'ed perly.y
 +perly.c.diff          Fixup perly.c to allow recursion
 +perly.fixer           A program to remove yacc stack limitations
 +perly.h                       The header file for perly.c
 +perly.y                       Yacc grammar for perl
 +plan9/aperl           Shell to make Perl error messages Acme-friendly
 +plan9/arpa/inet.h     Plan9 port: replacement C header file
 +plan9/buildinfo               Plan9 port: configuration information
 +plan9/config.plan9    Plan9 port: config.h template
 +plan9/exclude         Plan9 port: tests to skip
 +plan9/fndvers         Plan9 port: update Perl version in config.plan9
 +plan9/genconfig.pl    Plan9 port: generate config.sh
 +plan9/mkfile          Plan9 port: Mk driver for build
 +plan9/myconfig.plan9  Plan9 port: script to print config summary
 +plan9/perlplan9.doc   Plan9 port: Plan9-specific formatted documentation
 +plan9/perlplan9.pod   Plan9 port: Plan9-specific pod documentation
 +plan9/plan9.c         Plan9 port: Plan9-specific C routines
 +plan9/plan9ish.h      Plan9 port: Plan9-specific C header file
 +plan9/setup.rc                Plan9 port: script for easy build+install
 +plan9/versnum         Plan9 port: script to print version number
 +pod/Makefile          Make pods into something else
 +pod/buildtoc          generate perltoc.pod
 +pod/checkpods.PL      Tool to check for common errors in pods
 +pod/perl.pod          Top level perl man page
 +pod/perlapio.pod      IO API info
 +pod/perlbook.pod      Book info
 +pod/perlbot.pod               Object-oriented Bag o' Tricks
 +pod/perlcall.pod      Callback info
 +pod/perldata.pod      Data structure info
 +pod/perldebug.pod     Debugger info
 +pod/perldelta.pod     Changes since last version
 +pod/perldiag.pod      Diagnostic info
 +pod/perldsc.pod               Data Structures Cookbook
 +pod/perlembed.pod     Embedding info
 +pod/perlfaq.pod               Frequently Asked Questions, Top Level
 +pod/perlfaq1.pod      Frequently Asked Questions, Part 1
 +pod/perlfaq2.pod      Frequently Asked Questions, Part 2
 +pod/perlfaq3.pod      Frequently Asked Questions, Part 3
 +pod/perlfaq4.pod      Frequently Asked Questions, Part 4
 +pod/perlfaq5.pod      Frequently Asked Questions, Part 5
 +pod/perlfaq6.pod      Frequently Asked Questions, Part 6
 +pod/perlfaq7.pod      Frequently Asked Questions, Part 7
 +pod/perlfaq8.pod      Frequently Asked Questions, Part 8
 +pod/perlfaq9.pod      Frequently Asked Questions, Part 9
 +pod/perlform.pod      Format info
 +pod/perlfunc.pod      Function info
 +pod/perlguts.pod      Internals info
 +pod/perlhist.pod      Perl history info
 +pod/perlipc.pod               IPC info
 +pod/perllocale.pod    Locale support info
 +pod/perllol.pod               How to use lists of lists
 +pod/perlmod.pod               Module mechanism info
 +pod/perlmodlib.pod    Module policy info
 +pod/perlobj.pod               Object info
 +pod/perlop.pod                Operator info
 +pod/perlpod.pod               Pod info
 +pod/perlre.pod                Regular expression info
 +pod/perlref.pod               References info
 +pod/perlrun.pod               Execution info
 +pod/perlsec.pod               Security info
 +pod/perlstyle.pod     Style info
 +pod/perlsub.pod               Subroutine info
 +pod/perlsyn.pod               Syntax info
 +pod/perltie.pod               Tieing an object class into a simple variable
 +pod/perltoc.pod               Table of Contents info
 +pod/perltoot.pod      Tom's object-oriented tutorial
 +pod/perltrap.pod      Trap info
 +pod/perlvar.pod               Variable info
 +pod/perlxs.pod                XS api info
 +pod/perlxstut.pod     XS tutorial
 +pod/pod2html.PL               Precursor for translator to turn pod into HTML
 +pod/pod2latex.PL      Precursor for translator to turn pod into LaTeX
 +pod/pod2man.PL                Precursor for translator to turn pod into manpage
 +pod/pod2text.PL               Precursor for translator to turn pod into text
 +pod/roffitall         troff the whole man page set
 +pod/rofftoc           Generate a table of contents in troff format
 +pod/splitman          Splits perlfunc into multiple man pages
 +pod/splitpod          Splits perlfunc into multiple pod pages
 +pp.c                  Push/Pop code
 +pp.h                  Push/Pop code defs
 +pp_ctl.c              Push/Pop code for control flow
 +pp_hot.c              Push/Pop code for heavily used opcodes
 +pp_sys.c              Push/Pop code for system interaction
 +proto.h                       Prototypes
 +qnx/ar                        QNX implementation of "ar" utility
 +qnx/cpp                       QNX implementation of preprocessor filter
 +regcomp.c             Regular expression compiler
 +regcomp.h             Private declarations for above
 +regexec.c             Regular expression evaluator
 +regexp.h              Public declarations for the above
 +run.c                 The interpreter loop
 +scope.c                       Scope entry and exit code
 +scope.h                       Scope entry and exit header
 +sv.c                  Scalar value code
 +sv.h                  Scalar value header
 +t/README              Instructions for regression tests
 +t/TEST                        The regression tester
 +t/base/cond.t         See if conditionals work
 +t/base/if.t           See if if works
 +t/base/lex.t          See if lexical items work
 +t/base/pat.t          See if pattern matching works
 +t/base/term.t         See if various terms work
 +t/cmd/elsif.t         See if else-if works
 +t/cmd/for.t           See if for loops work
 +t/cmd/mod.t           See if statement modifiers work
 +t/cmd/subval.t                See if subroutine values work
 +t/cmd/switch.t                See if switch optimizations work
 +t/cmd/while.t         See if while loops work
 +t/comp/cmdopt.t               See if command optimization works
 +t/comp/colon.t                See if colons are parsed correctly
 +t/comp/cpp.aux                main file for cpp.t
 +t/comp/cpp.t          See if C preprocessor works
 +t/comp/decl.t         See if declarations work
 +t/comp/multiline.t    See if multiline strings work
 +t/comp/package.t      See if packages work
 +t/comp/proto.t                See if function prototypes work
 +t/comp/redef.t                See if we get correct warnings on redefined subs
 +t/comp/require.t      See if require works
 +t/comp/script.t               See if script invokation works
 +t/comp/term.t         See if more terms work
 +t/comp/use.t          See if pragmas work
 +t/harness             Finer diagnostics from test suite
 +t/io/argv.t           See if ARGV stuff works
 +t/io/dup.t            See if >& works right
 +t/io/fs.t             See if directory manipulations work
 +t/io/inplace.t                See if inplace editing works
 +t/io/pipe.t           See if secure pipes work
 +t/io/print.t          See if print commands work
 +t/io/read.t           See if read works
 +t/io/tell.t           See if file seeking works
 +t/lib/abbrev.t                See if Text::Abbrev works
 +t/lib/anydbm.t                See if AnyDBM_File works
 +t/lib/autoloader.t    See if AutoLoader works
 +t/lib/basename.t      See if File::Basename works
 +t/lib/bigint.t                See if bigint.pl works
 +t/lib/bigintpm.t      See if BigInt.pm works
 +t/lib/checktree.t     See if File::CheckTree works
 +t/lib/complex.t               See if Math::Complex works
 +t/lib/db-btree.t      See if DB_File works
 +t/lib/db-hash.t               See if DB_File works
 +t/lib/db-recno.t      See if DB_File works
 +t/lib/dirhand.t               See if DirHandle works
 +t/lib/dosglob.t               See if File::DosGlob works
 +t/lib/english.t               See if English works
 +t/lib/env.t           See if Env works
 +t/lib/filecache.t     See if FileCache works
 +t/lib/filecopy.t      See if File::Copy works
 +t/lib/filefind.t      See if File::Find works
 +t/lib/filehand.t      See if FileHandle works
 +t/lib/filepath.t      See if File::Path works
 +t/lib/findbin.t               See if FindBin works
 +t/lib/gdbm.t          See if GDBM_File works
 +t/lib/getopt.t                See if Getopt::Std and Getopt::Long works
 +t/lib/hostname.t      See if Sys::Hostname works
 +t/lib/io_dup.t                See if dup()-related methods from IO work
 +t/lib/io_pipe.t               See if pipe()-related methods from IO work
 +t/lib/io_sel.t                See if select()-related methods from IO work
 +t/lib/io_sock.t               See if INET socket-related methods from IO work
 +t/lib/io_taint.t      See if the untaint method from IO works
 +t/lib/io_tell.t               See if seek()/tell()-related methods from IO work
 +t/lib/io_udp.t                See if UDP socket-related methods from IO work
 +t/lib/io_xs.t         See if XSUB methods from IO work
 +t/lib/ndbm.t          See if NDBM_File works
 +t/lib/odbm.t          See if ODBM_File works
 +t/lib/opcode.t                See if Opcode works
 +t/lib/open2.t         See if IPC::Open2 works
 +t/lib/open3.t         See if IPC::Open3 works
 +t/lib/ops.t           See if Opcode works
 +t/lib/parsewords.t    See if Text::ParseWords works
 +t/lib/ph.t            See if h2ph works
 +t/lib/posix.t         See if POSIX works
 +t/lib/safe1.t         See if Safe works
 +t/lib/safe2.t         See if Safe works
 +t/lib/sdbm.t          See if SDBM_File works
 +t/lib/searchdict.t    See if Search::Dict works
 +t/lib/selectsaver.t   See if SelectSaver works
 +t/lib/socket.t                See if Socket works
 +t/lib/soundex.t               See if Soundex works
 +t/lib/symbol.t                See if Symbol works
 +t/lib/texttabs.t      See if Text::Tabs works
 +t/lib/textwrap.t      See if Text::Wrap works
 +t/lib/thread.t                Basic test of threading (skipped if no threads) 
 +t/lib/tie-push.t      Test for Tie::Array
 +t/lib/tie-stdarray.t  Test for Tie::StdArray
 +t/lib/tie-stdpush.t   Test for Tie::StdArray
 +t/lib/timelocal.t     See if Time::Local works
 +t/lib/trig.t          See if Math::Trig works
 +t/op/append.t         See if . works
 +t/op/arith.t          See if arithmetic works
 +t/op/array.t          See if array operations work
 +t/op/assignwarn.t     See if OP= operators warn correctly for undef targets
 +t/op/auto.t           See if autoincrement et all work
 +t/op/avhv.t           See if pseudo-hashes work
 +t/op/bop.t            See if bitops work
 +t/op/chop.t           See if chop works
 +t/op/closure.t                See if closures work
 +t/op/cmp.t            See if the various string and numeric compare work
 +t/op/cond.t           See if conditional expressions work
 +t/op/delete.t         See if delete works
 +t/op/do.t             See if subroutines work
 +t/op/each.t           See if hash iterators work
 +t/op/eval.t           See if eval operator works
 +t/op/exec.t           See if exec and system work
 +t/op/exp.t            See if math functions work
 +t/op/flip.t           See if range operator works
 +t/op/fork.t           See if fork works
 +t/op/glob.t           See if <*> works
 +t/op/goto.t           See if goto works
 +t/op/groups.t         See if $( works
 +t/op/gv.t             See if typeglobs work
 +t/op/inc.t            See if inc/dec of integers near 32 bit limit work
 +t/op/index.t          See if index works
 +t/op/int.t            See if int works
 +t/op/join.t           See if join works
 +t/op/list.t           See if array lists work
 +t/op/local.t          See if local works
 +t/op/magic.t          See if magic variables work
 +t/op/method.t         See if method calls work
 +t/op/misc.t           See if miscellaneous bugs have been fixed
 +t/op/mkdir.t          See if mkdir works
 +t/op/my.t             See if lexical scoping works
 +t/op/nothread.t               local @_ test which does not work threaded 
 +t/op/oct.t            See if oct and hex work
 +t/op/ord.t            See if ord works
 +t/op/pack.t           See if pack and unpack work
 +t/op/pat.t            See if esoteric patterns work
 +t/op/push.t           See if push and pop work
 +t/op/quotemeta.t      See if quotemeta works
 +t/op/rand.t           See if rand works
 +t/op/range.t          See if .. works
 +t/op/re_tests         Regular expressions for regexp.t
 +t/op/read.t           See if read() works
 +t/op/readdir.t                See if readdir() works
 +t/op/recurse.t                See if deep recursion works
 +t/op/ref.t            See if refs and objects work
 +t/op/regexp.t         See if regular expressions work
 +t/op/repeat.t         See if x operator works
 +t/op/runlevel.t               See if die() works from perl_call_*()
 +t/op/sleep.t          See if sleep works
 +t/op/sort.t           See if sort works
 +t/op/split.t          See if split works
 +t/op/sprintf.t                See if sprintf works
 +t/op/stat.t           See if stat works
 +t/op/study.t          See if study works
 +t/op/subst.t          See if substitution works
 +t/op/substr.t         See if substr works
 +t/op/sysio.t          See if sysread and syswrite work
 +t/op/taint.t          See if tainting works
 +t/op/tie.t            See if tie/untie functions work
 +t/op/tiearray.t               See if tie for arrays works
 +t/op/time.t           See if time functions work
 +t/op/undef.t          See if undef works
 +t/op/universal.t      See if UNIVERSAL class works
 +t/op/unshift.t                See if unshift works
 +t/op/vec.t            See if vectors work
 +t/op/wantarray.t      See if wantarray works
 +t/op/write.t          See if write works
 +t/pragma/constant.t   See if compile-time constants work
 +t/pragma/locale.t     See if locale support (i18n and l10n) works
 +t/pragma/overload.t   See if operator overloading works
 +t/pragma/strict-refs  Tests of "use strict 'refs'" for strict.t
 +t/pragma/strict-subs  Tests of "use strict 'subs'" for strict.t
 +t/pragma/strict-vars  Tests of "use strict 'vars'" for strict.t
 +t/pragma/strict.t     See if strictures work
 +t/pragma/subs.t               See if subroutine pseudo-importation works
 +t/pragma/warn-1global Tests of global warnings for warning.t
 +t/pragma/warning.t    See if warning controls work
 +taint.c                       Tainting code
 +thrdvar.h             Per-thread variables
 +thread.h              Threading header
 +thread.sym            Symbols for threads
 +toke.c                        The tokener
 +universal.c           The default UNIVERSAL package methods
 +unixish.h             Defines that are assumed on Unix
 +util.c                        Utility routines
 +util.h                        Dummy header
 +utils/Makefile                Extract the utility scripts
 +utils/c2ph.PL         program to translate dbx stabs to perl
 +utils/h2ph.PL         A thing to turn C .h files into perl .ph files
 +utils/h2xs.PL         Program to make .xs files from C header files
 +utils/perlbug.PL      A simple tool to submit a bug report
 +utils/perldoc.PL      A simple tool to find & display perl's documentation
 +utils/pl2pm.PL                A pl to pm translator
 +utils/splain.PL               Stand-alone version of diagnostics.pm
 +vms/config.vms                default config.h for VMS
 +vms/descrip.mms               MM[SK] description file for build
 +vms/ext/DCLsym/0README.txt    ReadMe file for VMS::DCLsym
 +vms/ext/DCLsym/DCLsym.pm      Perl access to CLI symbols
 +vms/ext/DCLsym/DCLsym.xs      Perl access to CLI symbols
 +vms/ext/DCLsym/Makefile.PL    MakeMaker driver for VMS::DCLsym
 +vms/ext/DCLsym/test.pl        regression tests for VMS::DCLsym
 +vms/ext/Filespec.pm   VMS-Unix file syntax interconversion
 +vms/ext/Stdio/0README.txt     ReadMe file for VMS::Stdio
 +vms/ext/Stdio/Makefile.PL     MakeMaker driver for VMS::Stdio
 +vms/ext/Stdio/Stdio.pm        VMS options to stdio routines
 +vms/ext/Stdio/Stdio.xs        VMS options to stdio routines
 +vms/ext/Stdio/test.pl regression tests for VMS::Stdio
 +vms/ext/XSSymSet.pm   manage linker symbols when building extensions
 +vms/ext/filespec.t    See if VMS::Filespec funtions work
 +vms/ext/vmsish.pm     Control VMS-specific behavior of Perl core
 +vms/ext/vmsish.t      Tests for vmsish.pm
 +vms/fndvers.com               parse Perl version from patchlevel.h
 +vms/gen_shrfls.pl     generate options files and glue for shareable image
 +vms/genconfig.pl      retcon config.sh from config.h
 +vms/genopt.com                hack to write options files in case of broken makes
 +vms/make_command.com  record MM[SK] command used to build Perl
 +vms/mms2make.pl               convert descrip.mms to make syntax
 +vms/myconfig.com      record local configuration info for bug report
 +vms/perlvms.pod               VMS-specific additions to Perl documentation
 +vms/perly_c.vms               perly.c with fixed declarations for global syms
 +vms/perly_h.vms               perly.h with fixed declarations for global syms
 +vms/sockadapt.c               glue for SockshShr socket support
 +vms/sockadapt.h               glue for SockshShr socket support
 +vms/test.com          DCL driver for regression tests
 +vms/vms.c             VMS-specific C code for Perl core
 +vms/vms_yfix.pl               convert Unix perly.[ch] to VMS perly_[ch].vms
 +vms/vmsish.h          VMS-specific C header for Perl core
 +vms/writemain.pl      Generate perlmain.c from miniperlmain.c+extensions
 +win32/Makefile                Win32 makefile for NMAKE (Visual C++ build)
 +win32/TEST            Win32 port
 +win32/autosplit.pl    Win32 port
 +win32/bin/network.pl  Win32 port
 +win32/bin/perlglob.pl Win32 globbing
 +win32/bin/pl2bat.pl   wrap perl scripts into batch files
 +win32/bin/runperl.pl  run perl script via batch file namesake
 +win32/bin/search.pl   Win32 port
 +win32/bin/webget.pl   Win32 port
 +win32/bin/www.pl      Win32 port
 +win32/config.bc               Win32 base line config.sh (Borland C++ build)
 +win32/config.gc               Win32 base line config.sh (GNU build)?
 +win32/config.vc               Win32 base line config.sh (Visual C++ build)
 +win32/config_H.bc     Win32 config header (Borland C++ build)
 +win32/config_H.gc     Win32 config header (GNU build)?
 +win32/config_H.vc     Win32 config header (Visual C++ build)
 +win32/config_h.PL     Perl code to convert Win32 config.sh to config.h
 +win32/config_sh.PL    Perl code to update Win32 config.sh from Makefile 
 +win32/dl_win32.xs     Win32 port
 +win32/genxsdef.pl     Win32 port
 +win32/include/arpa/inet.h     Win32 port
 +win32/include/dirent.h                Win32 port
 +win32/include/netdb.h         Win32 port
 +win32/include/sys/socket.h    Win32 port
 +win32/makedef.pl      Win32 port
 +win32/makefile.mk     Win32 makefile for DMAKE (BC++, VC++ builds)
 +win32/makemain.pl     Win32 port
 +win32/makeperldef.pl  Win32 port
 +win32/perlglob.c      Win32 port
 +win32/perllib.c               Win32 port
 +win32/pod.mak         Win32 port
 +win32/runperl.c               Win32 port
 +win32/splittree.pl    Win32 port
 +win32/win32.c         Win32 port
 +win32/win32.h         Win32 port
 +win32/win32iop.h      Win32 port
 +win32/win32sck.c      Win32 port
 +win32/win32thread.h   Win32 port mapping to threads
 +win32/win32thread.c   Win32 functions for threads 
 +writemain.SH          Generate perlmain.c from miniperlmain.c+extensions
 +x2p/EXTERN.h          Same as above
 +x2p/INTERN.h          Same as above
 +x2p/Makefile.SH               Precursor to Makefile
 +x2p/a2p.c             Output of a2p.y run through byacc
 +x2p/a2p.h             Global declarations
 +x2p/a2p.pod           Pod for awk to perl translator
 +x2p/a2p.y             A yacc grammer for awk
 +x2p/a2py.c            Awk compiler, sort of
 +x2p/cflags.SH         A script that emits C compilation flags per file
 +x2p/find2perl.PL      A find to perl translator
 +x2p/hash.c            Hashes again
 +x2p/hash.h            Public declarations for the above
 +x2p/proto.h           Dummy header
 +x2p/s2p.PL            Sed to perl translator
 +x2p/str.c             String handling package
 +x2p/str.h             Public declarations for the above
 +x2p/util.c            Utility routines
 +x2p/util.h            Public declarations for the above
 +x2p/walk.c            Parse tree walker
diff --cc Makefile.SH
index d334525,0000000..4280570
mode 100644,000000..100644
--- /dev/null
@@@ -1,574 -1,0 +1,578 @@@
 +#! /bin/sh
 +case $CONFIG in
 +'')
 +      if test -f config.sh; then TOP=.;
 +      elif test -f ../config.sh; then TOP=..;
 +      elif test -f ../../config.sh; then TOP=../..;
 +      elif test -f ../../../config.sh; then TOP=../../..;
 +      elif test -f ../../../../config.sh; then TOP=../../../..;
 +      else
 +              echo "Can't find config.sh."; exit 1
 +      fi
 +      . $TOP/config.sh
 +      ;;
 +esac
 +: This forces SH files to create target in same directory as SH file.
 +: This is so that make depend always knows where to find SH derivatives.
 +case "$0" in
 +*/*) cd `expr X$0 : 'X\(.*\)/'` ;;
 +esac
 +
 +case "$d_dosuid" in
 +*define*) suidperl='suidperl' ;;
 +*) suidperl='';;
 +esac
 +
 +linklibperl='$(LIBPERL)'
 +shrpldflags='$(LDDLFLAGS)'
 +case "$useshrplib" in
 +true)
 +      pldlflags="$cccdlflags"
 +      # NeXT-4 specific stuff.  Can't we do this in the hint file?
 +      case "${osname}${osvers}" in
 +      next4*)
 +              ld=libtool
 +              lddlflags="-dynamic -undefined warning -framework System \
 +              -compatibility_version 1 -current_version $patchlevel \
 +              -prebind -seg1addr 0x27000000 -install_name \$(shrpdir)/\$@"
 +              ;;
 +      sunos*|freebsd[23]*|netbsd*)
 +              linklibperl="-lperl"
 +              ;;
 +      aix*)
 +              shrpldflags="-H512 -T512 -bhalt:4 -bM:SRE -bE:perl.exp"
 +              case "$osvers" in
 +              3*)
 +                      shrpldflags="$shrpldflags -e _nostart $ldflags $libs $cryptlib"
 +                      ;;
 +              *)
 +                      shrpldflags="$shrpldflags -b noentry $ldflags $libs $cryptlib"
 +                      ;;
 +              esac
 +              aixinstdir=`pwd | sed 's/\/UU$//'`
 +              linklibperl="-L $archlibexp/CORE -L $aixinstdir -lperl"
 +              ;;
 +      hpux10*)
 +              linklibperl="-L `pwd | sed 's/\/UU$//'` -Wl,+b$archlibexp/CORE -lperl"
 +              ;;
 +      esac
 +      ;;
 +*)    pldlflags=''
 +      ;;
 +esac
 +
 +: Prepare dependency lists for Makefile.
 +dynamic_list=' '
 +for f in $dynamic_ext; do
 +    : the dependency named here will never exist
 +      base=`echo "$f" | sed 's/.*\///'`
 +    dynamic_list="$dynamic_list lib/auto/$f/$base.$dlext"
 +done
 +
 +static_list=' '
 +for f in $static_ext; do
 +      base=`echo "$f" | sed 's/.*\///'`
 +      static_list="$static_list lib/auto/$f/$base\$(LIB_EXT)"
 +done
 +
 +echo "Extracting Makefile (with variable substitutions)"
 +$spitshell >Makefile <<!GROK!THIS!
 +# Makefile.SH
 +# This file is derived from Makefile.SH.  Any changes made here will
 +# be lost the next time you run Configure.
 +#  Makefile is used to generate $firstmakefile.  The only difference
 +#  is that $firstmakefile has the dependencies filled in at the end.
 +#
 +#
 +# I now supply perly.c with the kits, so don't remake perly.c without byacc
 +BYACC = $byacc
 +CC = $cc
 +LD = $ld
 +
 +LDFLAGS = $ldflags
 +CLDFLAGS = $ldflags
 +
 +SMALL = $small
 +LARGE = $large $split
 +mallocsrc = $mallocsrc
 +mallocobj = $mallocobj
 +LNS = $lns
 +RMS = rm -f
 +ranlib = $ranlib
 +
 +# The following are mentioned only to make metaconfig include the
 +# appropriate questions in Configure.  If you want to change these,
 +# edit config.sh instead, or specify --man1dir=/wherever on
 +# installman commandline.
 +bin = $installbin
 +scriptdir = $scriptdir
 +shrpdir = $archlibexp/CORE
 +privlib = $installprivlib
 +man1dir = $man1dir
 +man1ext = $man1ext
 +man3dir = $man3dir
 +man3ext = $man3ext
 +
 +# The following are used to build and install shared libraries for
 +# dynamic loading.
 +LDDLFLAGS = $lddlflags
 +SHRPLDFLAGS = $shrpldflags
 +CCDLFLAGS = $ccdlflags
 +DLSUFFIX = .$dlext
 +PLDLFLAGS = $pldlflags
 +LIBPERL = $libperl
 +LLIBPERL= $linklibperl
 +SHRPENV = $shrpenv
 +
 +dynamic_ext = $dynamic_list
 +static_ext = $static_list
 +ext = \$(dynamic_ext) \$(static_ext)
 +DYNALOADER = lib/auto/DynaLoader/DynaLoader\$(LIB_EXT)
 +
 +libs = $libs $cryptlib
 +
 +public = perl $suidperl utilities translators
 +
 +shellflags = $shellflags
 +
 +# This is set to  MAKE=$make if your $make command doesn't
 +# do it for you.
 +$make_set_make
 +
 +# These variables will be used in a future version to make
 +# the make file more portable to non-unix systems.
 +AR = $ar
 +EXE_EXT = $exe_ext
 +LIB_EXT = $lib_ext
 +OBJ_EXT = $obj_ext
 +PATH_SEP = $path_sep
 +
 +FIRSTMAKEFILE = $firstmakefile
 +
 +# Any special object files needed by this architecture, e.g. os2/os2.obj
 +ARCHOBJS = $archobjs
 +
 +.SUFFIXES: .c \$(OBJ_EXT)
 +
 +# grrr
 +SHELL = $sh
 +
 +!GROK!THIS!
 +
 +## In the following dollars and backticks do not need the extra backslash.
 +$spitshell >>Makefile <<'!NO!SUBS!'
 +
 +CCCMD = `sh $(shellflags) cflags $(LIBPERL) $@`
 +
 +private = preplibrary lib/ExtUtils/Miniperl.pm lib/Config.pm
 +
 +# Files to be built with variable substitution before miniperl
 +# is available.
 +sh = Makefile.SH cflags.SH config_h.SH makeaperl.SH makedepend.SH \
 +      makedir.SH perl_exp.SH writemain.SH
 +
 +shextract = Makefile cflags config.h makeaperl makedepend \
 +      makedir perl.exp writemain
 +
 +# Files to be built with variable substitution after miniperl is
 +# available.  Dependencies handled manually below (for now).
 +
 +pl = pod/pod2html.PL pod/pod2latex.PL pod/pod2man.PL pod/pod2text.PL
 +
 +plextract = pod/pod2html pod/pod2latex pod/pod2man pod/pod2text
 +
 +addedbyconf = UU $(shextract) $(plextract) pstruct
 +
 +h1 = EXTERN.h INTERN.h XSUB.h av.h config.h cop.h cv.h dosish.h
 +h2 = embed.h form.h gv.h handy.h hv.h keywords.h mg.h op.h
 +h3 = opcode.h patchlevel.h perl.h perly.h pp.h proto.h regcomp.h
 +h4 = regexp.h scope.h sv.h unixish.h util.h perlio.h thread.h
 +h = $(h1) $(h2) $(h3) $(h4)
 +
 +c1 = $(mallocsrc) av.c scope.c op.c doop.c doio.c dump.c hv.c mg.c
 +c2 = perl.c perly.c pp.c pp_hot.c pp_ctl.c pp_sys.c regcomp.c regexec.c
 +c3 = gv.c sv.c taint.c toke.c util.c deb.c run.c universal.c globals.c perlio.c
 +
 +c = $(c1) $(c2) $(c3) miniperlmain.c perlmain.c
 +
 +obj1 = $(mallocobj) gv$(OBJ_EXT) toke$(OBJ_EXT) perly$(OBJ_EXT) op$(OBJ_EXT) regcomp$(OBJ_EXT) dump$(OBJ_EXT) util$(OBJ_EXT) mg$(OBJ_EXT)
 +obj2 = hv$(OBJ_EXT) av$(OBJ_EXT) run$(OBJ_EXT) pp_hot$(OBJ_EXT) sv$(OBJ_EXT) pp$(OBJ_EXT) scope$(OBJ_EXT) pp_ctl$(OBJ_EXT) pp_sys$(OBJ_EXT)
 +obj3 = doop$(OBJ_EXT) doio$(OBJ_EXT) regexec$(OBJ_EXT) taint$(OBJ_EXT) deb$(OBJ_EXT) universal$(OBJ_EXT) globals$(OBJ_EXT) perlio$(OBJ_EXT)
 +
 +obj = $(obj1) $(obj2) $(obj3) $(ARCHOBJS)
 +
 +# Once perl has been Configure'd and built ok you build different
 +# perl variants (Debugging, Embedded, Multiplicity etc) by saying:
 +#     make clean; make LIBPERL=libperl<type>.a
 +# where <type> is some combination of 'd' and(or) 'e' or 'm'.
 +# See cflags to understand how this works.
 +#
 +# This mechanism is getting clunky and might not even work any more.
 +# EMBEDDING is on by default, and MULTIPLICITY doesn't work.
 +#
 +
 +lintflags = -hbvxac
 +
 +.c$(OBJ_EXT):
 +      $(CCCMD) $(PLDLFLAGS) $*.c
 +
 +all: $(FIRSTMAKEFILE) miniperl $(private) $(plextract) $(public) $(dynamic_ext)
 +      @echo " "; echo "       Everything is up to date."
 +
 +translators:  miniperl lib/Config.pm FORCE
 +      @echo " "; echo "       Making x2p stuff"; cd x2p; $(MAKE) all
 +
 +utilities:    miniperl lib/Config.pm FORCE
 +      @echo " "; echo "       Making utilities"; cd utils; $(MAKE) all
 +
 +
 +# This is now done by installman only if you actually want the man pages.
 +#     @echo " "; echo "       Making docs"; cd pod; $(MAKE) all;
 +
 +# Phony target to force checking subdirectories.
 +# Apparently some makes require an action for the FORCE target.
 +FORCE:
 +      @sh -c true
 +
 +miniperlmain$(OBJ_EXT): miniperlmain.c
 +      $(CCCMD) $(PLDLFLAGS) $*.c
 +
 +perlmain.c: miniperlmain.c config.sh $(FIRSTMAKEFILE)
 +      sh writemain $(DYNALOADER) $(static_ext) > tmp
 +      sh mv-if-diff tmp perlmain.c
 +
 +perlmain$(OBJ_EXT): perlmain.c
 +      $(CCCMD) $(PLDLFLAGS) $*.c
 +
 +# The file ext.libs is a list of libraries that must be linked in
 +# for static extensions, e.g. -lm -lgdbm, etc.  The individual
 +# static extension Makefile's add to it.
 +ext.libs: $(static_ext)
 +      -@test -f ext.libs || touch ext.libs
 +
 +!NO!SUBS!
 +
 +# How to build libperl.  This is still rather convoluted.
 +# Load up custom Makefile.SH fragment for shared loading and executables:
 +if test -r $osname/Makefile.SHs ; then
 +      . $osname/Makefile.SHs
 +      $spitshell >>Makefile <<!GROK!THIS!
 +
 +Makefile: $osname/Makefile.SHs
 +!GROK!THIS!
 +else
 +      $spitshell >>Makefile <<'!NO!SUBS!'
 +$(LIBPERL): $& perl$(OBJ_EXT) $(obj)
 +!NO!SUBS!
 +      case "$useshrplib" in
 +      true)
 +              $spitshell >>Makefile <<'!NO!SUBS!'
 +      $(LD) $(SHRPLDFLAGS) -o $@ perl$(OBJ_EXT) $(obj)
 +!NO!SUBS!
 +              case "$osname" in
 +              aix)
 +                      $spitshell >>Makefile <<'!NO!SUBS!'
 +      mv $@ libperl$(OBJ_EXT)
 +      $(AR) qv $(LIBPERL) libperl$(OBJ_EXT)
 +!NO!SUBS!
 +                      ;;
 +              esac
 +              ;;
 +      *)
 +              $spitshell >>Makefile <<'!NO!SUBS!'
 +      rm -f $(LIBPERL)
 +      $(AR) rcu $(LIBPERL) perl$(OBJ_EXT) $(obj)
 +      @$(ranlib) $(LIBPERL)
 +!NO!SUBS!
 +              ;;
 +      esac
 +      $spitshell >>Makefile <<'!NO!SUBS!'
 +
 +# How to build executables.
 +
 +# The $& notation tells Sequent machines that it can do a parallel make,
 +# and is harmless otherwise.
 +# The miniperl -w -MExporter line is a basic cheap test to catch errors
 +# before make goes on to run preplibrary and then MakeMaker on extensions.
 +# This is very handy because later errors are often caused by miniperl
 +# build problems but that's not obvious to the novice.
 +# The Module used here must not depend on Config or any extensions.
 +
 +miniperl: $& miniperlmain$(OBJ_EXT) $(LIBPERL)
 +      $(CC) $(LARGE) $(CLDFLAGS) -o miniperl miniperlmain$(OBJ_EXT) $(LLIBPERL) $(libs)
 +      @./miniperl -w -Ilib -MExporter -e 0 || $(MAKE) minitest
 +
 +perl: $& perlmain$(OBJ_EXT) $(LIBPERL) $(DYNALOADER) $(static_ext) ext.libs
 +      $(SHRPENV) $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o perl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
 +
 +pureperl: $& perlmain$(OBJ_EXT) $(LIBPERL) $(DYNALOADER) $(static_ext) ext.libs
 +      $(SHRPENV) purify $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o pureperl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
 +
 +purecovperl: $& perlmain$(OBJ_EXT) $(LIBPERL) $(DYNALOADER) $(static_ext) ext.libs
 +      $(SHRPENV) purecov $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o purecovperl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
 +
 +quantperl: $& perlmain$(OBJ_EXT) $(LIBPERL) $(DYNALOADER) $(static_ext) ext.libs
 +      $(SHRPENV) quantify $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o quantperl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
 +
 +# This version, if specified in Configure, does ONLY those scripts which need
 +# set-id emulation.  Suidperl must be setuid root.  It contains the "taint"
 +# checks as well as the special code to validate that the script in question
 +# has been invoked correctly.
 +
 +suidperl: $& sperl$(OBJ_EXT) perlmain$(OBJ_EXT) $(LIBPERL) $(DYNALOADER) $(static_ext) ext.libs
 +      $(SHRPENV) $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o suidperl perlmain$(OBJ_EXT) sperl$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
 +
 +!NO!SUBS!
 +
 +fi
 +
 +$spitshell >>Makefile <<'!NO!SUBS!'
 +
 +sperl$(OBJ_EXT): perl.c perly.h patchlevel.h $(h)
 +      $(RMS) sperl.c
 +      $(LNS) perl.c sperl.c
 +      $(CCCMD) -DIAMSUID sperl.c
 +      $(RMS) sperl.c
 +
 +# We have to call our ./makedir because Ultrix 4.3 make can't handle the line
 +#     test -d lib/auto || mkdir lib/auto
 +#
 +preplibrary: miniperl lib/Config.pm $(plextract)
 +      @sh ./makedir lib/auto
 +      @echo " AutoSplitting perl library"
 +      @./miniperl -Ilib -e 'use AutoSplit; \
 +              autosplit_lib_modules(@ARGV)' lib/*.pm lib/*/*.pm
 +
 +# Take care to avoid modifying lib/Config.pm without reason
 +# (If trying to create a new port and having problems with the configpm script, 
 +# try 'make minitest' and/or commenting out the tests at the end of configpm.)
 +lib/Config.pm: config.sh miniperl configpm
 +      ./miniperl configpm tmp
 +      sh mv-if-diff tmp lib/Config.pm
 +
 +lib/ExtUtils/Miniperl.pm: miniperlmain.c miniperl minimod.pl lib/Config.pm
 +      ./miniperl minimod.pl > tmp && mv tmp $@
 +
 +$(plextract): miniperl lib/Config.pm
 +      `echo ./miniperl -Ilib $@.PL`
 +
 +install: all install.perl install.man
 +
 +install.perl: all installperl
 +      ./perl installperl
 +
 +install.man:  all installman
 +      ./perl installman
 +
 +# XXX Experimental. Hardwired values, but useful for testing.
 +# Eventually Configure could ask for some of these values.
 +install.html: all installhtml
 +      ./perl installhtml                   \
 +      --podroot=. --podpath=. --recurse  \
 +      --htmldir=$(privlib)/html     \
 +      --htmlroot=$(privlib)/html    \
 +      --splithead=pod/perlipc     \
 +      --splititem=pod/perlfunc    \
 +      --libpods=perlfunc:perlguts:perlvar:perlrun:perlop \
 +      --verbose
 +
 +
 +# I now supply perly.c with the kits, so the following section is
 +# used only if you force byacc to run by saying
 +#     make run_byacc
 +# Since we patch up the byacc output, the perly.fixer script needs
 +# to run with precisely the same version of byacc as I use.  You
 +# normally shouldn't remake perly.[ch].
 +
 +run_byacc:    FORCE
 +      @ echo 'Expect' 113 shift/reduce and 1 reduce/reduce conflict
 +      $(BYACC) -d perly.y
 +      chmod 664 perly.c
 +      sh $(shellflags) ./perly.fixer y.tab.c perly.c
 +      sed -e 's/fprintf *( *stderr *,/PerlIO_printf(Perl_debug_log,/g' \
 +          -e 's/y\.tab/perly/g' perly.c >perly.tmp && mv perly.tmp perly.c
 +      echo 'extern YYSTYPE yylval;' >>y.tab.h
 +      cmp -s y.tab.h perly.h && rm -f y.tab.h || mv y.tab.h perly.h
 +      chmod 664 vms/perly_c.vms vms/perly_h.vms
 +      perl vms/vms_yfix.pl perly.c perly.h vms/perly_c.vms vms/perly_h.vms
 +
 +# We don't want to regenerate perly.c and perly.h, but they might
 +# appear out-of-date after a patch is applied or a new distribution is
 +# made.
 +perly.c: perly.y
 +      -@sh -c true
 +
 +perly.h: perly.y
 +      -@sh -c true
 +
- # The following three header files are generated automatically
++# The following files are generated automatically
 +#     keywords.h:     keywords.pl
 +#     opcode.h:       opcode.pl
 +#     embed.h:        embed.pl global.sym interp.sym
++#     byterun.h:      bytecode.pl
++#     byterun.c:      bytecode.pl
++#     lib/B/Asmdata.pm:       bytecode.pl
 +# The correct versions should be already supplied with the perl kit,
 +# in case you don't have perl available.
 +# To force them to run, type
 +#     make regen_headers
 +regen_headers:        FORCE
 +      perl keywords.pl
 +      perl opcode.pl
 +      perl embed.pl
++      perl bytecode.pl
 +
 +# Extensions:
 +# Names added to $(dynamic_ext) or $(static_ext) will automatically
 +# get built.  There should ordinarily be no need to change any of
 +# this part of makefile.
 +#
 +# The dummy dependency is a place holder in case $(dynamic_ext) or
 +# $(static_ext) is empty.
 +#
 +# DynaLoader may be needed for extensions that use Makefile.PL.
 +
 +$(DYNALOADER):        miniperl preplibrary FORCE
 +      @sh ext/util/make_ext static $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL)
 +
 +d_dummy $(dynamic_ext):       miniperl preplibrary $(DYNALOADER) FORCE
 +      @sh ext/util/make_ext dynamic $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL)
 +
 +s_dummy $(static_ext):        miniperl preplibrary $(DYNALOADER) FORCE
 +      @sh ext/util/make_ext static $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL)
 +
 +clean:                _tidy _mopup
 +
 +realclean:    _cleaner _mopup
 +      @echo "Note that make realclean does not delete config.sh"
 +
 +clobber:      _cleaner _mopup
 +      rm -f config.sh cppstdin
 +
 +distclean:    clobber
 +
 +# Do not 'make _mopup' directly.
 +_mopup:
 +      rm -f *$(OBJ_EXT) *$(LIB_EXT) all perlmain.c
 +      rm -f perl.exp ext.libs
 +      -rm -f perl.export perl.dll perl.libexp perl.map perl.def
 +      rm -f perl suidperl miniperl $(LIBPERL)
 +
 +# Do not 'make _tidy' directly.
 +_tidy:
 +      -cd pod; $(MAKE) clean
 +      -cd utils; $(MAKE) clean
 +      -cd x2p; $(MAKE) clean
 +      -@for x in $(DYNALOADER) $(dynamic_ext) $(static_ext) ; do \
 +      sh ext/util/make_ext clean $$x MAKE=$(MAKE) ; \
 +      done
 +
 +# Do not 'make _cleaner' directly.
 +_cleaner:
 +      -cd os2; rm -f Makefile
 +      -cd pod; $(MAKE) realclean
 +      -cd utils; $(MAKE) realclean
 +      -cd x2p; $(MAKE) realclean
 +      -@for x in $(DYNALOADER) $(dynamic_ext) $(static_ext) ; do \
 +      sh ext/util/make_ext realclean $$x MAKE=$(MAKE) ; \
 +      done
 +      rm -f *.orig */*.orig *~ */*~ core t/core t/c t/perl
 +      rm -rf $(addedbyconf)
 +      rm -f $(FIRSTMAKEFILE) $(FIRSTMAKEFILE).old
 +      rm -f $(private)
 +      rm -rf lib/auto
 +      rm -f lib/.exists
 +      rm -f h2ph.man pstruct
 +      rm -rf .config
 +
 +# The following lint has practically everything turned on.  Unfortunately,
 +# you have to wade through a lot of mumbo jumbo that can't be suppressed.
 +# If the source file has a /*NOSTRICT*/ somewhere, ignore the lint message
 +# for that spot.
 +
 +lint: perly.c $(c)
 +      lint $(lintflags) $(defs) perly.c $(c) > perl.fuzz
 +
 +# Need to unset during recursion to go out of loop.
 +# The README below ensures that the dependency list is never empty and
 +# that when MAKEDEPEND is empty $(FIRSTMAKEFILE) doesn't need rebuilding.
 +
 +MAKEDEPEND = Makefile makedepend
 +
 +$(FIRSTMAKEFILE):     README $(MAKEDEPEND)
 +      $(MAKE) depend MAKEDEPEND=
 +
 +config.h: config_h.SH config.sh
 +      $(SHELL) config_h.SH
 +
 +perl.exp: perl_exp.SH config.sh
 +      $(SHELL) perl_exp.SH
 +
 +# When done, touch perlmain.c so that it doesn't get remade each time.
 +depend: makedepend
 +      sh ./makedepend MAKE=$(MAKE)
 +      - test -s perlmain.c && touch perlmain.c
 +      cd x2p; $(MAKE) depend
 +
 +# Cannot postpone this until $firstmakefile is ready ;-)
 +makedepend: makedepend.SH config.sh
 +      sh ./makedepend.SH
 +
 +test-prep: miniperl perl preplibrary $(dynamic_ext)
 +      cd t && (rm -f perl$(EXE_EXT); $(LNS) ../perl$(EXE_EXT) perl$(EXE_EXT))
 +
 +test check: test-prep
 +      cd t && ./perl TEST </dev/tty
 +
 +# For testing without a tty or controling terminal. See t/op/stat.t
 +test-notty: test-prep
 +      cd t && PERL_SKIP_TTY_TEST=1 ./perl TEST
 +
 +# Can't depend on lib/Config.pm because that might be where miniperl
 +# is crashing.
 +minitest: miniperl
 +      @echo "You may see some irrelevant test failures if you have been unable"
 +      @echo "to build lib/Config.pm."
 +      - cd t && (rm -f perl$(EXE_EXT); $(LNS) ../miniperl$(EXE_EXT) perl$(EXE_EXT)) \
 +              && ./perl TEST base/*.t comp/*.t cmd/*.t io/*.t op/*.t pragma/*.t </dev/tty
 +
 +# Handy way to run perlbug -ok without having to install and run the
 +# installed perlbug. We don't re-run the tests here - we trust the user.
 +# Please *don't* use this unless all tests pass.
 +# If you want to report test failures, just use "perlbug -Ilib".
 +ok:
 +      ./perl -Ilib utils/perlbug -ok -s '(UNINSTALLED)'
 +
 +clist:        $(c)
 +      echo $(c) | tr ' ' '\012' >.clist
 +
 +hlist:  $(h)
 +      echo $(h) | tr ' ' '\012' >.hlist
 +
 +shlist: $(sh)
 +      echo $(sh) | tr ' ' '\012' >.shlist
 +
 +pllist: $(pl)
 +      echo $(pl) | tr ' ' '\012' >.pllist
 +
 +Makefile: Makefile.SH ./config.sh
 +      $(SHELL) Makefile.SH
 +
 +distcheck: FORCE
 +      perl '-MExtUtils::Manifest=&fullcheck' -e 'fullcheck()'
 +
 +etags:
 +      sh emacs/ptags
 +
 +# AUTOMATICALLY GENERATED MAKE DEPENDENCIES--PUT NOTHING BELOW THIS LINE
 +# If this runs make out of memory, delete /usr/include lines.
 +!NO!SUBS!
 +
 +$eunicefix Makefile
 +case `pwd` in
 +*SH)
 +    $rm -f ../Makefile
 +    $ln Makefile ../Makefile
 +    ;;
 +esac
 +$rm -f $firstmakefile
diff --cc bytecode.pl
@@@ -20,7 -20,7 +20,7 @@@ while (($from, $tos) = each %alias_to) 
  
  my $c_header = <<'EOT';
  /*
-- *      Copyright (c) 1996, 1997 Malcolm Beattie
++ *      Copyright (c) 1996-1998 Malcolm Beattie
   *
   *      You may distribute under the terms of either the GNU General Public
   *      License or the Artistic License, as specified in the README file.
@@@ -34,20 -34,20 +34,12 @@@ EO
  my $perl_header;
  ($perl_header = $c_header) =~ s{[/ ]?\*/?}{#}g;
  
--if (-f "byterun.c") {
--    rename("byterun.c", "byterun.c.old");
--}
--if (-f "byterun.h") {
--    rename("byterun.h", "byterun.h.old");
--}
--if (-f "B/Asmdata.pm") {
--    rename("B/Asmdata.pm", "B/Asmdata.pm.old");
--}
++unlink "byterun.c", "byterun.h", "lib/B/Asmdata.pm";
  
  #
  # Start with boilerplate for Asmdata.pm
  #
--open(ASMDATA_PM, ">B/Asmdata.pm") or die "Asmdata.pm: $!";
++open(ASMDATA_PM, ">lib/B/Asmdata.pm") or die "Asmdata.pm: $!";
  print ASMDATA_PM $perl_header, <<'EOT';
  package B::Asmdata;
  use Exporter;
index bcc8baa,0000000..88bd4ba
mode 100644,000000..100644
--- /dev/null
@@@ -1,54 -1,0 +1,45 @@@
 +use ExtUtils::MakeMaker;
 +use Config;
 +
 +my $e = $Config{'exe_ext'};
 +my $o = $Config{'obj_ext'};
 +my $exeout_flag = '-o ';
 +if ($^O eq 'MSWin32') {
 +    if ($Config{'cc'} =~ /^cl/i) {
 +      $exeout_flag = '-Fe';
 +    }
 +    elsif ($Config{'cc'} =~ /^bcc/i) {
 +      $exeout_flag = '-e';
 +    }
 +}
 +
 +WriteMakefile(
 +    NAME      => "B",
 +    VERSION   => "a5",
-     OBJECT    => "B$o byterun$o",
-     depend    => {
-       "B$o"           => "B.c bytecode.h byterun.h",
-     },
 +    clean     => {
-       FILES           => "perl byteperl$e btest$e btest.c *$o B.c *~"
++      FILES           => "perl byteperl$e *$o B.c *~"
 +    }
 +);
 +
 +sub MY::post_constants {
 +    "\nLIBS = $Config{libs}\n"
 +}
 +
- sub MY::top_targets {
-     my $self = shift;
-     my $targets = $self->MM::top_targets();
-     $targets =~ s/^(all ::.*)$/$1 byteperl$e/m;
-     return <<"EOT" . $targets;
- #
- # byterun.h, byterun.c and Asmdata.pm are auto-generated. If any of the
- # files are missing or if you change bytecode.pl (which is what generates
- # them all) then you can "make regen_headers" to regenerate them.
- #
- regen_headers:
-       \$(PERL) bytecode.pl
-       \$(MV) Asmdata.pm B
++# Leave out doing byteperl for now. Probably should be built in the
++# core directory or somewhere else rather than here
++#sub MY::top_targets {
++#    my $self = shift;
++#    my $targets = $self->MM::top_targets();
++#    $targets =~ s/^(all ::.*)$/$1 byteperl$e/m;
++#    return <<"EOT" . $targets;
++
 +#
 +# byteperl is *not* a standard perl+XSUB executable. It's a special
 +# program for running standalone bytecode executables. It isn't an XSUB
 +# at the moment because a standlone Perl program needs to set up curpad
 +# which is overwritten on exit from an XSUB.
 +#
- byteperl$e : byteperl$o B$o byterun$o
-       \$(CC) ${exeout_flag}byteperl$e byteperl$o B$o byterun$o \$(LDFLAGS) \$(PERL_ARCHLIB)/CORE/$Config{libperl} \$(LIBS)
- EOT
- }
++#byteperl$e : byteperl$o B$o \$(PERL_SRC)/byterun$o
++#     \$(CC) ${exeout_flag}byteperl$e byteperl$o B$o byterun$o \$(LDFLAGS) \$(PERL_ARCHLIB)/CORE/$Config{libperl} \$(LIBS)
++#EOT
++#}
index 0000000,3a3cf6d..3a3cf6d
mode 000000,100644..100644
--- /dev/null
index 0000000,0729b90..0729b90
mode 000000,100644..100644
--- /dev/null
diff --cc lib/B/Bblock.pm
index 0000000,125c8a3..125c8a3
mode 000000,100644..100644
--- /dev/null
index 0000000,447bd37..447bd37
mode 000000,100644..100644
--- /dev/null
diff --cc lib/B/C.pm
index 0000000,4158bc4..4158bc4
mode 000000,100644..100644
--- /dev/null
--- 2/B/C.pm
diff --cc lib/B/CC.pm
index 0000000,fc7cf6d..fc7cf6d
mode 000000,100644..100644
--- /dev/null
diff --cc lib/B/Debug.pm
index 0000000,d88cef3..d88cef3
mode 000000,100644..100644
--- /dev/null
index 0000000,9802cb4..9802cb4
mode 000000,100644..100644
--- /dev/null
index 0000000,36db354..36db354
mode 000000,100644..100644
--- /dev/null
diff --cc lib/B/Lint.pm
index 0000000,d34bd77..d34bd77
mode 000000,100644..100644
--- /dev/null
index 0000000,9cf8ecc..9cf8ecc
mode 000000,100644..100644
--- /dev/null
index 0000000,8be047f..8be047f
mode 000000,100644..100644
--- /dev/null
diff --cc lib/B/Terse.pm
index 0000000,6489dc0..6489dc0
mode 000000,100644..100644
--- /dev/null
diff --cc lib/B/Xref.pm
index 0000000,0102856..0102856
mode 000000,100644..100644
--- /dev/null