summaryrefslogtreecommitdiff
path: root/embed.pl
diff options
context:
space:
mode:
authorAndy Dougherty <doughera@lafcol.lafayette.edu>1995-06-22 00:43:21 +0000
committerAndy Dougherty <doughera@lafcol.lafayette.edu>1995-06-22 00:43:21 +0000
commite50aee73b3d4c555c37e4b4a16694765fb16c887 (patch)
tree46b50fff5f53a49b55d0ff3f4e1816e427264375 /embed.pl
parent4aa0a1f7324b8447469670a1b2427c3ac2428bae (diff)
downloadperl-e50aee73b3d4c555c37e4b4a16694765fb16c887.tar.gz
This is my patch patch.1m for perl5.001.
To apply, change to your perl directory, run the command above, then apply with patch -p1 -N < thispatch. Highlights of this patch include: 1. Fixes for $sitelib, $d_stdio_ptr_lval, and $d_stdio_cnt_lval when config.sh is re-used. 2. Move embed.h, keywords.h, and opcode.h dependencies to a special regen_headers target that is ordinarily not used. This is now analogous to the run_byacc target. As a cosmetic side-effect, I transliterated embed_h.sh into embed.pl so that it can run on non-unix systems as well. 3. Tests for gdbm_{sync,exists,setopt} in GDBM_File (needed for Slackware 2.1). For good measure, I've also thrown in the following patches I pulled off the list, mostly unmodified from the originals. 1. Larry's "unofficial official" fix for the subroutine array context problem. 2. Tim's __DATA__ patch. (I kept forgetting about this one.) 3. Malcom's USE_OP_MASK patch to pave the way for his Safe extension. 4. Spider's suggested renaming of regexec to pregexec and regcomp to pregcomp to avoid conflicts with POSIX symbols on Digital Unix. (I only added a brief explanatory comment to the relevant .c files.) 5. Spider's installperl patch to avoid installing *.orig and and the .exists files. (I changed this a little to include patch's ~ suffix, which is used on systems with short file names (in some versions of patch)). 6. Raphael's "safe_unlink" patch to installperl, in case a copy of perl is currently runniung. 7. xsubpp 1.9. 8. Tim's lib.pm module (with patched corrected spelling of 2nd :-). 9. Tim's Exporter module version patches. 10. Tim's MakeMaker patches for make test when LINKTYPE=static. 11. Randal's pod2html patches. 12. Spider's "picky compiler" patches for x2p/util.[ch] 13. Paul's updated source filtering patches. Patch and enjoy. I hope nothing breaks :-). Andy Dougherty doughera@lafcol.lafayette.edu Dept. of Physics Lafayette College, Easton PA 18042
Diffstat (limited to 'embed.pl')
-rw-r--r--embed.pl67
1 files changed, 67 insertions, 0 deletions
diff --git a/embed.pl b/embed.pl
new file mode 100644
index 0000000000..118b911c71
--- /dev/null
+++ b/embed.pl
@@ -0,0 +1,67 @@
+#!/usr/bin/perl
+
+open(EM, ">embed.h") || die "Can't create embed.h: $!\n";
+
+print EM <<'END';
+/* This file is derived from global.sym and interp.sym */
+
+/* (Doing namespace management portably in C is really gross.) */
+
+#ifdef EMBED
+
+/* globals we need to hide from the world */
+END
+
+open(GL, "<global.sym") || die "Can't open global.sym: $!\n";
+
+while(<GL>) {
+ s/[ \t]*#.*//; # Delete comments.
+ next unless /\S/;
+ s/(.*)/#define $1\t\tPerl_$1/;
+ s/(................\t)\t/$1/;
+ print EM $_;
+}
+
+close(GL) || warn "Can't close global.sym: $!\n";
+
+print EM <<'END';
+
+#endif /* EMBED */
+
+/* Put interpreter specific symbols into a struct? */
+
+#ifdef MULTIPLICITY
+
+END
+
+open(INT, "<interp.sym") || die "Can't open interp.sym: $!\n";
+while (<INT>) {
+ s/[ \t]*#.*//; # Delete comments.
+ next unless /\S/;
+ s/(.*)/#define $1\t\t(curinterp->I$1)/;
+ s/(................\t)\t/$1/;
+ print EM $_;
+}
+close(INT) || warn "Can't close interp.sym: $!\n";
+
+print EM <<'END';
+
+#else /* not multiple, so translate interpreter symbols the other way... */
+
+END
+
+open(INT, "<interp.sym") || die "Can't open interp.sym: $!\n";
+while (<INT>) {
+ s/[ \t]*#.*//; # Delete comments.
+ next unless /\S/;
+ s/(.*)/#define I$1\t\t$1/;
+ s/(................\t)\t/$1/;
+ print EM $_;
+}
+close(INT) || warn "Can't close interp.sym: $!\n";
+
+print EM <<'END';
+
+#endif /* MULTIPLICITY */
+END
+