Change 18368 by jhi@lyta on 2002/12/29 23:33:56 Continue on change #18367; implement the said flag, 'E'. (Some nm output studying was needed to get the right set of re symbols defined.)
Affected files ... ... //depot/maint-5.8/perl/embed.fnc#9 edit ... //depot/maint-5.8/perl/embed.h#11 edit ... //depot/maint-5.8/perl/embed.pl#5 edit ... //depot/maint-5.8/perl/ext/re/Makefile.PL#2 edit Differences ... ==== //depot/maint-5.8/perl/embed.fnc#9 (text) ==== Index: perl/embed.fnc --- perl/embed.fnc#8~18367~ Sun Dec 29 13:40:08 2002 +++ perl/embed.fnc Sun Dec 29 15:33:56 2002 @@ -17,6 +17,7 @@ : o has no compatibility macro (#define foo Perl_foo) : x not exported : M may change +: E visible to Perl core extensions : : Individual flags may be separated by whitespace. : @@ -618,7 +619,7 @@ |char* strend|char* strbeg|I32 minend \ |SV* screamer|void* data|U32 flags Ap |regnode*|regnext |regnode* p -p |void |regprop |SV* sv|regnode* o +Ep |void |regprop |SV* sv|regnode* o Ap |void |repeatcpy |char* to|const char* from|I32 len|I32 count Ap |char* |rninstr |const char* big|const char* bigend \ |const char* little|const char* lend @@ -1124,60 +1125,60 @@ #endif #if defined(PERL_IN_REGCOMP_C) || defined(PERL_DECL_PROT) -As |regnode*|reg |struct RExC_state_t*|I32|I32 * -As |regnode*|reganode |struct RExC_state_t*|U8|U32 -As |regnode*|regatom |struct RExC_state_t*|I32 * -As |regnode*|regbranch |struct RExC_state_t*|I32 *|I32 -s |void |reguni |struct RExC_state_t*|UV|char *|STRLEN* -As |regnode*|regclass |struct RExC_state_t* +Es |regnode*|reg |struct RExC_state_t*|I32|I32 * +Es |regnode*|reganode |struct RExC_state_t*|U8|U32 +Es |regnode*|regatom |struct RExC_state_t*|I32 * +Es |regnode*|regbranch |struct RExC_state_t*|I32 *|I32 +Es |void |reguni |struct RExC_state_t*|UV|char *|STRLEN* +Es |regnode*|regclass |struct RExC_state_t* s |I32 |regcurly |char * -As |regnode*|reg_node |struct RExC_state_t*|U8 -As |regnode*|regpiece |struct RExC_state_t*|I32 * -s |void |reginsert |struct RExC_state_t*|U8|regnode * -s |void |regoptail |struct RExC_state_t*|regnode *|regnode * -s |void |regtail |struct RExC_state_t*|regnode *|regnode * -As |char*|regwhite |char *|char * -As |char*|nextchar |struct RExC_state_t* +Es |regnode*|reg_node |struct RExC_state_t*|U8 +Es |regnode*|regpiece |struct RExC_state_t*|I32 * +Es |void |reginsert |struct RExC_state_t*|U8|regnode * +Es |void |regoptail |struct RExC_state_t*|regnode *|regnode * +Es |void |regtail |struct RExC_state_t*|regnode *|regnode * +Es |char*|regwhite |char *|char * +Es |char*|nextchar |struct RExC_state_t* # ifdef DEBUGGING -As |regnode*|dumpuntil |regnode *start|regnode *node \ +Es |regnode*|dumpuntil |regnode *start|regnode *node \ |regnode *last|SV* sv|I32 l -s |void |put_byte |SV* sv|int c +Es |void |put_byte |SV* sv|int c # endif -s |void |scan_commit |struct RExC_state_t*|struct scan_data_t *data -s |void |cl_anything |struct RExC_state_t*|struct regnode_charclass_class *cl -s |int |cl_is_anything |struct regnode_charclass_class *cl -s |void |cl_init |struct RExC_state_t*|struct regnode_charclass_class *cl -s |void |cl_init_zero |struct RExC_state_t*|struct regnode_charclass_class *cl -s |void |cl_and |struct regnode_charclass_class *cl \ +Es |void |scan_commit |struct RExC_state_t*|struct scan_data_t *data +Es |void |cl_anything |struct RExC_state_t*|struct regnode_charclass_class +*cl +Es |int |cl_is_anything |struct regnode_charclass_class *cl +Es |void |cl_init |struct RExC_state_t*|struct regnode_charclass_class +*cl +Es |void |cl_init_zero |struct RExC_state_t*|struct regnode_charclass_class +*cl +Es |void |cl_and |struct regnode_charclass_class *cl \ |struct regnode_charclass_class *and_with -s |void |cl_or |struct RExC_state_t*|struct regnode_charclass_class *cl \ +Es |void |cl_or |struct RExC_state_t*|struct regnode_charclass_class +*cl \ |struct regnode_charclass_class *or_with -s |I32 |study_chunk |struct RExC_state_t*|regnode **scanp|I32 *deltap \ +Es |I32 |study_chunk |struct RExC_state_t*|regnode **scanp|I32 *deltap \ |regnode *last|struct scan_data_t *data \ |U32 flags -s |I32 |add_data |struct RExC_state_t*|I32 n|char *s +Es |I32 |add_data |struct RExC_state_t*|I32 n|char *s rs |void|re_croak2 |const char* pat1|const char* pat2|... -s |I32 |regpposixcc |struct RExC_state_t*|I32 value -s |void |checkposixcc |struct RExC_state_t* +Es |I32 |regpposixcc |struct RExC_state_t*|I32 value +Es |void |checkposixcc |struct RExC_state_t* #endif #if defined(PERL_IN_REGEXEC_C) || defined(PERL_DECL_PROT) -s |I32 |regmatch |regnode *prog -s |I32 |regrepeat |regnode *p|I32 max -s |I32 |regrepeat_hard |regnode *p|I32 max|I32 *lp -s |I32 |regtry |regexp *prog|char *startpos -s |bool |reginclass |regnode *n|U8 *p|STRLEN *lenp|bool do_utf8sv_is_utf8 -s |CHECKPOINT|regcppush |I32 parenfloor -s |char*|regcppop -s |char*|regcp_set_to |I32 ss -s |void |cache_re |regexp *prog -As |U8* |reghop |U8 *pos|I32 off -As |U8* |reghop3 |U8 *pos|I32 off|U8 *lim -As |U8* |reghopmaybe |U8 *pos|I32 off -As |U8* |reghopmaybe3 |U8 *pos|I32 off|U8 *lim -As |char* |find_byclass |regexp * prog|regnode *c|char *s|char *strend|char *startpos|I32 norun -s |void |to_utf8_substr |regexp * prog -s |void |to_byte_substr |regexp * prog +Es |I32 |regmatch |regnode *prog +Es |I32 |regrepeat |regnode *p|I32 max +Es |I32 |regrepeat_hard |regnode *p|I32 max|I32 *lp +Es |I32 |regtry |regexp *prog|char *startpos +Es |bool |reginclass |regnode *n|U8 *p|STRLEN *lenp|bool do_utf8sv_is_utf8 +Es |CHECKPOINT|regcppush |I32 parenfloor +Es |char*|regcppop +Es |char*|regcp_set_to |I32 ss +Es |void |cache_re |regexp *prog +Es |U8* |reghop |U8 *pos|I32 off +Es |U8* |reghop3 |U8 *pos|I32 off|U8 *lim +Es |U8* |reghopmaybe |U8 *pos|I32 off +Es |U8* |reghopmaybe3 |U8 *pos|I32 off|U8 *lim +Es |char* |find_byclass |regexp * prog|regnode *c|char *s|char *strend|char +*startpos|I32 norun +Es |void |to_utf8_substr |regexp * prog +Es |void |to_byte_substr |regexp * prog #endif #if defined(PERL_IN_DUMP_C) || defined(PERL_DECL_PROT) ==== //depot/maint-5.8/perl/embed.h#11 (text+w) ==== Index: perl/embed.h --- perl/embed.h#10~18367~ Sun Dec 29 13:40:08 2002 +++ perl/embed.h Sun Dec 29 15:33:56 2002 @@ -855,7 +855,7 @@ #define re_intuit_string Perl_re_intuit_string #define regexec_flags Perl_regexec_flags #define regnext Perl_regnext -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define regprop Perl_regprop #endif #define repeatcpy Perl_repeatcpy @@ -1601,110 +1601,140 @@ # endif #endif #if defined(PERL_IN_REGCOMP_C) || defined(PERL_DECL_PROT) +#if defined(PERL_CORE) || defined(PERL_EXT) #define reg S_reg +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define reganode S_reganode +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define regatom S_regatom +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define regbranch S_regbranch -#ifdef PERL_CORE +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define reguni S_reguni #endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define regclass S_regclass +#endif #ifdef PERL_CORE #define regcurly S_regcurly #endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define reg_node S_reg_node +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define regpiece S_regpiece -#ifdef PERL_CORE +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define reginsert S_reginsert #endif -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define regoptail S_regoptail #endif -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define regtail S_regtail #endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define regwhite S_regwhite +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define nextchar S_nextchar +#endif # ifdef DEBUGGING +#if defined(PERL_CORE) || defined(PERL_EXT) #define dumpuntil S_dumpuntil -#ifdef PERL_CORE +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define put_byte S_put_byte #endif # endif -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define scan_commit S_scan_commit #endif -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define cl_anything S_cl_anything #endif -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define cl_is_anything S_cl_is_anything #endif -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define cl_init S_cl_init #endif -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define cl_init_zero S_cl_init_zero #endif -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define cl_and S_cl_and #endif -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define cl_or S_cl_or #endif -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define study_chunk S_study_chunk #endif -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define add_data S_add_data #endif #ifdef PERL_CORE #define re_croak2 S_re_croak2 #endif -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define regpposixcc S_regpposixcc #endif -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define checkposixcc S_checkposixcc #endif #endif #if defined(PERL_IN_REGEXEC_C) || defined(PERL_DECL_PROT) -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define regmatch S_regmatch #endif -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define regrepeat S_regrepeat #endif -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define regrepeat_hard S_regrepeat_hard #endif -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define regtry S_regtry #endif -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define reginclass S_reginclass #endif -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define regcppush S_regcppush #endif -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define regcppop S_regcppop #endif -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define regcp_set_to S_regcp_set_to #endif -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define cache_re S_cache_re #endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define reghop S_reghop +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define reghop3 S_reghop3 +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define reghopmaybe S_reghopmaybe +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define reghopmaybe3 S_reghopmaybe3 +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define find_byclass S_find_byclass -#ifdef PERL_CORE +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define to_utf8_substr S_to_utf8_substr #endif -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define to_byte_substr S_to_byte_substr #endif #endif @@ -3257,7 +3287,7 @@ #define re_intuit_string(a) Perl_re_intuit_string(aTHX_ a) #define regexec_flags(a,b,c,d,e,f,g,h) Perl_regexec_flags(aTHX_ a,b,c,d,e,f,g,h) #define regnext(a) Perl_regnext(aTHX_ a) -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define regprop(a,b) Perl_regprop(aTHX_ a,b) #endif #define repeatcpy(a,b,c,d) Perl_repeatcpy(aTHX_ a,b,c,d) @@ -3995,109 +4025,139 @@ # endif #endif #if defined(PERL_IN_REGCOMP_C) || defined(PERL_DECL_PROT) +#if defined(PERL_CORE) || defined(PERL_EXT) #define reg(a,b,c) S_reg(aTHX_ a,b,c) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define reganode(a,b,c) S_reganode(aTHX_ a,b,c) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define regatom(a,b) S_regatom(aTHX_ a,b) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define regbranch(a,b,c) S_regbranch(aTHX_ a,b,c) -#ifdef PERL_CORE +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define reguni(a,b,c,d) S_reguni(aTHX_ a,b,c,d) #endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define regclass(a) S_regclass(aTHX_ a) +#endif #ifdef PERL_CORE #define regcurly(a) S_regcurly(aTHX_ a) #endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define reg_node(a,b) S_reg_node(aTHX_ a,b) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define regpiece(a,b) S_regpiece(aTHX_ a,b) -#ifdef PERL_CORE +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define reginsert(a,b,c) S_reginsert(aTHX_ a,b,c) #endif -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define regoptail(a,b,c) S_regoptail(aTHX_ a,b,c) #endif -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define regtail(a,b,c) S_regtail(aTHX_ a,b,c) #endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define regwhite(a,b) S_regwhite(aTHX_ a,b) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define nextchar(a) S_nextchar(aTHX_ a) +#endif # ifdef DEBUGGING +#if defined(PERL_CORE) || defined(PERL_EXT) #define dumpuntil(a,b,c,d,e) S_dumpuntil(aTHX_ a,b,c,d,e) -#ifdef PERL_CORE +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define put_byte(a,b) S_put_byte(aTHX_ a,b) #endif # endif -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define scan_commit(a,b) S_scan_commit(aTHX_ a,b) #endif -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define cl_anything(a,b) S_cl_anything(aTHX_ a,b) #endif -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define cl_is_anything(a) S_cl_is_anything(aTHX_ a) #endif -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define cl_init(a,b) S_cl_init(aTHX_ a,b) #endif -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define cl_init_zero(a,b) S_cl_init_zero(aTHX_ a,b) #endif -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define cl_and(a,b) S_cl_and(aTHX_ a,b) #endif -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define cl_or(a,b,c) S_cl_or(aTHX_ a,b,c) #endif -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define study_chunk(a,b,c,d,e,f) S_study_chunk(aTHX_ a,b,c,d,e,f) #endif -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define add_data(a,b,c) S_add_data(aTHX_ a,b,c) #endif #ifdef PERL_CORE #endif -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define regpposixcc(a,b) S_regpposixcc(aTHX_ a,b) #endif -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define checkposixcc(a) S_checkposixcc(aTHX_ a) #endif #endif #if defined(PERL_IN_REGEXEC_C) || defined(PERL_DECL_PROT) -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define regmatch(a) S_regmatch(aTHX_ a) #endif -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define regrepeat(a,b) S_regrepeat(aTHX_ a,b) #endif -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define regrepeat_hard(a,b,c) S_regrepeat_hard(aTHX_ a,b,c) #endif -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define regtry(a,b) S_regtry(aTHX_ a,b) #endif -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define reginclass(a,b,c,d) S_reginclass(aTHX_ a,b,c,d) #endif -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define regcppush(a) S_regcppush(aTHX_ a) #endif -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define regcppop() S_regcppop(aTHX) #endif -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define regcp_set_to(a) S_regcp_set_to(aTHX_ a) #endif -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define cache_re(a) S_cache_re(aTHX_ a) #endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define reghop(a,b) S_reghop(aTHX_ a,b) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define reghop3(a,b,c) S_reghop3(aTHX_ a,b,c) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define reghopmaybe(a,b) S_reghopmaybe(aTHX_ a,b) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define reghopmaybe3(a,b,c) S_reghopmaybe3(aTHX_ a,b,c) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define find_byclass(a,b,c,d,e,f) S_find_byclass(aTHX_ a,b,c,d,e,f) -#ifdef PERL_CORE +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define to_utf8_substr(a) S_to_utf8_substr(aTHX_ a) #endif -#ifdef PERL_CORE +#if defined(PERL_CORE) || defined(PERL_EXT) #define to_byte_substr(a) S_to_byte_substr(aTHX_ a) #endif #endif ==== //depot/maint-5.8/perl/embed.pl#5 (xtext) ==== Index: perl/embed.pl --- perl/embed.pl#4~18366~ Sun Dec 29 13:28:27 2002 +++ perl/embed.pl Sun Dec 29 15:33:56 2002 @@ -340,8 +340,12 @@ $ret .= hide($func,"Perl_$func"); } } - unless ($flags =~ /A/) { - $ret = "#ifdef PERL_CORE\n$ret#endif\n"; + unless ($flags =~ /A/) { + if ($flags =~ /E/) { + $ret = "#if defined(PERL_CORE) || defined(PERL_EXT)\n$ret#endif\n"; + } else { + $ret = "#ifdef PERL_CORE\n$ret#endif\n"; + } } } $ret; @@ -396,8 +400,12 @@ $ret .= $alist . ")\n"; } } - unless ($flags =~ /A/) { - $ret = "#ifdef PERL_CORE\n$ret#endif\n"; + unless ($flags =~ /A/) { + if ($flags =~ /E/) { + $ret = "#if defined(PERL_CORE) || defined(PERL_EXT)\n$ret#endif\n"; + } else { + $ret = "#ifdef PERL_CORE\n$ret#endif\n"; + } } } $ret; ==== //depot/maint-5.8/perl/ext/re/Makefile.PL#2 (text) ==== Index: perl/ext/re/Makefile.PL --- perl/ext/re/Makefile.PL#1~17645~ Fri Jul 19 12:29:57 2002 +++ perl/ext/re/Makefile.PL Sun Dec 29 15:33:56 2002 @@ -4,7 +4,7 @@ my $object = 're_exec$(OBJ_EXT) re_comp$(OBJ_EXT) re$(OBJ_EXT)'; -my $defines = '-DPERL_EXT_RE_BUILD -DPERL_EXT_RE_DEBUG'; +my $defines = '-DPERL_EXT_RE_BUILD -DPERL_EXT_RE_DEBUG -DPERL_EXT'; WriteMakefile( NAME => 're', End of Patch.