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
# 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
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
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
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
# 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
# $(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
proto.h
embed.h
embedvar.h
- global.sym
overload.c
overload.h
mg_vtable.h
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
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
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
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
#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
:
: 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
:
: 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:
: 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.)
:
+++ /dev/null
-# -*- 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:
# 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.
#
# %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.
#
}
}
+require "$ARGS{TARG_DIR}regen/embed_lib.pl";
+
{
my @PLATFORM = qw(aix win32 wince os2 netware vms test);
my %PLATFORM;
# 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
# 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";
#
# embed.h
# embedvar.h
-# global.sym
# perlapi.c
# perlapi.h
# proto.h
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) = @_;
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);
}
#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
.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
$(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
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
$(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