From: Karl Williamson Date: Mon, 23 Nov 2009 23:26:16 +0000 (-0700) Subject: mktables not run unless needed X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=f86864acbf97469fd9e5d5233d51ff743f4d8d6e;p=p5sagit%2Fp5-mst-13.2.git mktables not run unless needed --- diff --git a/Makefile.SH b/Makefile.SH index 244559e..c5bd457 100644 --- a/Makefile.SH +++ b/Makefile.SH @@ -450,9 +450,8 @@ plextract = pod/pod2html pod/pod2latex pod/pod2man pod/pod2text \ addedbyconf = UU $(shextract) $(plextract) pstruct # Unicode data files generated by mktables -unidatafiles = lib/unicore/Canonical.pl lib/unicore/Exact.pl \ - lib/unicore/Properties lib/unicore/Decomposition.pl \ - lib/unicore/CombiningClass.pl lib/unicore/Name.pl lib/unicore/PVA.pl +unidatafiles = lib/unicore/Decomposition.pl \ + lib/unicore/CombiningClass.pl lib/unicore/Name.pl lib/unicore/Heavy.pl # Directories of Unicode data files generated by mktables unidatadirs = lib/unicore/To lib/unicore/lib @@ -986,8 +985,10 @@ x2p/s2p: $(MINIPERL_EXE) $(CONFIGPM) $(dynamic_ext) x2p/s2p.PL unidatafiles $(unidatafiles): uni.data uni.data: $(MINIPERL_EXE) $(CONFIGPM) lib/unicore/mktables $(nonxs_ext) - $(MINIPERL) $(Icwd) lib/unicore/mktables -C lib/unicore -w - touch uni.data + $(MINIPERL) $(Icwd) lib/unicore/mktables -C lib/unicore -P pod -T t/re/uniprops.t -p +# Commented out so always runs, mktables looks at far more files than we +# can in this makefile to decide if needs to run or not +# touch uni.data # $(PERL_EXE) and ext because buildtoc uses Text::Wrap uses re # But also this ensures that all extensions are built before we try to scan diff --git a/lib/.gitignore b/lib/.gitignore index 7135db4..7cbb08f 100644 --- a/lib/.gitignore +++ b/lib/.gitignore @@ -381,7 +381,5 @@ /unicore/Heavy.pl /unicore/mktables.lst /unicore/Name.pl -/unicore/PVA.pl -/unicore/Properties /unicore/To /unicore/lib diff --git a/lib/unicore/mktables b/lib/unicore/mktables index b268623..93d8da0 100644 --- a/lib/unicore/mktables +++ b/lib/unicore/mktables @@ -980,7 +980,7 @@ my $CP_IN_NAME = 3; # The NAME contains the code point appended to it. my $NULL = 4; # The map is to the null string; utf8.c can't # handle these, nor is there an accepted syntax # for them in \p{} constructs -my $COMPUTE_NO_MULTI_CP = 5; # Pseudo-type; meanst that ranges that would +my $COMPUTE_NO_MULTI_CP = 5; # Pseudo-type; means that ranges that would # otherwise be $MULTI_CP type are instead type 0 # process_generic_property_file() can accept certain overrides in its input. @@ -1085,7 +1085,7 @@ my %Jamo_T; # Trailing consonants my @unhandled_properties; # Will contain a list of properties found in # the input that we didn't process. -my @match_properties; # properties that have match tables, to be +my @match_properties; # Properties that have match tables, to be # listed in the pod my @map_properties; # Properties that get map files written my @named_sequences; # NamedSequences.txt contents. @@ -8385,7 +8385,7 @@ END # Complications arise because any number of properties can be in the # file, in any order, interspersed in any way. The first time a # property is seen, it gets information about that property and - # cache's it for quick retrieval later. It also normalizes the maps + # caches it for quick retrieval later. It also normalizes the maps # so that only one of many synonym is stored. The Unicode input files # do use some multiple synonyms. @@ -8788,7 +8788,7 @@ END } } -# Unused until revise charnames; +# XXX Unused until revise charnames; #sub check_and_handle_compound_name { # This looks at Name properties for parenthesized components and splits # them off. Thus it finds FF as an equivalent to Form Feed. @@ -9683,8 +9683,7 @@ sub filter_special_casing_line { sub filter_old_style_case_folding { # This transforms $_ containing the case folding style of 3.0.1, to 3.1 - # and later style, then calls the handler for the later style. Different - # letters were used. + # and later style. Different letters were used in the earlier. my $file = shift; Carp::carp_extra_args(\@_) if main::DEBUG && @_; @@ -9862,13 +9861,6 @@ sub filter_jamo_line { return; } -sub filter_numeric_value_comment_missing_line { - # Filters out the extra column in DNumValues.txt of this line - - s/^($missing_defaults_prefix)\s*;\s*/$1/; - return; -} - sub register_fraction($) { # This registers the input rational number so that it can be passed on to # utf8_heavy.pl, both in rational and floating forms. @@ -10796,19 +10788,22 @@ sub compile_perl() { $CanonDCIJ = $CanonDCIJ & $Assigned; } - # This is used in Unicode's definition of \X + # These are used in Unicode's definition of \X my $gcb = property_ref('Grapheme_Cluster_Break'); + #my $extend = $perl->add_match_table('_X_Extend'); + my $extend = $perl->add_match_table('_GCB_Extend'); + # XXX until decide what todo my $begin = $perl->add_match_table('_X_Begin'); if (defined $gcb) { - my $extend = $perl->add_match_table('_GCB_Extend', - Initialize => $gcb->table('Extend')); - $extend += $gcb->table('SpacingMark') - if defined $gcb->table('SpacingMark'); + $extend += $gcb->table('Extend') + $gcb->table('SpacingMark') + #$begin += ~ ($gcb->table('Control') + # + $gcb->table('CR') + # + $gcb->table('LF')); } else { # Old definition, used on early releases. - $perl->add_match_table('_X_Extend', Initialize => $gc->table('Mark') - + 0x200C # ZWNJ - + 0x200D # ZWJ - ); + $extend += $gc->table('Mark') + + 0x200C # ZWNJ + + 0x200D; # ZWJ + #$begin += ~ $extend; } # Create a new property specially located that is a combination of the @@ -12075,7 +12070,8 @@ To change this file, edit $0 instead. =head1 NAME -$pod_file - Complete index of Unicode Version $string_version properties +$pod_file - Complete index of Unicode Version $string_version properties in +the Perl core. =head1 DESCRIPTION @@ -13524,8 +13520,12 @@ if ($glob_list) { # Here wants to process all .txt files in the directory structure. # Convert them to full path names. They are stored in the platform's # relative style - my @known_files = map { File::Spec->rel2abs($_->file) } - @input_file_objects; + my @known_files; + foreach my $object (@input_file_objects) { + my $file = $object->file; + next unless defined $file; + push @known_files, File::Spec->rel2abs($file); + } my @unknown_input_files; foreach my $file (keys %potential_files) { @@ -13578,12 +13578,6 @@ END } } # End of looking through directory structure for more .txt files. -if ( $make_list ) { - foreach my $file (@mktables_list_output_files) { - unlink internal_file_to_platform($file); - } -} - # Create the list of input files from the objects we have defined, plus # version my @input_files = 'version'; @@ -13863,7 +13857,7 @@ sub Error($) { } sub Finished() { - print "1..$Tests.\n"; + print "1..$Tests\n"; exit($Fails ? -1 : 0); } diff --git a/pod/perluniprops.pod b/pod/perluniprops.pod index d547e5c..78ab703 100644 --- a/pod/perluniprops.pod +++ b/pod/perluniprops.pod @@ -11,7 +11,8 @@ To change this file, edit lib/unicore/mktables instead. =head1 NAME -perluniprops - Complete index of Unicode Version 5.1.0 properties +perluniprops - Complete index of Unicode Version 5.1.0 properties in +the Perl core. =head1 DESCRIPTION diff --git a/t/re/uniprops.t b/t/re/uniprops.t index b0010cc..7d9c89d 100644 --- a/t/re/uniprops.t +++ b/t/re/uniprops.t @@ -8,7 +8,7 @@ use warnings; # Test the \p{} regular expression constructs. This file is constructed by # mktables from the tables it generates, so if mktables is buggy, this won't # necessarily catch those bugs. Tests are generated for all feasible -# properties; a few aren't currently XXX feasible; see is_code_point_usable() +# properties; a few aren't currently feasible; see is_code_point_usable() # in mktables for details. # Standard test packages are not used because this manipulates SIG_WARN. It