This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Add a test for bug #17920, and a new test file for it.
[perl5.git] / MANIFEST
index 99539c6..be029d0 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -95,7 +95,7 @@ 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/ramblings/runtime.porting Compiler ramblings: porting PP engine
 ext/B/README           Compiler backend README
 ext/B/t/asmdata.t      See if B::Asmdata works
 ext/B/t/assembler.t    See if B::Assembler, B::Disassembler comply
@@ -203,41 +203,42 @@ ext/DynaLoader/Makefile.PL        Dynamic Loader makefile writer
 ext/DynaLoader/README          Dynamic Loader notes and intro
 ext/DynaLoader/XSLoader_pm.PL  Simple XS Loader perl module
 ext/Encode/AUTHORS             List of authors
-ext/Encode/bin/enc2xs  Encode module generator
-ext/Encode/bin/piconv  iconv by perl
+ext/Encode/bin/enc2xs          Encode module generator
+ext/Encode/bin/piconv          iconv by perl
 ext/Encode/bin/ucm2table       Table Generator for testing
-ext/Encode/bin/ucmlint A UCM Lint utility
-ext/Encode/bin/unidump Unicode Dump like hexdump(1)
-ext/Encode/Byte/Byte.pm Encode extension
-ext/Encode/Byte/Makefile.PL      Encode extension
+ext/Encode/bin/ucmlint         A UCM Lint utility
+ext/Encode/bin/ucmsort         A UCM sort utility
+ext/Encode/bin/unidump         Unicode Dump like hexdump(1)
+ext/Encode/Byte/Byte.pm                Encode extension
+ext/Encode/Byte/Makefile.PL    Encode extension
 ext/Encode/Changes             Change Log
 ext/Encode/CN/CN.pm            Encode extension
 ext/Encode/CN/Makefile.PL      Encode extension
-ext/Encode/EBCDIC/EBCDIC.pm      Encode extension
-ext/Encode/EBCDIC/Makefile.PL    Encode extension
+ext/Encode/EBCDIC/EBCDIC.pm    Encode extension
+ext/Encode/EBCDIC/Makefile.PL  Encode extension
 ext/Encode/encengine.c         Encode extension
-ext/Encode/Encode.pm          Mother of all Encode extensions
+ext/Encode/Encode.pm           Mother of all Encode extensions
 ext/Encode/Encode.xs           Encode extension
-ext/Encode/Encode/Changes.e2x          Skeleton file for enc2xs
+ext/Encode/Encode/Changes.e2x  Skeleton file for enc2xs
 ext/Encode/Encode/ConfigLocal_PM.e2x   Skeleton file for enc2xs
-ext/Encode/Encode/encode.h             Encode extension header file
+ext/Encode/Encode/encode.h     Encode extension header file
 ext/Encode/Encode/Makefile_PL.e2x      Skeleton file for enc2xs
-ext/Encode/Encode/README.e2x           Skeleton file for enc2xs
-ext/Encode/Encode/_PM.e2x              Skeleton file for enc2xs
-ext/Encode/Encode/_T.e2x               Skeleton file for enc2xs
-ext/Encode/encoding.pm Perl Pragmactic Module
+ext/Encode/Encode/README.e2x   Skeleton file for enc2xs
+ext/Encode/Encode/_PM.e2x      Skeleton file for enc2xs
+ext/Encode/Encode/_T.e2x       Skeleton file for enc2xs
+ext/Encode/encoding.pm         Perl Pragmatic Module
 ext/Encode/JP/JP.pm            Encode extension
 ext/Encode/JP/Makefile.PL      Encode extension
 ext/Encode/KR/KR.pm            Encode extension
-ext/Encode/KR/Makefile.PL              Encode extension
-ext/Encode/lib/Encode/Alias.pm         Encode extension
+ext/Encode/KR/Makefile.PL      Encode extension
+ext/Encode/lib/Encode/Alias.pm Encode extension
 ext/Encode/lib/Encode/CJKConstants.pm  Encode extension
 ext/Encode/lib/Encode/CN/HZ.pm         Encode extension
-ext/Encode/lib/Encode/Config.pm                Encode configuration module
-ext/Encode/lib/Encode/Encoder.pm              OO Encoder
+ext/Encode/lib/Encode/Config.pm        Encode configuration module
+ext/Encode/lib/Encode/Encoder.pm       OO Encoder
 ext/Encode/lib/Encode/Encoding.pm      Encode extension
 ext/Encode/lib/Encode/Guess.pm Encode Extension
-ext/Encode/lib/Encode/JP/H2Z.pm                Encode extension
+ext/Encode/lib/Encode/JP/H2Z.pm        Encode extension
 ext/Encode/lib/Encode/JP/JIS7.pm       Encode extension
 ext/Encode/lib/Encode/KR/2022_KR.pm     Encode extension
 ext/Encode/lib/Encode/MIME/Header.pm   Encode extension
@@ -246,37 +247,38 @@ ext/Encode/lib/Encode/Supported.pod       Documents for supported encodings
 ext/Encode/Makefile.PL         Encode extension makefile writer
 ext/Encode/MANIFEST            Encode extension
 ext/Encode/README              Encode extension
-ext/Encode/Symbol/Makefile.PL    Encode extension
-ext/Encode/Symbol/Symbol.pm      Encode extension
-ext/Encode/t/Aliases.t test script
-ext/Encode/t/at-cn.t   test script
-ext/Encode/t/at-tw.t   test script
+ext/Encode/Symbol/Makefile.PL  Encode extension
+ext/Encode/Symbol/Symbol.pm    Encode extension
+ext/Encode/t/Aliases.t         test script
+ext/Encode/t/at-cn.t           test script
+ext/Encode/t/at-tw.t           test script
 ext/Encode/t/big5-eten.enc     test data
 ext/Encode/t/big5-eten.utf     test data
 ext/Encode/t/big5-hkscs.enc    test data
 ext/Encode/t/big5-hkscs.utf    test data
-ext/Encode/t/CJKT.t    test script
-ext/Encode/t/Encode.t  test script
-ext/Encode/t/Encoder.t test script
-ext/Encode/t/encoding.t test script
-ext/Encode/t/fallback.t test script
-ext/Encode/t/gb2312.enc test data
-ext/Encode/t/gb2312.utf test data
-ext/Encode/t/grow.t    test script
-ext/Encode/t/guess.t   test script
+ext/Encode/t/CJKT.t            test script
+ext/Encode/t/Encode.t          test script
+ext/Encode/t/Encoder.t         test script
+ext/Encode/t/encoding.t                test script
+ext/Encode/t/fallback.t                test script
+ext/Encode/t/gb2312.enc                test data
+ext/Encode/t/gb2312.utf                test data
+ext/Encode/t/grow.t            test script
+ext/Encode/t/guess.t           test script
 ext/Encode/t/jisx0201.enc      test data
 ext/Encode/t/jisx0201.utf      test data
 ext/Encode/t/jisx0208.enc      test data
 ext/Encode/t/jisx0208.utf      test data
 ext/Encode/t/jisx0212.enc      test data
 ext/Encode/t/jisx0212.utf      test data
-ext/Encode/t/jperl.t   test script
+ext/Encode/t/jperl.t           test script
 ext/Encode/t/ksc5601.enc       test data
 ext/Encode/t/ksc5601.utf       test data
 ext/Encode/t/mime-header.t     test script
-ext/Encode/t/perlio.t  test script
+ext/Encode/t/perlio.t          test script
+ext/Encode/t/rt.pl             test script
 ext/Encode/t/unibench.pl       benchmark script
-ext/Encode/t/Unicode.t test script
+ext/Encode/t/Unicode.t         test script
 ext/Encode/TW/Makefile.PL      Encode extension
 ext/Encode/TW/TW.pm            Encode extension
 ext/Encode/ucm/8859-1.ucm      Unicode Character Map
@@ -424,6 +426,7 @@ ext/I18N/Langinfo/Makefile.PL       I18N::Langinfo
 ext/IO/ChangeLog               IO perl module change log
 ext/IO/hints/sco.pl            Hint for IO for named architecture
 ext/IO/IO.pm                   Top-level interface to IO::* classes
+ext/IO/lib/IO/t/IO.t   See if IO works
 ext/IO/IO.xs                   IO extension external subroutines
 ext/IO/lib/IO/Dir.pm           IO directory reading package
 ext/IO/lib/IO/File.pm          IO file handle package
@@ -474,6 +477,7 @@ ext/List/Util/README                Util extension
 ext/List/Util/t/blessed.t      Scalar::Util
 ext/List/Util/t/dualvar.t      Scalar::Util
 ext/List/Util/t/first.t                List::Util
+ext/List/Util/t/isvstring.t    Scalar::Util
 ext/List/Util/t/max.t          List::Util
 ext/List/Util/t/maxstr.t       List::Util
 ext/List/Util/t/min.t          List::Util
@@ -481,6 +485,7 @@ ext/List/Util/t/minstr.t    List::Util
 ext/List/Util/t/openhan.t      Scalar::Util
 ext/List/Util/t/readonly.t     Scalar::Util
 ext/List/Util/t/reduce.t       List::Util
+ext/List/Util/t/refaddr.t      Scalar::Util
 ext/List/Util/t/reftype.t      Scalar::Util
 ext/List/Util/t/shuffle.t      List::Util
 ext/List/Util/t/sum.t          List::Util
@@ -570,6 +575,7 @@ ext/re/re.t                         see if re pragma works
 ext/re/re.xs                   re extension external subroutines
 ext/Safe/safe1.t               See if Safe works
 ext/Safe/safe2.t               See if Safe works
+ext/Safe/safe3.t               See if Safe works
 ext/SDBM_File/Makefile.PL      SDBM extension makefile writer
 ext/SDBM_File/sdbm.t           See if SDBM_File works
 ext/SDBM_File/sdbm/biblio      SDBM kit
@@ -619,7 +625,7 @@ ext/Storable/t/downgrade.t  See if Storable works
 ext/Storable/t/forgive.t       See if Storable works
 ext/Storable/t/freeze.t                See if Storable works
 ext/Storable/t/integer.t       See if Storable works
-ext/Storable/t/interwork56.t   Test combatibility kludge for 64bit data under 5.6.x
+ext/Storable/t/interwork56.t   Test compatibility kludge for 64bit data under 5.6.x
 ext/Storable/t/lock.t          See if Storable works
 ext/Storable/t/make_56_interwork.pl    Make test data for interwork56.t
 ext/Storable/t/make_downgrade.pl       Make test data for downgrade.t
@@ -661,7 +667,6 @@ ext/Thread/Semaphore.pmx    Threadsafe semaphore
 ext/Thread/specific.tx         Test thread-specific user data
 ext/Thread/sync.tx             Test thread synchronisation
 ext/Thread/sync2.tx            Test thread synchronisation
-ext/Thread/thr5005.t           Test 5.005-style threading (skipped if no use5005threads)
 ext/Thread/Thread.xs           Thread extension external subroutines
 ext/Thread/Thread/Signal.pm    Start a thread to run signal handlers
 ext/Thread/Thread/Specific.pm  Thread specific data access
@@ -681,6 +686,7 @@ ext/threads/shared/t/0nothread.t    Tests for basic shared array functionality.
 ext/threads/shared/t/av_refs.t Tests for arrays containing references
 ext/threads/shared/t/av_simple.t       Tests for basic shared array functionality.
 ext/threads/shared/t/cond.t    Test condition variables
+ext/threads/shared/t/disabled.t Test threads::shared when threads are disabled.
 ext/threads/shared/t/hv_refs.t Test shared hashes containing references
 ext/threads/shared/t/hv_simple.t       Tests for basic shared hash functionality.
 ext/threads/shared/t/no_share.t Tests for disabled share on variables.
@@ -691,7 +697,7 @@ ext/threads/shared/typemap  thread::shared types
 ext/threads/t/basic.t          ithreads
 ext/threads/t/end.t            Test end functions
 ext/threads/t/join.t           Testing the join function
-ext/threads/t/libc.t           testing libc functions for threadsafetyness
+ext/threads/t/libc.t           testing libc functions for threadsafety
 ext/threads/t/list.t           Test threads->list()
 ext/threads/t/stress_cv.t      Test with multiple threads, coderef cv argument.
 ext/threads/t/stress_re.t      Test with multiple threads, string cv argument and regexes.
@@ -707,6 +713,7 @@ ext/Time/HiRes/HiRes.pm             Time::HiRes extension
 ext/Time/HiRes/HiRes.t         Test for Time::HiRes
 ext/Time/HiRes/HiRes.xs                Time::HiRes extension
 ext/Time/HiRes/Makefile.PL     Time::HiRes extension
+ext/Time/HiRes/typemap         Time::HiRes extension
 ext/Unicode/Normalize/Changes  Unicode::Normalize
 ext/Unicode/Normalize/Makefile.PL      Unicode::Normalize
 ext/Unicode/Normalize/mkheader Unicode::Normalize
@@ -808,6 +815,7 @@ hints/openbsd.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/os400.sh                 Hints for named architecture
 hints/posix-bc.sh              Hints for named architecture
 hints/powerux.sh               Hints for named architecture
 hints/qnx.sh                   Hints for named architecture
@@ -1242,8 +1250,8 @@ lib/Math/BigInt/t/constant.t      Test Math::BigInt/BigFloat under :constant
 lib/Math/BigInt/t/downgrade.t  Test if use Math::BigInt(); under downgrade works
 lib/Math/BigInt/t/inf_nan.t    Special tests for inf and NaN handling
 lib/Math/BigInt/t/isa.t                Test for Math::BigInt inheritance
-lib/Math/BigInt/t/mbimbf.inc   Actual BigInt/BigFloat accuracy, precicion and fallback, round_mode tests
-lib/Math/BigInt/t/mbimbf.t     BigInt/BigFloat accuracy, precicion and fallback, round_mode
+lib/Math/BigInt/t/mbimbf.inc   Actual BigInt/BigFloat accuracy, precision and fallback, round_mode tests
+lib/Math/BigInt/t/mbimbf.t     BigInt/BigFloat accuracy, precision and fallback, round_mode
 lib/Math/BigInt/t/mbi_rand.t   Test Math::BigInt randomly
 lib/Math/BigInt/t/require.t    Test if require Math::BigInt works
 lib/Math/BigInt/t/sub_mbf.t    Empty subclass test of BigFloat
@@ -1328,14 +1336,18 @@ lib/Net/NNTP.pm                 libnet
 lib/Net/Ping.pm                        Hello, anybody home?
 lib/Net/Ping/Changes           Net::Ping
 lib/Net/Ping/README            Net::Ping
-lib/Net/Ping/t/100_load.t              Ping Net::Ping
-lib/Net/Ping/t/110_icmp_inst.t         Ping Net::Ping
-lib/Net/Ping/t/120_udp_inst.t          Ping Net::Ping
-lib/Net/Ping/t/130_tcp_inst.t          Ping Net::Ping
+lib/Net/Ping/t/100_load.t      Ping Net::Ping
+lib/Net/Ping/t/110_icmp_inst.t Ping Net::Ping
+lib/Net/Ping/t/120_udp_inst.t  Ping Net::Ping
+lib/Net/Ping/t/130_tcp_inst.t  Ping Net::Ping
 lib/Net/Ping/t/140_stream_inst.t       Ping Net::Ping
-lib/Net/Ping/t/200_ping_tcp.t          Ping Net::Ping
-lib/Net/Ping/t/250_ping_hires.t                Ping Net::Ping
+lib/Net/Ping/t/150_syn_inst.t  Ping Net::Ping
+lib/Net/Ping/t/200_ping_tcp.t  Ping Net::Ping
+lib/Net/Ping/t/250_ping_hires.t        Ping Net::Ping
 lib/Net/Ping/t/300_ping_stream.t       Ping Net::Ping
+lib/Net/Ping/t/300_ping_stream.t       Ping Net::Ping
+lib/Net/Ping/t/400_ping_syn.t  Ping Net::Ping
+lib/Net/Ping/t/450_service.t   Ping Net::Ping
 lib/Net/POP3.pm                        libnet
 lib/Net/protoent.pm            By-name interface to Perl's builtin getproto*
 lib/Net/protoent.t             See if Net::protoent works
@@ -1609,6 +1621,7 @@ lib/Unicode/Collate.pm            Unicode::Collate
 lib/Unicode/Collate/Changes    Unicode::Collate
 lib/Unicode/Collate/keys.txt   Unicode::Collate
 lib/Unicode/Collate/README     Unicode::Collate
+lib/Unicode/Collate/t/index.t  Unicode::Collate
 lib/Unicode/Collate/t/test.t   Unicode::Collate
 lib/Unicode/README             Explanation what happened to lib/unicode.
 lib/Unicode/UCD.pm             Unicode character database
@@ -1950,7 +1963,9 @@ lib/utf8.t                        See if utf8 operations work
 lib/utf8_heavy.pl              Support routines for utf8 pragma
 lib/validate.pl                        Perl library supporting wholesale file mode validation
 lib/vars.pm                    Declare pseudo-imported global variables
-lib/vars.t                     See if "use vars" work
+lib/vars.t                     See if "use vars" works
+lib/version.pm                 Support for version objects
+lib/version.t                  Tests for version objects
 lib/vmsish.pm                  Control VMS-specific behavior of Perl core
 lib/vmsish.t                   Tests for vmsish.pm
 lib/warnings.pm                        For "use warnings"
@@ -2043,7 +2058,7 @@ numeric.c                 Miscellaneous numeric conversion routines
 op.c                           Opcode syntax tree code
 op.h                           Opcode syntax tree header
 opcode.h                       Automatically generated opcode header
-opcode.pl                      Opcode header generatore
+opcode.pl                      Opcode header generator
 opnames.h                      Automatically generated opcode header
 os2/Changes                    Changelog for OS/2 port
 os2/diff.configure             Patches to Configure
@@ -2101,6 +2116,8 @@ os2/os2_base.t                    Additional tests for builtin methods
 os2/perl2cmd.pl                        Corrects installed binaries under OS/2
 os2/perlrexx.c                 Support perl interpreter embedded in REXX
 patchlevel.h                   The current patch level of perl
+pad.c                          Scratchpad functions
+pad.h                          Scratchpad headers
 perl.c                         main()
 perl.h                         Global declarations
 perlapi.c                      Perl API functions
@@ -2134,7 +2151,7 @@ plan9/setup.rc                    Plan9 port: script for easy build+install
 plan9/versnum                  Plan9 port: script to print version number
 pod/buildtoc.PL                        generate buildtoc which generates perltoc.pod
 pod/checkpods.PL               Tool to check for common errors in pods
-pod/Makefile.SH                        generate Makefile whichs makes pods into something else
+pod/Makefile.SH                        generate Makefile which makes pods into something else
 pod/perl.pod                   Top level perl documentation
 pod/perl5004delta.pod          Changes from 5.003 to 5.004
 pod/perl5005delta.pod          Changes from 5.004 to 5.005
@@ -2143,6 +2160,7 @@ pod/perl56delta.pod               Changes from 5.005 to 5.6
 pod/perl570delta.pod           Changes from 5.6 to 5.7.0
 pod/perl571delta.pod           Changes from 5.7.0 to 5.7.1
 pod/perl572delta.pod           Changes from 5.7.1 to 5.7.2
+pod/perl573delta.pod           Changes from 5.7.2 to 5.7.3
 pod/perl58delta.pod            Changes from 5.6 to 5.8.0
 pod/perlapi.pod                        Perl API documentation (autogenerated)
 pod/perlapio.pod               PerlIO IO API info
@@ -2179,7 +2197,7 @@ pod/perlfunc.pod          Function info
 pod/perlguts.pod               Internals info
 pod/perlhack.pod               Perl hackers guide
 pod/perlhist.pod               Perl history info
-pod/perlintern.pod             Perl internal function docs (autogenrated)
+pod/perlintern.pod             Perl internal function docs (autogenerated)
 pod/perlintro.pod              Perl introduction for beginners
 pod/perliol.pod                        Internals of PerlIO with layers.
 pod/perlipc.pod                        IPC info
@@ -2295,6 +2313,7 @@ README.mpeix              Notes about MPE/iX port
 README.netware         Notes about NetWare port
 README.os2             Notes about OS/2 port
 README.os390           Notes about OS/390 (nee MVS) port
+README.os400           Notes about OS/400 port
 README.plan9           Notes about Plan9 port
 README.qnx             Notes about QNX port
 README.solaris         Notes about Solaris port
@@ -2313,6 +2332,8 @@ regcomp.c                 Regular expression compiler
 regcomp.h                      Private declarations for above
 regcomp.pl                     Builder of regnodes.h
 regcomp.sym                    Data for regnodes.h
+regen.pl                       Common file routines for generator scripts
+regen_headers.pl               Run all scripts that (re)generate files
 regexec.c                      Regular expression evaluator
 regexp.h                       Public declarations for the above
 regnodes.h                     Description of nodes of RE engine
@@ -2342,13 +2363,15 @@ t/comp/cpp.t                    See if C preprocessor works
 t/comp/decl.t                  See if declarations work
 t/comp/hints.t                 See if %^H works
 t/comp/multiline.t             See if multiline strings work
+t/comp/our.t                   Tests for our declaration
 t/comp/package.t               See if packages work
+t/comp/parser.t                        See if the parser works in edge cases
 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/script.t                        See if script invocation works
 t/comp/term.t                  See if more terms work
-t/comp/use.t                   See if pragmas work
+t/comp/use.t                   See if pragmata work
 t/harness                      Finer diagnostics from test suite
 t/io/argv.t                    See if ARGV stuff works
 t/io/binmode.t                 See if binmode() works
@@ -2638,6 +2661,7 @@ t/run/runenv.t                    Test if perl honors its environment variables.
 t/run/switcha.t                        Test the -a switch
 t/run/switches.t               Tests for the other switches
 t/run/switchF.t                        Test the -F switch
+t/run/switchI.t                        Test the -I switch
 t/run/switchn.t                        Test the -n switch
 t/run/switchp.t                        Test the -p switch
 t/run/switchPx.aux             Data for switchPx.t
@@ -2653,6 +2677,10 @@ t/uni/fold.t                     See if Unicode folding works
 t/uni/lower.t                  See if Unicode casing works
 t/uni/sprintf.t                        See if Unicode sprintf works
 t/uni/title.t                  See if Unicode casing works
+t/uni/tr_7jis.t                        See if Unicode tr/// works
+t/uni/tr_eucjp.t               See if Unicode tr/// works
+t/uni/tr_sjis.t                        See if Unicode tr/// works
+t/uni/tr_utf8.t                        See if Unicode tr/// works
 t/uni/upper.t                  See if Unicode casing works
 t/win32/longpath.t             Test if Win32::GetLongPathName() works
 t/win32/system.t               See if system works in Win*
@@ -2699,7 +2727,7 @@ 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/filespec.t             See if VMS::Filespec funtions work
+vms/ext/filespec.t             See if VMS::Filespec functions work
 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
@@ -2818,7 +2846,7 @@ writemain.SH                      Generate perlmain.c from miniperlmain.c+extensions
 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/a2p.y                      A yacc grammar for awk
 x2p/a2py.c                     Awk compiler, sort of
 x2p/cflags.SH                  A script that emits C compilation flags per file
 x2p/EXTERN.h                   Same as above