Skip to content

Commit 85900e2

Browse files
committed
regcomp.c - decompose into smaller files
This splits a bunch of the subcomponents of the regex engine into smaller files. regcomp_debug.c regcomp_internal.h regcomp_invlist.c regcomp_study.c regcomp_trie.c The only real change besides to the build machine to achieve the split is to also adds some new defines which can be used in embed.fnc to control exports without having to enumerate /every/ regex engine file. For instance all of regcomp*.c defines PERL_IN_REGCOMP_ANY, and this is used in embed.fnc to manage exports.
1 parent 6a6e5d0 commit 85900e2

26 files changed

+13372
-13089
lines changed

MANIFEST

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5513,6 +5513,11 @@ regcharclass.h Generated by regen/regcharclass.pl
55135513
regcomp.c Regular expression compiler
55145514
regcomp.h Private declarations for above
55155515
regcomp.sym Data for regnodes.h
5516+
regcomp_debug.c Regular expression compiler debug code
5517+
regcomp_internal.h Internal stuff for regex compiler
5518+
regcomp_invlist.c Invlist logic for regular expresion engine
5519+
regcomp_study.c Optimizer for regular expresion compiler
5520+
regcomp_trie.c Trie logic for regular expresion compiler
55165521
regen.pl Run all scripts that (re)generate files
55175522
regen/charset_translations.pl Character set utilities
55185523
regen/ebcdic.pl Generates ebcdic_tables.h

Makefile.SH

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -530,17 +530,19 @@ unidatadirs = lib/unicore/To lib/unicore/lib
530530
531531
h1 = EXTERN.h INTERN.h XSUB.h av.h $(CONFIGH) cop.h cv.h dosish.h
532532
h2 = embed.h form.h gv.h handy.h hv.h hv_func.h keywords.h mg.h op.h opcode.h
533-
h3 = pad.h patchlevel.h perl.h perlapi.h perly.h pp.h proto.h regcomp.h
533+
h3 = pad.h patchlevel.h perl.h perlapi.h perly.h pp.h proto.h regcomp.h regcomp_internal.h
534534
h4 = regexp.h scope.h sv.h unixish.h util.h iperlsys.h thread.h
535535
h5 = utf8.h warnings.h mydtrace.h op_reg_common.h l1_char_class_tab.h
536536
h6 = charclass_invlists.h
537537
h = $(h1) $(h2) $(h3) $(h4) $(h5) $(h6)
538538
539539
c1 = av.c scope.c op.c peep.c doop.c doio.c dump.c gv.c hv.c mg.c reentr.c mro_core.c perl.c
540-
c2 = perly.c pp.c pp_hot.c pp_ctl.c pp_sys.c regcomp.c regexec.c utf8.c sv.c
540+
c2 = perly.c pp.c pp_hot.c pp_ctl.c pp_sys.c utf8.c sv.c
541541
c3 = taint.c toke.c util.c deb.c run.c builtin.c universal.c pad.c globals.c keywords.c
542542
c4 = perlio.c numeric.c mathoms.c locale.c pp_pack.c pp_sort.c caretx.c dquote.c time64.c
543-
c5 = $(mallocsrc)
543+
c5 = regcomp.c regcomp_debug.c regcomp_invlist.c regcomp_study.c regcomp_trie.c regexec.c
544+
c6 = $(mallocsrc)
545+
c_base = $(c1) $(c2) $(c3) $(c4) $(c5) $(c6)
544546
545547
!NO!SUBS!
546548

@@ -552,17 +554,24 @@ main_only_objs =$main_only_objs
552554

553555
$spitshell >>$Makefile <<'!NO!SUBS!'
554556
555-
c = $(c1) $(c2) $(c3) $(c4) $(c5) miniperlmain.c $(mini_only_src)
557+
c = $(c_base) miniperlmain.c $(mini_only_src)
556558
557-
obj1 = $(mallocobj) gv$(OBJ_EXT) toke$(OBJ_EXT) perly$(OBJ_EXT) pad$(OBJ_EXT) regcomp$(OBJ_EXT) dump$(OBJ_EXT) util$(OBJ_EXT) mg$(OBJ_EXT) reentr$(OBJ_EXT) mro_core$(OBJ_EXT) keywords$(OBJ_EXT) builtin$(OBJ_EXT)
558-
obj2 = hv$(OBJ_EXT) av$(OBJ_EXT) run$(OBJ_EXT) pp_hot$(OBJ_EXT) sv$(OBJ_EXT) pp$(OBJ_EXT) scope$(OBJ_EXT) pp_ctl$(OBJ_EXT) pp_sys$(OBJ_EXT) peep$(OBJ_EXT)
559-
obj3 = doop$(OBJ_EXT) doio$(OBJ_EXT) regexec$(OBJ_EXT) utf8$(OBJ_EXT) taint$(OBJ_EXT) deb$(OBJ_EXT) globals$(OBJ_EXT) perlio$(OBJ_EXT) numeric$(OBJ_EXT) mathoms$(OBJ_EXT) locale$(OBJ_EXT) pp_pack$(OBJ_EXT) pp_sort$(OBJ_EXT) caretx$(OBJ_EXT) dquote$(OBJ_EXT) time64$(OBJ_EXT)
559+
obj1 = $(mallocobj) gv$(OBJ_EXT) toke$(OBJ_EXT) perly$(OBJ_EXT) pad$(OBJ_EXT)
560+
obj2 = regcomp$(OBJ_EXT) regcomp_debug$(OBJ_EXT) regcomp_invlist$(OBJ_EXT) regcomp_study$(OBJ_EXT) regcomp_trie$(OBJ_EXT)
561+
obj3 = regexec$(OBJ_EXT) dump$(OBJ_EXT) util$(OBJ_EXT) mg$(OBJ_EXT) reentr$(OBJ_EXT) mro_core$(OBJ_EXT)
562+
obj4 = keywords$(OBJ_EXT) builtin$(OBJ_EXT)
563+
obj5 = hv$(OBJ_EXT) av$(OBJ_EXT) run$(OBJ_EXT) pp_hot$(OBJ_EXT) sv$(OBJ_EXT) pp$(OBJ_EXT)
564+
obj6 = scope$(OBJ_EXT) pp_ctl$(OBJ_EXT) pp_sys$(OBJ_EXT) peep$(OBJ_EXT)
565+
obj7 = doop$(OBJ_EXT) doio$(OBJ_EXT) utf8$(OBJ_EXT) taint$(OBJ_EXT)
566+
obj8 = deb$(OBJ_EXT) globals$(OBJ_EXT) perlio$(OBJ_EXT) numeric$(OBJ_EXT) mathoms$(OBJ_EXT)
567+
obj9 = locale$(OBJ_EXT) pp_pack$(OBJ_EXT) pp_sort$(OBJ_EXT) caretx$(OBJ_EXT) dquote$(OBJ_EXT)
568+
obj10 = time64$(OBJ_EXT)
560569
561570
# split the objects into 3 exclusive sets: those used by both miniperl and
562571
# perl, and those used by just one or the other. Doesn't include the
563572
# actual perl(mini)main.o, nor any dtrace objects.
564573
565-
common_objs = $(obj1) $(obj2) $(obj3) $(ARCHOBJS)
574+
common_objs = $(obj1) $(obj2) $(obj3) $(obj4) $(obj5) $(obj6) $(obj7) $(obj8) $(obj9) $(obj10) $(ARCHOBJS)
566575
567576
miniperl_objs_nodt = $(mini_only_objs) $(common_objs) miniperlmain$(OBJ_EXT)
568577
perllib_objs_nodt = $(main_only_objs) $(common_objs)
@@ -1722,8 +1731,8 @@ distcheck: FORCE
17221731
17231732
.PHONY: ctags
17241733
1725-
TAGS: $(c1) $(c2) $(c3) $(c4) $(c5) $(h)
1726-
etags $(c1) $(c2) $(c3) $(c4) $(c5) $(h)
1734+
TAGS: $(c_base) $(h)
1735+
etags $(c_base) $(h)
17271736
!NO!SUBS!
17281737

17291738
$spitshell >>$Makefile <<!GROK!THIS!

Makefile.micro

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ O = uav$(_O) udeb$(_O) udoio$(_O) udoop$(_O) udquote$(_O) udump$(_O) \
1818
umg$(_O) uperlmain$(_O) uop$(_O) ureentr$(_O) \
1919
upad$(_O) uperl$(_O) uperlio$(_O) uperly$(_O) upp$(_O) \
2020
upp_ctl$(_O) upp_hot$(_O) upp_sys$(_O) upp_pack$(_O) upp_sort$(_O) \
21-
uregcomp$(_O) uregexec$(_O) urun$(_O) \
21+
uregcomp$(_O) uregcomp_debug$(_O) uregcomp_invlist$(_O) \
22+
uregcomp_study$(_O) uregcomp_trie$(_O) uregexec$(_O) urun$(_O) \
2223
uscope$(_O) usv$(_O) utaint$(_O) utime64$(_O) utoke$(_O) \
2324
unumeric$(_O) ulocale$(_O) umathoms$(_O) \
2425
uuniversal$(_O) uutf8$(_O) uutil$(_O) ukeywords$(_O)
@@ -138,7 +139,19 @@ upp_pack$(_O): $(HE) pp_pack.c
138139
upp_sort$(_O): $(HE) pp_sort.c
139140
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) pp_sort.c
140141

141-
uregcomp$(_O): $(HE) regcomp.c regcomp.h regnodes.h INTERN.h
142+
uregcomp$(_O): $(HE) regcomp.c regcomp_internal.h regcomp.h regnodes.h INTERN.h
143+
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) regcomp.c
144+
145+
uregcomp_debug$(_O): $(HE) regcomp_debug.c regcomp_internal.h regcomp.h regnodes.h INTERN.h
146+
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) regcomp.c
147+
148+
uregcomp_invlist$(_O): $(HE) regcomp_invlist.c regcomp_internal.h regcomp.h regnodes.h INTERN.h
149+
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) regcomp.c
150+
151+
uregcomp_study$(_O): $(HE) regcomp_study.c regcomp_internal.h regcomp.h regnodes.h INTERN.h
152+
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) regcomp.c
153+
154+
uregcomp_trie$(_O): $(HE) regcomp_trie.c regcomp_internal.h regcomp.h regnodes.h INTERN.h
142155
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) regcomp.c
143156

144157
uregexec$(_O): $(HE) regexec.c regcomp.h regnodes.h

0 commit comments

Comments
 (0)