This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Eliminate global.sym, as makedef.pl can generate it internally.
authorNicholas Clark <nick@ccl4.org>
Sun, 21 Aug 2011 15:37:41 +0000 (17:37 +0200)
committerNicholas Clark <nick@ccl4.org>
Thu, 25 Aug 2011 09:34:37 +0000 (11:34 +0200)
global.sym was a file listing the exported symbols, generated by regen/embed.pl
from embed.fnc and regen/opcodes, which was only used by makedef.pl

Move the code that generates global.sym from regen/embed.pl to makedef.pl,
and thereby eliminate the need to ship a 907 line generated file.

17 files changed:
Cross/Makefile-cross-SH
MANIFEST
Makefile.SH
NetWare/Makefile
Porting/makerel
Porting/pumpkin.pod
embed.fnc
global.sym [deleted file]
globvar.sym
makedef.pl
regen/embed.pl
t/porting/regen.t
util.c
vms/descrip_mms.template
win32/Makefile
win32/Makefile.ce
win32/makefile.mk

index 0ee2cb0..bb6752f 100644 (file)
@@ -836,15 +836,14 @@ perly.c: perly.y
 perly.h: perly.y
        -@sh -c true
 
-SYM  = global.sym globvar.sym perlio.sym
+SYM  = globvar.sym perlio.sym
 
 SYMH = perlvars.h intrpvar.h
 
 CHMOD_W = chmod +w
 
 # The following files are generated automatically
-#      embed.pl:       proto.h embed.h embedvar.h global.sym
-#                      perlapi.h perlapi.c 
+#      embed.pl:       proto.h embed.h embedvar.h perlapi.h perlapi.c
 #      opcode.pl:      opcode.h opnames.h pp_proto.h
 #      regcomp.pl:     regnodes.h
 #      warnings.pl:    warnings.h lib/warnings.pm
@@ -855,10 +854,8 @@ CHMOD_W = chmod +w
 # with your existing copy of perl
 # (make regen_headers is kept for backwards compatibility)
 
-AUTOGEN_FILES = opcode.h opnames.h pp_proto.h proto.h \
-               embed.h embedvar.h global.sym \
-               perlapi.h perlapi.c regnodes.h \
-               warnings.h lib/warnings.pm
+AUTOGEN_FILES = opcode.h opnames.h pp_proto.h proto.h embed.h embedvar.h \
+               perlapi.h perlapi.c regnodes.h warnings.h lib/warnings.pm
 
 .PHONY: regen_headers regen_all
 
index 9592a50..d082047 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -3807,7 +3807,6 @@ form.h                            Public declarations for formats
 generate_uudmap.c              Generate uudmap.h, the uuencode decoding map
 genpacksizetables.pl           Generate the size tables for pack/unpack
 globals.c                      File to declare global symbols (for shared library)
-global.sym                     Symbols that need hiding when embedded
 globvar.sym                    Global variables that need hiding when embedded
 gv.c                           Glob value code
 gv.h                           Glob value header
@@ -4635,7 +4634,7 @@ regcomp.c                 Regular expression compiler
 regcomp.h                      Private declarations for above
 regcomp.sym                    Data for regnodes.h
 regen/embed_lib.pl             Reads embed.fnc and regen/opcodes
-regen/embed.pl                 Produces {embed,embedvar,proto}.h, global.sym
+regen/embed.pl                 Produces {embed,embedvar,proto}.h
 regen/keywords.pl              Program to write keywords.h
 regen/mg_vtable.pl             generate mg_vtable.h
 regen/mk_PL_charclass.pl       Populate the PL_charclass table
index f16bd19..3119f61 100755 (executable)
@@ -1120,15 +1120,14 @@ perly.c: perly.y
 perly.h: perly.y
        -@sh -c true
 
-SYM  = global.sym globvar.sym perlio.sym
+SYM  = globvar.sym perlio.sym
 
 SYMH = perlvars.h intrpvar.h
 
 CHMOD_W = chmod +w
 
 # The following files are generated automatically
-#      embed.pl:       proto.h embed.h embedvar.h global.sym
-#                      perlapi.h perlapi.c 
+#      embed.pl:       proto.h embed.h embedvar.h perlapi.h perlapi.c
 #      opcode.pl:      opcode.h opnames.h pp_proto.h
 #      regcomp.pl:     regnodes.h
 #      warnings.pl:    warnings.h lib/warnings.pm
@@ -1139,10 +1138,8 @@ CHMOD_W = chmod +w
 # with your existing copy of perl
 # (make regen_headers is kept for backwards compatibility)
 
-AUTOGEN_FILES = opcode.h opnames.h pp_proto.h proto.h \
-               embed.h embedvar.h global.sym \
-               perlapi.h perlapi.c regnodes.h \
-               warnings.h lib/warnings.pm
+AUTOGEN_FILES = opcode.h opnames.h pp_proto.h proto.h embed.h embedvar.h \
+               perlapi.h perlapi.c regnodes.h warnings.h lib/warnings.pm
 
 .PHONY: regen_headers regen_all
 
index 43ed978..9074787 100644 (file)
@@ -1061,7 +1061,7 @@ $(PERLIMPLIB): perllib.imp
 #      $(XCOPY) $(PERLIMPLIB) $(COREDIR)
 #      @echo $(PERLIMPLIB) Done
 
-perllib.imp : $(MINIPERL) $(CONFIGPM) ..\global.sym ..\makedef.pl
+perllib.imp : $(MINIPERL) $(CONFIGPM) ..\embed.fnc ..\makedef.pl
 #      $(MINIPERL) -w ..\makedef.pl PLATFORM=netware FILETYPE=def $(ADD_BUILDOPT) \
 #          CCTYPE=$(CCTYPE) TARG_DIR=..\ > perllib.def
        @echo (Perl) > perl.imp
index 13bcf4a..0f94b88 100755 (executable)
@@ -139,7 +139,6 @@ my @writables = qw(
     proto.h
     embed.h
     embedvar.h
-    global.sym
     overload.c
     overload.h
     mg_vtable.h
index 69fce6b..269311a 100644 (file)
@@ -450,14 +450,14 @@ and effort by manually running C<make regen_headers> myself rather
 than answering all the questions and complaints about the failing
 command.
 
-=head2 global.sym, and perlio.sym
+=head2 globvar.sym, and perlio.sym
 
 Make sure these files are up-to-date.  Read the comments in these
 files and in F<perl_exp.SH> to see what to do.
 
 =head2 Binary compatibility
 
-If you do change F<global.sym> think carefully about
+If you do change F<embed.fnc> think carefully about
 what you are doing.  To the extent reasonable, we'd like to maintain
 source and binary compatibility with older releases of perl.  That way,
 extensions built under one version of perl will continue to work with
@@ -814,8 +814,8 @@ conflicting needs of dynamic loading and namespace protection.
 
 For dynamic loading to work on AIX (and VMS) we need to provide a list
 of symbols to be exported.  This is done by the script F<perl_exp.SH>,
-which reads F<global.sym>.  Thus, the C<pause>
-symbol would have to be added to F<global.sym>  So far, so good.
+which reads F<embed.fnc>.  Thus, the C<pause>
+symbol would have to be added to F<embed.fnc>  So far, so good.
 
 On the other hand, one of the goals of Perl5 is to make it easy to
 either extend or embed perl and link it with other libraries.  This
@@ -823,9 +823,9 @@ means we have to be careful to keep the visible namespace "clean".
 That is, we don't want perl's global variables to conflict with
 those in the other application library.  Although this work is still
 in progress, the way it is currently done is via the F<embed.h> file.
-This file is built from the F<global.sym> file,
+This file is built from the F<embed.fnc> file,
 since those files already list the globally visible symbols.  If we
-had added C<pause> to global.sym, then F<embed.h> would contain the
+had added C<pause> to F<embed.fnc>, then F<embed.h> would contain the
 line
 
     #define pause      Perl_pause
@@ -872,7 +872,7 @@ My explanatory comment in patch 5.003_05 said:
      applies to SCO.  This shows the perils of having internal
      functions with the same name as external library functions :-).
 
-Now, we can safely put C<my_chsize> in F<global.sym>, export it, and
+Now, we can safely put C<my_chsize> in C<embed.fnc>, export it, and
 hide it with F<embed.h>.
 
 To be consistent with what I did for C<pause>, I probably should have
@@ -942,7 +942,7 @@ then in some file (e.g. F<util.c> or F<doio.c>) do
     #endif
 
 Alternatively, we could just always use C<chsize> everywhere and move
-C<chsize> from F<global.sym> to the end of F<perl_exp.SH>.  That would
+C<chsize> from F<embed.fnc> to the end of F<perl_exp.SH>.  That would
 probably be fine as long as our C<chsize> function agreed with all the
 C<chsize> function prototypes in the various systems we'll be using.
 As long as the prototypes in actual use don't vary that much, this is
index f367bdf..be472ce 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
@@ -12,7 +12,7 @@
 :
 :   A  Member of public API:
 :
-:         add entry to global.sym (unless x or m);
+:         add entry to the list of exported symbols (unless x or m);
 :         any doc entry goes in perlapi.pod rather than perlintern.pod
 :         makes '#define foo Perl_foo' scope not just for PERL_CORE/PERL_EXT
 :
@@ -23,7 +23,7 @@
 :   b  Binary backward compatibility; function is a macro
 :      but has also Perl_ implementation (which is exported):
 :
-:         add entry to global.sym;
+:         add entry to the list of exported symbols;
 :         don't define PERL_ARGS_ASSERT_FOO
 :
 :   D  Function is deprecated:
@@ -59,7 +59,7 @@
 :   m  Implemented as a macro:
 :
 :         suppress proto.h entry
-:         suppress global.sym entry
+:         suppress entry in the list of exported symbols
 :         suppress embed.h entry
 :
 :   n  Has no implicit interpreter/thread context argument:
 :
 :   X  Explicitly exported:
 :
-:         add entry to global.sym, unless x or m
+:         add entry to the list of exported symbols, unless x or m
 :
 :   x  Not exported
 :
-:         suppress entry in global.sym
+:         suppress entry in the list of exported symbols
 :
 : (see also L<perlguts/Internal Functions> for those flags.)
 :
diff --git a/global.sym b/global.sym
deleted file mode 100644 (file)
index 0a27f29..0000000
+++ /dev/null
@@ -1,907 +0,0 @@
-# -*- buffer-read-only: t -*-
-#
-#    global.sym
-#
-#    Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-#    2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 by Larry Wall and others
-#
-#    You may distribute under the terms of either the GNU General Public
-#    License or the Artistic License, as specified in the README file.
-#
-# !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
-# This file is built by regen/embed.pl from data in embed.fnc,
-# regen/embed.pl, regen/opcodes, intrpvar.h and perlvars.h.
-# Any changes made here will be lost!
-#
-# Edit those files and run 'make regen_headers' to effect changes.
-
-Perl_Gv_AMupdate
-Perl_PerlIO_context_layers
-Perl__to_uni_fold_flags
-Perl__to_utf8_fold_flags
-Perl_amagic_call
-Perl_amagic_deref_call
-Perl_apply_attrs_string
-Perl_atfork_lock
-Perl_atfork_unlock
-Perl_av_arylen_p
-Perl_av_clear
-Perl_av_delete
-Perl_av_exists
-Perl_av_extend
-Perl_av_fetch
-Perl_av_fill
-Perl_av_iter_p
-Perl_av_len
-Perl_av_make
-Perl_av_pop
-Perl_av_push
-Perl_av_reify
-Perl_av_shift
-Perl_av_store
-Perl_av_undef
-Perl_av_unshift
-Perl_block_gimme
-Perl_blockhook_register
-Perl_bytes_cmp_utf8
-Perl_bytes_from_utf8
-Perl_bytes_to_utf8
-Perl_call_argv
-Perl_call_atexit
-Perl_call_list
-Perl_call_method
-Perl_call_pv
-Perl_call_sv
-Perl_caller_cx
-Perl_calloc
-Perl_cast_i32
-Perl_cast_iv
-Perl_cast_ulong
-Perl_cast_uv
-Perl_ck_entersub_args_list
-Perl_ck_entersub_args_proto
-Perl_ck_entersub_args_proto_or_list
-Perl_ck_warner
-Perl_ck_warner_d
-Perl_ckwarn
-Perl_ckwarn_d
-Perl_cop_fetch_label
-Perl_cop_store_label
-Perl_croak
-Perl_croak_no_modify
-Perl_croak_sv
-Perl_croak_xs_usage
-Perl_custom_op_desc
-Perl_custom_op_name
-Perl_custom_op_register
-Perl_custom_op_xop
-Perl_cv_clone
-Perl_cv_const_sv
-Perl_cv_get_call_checker
-Perl_cv_set_call_checker
-Perl_cv_undef
-Perl_cvgv_set
-Perl_cvstash_set
-Perl_cx_dump
-Perl_cxinc
-Perl_deb
-Perl_debop
-Perl_debprofdump
-Perl_debstack
-Perl_debstackptrs
-Perl_delimcpy
-Perl_despatch_signals
-Perl_die
-Perl_die_sv
-Perl_do_aexec
-Perl_do_binmode
-Perl_do_close
-Perl_do_gv_dump
-Perl_do_gvgv_dump
-Perl_do_hv_dump
-Perl_do_join
-Perl_do_magic_dump
-Perl_do_op_dump
-Perl_do_open
-Perl_do_open9
-Perl_do_openn
-Perl_do_pmop_dump
-Perl_do_sprintf
-Perl_do_sv_dump
-Perl_doing_taint
-Perl_doref
-Perl_dounwind
-Perl_dowantarray
-Perl_dump_all
-Perl_dump_eval
-Perl_dump_form
-Perl_dump_indent
-Perl_dump_packsubs
-Perl_dump_sub
-Perl_dump_vindent
-Perl_emulate_cop_io
-Perl_eval_pv
-Perl_eval_sv
-Perl_fbm_compile
-Perl_fbm_instr
-Perl_filter_add
-Perl_filter_del
-Perl_filter_read
-Perl_find_runcv
-Perl_find_rundefsv
-Perl_find_rundefsvoffset
-Perl_foldEQ
-Perl_foldEQ_latin1
-Perl_foldEQ_locale
-Perl_foldEQ_utf8_flags
-Perl_form
-Perl_free_tmps
-Perl_get_av
-Perl_get_context
-Perl_get_cv
-Perl_get_cvn_flags
-Perl_get_hv
-Perl_get_op_descs
-Perl_get_op_names
-Perl_get_ppaddr
-Perl_get_re_arg
-Perl_get_sv
-Perl_get_vtbl
-Perl_getcwd_sv
-Perl_gp_free
-Perl_gp_ref
-Perl_grok_bin
-Perl_grok_hex
-Perl_grok_number
-Perl_grok_numeric_radix
-Perl_grok_oct
-Perl_gv_AVadd
-Perl_gv_HVadd
-Perl_gv_IOadd
-Perl_gv_add_by_type
-Perl_gv_autoload4
-Perl_gv_check
-Perl_gv_const_sv
-Perl_gv_dump
-Perl_gv_efullname
-Perl_gv_efullname3
-Perl_gv_efullname4
-Perl_gv_fetchfile
-Perl_gv_fetchfile_flags
-Perl_gv_fetchmeth
-Perl_gv_fetchmeth_autoload
-Perl_gv_fetchmethod
-Perl_gv_fetchmethod_autoload
-Perl_gv_fetchmethod_flags
-Perl_gv_fetchpv
-Perl_gv_fetchpvn_flags
-Perl_gv_fetchsv
-Perl_gv_fullname
-Perl_gv_fullname3
-Perl_gv_fullname4
-Perl_gv_handler
-Perl_gv_init
-Perl_gv_name_set
-Perl_gv_stashpv
-Perl_gv_stashpvn
-Perl_gv_stashsv
-Perl_gv_try_downgrade
-Perl_hv_clear
-Perl_hv_clear_placeholders
-Perl_hv_common
-Perl_hv_common_key_len
-Perl_hv_copy_hints_hv
-Perl_hv_delayfree_ent
-Perl_hv_delete
-Perl_hv_delete_ent
-Perl_hv_eiter_p
-Perl_hv_eiter_set
-Perl_hv_exists
-Perl_hv_exists_ent
-Perl_hv_fetch
-Perl_hv_fetch_ent
-Perl_hv_fill
-Perl_hv_free_ent
-Perl_hv_iterinit
-Perl_hv_iterkey
-Perl_hv_iterkeysv
-Perl_hv_iternext
-Perl_hv_iternext_flags
-Perl_hv_iternextsv
-Perl_hv_iterval
-Perl_hv_ksplit
-Perl_hv_magic
-Perl_hv_name_set
-Perl_hv_placeholders_get
-Perl_hv_placeholders_p
-Perl_hv_placeholders_set
-Perl_hv_riter_p
-Perl_hv_riter_set
-Perl_hv_scalar
-Perl_hv_store
-Perl_hv_store_ent
-Perl_hv_store_flags
-Perl_hv_undef_flags
-Perl_init_i18nl10n
-Perl_init_i18nl14n
-Perl_init_stacks
-Perl_init_tm
-Perl_instr
-Perl_is_ascii_string
-Perl_is_lvalue_sub
-Perl_is_uni_alnum
-Perl_is_uni_alnum_lc
-Perl_is_uni_alpha
-Perl_is_uni_alpha_lc
-Perl_is_uni_ascii
-Perl_is_uni_ascii_lc
-Perl_is_uni_cntrl
-Perl_is_uni_cntrl_lc
-Perl_is_uni_digit
-Perl_is_uni_digit_lc
-Perl_is_uni_graph
-Perl_is_uni_graph_lc
-Perl_is_uni_idfirst
-Perl_is_uni_idfirst_lc
-Perl_is_uni_lower
-Perl_is_uni_lower_lc
-Perl_is_uni_print
-Perl_is_uni_print_lc
-Perl_is_uni_punct
-Perl_is_uni_punct_lc
-Perl_is_uni_space
-Perl_is_uni_space_lc
-Perl_is_uni_upper
-Perl_is_uni_upper_lc
-Perl_is_uni_xdigit
-Perl_is_uni_xdigit_lc
-Perl_is_utf8_X_L
-Perl_is_utf8_X_LV
-Perl_is_utf8_X_LVT
-Perl_is_utf8_X_LV_LVT_V
-Perl_is_utf8_X_T
-Perl_is_utf8_X_V
-Perl_is_utf8_X_begin
-Perl_is_utf8_X_extend
-Perl_is_utf8_X_non_hangul
-Perl_is_utf8_X_prepend
-Perl_is_utf8_alnum
-Perl_is_utf8_alpha
-Perl_is_utf8_ascii
-Perl_is_utf8_char
-Perl_is_utf8_cntrl
-Perl_is_utf8_digit
-Perl_is_utf8_graph
-Perl_is_utf8_idcont
-Perl_is_utf8_idfirst
-Perl_is_utf8_lower
-Perl_is_utf8_mark
-Perl_is_utf8_perl_space
-Perl_is_utf8_perl_word
-Perl_is_utf8_posix_digit
-Perl_is_utf8_print
-Perl_is_utf8_punct
-Perl_is_utf8_space
-Perl_is_utf8_string
-Perl_is_utf8_string_loc
-Perl_is_utf8_string_loclen
-Perl_is_utf8_upper
-Perl_is_utf8_xdigit
-Perl_is_utf8_xidcont
-Perl_is_utf8_xidfirst
-Perl_leave_scope
-Perl_lex_bufutf8
-Perl_lex_discard_to
-Perl_lex_grow_linestr
-Perl_lex_next_chunk
-Perl_lex_peek_unichar
-Perl_lex_read_space
-Perl_lex_read_to
-Perl_lex_read_unichar
-Perl_lex_start
-Perl_lex_stuff_pv
-Perl_lex_stuff_pvn
-Perl_lex_stuff_sv
-Perl_lex_unstuff
-Perl_load_module
-Perl_looks_like_number
-Perl_magic_dump
-Perl_malloc
-Perl_markstack_grow
-Perl_mess
-Perl_mess_sv
-Perl_mfree
-Perl_mg_clear
-Perl_mg_copy
-Perl_mg_find
-Perl_mg_findext
-Perl_mg_free
-Perl_mg_free_type
-Perl_mg_get
-Perl_mg_length
-Perl_mg_magical
-Perl_mg_set
-Perl_mg_size
-Perl_mini_mktime
-Perl_moreswitches
-Perl_mro_get_from_name
-Perl_mro_get_linear_isa
-Perl_mro_get_private_data
-Perl_mro_meta_init
-Perl_mro_method_changed_in
-Perl_mro_register
-Perl_mro_set_mro
-Perl_mro_set_private_data
-Perl_my_atof
-Perl_my_atof2
-Perl_my_dirfd
-Perl_my_exit
-Perl_my_failure_exit
-Perl_my_fflush_all
-Perl_my_fork
-Perl_my_lstat
-Perl_my_lstat_flags
-Perl_my_popen_list
-Perl_my_setenv
-Perl_my_snprintf
-Perl_my_socketpair
-Perl_my_stat
-Perl_my_stat_flags
-Perl_my_strftime
-Perl_my_vsnprintf
-Perl_newANONATTRSUB
-Perl_newANONHASH
-Perl_newANONLIST
-Perl_newANONSUB
-Perl_newASSIGNOP
-Perl_newATTRSUB
-Perl_newAV
-Perl_newAVREF
-Perl_newBINOP
-Perl_newCONDOP
-Perl_newCONSTSUB
-Perl_newCVREF
-Perl_newFOROP
-Perl_newGIVENOP
-Perl_newGVOP
-Perl_newGVREF
-Perl_newGVgen
-Perl_newHV
-Perl_newHVREF
-Perl_newHVhv
-Perl_newIO
-Perl_newLISTOP
-Perl_newLOGOP
-Perl_newLOOPEX
-Perl_newLOOPOP
-Perl_newNULLLIST
-Perl_newOP
-Perl_newPMOP
-Perl_newPROG
-Perl_newPVOP
-Perl_newRANGE
-Perl_newRV
-Perl_newRV_noinc
-Perl_newSLICEOP
-Perl_newSTATEOP
-Perl_newSUB
-Perl_newSV
-Perl_newSVOP
-Perl_newSVREF
-Perl_newSV_type
-Perl_newSVhek
-Perl_newSViv
-Perl_newSVnv
-Perl_newSVpv
-Perl_newSVpv_share
-Perl_newSVpvf
-Perl_newSVpvn
-Perl_newSVpvn_flags
-Perl_newSVpvn_share
-Perl_newSVrv
-Perl_newSVsv
-Perl_newSVuv
-Perl_newUNOP
-Perl_newWHENOP
-Perl_newWHILEOP
-Perl_newXS
-Perl_newXS_flags
-Perl_new_collate
-Perl_new_ctype
-Perl_new_numeric
-Perl_new_stackinfo
-Perl_new_version
-Perl_new_warnings_bitfield
-Perl_ninstr
-Perl_nothreadhook
-Perl_op_append_elem
-Perl_op_append_list
-Perl_op_clear
-Perl_op_contextualize
-Perl_op_dump
-Perl_op_free
-Perl_op_linklist
-Perl_op_lvalue_flags
-Perl_op_null
-Perl_op_prepend_elem
-Perl_op_refcnt_lock
-Perl_op_refcnt_unlock
-Perl_op_scope
-Perl_pack_cat
-Perl_packlist
-Perl_pad_add_anon
-Perl_pad_add_name_pv
-Perl_pad_add_name_pvn
-Perl_pad_add_name_sv
-Perl_pad_alloc
-Perl_pad_compname_type
-Perl_pad_findmy_pv
-Perl_pad_findmy_pvn
-Perl_pad_findmy_sv
-Perl_pad_new
-Perl_pad_push
-Perl_pad_tidy
-Perl_parse_arithexpr
-Perl_parse_barestmt
-Perl_parse_block
-Perl_parse_fullexpr
-Perl_parse_fullstmt
-Perl_parse_label
-Perl_parse_listexpr
-Perl_parse_stmtseq
-Perl_parse_termexpr
-perl_alloc
-perl_construct
-perl_destruct
-perl_free
-perl_parse
-perl_run
-Perl_pmop_dump
-Perl_pop_scope
-Perl_pregcomp
-Perl_pregexec
-Perl_pregfree
-Perl_pregfree2
-Perl_prescan_version
-Perl_ptr_table_clear
-Perl_ptr_table_fetch
-Perl_ptr_table_free
-Perl_ptr_table_new
-Perl_ptr_table_split
-Perl_ptr_table_store
-Perl_push_scope
-Perl_pv_display
-Perl_pv_escape
-Perl_pv_pretty
-Perl_pv_uni_display
-Perl_qerror
-Perl_re_compile
-Perl_re_intuit_start
-Perl_re_intuit_string
-Perl_realloc
-Perl_ref
-Perl_refcounted_he_chain_2hv
-Perl_refcounted_he_fetch_pv
-Perl_refcounted_he_fetch_pvn
-Perl_refcounted_he_fetch_sv
-Perl_refcounted_he_free
-Perl_refcounted_he_inc
-Perl_refcounted_he_new_pv
-Perl_refcounted_he_new_pvn
-Perl_refcounted_he_new_sv
-Perl_reg_named_buff
-Perl_reg_named_buff_all
-Perl_reg_named_buff_exists
-Perl_reg_named_buff_fetch
-Perl_reg_named_buff_firstkey
-Perl_reg_named_buff_iter
-Perl_reg_named_buff_nextkey
-Perl_reg_named_buff_scalar
-Perl_reg_numbered_buff_fetch
-Perl_reg_numbered_buff_length
-Perl_reg_numbered_buff_store
-Perl_reg_qr_package
-Perl_reg_temp_copy
-Perl_regclass_swash
-Perl_regdump
-Perl_regexec_flags
-Perl_regfree_internal
-Perl_reginitcolors
-Perl_regnext
-Perl_repeatcpy
-Perl_report_uninit
-Perl_require_pv
-Perl_rninstr
-Perl_rsignal
-Perl_rsignal_state
-Perl_runops_debug
-Perl_runops_standard
-Perl_rv2cv_op_cv
-Perl_safesyscalloc
-Perl_safesysfree
-Perl_safesysmalloc
-Perl_safesysrealloc
-Perl_save_I16
-Perl_save_I32
-Perl_save_I8
-Perl_save_adelete
-Perl_save_aelem_flags
-Perl_save_alloc
-Perl_save_aptr
-Perl_save_ary
-Perl_save_bool
-Perl_save_clearsv
-Perl_save_delete
-Perl_save_destructor
-Perl_save_destructor_x
-Perl_save_freeop
-Perl_save_freepv
-Perl_save_freesv
-Perl_save_generic_pvref
-Perl_save_generic_svref
-Perl_save_gp
-Perl_save_hash
-Perl_save_hdelete
-Perl_save_helem_flags
-Perl_save_hints
-Perl_save_hptr
-Perl_save_int
-Perl_save_item
-Perl_save_iv
-Perl_save_list
-Perl_save_long
-Perl_save_mortalizesv
-Perl_save_nogv
-Perl_save_op
-Perl_save_padsv_and_mortalize
-Perl_save_pptr
-Perl_save_pushi32ptr
-Perl_save_pushptr
-Perl_save_pushptrptr
-Perl_save_re_context
-Perl_save_scalar
-Perl_save_set_svflags
-Perl_save_shared_pvref
-Perl_save_sptr
-Perl_save_svref
-Perl_save_vptr
-Perl_savepv
-Perl_savepvn
-Perl_savesharedpv
-Perl_savesharedpvn
-Perl_savesharedsvpv
-Perl_savestack_grow
-Perl_savestack_grow_cnt
-Perl_savesvpv
-Perl_scan_bin
-Perl_scan_hex
-Perl_scan_num
-Perl_scan_oct
-Perl_scan_version
-Perl_scan_vstring
-Perl_screaminstr
-Perl_seed
-Perl_set_context
-Perl_set_numeric_local
-Perl_set_numeric_radix
-Perl_set_numeric_standard
-Perl_setdefout
-Perl_share_hek
-Perl_sortsv
-Perl_sortsv_flags
-Perl_stack_grow
-Perl_start_subparse
-Perl_stashpv_hvname_match
-Perl_str_to_version
-Perl_sv_2bool_flags
-Perl_sv_2cv
-Perl_sv_2io
-Perl_sv_2iv
-Perl_sv_2iv_flags
-Perl_sv_2mortal
-Perl_sv_2nv_flags
-Perl_sv_2pv
-Perl_sv_2pv_flags
-Perl_sv_2pv_nolen
-Perl_sv_2pvbyte
-Perl_sv_2pvbyte_nolen
-Perl_sv_2pvutf8
-Perl_sv_2pvutf8_nolen
-Perl_sv_2uv
-Perl_sv_2uv_flags
-Perl_sv_backoff
-Perl_sv_bless
-Perl_sv_cat_decode
-Perl_sv_catpv
-Perl_sv_catpv_flags
-Perl_sv_catpv_mg
-Perl_sv_catpvf
-Perl_sv_catpvf_mg
-Perl_sv_catpvn
-Perl_sv_catpvn_flags
-Perl_sv_catpvn_mg
-Perl_sv_catsv
-Perl_sv_catsv_flags
-Perl_sv_catsv_mg
-Perl_sv_chop
-Perl_sv_clear
-Perl_sv_cmp
-Perl_sv_cmp_flags
-Perl_sv_cmp_locale
-Perl_sv_cmp_locale_flags
-Perl_sv_compile_2op
-Perl_sv_compile_2op_is_broken
-Perl_sv_copypv
-Perl_sv_dec
-Perl_sv_dec_nomg
-Perl_sv_del_backref
-Perl_sv_derived_from
-Perl_sv_destroyable
-Perl_sv_does
-Perl_sv_dump
-Perl_sv_eq_flags
-Perl_sv_force_normal
-Perl_sv_force_normal_flags
-Perl_sv_free
-Perl_sv_free2
-Perl_sv_gets
-Perl_sv_grow
-Perl_sv_inc
-Perl_sv_inc_nomg
-Perl_sv_insert
-Perl_sv_insert_flags
-Perl_sv_isa
-Perl_sv_isobject
-Perl_sv_iv
-Perl_sv_len
-Perl_sv_len_utf8
-Perl_sv_magic
-Perl_sv_magicext
-Perl_sv_mortalcopy
-Perl_sv_newmortal
-Perl_sv_newref
-Perl_sv_nolocking
-Perl_sv_nosharing
-Perl_sv_nv
-Perl_sv_peek
-Perl_sv_pos_b2u
-Perl_sv_pos_u2b
-Perl_sv_pos_u2b_flags
-Perl_sv_pv
-Perl_sv_pvbyte
-Perl_sv_pvbyten
-Perl_sv_pvbyten_force
-Perl_sv_pvn
-Perl_sv_pvn_force
-Perl_sv_pvn_force_flags
-Perl_sv_pvn_nomg
-Perl_sv_pvutf8
-Perl_sv_pvutf8n
-Perl_sv_pvutf8n_force
-Perl_sv_recode_to_utf8
-Perl_sv_reftype
-Perl_sv_replace
-Perl_sv_report_used
-Perl_sv_reset
-Perl_sv_rvweaken
-Perl_sv_setiv
-Perl_sv_setiv_mg
-Perl_sv_setnv
-Perl_sv_setnv_mg
-Perl_sv_setpv
-Perl_sv_setpv_mg
-Perl_sv_setpvf
-Perl_sv_setpvf_mg
-Perl_sv_setpviv
-Perl_sv_setpviv_mg
-Perl_sv_setpvn
-Perl_sv_setpvn_mg
-Perl_sv_setref_iv
-Perl_sv_setref_nv
-Perl_sv_setref_pv
-Perl_sv_setref_pvn
-Perl_sv_setref_uv
-Perl_sv_setsv
-Perl_sv_setsv_flags
-Perl_sv_setsv_mg
-Perl_sv_setuv
-Perl_sv_setuv_mg
-Perl_sv_taint
-Perl_sv_tainted
-Perl_sv_true
-Perl_sv_uni_display
-Perl_sv_unmagic
-Perl_sv_unmagicext
-Perl_sv_unref
-Perl_sv_unref_flags
-Perl_sv_untaint
-Perl_sv_upgrade
-Perl_sv_usepvn
-Perl_sv_usepvn_flags
-Perl_sv_usepvn_mg
-Perl_sv_utf8_decode
-Perl_sv_utf8_downgrade
-Perl_sv_utf8_encode
-Perl_sv_utf8_upgrade
-Perl_sv_utf8_upgrade_flags_grow
-Perl_sv_uv
-Perl_sv_vcatpvf
-Perl_sv_vcatpvf_mg
-Perl_sv_vcatpvfn
-Perl_sv_vsetpvf
-Perl_sv_vsetpvf_mg
-Perl_sv_vsetpvfn
-Perl_swash_fetch
-Perl_swash_init
-Perl_sys_init
-Perl_sys_init3
-Perl_sys_term
-Perl_taint_env
-Perl_taint_proper
-Perl_tmps_grow
-Perl_to_uni_lower
-Perl_to_uni_lower_lc
-Perl_to_uni_title
-Perl_to_uni_title_lc
-Perl_to_uni_upper
-Perl_to_uni_upper_lc
-Perl_to_utf8_case
-Perl_to_utf8_lower
-Perl_to_utf8_title
-Perl_to_utf8_upper
-Perl_try_amagic_bin
-Perl_try_amagic_un
-Perl_unpack_str
-Perl_unpackstring
-Perl_unsharepvn
-Perl_upg_version
-Perl_utf16_to_utf8
-Perl_utf16_to_utf8_reversed
-Perl_utf8_distance
-Perl_utf8_hop
-Perl_utf8_length
-Perl_utf8_to_bytes
-Perl_utf8_to_uvchr
-Perl_utf8_to_uvuni
-Perl_utf8n_to_uvuni
-Perl_uvchr_to_utf8_flags
-Perl_uvuni_to_utf8
-Perl_uvuni_to_utf8_flags
-Perl_vcmp
-Perl_vcroak
-Perl_vdeb
-Perl_vform
-Perl_vivify_defelem
-Perl_vload_module
-Perl_vmess
-Perl_vnewSVpvf
-Perl_vnormal
-Perl_vnumify
-Perl_vstringify
-Perl_vverify
-Perl_vwarn
-Perl_vwarner
-Perl_warn
-Perl_warn_sv
-Perl_warner
-Perl_was_lvalue_sub
-Perl_whichsig
-Perl_xs_apiversion_bootcheck
-Perl_xs_version_bootcheck
-Perl_yylex
-Perl_utf8n_to_uvchr
-Perl_uvchr_to_utf8
-Perl_csighandler
-Perl_sv_nounlocking
-Perl_my_cxt_init
-Perl_newFORM
-Perl_newMYSUB
-Perl_my_bzero
-Perl_my_memcmp
-Perl_my_memset
-Perl_signbit
-Perl_my_strlcat
-Perl_my_strlcpy
-Perl_my_chsize
-Perl_my_pclose
-Perl_my_popen
-Perl_my_sprintf
-Perl_my_bcopy
-Perl_hv_assert
-Perl_pad_setsv
-Perl_pad_sv
-Perl_dump_fds
-Perl_sys_intern_clear
-Perl_sys_intern_init
-Perl_sys_intern_dup
-Perl_dump_mstats
-Perl_get_mstats
-Perl_my_htonl
-Perl_my_ntohl
-Perl_my_swap
-Perl_gv_SVadd
-Perl_GetVars
-Perl_free_global_struct
-Perl_init_global_struct
-Perl_my_cxt_index
-Perl_croak_nocontext
-Perl_deb_nocontext
-Perl_die_nocontext
-Perl_form_nocontext
-Perl_fprintf_nocontext
-Perl_load_module_nocontext
-Perl_mess_nocontext
-Perl_newSVpvf_nocontext
-Perl_printf_nocontext
-Perl_sv_catpvf_mg_nocontext
-Perl_sv_catpvf_nocontext
-Perl_sv_setpvf_mg_nocontext
-Perl_sv_setpvf_nocontext
-Perl_warn_nocontext
-Perl_warner_nocontext
-perl_alloc_using
-perl_clone_using
-Perl__append_range_to_invlist
-Perl__invlist_intersection
-Perl__invlist_invert
-Perl__invlist_subtract
-Perl__invlist_union
-Perl__new_invlist
-Perl__swash_inversion_hash
-Perl__swash_to_invlist
-Perl_sv_setsv_cow
-Perl_Slab_Alloc
-Perl_Slab_Free
-Perl_unlnk
-Perl_any_dup
-Perl_clone_params_del
-Perl_clone_params_new
-Perl_cx_dup
-Perl_dirp_dup
-Perl_fp_dup
-Perl_gp_dup
-Perl_he_dup
-Perl_hek_dup
-Perl_mg_dup
-Perl_newPADOP
-Perl_parser_dup
-perl_clone
-Perl_re_dup_guts
-Perl_regdupe_internal
-Perl_rvpv_dup
-Perl_si_dup
-Perl_ss_dup
-Perl_sv_dup
-Perl_sv_dup_inc
-Perl_sv_collxfrm_flags
-Perl_PerlIO_clearerr
-Perl_PerlIO_close
-Perl_PerlIO_eof
-Perl_PerlIO_error
-Perl_PerlIO_fileno
-Perl_PerlIO_fill
-Perl_PerlIO_flush
-Perl_PerlIO_get_base
-Perl_PerlIO_get_bufsiz
-Perl_PerlIO_get_cnt
-Perl_PerlIO_get_ptr
-Perl_PerlIO_read
-Perl_PerlIO_seek
-Perl_PerlIO_set_cnt
-Perl_PerlIO_set_ptrcnt
-Perl_PerlIO_setlinebuf
-Perl_PerlIO_stderr
-Perl_PerlIO_stdin
-Perl_PerlIO_stdout
-Perl_PerlIO_tell
-Perl_PerlIO_unread
-Perl_PerlIO_write
-Perl_reentrant_free
-Perl_reentrant_init
-Perl_reentrant_retry
-Perl_reentrant_size
-Perl_do_aspawn
-Perl_do_spawn
-Perl_do_spawn_nowait
-
-# ex: set ro:
index 1cbdc34..a8067e5 100644 (file)
@@ -1,5 +1,4 @@
 # Global variables that must be exported for embedded applications.
-# *** Do NOT add functions here, those go in global.sym.
 # *** Only structures/arrays with constant initializers should go here.
 # *** Usual globals initialized at runtime should be added in *var*.h.
 
index 35b3046..b648a65 100644 (file)
 #
 #    %Config::Config (ie config.sh)
 #    config.h
-#    global.sym
+#    embed.fnc
 #    globvar.sym
 #    intrpvar.h
 #    miniperl.map (on OS/2)
 #    perl5.def    (on OS/2; this is the old version of the file being made)
 #    perlio.sym
 #    perlvars.h
+#    regen/opcodes
 #
 # plus long lists of function names hard-coded directly in this script.
 #
@@ -54,6 +55,8 @@ while (@ARGV) {
     }
 }
 
+require "$ARGS{TARG_DIR}regen/embed_lib.pl";
+
 {
     my @PLATFORM = qw(aix win32 wince os2 netware vms test);
     my %PLATFORM;
@@ -532,7 +535,7 @@ if ($define{'PERL_GLOBAL_STRUCT'}) {
 
 # functions from *.sym files
 
-my @syms = qw(global.sym globvar.sym);
+my @syms = qw(globvar.sym);
 
 # Symbols that are the public face of the PerlIO layers implementation
 # These are in _addition to_ the public face of the abstraction
@@ -729,6 +732,27 @@ if ($define{'USE_PERLIO'}) {
 # At this point all skip lists should be completed, as we are about to test
 # many symbols against them.
 
+{
+    my %seen;
+    my ($embed) = setup_embed($ARGS{TARG_DIR});
+
+    foreach (@$embed) {
+       my ($flags, $retval, $func, @args) = @$_;
+       next unless $func;
+       if ($flags =~ /[AX]/ && $flags !~ /[xm]/ || $flags =~ /b/) {
+           # public API, so export
+
+           # If a function is defined twice, for example before and after
+           # an #else, only export its name once. Important to do this test
+           # within the block, as the *first* definition may have flags which
+           # mean "don't export"
+           next if $seen{$func}++;
+           $func = "Perl_$func" if $flags =~ /[pbX]/;
+           ++$export{$func} unless exists $skip{$func};
+       }
+    }
+}
+
 foreach (@syms) {
     my $syms = $ARGS{TARG_DIR} . $_;
     open my $global, '<', $syms or die "failed to open $syms: $!\n";
index 8327d37..5a75009 100755 (executable)
@@ -4,7 +4,6 @@
 #
 #    embed.h
 #    embedvar.h
-#    global.sym
 #    perlapi.c
 #    perlapi.h
 #    proto.h
@@ -215,27 +214,7 @@ EOF
     read_only_bottom_close_and_rename($pr);
 }
 
-# generates global.sym (API export list)
-{
-  my %seen;
-  sub write_global_sym {
-      if (@_ > 1) {
-         my ($flags,$retval,$func,@args) = @_;
-         if ($flags =~ /[AX]/ && $flags !~ /[xm]/
-             || $flags =~ /b/) { # public API, so export
-             # If a function is defined twice, for example before and after
-             # an #else, only export its name once.
-             return '' if $seen{$func}++;
-             $func = "Perl_$func" if $flags =~ /[pbX]/;
-             return "$func\n";
-         }
-      }
-      return '';
-  }
-}
-
 warn "$unflagged_pointers pointer arguments to clean up\n" if $unflagged_pointers;
-walk_table(\&write_global_sym, "global.sym");
 
 sub readvars {
     my ($file, $pre) = @_;
index bbfb497..b644d70 100644 (file)
@@ -27,7 +27,7 @@ if ( $^O eq "VMS" ) {
   skip_all( "- regen.pl needs porting." );
 }
 
-my $in_regen_pl = 20; # I can't see a clean way to calculate this automatically.
+my $in_regen_pl = 19; # I can't see a clean way to calculate this automatically.
 my @files = qw(perly.act perly.h perly.tab keywords.c keywords.h uconfig.h);
 my @progs = qw(Porting/makemeta regen/regcharclass.pl regen/mk_PL_charclass.pl);
 
diff --git a/util.c b/util.c
index a5ec8ea..6a53cff 100644 (file)
--- a/util.c
+++ b/util.c
@@ -5589,7 +5589,7 @@ Perl_my_socketpair (int family, int type, int protocol, int fd[2]) {
 }
 #else
 /* In any case have a stub so that there's code corresponding
- * to the my_socketpair in global.sym. */
+ * to the my_socketpair in embed.fnc. */
 int
 Perl_my_socketpair (int family, int type, int protocol, int fd[2]) {
 #ifdef HAS_SOCKETPAIR
index bb509bc..afd6cf3 100644 (file)
@@ -668,8 +668,7 @@ $(SOCKH) : [.vms]$(SOCKH)
 .endif
 
 # The following files are generated automatically
-#       embed.pl:       proto.h embed.h embedvar.h global.sym
-#                       perlapi.h perlapi.c
+#       embed.pl:       proto.h embed.h embedvar.h perlapi.h perlapi.c
 #       opcode.pl:      opcode.h opnames.h pp_proto.h
 #       regcomp.pl:     regnodes.h
 #       warnings.pl:    warnings.h lib/warnings.pm
index c149341..8f7905f 100644 (file)
@@ -900,7 +900,7 @@ $(CORE_OBJ) : $(CORE_H)
 $(DLL_OBJ)     : $(CORE_H)
 $(X2P_OBJ)     : $(CORE_H)
 
-perldll.def : $(MINIPERL) $(CONFIGPM) ..\global.sym ..\makedef.pl create_perllibst_h.pl
+perldll.def : $(MINIPERL) $(CONFIGPM) ..\embed.fnc ..\makedef.pl create_perllibst_h.pl
        $(MINIPERL) -I..\lib create_perllibst_h.pl
        $(MINIPERL) -I..\lib -w ..\makedef.pl PLATFORM=win32 $(OPTIMIZE) $(DEFINES) $(BUILDOPT) \
            CCTYPE=$(CCTYPE) TARG_DIR=..\ > perldll.def
index 55e0eab..e81dd3a 100644 (file)
@@ -845,7 +845,7 @@ $(DLLDIR)\perllib$(o)       : perllib.c .\perlhost.h .\vdir.h .\vmem.h
        rem (frustrated) mv perllib.obj $(DLLDIR)
 !ENDIF
 
-perldll.def : $(HPERL) $(CONFIGPM) ..\global.sym ..\makedef.pl create_perllibst_h.pl
+perldll.def : $(HPERL) $(CONFIGPM) ..\embed.fnc ..\makedef.pl create_perllibst_h.pl
        $(HPERL) -MCross -I..\lib create_perllibst_h.pl
        $(HPERL) -MCross -w ..\makedef.pl PLATFORM=wince $(OPTIMIZE) $(DEFINES) $(BUILDOPT) \
            CCTYPE=$(CCTYPE) -DPERL_DLL=$(PERLDLL) TARG_DIR=..\ > perldll.def
index e398d52..2d814ec 100644 (file)
@@ -1204,7 +1204,7 @@ $(DLL_OBJ)        : $(CORE_H)
 
 $(X2P_OBJ)     : $(CORE_H)
 
-perldll.def : $(MINIPERL) $(CONFIGPM) ..\global.sym ..\makedef.pl create_perllibst_h.pl
+perldll.def : $(MINIPERL) $(CONFIGPM) ..\embed.fnc ..\makedef.pl create_perllibst_h.pl
        $(MINIPERL) -I..\lib create_perllibst_h.pl
        $(MINIPERL) -I..\lib -w ..\makedef.pl PLATFORM=win32 $(OPTIMIZE) $(DEFINES) \
        $(BUILDOPT) CCTYPE=$(CCTYPE) TARG_DIR=..\ > perldll.def