Benchmark-Perl-Formance-Cargo

 view release on metacpan or  search on metacpan

MANIFEST  view on Meta::CPAN

share/P6STD/std_hilite/STD_syntax_highlight.css
share/P6STD/std_hilite/STD_syntax_highlight.js
share/P6STD/std_hilite/STD_syntax_highlight.mirc
share/P6STD/std_hilite/cron_spec_highlight
share/P6STD/std_hilite/jquery-1.4.2.min.js
share/P6STD/std_hilite/spec_highlight
share/P6STD/tools/DumpMatch.pm
share/P6STD/tools/STD5_dump_match
share/P6STD/tools/cleanlex.pl
share/P6STD/tools/compact_pmc
share/P6STD/tools/gen-unicode-table.pl
share/P6STD/tools/reds
share/P6STD/tools/redspans
share/P6STD/tools/setting
share/P6STD/tools/show_changed_vars
share/P6STD/tools/sprixel_csv.pl
share/P6STD/tools/teststd
share/P6STD/tools/tlong
share/P6STD/tools/tloop
share/P6STD/tools/try5
share/P6STD/tools/try5_post

share/P6STD/CursorBase.pmc  view on Meta::CPAN

##     array of (label) at odd index, new index at even
## DFA structure:
##   each DFA node is array:
##     0: array of object fates
##     1: hash of specific cases (char => DFAnode)
##        also carries some debug data
##    2n: reference to a uniprop hash
##  2n+1: DFAnode is that hash existed
## Labels: undef is epsilon link.
##   otherwise list - 1 positive, 0+ negative
##   each is: 1 character, else unicode prop in "Gc/L" form
## "DFA" lexer structure:
##   {DFA} -> array of refs to all DFA nodes
##   {DBA}, {FILE}, {NAME} same as "RE" lexer structure
##   {S} -> ref to DFA root
##   {NFA} -> NFA structure
## individual fates in the NFA end with a hook which can be 1 to stop adding
## fates on the end; it's not always possible to associate a unique fate with
## each NFA node, consider (a|b)*
## A NFA or DFA node is accepting if it has a nonempty list of fates

#cycle breaker
{
    package CursorBase::dfa;
    sub DESTROY {
        my $self = shift;
        for (@$self) { @$_ = (); }
    }
}

# Steal data from Perl5's Unicode maps
my %unicode_map_cache;
BEGIN {
    $unicode_map_cache{ALL} = [scalar("\377" x 128) x 1088, "ALL"] ;
    my $name = File::Spec->catfile($data_dir, "uniprops");
    open MAP, "<", "$name" or
        die "cannot open unicode maps from $name : $!\n";

    binmode MAP;
    while (defined (my $c = getc MAP)) {
        my $name = "";
        my $used;
        my $tile;
        read MAP, $name, ord($c);
        read MAP, $used, 136;

        $unicode_map_cache{$name} = [ (("") x 1088), $name ];

        for (my $i = 0; $i < 1088; $i++) {
            if (vec($used, $i, 1)) {
                read MAP, $tile, 128;
                $unicode_map_cache{$name}[$i] = $tile;
            }
        }
    }
    close MAP or die "cannot close unicode maps: $!";
}
sub _get_unicode_map {
    my $propname = shift;
    $unicode_map_cache{$propname} //
        die "Map $propname not found.  Edit gen-unicode-table.pl and rerun.";
}

# This is the fast path handling for JIT DFA lexer generation (although it gets
# short-circuited if the DFALEXERS entry exists, later).  The lexer generation
# process sometimes recurses to this, which is tracked using %::AUTOLEXED; if
# the value is already set, we need to suppress recursion.

our $fakepos = 1;

sub _dump_nfa { my ($name, $nfa) = @_;

share/P6STD/CursorBase.pmc  view on Meta::CPAN

        }
        print ::LOG "    --> ", join(" ", @arr), "\n";
    }
}

sub _elem_matches { # my ($char, $element) = @_;
    # Optimize for the common path
    return $_[0] eq $_[1] if length $_[1] == 1;

    my $i = ord $_[0];
    return vec(_get_unicode_map($_[1])->[$i >> 10], $i & 1023, 1);
}

my %boolean_tables = map { $_, 1 } qw/AHex Alpha BidiC BidiM CE CI CWCF CWCM
    CWKCF CWL CWT CWU Cased CompEx DI Dash Dep Dia Ext GrBase GrExt Hex Hyphen
    IDC IDS IDSB IDST Ideo JoinC Lower Math NChar NFDQC OAlpha ODI OGrExt OIDC
    OIDS OLower OMath OUpper PatSyn PatWS QMark Radical SD STerm Space Term
    UIdeo Upper VS XIDC XIDS/;
sub _elem_excludes { my ($up1, $up2) = @_;
    my ($t1, $v1) = split "/", $up1;
    my ($t2, $v2) = split "/", $up2;

share/P6STD/CursorBase.pmc  view on Meta::CPAN

            if (!_elem_implies($p, $branch) &&
                    !(grep { _elem_dich($branch, $_) } @n)) {
                my $pp = _elem_dich($branch, $p) ? 'ALL' : $p;
                my @nn = grep { !_elem_implies($_, $branch) } @n;
                push @false, [ $pp, @nn ], $edges[$i+1];
            }
        }

        return [ _decision_tree($thunk, @false),
                 _decision_tree($thunk, @true),
                 _get_unicode_map($branch) ];
    } else {
        # all edges are labelled [ALL]
        my $bm = "";
        for (my $i = 1; $i < @edges; $i += 2) {
            vec($bm, $edges[$i], 1) = 1;
        }
        return ($bm ne '') ? (\ $thunk->($bm)) : undef;
    }
}

share/P6STD/CursorBase.pmc  view on Meta::CPAN

    # First, all specifically mentioned characters are floated to the initial
    # case
    my %next_1;
    my $edgelistref;
    for my $ch (keys %used_chars) {
        my $bm = "";
        EDGE: for (my $i = 0; $i < @$our_edges; $i += 2) {
            $edgelistref = $our_edges->[$i];
            if (length $edgelistref->[0] != 1) {
              my $o = ord $ch; # inlined from _elem_matches
              next unless vec(_get_unicode_map($edgelistref->[0])->[$o >> 10], $o & 1023, 1);
            } elsif ($edgelistref->[0] ne $ch) {
              next;
            }
            my @edgelist = @$edgelistref;
            for (my $j = 0; ++$j < @edgelist; ) {
                next EDGE if _elem_matches($ch, $edgelistref->[$j]);
            }
            vec($bm, $our_edges->[$i+1], 1) = 1;
        }
        $next_1{ord $ch} = $thunk->($bm);

share/P6STD/std_hilite/spec_highlight  view on Meta::CPAN

    my $cwd = getcwd();
    unless($cwd =~ m{src/perl6$}) {
        die "Please run $PROGRAM_NAME in src/perl6\n";
    }

    #sanity check: make sure STD.pm is correctly built
    unless(-r 'STD.pmc') {
        die "Could not find 'STD.pmc'. Maybe your forgot to 'make'\n";
    }

    #sanity check: make sure unicode will work with your locale
    unless($ENV{LANG} =~ /\.UTF-8$/) {
        die "Unicode will not work. Please set your LANG environment variable.\n" .
            "(e.g. 'export LANG=en_US.UTF-8' in your ~/.bashrc)";
    }

    #make sure that the output html directory is there
    unless(-d 'html') {
        print "Creating html directory...\n";
        mkdir 'html' or die "Could not create html directory\n";
    }

share/PerlCritic/Critic/Policy/RegularExpressions/ProhibitEnumeratedClasses.pm  view on Meta::CPAN

   ['a-z']                       => ['[[:lower:]]','[[:^lower:]]'],
   ['0-9']                       => ['\\d','\\D'],
   ['\w']                        => [undef, '\\W'],
   ['\s']                        => [undef, '\\S'],
);

#-----------------------------------------------------------------------------

sub supported_parameters { return qw()                    }
sub default_severity     { return $SEVERITY_LOWEST        }
sub default_themes       { return qw( core pbp cosmetic unicode ) }
sub applies_to           { return qw(PPI::Token::Regexp::Match
                                     PPI::Token::Regexp::Substitute
                                     PPI::Token::QuoteLike::Regexp) }

#-----------------------------------------------------------------------------

sub initialize_if_enabled {
    return eval { require PPIx::Regexp; 1 } ? $TRUE : $FALSE;
}

share/SpamAssassin/easy_ham_2/00196.8f7b9e0c0114f5fde680158804bc2f9a  view on Meta::CPAN

  | 
  | 7.3 seems to support Chinese input out of the box, it's got
  | miniChinput and some other stuff no documentation.  [ ... ]
  | google is a bit of a dead too.
  | 
  | Can anyone tell me what I should do?

 I've no idea, but a relevant/useful source of info could
 be the «linux-utf8» e-list:

     http://www.cl.cam.ac.uk/~mgk25/unicode.html
     http://mail.nl.linux.org/linux-utf8/

 whilst the list is nominally about UTF-8/Unicode and Linux,
 it often delves into related areas (such as input methods).

 my (vague!) understanding of the state-of-play is there are
 multiple ways of keyboarding scripts such as "Chinese", and
 the choice of method is a mixture of personal preference,
 equipment (e.g. your keyboard), and the tool/application
 in question.

share/SpamAssassin/easy_ham_2/00197.b96f868a833d3ac47289450185767439  view on Meta::CPAN

  |   | Date: Wed, 31 Jul 2002 23:11:49 +0800
  |   | From: Fergal Daly <fergal@esatclear.ie>
  |   | 
  |   | 7.3 seems to support Chinese input out of the box, it's got
  |   | miniChinput and some other stuff no documentation.  [ ... ]
  |   | Can anyone tell me what I should do?
  | 
  |  I've no idea, but a relevant/useful source of info could
  |  be the «linux-utf8» e-list:
  | 
  |      http://www.cl.cam.ac.uk/~mgk25/unicode.html
  |      http://mail.nl.linux.org/linux-utf8/
  |[ ... ]
  |  w.r.t. X11 applications [ one approach is to use ]
  |  what's called an XIM (X Input Method).   [ ... ]

 sorry for replying to my own post!

 a google for "xim linux" found a number of hits.
 try (I've haven't finished reading this myself,
 but it seems good):

share/SpamAssassin/spam_2/00835.a6e29a3e3680377daea929a8ce0b0814  view on Meta::CPAN

Sender: TellYourSuccessStory <make_money299009@hotmaill.com>
Mime-Version: 1.0
Content-Type: text/html; charset="iso-8859-1"
Date: Sun, 21 Jul 2002 16:33:57 -0400
X-Mailer: The Bat! (v1.52f) Business
X-Priority: 1

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
<HEAD><TITLE>Home Based Business</TITLE>
  <META NAME="GENERATOR" CONTENT="MSHTML 6.00.2715.400"  >
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=unicode">
  <META NAME="description" CONTENT="Having your own business will allow you to work at home, and you can start building your residual income right now.">
  <META NAME="robots" CONTENT="index all, follow all" <META>
  <META NAME="revisit-after" CONTENT="15 days">
  <META NAME="Author" CONTENT="fwr">
<STYLE type=text/css>
  <!--
a:hover { color:#cc0000; font-type:bold }
H1      { color:#006699 }
  -->
</STYLE>



( run in 0.559 second using v1.01-cache-2.11-cpan-88abd93f124 )