Codebase list libffi-platypus-perl / 2b3363d
New upstream version 1.56 gregor herrmann 2 years ago
198 changed file(s) with 12078 addition(s) and 2240 deletion(s). Raw diff Collapse all Expand all
00 Revision history for FFI-Platypus
1
2 1.56 2021-10-27 19:44:37 -0600
3 - Fixes for very old versions of Mac OS X / Xcode (gh#350)
4 - Added cxxld method to FFI::Build::Platform (gh#350)
5
6 1.55 2021-07-29 10:41:02 -0600
7 - Production release identical to 1.54_01
8
9 1.54_01 2021-07-12 17:05:37 -0600
10 - FFI::Temp will retry up to 10 times to avoid a race (gh#344, gh#348)
11
12 1.53 2021-07-12 12:18:27 -0600
13 - Documentation improvements (gh#307, gh#347)
14
15 1.52 2021-07-01 07:33:44 -0600
16 - Probe for intmax_t uintmax_t types (gh#341)
17
18 1.51 2021-07-01 07:25:38 -0600
19 - Fix testing bug that was failing on systems with libffi that does
20 not support variadic functions (ppisar++ gh#323, gh#343, gh#345)
21
22 1.50 2021-06-30 08:34:17 -0600
23 - Production release identical to 1.49_01
24
25 1.49_01 2021-06-22 17:07:44 -0600
26 - float gets promoted to double when used as a varadic argument
27 (gh#323, gh#338)
28
29 1.48_01 2021-06-22 00:32:02 -0600
30 - Test forks in CI (gh#333, #334, #335)
31 - Internal refactor of pointer and array input arguments to reduce
32 duplication (gh#336)
33
34 1.47_01 2021-06-21 22:24:40 -0600
35 - Restore experimental code from 1.45_01
36
37 1.46 2021-06-21 22:20:12 -0600
38 - Hotfix due to testing bug in 1.44 (gh#333)
39 - This version does not include experimental code from 1.45_01.
40
41 1.45_01 2021-06-21 18:23:17 -0600
42 - Experimental: with api => 2, you can now pass an array reference to
43 a pointer argument, which is roughly equivalent to an array type with
44 no size, example: sint[] (gh#227, gh#332)
45
46 1.44 2021-06-20 06:50:03 -0600
47 - Migrate test suite to Test::V0 (gh#327)
48 - Use parent instead of base in documentation and in code (gh#239 jjatria++)
49 - Improved consistency of examples and documentation (gh#328, gh#330, jjatria++)
50
51 1.43 2021-03-17 09:46:40 -0600
52 - Fix test hang on cygwin (gh#320, gh#321)
53
54 1.42 2021-03-15 05:42:23 -0600
55 - Production release identical to 1.41_01
56
57 1.41_01 2021-03-14 12:49:38 -0600
58 - Adjusted test introduced in 1.40_01 to not rely on returning
59 a record-value for platforms that do not support that. (gh#318, gh#319)
60
61 1.40_01 2021-03-12 13:08:41 -0700
62 - Add support for closures returning records pass-by-value
63 if they do not include string pointers (gh#313, gh#315)
64
65 1.39_01 2021-03-09 17:38:37 -0700
66 - Fix bug where closure ABI wasn't being used for non-default
67 ABIs (gh#313, gh#314)
68 - Add support for closures taking records pass-by-value (gh#312)
69
70 1.38 2021-03-08 17:13:15 -0700
71 - Production release identical to 1.37_01
72
73 1.37_01 2021-03-06 14:03:35 -0700
74 - Document the .fbx interface for specifying compiler / linker flags or
75 using Aliens with bundled C code in FFI::Platypus::Bundle
76 (gh#221, gh#306)
77
78 1.36_01 2021-03-02 17:32:03 -0700
79 - Improved the reliability of ABI detection on some platforms
80 (gh#285, gh#301, gh#302)
81
82 1.35_01 2021-03-01 16:02:07 -0700
83 - Favor the Microsoft strdup over the bundled copy if found as _strdup
84 which is what it is called now (gh#299).
85 - Added FFI::Platypus::Type::WideString type plugin
86 (IKEGAMI++ gh#291, gh#292, gh#299)
187
288 1.34 2020-10-23 09:04:46 -0600
389 - Fixed bug in in record meta object which expressed itself on at least
591
692 1.33 2020-09-28 10:47:26 -0600
793 - FFI::Platypus::Declare is no longer part of this distribution. It is
8 no available from FFI-Platypus-Declare instead. It has already
94 now available from FFI-Platypus-Declare instead. It has already
995 been discouraged for quite some time. (gh#285)
1096 - Fix bug where bundled .so name could incorrectly get double colons (::)
1197 in the name in development mode only. This is probably only a problem
2020
2121 ## Manual installation
2222
23 As a last resort, you can manually install it. Download the tarball, untar it,
24 install configure prerequisites (see below), then build it:
23 As a last resort, you can manually install it. If you have not already
24 downloaded the release tarball, you can find the download link on the module's
25 MetaCPAN page: https://metacpan.org/pod/FFI::Platypus
26
27 Untar the tarball, install configure prerequisites (see below), then build it:
2528
2629 % perl Makefile.PL
2730 % make && make test
291291
292292 - "Package" refers to the collection of files distributed by the Copyright
293293 Holder, and derivatives of that collection of files created through
294 textual modification.
294 textual modification.
295295 - "Standard Version" refers to such a Package if it has not been modified,
296296 or has been modified in accordance with the wishes of the Copyright
297 Holder.
297 Holder.
298298 - "Copyright Holder" is whoever is named in the copyright or copyrights for
299 the package.
299 the package.
300300 - "You" is you, if you're thinking about copying or distributing this Package.
301301 - "Reasonable copying fee" is whatever you can justify on the basis of media
302302 cost, duplication charges, time of people involved, and so on. (You will
303303 not be required to justify it to the Copyright Holder, but only to the
304 computing community at large as a market that must bear the fee.)
304 computing community at large as a market that must bear the fee.)
305305 - "Freely Available" means that no fee is charged for the item itself, though
306306 there may be fees involved in handling the item. It also means that
307307 recipients of the item may redistribute it under the same conditions they
308 received it.
308 received it.
309309
310310 1. You may make and give away verbatim copies of the source form of the
311311 Standard Version of this Package without restriction, provided that you
372372
373373 9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
374374 WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
375 MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
375 MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
376376
377377 The End
378378
0 # This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.015.
0 # This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.024.
11 CONTRIBUTING
22 Changes
33 Changes.FFI-Build
6060 examples/archive.pl
6161 examples/archive_object.pl
6262 examples/attach_from_pointer.pl
63 examples/bundle-answer/ffi/answer.c
64 examples/bundle-answer/ffi/answer.fbx
65 examples/bundle-answer/include/answer.h
66 examples/bundle-answer/lib/Answer.pm
67 examples/bundle-answer/t/answer.t
68 examples/bundle-bzip2/ffi/bz2.fbx
69 examples/bundle-bzip2/ffi/compress.c
70 examples/bundle-bzip2/lib/Bzip2.pm
71 examples/bundle-bzip2/t/bzip2.t
6372 examples/bundle-const/ffi/const.c
6473 examples/bundle-const/ffi/myheader.h
6574 examples/bundle-const/lib/Const.pm
96105 examples/var_array.pl
97106 examples/win32_beep.pl
98107 examples/win32_getSystemTime.pl
108 examples/win32_messagebox.pl
99109 examples/zmq3.pl
100110 ffi/constant.c
101111 ffi/memory.c
110120 inc/My/ConfigH.pm
111121 inc/My/ConfigPl.pm
112122 inc/My/ShareConfig.pm
123 inc/abi/abis-all.json
124 inc/abi/compute-all.pl
113125 inc/bad-5100t.pl
114126 inc/bad-forks.pl
115127 inc/bad-oldperl.pl
128140 inc/probe/complex.c
129141 inc/probe/longdouble.c
130142 inc/probe/recordvalue.c
143 inc/probe/strnlen.c
131144 inc/probe/variadic.c
132145 include/ffi_platypus.h
133146 include/ffi_platypus_bundle.h
168181 lib/FFI/Platypus/Type/PointerSizeBuffer.pm
169182 lib/FFI/Platypus/Type/StringArray.pm
170183 lib/FFI/Platypus/Type/StringPointer.pm
184 lib/FFI/Platypus/Type/WideString.pm
171185 lib/FFI/Platypus/TypeParser.pm
172186 lib/FFI/Platypus/TypeParser/Version0.pm
173187 lib/FFI/Platypus/TypeParser/Version1.pm
189203 maint/tt/accessor_wrapper.tt
190204 perlcriticrc
191205 t/00_diag.t
192 t/01_use.t
193206 t/ffi/align.c
194207 t/ffi/align_array.c
195208 t/ffi/align_fixed.c
251264 t/ffi_platypus_type_pointersizebuffer.t
252265 t/ffi_platypus_type_stringarray.t
253266 t/ffi_platypus_type_stringpointer.t
267 t/ffi_platypus_type_widestring.t
254268 t/ffi_platypus_typeparser.t
255269 t/ffi_platypus_typeparser_version0.t
256270 t/ffi_platypus_typeparser_version1.t
262276 t/forks.t
263277 t/gh117.t
264278 t/gh129.t
279 t/gh323.t
265280 t/lib/Test/Cleanup.pm
266281 t/lib/Test/FauxAttach.pm
267282 t/lib/Test/Platypus.pm
312327 xs/windl.c
313328 xt/author/critic.t
314329 xt/author/eol.t
330 xt/author/example.t
315331 xt/author/no_tabs.t
316332 xt/author/pod.t
317333 xt/author/pod_coverage.t
33 "Graham Ollis <plicease@cpan.org>"
44 ],
55 "dynamic_config" : 1,
6 "generated_by" : "Dist::Zilla version 6.015, CPAN::Meta::Converter version 2.150010",
6 "generated_by" : "Dist::Zilla version 6.024, CPAN::Meta::Converter version 2.150010",
77 "license" : [
88 "perl_5"
99 ],
2929 "ExtUtils::MakeMaker" : "7.12",
3030 "ExtUtils::ParseXS" : "3.30",
3131 "IPC::Cmd" : "0",
32 "JSON::PP" : "0",
33 "parent" : "0",
3234 "perl" : "5.006"
3335 }
3436 },
3537 "develop" : {
38 "recommends" : {
39 "Dist::Zilla::Plugin::AlienBase::Wrapper::Bundle" : "0.26",
40 "Dist::Zilla::Plugin::Author::Plicease::Thanks" : "0",
41 "Dist::Zilla::Plugin::Author::Plicease::Upload" : "0",
42 "Dist::Zilla::Plugin::CopyFilesFromBuild" : "0",
43 "Dist::Zilla::Plugin::InsertExample" : "0.10",
44 "Dist::Zilla::Plugin::Meta::Dynamic::Config" : "0",
45 "Dist::Zilla::Plugin::MetaNoIndex" : "0",
46 "Dist::Zilla::Plugin::PPPort" : "0",
47 "Dist::Zilla::Plugin::Prereqs" : "0",
48 "Dist::Zilla::Plugin::PruneFiles" : "0",
49 "Dist::Zilla::Plugin::RemovePrereqs" : "0",
50 "Dist::Zilla::PluginBundle::Author::Plicease" : "2.65",
51 "ExtUtils::MakeMaker" : "0",
52 "Perl::Critic::Policy::BuiltinFunctions::ProhibitBooleanGrep" : "0",
53 "Perl::Critic::Policy::BuiltinFunctions::ProhibitStringySplit" : "0",
54 "Perl::Critic::Policy::BuiltinFunctions::ProhibitVoidGrep" : "0",
55 "Perl::Critic::Policy::BuiltinFunctions::ProhibitVoidMap" : "0",
56 "Perl::Critic::Policy::ClassHierarchies::ProhibitExplicitISA" : "0",
57 "Perl::Critic::Policy::ClassHierarchies::ProhibitOneArgBless" : "0",
58 "Perl::Critic::Policy::CodeLayout::ProhibitHardTabs" : "0",
59 "Perl::Critic::Policy::CodeLayout::ProhibitTrailingWhitespace" : "0",
60 "Perl::Critic::Policy::CodeLayout::RequireConsistentNewlines" : "0",
61 "Perl::Critic::Policy::Community::ArrayAssignAref" : "0",
62 "Perl::Critic::Policy::Community::BarewordFilehandles" : "0",
63 "Perl::Critic::Policy::Community::ConditionalDeclarations" : "0",
64 "Perl::Critic::Policy::Community::ConditionalImplicitReturn" : "0",
65 "Perl::Critic::Policy::Community::DeprecatedFeatures" : "0",
66 "Perl::Critic::Policy::Community::DiscouragedModules" : "0",
67 "Perl::Critic::Policy::Community::DollarAB" : "0",
68 "Perl::Critic::Policy::Community::Each" : "0",
69 "Perl::Critic::Policy::Community::IndirectObjectNotation" : "0",
70 "Perl::Critic::Policy::Community::LexicalForeachIterator" : "0",
71 "Perl::Critic::Policy::Community::LoopOnHash" : "0",
72 "Perl::Critic::Policy::Community::ModPerl" : "0",
73 "Perl::Critic::Policy::Community::OpenArgs" : "0",
74 "Perl::Critic::Policy::Community::OverloadOptions" : "0",
75 "Perl::Critic::Policy::Community::POSIXImports" : "0",
76 "Perl::Critic::Policy::Community::PackageMatchesFilename" : "0",
77 "Perl::Critic::Policy::Community::PreferredAlternatives" : "0",
78 "Perl::Critic::Policy::Community::StrictWarnings" : "0",
79 "Perl::Critic::Policy::Community::Threads" : "0",
80 "Perl::Critic::Policy::Community::Wantarray" : "0",
81 "Perl::Critic::Policy::Community::WarningsSwitch" : "0",
82 "Perl::Critic::Policy::Community::WhileDiamondDefaultAssignment" : "0",
83 "Perl::Critic::Policy::ControlStructures::ProhibitLabelsWithSpecialBlockNames" : "0",
84 "Perl::Critic::Policy::ControlStructures::ProhibitMutatingListFunctions" : "0",
85 "Perl::Critic::Policy::ControlStructures::ProhibitUnreachableCode" : "0",
86 "Perl::Critic::Policy::InputOutput::ProhibitBarewordFileHandles" : "0",
87 "Perl::Critic::Policy::InputOutput::ProhibitJoinedReadline" : "0",
88 "Perl::Critic::Policy::InputOutput::ProhibitTwoArgOpen" : "0",
89 "Perl::Critic::Policy::Miscellanea::ProhibitFormats" : "0",
90 "Perl::Critic::Policy::Miscellanea::ProhibitUselessNoCritic" : "0",
91 "Perl::Critic::Policy::Modules::ProhibitConditionalUseStatements" : "0",
92 "Perl::Critic::Policy::Modules::RequireNoMatchVarsWithUseEnglish" : "0",
93 "Perl::Critic::Policy::Objects::ProhibitIndirectSyntax" : "0",
94 "Perl::Critic::Policy::RegularExpressions::ProhibitUselessTopic" : "0",
95 "Perl::Critic::Policy::Subroutines::ProhibitNestedSubs" : "0",
96 "Perl::Critic::Policy::ValuesAndExpressions::ProhibitLeadingZeros" : "0",
97 "Perl::Critic::Policy::ValuesAndExpressions::ProhibitMixedBooleanOperators" : "0",
98 "Perl::Critic::Policy::ValuesAndExpressions::ProhibitSpecialLiteralHeredocTerminator" : "0",
99 "Perl::Critic::Policy::ValuesAndExpressions::RequireUpperCaseHeredocTerminator" : "0",
100 "Perl::Critic::Policy::Variables::ProhibitPerl4PackageNames" : "0",
101 "Perl::Critic::Policy::Variables::ProhibitUnusedVariables" : "0",
102 "Software::License::Perl_5" : "0"
103 },
36104 "requires" : {
105 "Convert::Binary::C" : "0",
37106 "Devel::Hide" : "0",
38107 "Devel::PPPort" : "3.28",
39108 "FindBin" : "0",
40109 "Perl::Critic" : "0",
41 "Test2::Require::Module" : "0.000060",
110 "Test2::Require::Module" : "0.000121",
42111 "Test2::Tools::PerlCritic" : "0",
43 "Test2::V0" : "0.000060",
112 "Test2::V0" : "0.000121",
44113 "Test::CPAN::Changes" : "0",
45114 "Test::EOL" : "0",
46115 "Test::Fixme" : "0.07",
48117 "Test::NoTabs" : "0",
49118 "Test::Pod" : "0",
50119 "Test::Pod::Coverage" : "0",
120 "Test::Script" : "0",
51121 "Test::Spelling" : "0",
52122 "Test::Strict" : "0",
53123 "YAML" : "0"
62132 "JSON::PP" : "0",
63133 "List::Util" : "1.45",
64134 "constant" : "1.32",
135 "parent" : "0",
65136 "perl" : "5.008004"
66137 }
67138 },
68139 "test" : {
69140 "requires" : {
70141 "Capture::Tiny" : "0",
71 "Test::More" : "0.98",
142 "Test2::API" : "1.302015",
143 "Test2::V0" : "0.000121",
72144 "perl" : "5.008004"
73145 }
74146 }
86158 },
87159 "x_IRC" : "irc://irc.perl.org/#native"
88160 },
89 "version" : "1.34",
161 "version" : "1.56",
90162 "x_contributors" : [
91163 "Graham Ollis <plicease@cpan.org>",
92164 "Bakkiaraj Murugesan (bakkiaraj)",
99171 "Shlomi Fish (shlomif)",
100172 "Damyan Ivanov",
101173 "Ilya Pavlov (Ilya33)",
102 "Petr Pisar (ppisar)",
174 "Petr P\u00edsa\u0159 (ppisar)",
103175 "Mohammad S Anwar (MANWAR)",
104176 "H\u00e5kon H\u00e6gland (hakonhagland, HAKONH)",
105177 "Meredith (merrilymeredith, MHOWARD)",
106 "Diab Jerius (DJERIUS)"
178 "Diab Jerius (DJERIUS)",
179 "Eric Brine (IKEGAMI)",
180 "szTheory",
181 "Jos\u00e9 Joaqu\u00edn Atria (JJATRIA)",
182 "Pete Houston (openstrike, HOUSTON)"
107183 ],
108 "x_generated_by_perl" : "v5.32.0",
109 "x_serialization_backend" : "Cpanel::JSON::XS version 4.19",
184 "x_generated_by_perl" : "v5.35.4",
185 "x_serialization_backend" : "Cpanel::JSON::XS version 4.26",
110186 "x_spdx_expression" : "Artistic-1.0-Perl OR GPL-1.0-or-later",
111187 "x_use_unsafe_inc" : 0
112188 }
44 build_requires:
55 Capture::Tiny: '0'
66 ExtUtils::CBuilder: '0'
7 Test::More: '0.98'
7 Test2::API: '1.302015'
8 Test2::V0: '0.000121'
89 perl: '5.008004'
910 configure_requires:
1011 Capture::Tiny: '0'
1112 ExtUtils::MakeMaker: '7.12'
1213 ExtUtils::ParseXS: '3.30'
1314 IPC::Cmd: '0'
15 JSON::PP: '0'
16 parent: '0'
1417 perl: '5.006'
1518 dynamic_config: 1
16 generated_by: 'Dist::Zilla version 6.015, CPAN::Meta::Converter version 2.150010'
19 generated_by: 'Dist::Zilla version 6.024, CPAN::Meta::Converter version 2.150010'
1720 license: perl
1821 meta-spec:
1922 url: http://module-build.sourceforge.net/META-spec-v1.4.html
3033 JSON::PP: '0'
3134 List::Util: '1.45'
3235 constant: '1.32'
36 parent: '0'
3337 perl: '5.008004'
3438 resources:
3539 IRC: irc://irc.perl.org/#native
3640 bugtracker: https://github.com/PerlFFI/FFI-Platypus/issues
3741 homepage: https://metacpan.org/pod/FFI::Platypus
3842 repository: git://github.com/PerlFFI/FFI-Platypus.git
39 version: '1.34'
43 version: '1.56'
4044 x_contributors:
4145 - 'Graham Ollis <plicease@cpan.org>'
4246 - 'Bakkiaraj Murugesan (bakkiaraj)'
4953 - 'Shlomi Fish (shlomif)'
5054 - 'Damyan Ivanov'
5155 - 'Ilya Pavlov (Ilya33)'
52 - 'Petr Pisar (ppisar)'
56 - 'Petr Písař (ppisar)'
5357 - 'Mohammad S Anwar (MANWAR)'
5458 - 'Håkon Hægland (hakonhagland, HAKONH)'
5559 - 'Meredith (merrilymeredith, MHOWARD)'
5660 - 'Diab Jerius (DJERIUS)'
57 x_generated_by_perl: v5.32.0
61 - 'Eric Brine (IKEGAMI)'
62 - szTheory
63 - 'José Joaquín Atria (JJATRIA)'
64 - 'Pete Houston (openstrike, HOUSTON)'
65 x_generated_by_perl: v5.35.4
5866 x_serialization_backend: 'YAML::Tiny version 1.73'
5967 x_spdx_expression: 'Artistic-1.0-Perl OR GPL-1.0-or-later'
6068 x_use_unsafe_inc: 0
44 exit;
55 }
66 }
7 # This file was automatically generated by Dist::Zilla::Plugin::Author::Plicease::MakeMaker v2.57.
7 # This file was automatically generated by Dist::Zilla::Plugin::Author::Plicease::MakeMaker v2.68.
88 use strict;
99 use warnings;
1010 use 5.008004;
2121 "Capture::Tiny" => 0,
2222 "ExtUtils::MakeMaker" => "7.12",
2323 "ExtUtils::ParseXS" => "3.30",
24 "IPC::Cmd" => 0
24 "IPC::Cmd" => 0,
25 "JSON::PP" => 0,
26 "parent" => 0
2527 },
2628 "DISTNAME" => "FFI-Platypus",
2729 "LICENSE" => "perl",
5961 "lib/FFI/Platypus/Type/PointerSizeBuffer.pm" => "\$(INST_LIB)/FFI/Platypus/Type/PointerSizeBuffer.pm",
6062 "lib/FFI/Platypus/Type/StringArray.pm" => "\$(INST_LIB)/FFI/Platypus/Type/StringArray.pm",
6163 "lib/FFI/Platypus/Type/StringPointer.pm" => "\$(INST_LIB)/FFI/Platypus/Type/StringPointer.pm",
64 "lib/FFI/Platypus/Type/WideString.pm" => "\$(INST_LIB)/FFI/Platypus/Type/WideString.pm",
6265 "lib/FFI/Platypus/TypeParser.pm" => "\$(INST_LIB)/FFI/Platypus/TypeParser.pm",
6366 "lib/FFI/Platypus/TypeParser/Version0.pm" => "\$(INST_LIB)/FFI/Platypus/TypeParser/Version0.pm",
6467 "lib/FFI/Platypus/TypeParser/Version1.pm" => "\$(INST_LIB)/FFI/Platypus/TypeParser/Version1.pm",
7578 "IPC::Cmd" => 0,
7679 "JSON::PP" => 0,
7780 "List::Util" => "1.45",
78 "constant" => "1.32"
81 "constant" => "1.32",
82 "parent" => 0
7983 },
8084 "TEST_REQUIRES" => {
8185 "Capture::Tiny" => 0,
82 "Test::More" => "0.98"
86 "Test2::API" => "1.302015",
87 "Test2::V0" => "0.000121"
8388 },
84 "VERSION" => "1.34",
89 "VERSION" => "1.56",
8590 "test" => {
8691 "TESTS" => "t/*.t"
8792 }
+103
-31
README less more
44
55 VERSION
66
7 version 1.34
7 version 1.56
88
99 SYNOPSIS
1010
11 use FFI::Platypus;
11 use FFI::Platypus 1.00;
1212
1313 # for all new code you should use api => 1
1414 my $ffi = FFI::Platypus->new( api => 1 );
4646 to reduce common interface specifications to a common format like
4747 JSON that could be shared between different languages.
4848
49 FFI / Platypus could be a bridge to Perl 6
50
51 One of those "other" languages could be Perl 6 and Perl 6 already has
52 an FFI interface I am told.
49 FFI / Platypus could be a bridge to Raku
50
51 One of those "other" languages could be Raku and Raku already has an
52 FFI interface I am told.
5353
5454 FFI / Platypus can be reimplemented
5555
121121
122122 api
123123
124 [version 0.91]
125
124126 Sets the API level. Legal values are
125127
126128 0
136138
137139 All new code should be written with this set to 1! The Platypus
138140 documentation assumes this api level is set.
141
142 2
143
144 Enable version 2 API, which is currently experimental. Using API
145 level 2 prior to Platypus version 2.00 will trigger a (noisy)
146 warning.
147
148 API version 2 is identical to version 1, except:
149
150 Pointer functions that return NULL will return undef instead of
151 empty list
152
153 This fixes a long standing design bug in Platypus.
154
155 Array references may be passed to pointer argument types
156
157 This replicates the behavior of array argument types with no
158 size. So the types sint8* and sint8[] behave identically when an
159 array reference is passed in. They differ in that, as before, you
160 can pass a scalar reference into type sint8*.
139161
140162 lib
141163
247269
248270 Examples:
249271
250 $ffi->type('sint32'); # oly checks to see that sint32 is a valid type
272 $ffi->type('sint32'); # only checks to see that sint32 is a valid type
251273 $ffi->type('sint32' => 'myint'); # creates an alias myint for sint32
252274 $ffi->type('bogus'); # dies with appropriate diagnostic
253275
662684
663685 Integer conversions
664686
665 use FFI::Platypus;
687 use FFI::Platypus 1.00;
666688
667689 my $ffi = FFI::Platypus->new( api => 1 );
668690 $ffi->lib(undef);
681703 libnotify
682704
683705 use FFI::CheckLib;
684 use FFI::Platypus;
706 use FFI::Platypus 1.00;
685707
686708 # NOTE: I ported this from anoter Perl FFI library and it seems to work most
687709 # of the time, but also seems to SIGSEGV sometimes. I saw the same behavior
738760
739761 Allocating and freeing memory
740762
741 use FFI::Platypus;
763 use FFI::Platypus 1.00;
742764 use FFI::Platypus::Memory qw( malloc free memcpy );
743765
744766 my $ffi = FFI::Platypus->new( api => 1 );
798820 });
799821 }
800822
801 # now we can actually use our My::UnixTime class
823 # now we can actually use our Unix::TimeStruct class
802824 my $time = Unix::TimeStruct->localtime;
803825 printf "time is %d:%d:%d %s\n",
804826 $time->tm_hour,
827849 libuuid
828850
829851 use FFI::CheckLib;
830 use FFI::Platypus;
852 use FFI::Platypus 1.00;
831853 use FFI::Platypus::Memory qw( malloc free );
832854
833855 my $ffi = FFI::Platypus->new( api => 1 );
838860 $ffi->attach(uuid_generate => ['uuid_t'] => 'void');
839861 $ffi->attach(uuid_unparse => ['uuid_t','uuid_string'] => 'void');
840862
841 my $uuid = "\0" x 16; # uuid_t
863 my $uuid = "\0" x $ffi->sizeof('uuid_t');
842864 uuid_generate($uuid);
843865
844 my $string = "\0" x 37; # 36 bytes to store a UUID string
845 # + NUL termination
866 my $string = "\0" x $ffi->sizeof('uuid_string');
846867 uuid_unparse($uuid, $string);
847868
848869 print "$string\n";
858879
859880 puts and getpid
860881
861 use FFI::Platypus;
882 use FFI::Platypus 1.00;
862883
863884 my $ffi = FFI::Platypus->new( api => 1 );
864885 $ffi->lib(undef);
873894
874895 Math library
875896
876 use FFI::Platypus;
897 use FFI::Platypus 1.00;
877898 use FFI::CheckLib;
878899
879900 my $ffi = FFI::Platypus->new( api => 1 );
900921
901922 Strings
902923
903 use FFI::Platypus;
904
905 my $ffi = FFI::Platypus->new;
924 use FFI::Platypus 1.00;
925
926 my $ffi = FFI::Platypus->new( api => 1 );
906927 $ffi->lib(undef);
907928 $ffi->attach(puts => ['string'] => 'int');
908929 $ffi->attach(strlen => ['string'] => 'int');
921942
922943 puts(strerror(2));
923944
924 Discussion: Strings are not a native type to libffi but the are handled
925 seamlessly by Platypus.
945 Discussion: ASCII and UTF-8 Strings are not a native type to libffi but
946 the are handled seamlessly by Platypus. If you need to talk to an API
947 that uses so called "wide" strings (APIs which use const wchar_t* or
948 wchar_t*), then you will want to use the wide string type plugin
949 FFI::Platypus::Type::WideString. APIs which use other arbitrary
950 encodings can be accessed by converting your Perl strings manually with
951 the Encode module.
926952
927953 Attach function from pointer
928954
929955 use FFI::TinyCC;
930 use FFI::Platypus;
956 use FFI::Platypus 1.00;
931957
932958 my $ffi = FFI::Platypus->new( api => 1 );
933959 my $tcc = FFI::TinyCC->new;
963989 use constant ZMQ_REQ => 3;
964990 use constant ZMQ_REP => 4;
965991 use FFI::CheckLib qw( find_lib_or_exit );
966 use FFI::Platypus;
992 use FFI::Platypus 1.00;
967993 use FFI::Platypus::Memory qw( malloc );
968994 use FFI::Platypus::Buffer qw( scalar_to_buffer buffer_to_scalar );
969995
10521078
10531079 libarchive
10541080
1055 use FFI::Platypus ();
1056 use FFI::CheckLib qw( find_lib_or_exit );
1081 use FFI::Platypus 1.00;
1082 use FFI::CheckLib qw( find_lib_or_exit );
10571083
10581084 # This example uses FreeBSD's libarchive to list the contents of any
10591085 # archive format that it suppors. We've also filled out a part of
11771203
11781204 unix open
11791205
1180 use FFI::Platypus;
1206 use FFI::Platypus 1.00;
11811207
11821208 {
11831209 package FD;
12261252
12271253 bzip2
12281254
1229 use FFI::Platypus 0.20 (); # 0.20 required for using wrappers
1255 use FFI::Platypus 1.00;
12301256 use FFI::CheckLib qw( find_lib_or_die );
12311257 use FFI::Platypus::Buffer qw( scalar_to_buffer buffer_to_scalar );
12321258 use FFI::Platypus::Memory qw( malloc free );
13071333 return from the wrapper function will be returned back to the original
13081334 caller.
13091335
1336 The Win32 API
1337
1338 use utf8;
1339 use FFI::Platypus 1.00;
1340
1341 my $ffi = FFI::Platypus->new(
1342 api => 1,
1343 lib => [undef],
1344 );
1345
1346 # see FFI::Platypus::Lang::Win32
1347 $ffi->lang('Win32');
1348
1349 # Send a Unicode string to the Windows API MessageBoxW function.
1350 use constant MB_OK => 0x00000000;
1351 use constant MB_DEFAULT_DESKTOP_ONLY => 0x00020000;
1352 $ffi->attach( [MessageBoxW => 'MessageBox'] => [ 'HWND', 'LPCWSTR', 'LPCWSTR', 'UINT'] => 'int' );
1353 MessageBox(undef, "I ❤️ Platypus", "Confession", MB_OK|MB_DEFAULT_DESKTOP_ONLY);
1354
1355 Discussion: The API used by Microsoft Windows present some unique
1356 challenges. On 32 bit systems a different ABI is used than what is used
1357 by the standard C library. It also provides a rats nest of type
1358 aliases. Finally if you want to talk Unicode to any of the Windows API
1359 you will need to use UTF-16LE instead of utf-8 which is native to Perl.
1360 (The Win32 API refers to these as LPWSTR and LPCWSTR types). As much as
1361 possible the Win32 "language" plugin attempts to handle this
1362 transparently. For more details see FFI::Platypus::Lang::Win32.
1363
13101364 bundle your own code
13111365
13121366 ffi/foo.c:
13541408
13551409 use strict;
13561410 use warnings;
1357 use FFI::Platypus;
1411 use FFI::Platypus 1.00;
13581412
13591413 {
13601414 my $ffi = FFI::Platypus->new( api => 1 );
16661720
16671721 NativeCall
16681722
1669 Promising interface to Platypus inspired by Perl 6.
1723 Promising interface to Platypus inspired by Raku.
16701724
16711725 FFI::Platypus::Type
16721726
17301784
17311785 Documentation and tools for using Platypus with the Assembly
17321786
1787 FFI::Platypus::Lang::Win32
1788
1789 Documentation and tools for using Platypus with the Win32 API.
1790
1791 Wasm and Wasm::Wasmtime
1792
1793 Modules for writing WebAssembly bindings in Perl. This allows you to
1794 call functions written in any language supported by WebAssembly.
1795 These modules are also implemented using Platypus.
1796
17331797 Convert::Binary::C
17341798
17351799 A great interface for decoding C data structures, including structs,
18201884
18211885 Ilya Pavlov (Ilya33)
18221886
1823 Petr Pisar (ppisar)
1887 Petr Písař (ppisar)
18241888
18251889 Mohammad S Anwar (MANWAR)
18261890
18291893 Meredith (merrilymeredith, MHOWARD)
18301894
18311895 Diab Jerius (DJERIUS)
1896
1897 Eric Brine (IKEGAMI)
1898
1899 szTheory
1900
1901 José Joaquín Atria (JJATRIA)
1902
1903 Pete Houston (openstrike, HOUSTON)
18321904
18331905 COPYRIGHT AND LICENSE
18341906
116116 - fbx
117117 - strndup
118118 - Petr
119 - Pisar
119 - Písař
120120 - ppisar
121121 - Anwar
122122 - MANWAR
136136 - kindof
137137 - thet
138138 - unitof
139 - const
140 - IKEGAMI
141 - BMP
142 - WebAssembly
143 - sensical
144 - eXtensions
145 - szTheory
146 - JJATRIA
147 - Joaqu
148 - Jos
149 - openstrike
150 - Raku
151 - cxxld
139152
140153 pod_coverage:
141154 skip: 0
0 use strict;
1 use warnings;
0 use Test2::V0 -no_srand => 1;
21 use FFI::Platypus;
3 use Test::More;
42 use Math::Complex;
53 use Test::LeakTrace qw( no_leaks_ok );
64
0 use strict;
1 use warnings;
0 use Test2::V0 -no_srand => 1;
21 use FFI::Platypus;
3 use Test::More;
42 use Math::Complex;
53 use Test::LeakTrace qw( no_leaks_ok );
64
0 use strict;
1 use warnings;
0 use Test2::V0 -no_srand => 1;
21 use FFI::Platypus;
3 use Test::More;
42 use Math::Complex;
53 use Test::LeakTrace qw( no_leaks_ok );
64
0 use strict;
1 use warnings;
0 use Test2::V0 -no_srand => 1;
21 use FFI::Platypus;
3 use Test::More;
42 use Math::Complex;
53 use Test::LeakTrace qw( no_leaks_ok );
64
0 use strict;
1 use warnings;
0 use Test2::V0 -no_srand => 1;
21 use lib 't/lib';
32 use Test::FauxAttach;
43 use FFI::Platypus;
5 use Test::More;
64 use Math::Complex;
75 use Test::LeakTrace qw( no_leaks_ok );
86 use FFI::Platypus::Record::Meta;
0 use strict;
1 use warnings;
0 use Test2::V0 -no_srand => 1;
21 use FFI::Platypus;
3 use Test::More;
42 use Math::Complex;
53 use Test::LeakTrace qw( no_leaks_ok );
64
3331 }
3432 else
3533 {
36 is_deeply $ffi->cast( 'opaque' => $type, $ptr ), [1,2];
34 is $ffi->cast( 'opaque' => $type, $ptr ), [1,2];
3735 }
3836
3937 $free->call($ptr);
5755 $ffi->cast( 'opaque' => 'string[2]', $ptr );
5856 };
5957
60 is_deeply $ffi->cast( 'opaque' => 'string[2]', $ptr ), ["frooble",undef];
58 is $ffi->cast( 'opaque' => 'string[2]', $ptr ), ["frooble",undef];
6159
6260 no_leaks_ok {
6361 $ffi->cast( 'opaque' => 'opaque[2]', $ptr );
6462 };
6563
66 is_deeply $ffi->cast( 'opaque' => 'opaque[2]', $ptr ), [$frooble,undef];
64 is $ffi->cast( 'opaque' => 'opaque[2]', $ptr ), [$frooble,undef];
6765
6866 $free->call($frooble);
6967 $free->call($ptr);
8684 $ffi->cast( 'opaque' => $type, $ptr );
8785 };
8886
89 is_deeply $ffi->cast( 'opaque' => $type, $ptr ), [[1.0,2.0],[3.0,4.0]];
87 is $ffi->cast( 'opaque' => $type, $ptr ), [[1.0,2.0],[3.0,4.0]];
9088
9189 $free->call($ptr);
9290 };
0 use strict;
1 use warnings;
0 use Test2::V0 -no_srand => 1;
21 use FFI::Platypus;
3 use Test::More;
42 use Math::Complex;
53 use Test::LeakTrace qw( no_leaks_ok );
64
0 use strict;
1 use warnings;
0 use Test2::V0 -no_srand => 1;
21 use FFI::Platypus;
3 use Test::More;
42 use Math::Complex;
53 use Test::LeakTrace qw( no_leaks_ok );
64
0 use strict;
1 use warnings;
0 use Test2::V0 -no_srand => 1;
21 use lib 't/lib';
32 use Test::FauxAttach;
43 use FFI::Platypus;
5 use Test::More;
64 use Test::LeakTrace qw( no_leaks_ok );
75 use FFI::Platypus::Memory qw( malloc free memset strdup );
86
0 use strict;
1 use warnings;
0 use Test2::V0 -no_srand => 1;
21 use lib 't/lib';
32 use Test::FauxAttach;
43 use FFI::Platypus;
5 use Test::More;
64 use Math::Complex;
75 use Test::LeakTrace qw( no_leaks_ok );
86 use FFI::Platypus::Record::Meta;
22 license = Perl_5
33 copyright_holder = Graham Ollis
44 copyright_year = 2015,2016,2017,2018,2019,2020
5 version = 1.34
5 version = 1.56
66
77 ; authordep ExtUtils::MakeMaker
88
99 [@Author::Plicease]
10 :version = 2.49
10 :version = 2.65
1111 release_tests = 1
1212 installer = Author::Plicease::MakeMaker
1313 copy_mm = 1
1717 diag = +Math::LongDouble
1818 diag = +Devel::Hide
1919 diag = +forks
20 test2_v0 = 1
2021 irc = irc://irc.perl.org/#native
21 travis_status = 1
2222 github_user = PerlFFI
2323 github_repo = FFI-Platypus
24 workflow = windows
25 workflow = macos
24
25 workflow = static
26 workflow = linux
27 workflow = windows
28 workflow = macos
29 workflow = cygwin
30 workflow = msys2-mingw
31
2632
2733 underscore_eval_version = 0
2834
126132 ; comes with Perl 5.8.1 or better
127133 remove = strict
128134 remove = warnings
129 remove = base
130135 remove = overload
131136 remove = open
132137 remove = bytes
173178 ExtUtils::MakeMaker = 7.12
174179 IPC::Cmd = 0
175180 Capture::Tiny = 0
181 JSON::PP = 0
182 parent = 0
176183
177184 ; 3.30 is actually pretty recent. If Parse is upgraded
178185 ; after running `perl Makefile.PL` but before running `make`
213220 directory = examples
214221
215222 [InsertExample]
223 :version = 0.10
216224 remove_boiler = 1
217225
218226 [Author::Plicease::Thanks]
230238 contributor = Shlomi Fish (shlomif)
231239 contributor = Damyan Ivanov
232240 contributor = Ilya Pavlov (Ilya33)
233 contributor = Petr Pisar (ppisar)
241 contributor = Petr Písař (ppisar)
234242 contributor = Mohammad S Anwar (MANWAR)
235243 contributor = Håkon Hægland (hakonhagland, HAKONH)
236244 contributor = Meredith (merrilymeredith, MHOWARD)
237245 contributor = Diab Jerius (DJERIUS)
246 contributor = Eric Brine (IKEGAMI)
247 contributor = szTheory
248 contributor = José Joaquín Atria (JJATRIA)
249 contributor = Pete Houston (openstrike, HOUSTON)
238250
239251 [PruneFiles]
240252 match = /tmpbuild\.
3434
3535 package My::Platypus;
3636
37 use base qw( FFI::Platypus );
37 use parent qw( FFI::Platypus );
3838
3939 sub find_symbol
4040 {
00 use strict;
11 use warnings;
2 use FFI::Platypus ();
3 use FFI::CheckLib qw( find_lib_or_exit );
2 use FFI::Platypus 1.00;
3 use FFI::CheckLib qw( find_lib_or_exit );
44
55 # This example uses FreeBSD's libarchive to list the contents of any
66 # archive format that it suppors. We've also filled out a part of
00 use strict;
11 use warnings;
22 use FFI::TinyCC;
3 use FFI::Platypus;
3 use FFI::Platypus 1.00;
44
55 my $ffi = FFI::Platypus->new( api => 1 );
66 my $tcc = FFI::TinyCC->new;
0 #include <answer.h>
1
2 int
3 answer(void)
4 {
5 /* the answer to life the universe and everything */
6 return 42;
7 }
0 use strict;
1 use warnings;
2
3 our $DIR;
4
5 return {
6 cflags => "-I/include",
7 source => "$DIR/*.c",
8 }
0 #ifndef ANSWER_H
1 #define ANSWER_H
2
3 int answer(void);
4
5 #endif
0 package Answer;
1
2 use strict;
3 use warnings;
4 use FFI::Platypus 1.00;
5 use Exporter qw( import );
6
7 our @EXPORT = qw( answer );
8
9 my $ffi = FFI::Platypus->new( api => 1 );
10 $ffi->bundle;
11 $ffi->attach( answer => [] => 'int' );
12
13 1;
0 use Test2::V0;
1 use Answer;
2
3 is(answer(), 42);
4
5 done_testing;
0 use strict;
1 use warnings;
2
3 {
4 alien => ['Alien::Libbz2'],
5 source => ['ffi/*.c'],
6 };
0 #include <bzlib.h>
1 #include <stdlib.h>
2
3 int
4 bzip2__new(bz_stream **stream, int blockSize100k, int verbosity, int workFactor )
5 {
6 *stream = malloc(sizeof(bz_stream));
7 (*stream)->bzalloc = NULL;
8 (*stream)->bzfree = NULL;
9 (*stream)->opaque = NULL;
10
11 return BZ2_bzCompressInit(*stream, blockSize100k, verbosity, workFactor );
12 }
0 package Bzip2;
1
2 use strict;
3 use warnings;
4 use FFI::Platypus 1.00;
5 use FFI::Platypus::Memory qw( free );
6
7 my $ffi = FFI::Platypus->new( api => 1 );
8 $ffi->bundle;
9
10 $ffi->mangler(sub {
11 my $name = shift;
12 $name =~ s/^/bzip2__/ unless $name =~ /^BZ2_/;
13 $name;
14 });
15
16 =head2 new
17
18 my $bzip2 = Bzip2->new($block_size_100k, $verbosity, $work_flow);
19
20 =cut
21
22 $ffi->attach( new => ['opaque*', 'int', 'int', 'int'] => 'int' => sub {
23 my $xsub = shift;
24 my $class = shift;
25 my $ptr;
26 my $ret = $xsub->(\$ptr, @_);
27 return bless \$ptr, $class;
28 });
29
30 $ffi->attach( [ BZ2_bzCompressEnd => 'DESTROY' ] => ['opaque'] => 'int' => sub {
31 my $xsub = shift;
32 my $self = shift;
33 my $ret = $xsub->($$self);
34 free $$self;
35 });
36
37 1;
0 use Test2::V0;
1 use Bzip2;
2
3 subtest 'compress' => sub {
4 my $bzip2 = Bzip2->new;
5 isa_ok $bzip2, 'Bzip2';
6 };
7
8 done_testing;
11
22 use strict;
33 use warnings;
4 use FFI::Platypus;
4 use FFI::Platypus 1.00;
55
66 {
77 my $ffi = FFI::Platypus->new( api => 1 );
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0;
31 use Const;
42
53 foreach my $name (sort keys %Const::)
11
22 use strict;
33 use warnings;
4 use FFI::Platypus;
4 use FFI::Platypus 1.00;
55
66 {
77 my $ffi = FFI::Platypus->new( api => 1 );
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0;
31 use Foo;
42
53 my $foo = Foo->new("platypus", 10);
11
22 use strict;
33 use warnings;
4 use FFI::Platypus;
4 use FFI::Platypus 1.00;
55
66 our $VERSION = '1.00';
77
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0;
31 use Init;
42
53 ok 'did not crash';
00 use strict;
11 use warnings;
2 use FFI::Platypus 0.20 (); # 0.20 required for using wrappers
2 use FFI::Platypus 1.00;
33 use FFI::CheckLib qw( find_lib_or_die );
44 use FFI::Platypus::Buffer qw( scalar_to_buffer buffer_to_scalar );
55 use FFI::Platypus::Memory qw( malloc free );
00 use strict;
11 use warnings;
2 use FFI::Platypus;
2 use FFI::Platypus 1.00;
33
4 my $ffi = FFI::Platypus->new;
4 my $ffi = FFI::Platypus->new( api => 1 );
55 $ffi->lib(undef);
66 $ffi->type('int' => 'character');
77
00 use strict;
11 use warnings;
2 use FFI::Platypus;
2 use FFI::Platypus 1.00;
33
44 my $ffi = FFI::Platypus->new( api => 1 );
55 $ffi->lib('./closure.so');
00 use strict;
11 use warnings;
2 use FFI::Platypus;
2 use FFI::Platypus 1.00;
33
44 my $ffi = FFI::Platypus->new( api => 1 );
55 $ffi->lib('./closure.so');
00 use strict;
11 use warnings;
2 use FFI::Platypus;
2 use FFI::Platypus 1.00;
33
44 {
55 package FD;
00 use strict;
11 use warnings;
2 use FFI::Platypus;
2 use FFI::Platypus 1.00;
33
44 my $ffi = FFI::Platypus->new( api => 1 );
55 $ffi->lib(undef);
00 use strict;
11 use warnings;
2 use FFI::Platypus;
2 use FFI::Platypus 1.00;
33
44 my $ffi = FFI::Platypus->new( api => 1 );
55 $ffi->lib(undef);
00 use strict;
11 use warnings;
2 use FFI::Platypus;
2 use FFI::Platypus 1.00;
33
4 my $ffi = FFI::Platypus->new;
4 my $ffi = FFI::Platypus->new( api => 1 );
55
6 foreach my $type_name (sort FFI::Platypus->types)
6 foreach my $type_name (sort $ffi->types)
77 {
88 my $meta = $ffi->type_meta($type_name);
9 next unless $meta->{element_type} eq 'int';
9 next unless defined $meta->{element_type} && $meta->{element_type} eq 'int';
1010 printf "%20s %s\n", $type_name, $meta->{ffi_type};
1111 }
00 use strict;
11 use warnings;
2 use FFI::Platypus;
2 use FFI::Platypus 1.00;
33 use FFI::Platypus::Memory qw( malloc free memcpy );
44
55 my $ffi = FFI::Platypus->new( api => 1 );
00 use strict;
11 use warnings;
2 use FFI::Platypus;
2 use FFI::Platypus 1.00;
33 use FFI::CheckLib;
44
55 my $ffi = FFI::Platypus->new( api => 1 );
00 use strict;
11 use warnings;
22 use FFI::CheckLib;
3 use FFI::Platypus;
3 use FFI::Platypus 1.00;
44
55 # NOTE: I ported this from anoter Perl FFI library and it seems to work most
66 # of the time, but also seems to SIGSEGV sometimes. I saw the same behavior
00 use strict;
11 use warnings;
2 use FFI::Platypus;
2 use FFI::Platypus 1.00;
33
44 my $ffi = FFI::Platypus->new( api => 1 );
55 $ffi->lib(undef);
00 use strict;
11 use warnings;
2 use FFI::Platypus;
2 use FFI::Platypus 1.00;
33
4 my $ffi = FFI::Platypus->new;
4 my $ffi = FFI::Platypus->new( api => 1 );
55 $ffi->lib(undef);
66 $ffi->attach(puts => ['string'] => 'int');
77 $ffi->attach(strlen => ['string'] => 'int');
00 use strict;
11 use warnings;
22 use Convert::Binary::C;
3 use FFI::Platypus;
3 use FFI::Platypus 1.00;
44 use Data::Dumper qw( Dumper );
55
66 my $c = Convert::Binary::C->new;
00 use strict;
11 use warnings;
22
3 package My::UnixTime;
3 package Unix::TimeStruct;
44
5 use FFI::Platypus;
5 use FFI::Platypus 1.00;
66 use FFI::TinyCC;
77 use FFI::TinyCC::Inline 'tcc_eval';
88
3434 }
3535 };
3636
37 # To use My::UnixTime as a record class, we need to
37 # To use Unix::TimeStruct as a record class, we need to
3838 # specify a size for the record, a function called
3939 # either ffi_record_size or _ffi_record_size should
4040 # return the size in bytes. This function has to
4343
4444 my $ffi = FFI::Platypus->new( api => 1 );
4545 $ffi->lib(undef);
46 # define a record class My::UnixTime and alias it
46 # define a record class Unix::TimeStruct and alias it
4747 # to "tm"
48 $ffi->type("record(My::UnixTime)*" => 'tm');
48 $ffi->type("record(Unix::TimeStruct)*" => 'tm');
4949
5050 # attach the C localtime function as a constructor
5151 $ffi->attach( [ localtime => '_new' ] => ['time_t*'] => 'tm' );
8383
8484 package main;
8585
86 # now we can actually use our My::UnixTime class
87 my $time = My::UnixTime->new;
86 # now we can actually use our Unix::TimeStruct class
87 my $time = Unix::TimeStruct->new;
8888 printf "time is %d:%d:%d\n", $time->get_hour, $time->get_min, $time->get_sec;
00 use strict;
11 use warnings;
22
3 package My::UnixTime;
3 package Unix::TimeStruct;
44
5 use FFI::Platypus 1.00;
56 use FFI::Platypus::Record;
67
78 record_layout_1(qw(
2021
2122 my $ffi = FFI::Platypus->new( api => 1 );
2223 $ffi->lib(undef);
23 # define a record class My::UnixTime and alias it to "tm"
24 $ffi->type("record(My::UnixTime)*" => 'tm');
24 # define a record class Unix::TimeStruct and alias it to "tm"
25 $ffi->type("record(Unix::TimeStruct)*" => 'tm');
2526
2627 # attach the C localtime function as a constructor
2728 $ffi->attach( localtime => ['time_t*'] => 'tm', sub {
3233
3334 package main;
3435
35 # now we can actually use our My::UnixTime class
36 my $time = My::UnixTime->localtime;
36 # now we can actually use our Unix::TimeStruct class
37 my $time = Unix::TimeStruct->localtime;
3738 printf "time is %d:%d:%d %s\n",
3839 $time->tm_hour,
3940 $time->tm_min,
4040 });
4141 }
4242
43 # now we can actually use our My::UnixTime class
43 # now we can actually use our Unix::TimeStruct class
4444 my $time = Unix::TimeStruct->localtime;
4545 printf "time is %d:%d:%d %s\n",
4646 $time->tm_hour,
00 use strict;
11 use warnings;
22 use FFI::CheckLib;
3 use FFI::Platypus;
3 use FFI::Platypus 1.00;
44 use FFI::Platypus::Memory qw( malloc free );
55
66 my $ffi = FFI::Platypus->new( api => 1 );
1111 $ffi->attach(uuid_generate => ['uuid_t'] => 'void');
1212 $ffi->attach(uuid_unparse => ['uuid_t','uuid_string'] => 'void');
1313
14 my $uuid = "\0" x 16; # uuid_t
14 my $uuid = "\0" x $ffi->sizeof('uuid_t');
1515 uuid_generate($uuid);
1616
17 my $string = "\0" x 37; # 36 bytes to store a UUID string
18 # + NUL termination
17 my $string = "\0" x $ffi->sizeof('uuid_string');
1918 uuid_unparse($uuid, $string);
2019
2120 print "$string\n";
00 use strict;
11 use warnings;
2 use FFI::Platypus;
2 use FFI::Platypus 1.00;
33
4 my $ffi = FFI::Platypus->new( api => 1 )
4 my $ffi = FFI::Platypus->new( api => 1 );
55 $ffi->lib('./var_array.so');
66
77 $ffi->attach( sum => [ 'int[]', 'int' ] => 'int' );
00 use strict;
11 use warnings;
2 use FFI::Platypus;
2 use FFI::Platypus 1.00;
33
44 my($freq, $duration) = @_;
55 $freq ||= 750;
0 use strict;
1 use warnings;
2 use utf8;
3 use FFI::Platypus 1.00;
4
5 my $ffi = FFI::Platypus->new(
6 api => 1,
7 lib => [undef],
8 );
9
10 # see FFI::Platypus::Lang::Win32
11 $ffi->lang('Win32');
12
13 # Send a Unicode string to the Windows API MessageBoxW function.
14 use constant MB_OK => 0x00000000;
15 use constant MB_DEFAULT_DESKTOP_ONLY => 0x00020000;
16 $ffi->attach( [MessageBoxW => 'MessageBox'] => [ 'HWND', 'LPCWSTR', 'LPCWSTR', 'UINT'] => 'int' );
17 MessageBox(undef, "I ❤️ Platypus", "Confession", MB_OK|MB_DEFAULT_DESKTOP_ONLY);
18
44 use constant ZMQ_REQ => 3;
55 use constant ZMQ_REP => 4;
66 use FFI::CheckLib qw( find_lib_or_exit );
7 use FFI::Platypus;
7 use FFI::Platypus 1.00;
88 use FFI::Platypus::Memory qw( malloc );
99 use FFI::Platypus::Buffer qw( scalar_to_buffer buffer_to_scalar );
1010
3737 char *news;
3838 size_t size;
3939
40 #ifdef FFI_PL_PROBE_STRNLEN
4041 size = strnlen(olds, max);
42 #else
43 for(size=0; size <max && olds[size] != '\0'; size++)
44 ;
45 #endif
4146 news = malloc(size+1);
4247 if(news != NULL)
4348 {
0 #include <ffi.h>
1 #include <stdlib.h>
2 #include <string.h>
0 #include <ffi_platypus.h>
31
42 #ifdef _MSC_VER
53 #define EXPORT __declspec(dllexport)
64 #else
75 #define EXPORT
86 #endif
9
10 typedef struct meta_t {
11 ffi_type top;
12 ffi_type *elements[0];
13 } meta_t;
147
158 /*
169 * Question: this is the documented way of creating a struct type.
1912 */
2013
2114 EXPORT
22 meta_t *
23 ffi_platypus_record_meta__new(ffi_type *list[])
15 ffi_pl_record_meta_t *
16 ffi_platypus_record_meta__new(ffi_type *list[], int safe_to_return_from_closure)
2417 {
2518 int size, i;
26 meta_t *t;
19 ffi_pl_record_meta_t *t;
2720
2821 for(size=0; list[size] != NULL; size++)
2922 ;
3023
31 t = malloc(sizeof(meta_t) + sizeof(ffi_type*)*(size+1) );
24 t = malloc(sizeof(ffi_pl_record_meta_t) + sizeof(ffi_type*)*(size+1) );
3225 if(t == NULL)
3326 return NULL;
3427
35 t->top.size = 0;
36 t->top.alignment = 0;
37 t->top.type = FFI_TYPE_STRUCT;
38 t->top.elements = (ffi_type**) &t->elements;
28 t->ffi_type.size = 0;
29 t->ffi_type.alignment = 0;
30 t->ffi_type.type = FFI_TYPE_STRUCT;
31 t->ffi_type.elements = (ffi_type**) &t->elements;
32
33 t->can_return_from_closure = safe_to_return_from_closure;
3934
4035
4136 for(i=0; i<size+1; i++)
4843
4944 EXPORT
5045 ffi_type *
51 ffi_platypus_record_meta__ffi_type(meta_t *t)
46 ffi_platypus_record_meta__ffi_type(ffi_pl_record_meta_t *t)
5247 {
53 return &t->top;
48 return &t->ffi_type;
5449 }
5550
5651 EXPORT
5752 size_t
58 ffi_platypus_record_meta__size(meta_t *t)
53 ffi_platypus_record_meta__size(ffi_pl_record_meta_t *t)
5954 {
60 return t->top.size;
55 return t->ffi_type.size;
6156 }
6257
6358 EXPORT
6459 unsigned short
65 ffi_platypus_record_meta__alignment(meta_t *t)
60 ffi_platypus_record_meta__alignment(ffi_pl_record_meta_t *t)
6661 {
67 return t->top.alignment;
62 return t->ffi_type.alignment;
6863 }
6964
7065 EXPORT
7166 ffi_type **
72 ffi_platypus_record_meta__element_pointers(meta_t *t)
67 ffi_platypus_record_meta__element_pointers(ffi_pl_record_meta_t *t)
7368 {
74 return t->top.elements;
69 return t->ffi_type.elements;
7570 }
7671
7772 EXPORT
7873 void
79 ffi_platypus_record_meta__DESTROY(meta_t *t)
74 ffi_platypus_record_meta__DESTROY(ffi_pl_record_meta_t *t)
8075 {
8176 free(t);
8277 }
1313 # for this [AlienBase::Wrapper::Bundle]
1414
1515 # ABSTRACT: Compiler and linker wrapper for Alien
16 our $VERSION = '2.33'; # VERSION
16 our $VERSION = '2.44'; # VERSION
1717
1818
1919 sub _join
2020 {
21 join ' ', map { s/(\s)/\\$1/g; $_ } map { "$_" } @_; ## no critic (ControlStructures::ProhibitMutatingListFunctions)
21 join ' ',
22 map {
23 my $x = $_;
24 $x =~ s/(\s)/\\$1/g;
25 $x;
26 } @_;
2227 }
2328
2429 sub new
316321
317322 =head1 VERSION
318323
319 version 2.33
324 version 2.44
320325
321326 =head1 SYNOPSIS
322327
542547
543548 Joel Berger (JBERGER)
544549
545 Petr Pisar (ppisar)
550 Petr Písař (ppisar)
546551
547552 Lance Wicks (LANCEW)
548553
559564 Paul Evans (leonerd, PEVANS)
560565
561566 Håkon Hægland (hakonhagland, HAKONH)
567
568 nick nauwelaerts (INPHOBIA)
562569
563570 =head1 COPYRIGHT AND LICENSE
564571
22 use strict;
33 use warnings;
44 use File::Spec ();
5 use base qw( My::ConfigPl );
5 use parent qw( My::ConfigPl );
66
77 sub dir { File::Spec->catdir( qw( _mm )) }
88 sub file { File::Spec->catfile( shift->dir, qw( config.pl )) }
1515 use FFI::Probe::Runner::Builder;
1616 use File::Glob qw( bsd_glob );
1717 use File::Basename qw( basename );
18 use JSON::PP qw( decode_json );
1819
1920 my @probe_types = split /\n/, <<EOF;
2021 char
5354 intptr_t
5455 enum
5556 senum
57 intmax_t
58 uintmax_t
5659 EOF
5760
5861 my @extra_probe_types = split /\n/, <<EOF;
350353 if($cpp_output =~ m/typedef\s+enum\s+ffi_abi\s+{(.*?)}/s)
351354 {
352355 my $enum = $1;
356 my %seen;
353357 while($enum =~ s/FFI_([A-Z_0-9]+)//)
354358 {
355359 my $abi = $1;
360 next if $seen{$abi};
361 $seen{$abi}++;
356362 next if $abi =~ /^(FIRST|LAST)_ABI$/;
357363 $probe->check_eval(
358364 decl => [
375381 }
376382 else
377383 {
378 print "Unable to verify any ffi_abis.\n";
379 print "only default ABI will be available\n";
384 $probe->log("[[[ Unable to verify any ffi_abis ]]]");
385 print "*** Unable to detect ffi_abis ***\n";
386 print "[[[ Unable to verify any ffi_abis ]]]\n";
387 print "[[[ will try all known ABIs ]]]\n";
380388 }
381389 }
382390 else
383391 {
384 print "Unable to find ffi_abi enum.\n";
385 print "only default ABI will be available\n";
392 $probe->log("[[[ ffi_abi enum not found ]]]");
393 print "*** Unable to detect ffi_abis ***\n";
394 print "[[[ ffi_abi enum not found ]]]\n";
395 print "[[[ will try all known ABIs ]]]\n";
386396 }
387397 }
388398 else
389399 {
390 print "C pre-processor failed...\n";
391 print "only default ABI will be available\n";
400 $probe->log("[[[ C pre-processor failed... ]]]");
401 print "*** Unable to detect ffi_abis ***\n";
402 print "[[[ C pre-processor failed... ]]]\n";
403 print "[[[ will try all known ABIs ]]]\n";
404 }
405
406 unless(%abi)
407 {
408 if($probe->check_eval(
409 decl => [
410 "#include \"ffi_platypus.h\"",
411 ],
412 eval => {
413 "abi.default_abi" => [ '%d' => "FFI_DEFAULT_ABI" ],
414 },
415 ))
416 {
417 open my $fh, '<', 'inc/abi/abis-all.json'
418 or die "unable to read abis-all.json $!";
419 my @abis = @{ decode_json(do { local $/; <$fh> }) };
420 close $fh;
421
422 foreach my $abi (@abis)
423 {
424 $probe->check_eval(
425 decl => [
426 "#include \"ffi_platypus.h\"",
427 ],
428 stmt => [
429 "ffi_cif cif;",
430 "ffi_type *args[1];",
431 "ffi_abi abi;",
432 "if(ffi_prep_cif(&cif, FFI_$abi, 0, &ffi_type_void, args) != FFI_OK) { return 2; }",
433 ],
434 eval => {
435 "abi.@{[ lc $abi ]}" => [ '%d' => "FFI_$abi" ],
436 },
437 );
438 }
439
440 %abi = %{ $probe->data->{abi} || {} };
441 }
442 else
443 {
444 $probe->log("[[[ fatal: unable to determine even the default ABI ]]]");
445 print "Unable to determine even the default ABI\n";
446 die "unable to configure Platypus";
447 }
392448 }
393449
394450 $ch->write_config_h;
22 use strict;
33 use warnings;
44 use File::Spec ();
5 use base qw( My::ConfigPl );
5 use parent qw( My::ConfigPl );
66
77 sub dir { File::Spec->catdir( qw( blib lib auto share dist FFI-Platypus )) }
88 sub file { File::Spec->catfile( shift->dir, qw( config.pl )) }
0 [
1 "AIX",
2 "ARCOMPACT",
3 "COMPAT",
4 "COMPAT_GCC_SYSV",
5 "COMPAT_LINUX",
6 "COMPAT_LINUX64",
7 "COMPAT_LINUX_SOFT_FLOAT",
8 "COMPAT_SYSV",
9 "DARWIN",
10 "EABI",
11 "EFI64",
12 "ELFBSD",
13 "FASTCALL",
14 "GNUW64",
15 "LINUX",
16 "LINUX_LONG_DOUBLE_128",
17 "LINUX_LONG_DOUBLE_IEEE128",
18 "LINUX_STRUCT_ALIGN",
19 "MIPS_O32",
20 "MS_CDECL",
21 "N32",
22 "N32_SOFT_FLOAT",
23 "N64",
24 "N64_SOFT_FLOAT",
25 "O32",
26 "O32_SOFT_FLOAT",
27 "OBSD",
28 "OSF",
29 "PA32",
30 "PA64",
31 "PASCAL",
32 "REGISTER",
33 "STDCALL",
34 "SYSV",
35 "SYSV_IBM_LONG_DOUBLE",
36 "SYSV_LONG_DOUBLE_128",
37 "SYSV_SOFT_FLOAT",
38 "SYSV_STRUCT_RET",
39 "THISCALL",
40 "UNIX",
41 "UNIX64",
42 "UNUSED_1",
43 "UNUSED_2",
44 "UNUSED_3",
45 "V8",
46 "V9",
47 "VFP",
48 "WIN64"
49 ]
0 use strict;
1 use warnings;
2 use feature qw( say );
3 use Path::Tiny qw( path );
4 use Git::Wrapper;
5 use File::chdir;
6 use JSON::PP ();
7
8 # Only intended for use by the Platypus maintainer!
9 # Sometimes detecting the ABIs from the C compiler pre-processor is unreliable
10 # so we can look in the libffi source for all possible ABIs for all possible
11 # platforms and just try them all. This computes the list from the latest
12 # source (or libffi directory as specified by LIBFFI_ROOT). This list will
13 # used by the config step to detect ABIs available on your platform.
14
15 my $libffi_root;
16
17 if(defined $ENV{LIBFFI_ROOT})
18 {
19 die "no such directory: $ENV{LIBFFI_ROOT}" unless -d $ENV{LIBFFI_ROOT};
20 $libffi_root = path($ENV{LIBFFI_ROOT});
21 }
22 else
23 {
24 require Git::Wrapper;
25 $libffi_root = Path::Tiny->tempdir;
26 my $git = Git::Wrapper->new($libffi_root);
27 $git->clone('--depth=2', 'https://github.com/libffi/libffi.git', $libffi_root);
28 }
29
30 say $libffi_root;
31
32 my %abis;
33
34 $libffi_root->visit(
35 sub {
36 my($path) = @_;
37 return if $path->is_dir;
38 return unless $path->basename eq 'ffitarget.h';
39 say ' ' . $path->relative($libffi_root);
40
41 my $c = $path->slurp;
42 if($c =~ m/typedef\s+enum\s+ffi_abi\s+{(.*?)}/s)
43 {
44 my $c = $1;
45 while($c =~ s/FFI_([A-Z_0-9]+)//)
46 {
47 my $abi = $1;
48 next if $abi =~ /^(FIRST|LAST|DEFAULT)_ABI$/;
49 say ' ', $abi;
50 $abis{$abi}++;
51 }
52 }
53 else
54 {
55 say ' no abis';
56 }
57 },
58 { recurse => 1 },
59 );
60
61 path(__FILE__)->parent->child("abis-all.json")->spew_raw(JSON::PP->new->pretty(1)->encode([sort keys %abis]));
3232 dir => 'blib/lib/auto/share/dist/FFI-Platypus/lib',
3333 platform => $config->platform,
3434 alien => [$config->alien],
35 cflags => '-Iblib/lib/auto/share/dist/FFI-Platypus/include',
35 cflags => '-Iblib/lib/auto/share/dist/FFI-Platypus/include -Iinclude',
3636 )->build;
3737
3838 my $name = basename($lib->basename);
0 #include <string.h>
1
2 int
3 dlmain(int argc, char *arg[])
4 {
5 const char *test = "123456789\0";
6
7 if(strnlen(test, 100) == 9 && strnlen(test, 4) == 4)
8 return 0;
9 else
10 return 2;
11 }
157157 char *class; /* base class */
158158 } ffi_pl_type_extra_object;
159159
160 typedef struct _ffi_pl_record_meta_t {
161 ffi_type ffi_type;
162 int can_return_from_closure;
163 ffi_type *elements[0];
164 } ffi_pl_record_meta_t;
165
160166 typedef struct _ffi_pl_type_extra_record {
161167 size_t size;
162168 char *class; /* base class */
163 ffi_type *ffi_type;
169 ffi_pl_record_meta_t *meta;
164170 } ffi_pl_type_extra_record;
165171
166172 typedef struct _ffi_pl_type_extra_custom_perl {
0
01 /*
12 * Philosophy: FFI dispatch should be as fast as possible considering
23 * reasonable trade offs.
270271 {
271272
272273 /*
273 * ARGUMENT IN - POINTER TYPES
274 * ARGUMENT IN - POINTER & ARRAY TYPES
274275 */
275276
276277 case FFI_PL_SHAPE_POINTER:
278 case FFI_PL_SHAPE_ARRAY:
277279 {
278 void *ptr;
279
280 if(SvROK(arg)) /* TODO: and a scalar ref */
280 void *ptr = NULL;
281 SSize_t count = 0;
282 int is_pointer = (type_code & FFI_PL_SHAPE_MASK) == FFI_PL_SHAPE_POINTER;
283 int is_bad = 0;
284 if(SvROK(arg))
281285 {
282286 SV *arg2 = SvRV(arg);
283 if(SvTYPE(arg2) < SVt_PVAV)
287 if(SvTYPE(arg2) < SVt_PVAV && is_pointer)
284288 {
285 switch(type_code)
286 {
287 case FFI_PL_TYPE_UINT8 | FFI_PL_SHAPE_POINTER:
289 switch(type_code & (FFI_PL_BASE_MASK|FFI_PL_SIZE_MASK))
290 {
291 case FFI_PL_TYPE_UINT8:
288292 Newx_or_alloca(ptr, 1, uint8_t);
289293 *((uint8_t*)ptr) = SvOK(arg2) ? SvUV(arg2) : 0;
290294 break;
291 case FFI_PL_TYPE_SINT8 | FFI_PL_SHAPE_POINTER:
295 case FFI_PL_TYPE_SINT8:
292296 Newx_or_alloca(ptr, 1, int8_t);
293297 *((int8_t*)ptr) = SvOK(arg2) ? SvIV(arg2) : 0;
294298 break;
295 case FFI_PL_TYPE_UINT16 | FFI_PL_SHAPE_POINTER:
299 case FFI_PL_TYPE_UINT16:
296300 Newx_or_alloca(ptr, 1, uint16_t);
297301 *((uint16_t*)ptr) = SvOK(arg2) ? SvUV(arg2) : 0;
298302 break;
299 case FFI_PL_TYPE_SINT16 | FFI_PL_SHAPE_POINTER:
303 case FFI_PL_TYPE_SINT16:
300304 Newx_or_alloca(ptr, 1, int16_t);
301305 *((int16_t*)ptr) = SvOK(arg2) ? SvIV(arg2) : 0;
302306 break;
303 case FFI_PL_TYPE_UINT32 | FFI_PL_SHAPE_POINTER:
307 case FFI_PL_TYPE_UINT32:
304308 Newx_or_alloca(ptr, 1, uint32_t);
305309 *((uint32_t*)ptr) = SvOK(arg2) ? SvUV(arg2) : 0;
306310 break;
307 case FFI_PL_TYPE_SINT32 | FFI_PL_SHAPE_POINTER:
311 case FFI_PL_TYPE_SINT32:
308312 Newx_or_alloca(ptr, 1, int32_t);
309313 *((int32_t*)ptr) = SvOK(arg2) ? SvIV(arg2) : 0;
310314 break;
311 case FFI_PL_TYPE_UINT64 | FFI_PL_SHAPE_POINTER:
315 case FFI_PL_TYPE_UINT64:
312316 Newx_or_alloca(ptr, 1, uint64_t);
313317 *((uint64_t*)ptr) = SvOK(arg2) ? SvU64(arg2) : 0;
314318 break;
315 case FFI_PL_TYPE_SINT64 | FFI_PL_SHAPE_POINTER:
319 case FFI_PL_TYPE_SINT64:
316320 Newx_or_alloca(ptr, 1, int64_t);
317321 *((int64_t*)ptr) = SvOK(arg2) ? SvI64(arg2) : 0;
318322 break;
319 case FFI_PL_TYPE_FLOAT | FFI_PL_SHAPE_POINTER:
323 case FFI_PL_TYPE_FLOAT:
320324 Newx_or_alloca(ptr, 1, float);
321325 *((float*)ptr) = SvOK(arg2) ? SvNV(arg2) : 0.0;
322326 break;
323 case FFI_PL_TYPE_DOUBLE | FFI_PL_SHAPE_POINTER:
327 case FFI_PL_TYPE_DOUBLE:
324328 Newx_or_alloca(ptr, 1, double);
325329 *((double*)ptr) = SvOK(arg2) ? SvNV(arg2) : 0.0;
326330 break;
327 case FFI_PL_TYPE_OPAQUE | FFI_PL_SHAPE_POINTER:
331 case FFI_PL_TYPE_OPAQUE:
328332 Newx_or_alloca(ptr, 1, void*);
329333 {
330334 SV *tmp = SvRV(arg);
332336 }
333337 break;
334338 #ifdef FFI_PL_PROBE_LONGDOUBLE
335 case FFI_PL_TYPE_LONG_DOUBLE | FFI_PL_SHAPE_POINTER:
339 case FFI_PL_TYPE_LONG_DOUBLE:
336340 Newx_or_alloca(ptr, 1, long double);
337341 ffi_pl_perl_to_long_double(arg2, (long double*)ptr);
338342 break;
339343 #endif
340344 #ifdef FFI_PL_PROBE_COMPLEX
341 case FFI_PL_TYPE_COMPLEX_FLOAT | FFI_PL_SHAPE_POINTER:
345 case FFI_PL_TYPE_COMPLEX_FLOAT:
342346 Newx_or_alloca(ptr, 1, float complex);
343347 ffi_pl_perl_to_complex_float(arg2, (float *)ptr);
344348 break;
345 case FFI_PL_TYPE_COMPLEX_DOUBLE | FFI_PL_SHAPE_POINTER:
349 case FFI_PL_TYPE_COMPLEX_DOUBLE:
346350 Newx_or_alloca(ptr, 1, double complex);
347351 ffi_pl_perl_to_complex_double(arg2, (double *)ptr);
348352 break;
349353 #endif
350 case FFI_PL_TYPE_STRING | FFI_PL_SHAPE_POINTER:
354 case FFI_PL_TYPE_STRING:
351355 Newx_or_alloca(ptr, 1, char *);
352356 if(SvOK(arg2))
353357 {
372376 break;
373377 }
374378 }
379 else if(SvTYPE(arg2) == SVt_PVAV && (!is_pointer) || (is_pointer && self->platypus_api >= 2))
380 {
381 AV *av = (AV*) arg2;
382 if(!is_pointer)
383 {
384 count = self->argument_types[i]->extra[0].array.element_count;
385 }
386 if(count == 0)
387 {
388 count = av_len(av)+1;
389 }
390 switch(type_code & (FFI_PL_BASE_MASK|FFI_PL_SIZE_MASK))
391 {
392 case FFI_PL_TYPE_UINT8:
393 Newx(ptr, count, uint8_t);
394 for(n=0; n<count; n++)
395 {
396 ((uint8_t*)ptr)[n] = SvUV(*av_fetch(av, n, 1));
397 }
398 break;
399 case FFI_PL_TYPE_SINT8:
400 Newx(ptr, count, int8_t);
401 for(n=0; n<count; n++)
402 {
403 ((int8_t*)ptr)[n] = SvIV(*av_fetch(av, n, 1));
404 }
405 break;
406 case FFI_PL_TYPE_UINT16:
407 Newx(ptr, count, uint16_t);
408 for(n=0; n<count; n++)
409 {
410 ((uint16_t*)ptr)[n] = SvUV(*av_fetch(av, n, 1));
411 }
412 break;
413 case FFI_PL_TYPE_SINT16:
414 Newx(ptr, count, int16_t);
415 for(n=0; n<count; n++)
416 {
417 ((int16_t*)ptr)[n] = SvIV(*av_fetch(av, n, 1));
418 }
419 break;
420 case FFI_PL_TYPE_UINT32:
421 Newx(ptr, count, uint32_t);
422 for(n=0; n<count; n++)
423 {
424 ((uint32_t*)ptr)[n] = SvUV(*av_fetch(av, n, 1));
425 }
426 break;
427 case FFI_PL_TYPE_SINT32:
428 Newx(ptr, count, int32_t);
429 for(n=0; n<count; n++)
430 {
431 ((int32_t*)ptr)[n] = SvIV(*av_fetch(av, n, 1));
432 }
433 break;
434 case FFI_PL_TYPE_UINT64:
435 Newx(ptr, count, uint64_t);
436 for(n=0; n<count; n++)
437 {
438 ((uint64_t*)ptr)[n] = SvU64(*av_fetch(av, n, 1));
439 }
440 break;
441 case FFI_PL_TYPE_SINT64:
442 Newx(ptr, count, int64_t);
443 for(n=0; n<count; n++)
444 {
445 ((int64_t*)ptr)[n] = SvI64(*av_fetch(av, n, 1));
446 }
447 break;
448 case FFI_PL_TYPE_FLOAT:
449 Newx(ptr, count, float);
450 for(n=0; n<count; n++)
451 {
452 ((float*)ptr)[n] = SvNV(*av_fetch(av, n, 1));
453 }
454 break;
455 case FFI_PL_TYPE_DOUBLE:
456 Newx(ptr, count, double);
457 for(n=0; n<count; n++)
458 {
459 ((double*)ptr)[n] = SvNV(*av_fetch(av, n, 1));
460 }
461 break;
462 case FFI_PL_TYPE_OPAQUE:
463 Newx(ptr, count, void*);
464 for(n=0; n<count; n++)
465 {
466 SV *sv = *av_fetch(av, n, 1);
467 ((void**)ptr)[n] = SvOK(sv) ? INT2PTR(void*, SvIV(sv)) : NULL;
468 }
469 break;
470 #ifdef FFI_PL_PROBE_LONGDOUBLE
471 case FFI_PL_TYPE_LONG_DOUBLE:
472 /* gh#236: lets hope the compiler is smart enough to opitmize this */
473 if(sizeof(long double) >= 16)
474 {
475 Newx(ptr, count, long double);
476 }
477 else
478 {
479 Newx(ptr, count*16, char);
480 }
481 for(n=0; n<count; n++)
482 {
483 SV *sv = *av_fetch(av, n, 1);
484 ffi_pl_perl_to_long_double(sv, &((long double*)ptr)[n]);
485 }
486 break;
487 #endif
488 #ifdef FFI_PL_PROBE_COMPLEX
489 case FFI_PL_TYPE_COMPLEX_FLOAT:
490 Newx(ptr, count, float complex);
491 for(n=0; n<count; n++)
492 {
493 SV *sv = *av_fetch(av, n, 1);
494 ffi_pl_perl_to_complex_float(sv, &((float*)ptr)[n*2]);
495 }
496 break;
497 case FFI_PL_TYPE_COMPLEX_DOUBLE:
498 Newx(ptr, count, double complex);
499 for(n=0; n<count; n++)
500 {
501 SV *sv = *av_fetch(av, n, 1);
502 ffi_pl_perl_to_complex_double(sv, &((double*)ptr)[n*2]);
503 }
504 break;
505 #endif
506 case FFI_PL_TYPE_STRING:
507 Newx(ptr, count, char *);
508 for(n=0; n<count; n++)
509 {
510 SV *sv = *av_fetch(av, n, 1);
511 if(SvOK(sv))
512 {
513 char *str;
514 char *pv;
515 STRLEN len;
516 pv = SvPV(sv, len);
517 /* TODO: this should probably be a malloc since it could be arbitrarily large */
518 Newx_or_alloca(str, len+1, char);
519 memcpy(str, pv, len+1);
520 ((char**)ptr)[n] = str;
521 }
522 else
523 {
524 ((char**)ptr)[n] = NULL;
525 }
526 }
527 break;
528 default:
529 Newxz(ptr, count*(1 << ((type_code & FFI_PL_SIZE_MASK)-1)), char);
530 warn("argument type not supported (%d)", i);
531 break;
532 }
533 ffi_pl_heap_add_ptr(ptr);
534 }
375535 else
376536 {
377 warn("argument type not a reference to scalar (%d)", i);
537 is_bad = 1;
538 }
539 }
540 else
541 {
542 if(is_pointer)
543 {
378544 ptr = NULL;
379545 }
380 }
381 else
382 {
383 ptr = NULL;
384 }
385 ffi_pl_arguments_set_pointer(arguments, i, ptr);
386 }
387 break;
388
389 /*
390 * ARGUMENT IN - ARRAY TYPES
391 */
392
393 case FFI_PL_SHAPE_ARRAY:
394 {
395 void *ptr;
396 int count = self->argument_types[i]->extra[0].array.element_count;
397 if(SvROK(arg) && SvTYPE(SvRV(arg)) == SVt_PVAV)
398 {
399 AV *av = (AV*) SvRV(arg);
400 if(count == 0)
401 count = av_len(av)+1;
402 switch(type_code)
546 else
403547 {
404 case FFI_PL_TYPE_UINT8 | FFI_PL_SHAPE_ARRAY:
405 Newx(ptr, count, uint8_t);
406 for(n=0; n<count; n++)
407 {
408 ((uint8_t*)ptr)[n] = SvUV(*av_fetch(av, n, 1));
409 }
410 break;
411 case FFI_PL_TYPE_SINT8 | FFI_PL_SHAPE_ARRAY:
412 Newx(ptr, count, int8_t);
413 for(n=0; n<count; n++)
414 {
415 ((int8_t*)ptr)[n] = SvIV(*av_fetch(av, n, 1));
416 }
417 break;
418 case FFI_PL_TYPE_UINT16 | FFI_PL_SHAPE_ARRAY:
419 Newx(ptr, count, uint16_t);
420 for(n=0; n<count; n++)
421 {
422 ((uint16_t*)ptr)[n] = SvUV(*av_fetch(av, n, 1));
423 }
424 break;
425 case FFI_PL_TYPE_SINT16 | FFI_PL_SHAPE_ARRAY:
426 Newx(ptr, count, int16_t);
427 for(n=0; n<count; n++)
428 {
429 ((int16_t*)ptr)[n] = SvIV(*av_fetch(av, n, 1));
430 }
431 break;
432 case FFI_PL_TYPE_UINT32 | FFI_PL_SHAPE_ARRAY:
433 Newx(ptr, count, uint32_t);
434 for(n=0; n<count; n++)
435 {
436 ((uint32_t*)ptr)[n] = SvUV(*av_fetch(av, n, 1));
437 }
438 break;
439 case FFI_PL_TYPE_SINT32 | FFI_PL_SHAPE_ARRAY:
440 Newx(ptr, count, int32_t);
441 for(n=0; n<count; n++)
442 {
443 ((int32_t*)ptr)[n] = SvIV(*av_fetch(av, n, 1));
444 }
445 break;
446 case FFI_PL_TYPE_UINT64 | FFI_PL_SHAPE_ARRAY:
447 Newx(ptr, count, uint64_t);
448 for(n=0; n<count; n++)
449 {
450 ((uint64_t*)ptr)[n] = SvU64(*av_fetch(av, n, 1));
451 }
452 break;
453 case FFI_PL_TYPE_SINT64 | FFI_PL_SHAPE_ARRAY:
454 Newx(ptr, count, int64_t);
455 for(n=0; n<count; n++)
456 {
457 ((int64_t*)ptr)[n] = SvI64(*av_fetch(av, n, 1));
458 }
459 break;
460 case FFI_PL_TYPE_FLOAT | FFI_PL_SHAPE_ARRAY:
461 Newx(ptr, count, float);
462 for(n=0; n<count; n++)
463 {
464 ((float*)ptr)[n] = SvNV(*av_fetch(av, n, 1));
465 }
466 break;
467 case FFI_PL_TYPE_DOUBLE | FFI_PL_SHAPE_ARRAY:
468 Newx(ptr, count, double);
469 for(n=0; n<count; n++)
470 {
471 ((double*)ptr)[n] = SvNV(*av_fetch(av, n, 1));
472 }
473 break;
474 case FFI_PL_TYPE_OPAQUE | FFI_PL_SHAPE_ARRAY:
475 Newx(ptr, count, void*);
476 for(n=0; n<count; n++)
477 {
478 SV *sv = *av_fetch(av, n, 1);
479 ((void**)ptr)[n] = SvOK(sv) ? INT2PTR(void*, SvIV(sv)) : NULL;
480 }
481 break;
482 #ifdef FFI_PL_PROBE_LONGDOUBLE
483 case FFI_PL_TYPE_LONG_DOUBLE | FFI_PL_SHAPE_ARRAY:
484 /* gh#236: lets hope the compiler is smart enough to opitmize this */
485 if(sizeof(long double) >= 16)
486 {
487 Newx(ptr, count, long double);
488 }
489 else
490 {
491 Newx(ptr, count*16, char);
492 }
493 for(n=0; n<count; n++)
494 {
495 SV *sv = *av_fetch(av, n, 1);
496 ffi_pl_perl_to_long_double(sv, &((long double*)ptr)[n]);
497 }
498 break;
499 #endif
500 #ifdef FFI_PL_PROBE_COMPLEX
501 case FFI_PL_TYPE_COMPLEX_FLOAT | FFI_PL_SHAPE_ARRAY:
502 Newx(ptr, count, float complex);
503 for(n=0; n<count; n++)
504 {
505 SV *sv = *av_fetch(av, n, 1);
506 ffi_pl_perl_to_complex_float(sv, &((float*)ptr)[n*2]);
507 }
508 break;
509 case FFI_PL_TYPE_COMPLEX_DOUBLE | FFI_PL_SHAPE_ARRAY:
510 Newx(ptr, count, double complex);
511 for(n=0; n<count; n++)
512 {
513 SV *sv = *av_fetch(av, n, 1);
514 ffi_pl_perl_to_complex_double(sv, &((double*)ptr)[n*2]);
515 }
516 break;
517 #endif
518 case FFI_PL_TYPE_STRING | FFI_PL_SHAPE_ARRAY:
519 Newx(ptr, count, char *);
520 for(n=0; n<count; n++)
521 {
522 SV *sv = *av_fetch(av, n, 1);
523 if(SvOK(sv))
524 {
525 char *str;
526 char *pv;
527 STRLEN len;
528 pv = SvPV(sv, len);
529 /* TODO: this should probably be a malloc since it could be arbitrarily large */
530 Newx_or_alloca(str, len+1, char);
531 memcpy(str, pv, len+1);
532 ((char**)ptr)[n] = str;
533 }
534 else
535 {
536 ((char**)ptr)[n] = NULL;
537 }
538 }
539 break;
540 default:
541 Newxz(ptr, count*(1 << ((type_code & FFI_PL_SIZE_MASK)-1)), char);
542 warn("argument type not supported (%d)", i);
543 break;
548 is_bad = 1;
544549 }
545550 }
546 else
547 {
548 warn("passing non array reference into ffi/platypus array argument type");
549 Newxz(ptr, count*(1 << ((type_code & FFI_PL_SIZE_MASK)-1)), char);
550 }
551 ffi_pl_heap_add_ptr(ptr);
551 if(is_bad)
552 {
553 if(is_pointer)
554 {
555 if(self->platypus_api >= 2)
556 {
557 warn("argument type not a reference to scalar or array (%d)", i);
558 }
559 else
560 {
561 warn("argument type not a reference to scalar (%d)", i);
562 }
563 }
564 else
565 {
566 warn("passing non array reference into ffi/platypus array argument type");
567 count = self->argument_types[i]->extra[0].array.element_count;
568 Newxz(ptr, count*(1 << ((type_code & FFI_PL_SIZE_MASK)-1)), char);
569 ffi_pl_heap_add_ptr(ptr);
570 }
571 }
552572 ffi_pl_arguments_set_pointer(arguments, i, ptr);
553573 }
554574 break;
702722 {
703723
704724 /*
705 * ARGUMENT OUT - POINTER TYPES
725 * ARGUMENT OUT - POINTER & ARRAY TYPES
706726 */
727
707728 case FFI_PL_SHAPE_POINTER:
729 case FFI_PL_SHAPE_ARRAY:
708730 {
709731 void *ptr = ffi_pl_arguments_get_pointer(arguments, i);
710 if(ptr != NULL)
711 {
712 arg = perl_arg_index < items ? ST(perl_arg_index) : &PL_sv_undef;
713 if(!SvREADONLY(SvRV(arg)))
732 arg = perl_arg_index < items ? ST(perl_arg_index) : &PL_sv_undef;
733 if(ptr != NULL && SvOK(arg))
734 {
735 SV *arg2 = SvROK(arg) ? SvRV(arg) : &PL_sv_undef;
736 if(SvTYPE(arg2) == SVt_PVAV)
714737 {
715 switch(type_code)
716 {
717 case FFI_PL_TYPE_UINT8 | FFI_PL_SHAPE_POINTER:
718 sv_setuv(SvRV(arg), *((uint8_t*)ptr));
719 break;
720 case FFI_PL_TYPE_SINT8 | FFI_PL_SHAPE_POINTER:
721 sv_setiv(SvRV(arg), *((int8_t*)ptr));
722 break;
723 case FFI_PL_TYPE_UINT16 | FFI_PL_SHAPE_POINTER:
724 sv_setuv(SvRV(arg), *((uint16_t*)ptr));
725 break;
726 case FFI_PL_TYPE_SINT16 | FFI_PL_SHAPE_POINTER:
727 sv_setiv(SvRV(arg), *((int16_t*)ptr));
728 break;
729 case FFI_PL_TYPE_UINT32 | FFI_PL_SHAPE_POINTER:
730 sv_setuv(SvRV(arg), *((uint32_t*)ptr));
731 break;
732 case FFI_PL_TYPE_SINT32 | FFI_PL_SHAPE_POINTER:
733 sv_setiv(SvRV(arg), *((int32_t*)ptr));
734 break;
735 case FFI_PL_TYPE_UINT64 | FFI_PL_SHAPE_POINTER:
736 sv_setu64(SvRV(arg), *((uint64_t*)ptr));
737 break;
738 case FFI_PL_TYPE_SINT64 | FFI_PL_SHAPE_POINTER:
739 sv_seti64(SvRV(arg), *((int64_t*)ptr));
740 break;
741 case FFI_PL_TYPE_FLOAT | FFI_PL_SHAPE_POINTER:
742 sv_setnv(SvRV(arg), *((float*)ptr));
743 break;
744 case FFI_PL_TYPE_OPAQUE | FFI_PL_SHAPE_POINTER:
738 SSize_t count = 0;
739 AV *av = (AV*)arg2;
740 if((type_code & FFI_PL_SHAPE_MASK) == FFI_PL_SHAPE_ARRAY)
741 {
742 count = self->argument_types[i]->extra[0].array.element_count;
743 }
744 if(count == 0)
745 {
746 count = av_len(av)+1;
747 }
748 switch(type_code & (FFI_PL_BASE_MASK|FFI_PL_SIZE_MASK))
749 {
750 case FFI_PL_TYPE_UINT8:
751 for(n=0; n<count; n++)
752 {
753 sv_setuv(*av_fetch(av, n, 1), ((uint8_t*)ptr)[n]);
754 }
755 break;
756 case FFI_PL_TYPE_SINT8:
757 for(n=0; n<count; n++)
758 {
759 sv_setiv(*av_fetch(av, n, 1), ((int8_t*)ptr)[n]);
760 }
761 break;
762 case FFI_PL_TYPE_UINT16:
763 for(n=0; n<count; n++)
764 {
765 sv_setuv(*av_fetch(av, n, 1), ((uint16_t*)ptr)[n]);
766 }
767 break;
768 case FFI_PL_TYPE_SINT16:
769 for(n=0; n<count; n++)
770 {
771 sv_setiv(*av_fetch(av, n, 1), ((int16_t*)ptr)[n]);
772 }
773 break;
774 case FFI_PL_TYPE_UINT32:
775 for(n=0; n<count; n++)
776 {
777 sv_setuv(*av_fetch(av, n, 1), ((uint32_t*)ptr)[n]);
778 }
779 break;
780 case FFI_PL_TYPE_SINT32:
781 for(n=0; n<count; n++)
782 {
783 sv_setiv(*av_fetch(av, n, 1), ((int32_t*)ptr)[n]);
784 }
785 break;
786 case FFI_PL_TYPE_UINT64:
787 for(n=0; n<count; n++)
788 {
789 sv_setu64(*av_fetch(av, n, 1), ((uint64_t*)ptr)[n]);
790 }
791 break;
792 case FFI_PL_TYPE_SINT64:
793 for(n=0; n<count; n++)
794 {
795 sv_seti64(*av_fetch(av, n, 1), ((int64_t*)ptr)[n]);
796 }
797 break;
798 case FFI_PL_TYPE_FLOAT:
799 for(n=0; n<count; n++)
800 {
801 sv_setnv(*av_fetch(av, n, 1), ((float*)ptr)[n]);
802 }
803 break;
804 case FFI_PL_TYPE_OPAQUE:
805 case FFI_PL_TYPE_STRING:
806 for(n=0; n<count; n++)
807 {
808 if( ((void**)ptr)[n] == NULL)
809 {
810 av_store(av, n, &PL_sv_undef);
811 }
812 else
813 {
814 switch(type_code) {
815 case FFI_PL_TYPE_OPAQUE | FFI_PL_SHAPE_ARRAY:
816 sv_setnv(*av_fetch(av,n,1), PTR2IV( ((void**)ptr)[n]) );
817 break;
818 case FFI_PL_TYPE_STRING | FFI_PL_SHAPE_ARRAY:
819 sv_setpv(*av_fetch(av,n,1), ((char**)ptr)[n] );
820 break;
821 }
822 }
823 }
824 break;
825 case FFI_PL_TYPE_DOUBLE:
826 for(n=0; n<count; n++)
827 {
828 sv_setnv(*av_fetch(av, n, 1), ((double*)ptr)[n]);
829 }
830 break;
831 #ifdef FFI_PL_PROBE_LONGDOUBLE
832 case FFI_PL_TYPE_LONG_DOUBLE:
833 for(n=0; n<count; n++)
834 {
835 SV *sv;
836 sv = *av_fetch(av, n, 1);
837 ffi_pl_long_double_to_perl(sv, &((long double*)ptr)[n]);
838 }
839 break;
840 #endif
841 #ifdef FFI_PL_PROBE_COMPLEX
842 case FFI_PL_TYPE_COMPLEX_DOUBLE:
843 for(n=0; n<count; n++)
844 {
845 SV *sv;
846 sv = *av_fetch(av, n, 1);
847 ffi_pl_complex_double_to_perl(sv, &((double*)ptr)[n*2]);
848 }
849 break;
850 case FFI_PL_TYPE_COMPLEX_FLOAT:
851 for(n=0; n<count; n++)
852 {
853 SV *sv;
854 sv = *av_fetch(av, n, 1);
855 ffi_pl_complex_float_to_perl(sv, &((float*)ptr)[n*2]);
856 }
857 break;
858 #endif
859 }
860 }
861 else if(SvTYPE(arg2) < SVt_PVAV && !SvREADONLY(arg2))
862 {
863 switch(type_code & (FFI_PL_BASE_MASK|FFI_PL_SIZE_MASK))
864 {
865 case FFI_PL_TYPE_UINT8:
866 sv_setuv(arg2, *((uint8_t*)ptr));
867 break;
868 case FFI_PL_TYPE_SINT8:
869 sv_setiv(arg2, *((int8_t*)ptr));
870 break;
871 case FFI_PL_TYPE_UINT16:
872 sv_setuv(arg2, *((uint16_t*)ptr));
873 break;
874 case FFI_PL_TYPE_SINT16:
875 sv_setiv(arg2, *((int16_t*)ptr));
876 break;
877 case FFI_PL_TYPE_UINT32:
878 sv_setuv(arg2, *((uint32_t*)ptr));
879 break;
880 case FFI_PL_TYPE_SINT32:
881 sv_setiv(arg2, *((int32_t*)ptr));
882 break;
883 case FFI_PL_TYPE_UINT64:
884 sv_setu64(arg2, *((uint64_t*)ptr));
885 break;
886 case FFI_PL_TYPE_SINT64:
887 sv_seti64(arg2, *((int64_t*)ptr));
888 break;
889 case FFI_PL_TYPE_FLOAT:
890 sv_setnv(arg2, *((float*)ptr));
891 break;
892 case FFI_PL_TYPE_OPAQUE:
745893 if( *((void**)ptr) == NULL)
746 sv_setsv(SvRV(arg), &PL_sv_undef);
894 sv_setsv(arg2, &PL_sv_undef);
747895 else
748 sv_setiv(SvRV(arg), PTR2IV(*((void**)ptr)));
749 break;
750 case FFI_PL_TYPE_DOUBLE | FFI_PL_SHAPE_POINTER:
751 sv_setnv(SvRV(arg), *((double*)ptr));
896 sv_setiv(arg2, PTR2IV(*((void**)ptr)));
897 break;
898 case FFI_PL_TYPE_DOUBLE:
899 sv_setnv(arg2, *((double*)ptr));
752900 break;
753901 #ifdef FFI_PL_PROBE_LONGDOUBLE
754 case FFI_PL_TYPE_LONG_DOUBLE | FFI_PL_SHAPE_POINTER:
755 ffi_pl_long_double_to_perl(SvRV(arg),(long double*)ptr);
902 case FFI_PL_TYPE_LONG_DOUBLE:
903 ffi_pl_long_double_to_perl(arg2,(long double*)ptr);
756904 break;
757905 #endif
758906 #ifdef FFI_PL_PROBE_COMPLEX
759 case FFI_PL_TYPE_COMPLEX_FLOAT | FFI_PL_SHAPE_POINTER:
760 ffi_pl_complex_float_to_perl(SvRV(arg), (float *)ptr);
761 break;
762 case FFI_PL_TYPE_COMPLEX_DOUBLE | FFI_PL_SHAPE_POINTER:
763 ffi_pl_complex_double_to_perl(SvRV(arg), (double *)ptr);
764 break;
765 #endif
766 case FFI_PL_TYPE_STRING | FFI_PL_SHAPE_POINTER:
907 case FFI_PL_TYPE_COMPLEX_FLOAT:
908 ffi_pl_complex_float_to_perl(arg2, (float *)ptr);
909 break;
910 case FFI_PL_TYPE_COMPLEX_DOUBLE:
911 ffi_pl_complex_double_to_perl(arg2, (double *)ptr);
912 break;
913 #endif
914 case FFI_PL_TYPE_STRING:
767915 {
768916 char **pv = ptr;
769917 if(*pv == NULL)
770918 {
771 sv_setsv(SvRV(arg), &PL_sv_undef);
919 sv_setsv(arg2, &PL_sv_undef);
772920 }
773921 else
774922 {
775 sv_setpv(SvRV(arg), *pv);
923 sv_setpv(arg2, *pv);
776924 }
777925 }
778926 break;
779927 }
780 }
781 }
782 }
783 break;
784
785 /*
786 * ARGUMENT OUT - ARRAY TYPES
787 */
788
789 case FFI_PL_SHAPE_ARRAY:
790 {
791 void *ptr = ffi_pl_arguments_get_pointer(arguments, i);
792 int count = self->argument_types[i]->extra[0].array.element_count;
793 arg = perl_arg_index < items ? ST(perl_arg_index) : &PL_sv_undef;
794 if(SvROK(arg) && SvTYPE(SvRV(arg)) == SVt_PVAV)
795 {
796 AV *av = (AV*) SvRV(arg);
797 if(count == 0)
798 count = av_len(av)+1;
799 switch(type_code)
800 {
801 case FFI_PL_TYPE_UINT8 | FFI_PL_SHAPE_ARRAY:
802 for(n=0; n<count; n++)
803 {
804 sv_setuv(*av_fetch(av, n, 1), ((uint8_t*)ptr)[n]);
805 }
806 break;
807 case FFI_PL_TYPE_SINT8 | FFI_PL_SHAPE_ARRAY:
808 for(n=0; n<count; n++)
809 {
810 sv_setiv(*av_fetch(av, n, 1), ((int8_t*)ptr)[n]);
811 }
812 break;
813 case FFI_PL_TYPE_UINT16 | FFI_PL_SHAPE_ARRAY:
814 for(n=0; n<count; n++)
815 {
816 sv_setuv(*av_fetch(av, n, 1), ((uint16_t*)ptr)[n]);
817 }
818 break;
819 case FFI_PL_TYPE_SINT16 | FFI_PL_SHAPE_ARRAY:
820 for(n=0; n<count; n++)
821 {
822 sv_setiv(*av_fetch(av, n, 1), ((int16_t*)ptr)[n]);
823 }
824 break;
825 case FFI_PL_TYPE_UINT32 | FFI_PL_SHAPE_ARRAY:
826 for(n=0; n<count; n++)
827 {
828 sv_setuv(*av_fetch(av, n, 1), ((uint32_t*)ptr)[n]);
829 }
830 break;
831 case FFI_PL_TYPE_SINT32 | FFI_PL_SHAPE_ARRAY:
832 for(n=0; n<count; n++)
833 {
834 sv_setiv(*av_fetch(av, n, 1), ((int32_t*)ptr)[n]);
835 }
836 break;
837 case FFI_PL_TYPE_UINT64 | FFI_PL_SHAPE_ARRAY:
838 for(n=0; n<count; n++)
839 {
840 sv_setu64(*av_fetch(av, n, 1), ((uint64_t*)ptr)[n]);
841 }
842 break;
843 case FFI_PL_TYPE_SINT64 | FFI_PL_SHAPE_ARRAY:
844 for(n=0; n<count; n++)
845 {
846 sv_seti64(*av_fetch(av, n, 1), ((int64_t*)ptr)[n]);
847 }
848 break;
849 case FFI_PL_TYPE_FLOAT | FFI_PL_SHAPE_ARRAY:
850 for(n=0; n<count; n++)
851 {
852 sv_setnv(*av_fetch(av, n, 1), ((float*)ptr)[n]);
853 }
854 break;
855 case FFI_PL_TYPE_OPAQUE | FFI_PL_SHAPE_ARRAY:
856 case FFI_PL_TYPE_STRING | FFI_PL_SHAPE_ARRAY:
857 for(n=0; n<count; n++)
858 {
859 if( ((void**)ptr)[n] == NULL)
860 {
861 av_store(av, n, &PL_sv_undef);
862 }
863 else
864 {
865 switch(type_code) {
866 case FFI_PL_TYPE_OPAQUE | FFI_PL_SHAPE_ARRAY:
867 sv_setnv(*av_fetch(av,n,1), PTR2IV( ((void**)ptr)[n]) );
868 break;
869 case FFI_PL_TYPE_STRING | FFI_PL_SHAPE_ARRAY:
870 sv_setpv(*av_fetch(av,n,1), ((char**)ptr)[n] );
871 break;
872 }
873 }
874 }
875 break;
876 case FFI_PL_TYPE_DOUBLE | FFI_PL_SHAPE_ARRAY:
877 for(n=0; n<count; n++)
878 {
879 sv_setnv(*av_fetch(av, n, 1), ((double*)ptr)[n]);
880 }
881 break;
882 #ifdef FFI_PL_PROBE_LONGDOUBLE
883 case FFI_PL_TYPE_LONG_DOUBLE | FFI_PL_SHAPE_ARRAY:
884 for(n=0; n<count; n++)
885 {
886 SV *sv;
887 sv = *av_fetch(av, n, 1);
888 ffi_pl_long_double_to_perl(sv, &((long double*)ptr)[n]);
889 }
890 break;
891 #endif
892 #ifdef FFI_PL_PROBE_COMPLEX
893 case FFI_PL_TYPE_COMPLEX_DOUBLE | FFI_PL_SHAPE_ARRAY:
894 for(n=0; n<count; n++)
895 {
896 SV *sv;
897 sv = *av_fetch(av, n, 1);
898 ffi_pl_complex_double_to_perl(sv, &((double*)ptr)[n*2]);
899 }
900 break;
901 case FFI_PL_TYPE_COMPLEX_FLOAT | FFI_PL_SHAPE_ARRAY:
902 for(n=0; n<count; n++)
903 {
904 SV *sv;
905 sv = *av_fetch(av, n, 1);
906 ffi_pl_complex_float_to_perl(sv, &((float*)ptr)[n*2]);
907 }
908 break;
909 #endif
910928 }
911929 }
912930 }
00 #if 0
1 <<'SKIP';
1 my $void = <<'SKIP';
22 #endif
33 /*
44 ----------------------------------------------------------------------
55
6 include/ppport.h -- Perl/Pollution/Portability Version 3.57
7
8 Automatically created by Devel::PPPort running under perl 5.032000.
6 include/ppport.h -- Perl/Pollution/Portability Version 3.63
7
8 Automatically created by Devel::PPPort running under perl 5.035004.
99
1010 Do NOT edit this file directly! -- Edit PPPort_pm.PL and the
1111 includes in parts/inc/ instead.
2020
2121 =head1 NAME
2222
23 include/ppport.h - Perl/Pollution/Portability version 3.57
23 include/ppport.h - Perl/Pollution/Portability version 3.63
2424
2525 =head1 SYNOPSIS
2626
4949 from include/ppport.h
5050
5151 --list-provided list provided API
52 --list-unsupported list unsupported API
52 --list-unsupported list API that isn't supported all the way
53 back
5354 --api-info=name show Perl API portability information
5455
5556 =head1 COMPATIBILITY
5657
5758 This version of F<include/ppport.h> is designed to support operation with Perl
58 installations back to 5.003_07, and has been tested up to 5.31.6.
59 installations back to 5.003_07, and has been tested up to 5.35.1.
5960
6061 =head1 OPTIONS
6162
150151
151152 =head2 --list-unsupported
152153
153 Lists the API elements that are known not to be supported by
154 F<include/ppport.h> and below which version of Perl they probably
155 won't be available or work.
154 Lists the API elements that are known not to be FULLY supported by F<include/ppport.h>,
155 and below which version of Perl they probably won't be available or work.
156 By FULLY, we mean that support isn't provided all the way back to the first
157 version of Perl that F<include/ppport.h> supports at all.
156158
157159 =head2 --api-info=I<name>
158160
159 Show portability information for API elements matching I<name>.
161 Show portability information for elements matching I<name>.
160162 If I<name> is surrounded by slashes, it is interpreted as a regular
161163 expression.
164
165 Normally, only API elements are shown, but if there are no matching API
166 elements but there are some other matching elements, those are shown. This
167 allows you to conveniently find when functions internal to the core
168 implementation were added; only people working on the core are likely to find
169 this last part useful.
162170
163171 =head1 DESCRIPTION
164172
187195
188196 =item *
189197
198 Although the purpose of F<include/ppport.h> is to keep you from having to concern
199 yourself with what version you are running under, there may arise instances
200 where you have to do so. These macros, the same ones as in base Perl, are
201 available to you in all versions, and are what you should use:
202
203 =over 4
204
205 =item C<PERL_VERSION_I<xx>(major, minor, patch)>
206
207 Returns whether or not the perl currently being compiled has the specified
208 relationship I<xx> to the perl given by the parameters. I<xx> is one of
209 C<EQ>, C<NE>, C<LT>, C<LE>, C<GT>, C<GE>.
210
211 For example,
212
213 #if PERL_VERSION_GT(5,24,2)
214 code that will only be compiled on perls after v5.24.2
215 #else
216 fallback code
217 #endif
218
219 Note that this is usable in making compile-time decisions
220
221 You may use the special value '*' for the final number to mean ALL possible
222 values for it. Thus,
223
224 #if PERL_VERSION_EQ(5,31,'*')
225
226 means all perls in the 5.31 series. And
227
228 #if PERL_VERSION_NE(5,24,'*')
229
230 means all perls EXCEPT 5.24 ones. And
231
232 #if PERL_VERSION_LE(5,9,'*')
233
234 is effectively
235
236 #if PERL_VERSION_LT(5,10,0)
237
238 =back
239
240 =item *
241
190242 If you use one of a few functions or variables that were not present in
191243 earlier versions of Perl, and that can't be provided using a macro, you
192244 have to explicitly request support for these functions by adding one or
217269 Function / Variable Static Request Global Request
218270 -----------------------------------------------------------------------------------------
219271 caller_cx() NEED_caller_cx NEED_caller_cx_GLOBAL
272 ck_warner() NEED_ck_warner NEED_ck_warner_GLOBAL
273 ck_warner_d() NEED_ck_warner_d NEED_ck_warner_d_GLOBAL
220274 croak_xs_usage() NEED_croak_xs_usage NEED_croak_xs_usage_GLOBAL
221275 die_sv() NEED_die_sv NEED_die_sv_GLOBAL
222276 eval_pv() NEED_eval_pv NEED_eval_pv_GLOBAL
332386
333387 If F<include/ppport.h> was generated using the latest version of
334388 C<Devel::PPPort> and is causing failure of this module, please
335 send a bug report to L<perlbug@perl.org|mailto:perlbug@perl.org>.
389 file a bug report at L<https://github.com/Dual-Life/Devel-PPPort/issues>
336390
337391 Please include the following information:
338392
381435 =cut
382436
383437 # These are tools that must be included in include/ppport.h. It doesn't work if given
384 # a .pl suffix
438 # a .pl suffix.
439 #
440 # WARNING: Use only constructs that are legal as far back as D:P handles, as
441 # this is run in the perl version being tested.
442
443 # What revisions are legal, to be output as-is and converted into a pattern
444 # that matches them precisely
445 my $r_pat = "[57]";
385446
386447 sub format_version
387448 {
402463
403464 sub parse_version
404465 {
405 # Returns a triplet, (5, major, minor) from the input, treated as a string,
406 # which can be in any of several typical formats.
466 # Returns a triplet, (revision, major, minor) from the input, treated as a
467 # string, which can be in any of several typical formats.
407468
408469 my $ver = shift;
409470 $ver = "" unless defined $ver;
410471
411472 my($r,$v,$s);
412473
413 if ( ($r, $v, $s) = $ver =~ /^(5)(\d{3})(\d{3})$/ # 5029010, from the file
474 if ( ($r, $v, $s) = $ver =~ /^([0-9]+)([0-9]{3})([0-9]{3})$/ # 5029010, from the file
414475 # names in our
415476 # parts/base/ and
416477 # parts/todo directories
417 or ($r, $v, $s) = $ver =~ /^(\d+)\.(\d+)\.(\d+)$/ # 5.25.7
418 or ($r, $v, $s) = $ver =~ /^(\d+)\.(\d{3})(\d{3})$/ # 5.025008, from the
419 # output of $]
420 or ($r, $v, $s) = $ver =~ /^(\d+)\.(\d{1,3})()$/ # 5.24, 5.004
421 or ($r, $v, $s) = $ver =~ /^(\d+)\.(00[1-5])_?(\d{2})$/ # 5.003_07
478 or ($r, $v, $s) = $ver =~ /^([0-9]+)\.([0-9]+)\.([0-9]+)$/ # 5.25.7
479 or ($r, $v, $s) = $ver =~ /^([0-9]+)\.([0-9]{3})([0-9]{3})$/ # 5.025008, from the
480 # output of $]
481 or ($r, $v, $s) = $ver =~ /^([0-9]+)\.([0-9]{1,3})()$/ # 5.24, 5.004
482 or ($r, $v, $s) = $ver =~ /^([0-9]+)\.(00[1-5])_?([0-9]{2})$/ # 5.003_07
422483 ) {
423484
424485 $s = 0 unless $s;
425486
426 die "Only Perl 5 is supported '$ver'\n" if $r != 5;
487 die "Only Perl $r_pat are supported '$ver'\n" unless $r =~ / ^ $r_pat $ /x;
427488 die "Invalid version number: $ver\n" if $v >= 1000 || $s >= 1000;
428 return (5, 0 + $v, 0 + $s);
489 return (0 +$r, 0 + $v, 0 + $s);
429490 }
430491
431492 # For some safety, don't assume something is a version number if it has a
432493 # literal dot as one of the three characters. This will have to be fixed
433 # when we reach 5.46
494 # when we reach x.46 (since 46 is ord('.'))
434495 if ($ver !~ /\./ && (($r, $v, $s) = $ver =~ /^(.)(.)(.)$/)) # vstring 5.25.7
435496 {
436497 $r = ord $r;
437498 $v = ord $v;
438499 $s = ord $s;
439500
440 die "Only Perl 5 is supported '$ver'\n" if $r != 5;
441 return (5, $v, $s);
501 die "Only Perl $r_pat are supported '$ver'\n" unless $r =~ / ^ $r_pat $ /x;
502 return ($r, $v, $s);
442503 }
443504
444505 my $mesg = "";
464525 # Returns a floating point representation of the input version
465526
466527 my $version = int_parse_version(shift);
467 $version =~ s/^5\B/5./;
528 $version =~ s/ ^ ( $r_pat ) \B /$1./x;
468529 return $version;
469530 }
470531
471 sub dictionary_order($$) # Sort caselessly, ignoring punct
472 {
532 BEGIN {
533 if ("$]" < "5.006" ) {
534 # On early perls, the implicit pass by reference doesn't work, so we have
535 # to use the globals to initialize.
536 eval q[sub dictionary_order($$) { _dictionary_order($a, $b) } ];
537 } elsif ("$]" < "5.022" ) {
538 eval q[sub dictionary_order($$) { _dictionary_order(@_) } ];
539 } else {
540 eval q[sub dictionary_order :prototype($$) { _dictionary_order(@_) } ];
541 }
542 }
543
544 sub _dictionary_order { # Sort caselessly, ignoring punct
545 my ($valid_a, $valid_b) = @_;
546
473547 my ($lc_a, $lc_b);
474548 my ($squeezed_a, $squeezed_b);
475 my ($valid_a, $valid_b); # Meaning valid for all releases
476
477 # On early perls, the implicit pass by reference doesn't work, so we have
478 # to use the globals to initialize.
479 if ("$]" < "5.006" ) {
480 $valid_a = $a; $valid_b = $b;
481 }
482 else {
483 ($valid_a, $valid_b) = @_;
484 }
549
550 $valid_a = '' unless defined $valid_a;
551 $valid_b = '' unless defined $valid_b;
485552
486553 $lc_a = lc $valid_a;
487554 $lc_b = lc $valid_b;
488555
489556 $squeezed_a = $lc_a;
490 $squeezed_a =~ s/[\W_]//g; # No punct, including no underscore
557 $squeezed_a =~ s/^_+//g; # No leading underscores
558 $squeezed_a =~ s/\B_+\B//g; # No connecting underscores
559 $squeezed_a =~ s/[\W]//g; # No punct
560
491561 $squeezed_b = $lc_b;
492 $squeezed_b =~ s/[\W_]//g;
562 $squeezed_b =~ s/^_+//g;
563 $squeezed_b =~ s/\B_+\B//g;
564 $squeezed_b =~ s/[\W]//g;
493565
494566 return( $squeezed_a cmp $squeezed_b
495567 or $lc_a cmp $lc_b
499571 sub sort_api_lines # Sort lines of the form flags|return|name|args...
500572 # by 'name'
501573 {
502 $a =~ / ^ [^|]* \| [^|]* \| (\w+) /x; # 3rd field '|' is sep
574 $a =~ / ^ [^|]* \| [^|]* \| ( [^|]* ) /x; # 3rd field '|' is sep
503575 my $a_name = $1;
504 $b =~ / ^ [^|]* \| [^|]* \| (\w+) /x;
576 $b =~ / ^ [^|]* \| [^|]* \| ( [^|]* ) /x;
505577 my $b_name = $1;
506578 return dictionary_order($a_name, $b_name);
507579 }
513585 BEGIN { require warnings if "$]" > '5.006' }
514586
515587 # Disable broken TRIE-optimization
516 BEGIN { eval '${^RE_TRIE_MAXBUF} = -1' if "$]" >= 5.009004 && "$]" <= 5.009005 }
517
518 my $VERSION = 3.57;
588 BEGIN { eval '${^RE_TRIE_MAXBUF} = -1' if "$]" >= "5.009004" && "$]" <= "5.009005"}
589
590 my $VERSION = 3.63;
519591
520592 my %opt = (
521593 quiet => 0,
587659 (index($4, 'V') >= 0 ? ( unverified => 1 ) : ()),
588660 } )
589661 : die "invalid spec: $_" } qw(
662 ABDAY_1|5.027010||Viu
663 ABDAY_2|5.027010||Viu
664 ABDAY_3|5.027010||Viu
665 ABDAY_4|5.027010||Viu
666 ABDAY_5|5.027010||Viu
667 ABDAY_6|5.027010||Viu
668 ABDAY_7|5.027010||Viu
669 ABMON_10|5.027010||Viu
670 ABMON_11|5.027010||Viu
671 ABMON_12|5.027010||Viu
672 ABMON_1|5.027010||Viu
673 ABMON_2|5.027010||Viu
674 ABMON_3|5.027010||Viu
675 ABMON_4|5.027010||Viu
676 ABMON_5|5.027010||Viu
677 ABMON_6|5.027010||Viu
678 ABMON_7|5.027010||Viu
679 ABMON_8|5.027010||Viu
680 ABMON_9|5.027010||Viu
681 ABORT|5.003007||Viu
682 abort|5.005000||Viu
590683 abort_execution|5.025010||Viu
684 accept|5.005000||Viu
685 ACCEPT|5.009005||Viu
686 ACCEPT_t8_p8|5.033003||Viu
687 ACCEPT_t8_pb|5.033003||Viu
688 ACCEPT_tb_p8|5.033003||Viu
689 ACCEPT_tb_pb|5.033003||Viu
690 access|5.005000||Viu
591691 add_above_Latin1_folds|5.021001||Viu
592692 add_cp_to_invlist|5.013011||Viu
593 add_data|5.005000||nViu
693 add_data|5.005000||Vniu
594694 add_multi_match|5.021004||Viu
595695 _add_range_to_invlist|5.016000||cViu
596696 add_utf16_textfilter|5.011001||Viu
597 adjust_size_and_find_bucket|5.019003||nViu
697 adjust_size_and_find_bucket|5.019003||Vniu
598698 advance_one_LB|5.023007||Viu
599699 advance_one_SB|5.021009||Viu
600700 advance_one_WB|5.021009||Viu
701 AHOCORASICK|5.009005||Viu
702 AHOCORASICKC|5.009005||Viu
703 AHOCORASICKC_t8_p8|5.033003||Viu
704 AHOCORASICKC_t8_pb|5.033003||Viu
705 AHOCORASICKC_tb_p8|5.033003||Viu
706 AHOCORASICKC_tb_pb|5.033003||Viu
707 AHOCORASICK_t8_p8|5.033003||Viu
708 AHOCORASICK_t8_pb|5.033003||Viu
709 AHOCORASICK_tb_p8|5.033003||Viu
710 AHOCORASICK_tb_pb|5.033003||Viu
601711 alloccopstash|5.017001|5.017001|x
602712 alloc_LOGOP|5.025004||xViu
603713 allocmy|5.008001||Viu
714 ALLOC_THREAD_KEY|5.005003||Viu
715 ALT_DIGITS|5.027010||Viu
604716 amagic_call|5.003007|5.003007|u
605717 amagic_cmp|5.009003||Viu
718 amagic_cmp_desc|5.031011||Viu
606719 amagic_cmp_locale|5.009003||Viu
720 amagic_cmp_locale_desc|5.031011||Viu
607721 amagic_deref_call|5.013007|5.013007|u
608722 amagic_i_ncmp|5.009003||Viu
723 amagic_i_ncmp_desc|5.031011||Viu
609724 amagic_is_enabled|5.015008||Viu
610725 amagic_ncmp|5.009003||Viu
726 amagic_ncmp_desc|5.031011||Viu
727 AMG_CALLun|5.003007||Viu
728 AMG_CALLunary|5.013009||Viu
729 AMGfallNEVER|5.003007||Viu
730 AMGfallNO|5.003007||Viu
731 AMGfallYES|5.003007||Viu
732 AMGf_assign|5.003007||Viu
733 AMGf_noleft|5.003007||Viu
734 AMGf_noright|5.003007||Viu
735 AMGf_numarg|5.021009||Viu
736 AMGf_numeric|5.013002||Viu
737 AMGf_unary|5.003007||Viu
738 AMGf_want_list|5.017002||Viu
739 AM_STR|5.027010||Viu
740 AMT_AMAGIC|5.004000||Viu
741 AMT_AMAGIC_off|5.004000||Viu
742 AMT_AMAGIC_on|5.004000||Viu
743 AMTf_AMAGIC|5.004000||Viu
611744 _aMY_CXT|5.009000|5.009000|p
745 aMY_CXT|5.009000|5.009000|p
612746 aMY_CXT_|5.009000|5.009000|p
613 aMY_CXT|5.009000|5.009000|p
747 anchored_end_shift|5.009005||Viu
748 anchored_offset|5.005000||Viu
749 anchored_substr|5.005000||Viu
750 anchored_utf8|5.008000||Viu
751 ANGSTROM_SIGN|5.017003||Viu
614752 anonymise_cv_maybe|5.013003||Viu
615753 any_dup|5.006000||Vu
754 ANYOF|5.003007||Viu
755 ANYOF_ALNUM|5.006000||Viu
756 ANYOF_ALNUML|5.004000||Viu
757 ANYOF_ALPHA|5.006000||Viu
758 ANYOF_ALPHANUMERIC|5.017008||Viu
759 ANYOF_ASCII|5.006000||Viu
760 ANYOF_BIT|5.004005||Viu
761 ANYOF_BITMAP|5.006000||Viu
762 ANYOF_BITMAP_BYTE|5.006000||Viu
763 ANYOF_BITMAP_CLEAR|5.006000||Viu
764 ANYOF_BITMAP_CLEARALL|5.007003||Viu
765 ANYOF_BITMAP_SET|5.006000||Viu
766 ANYOF_BITMAP_SETALL|5.007003||Viu
767 ANYOF_BITMAP_SIZE|5.006000||Viu
768 ANYOF_BITMAP_TEST|5.006000||Viu
769 ANYOF_BITMAP_ZERO|5.006000||Viu
770 ANYOF_BLANK|5.006001||Viu
771 ANYOF_CASED|5.017008||Viu
772 ANYOF_CLASS_OR|5.017007||Viu
773 ANYOF_CLASS_SETALL|5.013011||Viu
774 ANYOF_CLASS_TEST_ANY_SET|5.013008||Viu
775 ANYOF_CNTRL|5.006000||Viu
776 ANYOF_COMMON_FLAGS|5.019008||Viu
777 ANYOFD|5.023003||Viu
778 ANYOF_DIGIT|5.006000||Viu
779 ANYOFD_t8_p8|5.033003||Viu
780 ANYOFD_t8_pb|5.033003||Viu
781 ANYOFD_tb_p8|5.033003||Viu
782 ANYOFD_tb_pb|5.033003||Viu
783 ANYOF_FLAGS|5.006000||Viu
784 ANYOF_FLAGS_ALL|5.006000||Viu
785 ANYOF_GRAPH|5.006000||Viu
786 ANYOFH|5.029007||Viu
787 ANYOFHb|5.031001||Viu
788 ANYOFHb_t8_p8|5.033003||Viu
789 ANYOFHb_t8_pb|5.033003||Viu
790 ANYOFHb_tb_p8|5.033003||Viu
791 ANYOFHb_tb_pb|5.033003||Viu
792 ANYOF_HORIZWS|5.009005||Viu
793 ANYOFHr|5.031002||Viu
794 ANYOFHr_t8_p8|5.033003||Viu
795 ANYOFHr_t8_pb|5.033003||Viu
796 ANYOFHr_tb_p8|5.033003||Viu
797 ANYOFHr_tb_pb|5.033003||Viu
798 ANYOFHs|5.031007||Viu
799 ANYOFHs_t8_p8|5.033003||Viu
800 ANYOFHs_t8_pb|5.033003||Viu
801 ANYOFHs_tb_p8|5.033003||Viu
802 ANYOFHs_tb_pb|5.033003||Viu
803 ANYOFH_t8_p8|5.033003||Viu
804 ANYOFH_t8_pb|5.033003||Viu
805 ANYOFH_tb_p8|5.033003||Viu
806 ANYOFH_tb_pb|5.033003||Viu
807 ANYOF_INVERT|5.004000||Viu
808 ANYOFL|5.021008||Viu
809 ANYOFL_FOLD|5.023007||Viu
810 ANYOF_LOCALE_FLAGS|5.019005||Viu
811 ANYOF_LOWER|5.006000||Viu
812 ANYOFL_SHARED_UTF8_LOCALE_fold_HAS_MATCHES_nonfold_REQD|5.023007||Viu
813 ANYOFL_SOME_FOLDS_ONLY_IN_UTF8_LOCALE|5.023007||Viu
814 ANYOFL_t8_p8|5.033003||Viu
815 ANYOFL_t8_pb|5.033003||Viu
816 ANYOFL_tb_p8|5.033003||Viu
817 ANYOFL_tb_pb|5.033003||Viu
818 ANYOFL_UTF8_LOCALE_REQD|5.023007||Viu
819 ANYOFM|5.027009||Viu
820 ANYOF_MATCHES_ALL_ABOVE_BITMAP|5.021004||Viu
821 ANYOF_MATCHES_POSIXL|5.021004||Viu
822 ANYOF_MAX|5.006000||Viu
823 ANYOFM_t8_p8|5.033003||Viu
824 ANYOFM_t8_pb|5.033003||Viu
825 ANYOFM_tb_p8|5.033003||Viu
826 ANYOFM_tb_pb|5.033003||Viu
827 ANYOF_NALNUM|5.006000||Viu
828 ANYOF_NALNUML|5.004000||Viu
829 ANYOF_NALPHA|5.006000||Viu
830 ANYOF_NALPHANUMERIC|5.017008||Viu
831 ANYOF_NASCII|5.006000||Viu
832 ANYOF_NBLANK|5.006001||Viu
833 ANYOF_NCASED|5.017008||Viu
834 ANYOF_NCNTRL|5.006000||Viu
835 ANYOF_NDIGIT|5.006000||Viu
836 ANYOF_NGRAPH|5.006000||Viu
837 ANYOF_NHORIZWS|5.009005||Viu
838 ANYOF_NLOWER|5.006000||Viu
839 ANYOF_NPRINT|5.006000||Viu
840 ANYOF_NPUNCT|5.006000||Viu
841 ANYOF_NSPACE|5.006000||Viu
842 ANYOF_NSPACEL|5.004000||Viu
843 ANYOF_NUPPER|5.006000||Viu
844 ANYOF_NVERTWS|5.009005||Viu
845 ANYOF_NWORDCHAR|5.017005||Viu
846 ANYOF_NXDIGIT|5.006000||Viu
847 ANYOF_ONLY_HAS_BITMAP|5.021004||Viu
848 ANYOFPOSIXL|5.029004||Viu
849 ANYOF_POSIXL_AND|5.019005||Viu
850 ANYOF_POSIXL_CLEAR|5.019005||Viu
851 ANYOF_POSIXL_MAX|5.019005||Viu
852 ANYOF_POSIXL_OR|5.019005||Viu
853 ANYOF_POSIXL_SET|5.019005||Viu
854 ANYOF_POSIXL_SETALL|5.019005||Viu
855 ANYOF_POSIXL_SET_TO_BITMAP|5.029004||Viu
856 ANYOF_POSIXL_SSC_TEST_ALL_SET|5.019009||Viu
857 ANYOF_POSIXL_SSC_TEST_ANY_SET|5.019009||Viu
858 ANYOFPOSIXL_t8_p8|5.033003||Viu
859 ANYOFPOSIXL_t8_pb|5.033003||Viu
860 ANYOFPOSIXL_tb_p8|5.033003||Viu
861 ANYOFPOSIXL_tb_pb|5.033003||Viu
862 ANYOF_POSIXL_TEST|5.019005||Viu
863 ANYOF_POSIXL_TEST_ALL_SET|5.019005||Viu
864 ANYOF_POSIXL_TEST_ANY_SET|5.019005||Viu
865 ANYOF_POSIXL_ZERO|5.019005||Viu
866 ANYOF_PRINT|5.006000||Viu
867 ANYOF_PUNCT|5.006000||Viu
868 ANYOFR|5.031007||Viu
869 ANYOFRb|5.031007||Viu
870 ANYOFRbase|5.031007||Viu
871 ANYOFR_BASE_BITS|5.031007||Viu
872 ANYOFRb_t8_p8|5.033003||Viu
873 ANYOFRb_t8_pb|5.033003||Viu
874 ANYOFRb_tb_p8|5.033003||Viu
875 ANYOFRb_tb_pb|5.033003||Viu
876 ANYOFRdelta|5.031007||Viu
877 ANYOFR_t8_p8|5.033003||Viu
878 ANYOFR_t8_pb|5.033003||Viu
879 ANYOFR_tb_p8|5.033003||Viu
880 ANYOFR_tb_pb|5.033003||Viu
881 ANYOF_SHARED_d_MATCHES_ALL_NON_UTF8_NON_ASCII_non_d_WARN_SUPER|5.023003||Viu
882 ANYOF_SHARED_d_UPPER_LATIN1_UTF8_STRING_MATCHES_non_d_RUNTIME_USER_PROP|5.023006||Viu
883 ANYOF_SPACE|5.006000||Viu
884 ANYOF_SPACEL|5.004000||Viu
885 ANYOF_t8_p8|5.033003||Viu
886 ANYOF_t8_pb|5.033003||Viu
887 ANYOF_tb_p8|5.033003||Viu
888 ANYOF_tb_pb|5.033003||Viu
889 ANYOF_UNIPROP|5.017006||Viu
890 ANYOF_UPPER|5.006000||Viu
891 ANYOF_VERTWS|5.009005||Viu
892 ANYOF_WORDCHAR|5.017005||Viu
893 ANYOF_XDIGIT|5.006000||Viu
616894 ao|5.005000||Viu
617895 _append_range_to_invlist|5.013010||Viu
618 append_utf8_from_native_byte|5.019004||ncViu
896 append_utf8_from_native_byte|5.019004||cVniu
619897 apply|5.003007||Viu
620898 apply_attrs|5.006000||Viu
621899 apply_attrs_my|5.007003||Viu
622900 apply_attrs_string|5.006001|5.006001|xu
623 ARCHNAME|5.004000|5.004000|
901 ARCHLIB|5.003007|5.003007|Vn
902 ARCHLIB_EXP|5.003007|5.003007|Vn
903 ARCHNAME|5.004000|5.004000|Vn
904 ARG1|5.003007||Viu
905 ARG1_LOC|5.005000||Viu
906 ARG1_SET|5.005000||Viu
907 ARG2|5.003007||Viu
908 ARG2L|5.009005||Viu
909 ARG2L_LOC|5.009005||Viu
910 ARG2_LOC|5.005000||Viu
911 ARG2L_SET|5.009005||Viu
912 ARG2_SET|5.005000||Viu
913 ARG|5.005000||Viu
914 ARG_LOC|5.005000||Viu
915 ARGp|5.031010||Viu
916 ARGp_LOC|5.031010||Viu
917 ARGp_SET|5.031010||Viu
918 ARG__SET|5.005000||Viu
919 ARG_SET|5.005000||Viu
920 ARGTARG|5.003007||Viu
921 ARG_VALUE|5.005000||Viu
624922 argvout_final|5.029006||Viu
625 ASCII_TO_NEED|5.019004||ndcVu
923 ASCIIish|5.005003||Viu
924 ASCII_MORE_RESTRICT_PAT_MODS|5.013010||Viu
925 ASCII_RESTRICT_PAT_MOD|5.013009||Viu
926 ASCII_RESTRICT_PAT_MODS|5.013009||Viu
927 ASCII_TO_NATIVE|5.007001||Viu
928 ASCII_TO_NEED|5.019004||dcVnu
929 asctime|5.009000||Viu
930 ASCTIME_R_PROTO|5.008000|5.008000|Vn
931 assert|5.003007||Viu
626932 __ASSERT_|5.019007|5.008008|p
933 ASSERT_CURPAD_ACTIVE|5.008001||Viu
934 ASSERT_CURPAD_LEGAL|5.008001||Viu
935 assert_not_glob|5.009004||Viu
936 assert_not_ROK|5.008001||Viu
627937 assert_uft8_cache_coherent|5.013003||Viu
628938 assignment_type|5.021005||Viu
939 ASSUME|5.019006|5.003007|p
629940 atfork_lock|5.007002|5.007002|nu
630941 atfork_unlock|5.007002|5.007002|nu
942 aTHX|5.006000|5.003007|p
631943 aTHX_|5.006000|5.003007|p
632 aTHX|5.006000|5.003007|p
633 aTHXR_||5.003007|pou
634 aTHXR||5.003007|pou
635 av_arylen_p|5.009003|5.009003|u
944 aTHXa|5.017006||Viu
945 aTHXo|5.006000||Viu
946 aTHXR||5.003007|ponu
947 aTHXR_||5.003007|ponu
948 aTHXx|5.006000||Viu
949 Atof|5.006000||Viu
950 Atol|5.006000||Viu
951 atoll|5.008000||Viu
952 Atoul|5.006000||Viu
953 AvALLOC|5.003007||Viu
954 AvARRAY|5.003007|5.003007|
955 AvARYLEN|5.003007||Viu
956 av_arylen_p|||cu
636957 av_clear|5.003007|5.003007|
958 av_count|5.033001|5.003007|p
637959 av_create_and_push|5.009005|5.009005|x
638960 av_create_and_unshift_one|5.009005|5.009005|x
639961 av_delete|5.006000|5.006000|
643965 av_fetch|5.003007|5.003007|
644966 av_fill|5.003007|5.003007|
645967 AvFILL|5.003007|5.003007|
646 AvFILLp|5.004005|5.003007|poV
647 av_iter_p|5.011000|5.011000|u
968 AvFILLp|5.004005||pcV
969 av_iter_p|||cu
648970 av_len|5.003007|5.003007|
649971 av_make|5.003007|5.003007|
972 AvMAX|5.003007||Viu
973 av_new_alloc|5.035001|5.035001|
650974 av_nonelem|5.027009||Viu
651975 av_pop|5.003007|5.003007|
652976 av_push|5.003007|5.003007|
977 AvREAL|5.003007||Viu
978 AvREALISH|5.003007||Viu
979 AvREAL_off|5.003007||Viu
980 AvREAL_on|5.003007||Viu
981 AvREAL_only|5.009003||Viu
982 AvREIFY|5.003007||Viu
653983 av_reify|5.004004||cViu
984 AvREIFY_off|5.003007||Viu
985 AvREIFY_on|5.003007||Viu
986 AvREIFY_only|5.009003||Viu
654987 av_shift|5.003007|5.003007|
655988 av_store|5.003007|5.003007|
656989 av_tindex|5.017009|5.003007|p
990 av_tindex_skip_len_mg|5.025010||Viu
657991 av_top_index|5.017009|5.003007|p
992 av_top_index_skip_len_mg|5.025010||Viu
658993 av_undef|5.003007|5.003007|
659994 av_unshift|5.003007|5.003007|
660995 ax|5.003007|5.003007|
664999 backup_one_WB|5.021009||Viu
6651000 bad_type_gv|5.019002||Viu
6661001 bad_type_pv|5.016000||Viu
667 BhkDISABLE|||x
668 BhkENABLE|||x
669 BhkENTRY_set|||x
670 BhkENTRY|||xi
671 BhkFLAGS|||xi
672 BIN|5.003007|5.003007|
1002 BADVERSION|5.011004||Viu
1003 BASEOP|5.003007||Viu
1004 BhkDISABLE|5.013003||xV
1005 BhkENABLE|5.013003||xV
1006 BhkENTRY|5.013003||xVi
1007 BhkENTRY_set|5.013003||xV
1008 BHKf_bhk_eval|5.013006||Viu
1009 BHKf_bhk_post_end|5.013006||Viu
1010 BHKf_bhk_pre_end|5.013006||Viu
1011 BHKf_bhk_start|5.013006||Viu
1012 BhkFLAGS|5.013003||xVi
1013 BIN|5.003007|5.003007|Vn
1014 bind|5.005000||Viu
6731015 bind_match|5.003007||Viu
1016 BIN_EXP|5.004000|5.004000|Vn
1017 BIT_BUCKET|5.003007||Viu
1018 BIT_DIGITS|5.004000||Viu
1019 BITMAP_BYTE|5.009005||Viu
1020 BITMAP_TEST|5.009005||Viu
1021 blk_eval|5.003007||Viu
1022 blk_format|5.011000||Viu
1023 blk_gimme|5.003007||Viu
1024 blk_givwhen|5.027008||Viu
1025 blk_loop|5.003007||Viu
1026 blk_oldcop|5.003007||Viu
1027 blk_oldmarksp|5.003007||Viu
1028 blk_oldpm|5.003007||Viu
1029 blk_oldsaveix|5.023008||Viu
1030 blk_oldscopesp|5.003007||Viu
1031 blk_oldsp|5.003007||Viu
1032 blk_old_tmpsfloor|5.023008||Viu
1033 blk_sub|5.003007||Viu
1034 blk_u16|5.011000||Viu
6741035 block_end|5.004000|5.004000|
6751036 block_gimme|5.004000|5.004000|u
6761037 blockhook_register|5.013003|5.013003|x
6771038 block_start|5.004000|5.004000|
1039 BmFLAGS|5.009005||Viu
1040 BmPREVIOUS|5.003007||Viu
1041 BmRARE|5.003007||Viu
1042 BmUSEFUL|5.003007||Viu
1043 BOL|5.003007||Viu
1044 BOL_t8_p8|5.033003||Viu
1045 BOL_t8_pb|5.033003||Viu
1046 BOL_tb_p8|5.033003||Viu
1047 BOL_tb_pb|5.033003||Viu
6781048 BOM_UTF8|5.025005|5.003007|p
1049 BOM_UTF8_FIRST_BYTE|5.019004||Viu
1050 BOM_UTF8_TAIL|5.019004||Viu
1051 bool|5.003007||Viu
6791052 boolSV|5.004000|5.003007|p
6801053 boot_core_mro|5.009005||Viu
6811054 boot_core_PerlIO|5.007002||Viu
6821055 boot_core_UNIVERSAL|5.003007||Viu
1056 BOUND|5.003007||Viu
1057 BOUNDA|5.013009||Viu
1058 BOUNDA_t8_p8|5.033003||Viu
1059 BOUNDA_t8_pb|5.033003||Viu
1060 BOUNDA_tb_p8|5.033003||Viu
1061 BOUNDA_tb_pb|5.033003||Viu
1062 BOUNDL|5.004000||Viu
1063 BOUNDL_t8_p8|5.033003||Viu
1064 BOUNDL_t8_pb|5.033003||Viu
1065 BOUNDL_tb_p8|5.033003||Viu
1066 BOUNDL_tb_pb|5.033003||Viu
1067 BOUND_t8_p8|5.033003||Viu
1068 BOUND_t8_pb|5.033003||Viu
1069 BOUND_tb_p8|5.033003||Viu
1070 BOUND_tb_pb|5.033003||Viu
1071 BOUNDU|5.013009||Viu
1072 BOUNDU_t8_p8|5.033003||Viu
1073 BOUNDU_t8_pb|5.033003||Viu
1074 BOUNDU_tb_p8|5.033003||Viu
1075 BOUNDU_tb_pb|5.033003||Viu
1076 BRANCH|5.003007||Viu
1077 BRANCHJ|5.005000||Viu
1078 BRANCHJ_t8_p8|5.033003||Viu
1079 BRANCHJ_t8_pb|5.033003||Viu
1080 BRANCHJ_tb_p8|5.033003||Viu
1081 BRANCHJ_tb_pb|5.033003||Viu
1082 BRANCH_next|5.009005||Viu
1083 BRANCH_next_fail|5.009005||Viu
1084 BRANCH_next_fail_t8_p8|5.033003||Viu
1085 BRANCH_next_fail_t8_pb|5.033003||Viu
1086 BRANCH_next_fail_tb_p8|5.033003||Viu
1087 BRANCH_next_fail_tb_pb|5.033003||Viu
1088 BRANCH_next_t8_p8|5.033003||Viu
1089 BRANCH_next_t8_pb|5.033003||Viu
1090 BRANCH_next_tb_p8|5.033003||Viu
1091 BRANCH_next_tb_pb|5.033003||Viu
1092 BRANCH_t8_p8|5.033003||Viu
1093 BRANCH_t8_pb|5.033003||Viu
1094 BRANCH_tb_p8|5.033003||Viu
1095 BRANCH_tb_pb|5.033003||Viu
1096 BSD_GETPGRP|5.003007||Viu
1097 BSDish|5.008001||Viu
1098 BSD_SETPGRP|5.003007||Viu
1099 BUFSIZ|5.003007||Viu
6831100 _byte_dump_string|5.025006||cViu
684 BYTEORDER|5.003007|5.003007|
1101 BYTEORDER|5.003007|5.003007|Vn
6851102 bytes_cmp_utf8|5.013007|5.013007|
6861103 bytes_from_utf8|5.007001|5.007001|x
687 bytes_from_utf8_loc|5.027001|5.027001|nxu
1104 bytes_from_utf8_loc|5.027001||xcVn
6881105 bytes_to_utf8|5.006001|5.006001|x
6891106 call_argv|5.006000|5.003007|p
6901107 call_atexit|5.006000|5.006000|u
691 CALL_BLOCK_HOOKS|||xi
1108 CALL_BLOCK_HOOKS|5.013003||xVi
6921109 CALL_CHECKER_REQUIRE_GV|5.021004|5.021004|
6931110 caller_cx|5.013005|5.006000|p
1111 CALL_FPTR|5.006000||Viu
6941112 call_list|5.004000|5.004000|u
6951113 call_method|5.006000|5.003007|p
6961114 calloc|5.007002|5.007002|n
6971115 call_pv|5.006000|5.003007|p
1116 CALLREGCOMP|5.005000||Viu
1117 CALLREGCOMP_ENG|5.009005||Viu
1118 CALLREGDUPE|5.009005||Viu
1119 CALLREGDUPE_PVT|5.009005||Viu
1120 CALLREGEXEC|5.005000||Viu
1121 CALLREGFREE|5.006000||Viu
1122 CALLREGFREE_PVT|5.009005||Viu
1123 CALLREG_INTUIT_START|5.006000||Viu
1124 CALLREG_INTUIT_STRING|5.006000||Viu
1125 CALLREG_NAMED_BUFF_ALL|5.009005||Viu
1126 CALLREG_NAMED_BUFF_CLEAR|5.009005||Viu
1127 CALLREG_NAMED_BUFF_COUNT|5.009005||Viu
1128 CALLREG_NAMED_BUFF_DELETE|5.009005||Viu
1129 CALLREG_NAMED_BUFF_EXISTS|5.009005||Viu
1130 CALLREG_NAMED_BUFF_FETCH|5.009005||Viu
1131 CALLREG_NAMED_BUFF_FIRSTKEY|5.009005||Viu
1132 CALLREG_NAMED_BUFF_NEXTKEY|5.009005||Viu
1133 CALLREG_NAMED_BUFF_SCALAR|5.009005||Viu
1134 CALLREG_NAMED_BUFF_STORE|5.009005||Viu
1135 CALLREG_NUMBUF_FETCH|5.009005||Viu
1136 CALLREG_NUMBUF_LENGTH|5.009005||Viu
1137 CALLREG_NUMBUF_STORE|5.009005||Viu
1138 CALLREG_PACKAGE|5.009005||Viu
1139 CALLRUNOPS|5.005000||Viu
6981140 call_sv|5.006000|5.003007|p
1141 CAN64BITHASH|5.027001||Viu
1142 CAN_COW_FLAGS|5.009000||Viu
1143 CAN_COW_MASK|5.009000||Viu
6991144 cando|5.003007||Viu
1145 CAN_PROTOTYPE|5.003007||Viu
7001146 C_ARRAY_END|5.013002|5.003007|p
7011147 C_ARRAY_LENGTH|5.008001|5.003007|p
702 CASTFLAGS|5.003007|5.003007|
703 cast_i32|5.006000|5.006000|nu
704 cast_iv|5.006000|5.006000|nu
705 cast_ulong|5.006000|5.006000|nu
706 cast_uv|5.006000|5.006000|nu
707 category_name|5.027008||nViu
1148 case_100_SBOX32|5.027001||Viu
1149 case_101_SBOX32|5.027001||Viu
1150 case_102_SBOX32|5.027001||Viu
1151 case_103_SBOX32|5.027001||Viu
1152 case_104_SBOX32|5.027001||Viu
1153 case_105_SBOX32|5.027001||Viu
1154 case_106_SBOX32|5.027001||Viu
1155 case_107_SBOX32|5.027001||Viu
1156 case_108_SBOX32|5.027001||Viu
1157 case_109_SBOX32|5.027001||Viu
1158 case_10_SBOX32|5.027001||Viu
1159 case_110_SBOX32|5.027001||Viu
1160 case_111_SBOX32|5.027001||Viu
1161 case_112_SBOX32|5.027001||Viu
1162 case_113_SBOX32|5.027001||Viu
1163 case_114_SBOX32|5.027001||Viu
1164 case_115_SBOX32|5.027001||Viu
1165 case_116_SBOX32|5.027001||Viu
1166 case_117_SBOX32|5.027001||Viu
1167 case_118_SBOX32|5.027001||Viu
1168 case_119_SBOX32|5.027001||Viu
1169 case_11_SBOX32|5.027001||Viu
1170 case_120_SBOX32|5.027001||Viu
1171 case_121_SBOX32|5.027001||Viu
1172 case_122_SBOX32|5.027001||Viu
1173 case_123_SBOX32|5.027001||Viu
1174 case_124_SBOX32|5.027001||Viu
1175 case_125_SBOX32|5.027001||Viu
1176 case_126_SBOX32|5.027001||Viu
1177 case_127_SBOX32|5.027001||Viu
1178 case_128_SBOX32|5.027001||Viu
1179 case_129_SBOX32|5.027001||Viu
1180 case_12_SBOX32|5.027001||Viu
1181 case_130_SBOX32|5.027001||Viu
1182 case_131_SBOX32|5.027001||Viu
1183 case_132_SBOX32|5.027001||Viu
1184 case_133_SBOX32|5.027001||Viu
1185 case_134_SBOX32|5.027001||Viu
1186 case_135_SBOX32|5.027001||Viu
1187 case_136_SBOX32|5.027001||Viu
1188 case_137_SBOX32|5.027001||Viu
1189 case_138_SBOX32|5.027001||Viu
1190 case_139_SBOX32|5.027001||Viu
1191 case_13_SBOX32|5.027001||Viu
1192 case_140_SBOX32|5.027001||Viu
1193 case_141_SBOX32|5.027001||Viu
1194 case_142_SBOX32|5.027001||Viu
1195 case_143_SBOX32|5.027001||Viu
1196 case_144_SBOX32|5.027001||Viu
1197 case_145_SBOX32|5.027001||Viu
1198 case_146_SBOX32|5.027001||Viu
1199 case_147_SBOX32|5.027001||Viu
1200 case_148_SBOX32|5.027001||Viu
1201 case_149_SBOX32|5.027001||Viu
1202 case_14_SBOX32|5.027001||Viu
1203 case_150_SBOX32|5.027001||Viu
1204 case_151_SBOX32|5.027001||Viu
1205 case_152_SBOX32|5.027001||Viu
1206 case_153_SBOX32|5.027001||Viu
1207 case_154_SBOX32|5.027001||Viu
1208 case_155_SBOX32|5.027001||Viu
1209 case_156_SBOX32|5.027001||Viu
1210 case_157_SBOX32|5.027001||Viu
1211 case_158_SBOX32|5.027001||Viu
1212 case_159_SBOX32|5.027001||Viu
1213 case_15_SBOX32|5.027001||Viu
1214 case_160_SBOX32|5.027001||Viu
1215 case_161_SBOX32|5.027001||Viu
1216 case_162_SBOX32|5.027001||Viu
1217 case_163_SBOX32|5.027001||Viu
1218 case_164_SBOX32|5.027001||Viu
1219 case_165_SBOX32|5.027001||Viu
1220 case_166_SBOX32|5.027001||Viu
1221 case_167_SBOX32|5.027001||Viu
1222 case_168_SBOX32|5.027001||Viu
1223 case_169_SBOX32|5.027001||Viu
1224 case_16_SBOX32|5.027001||Viu
1225 case_170_SBOX32|5.027001||Viu
1226 case_171_SBOX32|5.027001||Viu
1227 case_172_SBOX32|5.027001||Viu
1228 case_173_SBOX32|5.027001||Viu
1229 case_174_SBOX32|5.027001||Viu
1230 case_175_SBOX32|5.027001||Viu
1231 case_176_SBOX32|5.027001||Viu
1232 case_177_SBOX32|5.027001||Viu
1233 case_178_SBOX32|5.027001||Viu
1234 case_179_SBOX32|5.027001||Viu
1235 case_17_SBOX32|5.027001||Viu
1236 case_180_SBOX32|5.027001||Viu
1237 case_181_SBOX32|5.027001||Viu
1238 case_182_SBOX32|5.027001||Viu
1239 case_183_SBOX32|5.027001||Viu
1240 case_184_SBOX32|5.027001||Viu
1241 case_185_SBOX32|5.027001||Viu
1242 case_186_SBOX32|5.027001||Viu
1243 case_187_SBOX32|5.027001||Viu
1244 case_188_SBOX32|5.027001||Viu
1245 case_189_SBOX32|5.027001||Viu
1246 case_18_SBOX32|5.027001||Viu
1247 case_190_SBOX32|5.027001||Viu
1248 case_191_SBOX32|5.027001||Viu
1249 case_192_SBOX32|5.027001||Viu
1250 case_193_SBOX32|5.027001||Viu
1251 case_194_SBOX32|5.027001||Viu
1252 case_195_SBOX32|5.027001||Viu
1253 case_196_SBOX32|5.027001||Viu
1254 case_197_SBOX32|5.027001||Viu
1255 case_198_SBOX32|5.027001||Viu
1256 case_199_SBOX32|5.027001||Viu
1257 case_19_SBOX32|5.027001||Viu
1258 case_1_SBOX32|5.027001||Viu
1259 case_200_SBOX32|5.027001||Viu
1260 case_201_SBOX32|5.027001||Viu
1261 case_202_SBOX32|5.027001||Viu
1262 case_203_SBOX32|5.027001||Viu
1263 case_204_SBOX32|5.027001||Viu
1264 case_205_SBOX32|5.027001||Viu
1265 case_206_SBOX32|5.027001||Viu
1266 case_207_SBOX32|5.027001||Viu
1267 case_208_SBOX32|5.027001||Viu
1268 case_209_SBOX32|5.027001||Viu
1269 case_20_SBOX32|5.027001||Viu
1270 case_210_SBOX32|5.027001||Viu
1271 case_211_SBOX32|5.027001||Viu
1272 case_212_SBOX32|5.027001||Viu
1273 case_213_SBOX32|5.027001||Viu
1274 case_214_SBOX32|5.027001||Viu
1275 case_215_SBOX32|5.027001||Viu
1276 case_216_SBOX32|5.027001||Viu
1277 case_217_SBOX32|5.027001||Viu
1278 case_218_SBOX32|5.027001||Viu
1279 case_219_SBOX32|5.027001||Viu
1280 case_21_SBOX32|5.027001||Viu
1281 case_220_SBOX32|5.027001||Viu
1282 case_221_SBOX32|5.027001||Viu
1283 case_222_SBOX32|5.027001||Viu
1284 case_223_SBOX32|5.027001||Viu
1285 case_224_SBOX32|5.027001||Viu
1286 case_225_SBOX32|5.027001||Viu
1287 case_226_SBOX32|5.027001||Viu
1288 case_227_SBOX32|5.027001||Viu
1289 case_228_SBOX32|5.027001||Viu
1290 case_229_SBOX32|5.027001||Viu
1291 case_22_SBOX32|5.027001||Viu
1292 case_230_SBOX32|5.027001||Viu
1293 case_231_SBOX32|5.027001||Viu
1294 case_232_SBOX32|5.027001||Viu
1295 case_233_SBOX32|5.027001||Viu
1296 case_234_SBOX32|5.027001||Viu
1297 case_235_SBOX32|5.027001||Viu
1298 case_236_SBOX32|5.027001||Viu
1299 case_237_SBOX32|5.027001||Viu
1300 case_238_SBOX32|5.027001||Viu
1301 case_239_SBOX32|5.027001||Viu
1302 case_23_SBOX32|5.027001||Viu
1303 case_240_SBOX32|5.027001||Viu
1304 case_241_SBOX32|5.027001||Viu
1305 case_242_SBOX32|5.027001||Viu
1306 case_243_SBOX32|5.027001||Viu
1307 case_244_SBOX32|5.027001||Viu
1308 case_245_SBOX32|5.027001||Viu
1309 case_246_SBOX32|5.027001||Viu
1310 case_247_SBOX32|5.027001||Viu
1311 case_248_SBOX32|5.027001||Viu
1312 case_249_SBOX32|5.027001||Viu
1313 case_24_SBOX32|5.027001||Viu
1314 case_250_SBOX32|5.027001||Viu
1315 case_251_SBOX32|5.027001||Viu
1316 case_252_SBOX32|5.027001||Viu
1317 case_253_SBOX32|5.027001||Viu
1318 case_254_SBOX32|5.027001||Viu
1319 case_255_SBOX32|5.027001||Viu
1320 case_256_SBOX32|5.027001||Viu
1321 case_25_SBOX32|5.027001||Viu
1322 case_26_SBOX32|5.027001||Viu
1323 case_27_SBOX32|5.027001||Viu
1324 case_28_SBOX32|5.027001||Viu
1325 case_29_SBOX32|5.027001||Viu
1326 case_2_SBOX32|5.027001||Viu
1327 case_30_SBOX32|5.027001||Viu
1328 case_31_SBOX32|5.027001||Viu
1329 case_32_SBOX32|5.027001||Viu
1330 case_33_SBOX32|5.027001||Viu
1331 case_34_SBOX32|5.027001||Viu
1332 case_35_SBOX32|5.027001||Viu
1333 case_36_SBOX32|5.027001||Viu
1334 case_37_SBOX32|5.027001||Viu
1335 case_38_SBOX32|5.027001||Viu
1336 case_39_SBOX32|5.027001||Viu
1337 case_3_SBOX32|5.027001||Viu
1338 case_40_SBOX32|5.027001||Viu
1339 case_41_SBOX32|5.027001||Viu
1340 case_42_SBOX32|5.027001||Viu
1341 case_43_SBOX32|5.027001||Viu
1342 case_44_SBOX32|5.027001||Viu
1343 case_45_SBOX32|5.027001||Viu
1344 case_46_SBOX32|5.027001||Viu
1345 case_47_SBOX32|5.027001||Viu
1346 case_48_SBOX32|5.027001||Viu
1347 case_49_SBOX32|5.027001||Viu
1348 case_4_SBOX32|5.027001||Viu
1349 case_50_SBOX32|5.027001||Viu
1350 case_51_SBOX32|5.027001||Viu
1351 case_52_SBOX32|5.027001||Viu
1352 case_53_SBOX32|5.027001||Viu
1353 case_54_SBOX32|5.027001||Viu
1354 case_55_SBOX32|5.027001||Viu
1355 case_56_SBOX32|5.027001||Viu
1356 case_57_SBOX32|5.027001||Viu
1357 case_58_SBOX32|5.027001||Viu
1358 case_59_SBOX32|5.027001||Viu
1359 case_5_SBOX32|5.027001||Viu
1360 case_60_SBOX32|5.027001||Viu
1361 case_61_SBOX32|5.027001||Viu
1362 case_62_SBOX32|5.027001||Viu
1363 case_63_SBOX32|5.027001||Viu
1364 case_64_SBOX32|5.027001||Viu
1365 case_65_SBOX32|5.027001||Viu
1366 case_66_SBOX32|5.027001||Viu
1367 case_67_SBOX32|5.027001||Viu
1368 case_68_SBOX32|5.027001||Viu
1369 case_69_SBOX32|5.027001||Viu
1370 case_6_SBOX32|5.027001||Viu
1371 case_70_SBOX32|5.027001||Viu
1372 case_71_SBOX32|5.027001||Viu
1373 case_72_SBOX32|5.027001||Viu
1374 case_73_SBOX32|5.027001||Viu
1375 case_74_SBOX32|5.027001||Viu
1376 case_75_SBOX32|5.027001||Viu
1377 case_76_SBOX32|5.027001||Viu
1378 case_77_SBOX32|5.027001||Viu
1379 case_78_SBOX32|5.027001||Viu
1380 case_79_SBOX32|5.027001||Viu
1381 case_7_SBOX32|5.027001||Viu
1382 case_80_SBOX32|5.027001||Viu
1383 case_81_SBOX32|5.027001||Viu
1384 case_82_SBOX32|5.027001||Viu
1385 case_83_SBOX32|5.027001||Viu
1386 case_84_SBOX32|5.027001||Viu
1387 case_85_SBOX32|5.027001||Viu
1388 case_86_SBOX32|5.027001||Viu
1389 case_87_SBOX32|5.027001||Viu
1390 case_88_SBOX32|5.027001||Viu
1391 case_89_SBOX32|5.027001||Viu
1392 case_8_SBOX32|5.027001||Viu
1393 case_90_SBOX32|5.027001||Viu
1394 case_91_SBOX32|5.027001||Viu
1395 case_92_SBOX32|5.027001||Viu
1396 case_93_SBOX32|5.027001||Viu
1397 case_94_SBOX32|5.027001||Viu
1398 case_95_SBOX32|5.027001||Viu
1399 case_96_SBOX32|5.027001||Viu
1400 case_97_SBOX32|5.027001||Viu
1401 case_98_SBOX32|5.027001||Viu
1402 case_99_SBOX32|5.027001||Viu
1403 case_9_SBOX32|5.027001||Viu
1404 CASE_STD_PMMOD_FLAGS_PARSE_SET|5.009005||Viu
1405 CASTFLAGS|5.003007|5.003007|Vn
1406 cast_i32|5.006000||cVnu
1407 cast_iv|5.006000||cVnu
1408 CASTNEGFLOAT|5.003007|5.003007|Vn
1409 cast_ulong|5.003007||cVnu
1410 cast_uv|5.006000||cVnu
1411 CAT2|5.003007|5.003007|Vn
1412 CATCH_GET|5.004000||Viu
1413 CATCH_SET|5.004000||Viu
1414 category_name|5.027008||Vniu
1415 cBINOP|5.003007||Viu
1416 cBINOPo|5.004005||Viu
1417 cBINOPx|5.006000||Viu
7081418 cBOOL|5.013000|5.003007|p
1419 cCOP|5.003007||Viu
1420 cCOPo|5.004005||Viu
1421 cCOPx|5.006000||Viu
1422 C_FAC_POSIX|5.009003||Viu
1423 cGVOP_gv|5.006000||Viu
1424 cGVOPo_gv|5.006000||Viu
1425 cGVOPx_gv|5.006000||Viu
7091426 change_engine_size|5.029004||Viu
710 CHARBITS|5.011002|5.011002|
1427 CHANGE_MULTICALL_FLAGS|5.018000||Viu
1428 CHARBITS|5.011002|5.011002|Vn
1429 CHARSET_PAT_MODS|5.013010||Viu
1430 chdir|5.005000||Viu
7111431 checkcomma|5.003007||Viu
1432 check_end_shift|5.009005||Viu
7121433 check_locale_boundary_crossing|5.015006||Viu
1434 CHECK_MALLOC_TAINT|5.008001||Viu
1435 CHECK_MALLOC_TOO_LATE_FOR|5.008001||Viu
1436 check_offset_max|5.005000||Viu
1437 check_offset_min|5.005000||Viu
1438 check_substr|5.005000||Viu
7131439 check_type_and_open|5.009003||Viu
7141440 check_uni|5.003007||Viu
1441 check_utf8|5.008000||Viu
7151442 check_utf8_print|5.013009||Viu
1443 child_offset_bits|5.009003||Viu
1444 chmod|5.005000||Viu
1445 chsize|5.005000||Viu
1446 ckDEAD|5.006000||Viu
7161447 ck_entersub_args_core|||iu
7171448 ck_entersub_args_list|5.013006|5.013006|
7181449 ck_entersub_args_proto|5.013006|5.013006|
7191450 ck_entersub_args_proto_or_list|5.013006|5.013006|
720 ckWARN2|5.006000|5.006000|
721 ckWARN2_d|5.006000|5.006000|
722 ckWARN3|5.007003|5.007003|
723 ckWARN3_d|5.007003|5.007003|
724 ckWARN4|5.007003|5.007003|
725 ckWARN4_d|5.007003|5.007003|
1451 ckWARN2|5.006000|5.003007|p
1452 ckWARN2_d|5.006000|5.003007|p
1453 ckWARN3|5.007003|5.003007|p
1454 ckWARN3_d|5.007003|5.003007|p
1455 ckWARN4|5.007003|5.003007|p
1456 ckWARN4_d|5.007003|5.003007|p
7261457 ckWARN|5.006000|5.003007|p
727 ckwarn|5.009003|5.009003|u
7281458 ckwarn_common|5.011001||Viu
729 ckWARN_d|5.006000|5.006000|
730 ckwarn_d|5.009003|5.009003|u
731 ck_warner|5.011001|5.011001|vu
732 ck_warner_d|5.011001|5.011001|vu
1459 ckwarn|||cu
1460 ckWARN_d|5.006000|5.003007|p
1461 ckwarn_d|||cu
1462 ck_warner|5.011001|5.004000|pv
1463 ck_warner_d|5.011001|5.004000|pv
1464 CLANG_DIAG_IGNORE|5.023006||Viu
1465 CLANG_DIAG_IGNORE_DECL|5.027007||Viu
1466 CLANG_DIAG_IGNORE_STMT|5.027007||Viu
1467 CLANG_DIAG_PRAGMA|5.023006||Viu
1468 CLANG_DIAG_RESTORE|5.023006||Viu
1469 CLANG_DIAG_RESTORE_DECL|5.027007||Viu
1470 CLANG_DIAG_RESTORE_STMT|5.027007||Viu
7331471 CLASS||5.003007|
1472 CLEAR_ARGARRAY|5.006000||Viu
7341473 clear_defarray|5.023008|5.023008|u
1474 clearerr|5.003007||Viu
7351475 CLEAR_ERRSV|5.025007|5.025007|
1476 CLEARFEATUREBITS|5.031006||Viu
7361477 clear_placeholders|5.009004||xViu
7371478 clear_special_blocks|5.021003||Viu
1479 cLISTOP|5.003007||Viu
1480 cLISTOPo|5.004005||Viu
1481 cLISTOPx|5.006000||Viu
1482 cLOGOP|5.003007||Viu
1483 cLOGOPo|5.004005||Viu
1484 cLOGOPx|5.006000||Viu
1485 CLONEf_CLONE_HOST|5.007002||Viu
1486 CLONEf_COPY_STACKS|5.007001||Viu
1487 CLONEf_JOIN_IN|5.008001||Viu
1488 CLONEf_KEEP_PTR_TABLE|5.007001||Viu
7381489 clone_params_del|5.013002|5.013002|nu
7391490 clone_params_new|5.013002|5.013002|nu
1491 cLOOP|5.003007||Viu
1492 cLOOPo|5.004005||Viu
1493 cLOOPx|5.006000||Viu
1494 CLOSE|5.003007||Viu
1495 close|5.005000||Viu
1496 closedir|5.005000||Viu
7401497 closest_cop|5.007002||Viu
741 cntrl_to_mnemonic|5.021004||ncViu
742 compute_EXACTish|5.017003||nViu
1498 CLOSE_t8_p8|5.033003||Viu
1499 CLOSE_t8_pb|5.033003||Viu
1500 CLOSE_tb_p8|5.033003||Viu
1501 CLOSE_tb_pb|5.033003||Viu
1502 CLUMP_2IV|5.006000||Viu
1503 CLUMP_2UV|5.006000||Viu
1504 CLUMP|5.006000||Viu
1505 CLUMP_t8_p8|5.033003||Viu
1506 CLUMP_t8_pb|5.033003||Viu
1507 CLUMP_tb_p8|5.033003||Viu
1508 CLUMP_tb_pb|5.033003||Viu
1509 cMETHOPx|5.021005||Viu
1510 cMETHOPx_meth|5.021005||Viu
1511 cMETHOPx_rclass|5.021007||Viu
1512 cmpchain_extend|5.031011||Viu
1513 cmpchain_finish|5.031011||Viu
1514 cmpchain_start|5.031011||Viu
1515 cmp_desc|5.031011||Viu
1516 cmp_locale_desc|5.031011||Viu
1517 cntrl_to_mnemonic|5.021004||cVniu
1518 CODESET|5.027010||Viu
1519 COMBINING_DOT_ABOVE_UTF8|5.029008||Viu
1520 COMBINING_GRAVE_ACCENT_UTF8|5.017004||Viu
1521 COMMIT|5.009005||Viu
1522 COMMIT_next|5.009005||Viu
1523 COMMIT_next_fail|5.009005||Viu
1524 COMMIT_next_fail_t8_p8|5.033003||Viu
1525 COMMIT_next_fail_t8_pb|5.033003||Viu
1526 COMMIT_next_fail_tb_p8|5.033003||Viu
1527 COMMIT_next_fail_tb_pb|5.033003||Viu
1528 COMMIT_next_t8_p8|5.033003||Viu
1529 COMMIT_next_t8_pb|5.033003||Viu
1530 COMMIT_next_tb_p8|5.033003||Viu
1531 COMMIT_next_tb_pb|5.033003||Viu
1532 COMMIT_t8_p8|5.033003||Viu
1533 COMMIT_t8_pb|5.033003||Viu
1534 COMMIT_tb_p8|5.033003||Viu
1535 COMMIT_tb_pb|5.033003||Viu
1536 compile_wildcard|5.031010||Viu
1537 compute_EXACTish|5.017003||Vniu
1538 COND_BROADCAST|5.005000||Viu
1539 COND_DESTROY|5.005000||Viu
1540 COND_INIT|5.005000||Viu
1541 COND_SIGNAL|5.005000||Viu
1542 COND_WAIT|5.005000||Viu
1543 connect|5.005000||Viu
7431544 construct_ahocorasick_from_trie|5.021001||Viu
1545 CONTINUE_PAT_MOD|5.009005||Viu
7441546 cop_fetch_label|5.015001|5.015001|x
745 CopFILE|5.006000||pVu
746 CopFILEAV|5.006000||pVu
747 CopFILEGV|5.006000||pVu
748 CopFILEGV_set|5.006000||pVu
749 CopFILE_set|5.006000||pVu
750 CopFILESV|5.006000||pVu
1547 CopFILE|5.006000|5.003007|p
1548 CopFILEAV|5.006000|5.003007|p
1549 CopFILEAVx|5.009003||Viu
1550 CopFILE_free|5.007003||Viu
1551 CopFILEGV|5.006000|5.003007|p
1552 CopFILEGV_set|5.006000|5.003007|p
1553 CopFILE_set|5.006000|5.003007|p
1554 CopFILE_setn|5.009005||Viu
1555 CopFILESV|5.006000|5.003007|p
7511556 cop_free|5.006000||Viu
7521557 cophh_2hv|5.013007|5.013007|x
7531558 cophh_copy|5.013007|5.013007|x
7551560 cophh_delete_pvn|5.013007|5.013007|x
7561561 cophh_delete_pvs|5.013007|5.013007|x
7571562 cophh_delete_sv|5.013007|5.013007|x
1563 COPHH_EXISTS|5.033008||Viu
1564 cophh_exists_pv|5.033008|5.033008|x
1565 cophh_exists_pvn|5.033008|5.033008|x
1566 cophh_exists_pvs|5.033008|5.033008|x
1567 cophh_exists_sv|5.033008|5.033008|x
7581568 cophh_fetch_pv|5.013007|5.013007|x
7591569 cophh_fetch_pvn|5.013007|5.013007|x
7601570 cophh_fetch_pvs|5.013007|5.013007|x
7661576 cophh_store_pvn|5.013007|5.013007|x
7671577 cophh_store_pvs|5.013007|5.013007|x
7681578 cophh_store_sv|5.013007|5.013007|x
1579 CopHINTHASH_get|5.013007||Viu
1580 CopHINTHASH_set|5.013007||Viu
7691581 cop_hints_2hv|5.013007|5.013007|
1582 cop_hints_exists_pv|5.033008|5.033008|
1583 cop_hints_exists_pvn|5.033008|5.033008|
1584 cop_hints_exists_pvs|5.033008|5.033008|
1585 cop_hints_exists_sv|5.033008|5.033008|
7701586 cop_hints_fetch_pv|5.013007|5.013007|
7711587 cop_hints_fetch_pvn|5.013007|5.013007|
7721588 cop_hints_fetch_pvs|5.013007|5.013007|
7731589 cop_hints_fetch_sv|5.013007|5.013007|
1590 CopHINTS_get|5.009004||Viu
1591 CopHINTS_set|5.009004||Viu
7741592 CopLABEL|5.009005|5.009005|
1593 CopLABEL_alloc|5.009005||Viu
7751594 CopLABEL_len|5.016000|5.016000|
7761595 CopLABEL_len_flags|5.016000|5.016000|
777 CopSTASH|5.006000||pVu
778 CopSTASH_eq|5.006000||pVu
779 CopSTASHPV|5.006000||pVu
780 CopSTASHPV_set|5.006000||pVu
781 CopSTASH_set|5.006000||pVu
1596 CopLINE|5.006000|5.006000|
1597 CopLINE_dec|5.006000||Viu
1598 CopLINE_inc|5.006000||Viu
1599 CopLINE_set|5.006000||Viu
1600 COP_SEQMAX_INC|5.021006||Viu
1601 COP_SEQ_RANGE_HIGH|5.009005||Viu
1602 COP_SEQ_RANGE_LOW|5.009005||Viu
1603 CopSTASH|5.006000|5.003007|p
1604 CopSTASH_eq|5.006000|5.003007|p
1605 CopSTASH_ne|5.006000||Viu
1606 CopSTASHPV|5.006000|5.003007|p
1607 CopSTASHPV_set|5.017001|5.017001|p
1608 CopSTASH_set|5.006000|5.003007|p
7821609 cop_store_label|5.015001|5.015001|x
7831610 Copy|5.003007|5.003007|
7841611 CopyD|5.009002|5.003007|p
7851612 core_prototype|5.015002||Vi
7861613 coresub_op|5.015003||Viu
787 CPERLscope|5.005000||pVu
788 CPPLAST|5.006000|5.006000|
789 CPPMINUS|5.003007|5.003007|
790 CPPRUN|5.006000|5.006000|
791 CPPSTDIN|5.003007|5.003007|
1614 CowREFCNT|5.017007||Viu
1615 cPADOP|5.006000||Viu
1616 cPADOPo|5.006000||Viu
1617 cPADOPx|5.006000||Viu
1618 CPERLarg|5.005000||Viu
1619 CPERLscope|5.005000|5.003007|pdV
1620 cPMOP|5.003007||Viu
1621 cPMOPo|5.004005||Viu
1622 cPMOPx|5.006000||Viu
1623 CPPLAST|5.006000|5.006000|Vn
1624 CPPMINUS|5.003007|5.003007|Vn
1625 CPPRUN|5.006000|5.006000|Vn
1626 CPPSTDIN|5.003007|5.003007|Vn
1627 cPVOP|5.003007||Viu
1628 cPVOPo|5.004005||Viu
1629 cPVOPx|5.006000||Viu
7921630 create_eval_scope|5.009004||xViu
1631 CR_NATIVE|5.019004||Viu
1632 CRNCYSTR|5.027010||Viu
7931633 croak|5.006000|5.003007|v
794 croak_caller|5.025004||vnViu
795 croak_memory_wrap|5.017006|5.003007|pnu
796 croak_nocontext|5.006000||pvnVu
797 croak_no_mem|5.017006||nViu
1634 croak_caller|5.025004||vVniu
1635 croak_memory_wrap|5.019003||pcVnu
1636 croak_nocontext|5.006000||pvVn
1637 croak_no_mem|5.017006||Vniu
7981638 croak_no_modify|5.013003|5.003007|pn
799 croak_popstack|5.017008||ncViu
1639 croak_popstack|5.017008||cVniu
8001640 croak_sv|5.013001|5.003007|p
8011641 croak_xs_usage|5.010001|5.003007|pn
8021642 cr_textfilter|5.006000||Viu
803 csighandler1|||nu
804 csighandler3|||nu
805 csighandler|||nu
1643 crypt|5.009000||Viu
1644 CRYPT_R_PROTO|5.008000|5.008000|Vn
1645 CSH|5.003007|5.003007|Vn
1646 csighandler1|5.031007||cVnu
1647 csighandler3|5.031007||cVnu
1648 csighandler|5.008001||cVnu
1649 cSVOP|5.003007||Viu
1650 cSVOPo|5.004005||Viu
1651 cSVOPo_sv|5.006000||Viu
1652 cSVOP_sv|5.006000||Viu
1653 cSVOPx|5.006000||Viu
1654 cSVOPx_sv|5.006000||Viu
1655 cSVOPx_svp|5.006000||Viu
1656 ctermid|5.009000||Viu
1657 CTERMID_R_PROTO|5.008000|5.008000|Vn
1658 ctime|5.009000||Viu
1659 CTIME_R_PROTO|5.008000|5.008000|Vn
1660 Ctl|5.003007||Viu
1661 CTYPE256|5.003007||Viu
1662 cUNOP|5.003007||Viu
1663 cUNOP_AUX|5.021007||Viu
1664 cUNOP_AUXo|5.021007||Viu
1665 cUNOP_AUXx|5.021007||Viu
1666 cUNOPo|5.004005||Viu
1667 cUNOPx|5.006000||Viu
1668 CURLY|5.003007||Viu
1669 CURLY_B_max|5.009005||Viu
1670 CURLY_B_max_fail|5.009005||Viu
1671 CURLY_B_max_fail_t8_p8|5.033003||Viu
1672 CURLY_B_max_fail_t8_pb|5.033003||Viu
1673 CURLY_B_max_fail_tb_p8|5.033003||Viu
1674 CURLY_B_max_fail_tb_pb|5.033003||Viu
1675 CURLY_B_max_t8_p8|5.033003||Viu
1676 CURLY_B_max_t8_pb|5.033003||Viu
1677 CURLY_B_max_tb_p8|5.033003||Viu
1678 CURLY_B_max_tb_pb|5.033003||Viu
1679 CURLY_B_min|5.009005||Viu
1680 CURLY_B_min_fail|5.009005||Viu
1681 CURLY_B_min_fail_t8_p8|5.033003||Viu
1682 CURLY_B_min_fail_t8_pb|5.033003||Viu
1683 CURLY_B_min_fail_tb_p8|5.033003||Viu
1684 CURLY_B_min_fail_tb_pb|5.033003||Viu
1685 CURLY_B_min_t8_p8|5.033003||Viu
1686 CURLY_B_min_t8_pb|5.033003||Viu
1687 CURLY_B_min_tb_p8|5.033003||Viu
1688 CURLY_B_min_tb_pb|5.033003||Viu
1689 CURLYM|5.005000||Viu
1690 CURLYM_A|5.009005||Viu
1691 CURLYM_A_fail|5.009005||Viu
1692 CURLYM_A_fail_t8_p8|5.033003||Viu
1693 CURLYM_A_fail_t8_pb|5.033003||Viu
1694 CURLYM_A_fail_tb_p8|5.033003||Viu
1695 CURLYM_A_fail_tb_pb|5.033003||Viu
1696 CURLYM_A_t8_p8|5.033003||Viu
1697 CURLYM_A_t8_pb|5.033003||Viu
1698 CURLYM_A_tb_p8|5.033003||Viu
1699 CURLYM_A_tb_pb|5.033003||Viu
1700 CURLYM_B|5.009005||Viu
1701 CURLYM_B_fail|5.009005||Viu
1702 CURLYM_B_fail_t8_p8|5.033003||Viu
1703 CURLYM_B_fail_t8_pb|5.033003||Viu
1704 CURLYM_B_fail_tb_p8|5.033003||Viu
1705 CURLYM_B_fail_tb_pb|5.033003||Viu
1706 CURLYM_B_t8_p8|5.033003||Viu
1707 CURLYM_B_t8_pb|5.033003||Viu
1708 CURLYM_B_tb_p8|5.033003||Viu
1709 CURLYM_B_tb_pb|5.033003||Viu
1710 CURLYM_t8_p8|5.033003||Viu
1711 CURLYM_t8_pb|5.033003||Viu
1712 CURLYM_tb_p8|5.033003||Viu
1713 CURLYM_tb_pb|5.033003||Viu
1714 CURLYN|5.005000||Viu
1715 CURLYN_t8_p8|5.033003||Viu
1716 CURLYN_t8_pb|5.033003||Viu
1717 CURLYN_tb_p8|5.033003||Viu
1718 CURLYN_tb_pb|5.033003||Viu
1719 CURLY_t8_p8|5.033003||Viu
1720 CURLY_t8_pb|5.033003||Viu
1721 CURLY_tb_p8|5.033003||Viu
1722 CURLY_tb_pb|5.033003||Viu
1723 CURLYX|5.003007||Viu
1724 CURLYX_end|5.009005||Viu
1725 CURLYX_end_fail|5.009005||Viu
1726 CURLYX_end_fail_t8_p8|5.033003||Viu
1727 CURLYX_end_fail_t8_pb|5.033003||Viu
1728 CURLYX_end_fail_tb_p8|5.033003||Viu
1729 CURLYX_end_fail_tb_pb|5.033003||Viu
1730 CURLYX_end_t8_p8|5.033003||Viu
1731 CURLYX_end_t8_pb|5.033003||Viu
1732 CURLYX_end_tb_p8|5.033003||Viu
1733 CURLYX_end_tb_pb|5.033003||Viu
1734 CURLYX_t8_p8|5.033003||Viu
1735 CURLYX_t8_pb|5.033003||Viu
1736 CURLYX_tb_p8|5.033003||Viu
1737 CURLYX_tb_pb|5.033003||Viu
1738 CURRENT_FEATURE_BUNDLE|5.015007||Viu
1739 CURRENT_HINTS|5.015007||Viu
8061740 current_re_engine|5.017001||cViu
8071741 curse|5.013009||Viu
8081742 custom_op_desc|5.007003|5.007003|d
8091743 custom_op_get_field|5.019006||cViu
8101744 custom_op_name|5.007003|5.007003|d
8111745 custom_op_register|5.013007|5.013007|
1746 CUTGROUP|5.009005||Viu
1747 CUTGROUP_next|5.009005||Viu
1748 CUTGROUP_next_fail|5.009005||Viu
1749 CUTGROUP_next_fail_t8_p8|5.033003||Viu
1750 CUTGROUP_next_fail_t8_pb|5.033003||Viu
1751 CUTGROUP_next_fail_tb_p8|5.033003||Viu
1752 CUTGROUP_next_fail_tb_pb|5.033003||Viu
1753 CUTGROUP_next_t8_p8|5.033003||Viu
1754 CUTGROUP_next_t8_pb|5.033003||Viu
1755 CUTGROUP_next_tb_p8|5.033003||Viu
1756 CUTGROUP_next_tb_pb|5.033003||Viu
1757 CUTGROUP_t8_p8|5.033003||Viu
1758 CUTGROUP_t8_pb|5.033003||Viu
1759 CUTGROUP_tb_p8|5.033003||Viu
1760 CUTGROUP_tb_pb|5.033003||Viu
1761 CvANON|5.003007||Viu
1762 CvANONCONST|5.021008||Viu
1763 CvANONCONST_off|5.021008||Viu
1764 CvANONCONST_on|5.021008||Viu
1765 CvANON_off|5.003007||Viu
1766 CvANON_on|5.003007||Viu
1767 CvAUTOLOAD|5.015004||Viu
1768 CvAUTOLOAD_off|5.015004||Viu
1769 CvAUTOLOAD_on|5.015004||Viu
1770 cv_ckproto|5.009004||Viu
8121771 cv_ckproto_len_flags|5.015004||xcViu
8131772 cv_clone|5.003007|5.003007|
1773 CvCLONE|5.003007||Viu
1774 CvCLONED|5.003007||Viu
1775 CvCLONED_off|5.003007||Viu
1776 CvCLONED_on|5.003007||Viu
8141777 cv_clone_into|5.017004||Viu
1778 CvCLONE_off|5.003007||Viu
1779 CvCLONE_on|5.003007||Viu
1780 CvCONST|5.007001||Viu
1781 CvCONST_off|5.007001||Viu
1782 CvCONST_on|5.007001||Viu
8151783 cv_const_sv|5.003007|5.003007|n
816 cv_const_sv_or_av|5.019003||nViu
1784 cv_const_sv_or_av|5.019003||Vniu
1785 CvCVGV_RC|5.013003||Viu
1786 CvCVGV_RC_off|5.013003||Viu
1787 CvCVGV_RC_on|5.013003||Viu
8171788 CvDEPTH|5.003007|5.003007|nu
1789 CvDEPTHunsafe|5.021006||Viu
8181790 cv_dump|5.006000||Vi
1791 CvDYNFILE|5.015002||Viu
1792 CvDYNFILE_off|5.015002||Viu
1793 CvDYNFILE_on|5.015002||Viu
1794 CvEVAL|5.005003||Viu
1795 CvEVAL_off|5.005003||Viu
1796 CvEVAL_on|5.005003||Viu
1797 CVf_ANON|5.003007||Viu
1798 CVf_ANONCONST|5.021008||Viu
1799 CVf_AUTOLOAD|5.015004||Viu
1800 CVf_BUILTIN_ATTRS|5.008000||Viu
1801 CVf_CLONE|5.003007||Viu
1802 CVf_CLONED|5.003007||Viu
1803 CVf_CONST|5.007001||Viu
1804 CVf_CVGV_RC|5.013003||Viu
1805 CVf_DYNFILE|5.015002||Viu
1806 CVf_HASEVAL|5.017002||Viu
1807 CvFILE|5.006000||Viu
1808 CvFILEGV|5.003007||Viu
1809 CvFILE_set_from_cop|5.007002||Viu
1810 CVf_ISXSUB|5.009004||Viu
1811 CvFLAGS|5.003007||Viu
1812 CVf_LEXICAL|5.021004||Viu
1813 CVf_LVALUE|5.006000||Viu
1814 CVf_METHOD|5.005000||Viu
1815 CVf_NAMED|5.017004||Viu
1816 CVf_NODEBUG|5.004000||Viu
8191817 cv_forget_slab|5.017002||Vi
1818 CVf_SLABBED|5.017002||Viu
1819 CVf_UNIQUE|5.004000||Viu
1820 CVf_WEAKOUTSIDE|5.008001||Viu
8201821 cv_get_call_checker|5.013006|5.013006|
8211822 cv_get_call_checker_flags|5.027003|5.027003|
822 CvGV|5.003007|5.003007|u
1823 CvGV|5.003007|5.003007|
8231824 cvgv_from_hek|||ciu
8241825 cvgv_set|5.013003||cViu
1826 CvGV_set|5.013003||Viu
1827 CvHASEVAL|5.017002||Viu
1828 CvHASEVAL_off|5.017002||Viu
1829 CvHASEVAL_on|5.017002||Viu
1830 CvHASGV|5.021004||Viu
1831 CvHSCXT|5.021006||Viu
1832 CvISXSUB|5.009004||Viu
1833 CvISXSUB_off|5.009004||Viu
1834 CvISXSUB_on|5.009004||Viu
1835 CvLEXICAL|5.021004||Viu
1836 CvLEXICAL_off|5.021004||Viu
1837 CvLEXICAL_on|5.021004||Viu
1838 CvLVALUE|5.006000||Viu
1839 CvLVALUE_off|5.006000||Viu
1840 CvLVALUE_on|5.006000||Viu
1841 CvMETHOD|5.005000||Viu
1842 CvMETHOD_off|5.005000||Viu
1843 CvMETHOD_on|5.005000||Viu
8251844 cv_name|5.021005|5.021005|
1845 CvNAMED|5.017004||Viu
1846 CvNAMED_off|5.017004||Viu
1847 CvNAMED_on|5.017004||Viu
1848 CvNAME_HEK_set|5.017004||Viu
8261849 CV_NAME_NOTQUAL|5.021005|5.021005|
1850 CvNODEBUG|5.004000||Viu
1851 CvNODEBUG_off|5.004000||Viu
1852 CvNODEBUG_on|5.004000||Viu
1853 CvOUTSIDE|5.003007||Viu
1854 CvOUTSIDE_SEQ|5.008001||Viu
8271855 CvPADLIST|5.008001|5.008001|x
1856 CvPADLIST_set|5.021006||Viu
1857 CvPROTO|5.015004||Viu
1858 CvPROTOLEN|5.015004||Viu
1859 CvROOT|5.003007||Viu
8281860 cv_set_call_checker|5.013006|5.013006|
8291861 cv_set_call_checker_flags|5.021004|5.021004|
1862 CvSLABBED|5.017002||Viu
1863 CvSLABBED_off|5.017002||Viu
1864 CvSLABBED_on|5.017002||Viu
1865 CvSPECIAL|5.005003||Viu
1866 CvSPECIAL_off|5.005003||Viu
1867 CvSPECIAL_on|5.005003||Viu
1868 CvSTART|5.003007||Viu
8301869 CvSTASH|5.003007|5.003007|
8311870 cvstash_set|5.013007||cViu
1871 CvSTASH_set|5.013007||Viu
8321872 cv_undef|5.003007|5.003007|
8331873 cv_undef_flags|5.021004||Viu
834 CvWEAKOUTSIDE|||i
835 CX_CURPAD_SAVE|||i
836 CX_CURPAD_SV|||i
837 cx_dump|5.005000|5.005000|u
838 cx_dup|5.007003|5.007003|u
839 cxinc|5.003007|5.003007|u
840 cx_popblock|5.023008|5.023008|xu
841 cx_popeval|5.023008|5.023008|xu
842 cx_popformat|5.023008|5.023008|xu
843 cx_popgiven|5.027008|5.027008|xu
844 cx_poploop|5.023008|5.023008|xu
845 cx_popsub|5.023008|5.023008|xu
846 cx_popsub_args|5.023008|5.023008|xu
847 cx_popsub_common|5.023008|5.023008|xu
848 cx_popwhen|5.027008|5.027008|xu
849 cx_pushblock|5.023008|5.023008|xu
850 cx_pusheval|5.023008|5.023008|xu
851 cx_pushformat|5.023008|5.023008|xu
852 cx_pushgiven|5.027008|5.027008|xu
853 cx_pushloop_for|5.023008|5.023008|xu
854 cx_pushloop_plain|5.023008|5.023008|xu
855 cx_pushsub|5.023008|5.023008|xu
856 cx_pushwhen|5.027008|5.027008|xu
857 cx_topblock|5.023008|5.023008|xu
1874 CV_UNDEF_KEEP_NAME|5.021004||Viu
1875 CvUNIQUE|5.004000||Viu
1876 CvUNIQUE_off|5.004000||Viu
1877 CvUNIQUE_on|5.004000||Viu
1878 CvWEAKOUTSIDE|5.008001||Vi
1879 CvWEAKOUTSIDE_off|5.008001||Viu
1880 CvWEAKOUTSIDE_on|5.008001||Viu
1881 CvXSUB|5.003007||Viu
1882 CvXSUBANY|5.003007||Viu
1883 CX_CUR|5.023008||Viu
1884 CX_CURPAD_SAVE|5.008001||Vi
1885 CX_CURPAD_SV|5.008001||Vi
1886 CX_DEBUG|5.023008||Viu
1887 cx_dump|5.003007||cVu
1888 cx_dup|5.006000||cVu
1889 CxEVALBLOCK|5.033007||Viu
1890 CxEVAL_TXT_REFCNTED|5.025007||Viu
1891 CxFOREACH|5.009003||Viu
1892 CxHASARGS|5.010001||Viu
1893 cxinc|5.003007||cVu
1894 CXINC|5.003007||Viu
1895 CxITERVAR|5.006000||Viu
1896 CxLABEL|5.010001||Viu
1897 CxLABEL_len|5.016000||Viu
1898 CxLABEL_len_flags|5.016000||Viu
1899 CX_LEAVE_SCOPE|5.023008||Viu
1900 CxLVAL|5.010001||Viu
1901 CxMULTICALL|5.009003||Viu
1902 CxOLD_IN_EVAL|5.010001||Viu
1903 CxOLD_OP_TYPE|5.010001||Viu
1904 CxONCE|5.010001||Viu
1905 CxPADLOOP|5.006000||Viu
1906 CXp_EVALBLOCK|5.033007||Viu
1907 CXp_FOR_DEF|5.027008||Viu
1908 CXp_FOR_GV|5.023008||Viu
1909 CXp_FOR_LVREF|5.021005||Viu
1910 CXp_FOR_PAD|5.023008||Viu
1911 CXp_HASARGS|5.011000||Viu
1912 CXp_MULTICALL|5.009003||Viu
1913 CXp_ONCE|5.011000||Viu
1914 CX_POP|5.023008||Viu
1915 cx_popblock|5.023008||xcVu
1916 cx_popeval|5.023008||xcVu
1917 cx_popformat|5.023008||xcVu
1918 cx_popgiven|5.027008||xcVu
1919 cx_poploop|5.023008||xcVu
1920 CX_POP_SAVEARRAY|5.023008||Viu
1921 cx_popsub|5.023008||xcVu
1922 cx_popsub_args|5.023008||xcVu
1923 cx_popsub_common|5.023008||xcVu
1924 CX_POPSUBST|5.023008||Viu
1925 cx_popwhen|5.027008||xcVu
1926 CXp_REAL|5.005003||Viu
1927 CXp_SUB_RE|5.018000||Viu
1928 CXp_SUB_RE_FAKE|5.018000||Viu
1929 CXp_TRY|5.033007||Viu
1930 CXp_TRYBLOCK|5.006000||Viu
1931 cx_pushblock|5.023008||xcVu
1932 cx_pusheval|5.023008||xcVu
1933 cx_pushformat|5.023008||xcVu
1934 cx_pushgiven|5.027008||xcVu
1935 cx_pushloop_for|5.023008||xcVu
1936 cx_pushloop_plain|5.023008||xcVu
1937 cx_pushsub|5.023008||xcVu
1938 CX_PUSHSUB_GET_LVALUE_MASK|5.023008||Viu
1939 CX_PUSHSUBST|5.023008||Viu
1940 cx_pushtry|5.033007||xcVu
1941 cx_pushwhen|5.027008||xcVu
1942 CxREALEVAL|5.005003||Viu
1943 cxstack|5.005000||Viu
1944 cxstack_ix|5.005000||Viu
1945 cxstack_max|5.005000||Viu
1946 CXt_BLOCK|5.003007||Viu
1947 CXt_EVAL|5.003007||Viu
1948 CXt_FORMAT|5.006000||Viu
1949 CXt_GIVEN|5.027008||Viu
1950 CXt_LOOP_ARY|5.023008||Viu
1951 CXt_LOOP_LAZYIV|5.011000||Viu
1952 CXt_LOOP_LAZYSV|5.011000||Viu
1953 CXt_LOOP_LIST|5.023008||Viu
1954 CXt_LOOP_PLAIN|5.011000||Viu
1955 CXt_NULL|5.003007||Viu
1956 cx_topblock|5.023008||xcVu
1957 CxTRY|5.033007||Viu
1958 CxTRYBLOCK|5.006000||Viu
1959 CXt_SUB|5.003007||Viu
1960 CXt_SUBST|5.003007||Viu
1961 CXt_WHEN|5.027008||Viu
1962 CxTYPE|5.005003||Viu
1963 cx_type|5.009005||Viu
1964 CxTYPE_is_LOOP|5.011000||Viu
1965 CXTYPEMASK|5.005003||Viu
1966 dATARGET|5.003007||Viu
8581967 dAX|5.007002|5.003007|p
8591968 dAXMARK|5.009003|5.003007|p
1969 DAY_1|5.027010||Viu
1970 DAY_2|5.027010||Viu
1971 DAY_3|5.027010||Viu
1972 DAY_4|5.027010||Viu
1973 DAY_5|5.027010||Viu
1974 DAY_6|5.027010||Viu
1975 DAY_7|5.027010||Viu
1976 DB_Hash_t|5.003007|5.003007|Vn
1977 DBM_ckFilter|5.008001||Viu
1978 DBM_setFilter|5.008001||Viu
1979 DB_Prefix_t|5.003007|5.003007|Vn
1980 DBVARMG_COUNT|5.021005||Viu
1981 DBVARMG_SIGNAL|5.021005||Viu
1982 DBVARMG_SINGLE|5.021005||Viu
1983 DBVARMG_TRACE|5.021005||Viu
1984 DB_VERSION_MAJOR_CFG|5.007002|5.007002|Vn
1985 DB_VERSION_MINOR_CFG|5.007002|5.007002|Vn
1986 DB_VERSION_PATCH_CFG|5.007002|5.007002|Vn
8601987 deb|5.007003|5.007003|vu
8611988 deb_curcv|5.007002||Viu
8621989 deb_nocontext|5.007003|5.007003|vnu
8671994 deb_stack_all|5.008001||Viu
8681995 deb_stack_n|5.008001||Viu
8691996 debstackptrs|5.007003|5.007003|u
1997 DEBUG|5.003007||Viu
1998 DEBUG_A|5.009001||Viu
1999 DEBUG_A_FLAG|5.009001||Viu
2000 DEBUG_A_TEST|5.009001||Viu
2001 DEBUG_B|5.011000||Viu
2002 DEBUG_B_FLAG|5.011000||Viu
2003 DEBUG_BOTH_FLAGS_TEST|5.033007||Viu
2004 DEBUG_B_TEST|5.011000||Viu
2005 DEBUG_BUFFERS_r|5.009005||Viu
2006 DEBUG_c|5.003007||Viu
2007 DEBUG_C|5.009000||Viu
2008 DEBUG_c_FLAG|5.007001||Viu
2009 DEBUG_C_FLAG|5.009000||Viu
2010 DEBUG_COMPILE_r|5.009002||Viu
2011 DEBUG_c_TEST|5.007001||Viu
2012 DEBUG_C_TEST|5.009000||Viu
2013 DEBUG_D|5.003007||Viu
2014 DEBUG_DB_RECURSE_FLAG|5.007001||Viu
2015 DEBUG_D_FLAG|5.007001||Viu
2016 DEBUG_D_TEST|5.007001||Viu
2017 DEBUG_DUMP_PRE_OPTIMIZE_r|5.031004||Viu
2018 DEBUG_DUMP_r|5.009004||Viu
2019 DEBUG_EXECUTE_r|5.009002||Viu
2020 DEBUG_EXTRA_r|5.009004||Viu
2021 DEBUG_f|5.003007||Viu
2022 DEBUG_f_FLAG|5.007001||Viu
2023 DEBUG_FLAGS_r|5.009005||Viu
2024 DEBUG_f_TEST|5.007001||Viu
2025 DEBUG_GPOS_r|5.011000||Viu
2026 DEBUG_i|5.025002||Viu
2027 DEBUG_i_FLAG|5.025002||Viu
2028 DEBUG_INTUIT_r|5.009004||Viu
2029 DEBUG_i_TEST|5.025002||Viu
2030 DEBUG_J_FLAG|5.007003||Viu
2031 DEBUG_J_TEST|5.007003||Viu
2032 DEBUG_l|5.003007||Viu
2033 DEBUG_L|5.019009||Viu
2034 DEBUG_l_FLAG|5.007001||Viu
2035 DEBUG_L_FLAG|5.019009||Viu
2036 DEBUG_l_TEST|5.007001||Viu
2037 DEBUG_L_TEST|5.019009||Viu
2038 DEBUG_Lv|5.023003||Viu
2039 DEBUG_Lv_TEST|5.023003||Viu
2040 DEBUG_m|5.003007||Viu
2041 DEBUG_M|5.027008||Viu
2042 DEBUG_MASK|5.007001||Viu
2043 DEBUG_MATCH_r|5.009004||Viu
2044 DEBUG_m_FLAG|5.007001||Viu
2045 DEBUG_M_FLAG|5.027008||Viu
2046 DEBUG_m_TEST|5.007001||Viu
2047 DEBUG_M_TEST|5.027008||Viu
2048 DEBUG_o|5.003007||Viu
2049 DEBUG_OFFSETS_r|5.009002||Viu
2050 DEBUG_o_FLAG|5.007001||Viu
2051 DEBUG_OPTIMISE_MORE_r|5.009005||Viu
2052 DEBUG_OPTIMISE_r|5.009002||Viu
2053 DEBUG_o_TEST|5.007001||Viu
2054 DEBUG_P|5.003007||Viu
2055 DEBUG_p|5.003007||Viu
2056 DEBUG_PARSE_r|5.009004||Viu
2057 DEBUG_P_FLAG|5.007001||Viu
2058 DEBUG_p_FLAG|5.007001||Viu
2059 DEBUG_POST_STMTS|5.033008||Viu
2060 DEBUG_PRE_STMTS|5.033008||Viu
2061 DEBUG_P_TEST|5.007001||Viu
2062 DEBUG_p_TEST|5.007001||Viu
2063 DEBUG_Pv|5.013008||Viu
2064 DEBUG_Pv_TEST|5.013008||Viu
2065 DEBUG_q|5.009001||Viu
2066 DEBUG_q_FLAG|5.009001||Viu
2067 DEBUG_q_TEST|5.009001||Viu
2068 DEBUG_r|5.003007||Viu
2069 DEBUG_R|5.007001||Viu
2070 DEBUG_R_FLAG|5.007001||Viu
2071 DEBUG_r_FLAG|5.007001||Viu
2072 DEBUG_R_TEST|5.007001||Viu
2073 DEBUG_r_TEST|5.007001||Viu
2074 DEBUG_s|5.003007||Viu
2075 DEBUG_S|5.017002||Viu
2076 DEBUG_SBOX32_HASH|5.027001||Viu
2077 DEBUG_SCOPE|5.008001||Viu
2078 DEBUG_s_FLAG|5.007001||Viu
2079 DEBUG_S_FLAG|5.017002||Viu
2080 DEBUG_STACK_r|5.009005||Viu
8702081 debug_start_match|5.009004||Viu
871 DECLARATION_FOR_LC_NUMERIC_MANIPULATION|5.021010|5.021010|
2082 DEBUG_STATE_r|5.009004||Viu
2083 DEBUG_s_TEST|5.007001||Viu
2084 DEBUG_S_TEST|5.017002||Viu
2085 DEBUG_t|5.003007||Viu
2086 DEBUG_T|5.007001||Viu
2087 DEBUG_TEST_r|5.021005||Viu
2088 DEBUG_T_FLAG|5.007001||Viu
2089 DEBUG_t_FLAG|5.007001||Viu
2090 DEBUG_TOP_FLAG|5.007001||Viu
2091 DEBUG_TRIE_COMPILE_MORE_r|5.009002||Viu
2092 DEBUG_TRIE_COMPILE_r|5.009002||Viu
2093 DEBUG_TRIE_EXECUTE_MORE_r|5.009002||Viu
2094 DEBUG_TRIE_EXECUTE_r|5.009002||Viu
2095 DEBUG_TRIE_r|5.009002||Viu
2096 DEBUG_T_TEST|5.007001||Viu
2097 DEBUG_t_TEST|5.007001||Viu
2098 DEBUG_u|5.003007||Viu
2099 DEBUG_U|5.009005||Viu
2100 DEBUG_u_FLAG|5.007001||Viu
2101 DEBUG_U_FLAG|5.009005||Viu
2102 DEBUG_u_TEST|5.007001||Viu
2103 DEBUG_U_TEST|5.009005||Viu
2104 DEBUG_Uv|5.009005||Viu
2105 DEBUG_Uv_TEST|5.009005||Viu
2106 DEBUG_v|5.008001||Viu
2107 DEBUG_v_FLAG|5.008001||Viu
2108 DEBUG_v_TEST|5.008001||Viu
2109 DEBUG_X|5.003007||Viu
2110 DEBUG_x|5.003007||Viu
2111 DEBUG_X_FLAG|5.007001||Viu
2112 DEBUG_x_FLAG|5.007001||Viu
2113 DEBUG_X_TEST|5.007001||Viu
2114 DEBUG_x_TEST|5.007001||Viu
2115 DEBUG_Xv|5.008001||Viu
2116 DEBUG_Xv_TEST|5.008001||Viu
2117 DEBUG_y|5.031007||Viu
2118 DEBUG_y_FLAG|5.031007||Viu
2119 DEBUG_y_TEST|5.031007||Viu
2120 DEBUG_yv|5.031007||Viu
2121 DEBUG_yv_TEST|5.031007||Viu
2122 DEBUG_ZAPHOD32_HASH|5.027001||Viu
2123 DECLARATION_FOR_LC_NUMERIC_MANIPULATION|5.021010|5.021010|p
2124 DECLARE_AND_GET_RE_DEBUG_FLAGS|5.031011||Viu
2125 DECLARE_AND_GET_RE_DEBUG_FLAGS_NON_REGEX|5.031011||Viu
2126 DEFAULT_INC_EXCLUDES_DOT|5.025011|5.025011|Vn
2127 DEFAULT_PAT_MOD|5.013006||Viu
8722128 defelem_target|5.019002||Viu
873 DEFSV|5.004005|5.003007|poVu
874 DEFSV_set|5.010001||pVu
2129 DEFINE_INC_MACROS|5.027006||Viu
2130 DEFINEP|5.009005||Viu
2131 DEFINEP_t8_p8|5.033003||Viu
2132 DEFINEP_t8_pb|5.033003||Viu
2133 DEFINEP_tb_p8|5.033003||Viu
2134 DEFINEP_tb_pb|5.033003||Viu
2135 DEFSV|5.004005|5.003007|p
2136 DEFSV_set|5.010001|5.003007|p
8752137 delete_eval_scope|5.009004||xViu
876 delimcpy|5.004000|5.004000|nu
877 delimcpy_no_escape|5.025005||nViu
2138 delimcpy|5.004000|5.004000|n
2139 delimcpy_no_escape|5.025005||cVni
2140 DEL_NATIVE|5.017010||Viu
8782141 del_sv|5.005000||Viu
879 despatch_signals|5.007001|5.007001|u
2142 DEPENDS_PAT_MOD|5.013009||Viu
2143 DEPENDS_PAT_MODS|5.013009||Viu
2144 deprecate|5.011001||Viu
2145 deprecate_disappears_in|5.025009||Viu
2146 deprecate_fatal_in|5.025009||Viu
2147 despatch_signals|5.007001||cVu
8802148 destroy_matcher|5.027008||Viu
2149 DETACH|5.005000||Viu
2150 dEXT|5.003007||Viu
2151 dEXTCONST|5.004000||Viu
2152 D_FMT|5.027010||Viu
2153 DIE|5.003007||Viu
8812154 die|5.006000|5.003007|v
882 die_nocontext|5.006000||vnVu
2155 die_nocontext|5.006000||vVn
8832156 die_sv|5.013001|5.003007|p
8842157 die_unwind|5.013001||Viu
2158 Direntry_t|5.003007|5.003007|Vn
8852159 dirp_dup|5.013007|5.013007|u
8862160 dITEMS|5.007002|5.003007|p
8872161 div128|5.005000||Viu
888 djSP|||i
2162 dJMPENV|5.004000||Viu
2163 djSP|5.004005||Vi
8892164 dMARK|5.003007|5.003007|
2165 DM_ARRAY_ISA|5.013002||Viu
2166 DM_DELAY|5.003007||Viu
2167 DM_EGID|5.003007||Viu
2168 DM_EUID|5.003007||Viu
2169 DM_GID|5.003007||Viu
2170 DM_RGID|5.003007||Viu
2171 DM_RUID|5.003007||Viu
2172 DM_UID|5.003007||Viu
8902173 dMULTICALL|5.009003|5.009003|
8912174 dMY_CXT|5.009000|5.009000|p
892 dMY_CXT_SV|5.007003||poVu
893 dNOOP|5.006000|5.003007|poVu
2175 dMY_CXT_INTERP|5.009003||Viu
2176 dMY_CXT_SV|5.007003|5.003007|pV
2177 dNOOP|5.006000|5.003007|p
2178 do_aexec|5.009003||Viu
8942179 do_aexec5|5.006000||Viu
895 do_aexec|||iu
8962180 do_aspawn|5.008000||Vu
8972181 do_binmode|5.004005|5.004005|du
8982182 docatch|5.005000||Vi
9012185 do_delete_local|5.011000||Viu
9022186 do_dump_pad|5.008001||Vi
9032187 do_eof|5.003007||Viu
904 does_utf8_overflow|5.025006||nViu
2188 does_utf8_overflow|5.025006||Vniu
9052189 doeval_compile|5.023008||Viu
9062190 do_exec3|5.006000||Viu
907 do_exec|5.003007||Viu
2191 do_exec|5.009003||Viu
9082192 dofile|5.005003||Viu
9092193 dofindlabel|5.003007||Viu
9102194 doform|5.005000||Viu
911 do_gv_dump|5.006000|5.006000|u
912 do_gvgv_dump|5.006000|5.006000|u
913 do_hv_dump|5.006000|5.006000|u
914 doing_taint|5.008001|5.008001|nu
2195 do_gv_dump|5.006000||cVu
2196 do_gvgv_dump|5.006000||cVu
2197 do_hv_dump|5.006000||cVu
2198 doing_taint|5.008001||cVnu
2199 DOINIT|5.003007||Viu
9152200 do_ipcctl|5.003007||Viu
9162201 do_ipcget|5.003007||Viu
9172202 do_join|5.003007|5.003007|u
918 do_magic_dump|5.006000|5.006000|u
2203 do_magic_dump|5.006000||cVu
9192204 do_msgrcv|5.003007||Viu
9202205 do_msgsnd|5.003007||Viu
9212206 do_ncmp|5.015001||Viu
9222207 do_oddball|5.006000||Viu
9232208 dooneliner|5.006000||Viu
924 do_op_dump|5.006000|5.006000|u
2209 do_op_dump|5.006000||cVu
9252210 do_open|5.003007|5.003007|u
9262211 do_open6|5.019010||xViu
9272212 do_open9|5.006000|5.006000|du
9292214 doopen_pm|5.008001||Viu
9302215 do_open_raw|5.019010||xViu
9312216 doparseform|5.005000||Viu
932 do_pmop_dump|5.006000|5.006000|u
2217 do_pmop_dump|5.006000||cVu
9332218 dopoptoeval|5.003007||Viu
9342219 dopoptogivenfor|5.027008||Viu
9352220 dopoptolabel|5.005000||Viu
9432228 do_seek|5.003007||Viu
9442229 do_semop|5.003007||Viu
9452230 do_shmio|5.003007||Viu
2231 DOSISH|5.003007||Viu
9462232 do_smartmatch|5.027008||Viu
9472233 do_spawn|5.008000||Vu
9482234 do_spawn_nowait|5.008000||Vu
9492235 do_sprintf|5.003007|5.003007|u
950 do_sv_dump|5.006000|5.006000|u
2236 do_sv_dump|5.006000||cVu
9512237 do_sysseek|5.004000||Viu
9522238 do_tell|5.003007||Viu
9532239 do_trans|5.003007||Viu
9562242 do_trans_count_invmap|5.031006||Viu
9572243 do_trans_invmap|5.031006||Viu
9582244 do_trans_simple|5.006001||Viu
959 DOUBLEINFBYTES|5.023000|5.023000|
960 DOUBLEKIND|5.021006|5.021006|
961 DOUBLEMANTBITS|5.023000|5.023000|
962 DOUBLENANBYTES|5.023000|5.023000|
963 DOUBLESIZE|5.005000|5.005000|
2245 DOUBLE_BIG_ENDIAN|5.021009||Viu
2246 DOUBLE_HAS_INF|5.025003|5.025003|Vn
2247 DOUBLE_HAS_NAN|5.025003|5.025003|Vn
2248 DOUBLE_HAS_NEGATIVE_ZERO|5.025007|5.025007|Vn
2249 DOUBLE_HAS_SUBNORMALS|5.025007|5.025007|Vn
2250 DOUBLEINFBYTES|5.023000|5.023000|Vn
2251 DOUBLE_IS_CRAY_SINGLE_64_BIT|5.025006|5.025006|Vn
2252 DOUBLE_IS_IBM_DOUBLE_64_BIT|5.025006|5.025006|Vn
2253 DOUBLE_IS_IBM_SINGLE_32_BIT|5.025006|5.025006|Vn
2254 DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN|5.021006|5.021006|Vn
2255 DOUBLE_IS_IEEE_754_128_BIT_LITTLE_ENDIAN|5.021006|5.021006|Vn
2256 DOUBLE_IS_IEEE_754_32_BIT_BIG_ENDIAN|5.021006|5.021006|Vn
2257 DOUBLE_IS_IEEE_754_32_BIT_LITTLE_ENDIAN|5.021006|5.021006|Vn
2258 DOUBLE_IS_IEEE_754_64_BIT_BIG_ENDIAN|5.021006|5.021006|Vn
2259 DOUBLE_IS_IEEE_754_64_BIT_LITTLE_ENDIAN|5.021006|5.021006|Vn
2260 DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_BE_LE|5.021006|5.021006|Vn
2261 DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_LE_BE|5.021006|5.021006|Vn
2262 DOUBLE_IS_IEEE_FORMAT|5.025003||Viu
2263 DOUBLE_IS_UNKNOWN_FORMAT|5.021006|5.021006|Vn
2264 DOUBLE_IS_VAX_D_FLOAT|5.025003|5.025003|Vn
2265 DOUBLE_IS_VAX_F_FLOAT|5.025003|5.025003|Vn
2266 DOUBLE_IS_VAX_FLOAT|5.025003||Viu
2267 DOUBLE_IS_VAX_G_FLOAT|5.025003|5.025003|Vn
2268 DOUBLEKIND|5.021006|5.021006|Vn
2269 DOUBLE_LITTLE_ENDIAN|5.021009||Viu
2270 DOUBLEMANTBITS|5.023000|5.023000|Vn
2271 DOUBLE_MIX_ENDIAN|5.021009||Viu
2272 DOUBLENANBYTES|5.023000|5.023000|Vn
2273 DOUBLESIZE|5.005000|5.005000|Vn
2274 DOUBLE_STYLE_IEEE|5.025007|5.025007|Vn
2275 DOUBLE_VAX_ENDIAN|5.025003||Viu
2276 do_uniprop_match|5.031011||cVniu
9642277 dounwind|5.003007|5.003007|u
9652278 DO_UTF8|5.006000|5.006000|
9662279 do_vecget|5.006000||Viu
9672280 do_vecset|5.003007||Viu
9682281 do_vop|5.003007||Viu
9692282 dowantarray|5.003007|5.003007|u
970 drand48_init_r|||nciu
971 drand48_r|||nciu
972 dSAVEDERRNO|||i
973 dSAVE_ERRNO|||i
2283 dPOPiv|5.003007||Viu
2284 dPOPnv|5.003007||Viu
2285 dPOPnv_nomg|5.013002||Viu
2286 dPOPPOPiirl|5.003007||Viu
2287 dPOPPOPnnrl|5.003007||Viu
2288 dPOPPOPssrl|5.003007||Viu
2289 dPOPss|5.003007||Viu
2290 dPOPTOPiirl|5.003007||Viu
2291 dPOPTOPiirl_nomg|5.013002||Viu
2292 dPOPTOPiirl_ul_nomg|5.013002||Viu
2293 dPOPTOPnnrl|5.003007||Viu
2294 dPOPTOPnnrl_nomg|5.013002||Viu
2295 dPOPTOPssrl|5.003007||Viu
2296 dPOPuv|5.004000||Viu
2297 dPOPXiirl|5.004000||Viu
2298 dPOPXiirl_ul_nomg|5.013002||Viu
2299 dPOPXnnrl|5.004000||Viu
2300 dPOPXssrl|5.004000||Viu
2301 DPTR2FPTR|5.009003||Viu
2302 Drand01|5.006000|5.006000|
2303 drand48_init_r|||cniu
2304 drand48_r|||cniu
2305 DRAND48_R_PROTO|5.008000|5.008000|Vn
2306 dSAVEDERRNO|5.010001||Vi
2307 dSAVE_ERRNO|5.010001||Vi
9742308 dSP|5.003007|5.003007|
2309 dSS_ADD|5.017007||Viu
2310 dTARG|5.003007||Viu
2311 dTARGET|5.003007|5.003007|
2312 dTARGETSTACKED|5.003007||Viu
2313 D_T_FMT|5.027010||Viu
9752314 dTHR|5.004005|5.003007|p
9762315 dTHX|5.003007|5.003007|p
977 dTHXa|5.006000||pVu
978 dTHXoa|5.006000||pVu
979 dTHXR||5.003007|pou
2316 dTHXa|5.006000|5.003007|p
2317 dTHX_DEBUGGING|5.027009||Viu
2318 dTHXo|5.006000||Viu
2319 dTHXoa|5.006001|5.003007|p
2320 dTHXR||5.003007|ponu
2321 dTHXs|5.007002||Viu
2322 dTHXx|5.006000||Viu
2323 dTOPiv|5.003007||Viu
2324 dTOPnv|5.003007||Viu
2325 dTOPss|5.003007||Viu
2326 dTOPuv|5.004000||Viu
9802327 dtrace_probe_call|||ciu
9812328 dtrace_probe_load|||ciu
9822329 dtrace_probe_op|||ciu
9872334 dump_eval|5.006000|5.006000|u
9882335 dump_exec_pos|5.009004||Viu
9892336 dump_form|5.006000|5.006000|u
990 dump_indent|5.006000|5.006000|vu
2337 dump_indent|5.006000||vcVu
9912338 dump_mstats|5.003007||Vu
9922339 dump_packsubs|5.006000|5.006000|
9932340 dump_packsubs_perl|5.011000||Viu
9992346 dump_trie_interim_list|5.009004||Viu
10002347 dump_trie_interim_table|5.009004||Viu
10012348 dumpuntil|5.005000||Viu
1002 dump_vindent|5.006000|5.006000|u
2349 dump_vindent|5.006000||cVu
10032350 dUNDERBAR|5.009002|5.003007|p
2351 dup2|5.005000||Viu
2352 dup|5.005000||Viu
10042353 dup_attrlist|5.006000||Viu
2354 DUP_WARNINGS|5.009004||Viu
10052355 dup_warnings|||ciu
10062356 dVAR|5.009003|5.003007|p
10072357 dXCPT|5.009002|5.003007|p
10082358 dXSARGS|5.003007|5.003007|
2359 dXSBOOTARGSAPIVERCHK|5.021006||Viu
2360 dXSBOOTARGSNOVERCHK|5.021006||Viu
2361 dXSBOOTARGSXSAPIVERCHK|5.021006||Viu
2362 dXSFUNCTION|5.005000||Viu
10092363 dXSI32|5.003007|5.003007|V
1010 dXSTARG|5.006000|5.003007|poVu
1011 edit_distance|5.023008||nViu
2364 dXSTARG|5.006000|5.003007|poVnu
2365 dXSUB_SYS|5.003007||Viu
2366 edit_distance|5.023008||Vniu
2367 EIGHT_BIT_UTF8_TO_NATIVE|5.023003||Viu
2368 ELEMENT_RANGE_MATCHES_INVLIST|5.023002||Viu
2369 EMBEDMYMALLOC|5.006000||Viu
10122370 emulate_cop_io|||xciu
1013 emulate_setlocale|5.027009||nViu
1014 END_EXTERN_C|5.005000|5.003007|poVu
2371 emulate_setlocale|5.027009||Vniu
2372 END|5.003007||Viu
2373 END_EXTERN_C|5.005000|5.003007|pV
2374 endgrent|5.009000||Viu
2375 ENDGRENT_R_HAS_FPTR|5.008000||Viu
2376 ENDGRENT_R_PROTO|5.008000|5.008000|Vn
2377 endhostent|5.005000||Viu
2378 ENDHOSTENT_R_PROTO|5.008000|5.008000|Vn
2379 ENDLIKE|5.009005||Viu
2380 ENDLIKE_t8_p8|5.033003||Viu
2381 ENDLIKE_t8_pb|5.033003||Viu
2382 ENDLIKE_tb_p8|5.033003||Viu
2383 ENDLIKE_tb_pb|5.033003||Viu
2384 endnetent|5.005000||Viu
2385 ENDNETENT_R_PROTO|5.008000|5.008000|Vn
2386 endprotoent|5.005000||Viu
2387 ENDPROTOENT_R_PROTO|5.008000|5.008000|Vn
2388 endpwent|5.009000||Viu
2389 ENDPWENT_R_HAS_FPTR|5.008000||Viu
2390 ENDPWENT_R_PROTO|5.008000|5.008000|Vn
2391 endservent|5.005000||Viu
2392 ENDSERVENT_R_PROTO|5.008000|5.008000|Vn
2393 END_t8_p8|5.033003||Viu
2394 END_t8_pb|5.033003||Viu
2395 END_tb_p8|5.033003||Viu
2396 END_tb_pb|5.033003||Viu
10152397 ENTER|5.003007|5.003007|
10162398 ENTER_with_name|5.011002|5.011002|
2399 ENV_INIT|5.031011||Viu
2400 environ|5.003007||Viu
2401 ENV_LOCALE_LOCK|5.031011||Viu
2402 ENV_LOCALE_READ_LOCK|5.031011||Viu
2403 ENV_LOCALE_READ_UNLOCK|5.031011||Viu
2404 ENV_LOCALE_UNLOCK|5.031011||Viu
2405 ENV_LOCK|5.031011||Viu
2406 ENV_READ_LOCK|5.033005||Viu
2407 ENV_READ_UNLOCK|5.033005||Viu
2408 ENV_TERM|5.031011||Viu
2409 ENV_UNLOCK|5.031011||Viu
2410 EOF|5.003007||Viu
2411 EOF_NONBLOCK|5.003007|5.003007|Vn
2412 EOL|5.003007||Viu
2413 EOL_t8_p8|5.033003||Viu
2414 EOL_t8_pb|5.033003||Viu
2415 EOL_tb_p8|5.033003||Viu
2416 EOL_tb_pb|5.033003||Viu
2417 EOS|5.005000||Viu
2418 EOS_t8_p8|5.033003||Viu
2419 EOS_t8_pb|5.033003||Viu
2420 EOS_tb_p8|5.033003||Viu
2421 EOS_tb_pb|5.033003||Viu
2422 ERA|5.027010||Viu
2423 ERA_D_FMT|5.027010||Viu
2424 ERA_D_T_FMT|5.027010||Viu
2425 ERA_T_FMT|5.027010||Viu
10172426 ERRSV|5.004005|5.003007|p
2427 ESC_NATIVE|5.021004||Viu
2428 EVAL|5.005000||Viu
2429 EVAL_B|5.025010||Viu
2430 EVAL_B_fail|5.025010||Viu
2431 EVAL_B_fail_t8_p8|5.033003||Viu
2432 EVAL_B_fail_t8_pb|5.033003||Viu
2433 EVAL_B_fail_tb_p8|5.033003||Viu
2434 EVAL_B_fail_tb_pb|5.033003||Viu
2435 EVAL_B_t8_p8|5.033003||Viu
2436 EVAL_B_t8_pb|5.033003||Viu
2437 EVAL_B_tb_p8|5.033003||Viu
2438 EVAL_B_tb_pb|5.033003||Viu
2439 EVAL_INEVAL|5.006000||Viu
2440 EVAL_INREQUIRE|5.007001||Viu
2441 EVAL_KEEPERR|5.006000||Viu
2442 EVAL_NULL|5.006000||Viu
2443 EVAL_postponed_AB|5.025010||Viu
2444 EVAL_postponed_AB_fail|5.025010||Viu
2445 EVAL_postponed_AB_fail_t8_p8|5.033003||Viu
2446 EVAL_postponed_AB_fail_t8_pb|5.033003||Viu
2447 EVAL_postponed_AB_fail_tb_p8|5.033003||Viu
2448 EVAL_postponed_AB_fail_tb_pb|5.033003||Viu
2449 EVAL_postponed_AB_t8_p8|5.033003||Viu
2450 EVAL_postponed_AB_t8_pb|5.033003||Viu
2451 EVAL_postponed_AB_tb_p8|5.033003||Viu
2452 EVAL_postponed_AB_tb_pb|5.033003||Viu
10182453 eval_pv|5.006000|5.003007|p
2454 EVAL_RE_REPARSING|5.017011||Viu
10192455 eval_sv|5.006000|5.003007|p
2456 EVAL_t8_p8|5.033003||Viu
2457 EVAL_t8_pb|5.033003||Viu
2458 EVAL_tb_p8|5.033003||Viu
2459 EVAL_tb_pb|5.033003||Viu
2460 EVAL_WARNONLY|5.006000||Viu
2461 EXACT|5.004000||Viu
2462 EXACTF|5.004000||Viu
2463 EXACTFAA|5.027009||Viu
2464 EXACTFAA_NO_TRIE|5.027009||Viu
2465 EXACTFAA_NO_TRIE_t8_p8|5.033003||Viu
2466 EXACTFAA_NO_TRIE_t8_pb|5.033003||Viu
2467 EXACTFAA_NO_TRIE_tb_p8|5.033003||Viu
2468 EXACTFAA_NO_TRIE_tb_pb|5.033003||Viu
2469 EXACTFAA_t8_p8|5.033003||Viu
2470 EXACTFAA_t8_pb|5.033003||Viu
2471 EXACTFAA_tb_p8|5.033003||Viu
2472 EXACTFAA_tb_pb|5.033003||Viu
2473 EXACTFL|5.004000||Viu
2474 EXACTFL_t8_p8|5.033003||Viu
2475 EXACTFL_t8_pb|5.033003||Viu
2476 EXACTFL_tb_p8|5.033003||Viu
2477 EXACTFL_tb_pb|5.033003||Viu
2478 EXACTFLU8|5.021008||Viu
2479 EXACTFLU8_t8_p8|5.033003||Viu
2480 EXACTFLU8_t8_pb|5.033003||Viu
2481 EXACTFLU8_tb_p8|5.033003||Viu
2482 EXACTFLU8_tb_pb|5.033003||Viu
2483 EXACTF_t8_p8|5.033003||Viu
2484 EXACTF_t8_pb|5.033003||Viu
2485 EXACTF_tb_p8|5.033003||Viu
2486 EXACTF_tb_pb|5.033003||Viu
2487 EXACTFU|5.013008||Viu
2488 EXACTFUP|5.029007||Viu
2489 EXACTFUP_t8_p8|5.033003||Viu
2490 EXACTFUP_t8_pb|5.033003||Viu
2491 EXACTFUP_tb_p8|5.033003||Viu
2492 EXACTFUP_tb_pb|5.033003||Viu
2493 EXACTFU_REQ8|5.031006||Viu
2494 EXACTFU_REQ8_t8_p8|5.033003||Viu
2495 EXACTFU_REQ8_t8_pb|5.033003||Viu
2496 EXACTFU_REQ8_tb_p8|5.033003||Viu
2497 EXACTFU_REQ8_tb_pb|5.033003||Viu
2498 EXACTFU_S_EDGE|5.029007||Viu
2499 EXACTFU_S_EDGE_t8_p8|5.033003||Viu
2500 EXACTFU_S_EDGE_t8_pb|5.033003||Viu
2501 EXACTFU_S_EDGE_tb_p8|5.033003||Viu
2502 EXACTFU_S_EDGE_tb_pb|5.033003||Viu
2503 EXACTFU_t8_p8|5.033003||Viu
2504 EXACTFU_t8_pb|5.033003||Viu
2505 EXACTFU_tb_p8|5.033003||Viu
2506 EXACTFU_tb_pb|5.033003||Viu
2507 EXACTL|5.021008||Viu
2508 EXACTL_t8_p8|5.033003||Viu
2509 EXACTL_t8_pb|5.033003||Viu
2510 EXACTL_tb_p8|5.033003||Viu
2511 EXACTL_tb_pb|5.033003||Viu
2512 EXACT_REQ8|5.031006||Viu
2513 EXACT_REQ8_t8_p8|5.033003||Viu
2514 EXACT_REQ8_t8_pb|5.033003||Viu
2515 EXACT_REQ8_tb_p8|5.033003||Viu
2516 EXACT_REQ8_tb_pb|5.033003||Viu
2517 EXACT_t8_p8|5.033003||Viu
2518 EXACT_t8_pb|5.033003||Viu
2519 EXACT_tb_p8|5.033003||Viu
2520 EXACT_tb_pb|5.033003||Viu
2521 EXEC_ARGV_CAST|5.007001||Viu
10202522 exec_failed|5.009004||Viu
2523 execl|5.005000||Viu
2524 EXEC_PAT_MOD|5.009005||Viu
2525 EXEC_PAT_MODS|5.009005||Viu
2526 execute_wildcard|5.031010||Viu
2527 execv|5.005000||Viu
2528 execvp|5.005000||Viu
2529 exit|5.005000||Viu
2530 EXPECT|5.009004||Viu
10212531 expect_number|5.007001||Viu
2532 EXT|5.003007||Viu
2533 EXTCONST|5.004000||Viu
10222534 EXTEND|5.003007|5.003007|
1023 EXTERN_C|5.005000|5.003007|poVu
1024 F0convert|5.009003||nViu
2535 EXTEND_HWM_SET|5.027002||Viu
2536 EXTEND_MORTAL|5.004000||Viu
2537 EXTEND_SKIP|5.027002||Viu
2538 EXTERN_C|5.005000|5.003007|pV
2539 EXT_MGVTBL|5.009004||Viu
2540 EXT_PAT_MODS|5.009005||Viu
2541 EXTRA_SIZE|5.005000||Viu
2542 EXTRA_STEP_2ARGS|5.005000||Viu
2543 F0convert|5.009003||Vniu
2544 FAKE_BIT_BUCKET|5.009005||Viu
2545 FAKE_DEFAULT_SIGNAL_HANDLERS|5.009003||Viu
2546 FAKE_PERSISTENT_SIGNAL_HANDLERS|5.009003||Viu
2547 FALSE|5.003007||Viu
2548 FATAL_ABOVE_FF_MSG|5.027010||Viu
2549 F_atan2_amg|5.004000||Viu
2550 FBMcf_TAIL|5.006000||Viu
2551 FBMcf_TAIL_DOLLAR|5.006000||Viu
2552 FBMcf_TAIL_DOLLARM|5.006000||Viu
2553 FBMcf_TAIL_Z|5.006000||Viu
2554 FBMcf_TAIL_z|5.006000||Viu
10252555 fbm_compile|5.005000|5.005000|
10262556 fbm_instr|5.005000|5.005000|
2557 FBMrf_MULTILINE|5.006000||Viu
2558 fclose|5.003007||Viu
2559 fcntl|5.006000||Viu
2560 FCNTL_CAN_LOCK|5.007001|5.007001|Vn
2561 F_cos_amg|5.004000||Viu
2562 FD_CLR|5.008000||Viu
2563 FD_ISSET|5.008000||Viu
2564 fdopen|5.003007||Viu
2565 FD_SET|5.008000||Viu
2566 fd_set|5.008000||Viu
2567 FD_ZERO|5.008000||Viu
2568 FEATURE_BAREWORD_FILEHANDLES_BIT|5.033006||Viu
2569 FEATURE_BAREWORD_FILEHANDLES_IS_ENABLED|5.033006||Viu
2570 FEATURE_BITWISE_BIT|5.031006||Viu
2571 FEATURE_BITWISE_IS_ENABLED|5.021009||Viu
2572 FEATURE_BUNDLE_510|5.015007||Viu
2573 FEATURE_BUNDLE_511|5.015007||Viu
2574 FEATURE_BUNDLE_515|5.015007||Viu
2575 FEATURE_BUNDLE_523|5.023001||Viu
2576 FEATURE_BUNDLE_527|5.027008||Viu
2577 FEATURE_BUNDLE_CUSTOM|5.015007||Viu
2578 FEATURE_BUNDLE_DEFAULT|5.015007||Viu
2579 FEATURE_EVALBYTES_BIT|5.031006||Viu
2580 FEATURE_EVALBYTES_IS_ENABLED|5.015007||Viu
2581 FEATURE_FC_BIT|5.031006||Viu
2582 FEATURE_FC_IS_ENABLED|5.015008||Viu
2583 FEATURE_INDIRECT_BIT|5.031010||Viu
2584 FEATURE_INDIRECT_IS_ENABLED|5.031010||Viu
2585 FEATURE_ISA_BIT|5.031007||Viu
2586 FEATURE_ISA_IS_ENABLED|5.031007||Viu
2587 FEATURE_IS_ENABLED_MASK|5.031006||Viu
2588 FEATURE_MULTIDIMENSIONAL_BIT|5.033001||Viu
2589 FEATURE_MULTIDIMENSIONAL_IS_ENABLED|5.033001||Viu
2590 FEATURE_MYREF_BIT|5.031006||Viu
2591 FEATURE_MYREF_IS_ENABLED|5.025003||Viu
2592 FEATURE_POSTDEREF_QQ_BIT|5.031006||Viu
2593 FEATURE_POSTDEREF_QQ_IS_ENABLED|5.019005||Viu
2594 FEATURE_REFALIASING_BIT|5.031006||Viu
2595 FEATURE_REFALIASING_IS_ENABLED|5.021005||Viu
2596 FEATURE_SAY_BIT|5.031006||Viu
2597 FEATURE_SAY_IS_ENABLED|5.015007||Viu
2598 FEATURE_SIGNATURES_BIT|5.031006||Viu
2599 FEATURE_SIGNATURES_IS_ENABLED|5.019009||Viu
2600 FEATURE_STATE_BIT|5.031006||Viu
2601 FEATURE_STATE_IS_ENABLED|5.015007||Viu
2602 FEATURE___SUB___BIT|5.031006||Viu
2603 FEATURE___SUB___IS_ENABLED|5.015007||Viu
2604 FEATURE_SWITCH_BIT|5.031006||Viu
2605 FEATURE_SWITCH_IS_ENABLED|5.015007||Viu
2606 FEATURE_TRY_BIT|5.033007||Viu
2607 FEATURE_TRY_IS_ENABLED|5.033007||Viu
2608 FEATURE_UNICODE_BIT|5.031006||Viu
2609 FEATURE_UNICODE_IS_ENABLED|5.015007||Viu
2610 FEATURE_UNIEVAL_BIT|5.031006||Viu
2611 FEATURE_UNIEVAL_IS_ENABLED|5.015007||Viu
2612 feof|5.003007||Viu
2613 ferror|5.003007||Viu
2614 FETCHFEATUREBITSHH|5.031006||Viu
2615 F_exp_amg|5.004000||Viu
2616 FF_0DECIMAL|5.007001||Viu
2617 FF_BLANK|5.003007||Viu
2618 FF_CHECKCHOP|5.003007||Viu
2619 FF_CHECKNL|5.003007||Viu
2620 FF_CHOP|5.003007||Viu
2621 FF_DECIMAL|5.003007||Viu
2622 FF_END|5.003007||Viu
2623 FF_FETCH|5.003007||Viu
2624 FF_HALFSPACE|5.003007||Viu
2625 FF_ITEM|5.003007||Viu
2626 FF_LINEGLOB|5.003007||Viu
2627 FF_LINEMARK|5.003007||Viu
2628 FF_LINESNGL|5.009001||Viu
2629 FF_LITERAL|5.003007||Viu
2630 Fflush|5.003007||Viu
2631 fflush|5.003007||Viu
2632 FFLUSH_NULL|5.006000|5.006000|Vn
2633 FF_MORE|5.003007||Viu
2634 FF_NEWLINE|5.003007||Viu
2635 FF_SKIP|5.003007||Viu
2636 FF_SPACE|5.003007||Viu
2637 fgetc|5.003007||Viu
2638 fgetpos|5.003007||Viu
2639 fgets|5.003007||Viu
2640 FILE|5.003007||Viu
2641 FILE_base|5.007000|5.007000|
2642 FILE_bufsiz|5.007000|5.007000|
2643 FILE_cnt|5.007000|5.007000|
2644 fileno|5.003007||Viu
2645 FILE_ptr|5.007000|5.007000|
2646 FILL_ADVANCE_NODE_2L_ARG|5.021005||Viu
2647 FILL_ADVANCE_NODE|5.005000||Viu
2648 FILL_ADVANCE_NODE_ARG|5.005000||Viu
2649 FILL_ADVANCE_NODE_ARGp|5.031010||Viu
2650 FILL_NODE|5.029004||Viu
10272651 filter_add|5.003007|5.003007|
2652 FILTER_DATA|5.003007||Viu
10282653 filter_del|5.003007|5.003007|u
10292654 filter_gets|5.005000||Viu
2655 FILTER_ISREADER|5.003007||Viu
10302656 filter_read|5.003007|5.003007|
2657 FILTER_READ|5.003007||Viu
10312658 finalize_op|5.015002||Viu
10322659 finalize_optree|5.015002||Vi
10332660 find_and_forget_pmops|5.009005||Viu
10352662 find_beginning|5.005000||Viu
10362663 find_byclass|5.006000||Viu
10372664 find_default_stash|5.019004||Viu
1038 find_first_differing_byte_pos|||nViu
2665 find_first_differing_byte_pos|5.031007||Vniu
10392666 find_hash_subscript|5.009004||Viu
10402667 find_in_my_stash|5.006001||Viu
10412668 find_lexical_cv|5.019001||Viu
1042 find_next_masked|5.027009||nViu
2669 find_next_masked|5.027009||Vniu
10432670 find_runcv|5.008001|5.008001|
2671 FIND_RUNCV_level_eq|5.017002||Viu
2672 FIND_RUNCV_padid_eq|5.017004||Viu
10442673 find_runcv_where|5.017002||Viu
10452674 find_rundefsv|5.013002|5.013002|
10462675 find_rundefsvoffset|5.009002|5.009002|d
10472676 find_script|5.004005||Viu
1048 find_span_end|5.027009||nViu
1049 find_span_end_mask|5.027009||nViu
2677 find_span_end|5.027009||Vniu
2678 find_span_end_mask|5.027009||Vniu
10502679 find_uninit_var|5.009002||xVi
1051 first_symbol|5.009003||nViu
2680 FIRST_NON_ASCII_DECIMAL_DIGIT|5.027007||Viu
2681 first_symbol|5.009003||Vniu
2682 FITS_IN_8_BITS|5.013005||Viu
10522683 fixup_errno_string|5.019007||Viu
2684 FLAGS|5.013006||Viu
2685 FLEXFILENAMES|5.003007|5.003007|Vn
2686 float_end_shift|5.009005||Viu
2687 float_max_offset|5.005000||Viu
2688 float_min_offset|5.005000||Viu
2689 float_substr|5.005000||Viu
2690 float_utf8|5.008000||Viu
2691 flock|5.005000||Viu
2692 flockfile|5.003007||Viu
2693 F_log_amg|5.004000||Viu
2694 FmLINES|5.003007||Viu
10532695 fold_constants|5.003007||Viu
10542696 foldEQ|5.013002|5.013002|n
1055 foldEQ_latin1|5.013008|5.013008|nu
1056 foldEQ_latin1_s2_folded|5.029007||nViu
2697 foldEQ_latin1|5.013008||cVnu
2698 foldEQ_latin1_s2_folded|5.029007||Vniu
10572699 foldEQ_locale|5.013002|5.013002|n
2700 FOLDEQ_LOCALE|5.019009||cV
2701 FOLDEQ_S1_ALREADY_FOLDED|5.015004||cV
2702 FOLDEQ_S1_FOLDS_SANE|5.021008||cV
2703 FOLDEQ_S2_ALREADY_FOLDED|5.015004||cV
2704 FOLDEQ_S2_FOLDS_SANE|5.021008||cV
10582705 foldEQ_utf8|5.013002|5.007003|p
10592706 foldEQ_utf8_flags|5.013010||cVu
2707 FOLDEQ_UTF8_NOMIX_ASCII|5.013010||cV
2708 FOLD_FLAGS_FULL|5.015006||Viu
2709 FOLD_FLAGS_LOCALE|5.015006||Viu
2710 FOLD_FLAGS_NOMIX_ASCII|5.017000||Viu
2711 fopen|5.003007||Viu
10602712 forbid_setid|5.005000||Viu
10612713 force_ident|5.003007||Viu
10622714 force_ident_maybe_lex|5.017004||Viu
10682720 force_word|5.003007||Viu
10692721 forget_pmop|5.017007||Viu
10702722 form|5.006000|5.004000|v
1071 form_alien_digit_msg|||ciu
1072 form_cp_too_large_msg|||ciu
1073 form_nocontext|5.006000||vnVu
2723 form_alien_digit_msg|5.031009||cViu
2724 form_cp_too_large_msg|5.031009||cViu
2725 form_nocontext|5.006000||vVn
10742726 fp_dup|5.007003|5.007003|u
1075 fprintf_nocontext|5.006000||vndVu
2727 Fpos_t|5.003007|5.003007|Vn
2728 F_pow_amg|5.004000||Viu
2729 FP_PINF|5.021004||Viu
2730 FP_QNAN|5.021004||Viu
2731 fprintf|5.003007||Viu
2732 fprintf_nocontext|5.006000||vdVnu
2733 FPTR2DPTR|5.009003||Viu
2734 fputc|5.003007||Viu
2735 fputs|5.003007||Viu
2736 fread|5.003007||Viu
2737 free|5.003007||Viu
2738 free_and_set_cop_warnings|5.031011||Viu
10762739 free_c_backtrace|5.021001||Vi
1077 free_global_struct|5.009003||Vu
2740 FreeOp|5.008001||Viu
2741 Free_t|5.003007|5.003007|Vn
2742 FREE_THREAD_KEY|5.006001||Viu
10782743 free_tied_hv_pool|5.008001||Viu
10792744 FREETMPS|5.003007|5.003007|
1080 free_tmps|5.003007|5.003007|u
1081 G_ARRAY|5.003007|5.003007|
2745 free_tmps|5.003007||cVu
2746 freopen|5.003007||Viu
2747 frewind|5.005000||Viu
2748 FROM_INTERNAL_SIZE|5.023002||Viu
2749 fscanf|5.003007||Viu
2750 fseek|5.003007||Viu
2751 FSEEKSIZE|5.006000||Viu
2752 fsetpos|5.003007||Viu
2753 F_sin_amg|5.004000||Viu
2754 F_sqrt_amg|5.004000||Viu
2755 Fstat|5.003007||Viu
2756 fstat|5.005000||Viu
2757 ftell|5.003007||Viu
2758 ftruncate|5.006000||Viu
2759 ftrylockfile|5.003007||Viu
2760 FUNCTION|5.009003||Viu
2761 funlockfile|5.003007||Viu
2762 fwrite1|5.003007||Viu
2763 fwrite|5.003007||Viu
2764 G_ARRAY|5.003007||Viu
2765 GCB_BREAKABLE|5.025003||Viu
2766 GCB_EX_then_EM|5.025003||Viu
2767 GCB_Maybe_Emoji_NonBreak|5.029002||Viu
2768 GCB_NOBREAK|5.025003||Viu
2769 GCB_RI_then_RI|5.025003||Viu
2770 GCC_DIAG_IGNORE|5.019007||Viu
2771 GCC_DIAG_IGNORE_DECL|5.027007||Viu
2772 GCC_DIAG_IGNORE_STMT|5.027007||Viu
2773 GCC_DIAG_PRAGMA|5.021001||Viu
2774 GCC_DIAG_RESTORE|5.019007||Viu
2775 GCC_DIAG_RESTORE_DECL|5.027007||Viu
2776 GCC_DIAG_RESTORE_STMT|5.027007||Viu
2777 Gconvert|5.003007|5.003007|
2778 GDBMNDBM_H_USES_PROTOTYPES|5.032001|5.032001|Vn
10822779 G_DISCARD|5.003007|5.003007|
10832780 gen_constant_list|5.003007||Viu
10842781 get_and_check_backslash_N_name|5.017006||cViu
10852782 get_and_check_backslash_N_name_wrapper|5.029009||Viu
10862783 get_ANYOF_cp_list_for_ssc|5.019005||Viu
10872784 get_ANYOFM_contents|5.027009||Viu
2785 GETATARGET|5.003007||Viu
10882786 get_aux_mg|5.011000||Viu
10892787 get_av|5.006000|5.003007|p
2788 getc|5.003007||Viu
10902789 get_c_backtrace|5.021001||Vi
10912790 get_c_backtrace_dump|5.021001||V
10922791 get_context|5.006000|5.006000|nu
2792 getc_unlocked|5.003007||Viu
10932793 get_cv|5.006000|5.003007|p
10942794 get_cvn_flags|5.009005|5.003007|p
1095 get_cvs|5.011000||pVu
2795 get_cvs|5.011000|5.003007|p
10962796 getcwd_sv|5.007002|5.007002|
10972797 get_db_sub|||iu
10982798 get_debug_opts|5.008001||Viu
2799 get_deprecated_property_msg|5.031011||cVniu
2800 getegid|5.005000||Viu
2801 getenv|5.005000||Viu
10992802 getenv_len|5.006000||Viu
2803 GETENV_LOCK|5.033005||Viu
2804 GETENV_PRESERVES_OTHER_THREAD|5.033005|5.033005|Vn
2805 GETENV_UNLOCK|5.033005||Viu
2806 geteuid|5.005000||Viu
2807 getgid|5.005000||Viu
2808 getgrent|5.009000||Viu
2809 GETGRENT_R_HAS_BUFFER|5.008000||Viu
2810 GETGRENT_R_HAS_FPTR|5.008000||Viu
2811 GETGRENT_R_HAS_PTR|5.008000||Viu
2812 GETGRENT_R_PROTO|5.008000|5.008000|Vn
2813 getgrgid|5.009000||Viu
2814 GETGRGID_R_HAS_BUFFER|5.008000||Viu
2815 GETGRGID_R_HAS_PTR|5.008000||Viu
2816 GETGRGID_R_PROTO|5.008000|5.008000|Vn
2817 getgrnam|5.009000||Viu
2818 GETGRNAM_R_HAS_BUFFER|5.008000||Viu
2819 GETGRNAM_R_HAS_PTR|5.008000||Viu
2820 GETGRNAM_R_PROTO|5.008000|5.008000|Vn
11002821 get_hash_seed|5.008001||Viu
2822 gethostbyaddr|5.005000||Viu
2823 GETHOSTBYADDR_R_HAS_BUFFER|5.008000||Viu
2824 GETHOSTBYADDR_R_HAS_ERRNO|5.008000||Viu
2825 GETHOSTBYADDR_R_HAS_PTR|5.008000||Viu
2826 GETHOSTBYADDR_R_PROTO|5.008000|5.008000|Vn
2827 gethostbyname|5.005000||Viu
2828 GETHOSTBYNAME_R_HAS_BUFFER|5.008000||Viu
2829 GETHOSTBYNAME_R_HAS_ERRNO|5.008000||Viu
2830 GETHOSTBYNAME_R_HAS_PTR|5.008000||Viu
2831 GETHOSTBYNAME_R_PROTO|5.008000|5.008000|Vn
2832 gethostent|5.005000||Viu
2833 GETHOSTENT_R_HAS_BUFFER|5.008000||Viu
2834 GETHOSTENT_R_HAS_ERRNO|5.008000||Viu
2835 GETHOSTENT_R_HAS_PTR|5.008000||Viu
2836 GETHOSTENT_R_PROTO|5.008000|5.008000|Vn
2837 gethostname|5.005000||Viu
11012838 get_hv|5.006000|5.003007|p
1102 get_invlist_iter_addr|5.015001||nViu
1103 get_invlist_offset_addr|5.019002||nViu
1104 get_invlist_previous_index_addr|5.017004||nViu
2839 get_invlist_iter_addr|5.015001||Vniu
2840 get_invlist_offset_addr|5.019002||Vniu
2841 get_invlist_previous_index_addr|5.017004||Vniu
2842 getlogin|5.005000||Viu
2843 GETLOGIN_R_PROTO|5.008000|5.008000|Vn
11052844 get_mstats|5.006000||Vu
2845 getnetbyaddr|5.005000||Viu
2846 GETNETBYADDR_R_HAS_BUFFER|5.008000||Viu
2847 GETNETBYADDR_R_HAS_ERRNO|5.008000||Viu
2848 GETNETBYADDR_R_HAS_PTR|5.008000||Viu
2849 GETNETBYADDR_R_PROTO|5.008000|5.008000|Vn
2850 getnetbyname|5.005000||Viu
2851 GETNETBYNAME_R_HAS_BUFFER|5.008000||Viu
2852 GETNETBYNAME_R_HAS_ERRNO|5.008000||Viu
2853 GETNETBYNAME_R_HAS_PTR|5.008000||Viu
2854 GETNETBYNAME_R_PROTO|5.008000|5.008000|Vn
2855 getnetent|5.005000||Viu
2856 GETNETENT_R_HAS_BUFFER|5.008000||Viu
2857 GETNETENT_R_HAS_ERRNO|5.008000||Viu
2858 GETNETENT_R_HAS_PTR|5.008000||Viu
2859 GETNETENT_R_PROTO|5.008000|5.008000|Vn
11062860 get_no_modify|5.005000||Viu
11072861 get_num|5.008001||Viu
11082862 get_opargs|5.005000||Viu
11092863 get_op_descs|5.005000|5.005000|u
11102864 get_op_names|5.005000|5.005000|u
2865 getpeername|5.005000||Viu
2866 getpid|5.006000||Viu
11112867 get_ppaddr|5.006000|5.006000|u
2868 get_prop_definition|5.031011||cViu
2869 get_prop_values|5.031011||cVniu
2870 getprotobyname|5.005000||Viu
2871 GETPROTOBYNAME_R_HAS_BUFFER|5.008000||Viu
2872 GETPROTOBYNAME_R_HAS_PTR|5.008000||Viu
2873 GETPROTOBYNAME_R_PROTO|5.008000|5.008000|Vn
2874 getprotobynumber|5.005000||Viu
2875 GETPROTOBYNUMBER_R_HAS_BUFFER|5.008000||Viu
2876 GETPROTOBYNUMBER_R_HAS_PTR|5.008000||Viu
2877 GETPROTOBYNUMBER_R_PROTO|5.008000|5.008000|Vn
2878 getprotoent|5.005000||Viu
2879 GETPROTOENT_R_HAS_BUFFER|5.008000||Viu
2880 GETPROTOENT_R_HAS_PTR|5.008000||Viu
2881 GETPROTOENT_R_PROTO|5.008000|5.008000|Vn
2882 getpwent|5.009000||Viu
2883 GETPWENT_R_HAS_BUFFER|5.008000||Viu
2884 GETPWENT_R_HAS_FPTR|5.008000||Viu
2885 GETPWENT_R_HAS_PTR|5.008000||Viu
2886 GETPWENT_R_PROTO|5.008000|5.008000|Vn
2887 getpwnam|5.009000||Viu
2888 GETPWNAM_R_HAS_BUFFER|5.008000||Viu
2889 GETPWNAM_R_HAS_PTR|5.008000||Viu
2890 GETPWNAM_R_PROTO|5.008000|5.008000|Vn
2891 getpwuid|5.009000||Viu
2892 GETPWUID_R_HAS_PTR|5.008000||Viu
2893 GETPWUID_R_PROTO|5.008000|5.008000|Vn
2894 get_quantifier_value|5.033006||Viu
11122895 get_re_arg|||xciu
1113 _get_regclass_nonbitmap_data|5.019009||cViu
1114 get_regex_charset_name|5.031004||nViu
2896 get_re_gclass_nonbitmap_data|5.031011||Viu
2897 get_regclass_nonbitmap_data|5.031011||Viu
2898 get_regex_charset_name|5.031004||Vniu
2899 getservbyname|5.005000||Viu
2900 GETSERVBYNAME_R_HAS_BUFFER|5.008000||Viu
2901 GETSERVBYNAME_R_HAS_PTR|5.008000||Viu
2902 GETSERVBYNAME_R_PROTO|5.008000|5.008000|Vn
2903 getservbyport|5.005000||Viu
2904 GETSERVBYPORT_R_HAS_BUFFER|5.008000||Viu
2905 GETSERVBYPORT_R_HAS_PTR|5.008000||Viu
2906 GETSERVBYPORT_R_PROTO|5.008000|5.008000|Vn
2907 getservent|5.005000||Viu
2908 GETSERVENT_R_HAS_BUFFER|5.008000||Viu
2909 GETSERVENT_R_HAS_PTR|5.008000||Viu
2910 GETSERVENT_R_PROTO|5.008000|5.008000|Vn
2911 getsockname|5.005000||Viu
2912 getsockopt|5.005000||Viu
2913 getspnam|5.009000||Viu
2914 GETSPNAM_R_HAS_BUFFER|5.031011||Viu
2915 GETSPNAM_R_HAS_PTR|5.008000||Viu
2916 GETSPNAM_R_PROTO|5.008000|5.008000|Vn
11152917 get_sv|5.006000|5.003007|p
1116 GetVars|5.006000||Vu
2918 GETTARGET|5.003007||Viu
2919 GETTARGETSTACKED|5.003007||Viu
2920 gettimeofday|5.008000||Viu
2921 getuid|5.005000||Viu
11172922 get_vtbl|5.005003|5.005003|u
2923 getw|5.003007||Viu
11182924 G_EVAL|5.003007|5.003007|
1119 GIMME|5.003007|5.003007|
2925 G_FAKINGEVAL|5.009004||Viu
2926 Gid_t|5.003007|5.003007|Vn
2927 Gid_t_f|5.006000|5.006000|Vn
2928 Gid_t_sign|5.006000|5.006000|Vn
2929 Gid_t_size|5.006000|5.006000|Vn
2930 GIMME|5.003007|5.003007|d
11202931 GIMME_V|5.004000|5.004000|
1121 gimme_V|5.031005|5.031005|xu
2932 gimme_V|5.031005||xcVu
2933 G_KEEPERR|5.003007|5.003007|
2934 G_LIST|5.035001|5.003007|
11222935 glob_2number|5.009004||Viu
2936 GLOBAL_PAT_MOD|5.009005||Viu
11232937 glob_assign_glob|5.009004||Viu
11242938 G_METHOD|5.006001|5.003007|p
11252939 G_METHOD_NAMED|5.019002|5.019002|
2940 gmtime|5.031011||Viu
2941 GMTIME_MAX|5.010001|5.010001|Vn
2942 GMTIME_MIN|5.010001|5.010001|Vn
2943 GMTIME_R_PROTO|5.008000|5.008000|Vn
11262944 G_NOARGS|5.003007|5.003007|
2945 G_NODEBUG|5.004005||Viu
2946 GOSUB|5.009005||Viu
2947 GOSUB_t8_p8|5.033003||Viu
2948 GOSUB_t8_pb|5.033003||Viu
2949 GOSUB_tb_p8|5.033003||Viu
2950 GOSUB_tb_pb|5.033003||Viu
11272951 gp_dup|5.007003|5.007003|u
11282952 gp_free|5.003007|5.003007|u
2953 GPOS|5.004000||Viu
2954 GPOS_t8_p8|5.033003||Viu
2955 GPOS_t8_pb|5.033003||Viu
2956 GPOS_tb_p8|5.033003||Viu
2957 GPOS_tb_pb|5.033003||Viu
11292958 gp_ref|5.003007|5.003007|u
2959 GREEK_CAPITAL_LETTER_MU|5.013011||Viu
2960 GREEK_SMALL_LETTER_MU|5.013008||Viu
2961 G_RE_REPARSING|5.017011||Viu
11302962 G_RETHROW|5.031002|5.003007|p
1131 grok_atoUV|5.021010||ncVi
2963 grok_atoUV|5.021010||cVni
11322964 grok_bin|5.007003|5.003007|p
1133 grok_bin_oct_hex|||cVu
2965 grok_bin_oct_hex|5.031008||cVu
11342966 grok_bslash_c|5.013001||cViu
11352967 grok_bslash_N|5.017003||Viu
11362968 grok_bslash_o|5.013003||cViu
11432975 grok_numeric_radix|5.007002|5.003007|p
11442976 grok_oct|5.007003|5.003007|p
11452977 group_end|5.007003||Viu
2978 GROUPP|5.005000||Viu
2979 GROUPPN|5.031001||Viu
2980 GROUPPN_t8_p8|5.033003||Viu
2981 GROUPPN_t8_pb|5.033003||Viu
2982 GROUPPN_tb_p8|5.033003||Viu
2983 GROUPPN_tb_pb|5.033003||Viu
2984 GROUPP_t8_p8|5.033003||Viu
2985 GROUPP_t8_pb|5.033003||Viu
2986 GROUPP_tb_p8|5.033003||Viu
2987 GROUPP_tb_pb|5.033003||Viu
2988 Groups_t|5.003007|5.003007|Vn
2989 GRPASSWD|5.005000|5.005000|Vn
11462990 G_SCALAR|5.003007|5.003007|
2991 G_UNDEF_FILL|5.013001||Viu
11472992 GV_ADD|5.003007|5.003007|
11482993 gv_add_by_type|5.011000|5.011000|u
11492994 GV_ADDMG|5.015003|5.015003|
11502995 GV_ADDMULTI|5.003007|5.003007|
2996 GV_ADDWARN|5.003007|5.003007|
2997 Gv_AMG|5.003007||Viu
11512998 Gv_AMupdate|5.011000|5.011000|u
1152 gv_autoload4|5.004000|5.004000|u
2999 GvASSUMECV|5.003007||Viu
3000 GvASSUMECV_off|5.003007||Viu
3001 GvASSUMECV_on|5.003007||Viu
3002 gv_autoload4|5.004000|5.004000|
3003 GV_AUTOLOAD|5.011000||Viu
3004 GV_AUTOLOAD_ISMETHOD|5.015004||Viu
11533005 gv_autoload_pv|5.015004|5.015004|u
11543006 gv_autoload_pvn|5.015004|5.015004|u
11553007 gv_autoload_sv|5.015004|5.015004|u
11563008 GvAV|5.003007|5.003007|
11573009 gv_AVadd|5.003007|5.003007|u
1158 gv_check|5.003007|5.003007|u
3010 GvAVn|5.003007||Viu
3011 GV_CACHE_ONLY|5.021004||Vi
3012 gv_check|5.003007||cVu
11593013 gv_const_sv|5.009003|5.009003|
3014 GV_CROAK|5.011000||Viu
11603015 GvCV|5.003007|5.003007|
3016 GvCVGEN|5.003007||Viu
3017 GvCV_set|5.013010||Viu
3018 GvCVu|5.004000||Viu
11613019 gv_dump|5.006000|5.006000|u
11623020 gv_efullname3|5.003007|5.003007|u
11633021 gv_efullname4|5.006001|5.006001|u
11643022 gv_efullname|5.003007|5.003007|du
1165 gv_fetchfile|5.003007|5.003007|u
1166 gv_fetchfile_flags|5.009005|5.009005|u
3023 GvEGV|5.003007||Viu
3024 GvEGVx|5.013000||Viu
3025 GvENAME|5.003007||Viu
3026 GvENAME_HEK|5.015004||Viu
3027 GvENAMELEN|5.015004||Viu
3028 GvENAMEUTF8|5.015004||Viu
3029 GvESTASH|5.003007||Viu
3030 GVf_ASSUMECV|5.003007||Viu
3031 gv_fetchfile|5.003007|5.003007|
3032 gv_fetchfile_flags|5.009005|5.009005|
11673033 gv_fetchmeth|5.003007|5.003007|
11683034 gv_fetchmeth_autoload|5.007003|5.007003|
11693035 gv_fetchmeth_internal|5.021007||Viu
11703036 gv_fetchmethod|5.003007|5.003007|
11713037 gv_fetchmethod_autoload|5.004000|5.004000|
3038 gv_fetchmethod_flags|5.015004||Viu
11723039 gv_fetchmethod_pv_flags|5.015004|5.015004|xu
11733040 gv_fetchmethod_pvn_flags|5.015004|5.015004|xu
11743041 gv_fetchmethod_sv_flags|5.015004|5.015004|xu
11783045 gv_fetchmeth_pvn_autoload|5.015004|5.015004|
11793046 gv_fetchmeth_sv|5.015004|5.015004|
11803047 gv_fetchmeth_sv_autoload|5.015004|5.015004|
1181 gv_fetchpv|5.003007|5.003007|u
1182 gv_fetchpvn_flags|5.009002|5.003007|pu
1183 gv_fetchpvs|5.009004||pVu
1184 gv_fetchsv|5.009002|5.003007|pu
3048 gv_fetchpv|5.003007|5.003007|
3049 gv_fetchpvn|5.013006|5.013006|
3050 gv_fetchpvn_flags|5.009002|5.003007|p
3051 gv_fetchpvs|5.009004|5.003007|p
3052 gv_fetchsv|5.009002|5.003007|p
3053 gv_fetchsv_nomg|5.015003|5.015003|
3054 GvFILE|5.006000||Viu
3055 GvFILEGV|5.003007||Viu
3056 GvFILE_HEK|5.009004||Viu
3057 GvFILEx|5.019006||Viu
3058 GVf_IMPORTED|5.003007||Viu
3059 GVf_IMPORTED_AV|5.003007||Viu
3060 GVf_IMPORTED_CV|5.003007||Viu
3061 GVf_IMPORTED_HV|5.003007||Viu
3062 GVf_IMPORTED_SV|5.003007||Viu
3063 GVf_INTRO|5.003007||Viu
3064 GvFLAGS|5.003007||Viu
3065 GVf_MULTI|5.003007||Viu
3066 GvFORM|5.003007||Viu
11853067 gv_fullname3|5.003007|5.003007|u
11863068 gv_fullname4|5.006001|5.006001|u
11873069 gv_fullname|5.003007|5.003007|du
3070 GvGP|5.003007||Viu
3071 GvGPFLAGS|5.021004||Viu
3072 GvGP_set|5.013010||Viu
11883073 gv_handler|5.007001|5.007001|u
11893074 GvHV|5.003007|5.003007|
11903075 gv_HVadd|5.003007|5.003007|u
3076 GvHVn|5.003007||Viu
3077 GvIMPORTED|5.003007||Viu
3078 GvIMPORTED_AV|5.003007||Viu
3079 GvIMPORTED_AV_off|5.003007||Viu
3080 GvIMPORTED_AV_on|5.003007||Viu
3081 GvIMPORTED_CV|5.003007||Viu
3082 GvIMPORTED_CV_off|5.003007||Viu
3083 GvIMPORTED_CV_on|5.003007||Viu
3084 GvIMPORTED_HV|5.003007||Viu
3085 GvIMPORTED_HV_off|5.003007||Viu
3086 GvIMPORTED_HV_on|5.003007||Viu
3087 GvIMPORTED_off|5.003007||Viu
3088 GvIMPORTED_on|5.003007||Viu
3089 GvIMPORTED_SV|5.003007||Viu
3090 GvIMPORTED_SV_off|5.003007||Viu
3091 GvIMPORTED_SV_on|5.003007||Viu
11913092 gv_init|5.003007|5.003007|
11923093 gv_init_pv|5.015004|5.015004|
11933094 gv_init_pvn|5.015004|5.003007|p
11943095 gv_init_sv|5.015004|5.015004|
11953096 gv_init_svtype|5.015004||Viu
3097 GvIN_PAD|5.006000||Viu
3098 GvIN_PAD_off|5.006000||Viu
3099 GvIN_PAD_on|5.006000||Viu
3100 GvINTRO|5.003007||Viu
3101 GvINTRO_off|5.003007||Viu
3102 GvINTRO_on|5.003007||Viu
3103 GvIO|5.003007||Viu
11963104 gv_IOadd|5.003007|5.003007|u
3105 GvIOn|5.003007||Viu
3106 GvIOp|5.003007||Viu
11973107 gv_is_in_main|5.019004||Viu
3108 GvLINE|5.003007||Viu
11983109 gv_magicalize|5.019004||Viu
11993110 gv_magicalize_isa|5.013005||Viu
3111 gv_method_changed|5.017007||Viu
3112 GvMULTI|5.003007||Viu
3113 GvMULTI_off|5.003007||Viu
3114 GvMULTI_on|5.003007||Viu
3115 GvNAME|5.003007||Viu
3116 GvNAME_get|5.009004||Viu
3117 GvNAME_HEK|5.009004||Viu
3118 GvNAMELEN|5.003007||Viu
3119 GvNAMELEN_get|5.009004||Viu
12003120 gv_name_set|5.009004|5.009004|u
1201 GV_NOADD_MASK|5.009005|5.003007|poVu
3121 GvNAMEUTF8|5.015004||Viu
3122 GV_NOADD_MASK|5.009005||Viu
12023123 GV_NOADD_NOINIT|5.009003|5.009003|
12033124 GV_NOEXPAND|5.009003|5.009003|
12043125 GV_NOINIT|5.004005|5.004005|
3126 GV_NO_SVGMAGIC|5.015003|5.015003|
3127 GV_NOTQUAL|5.009004|5.009004|
3128 GV_NOUNIVERSAL|5.033009||Viu
12053129 G_VOID|5.004000|5.004000|
12063130 gv_override|5.019006||Viu
3131 GvREFCNT|5.003007||Viu
12073132 gv_setref|5.021005||Viu
3133 GvSTASH|5.003007||Viu
12083134 gv_stashpv|5.003007|5.003007|
12093135 gv_stashpvn|5.003007|5.003007|p
12103136 gv_stashpvn_internal|5.021004||Viu
12113137 gv_stashpvs|5.009003|5.003007|p
12123138 gv_stashsv|5.003007|5.003007|
1213 gv_stashsvpvn_cached|5.021004||Viu
3139 gv_stashsvpvn_cached|5.021004||Vi
12143140 GV_SUPER|5.017004|5.017004|
12153141 GvSV|5.003007|5.003007|
1216 gv_SVadd|||u
1217 GvSVn|5.009003||pVu
3142 gv_SVadd|5.011000||Vu
3143 GvSVn|5.009003|5.003007|p
12183144 gv_try_downgrade|5.011002||xcVi
3145 GvXPVGV|5.003007||Viu
3146 G_WANT|5.010001||Viu
3147 G_WARN_ALL_MASK|5.006000||Viu
3148 G_WARN_ALL_OFF|5.006000||Viu
3149 G_WARN_ALL_ON|5.006000||Viu
3150 G_WARN_OFF|5.006000||Viu
3151 G_WARN_ON|5.006000||Viu
3152 G_WARN_ONCE|5.006000||Viu
3153 G_WRITING_TO_STDERR|5.013009||Viu
12193154 handle_named_backref|5.023008||Viu
3155 handle_names_wildcard|5.031011||Viu
12203156 handle_possible_posix|5.023008||Viu
12213157 handle_regex_sets|5.017009||Viu
1222 handle_user_defined_property|5.029008||cViu
3158 handle_user_defined_property|5.029008||Viu
3159 HAS_ACCEPT4|5.027008|5.027008|Vn
3160 HAS_ACCESS|5.006000|5.006000|Vn
3161 HAS_ACOSH|5.021004|5.021004|Vn
3162 HAS_ALARM|5.003007|5.003007|Vn
3163 HAS_ASCTIME_R|5.010000|5.010000|Vn
3164 HAS_ASINH|5.021006|5.021006|Vn
3165 HAS_ATANH|5.021006|5.021006|Vn
3166 HAS_ATOLL|5.006000|5.006000|Vn
3167 HASATTRIBUTE_ALWAYS_INLINE|5.031007|5.031007|Vn
3168 HASATTRIBUTE_DEPRECATED|5.010001|5.010001|Vn
3169 HASATTRIBUTE_FORMAT|5.009003|5.009003|Vn
3170 HASATTRIBUTE_MALLOC|5.009003|5.009003|Vn
3171 HASATTRIBUTE_NONNULL|5.009003|5.009003|Vn
3172 HASATTRIBUTE_NORETURN|5.009003|5.009003|Vn
3173 HASATTRIBUTE_PURE|5.009003|5.009003|Vn
3174 HASATTRIBUTE_UNUSED|5.009003|5.009003|Vn
3175 HASATTRIBUTE_WARN_UNUSED_RESULT|5.009003|5.009003|Vn
3176 HAS_BACKTRACE|5.021001|5.021001|Vn
3177 HAS_BOOL|5.003007||Viu
3178 HAS_BUILTIN_CHOOSE_EXPR|5.009004|5.009004|Vn
3179 HAS_BUILTIN_EXPECT|5.010001|5.010001|Vn
3180 __has_builtin|||piu
3181 HAS_BUILTIN_UNREACHABLE|5.033003||Viu
3182 HAS_C99|5.021004||Viu
3183 HAS_C99_VARIADIC_MACROS|5.009004|5.009004|Vn
3184 HAS_CBRT|5.021006|5.021006|Vn
3185 HAS_CF_AUX_TABLES|5.027011||Viu
3186 HAS_CHOWN|5.003007|5.003007|Vn
3187 HAS_CHROOT|5.003007|5.003007|Vn
3188 HAS_CHSIZE|5.004005|5.004005|Vn
3189 HAS_CLEARENV|5.009003|5.009003|Vn
3190 HAS_COPYSIGN|5.021006|5.021006|Vn
3191 HAS_COPYSIGNL|5.008001|5.008001|Vn
3192 HAS_CRYPT|5.003007|5.003007|Vn
3193 HAS_CRYPT_R|5.010000|5.010000|Vn
3194 HAS_CSH|5.005000|5.005000|Vn
3195 HAS_CTERMID|5.009005|5.009005|Vn
3196 HAS_CTIME_R|5.010000|5.010000|Vn
3197 HAS_CUSERID|5.003007|5.003007|Vn
3198 HAS_DBMINIT_PROTO|5.032001|5.032001|Vn
3199 HAS_DIFFTIME|5.003007|5.003007|Vn
3200 HAS_DIRFD|5.007003|5.007003|Vn
3201 HAS_DLADDR|5.021001|5.021001|Vn
3202 HAS_DLERROR|5.003007|5.003007|Vn
3203 HAS_DRAND48_PROTO|5.006000|5.006000|Vn
3204 HAS_DRAND48_R|5.010000|5.010000|Vn
3205 HAS_DUP2|5.003007|5.003007|Vn
3206 HAS_DUP3|5.027008|5.027008|Vn
3207 HAS_DUPLOCALE|5.027011|5.027011|Vn
3208 HAS_EACCESS|5.006000|5.006000|Vn
3209 HAS_ENDGRENT|5.005000|5.005000|Vn
3210 HAS_ENDHOSTENT|5.005000|5.005000|Vn
3211 HAS_ENDNETENT|5.005000|5.005000|Vn
3212 HAS_ENDPROTOENT|5.005000|5.005000|Vn
3213 HAS_ENDPWENT|5.005000|5.005000|Vn
3214 HAS_ENDSERVENT|5.005000|5.005000|Vn
3215 HAS_ERF|5.021006|5.021006|Vn
3216 HAS_ERFC|5.021006|5.021006|Vn
3217 HAS_EXP2|5.021006|5.021006|Vn
3218 HAS_EXPM1|5.021006|5.021006|Vn
3219 HAS_FAST_STDIO|5.008001|5.008001|Vn
3220 HAS_FCHDIR|5.007002|5.007002|Vn
3221 HAS_FCHMOD|5.003007|5.003007|Vn
3222 HAS_FCHMODAT|5.027004|5.027004|Vn
3223 HAS_FCHOWN|5.003007|5.003007|Vn
3224 HAS_FCNTL|5.003007|5.003007|Vn
3225 HAS_FDIM|5.021006|5.021006|Vn
3226 HAS_FD_SET|5.006000|5.006000|Vn
3227 HAS_FEGETROUND|5.021004|5.021004|Vn
3228 HAS_FFS|5.035001|5.035001|Vn
3229 HAS_FFSL|5.035001|5.035001|Vn
3230 HAS_FGETPOS|5.003007|5.003007|Vn
3231 HAS_FINITE|5.007003|5.007003|Vn
3232 HAS_FINITEL|5.007003|5.007003|Vn
3233 HAS_FLOCK|5.003007|5.003007|Vn
3234 HAS_FLOCK_PROTO|5.007002|5.007002|Vn
3235 HAS_FMA|5.021006|5.021006|Vn
3236 HAS_FMAX|5.021006|5.021006|Vn
3237 HAS_FMIN|5.021006|5.021006|Vn
3238 HAS_FORK|5.003007|5.003007|Vn
3239 HAS_FPATHCONF|5.003007|5.003007|Vn
3240 HAS_FPCLASSIFY|5.021004|5.021004|Vn
3241 HAS_FREELOCALE|5.023009|5.023009|Vn
3242 HAS_FREXPL|5.006001|5.006001|Vn
3243 HAS_FSEEKO|5.006000|5.006000|Vn
3244 HAS_FSETPOS|5.003007|5.003007|Vn
3245 HAS_FSTATFS|5.023005|5.023005|Vn
3246 HAS_FSTATVFS|5.023005|5.023005|Vn
3247 HAS_FSYNC|5.007001|5.007001|Vn
3248 HAS_FTELLO|5.006000|5.006000|Vn
3249 HAS_FUTIMES|5.009003|5.009003|Vn
3250 HAS_GAI_STRERROR|5.025004|5.025004|Vn
3251 HAS_GETADDRINFO|5.010001|5.010001|Vn
3252 HAS_GETCWD|5.006000|5.006000|Vn
3253 HAS_GETGRENT|5.005000|5.005000|Vn
3254 HAS_GETGRENT_R|5.010000|5.010000|Vn
3255 HAS_GETGRGID_R|5.010000|5.010000|Vn
3256 HAS_GETGRNAM_R|5.010000|5.010000|Vn
3257 HAS_GETGROUPS|5.003007|5.003007|Vn
3258 HAS_GETHOSTBYADDR|5.005000|5.005000|Vn
3259 HAS_GETHOSTBYADDR_R|5.010000|5.010000|Vn
3260 HAS_GETHOSTBYNAME|5.005000|5.005000|Vn
3261 HAS_GETHOSTBYNAME_R|5.010000|5.010000|Vn
3262 HAS_GETHOSTENT|5.003007|5.003007|Vn
3263 HAS_GETHOSTENT_R|5.010000|5.010000|Vn
3264 HAS_GETHOSTNAME|5.006000|5.006000|Vn
3265 HAS_GETHOST_PROTOS|5.005000|5.005000|Vn
3266 HAS_GETITIMER|5.007001|5.007001|Vn
3267 HAS_GETLOGIN|5.003007|5.003007|Vn
3268 HAS_GETLOGIN_R|5.010000|5.010000|Vn
3269 HAS_GETMNTENT|5.023005|5.023005|Vn
3270 HAS_GETNAMEINFO|5.010001|5.010001|Vn
3271 HAS_GETNETBYADDR|5.005000|5.005000|Vn
3272 HAS_GETNETBYADDR_R|5.010000|5.010000|Vn
3273 HAS_GETNETBYNAME|5.005000|5.005000|Vn
3274 HAS_GETNETBYNAME_R|5.010000|5.010000|Vn
3275 HAS_GETNETENT|5.005000|5.005000|Vn
3276 HAS_GETNETENT_R|5.010000|5.010000|Vn
3277 HAS_GETNET_PROTOS|5.005000|5.005000|Vn
3278 HAS_GETPAGESIZE|5.007001|5.007001|Vn
3279 HAS_GETPGID|5.003007|5.003007|Vn
3280 HAS_GETPGRP|5.003007|5.003007|Vn
3281 HAS_GETPPID|5.003007|5.003007|Vn
3282 HAS_GETPRIORITY|5.003007|5.003007|Vn
3283 HAS_GETPROTOBYNAME|5.005000|5.005000|Vn
3284 HAS_GETPROTOBYNAME_R|5.010000|5.010000|Vn
3285 HAS_GETPROTOBYNUMBER|5.005000|5.005000|Vn
3286 HAS_GETPROTOBYNUMBER_R|5.010000|5.010000|Vn
3287 HAS_GETPROTOENT|5.005000|5.005000|Vn
3288 HAS_GETPROTOENT_R|5.010000|5.010000|Vn
3289 HAS_GETPROTO_PROTOS|5.005000|5.005000|Vn
3290 HAS_GETPWENT|5.005000|5.005000|Vn
3291 HAS_GETPWENT_R|5.010000|5.010000|Vn
3292 HAS_GETPWNAM_R|5.010000|5.010000|Vn
3293 HAS_GETPWUID_R|5.010000|5.010000|Vn
3294 HAS_GETSERVBYNAME|5.005000|5.005000|Vn
3295 HAS_GETSERVBYNAME_R|5.010000|5.010000|Vn
3296 HAS_GETSERVBYPORT|5.005000|5.005000|Vn
3297 HAS_GETSERVBYPORT_R|5.010000|5.010000|Vn
3298 HAS_GETSERVENT|5.005000|5.005000|Vn
3299 HAS_GETSERVENT_R|5.010000|5.010000|Vn
3300 HAS_GETSERV_PROTOS|5.005000|5.005000|Vn
3301 HAS_GETSPNAM|5.006000|5.006000|Vn
3302 HAS_GETSPNAM_R|5.010000|5.010000|Vn
3303 HAS_GETTIMEOFDAY|5.004000|5.004000|Vn
3304 HAS_GMTIME_R|5.010000|5.010000|Vn
3305 HAS_GNULIBC|5.004005|5.004005|Vn
3306 HAS_GROUP|5.003007||Viu
3307 HAS_HASMNTOPT|5.023005|5.023005|Vn
3308 HAS_HTONL|5.003007|5.003007|Vn
3309 HAS_HTONS|5.003007|5.003007|Vn
3310 HAS_HYPOT|5.021006|5.021006|Vn
3311 HAS_ILOGB|5.021006|5.021006|Vn
3312 HAS_ILOGBL|5.008001|5.008001|Vn
3313 HAS_INET_ATON|5.004000|5.004000|Vn
3314 HAS_INETNTOP|5.010001|5.010001|Vn
3315 HAS_INETPTON|5.010001|5.010001|Vn
3316 HAS_INT64_T|5.006000|5.006000|Vn
3317 HAS_IOCTL|5.003007||Viu
3318 HAS_IP_MREQ|5.017002|5.017002|Vn
3319 HAS_IP_MREQ_SOURCE|5.017004|5.017004|Vn
3320 HAS_IPV6_MREQ|5.015008|5.015008|Vn
3321 HAS_ISASCII|5.003007|5.003007|Vn
3322 HAS_ISBLANK|5.015007|5.015007|Vn
3323 HAS_ISFINITE|5.021004|5.021004|Vn
3324 HAS_ISINF|5.007003|5.007003|Vn
3325 HAS_ISINFL|5.021004|5.021004|Vn
3326 HAS_ISLESS|5.031007|5.031007|Vn
3327 HAS_ISNAN|5.006001|5.006001|Vn
3328 HAS_ISNANL|5.006001|5.006001|Vn
3329 HAS_ISNORMAL|5.021006|5.021006|Vn
3330 HAS_IVCF_AUX_TABLES|5.027011||Viu
3331 HAS_J0|5.021004|5.021004|Vn
3332 HAS_J0L|5.021004|5.021004|Vn
3333 HAS_KILL|5.003007||Viu
3334 HAS_KILLPG|5.003007|5.003007|Vn
3335 HAS_LC_AUX_TABLES|5.027011||Viu
3336 HAS_LCHOWN|5.005000|5.005000|Vn
3337 HAS_LC_MONETARY_2008|5.021005|5.021005|Vn
3338 HAS_LDBL_DIG|5.006000|5.006000|Vn
3339 HAS_LDEXPL|5.021003|5.021003|Vn
3340 HAS_LGAMMA|5.021006|5.021006|Vn
3341 HAS_LGAMMA_R|5.021006|5.021006|Vn
3342 HAS_LINK|5.003007|5.003007|Vn
3343 HAS_LINKAT|5.027004|5.027004|Vn
3344 HAS_LLRINT|5.021006|5.021006|Vn
3345 HAS_LLRINTL|5.021009|5.021009|Vn
3346 HAS_LLROUND|5.021006|5.021006|Vn
3347 HAS_LLROUNDL|5.021009|5.021009|Vn
3348 HAS_LOCALECONV|5.003007|5.003007|Vn
3349 HAS_LOCALTIME_R|5.010000|5.010000|Vn
3350 HAS_LOCKF|5.003007|5.003007|Vn
3351 HAS_LOG1P|5.021006|5.021006|Vn
3352 HAS_LOG2|5.021006|5.021006|Vn
3353 HAS_LOGB|5.021006|5.021006|Vn
3354 HAS_LONG_DOUBLE|5.005000|5.005000|Vn
3355 HAS_LONG_LONG|5.005000|5.005000|Vn
3356 HAS_LRINT|5.021006|5.021006|Vn
3357 HAS_LRINTL|5.021009|5.021009|Vn
3358 HAS_LROUND|5.021006|5.021006|Vn
3359 HAS_LROUNDL|5.021009|5.021009|Vn
3360 HAS_LSEEK_PROTO|5.006000|5.006000|Vn
3361 HAS_LSTAT|5.003007|5.003007|Vn
3362 HAS_MADVISE|5.006000|5.006000|Vn
3363 HAS_MBLEN|5.003007|5.003007|Vn
3364 HAS_MBRLEN|5.027006|5.027006|Vn
3365 HAS_MBRTOWC|5.027006|5.027006|Vn
3366 HAS_MBSTOWCS|5.003007|5.003007|Vn
3367 HAS_MBTOWC|5.003007|5.003007|Vn
3368 HAS_MEMMEM|5.024000|5.024000|Vn
3369 HAS_MEMRCHR|5.027005|5.027005|Vn
3370 HAS_MKDIR|5.003007|5.003007|Vn
3371 HAS_MKDTEMP|5.006000|5.006000|Vn
3372 HAS_MKFIFO|5.003007|5.003007|Vn
3373 HAS_MKOSTEMP|5.027008|5.027008|Vn
3374 HAS_MKSTEMP|5.006000|5.006000|Vn
3375 HAS_MKSTEMPS|5.006000|5.006000|Vn
3376 HAS_MKTIME|5.003007|5.003007|Vn
3377 HAS_MMAP|5.006000|5.006000|Vn
3378 HAS_MODFL|5.006001|5.006001|Vn
3379 HAS_MODFL_PROTO|5.009003|5.009003|Vn
3380 HAS_MPROTECT|5.006000|5.006000|Vn
3381 HAS_MSG|5.003007|5.003007|Vn
3382 HAS_MSYNC|5.006000|5.006000|Vn
3383 HAS_MUNMAP|5.006000|5.006000|Vn
3384 HAS_NAN|5.021006|5.021006|Vn
3385 HAS_NANOSLEEP|5.027006|5.027006|Vn
3386 HAS_NEARBYINT|5.021006|5.021006|Vn
3387 HAS_NEWLOCALE|5.023009|5.023009|Vn
3388 HAS_NEXTAFTER|5.021006|5.021006|Vn
3389 HAS_NEXTTOWARD|5.021006|5.021006|Vn
3390 HAS_NICE|5.003007|5.003007|Vn
3391 HAS_NL_LANGINFO|5.007002|5.007002|Vn
3392 HAS_NL_LANGINFO_L|5.035001|5.035001|Vn
3393 HAS_NON_INT_BITFIELDS|5.035001|5.035001|Vn
3394 HAS_NONLATIN1_FOLD_CLOSURE|5.033005||Viu
3395 HAS_NONLATIN1_SIMPLE_FOLD_CLOSURE|5.033005||Viu
3396 HAS_NTOHL|5.003007|5.003007|Vn
3397 HAS_NTOHS|5.003007|5.003007|Vn
3398 HAS_OFF64_T|5.010000|5.010000|Vn
3399 HAS_OPEN3|5.003007|5.003007|Vn
3400 HAS_OPENAT|5.027004|5.027004|Vn
3401 HAS_PASSWD|5.003007||Viu
3402 HAS_PATHCONF|5.003007|5.003007|Vn
3403 HAS_PAUSE|5.003007|5.003007|Vn
3404 HAS_PIPE2|5.027008|5.027008|Vn
3405 HAS_PIPE|5.003007|5.003007|Vn
3406 HAS_POLL|5.003007|5.003007|Vn
3407 HAS_POSIX_2008_LOCALE|5.027003||Viu
3408 HAS_PRCTL|5.013000|5.013000|Vn
3409 HAS_PRCTL_SET_NAME|5.013000|5.013000|Vn
3410 HAS_PROCSELFEXE|5.007003|5.007003|Vn
3411 HAS_PTHREAD_ATFORK|5.010000|5.010000|Vn
3412 HAS_PTHREAD_ATTR_SETSCOPE|5.008001|5.008001|Vn
3413 HAS_PTHREAD_UNCHECKED_GETSPECIFIC_NP|5.007002||Viu
3414 HAS_PTHREAD_YIELD|5.009005|5.009005|Vn
3415 HAS_PTRDIFF_T|5.021001|5.021001|Vn
3416 HAS_QUAD|5.003007|5.003007|Vn
3417 HAS_RANDOM_R|5.010000|5.010000|Vn
3418 HAS_READDIR|5.003007|5.003007|Vn
3419 HAS_READDIR64_R|5.010000|5.010000|Vn
3420 HAS_READDIR_R|5.010000|5.010000|Vn
3421 HAS_READLINK|5.003007|5.003007|Vn
3422 HAS_READV|5.007001|5.007001|Vn
3423 HAS_RECVMSG|5.007001|5.007001|Vn
3424 HAS_REGCOMP|5.021007|5.021007|Vn
3425 HAS_REMAINDER|5.021006|5.021006|Vn
3426 HAS_REMQUO|5.021006|5.021006|Vn
3427 HAS_RENAME|5.003007|5.003007|Vn
3428 HAS_RENAMEAT|5.027004|5.027004|Vn
3429 HAS_REWINDDIR|5.003007|5.003007|Vn
3430 HAS_RINT|5.021006|5.021006|Vn
3431 HAS_RMDIR|5.003007|5.003007|Vn
3432 HAS_ROUND|5.021006|5.021006|Vn
3433 HAS_SBRK_PROTO|5.007001|5.007001|Vn
3434 HAS_SCALBN|5.021006|5.021006|Vn
3435 HAS_SCALBNL|5.008001|5.008001|Vn
3436 HAS_SCHED_YIELD|5.005000|5.005000|Vn
3437 HAS_SCX_AUX_TABLES|5.027008||Viu
3438 HAS_SEEKDIR|5.003007|5.003007|Vn
3439 HAS_SELECT|5.003007|5.003007|Vn
3440 HAS_SEM|5.003007|5.003007|Vn
3441 HAS_SENDMSG|5.007001|5.007001|Vn
3442 HAS_SETEGID|5.003007|5.003007|Vn
3443 HAS_SETEUID|5.003007|5.003007|Vn
3444 HAS_SETGRENT|5.005000|5.005000|Vn
3445 HAS_SETGROUPS|5.004000|5.004000|Vn
3446 HAS_SETHOSTENT|5.005000|5.005000|Vn
3447 HAS_SETITIMER|5.007001|5.007001|Vn
3448 HAS_SETLINEBUF|5.003007|5.003007|Vn
3449 HAS_SETLOCALE|5.003007|5.003007|Vn
3450 HAS_SETNETENT|5.005000|5.005000|Vn
3451 HAS_SETPGID|5.003007|5.003007|Vn
3452 HAS_SETPGRP|5.003007|5.003007|Vn
3453 HAS_SETPRIORITY|5.003007|5.003007|Vn
3454 HAS_SETPROTOENT|5.005000|5.005000|Vn
3455 HAS_SETPWENT|5.005000|5.005000|Vn
3456 HAS_SETREGID|5.003007|5.003007|Vn
3457 HAS_SETRESGID|5.003007|5.003007|Vn
3458 HAS_SETRESGID_PROTO|5.010000|5.010000|Vn
3459 HAS_SETRESUID|5.003007|5.003007|Vn
3460 HAS_SETRESUID_PROTO|5.010000|5.010000|Vn
3461 HAS_SETREUID|5.003007|5.003007|Vn
3462 HAS_SETSERVENT|5.005000|5.005000|Vn
3463 HAS_SETSID|5.003007|5.003007|Vn
3464 HAS_SETVBUF|5.005000|5.005000|Vn
3465 HAS_SHM|5.003007|5.003007|Vn
3466 HAS_SHMAT_PROTOTYPE|5.003007|5.003007|Vn
3467 HAS_SIGACTION|5.003007|5.003007|Vn
3468 HAS_SIGINFO_SI_ADDR|5.023008|5.023008|Vn
3469 HAS_SIGINFO_SI_BAND|5.023008|5.023008|Vn
3470 HAS_SIGINFO_SI_ERRNO|5.023008|5.023008|Vn
3471 HAS_SIGINFO_SI_PID|5.023008|5.023008|Vn
3472 HAS_SIGINFO_SI_STATUS|5.023008|5.023008|Vn
3473 HAS_SIGINFO_SI_UID|5.023008|5.023008|Vn
3474 HAS_SIGINFO_SI_VALUE|5.023008|5.023008|Vn
3475 HAS_SIGNBIT|5.009005|5.009005|Vn
3476 HAS_SIGPROCMASK|5.007001|5.007001|Vn
3477 HAS_SIGSETJMP|5.003007|5.003007|Vn
3478 HAS_SIN6_SCOPE_ID|5.013009|5.013009|Vn
3479 HAS_SKIP_LOCALE_INIT|5.019002||Viu
3480 HAS_SNPRINTF|5.009003|5.009003|Vn
3481 HAS_SOCKADDR_IN6|5.015008|5.015008|Vn
3482 HAS_SOCKADDR_STORAGE|5.032001|5.032001|Vn
3483 HAS_SOCKATMARK|5.007001|5.007001|Vn
3484 HAS_SOCKATMARK_PROTO|5.007002|5.007002|Vn
3485 HAS_SOCKET|5.003007|5.003007|Vn
3486 HAS_SOCKETPAIR|5.003007|5.003007|Vn
3487 HAS_SQRTL|5.006000|5.006000|Vn
3488 HAS_SRAND48_R|5.010000|5.010000|Vn
3489 HAS_SRANDOM_R|5.010000|5.010000|Vn
3490 HAS_STAT|5.021007|5.021007|Vn
3491 HAS_STATIC_INLINE|5.013004|5.013004|Vn
3492 HAS_STRCOLL|5.003007|5.003007|Vn
3493 HAS_STRERROR_L|5.025002|5.025002|Vn
3494 HAS_STRERROR_R|5.010000|5.010000|Vn
3495 HAS_STRFTIME|5.007002|5.007002|Vn
3496 HAS_STRNLEN|5.027006|5.027006|Vn
3497 HAS_STRTOD|5.004000|5.004000|Vn
3498 HAS_STRTOD_L|5.027011|5.027011|Vn
3499 HAS_STRTOL|5.004000|5.004000|Vn
3500 HAS_STRTOLD|5.006000|5.006000|Vn
3501 HAS_STRTOLD_L|5.027006|5.027006|Vn
3502 HAS_STRTOLL|5.006000|5.006000|Vn
3503 HAS_STRTOQ|5.007001|5.007001|Vn
3504 HAS_STRTOUL|5.004000|5.004000|Vn
3505 HAS_STRTOULL|5.006000|5.006000|Vn
3506 HAS_STRTOUQ|5.006000|5.006000|Vn
3507 HAS_STRUCT_CMSGHDR|5.007001|5.007001|Vn
3508 HAS_STRUCT_MSGHDR|5.007001|5.007001|Vn
3509 HAS_STRUCT_STATFS|5.023005|5.023005|Vn
3510 HAS_STRUCT_STATFS_F_FLAGS|5.023005|5.023005|Vn
3511 HAS_STRXFRM|5.003007|5.003007|Vn
3512 HAS_STRXFRM_L|5.035001|5.035001|Vn
3513 HAS_SYMLINK|5.003007|5.003007|Vn
3514 HAS_SYSCALL|5.003007|5.003007|Vn
3515 HAS_SYSCALL_PROTO|5.007002|5.007002|Vn
3516 HAS_SYSCONF|5.003007|5.003007|Vn
3517 HAS_SYS_ERRLIST|5.003007|5.003007|Vn
3518 HAS_SYSTEM|5.003007|5.003007|Vn
3519 HAS_TC_AUX_TABLES|5.027011||Viu
3520 HAS_TCGETPGRP|5.003007|5.003007|Vn
3521 HAS_TCSETPGRP|5.003007|5.003007|Vn
3522 HAS_TELLDIR|5.003007|5.003007|Vn
3523 HAS_TELLDIR_PROTO|5.006000|5.006000|Vn
3524 HAS_TGAMMA|5.021006|5.021006|Vn
3525 HAS_THREAD_SAFE_NL_LANGINFO_L|5.027006|5.027006|Vn
3526 HAS_TIME|5.008000|5.008000|Vn
3527 HAS_TIMEGM|5.010001|5.010001|Vn
3528 HAS_TIMES|5.003007|5.003007|Vn
3529 HAS_TMPNAM_R|5.010000|5.010000|Vn
3530 HAS_TM_TM_GMTOFF|5.008001|5.008001|Vn
3531 HAS_TM_TM_ZONE|5.008000|5.008000|Vn
3532 HAS_TOWLOWER|5.029009|5.029009|Vn
3533 HAS_TOWUPPER|5.029009|5.029009|Vn
3534 HAS_TRUNC|5.021006|5.021006|Vn
3535 HAS_TRUNCATE|5.003007|5.003007|Vn
3536 HAS_TRUNCL|5.021004|5.021004|Vn
3537 HAS_TTYNAME_R|5.010000|5.010000|Vn
3538 HAS_TZNAME|5.003007|5.003007|Vn
3539 HAS_UALARM|5.007001|5.007001|Vn
3540 HAS_UC_AUX_TABLES|5.027011||Viu
3541 HAS_UMASK|5.003007|5.003007|Vn
3542 HAS_UNAME|5.003007|5.003007|Vn
3543 HAS_UNLINKAT|5.027004|5.027004|Vn
3544 HAS_UNSETENV|5.009003|5.009003|Vn
3545 HAS_USELOCALE|5.023009|5.023009|Vn
3546 HAS_USLEEP|5.007001|5.007001|Vn
3547 HAS_USLEEP_PROTO|5.007002|5.007002|Vn
3548 HAS_USTAT|5.023005|5.023005|Vn
3549 HAS_UTIME|5.003007||Viu
3550 HAS_VSNPRINTF|5.009003|5.009003|Vn
3551 HAS_WAIT4|5.003007|5.003007|Vn
3552 HAS_WAIT|5.003007||Viu
3553 HAS_WAITPID|5.003007|5.003007|Vn
3554 HAS_WCRTOMB|5.031007|5.031007|Vn
3555 HAS_WCSCMP|5.021001|5.021001|Vn
3556 HAS_WCSTOMBS|5.003007|5.003007|Vn
3557 HAS_WCSXFRM|5.021001|5.021001|Vn
3558 HAS_WCTOMB|5.003007|5.003007|Vn
3559 HAS_WRITEV|5.007001|5.007001|Vn
12233560 he_dup|5.007003|5.007003|u
12243561 HEf_SVKEY|5.003007|5.003007|p
12253562 HeHASH|5.003007|5.003007|
3563 HEK_BASESIZE|5.004000||Viu
12263564 hek_dup|5.009000|5.009000|u
12273565 HeKEY|5.003007|5.003007|
3566 HeKEY_hek|5.004000||Viu
3567 HeKEY_sv|5.004000||Viu
3568 HEKf256|5.015004||Viu
3569 HEKf|5.015004||Viu
3570 HEKfARG|5.015004||Viu
3571 HEK_FLAGS|5.008000||Viu
3572 HeKFLAGS|5.008000||Viu
3573 HEK_HASH|5.004000||Viu
3574 HEK_KEY|5.004000||Viu
12283575 HeKLEN|5.003007|5.003007|
3576 HEK_LEN|5.004000||Viu
3577 HeKLEN_UTF8|5.007001||Viu
3578 HEK_UTF8|5.007001||Viu
3579 HeKUTF8|5.007001||Viu
3580 HEK_UTF8_off|5.008000||Viu
3581 HEK_UTF8_on|5.008000||Viu
3582 HEK_WASUTF8|5.008000||Viu
3583 HeKWASUTF8|5.008000||Viu
3584 HEK_WASUTF8_off|5.008000||Viu
3585 HEK_WASUTF8_on|5.008000||Viu
3586 HeNEXT|5.003007||Viu
12293587 HePV|5.004000|5.004000|
12303588 HeSVKEY|5.003007|5.003007|
12313589 HeSVKEY_force|5.003007|5.003007|
12323590 HeSVKEY_set|5.004000|5.004000|
3591 HE_SVSLOT|5.009003||Viu
12333592 HeUTF8|5.010001|5.008000|p
12343593 HeVAL|5.003007|5.003007|
12353594 hfree_next_entry|||iu
3595 HIGHEST_ANYOF_HRx_BYTE|5.031002||Viu
3596 HIGHEST_CASE_CHANGING_CP|5.033005||Viu
3597 HINT_ALL_STRICT|5.033002||Viu
3598 HINT_BLOCK_SCOPE|5.003007||Viu
3599 HINT_BYTES|5.007002||Viu
3600 HINT_EXPLICIT_STRICT_REFS|5.016000||Viu
3601 HINT_EXPLICIT_STRICT_SUBS|5.016000||Viu
3602 HINT_EXPLICIT_STRICT_VARS|5.016000||Viu
3603 HINT_FEATURE_MASK|5.015007||Viu
3604 HINT_FEATURE_SHIFT|5.015007||Viu
3605 HINT_FILETEST_ACCESS|5.006000||Viu
3606 HINT_INTEGER|5.003007||Viu
3607 HINT_LEXICAL_IO_IN|5.009005||Viu
3608 HINT_LEXICAL_IO_OUT|5.009005||Viu
3609 HINT_LOCALE|5.004000||Viu
3610 HINT_LOCALE_PARTIAL|5.021001||Viu
3611 HINT_LOCALIZE_HH|5.005000||Viu
3612 HINT_NEW_BINARY|5.005000||Viu
3613 HINT_NEW_FLOAT|5.005000||Viu
3614 HINT_NEW_INTEGER|5.005000||Viu
3615 HINT_NEW_RE|5.005000||Viu
3616 HINT_NEW_STRING|5.005000||Viu
3617 HINT_NO_AMAGIC|5.010001||Viu
3618 HINT_RE_EVAL|5.005000||Viu
3619 HINT_RE_FLAGS|5.013007||Viu
3620 HINT_RE_TAINT|5.004005||Viu
3621 HINTS_DEFAULT|5.033002||Viu
3622 HINT_SORT_STABLE|5.007003||Viu
3623 HINT_SORT_UNSTABLE|5.027004||Viu
3624 HINTS_REFCNT_INIT|5.009004||Viu
3625 HINTS_REFCNT_LOCK|5.009004||Viu
3626 HINTS_REFCNT_TERM|5.009004||Viu
3627 HINTS_REFCNT_UNLOCK|5.009004||Viu
3628 HINT_STRICT_REFS|5.003007||Viu
3629 HINT_STRICT_SUBS|5.003007||Viu
3630 HINT_STRICT_VARS|5.003007||Viu
3631 HINT_UNI_8_BIT|5.011002||Viu
3632 HINT_UTF8|5.006000||Viu
3633 H_PERL|5.003007||Viu
3634 HS_APIVERLEN_MAX|5.021006||Viu
3635 HS_CXT|5.021006||Viu
3636 HSf_IMP_CXT|5.021006||Viu
3637 HSf_NOCHK|5.021006||Viu
3638 HSf_POPMARK|5.021006||Viu
3639 HSf_SETXSUBFN|5.021006||Viu
3640 HS_GETAPIVERLEN|5.021006||Viu
3641 HS_GETINTERPSIZE|5.021006||Viu
3642 HS_GETXSVERLEN|5.021006||Viu
3643 HS_KEY|5.021006||Viu
3644 HS_KEYp|5.021006||Viu
3645 HSm_APIVERLEN|5.021006||Viu
3646 HSm_INTRPSIZE|5.021006||Viu
3647 HSm_KEY_MATCH|5.021006||Viu
3648 HSm_XSVERLEN|5.021006||Viu
12363649 hsplit|5.005000||Viu
3650 HS_XSVERLEN_MAX|5.021006||Viu
3651 htoni|5.003007||Viu
3652 htonl|5.003007||Viu
3653 htons|5.003007||Viu
3654 htovl|5.003007||Viu
3655 htovs|5.003007||Viu
3656 HvAMAGIC|5.017000||Viu
3657 HvAMAGIC_off|5.017000||Viu
3658 HvAMAGIC_on|5.017000||Viu
3659 HvARRAY|5.003007||Viu
12373660 hv_assert|5.008009|5.008009|
3661 HvAUX|5.009003||Viu
3662 HvAUXf_NO_DEREF|5.019010||Viu
3663 HvAUXf_SCAN_STASH|5.019010||Viu
12383664 hv_auxinit|5.009003||Viu
1239 hv_auxinit_internal|5.019010||nViu
3665 hv_auxinit_internal|5.019010||Vniu
12403666 hv_backreferences_p|||xiu
12413667 hv_bucket_ratio|5.025003|5.025003|x
12423668 hv_clear|5.003007|5.003007|
12433669 hv_clear_placeholders|5.009001|5.009001|
1244 hv_common|5.010000|5.010000|u
1245 hv_common_key_len|5.010000|5.010000|u
3670 hv_common|5.010000||cVu
3671 hv_common_key_len|5.010000||cVu
12463672 hv_copy_hints_hv|5.009004|5.009004|
12473673 hv_delayfree_ent|5.004000|5.004000|u
12483674 hv_delete|5.003007|5.003007|
3675 HV_DELETE|5.009005||Viu
12493676 hv_delete_common|5.009001||xViu
12503677 hv_delete_ent|5.003007|5.003007|
3678 hv_deletehek|5.019006||Viu
3679 hv_deletes|5.025006||Viu
3680 HV_DISABLE_UVAR_XKEY|5.010000||Viu
3681 HvEITER|5.003007||Viu
3682 HvEITER_get|5.009003||Viu
12513683 hv_eiter_p|5.009003|5.009003|u
12523684 hv_eiter_set|5.009003|5.009003|u
3685 HvEITER_set|5.009003||Viu
12533686 HvENAME|5.013007|5.013007|
12543687 hv_ename_add|5.013007||Vi
12553688 hv_ename_delete|5.013007||Vi
3689 HvENAME_get|5.013007||Viu
3690 HvENAME_HEK|5.013007||Viu
3691 HvENAME_HEK_NN|5.013007||Viu
12563692 HvENAMELEN|5.015004|5.015004|
3693 HvENAMELEN_get|5.013007||Viu
12573694 HvENAMEUTF8|5.015004|5.015004|
12583695 hv_exists|5.003007|5.003007|
12593696 hv_exists_ent|5.003007|5.003007|
3697 hv_existss|5.025006||Viu
12603698 hv_fetch|5.003007|5.003007|
3699 HV_FETCH_EMPTY_HE|5.013007||Viu
12613700 hv_fetch_ent|5.003007|5.003007|
3701 hv_fetchhek|5.019006||Viu
3702 HV_FETCH_ISEXISTS|5.009005||Viu
3703 HV_FETCH_ISSTORE|5.009005||Viu
3704 HV_FETCH_JUST_SV|5.009005||Viu
3705 HV_FETCH_LVALUE|5.009005||Viu
12623706 hv_fetchs|5.009003|5.003007|p
12633707 HvFILL|5.003007|5.003007|
12643708 hv_fill|5.013002|5.013002|
12653709 hv_free_ent|5.004000|5.004000|u
12663710 hv_free_ent_ret|5.015000||Viu
12673711 hv_free_entries|5.027002||Viu
3712 HvHASKFLAGS|5.008000||Viu
3713 HvHASKFLAGS_off|5.008000||Viu
3714 HvHASKFLAGS_on|5.008000||Viu
3715 HVhek_ENABLEHVKFLAGS|5.008002||Viu
3716 HVhek_FREEKEY|5.008000||Viu
3717 HVhek_KEYCANONICAL|5.010001||Viu
3718 HVhek_MASK|5.008000||Viu
3719 HVhek_PLACEHOLD|5.008000||Viu
3720 HVhek_UNSHARED|5.009004||Viu
3721 HVhek_UTF8|5.008000||Viu
3722 HVhek_WASUTF8|5.008000||Viu
12683723 hv_iterinit|5.003007|5.003007|
12693724 hv_iterkey|5.003007|5.003007|
12703725 hv_iterkeysv|5.003007|5.003007|
12733728 hv_iternextsv|5.003007|5.003007|
12743729 HV_ITERNEXT_WANTPLACEHOLDERS|5.008000|5.008000|
12753730 hv_iterval|5.003007|5.003007|
3731 HvKEYS|5.003007||Viu
12763732 hv_kill_backrefs|||xiu
12773733 hv_ksplit|5.003007|5.003007|u
3734 HvLASTRAND_get|5.017011||Viu
3735 HvLAZYDEL|5.003007||Viu
3736 HvLAZYDEL_off|5.003007||Viu
3737 HvLAZYDEL_on|5.003007||Viu
12783738 hv_magic|5.003007|5.003007|
1279 hv_magic_check|5.006000||nViu
3739 hv_magic_check|5.006000||Vniu
3740 HvMAX|5.003007||Viu
3741 HvMROMETA|5.010001|5.010001|
12803742 HvNAME|5.003007|5.003007|
1281 HvNAME_get|5.009003||pVu
3743 HvNAME_get|5.009003||pcV
3744 HvNAME_HEK|5.009003||Viu
3745 HvNAME_HEK_NN|5.013007||Viu
12823746 HvNAMELEN|5.015004|5.015004|
1283 HvNAMELEN_get|5.009003||pVu
3747 HvNAMELEN_get|5.009003|5.003007|p
12843748 hv_name_set|5.009003|5.009003|u
3749 HV_NAME_SETALL|5.013008||Viu
3750 hv_name_sets|5.025006||Viu
12853751 HvNAMEUTF8|5.015004|5.015004|
12863752 hv_notallowed|5.008000||Viu
3753 HvPLACEHOLDERS|5.007003||Viu
12873754 hv_placeholders_get|5.009003|5.009003|u
3755 HvPLACEHOLDERS_get|5.009003||Viu
12883756 hv_placeholders_p|||ciu
12893757 hv_placeholders_set|5.009003|5.009003|u
3758 HvPLACEHOLDERS_set|5.009003||Viu
12903759 hv_pushkv|5.027003||Viu
3760 HvRAND_get|5.017011||Viu
12913761 hv_rand_set|5.018000|5.018000|u
3762 HVrhek_delete|5.009004||Viu
3763 HVrhek_IV|5.009004||Viu
3764 HVrhek_PV|5.009004||Viu
3765 HVrhek_PV_UTF8|5.009005||Viu
3766 HVrhek_typemask|5.009004||Viu
3767 HVrhek_undef|5.009004||Viu
3768 HVrhek_UV|5.009004||Viu
3769 HvRITER|5.003007||Viu
3770 HvRITER_get|5.009003||Viu
12923771 hv_riter_p|5.009003|5.009003|u
12933772 hv_riter_set|5.009003|5.009003|u
3773 HvRITER_set|5.009003||Viu
12943774 hv_scalar|5.009001|5.009001|
3775 HvSHAREKEYS|5.003007||Viu
3776 HvSHAREKEYS_off|5.003007||Viu
3777 HvSHAREKEYS_on|5.003007||Viu
12953778 hv_store|5.003007|5.003007|
12963779 hv_store_ent|5.003007|5.003007|
12973780 hv_store_flags|5.008000|5.008000|xu
3781 hv_storehek|5.019006||Viu
12983782 hv_stores|5.009004|5.003007|p
3783 HvTOTALKEYS|5.007003||Viu
12993784 hv_undef|5.003007|5.003007|
13003785 hv_undef_flags|||ciu
1301 I16SIZE|5.006000|5.006000|
1302 I16TYPE|5.006000|5.006000|
1303 I32SIZE|5.006000|5.006000|
1304 I32TYPE|5.006000|5.006000|
1305 I8SIZE|5.006000|5.006000|
1306 I8TYPE|5.006000|5.006000|
3786 HvUSEDKEYS|5.007003||Viu
3787 HYPHEN_UTF8|5.017004||Viu
3788 I16_MAX|5.003007||Viu
3789 I16_MIN|5.003007||Viu
3790 I16SIZE|5.006000|5.006000|Vn
3791 I16TYPE|5.006000|5.006000|Vn
3792 I_32|5.006000|5.003007|
3793 I32_MAX|5.003007||Viu
3794 I32_MAX_P1|5.007002||Viu
3795 I32_MIN|5.003007||Viu
3796 I32SIZE|5.006000|5.006000|Vn
3797 I32TYPE|5.006000|5.006000|Vn
3798 I64SIZE|5.006000|5.006000|Vn
3799 I64TYPE|5.006000|5.006000|Vn
3800 I8SIZE|5.006000|5.006000|Vn
3801 I8_TO_NATIVE|5.015006||Viu
3802 I8_TO_NATIVE_UTF8|5.019004||Viu
3803 I8TYPE|5.006000|5.006000|Vn
3804 I_ARPA_INET|5.005000|5.005000|Vn
13073805 ibcmp|5.003007|5.003007|
13083806 ibcmp_locale|5.004000|5.004000|
1309 ibcmp_utf8|5.007003|5.007003|u
3807 ibcmp_utf8|5.007003|5.007003|
3808 I_CRYPT|5.008000|5.008000|Vn
3809 I_DBM|5.032001|5.032001|Vn
3810 I_DIRENT|5.003007|5.003007|Vn
3811 I_DLFCN|5.003007|5.003007|Vn
3812 I_EXECINFO|5.021001|5.021001|Vn
3813 I_FENV|5.021004|5.021004|Vn
3814 IFMATCH|5.003007||Viu
3815 IFMATCH_A|5.009005||Viu
3816 IFMATCH_A_fail|5.009005||Viu
3817 IFMATCH_A_fail_t8_p8|5.033003||Viu
3818 IFMATCH_A_fail_t8_pb|5.033003||Viu
3819 IFMATCH_A_fail_tb_p8|5.033003||Viu
3820 IFMATCH_A_fail_tb_pb|5.033003||Viu
3821 IFMATCH_A_t8_p8|5.033003||Viu
3822 IFMATCH_A_t8_pb|5.033003||Viu
3823 IFMATCH_A_tb_p8|5.033003||Viu
3824 IFMATCH_A_tb_pb|5.033003||Viu
3825 IFMATCH_t8_p8|5.033003||Viu
3826 IFMATCH_t8_pb|5.033003||Viu
3827 IFMATCH_tb_p8|5.033003||Viu
3828 IFMATCH_tb_pb|5.033003||Viu
3829 IFTHEN|5.005000||Viu
3830 IFTHEN_t8_p8|5.033003||Viu
3831 IFTHEN_t8_pb|5.033003||Viu
3832 IFTHEN_tb_p8|5.033003||Viu
3833 IFTHEN_tb_pb|5.033003||Viu
3834 I_GDBM|5.021007|5.021007|Vn
3835 I_GDBMNDBM|5.021007|5.021007|Vn
3836 IGNORE_PAT_MOD|5.009005||Viu
3837 I_GRP|5.003007|5.003007|Vn
3838 I_INTTYPES|5.006000|5.006000|Vn
3839 I_LANGINFO|5.007002|5.007002|Vn
3840 I_LIMITS|5.003007||Viu
3841 ILLEGAL_UTF8_BYTE|5.019004||Viu
3842 I_LOCALE|5.003007|5.003007|Vn
3843 I_MNTENT|5.023005|5.023005|Vn
3844 IN_BYTES|5.007002||Viu
13103845 incline|5.005000||Viu
3846 INCLUDE_PROTOTYPES|5.007001||Viu
3847 INCMARK|5.023005||Viu
13113848 incpush|5.005000||Viu
3849 INCPUSH_APPLLIB_EXP|5.027006||Viu
3850 INCPUSH_APPLLIB_OLD_EXP|5.027006||Viu
3851 INCPUSH_ARCHLIB_EXP|5.027006||Viu
13123852 incpush_if_exists|5.009003||Viu
3853 INCPUSH_PERL5LIB|5.027006||Viu
3854 INCPUSH_PERL_OTHERLIBDIRS|5.027006||Viu
3855 INCPUSH_PERL_OTHERLIBDIRS_ARCHONLY|5.027006||Viu
3856 INCPUSH_PERL_VENDORARCH_EXP|5.027006||Viu
3857 INCPUSH_PERL_VENDORLIB_EXP|5.027006||Viu
3858 INCPUSH_PERL_VENDORLIB_STEM|5.027006||Viu
3859 INCPUSH_PRIVLIB_EXP|5.027006||Viu
3860 INCPUSH_SITEARCH_EXP|5.027006||Viu
3861 INCPUSH_SITELIB_EXP|5.027006||Viu
3862 INCPUSH_SITELIB_STEM|5.027006||Viu
13133863 incpush_use_sep|5.011000||Viu
3864 I_NDBM|5.032001|5.032001|Vn
3865 inet_addr|5.005000||Viu
3866 I_NETDB|5.005000|5.005000|Vn
3867 I_NETINET_IN|5.003007|5.003007|Vn
3868 I_NETINET_TCP|5.006000|5.006000|Vn
3869 inet_ntoa|5.005000||Viu
3870 INFNAN_NV_U8_DECL|5.023000||Viu
3871 INFNAN_U8_NV_DECL|5.023000||Viu
13143872 ingroup|5.003007||Viu
3873 INIT|5.003007||Viu
13153874 init_argv_symbols|5.007003||Viu
13163875 init_constants|5.017003||Viu
13173876 init_dbargs|||iu
13183877 init_debugger|5.005000||Viu
1319 init_global_struct|5.009003||Vu
13203878 init_i18nl10n|5.006000||cVu
13213879 init_i18nl14n|5.006000||dcVu
13223880 initialize_invlist_guts|5.029002||Viu
13243882 init_interp|5.005000||Viu
13253883 init_main_stash|5.005000||Viu
13263884 init_named_cv|5.027010||cViu
3885 init_os_extras|5.005000||Viu
13273886 init_perllib|5.005000||Viu
13283887 init_postdump_symbols|5.005000||Viu
13293888 init_predump_symbols|5.005000||Viu
13303889 init_stacks|5.005000|5.005000|u
3890 INIT_THREADS|5.005000||Viu
13313891 init_tm|5.007002|5.007002|u
3892 INIT_TRACK_MEMPOOL|5.009004||Viu
13323893 init_uniprops|5.027011||Viu
3894 IN_LC|5.021001||Viu
3895 IN_LC_ALL_COMPILETIME|5.021001||Viu
3896 IN_LC_ALL_RUNTIME|5.021001||Viu
3897 IN_LC_COMPILETIME|5.021001||Viu
3898 IN_LC_PARTIAL_COMPILETIME|5.021001||Viu
3899 IN_LC_PARTIAL_RUNTIME|5.021001||Viu
3900 IN_LC_RUNTIME|5.021001||Viu
13333901 IN_LOCALE|5.007002|5.004000|p
13343902 IN_LOCALE_COMPILETIME|5.007002|5.004000|p
13353903 IN_LOCALE_RUNTIME|5.007002|5.004000|p
1336 IN_PERL_COMPILETIME|5.008001|5.003007|poVu
3904 IN_PERL_COMPILETIME|5.008001|5.003007|p
3905 IN_PERL_RUNTIME|5.008001|5.008001|
13373906 inplace_aassign|5.015003||Viu
3907 inRANGE|5.029010||Viu
3908 inRANGE_helper|5.033005||Viu
3909 IN_SOME_LOCALE_FORM|5.015008||Viu
3910 IN_SOME_LOCALE_FORM_COMPILETIME|5.015008||Viu
3911 IN_SOME_LOCALE_FORM_RUNTIME|5.015008||Viu
13383912 instr|5.003007|5.003007|n
3913 INSUBP|5.009005||Viu
3914 INSUBP_t8_p8|5.033003||Viu
3915 INSUBP_t8_pb|5.033003||Viu
3916 INSUBP_tb_p8|5.033003||Viu
3917 INSUBP_tb_pb|5.033003||Viu
3918 INT16_C|5.003007|5.003007|
13393919 INT2PTR|5.006000|5.003007|p
3920 INT32_C|5.003007|5.003007|
3921 INT32_MIN|5.007002||Viu
3922 INT64_C|5.023002|5.023002|
3923 INT64_MIN|5.007002||Viu
3924 INT_64_T|5.011000||Viu
3925 INTMAX_C|5.003007|5.003007|
3926 INT_PAT_MODS|5.009005||Viu
13403927 intro_my|5.004000|5.004000|
1341 INTSIZE|5.003007|5.003007|
3928 INTSIZE|5.003007|5.003007|Vn
13423929 intuit_method|5.005000||Viu
13433930 intuit_more|5.003007||Viu
3931 IN_UNI_8_BIT|5.011002||Viu
3932 IN_UTF8_CTYPE_LOCALE|5.019009||Viu
13443933 _inverse_folds|5.027011||cViu
13453934 invert|5.003007||Viu
1346 invlist_array|5.013010||nViu
1347 _invlist_array_init|5.015001||nViu
3935 invlist_array|5.013010||Vniu
3936 _invlist_array_init|5.015001||Vniu
13483937 invlist_clear|5.023009||Viu
13493938 invlist_clone|5.015001||cViu
1350 _invlist_contains_cp|5.017003||nViu
3939 _invlist_contains_cp|5.017003||Vniu
13513940 invlist_contents|5.023008||Viu
13523941 _invlist_dump|5.019003||cViu
13533942 _invlistEQ|5.023006||cViu
13543943 invlist_extend|5.013010||Viu
1355 invlist_highest|5.017002||nViu
3944 invlist_highest|5.017002||Vniu
13563945 _invlist_intersection|5.015001||Viu
13573946 _invlist_intersection_maybe_complement_2nd|5.015008||cViu
13583947 _invlist_invert|5.015001||cViu
1359 invlist_is_iterating|5.017008||nViu
1360 invlist_iterfinish|5.017008||nViu
1361 invlist_iterinit|5.015001||nViu
1362 invlist_iternext|5.015001||nViu
1363 _invlist_len|5.017004||nViu
1364 invlist_lowest|||nxViu
1365 invlist_max|5.013010||nViu
1366 invlist_previous_index|5.017004||nViu
3948 invlist_is_iterating|5.017008||Vniu
3949 invlist_iterfinish|5.017008||Vniu
3950 invlist_iterinit|5.015001||Vniu
3951 invlist_iternext|5.015001||Vniu
3952 _invlist_len|5.017004||Vniu
3953 invlist_lowest|5.031007||xVniu
3954 invlist_max|5.013010||Vniu
3955 invlist_previous_index|5.017004||Vniu
13673956 invlist_replace_list_destroys_src|5.023009||Viu
1368 _invlist_search|5.017003||ncViu
3957 _invlist_search|5.017003||cVniu
13693958 invlist_set_len|5.013010||Viu
1370 invlist_set_previous_index|5.017004||nViu
3959 invlist_set_previous_index|5.017004||Vniu
13713960 _invlist_subtract|5.015001||Viu
1372 invlist_trim|5.013010||nViu
3961 invlist_trim|5.013010||Vniu
13733962 _invlist_union|5.015001||cVu
13743963 _invlist_union_maybe_complement_2nd|5.015008||cViu
13753964 invmap_dump|5.031006||Viu
13763965 invoke_exception_hook|5.013001||Viu
3966 IoANY|5.006001||Viu
3967 IoBOTTOM_GV|5.003007||Viu
3968 IoBOTTOM_NAME|5.003007||Viu
13773969 io_close|5.003007||Viu
3970 IOCPARM_LEN|5.003007||Viu
3971 ioctl|5.005000||Viu
3972 IoDIRP|5.003007||Viu
3973 IOf_ARGV|5.003007||Viu
3974 IOf_DIDTOP|5.003007||Viu
3975 IOf_FAKE_DIRP|5.006000||Viu
3976 IOf_FLUSH|5.003007||Viu
3977 IoFLAGS|5.003007||Viu
3978 IoFMT_GV|5.003007||Viu
3979 IoFMT_NAME|5.003007||Viu
3980 IOf_NOLINE|5.005003||Viu
3981 IOf_START|5.003007||Viu
3982 IOf_UNTAINT|5.003007||Viu
3983 IoIFP|5.003007||Viu
3984 IoLINES|5.003007||Viu
3985 IoLINES_LEFT|5.003007||Viu
3986 IoOFP|5.003007||Viu
3987 IoPAGE|5.003007||Viu
3988 IoPAGE_LEN|5.003007||Viu
3989 IoTOP_GV|5.003007||Viu
3990 IoTOP_NAME|5.003007||Viu
3991 IoTYPE|5.003007||Viu
3992 IoTYPE_APPEND|5.006001||Viu
3993 IoTYPE_CLOSED|5.006001||Viu
3994 IoTYPE_IMPLICIT|5.008001||Viu
3995 IoTYPE_NUMERIC|5.008001||Viu
3996 IoTYPE_PIPE|5.006001||Viu
3997 IoTYPE_RDONLY|5.006001||Viu
3998 IoTYPE_RDWR|5.006001||Viu
3999 IoTYPE_SOCKET|5.006001||Viu
4000 IoTYPE_STD|5.006001||Viu
4001 IoTYPE_WRONLY|5.006001||Viu
4002 I_POLL|5.006000|5.006000|Vn
4003 I_PTHREAD|5.005003|5.005003|Vn
4004 I_PWD|5.003007|5.003007|Vn
13784005 isALNUM|5.003007|5.003007|p
13794006 isALNUM_A|5.031003|5.003007|p
13804007 isALNUMC|5.006000|5.003007|p
13814008 isALNUMC_A|5.013006|5.003007|p
13824009 isALNUMC_L1|5.013006|5.003007|p
13834010 isALNUMC_LC|5.006000|5.006000|
4011 isALNUMC_LC_utf8_safe|5.031007||Viu
13844012 isALNUMC_LC_uvchr|5.017007|5.017007|
4013 isALNUMC_uni|5.017007||Viu
4014 isALNUMC_utf8|5.017007||Viu
4015 isALNUMC_utf8_safe|5.031007||Viu
4016 isALNUM_lazy_if_safe|5.031007||Viu
13854017 isALNUM_LC|5.004000|5.004000|
4018 isALNUM_LC_utf8|5.006000||Viu
4019 isALNUM_LC_utf8_safe|5.031007||Viu
13864020 isALNUM_LC_uvchr|5.007001|5.007001|
4021 isALNUMU|5.011005||Viu
4022 isALNUM_uni|5.006000||Viu
4023 isALNUM_utf8|5.006000||Viu
4024 isALNUM_utf8_safe|5.031007||Viu
13874025 isa_lookup|5.005000||Viu
13884026 isALPHA|5.003007|5.003007|p
13894027 isALPHA_A|5.013006|5.003007|p
4028 isALPHA_FOLD_EQ|5.021004||Viu
4029 isALPHA_FOLD_NE|5.021004||Viu
13904030 isALPHA_L1|5.013006|5.003007|p
13914031 isALPHA_LC|5.004000|5.004000|
4032 isALPHA_LC_utf8|5.006000||Viu
13924033 isALPHA_LC_utf8_safe|5.025009|5.006000|p
13934034 isALPHA_LC_uvchr|5.007001|5.007001|
13944035 isALPHANUMERIC|5.017008|5.003007|p
13954036 isALPHANUMERIC_A|5.017008|5.003007|p
13964037 isALPHANUMERIC_L1|5.017008|5.003007|p
13974038 isALPHANUMERIC_LC|5.017008|5.004000|p
4039 isALPHANUMERIC_LC_utf8|5.017008||Viu
13984040 isALPHANUMERIC_LC_utf8_safe|5.025009|5.006000|p
13994041 isALPHANUMERIC_LC_uvchr|5.017008|5.017008|
4042 isALPHANUMERIC_uni|5.017008||Viu
14004043 isALPHANUMERIC_utf8|5.031005|5.031005|
14014044 isALPHANUMERIC_utf8_safe|5.025009|5.006000|p
14024045 isALPHANUMERIC_uvchr|5.023009|5.006000|p
4046 isALPHAU|5.011005||Viu
4047 isALPHA_uni|5.006000||Viu
14034048 isALPHA_utf8|5.031005|5.031005|
14044049 isALPHA_utf8_safe|5.025009|5.006000|p
14054050 isALPHA_uvchr|5.023009|5.006000|p
14064051 is_an_int|5.005000||Viu
4052 is_ANYOF_SYNTHETIC|5.019009||Viu
4053 IS_ANYOF_TRIE|5.009005||Viu
14074054 isASCII|5.006000|5.003007|p
14084055 isASCII_A|5.013006|5.003007|p
14094056 isASCII_L1|5.015004|5.003007|p
14104057 isASCII_LC|5.015008|5.003007|p
4058 isASCII_LC_utf8|5.017007||Viu
14114059 isASCII_LC_utf8_safe|5.025009|5.025009|
14124060 isASCII_LC_uvchr|5.017007|5.017007|
14134061 is_ascii_string|5.011000|5.011000|n
4062 isASCII_uni|5.006000||Viu
14144063 isASCII_utf8|5.031005|5.031005|
14154064 isASCII_utf8_safe|5.025009|5.003007|p
14164065 isASCII_uvchr|5.023009|5.003007|p
4066 isatty|5.005000||Viu
4067 ISA_VERSION_OBJ|5.019008||Viu
14174068 isBLANK|5.006001|5.003007|p
14184069 isBLANK_A|5.013006|5.003007|p
14194070 isBLANK_L1|5.013006|5.003007|p
14204071 isBLANK_LC|5.006001|5.003007|p
4072 isBLANK_LC_uni|5.006001||Viu
4073 isBLANK_LC_utf8|5.006001||Viu
14214074 isBLANK_LC_utf8_safe|5.025009|5.006000|p
14224075 isBLANK_LC_uvchr|5.017007|5.017007|
4076 isBLANK_uni|5.006001||Viu
14234077 isBLANK_utf8|5.031005|5.031005|
14244078 isBLANK_utf8_safe|5.025009|5.006000|p
14254079 isBLANK_uvchr|5.023009|5.006000|p
14264080 isC9_STRICT_UTF8_CHAR|5.025005|5.025005|n
4081 is_C9_STRICT_UTF8_CHAR_utf8_no_length_checks|5.025005||Viu
4082 is_C9_STRICT_UTF8_CHAR_utf8_no_length_checks_part0|5.025008||Viu
4083 is_C9_STRICT_UTF8_CHAR_utf8_no_length_checks_part1|5.025008||Viu
14274084 is_c9strict_utf8_string|5.025006|5.025006|n
14284085 is_c9strict_utf8_string_loc|5.025006|5.025006|n
14294086 is_c9strict_utf8_string_loclen|5.025006|5.025006|n
4087 isCHARNAME_CONT|5.011005||Viu
14304088 isCNTRL|5.006000|5.003007|p
14314089 isCNTRL_A|5.013006|5.003007|p
14324090 isCNTRL_L1|5.013006|5.003007|p
14334091 isCNTRL_LC|5.006000|5.006000|
4092 isCNTRL_LC_utf8|5.006000||Viu
14344093 isCNTRL_LC_utf8_safe|5.025009|5.006000|p
14354094 isCNTRL_LC_uvchr|5.007001|5.007001|
4095 isCNTRL_uni|5.006000||Viu
14364096 isCNTRL_utf8|5.031005|5.031005|
14374097 isCNTRL_utf8_safe|5.025009|5.006000|p
14384098 isCNTRL_uvchr|5.023009|5.006000|p
14394099 _is_cur_LC_category_utf8|5.021001||cVu
4100 isDEBUG_WILDCARD|5.031011||Viu
14404101 isDIGIT|5.003007|5.003007|p
14414102 isDIGIT_A|5.013006|5.003007|p
14424103 isDIGIT_L1|5.013006|5.003007|p
14434104 isDIGIT_LC|5.004000|5.004000|
4105 isDIGIT_LC_utf8|5.006000||Viu
14444106 isDIGIT_LC_utf8_safe|5.025009|5.006000|p
14454107 isDIGIT_LC_uvchr|5.007001|5.007001|
4108 isDIGIT_uni|5.006000||Viu
14464109 isDIGIT_utf8|5.031005|5.031005|
14474110 isDIGIT_utf8_safe|5.025009|5.006000|p
14484111 isDIGIT_uvchr|5.023009|5.006000|p
1449 isFF_OVERLONG|5.025007||nViu
1450 isFOO_lc|5.017007||cViu
4112 isEXACTFish|5.033003||Viu
4113 isEXACT_REQ8|5.033003||Viu
4114 isFF_OVERLONG|5.025007||Vniu
4115 is_FOLDS_TO_MULTI_utf8|5.019009||Viu
4116 isFOO_lc|5.017007||Viu
14514117 isFOO_utf8_lc|5.017008||Viu
14524118 isGCB|5.021009||Viu
14534119 isGRAPH|5.006000|5.003007|p
14544120 isGRAPH_A|5.013006|5.003007|p
1455 is_grapheme|||Viu
4121 is_grapheme|5.031007||Viu
14564122 isGRAPH_L1|5.013006|5.003007|p
14574123 isGRAPH_LC|5.006000|5.006000|
4124 isGRAPH_LC_utf8|5.006000||Viu
14584125 isGRAPH_LC_utf8_safe|5.025009|5.006000|p
14594126 isGRAPH_LC_uvchr|5.007001|5.007001|
4127 isGRAPH_uni|5.006000||Viu
14604128 isGRAPH_utf8|5.031005|5.031005|
14614129 isGRAPH_utf8_safe|5.025009|5.006000|p
14624130 isGRAPH_uvchr|5.023009|5.006000|p
1463 isGV_with_GP|5.009004||pVu
1464 is_handle_constructor|5.006000||nViu
4131 isGV|5.003007||Viu
4132 isGV_or_RVCV|5.027005||Viu
4133 isGV_with_GP|5.009004|5.003007|p
4134 isGV_with_GP_off|5.009005||Viu
4135 isGV_with_GP_on|5.009005||Viu
4136 I_SHADOW|5.006000|5.006000|Vn
4137 is_handle_constructor|5.006000||Vniu
4138 is_HANGUL_ED_utf8_safe|5.029001||Viu
4139 is_HORIZWS_cp_high|5.017006||Viu
4140 is_HORIZWS_high|5.017006||Viu
14654141 isIDCONT|5.017008|5.003007|p
14664142 isIDCONT_A|5.017008|5.003007|p
14674143 isIDCONT_L1|5.017008|5.003007|p
14684144 isIDCONT_LC|5.017008|5.004000|p
4145 isIDCONT_LC_utf8|5.017008||Viu
14694146 isIDCONT_LC_utf8_safe|5.025009|5.006000|p
14704147 isIDCONT_LC_uvchr|5.017008|5.017008|
4148 isIDCONT_uni|5.017008||Viu
14714149 isIDCONT_utf8|5.031005|5.031005|
14724150 isIDCONT_utf8_safe|5.025009|5.006000|p
14734151 isIDCONT_uvchr|5.023009|5.006000|p
14744152 isIDFIRST|5.003007|5.003007|p
14754153 isIDFIRST_A|5.013006|5.003007|p
14764154 isIDFIRST_L1|5.013006|5.003007|p
4155 isIDFIRST_lazy_if_safe|5.025009||Viu
14774156 isIDFIRST_LC|5.004000|5.004000|p
4157 isIDFIRST_LC_utf8|5.006000||Viu
14784158 isIDFIRST_LC_utf8_safe|5.025009|5.006000|p
14794159 isIDFIRST_LC_uvchr|5.007001|5.007001|
4160 isIDFIRST_uni|5.006000||Viu
14804161 isIDFIRST_utf8|5.031005|5.031005|
14814162 isIDFIRST_utf8_safe|5.025009|5.006000|p
14824163 isIDFIRST_uvchr|5.023009|5.006000|p
14834164 isinfnan|5.021004|5.021004|n
14844165 isinfnansv|5.021005||Vi
14854166 _is_in_locale_category|5.021001||cViu
4167 IS_IN_SOME_FOLD_L1|5.033005||Viu
14864168 is_invariant_string|5.021007|5.011000|pn
1487 is_invlist|5.029002||nViu
4169 is_invlist|5.029002||Vniu
4170 is_LAX_VERSION|5.011004||Viu
14884171 isLB|5.023007||Viu
4172 isLEXWARN_off|5.006000||Viu
4173 isLEXWARN_on|5.006000||Viu
4174 is_LNBREAK_latin1_safe|5.009005||Viu
4175 is_LNBREAK_safe|5.009005||Viu
4176 is_LNBREAK_utf8_safe|5.009005||Viu
14894177 isLOWER|5.003007|5.003007|p
14904178 isLOWER_A|5.013006|5.003007|p
14914179 isLOWER_L1|5.013006|5.003007|p
14924180 isLOWER_LC|5.004000|5.004000|
4181 isLOWER_LC_utf8|5.006000||Viu
14934182 isLOWER_LC_utf8_safe|5.025009|5.006000|p
14944183 isLOWER_LC_uvchr|5.007001|5.007001|
4184 isLOWER_uni|5.006000||Viu
14954185 isLOWER_utf8|5.031005|5.031005|
14964186 isLOWER_utf8_safe|5.025009|5.006000|p
14974187 isLOWER_uvchr|5.023009|5.006000|p
14984188 is_lvalue_sub|5.007001|5.007001|u
4189 isMNEMONIC_CNTRL|5.031009||Viu
4190 is_MULTI_CHAR_FOLD_latin1_safe|5.019010||Viu
4191 is_MULTI_CHAR_FOLD_utf8_safe|5.019010||Viu
4192 is_MULTI_CHAR_FOLD_utf8_safe_part0|5.019010||Viu
4193 is_MULTI_CHAR_FOLD_utf8_safe_part1|5.019010||Viu
4194 is_MULTI_CHAR_FOLD_utf8_safe_part2|5.025008||Viu
4195 is_MULTI_CHAR_FOLD_utf8_safe_part3|5.025008||Viu
4196 is_NONCHAR_utf8_safe|5.025005||Viu
4197 IS_NON_FINAL_FOLD|5.033005||Viu
4198 isnormal|5.021004||Viu
14994199 IS_NUMBER_GREATER_THAN_UV_MAX|5.007002|5.003007|p
15004200 IS_NUMBER_INFINITY|5.007002|5.003007|p
15014201 IS_NUMBER_IN_UV|5.007002|5.003007|p
15024202 IS_NUMBER_NAN|5.007003|5.003007|p
15034203 IS_NUMBER_NEG|5.007002|5.003007|p
15044204 IS_NUMBER_NOT_INT|5.007002|5.003007|p
4205 IS_NUMBER_TRAILING|5.021002||Viu
4206 IS_NUMERIC_RADIX|5.006000||Viu
15054207 isOCTAL|5.013005|5.003007|p
15064208 isOCTAL_A|5.013006|5.003007|p
15074209 isOCTAL_L1|5.013006|5.003007|p
4210 IS_PADCONST|5.006000||Viu
4211 IS_PADGV|5.006000||Viu
4212 is_PATWS_safe|5.017008||Viu
4213 isPOWER_OF_2|5.029006||Viu
15084214 isPRINT|5.004000|5.003007|p
15094215 isPRINT_A|5.013006|5.003007|p
15104216 isPRINT_L1|5.013006|5.003007|p
15114217 isPRINT_LC|5.004000|5.004000|
4218 isPRINT_LC_utf8|5.006000||Viu
15124219 isPRINT_LC_utf8_safe|5.025009|5.006000|p
15134220 isPRINT_LC_uvchr|5.007001|5.007001|
4221 isPRINT_uni|5.006000||Viu
15144222 isPRINT_utf8|5.031005|5.031005|
15154223 isPRINT_utf8_safe|5.025009|5.006000|p
15164224 isPRINT_uvchr|5.023009|5.006000|p
4225 is_PROBLEMATIC_LOCALE_FOLD_cp|5.019009||Viu
4226 is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp|5.019009||Viu
4227 is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8|5.019009||Viu
4228 is_PROBLEMATIC_LOCALE_FOLD_utf8|5.019009||Viu
15174229 isPSXSPC|5.006001|5.003007|p
15184230 isPSXSPC_A|5.013006|5.003007|p
15194231 isPSXSPC_L1|5.013006|5.003007|p
15204232 isPSXSPC_LC|5.006001|5.006001|
4233 isPSXSPC_LC_utf8|5.006001||Viu
15214234 isPSXSPC_LC_utf8_safe|5.025009|5.006000|p
15224235 isPSXSPC_LC_uvchr|5.017007|5.017007|
4236 isPSXSPC_uni|5.006001||Viu
15234237 isPSXSPC_utf8|5.031005|5.031005|
15244238 isPSXSPC_utf8_safe|5.025009|5.006000|p
15254239 isPSXSPC_uvchr|5.023009|5.006000|p
15274241 isPUNCT_A|5.013006|5.003007|p
15284242 isPUNCT_L1|5.013006|5.003007|p
15294243 isPUNCT_LC|5.006000|5.006000|
4244 isPUNCT_LC_utf8|5.006000||Viu
15304245 isPUNCT_LC_utf8_safe|5.025009|5.006000|p
15314246 isPUNCT_LC_uvchr|5.007001|5.007001|
4247 isPUNCT_uni|5.006000||Viu
15324248 isPUNCT_utf8|5.031005|5.031005|
15334249 isPUNCT_utf8_safe|5.025009|5.006000|p
15344250 isPUNCT_uvchr|5.023009|5.006000|p
4251 is_QUOTEMETA_high|5.017004||Viu
4252 is_QUOTEMETA_high_part0|5.021001||Viu
4253 is_QUOTEMETA_high_part1|5.021001||Viu
4254 isREGEXP|5.017006||Viu
4255 IS_SAFE_PATHNAME|5.019004||Viu
15354256 IS_SAFE_SYSCALL|5.019004|5.019004|
15364257 is_safe_syscall|5.019004|5.019004|
15374258 isSB|5.021009||Viu
15404261 isSPACE_A|5.013006|5.003007|p
15414262 isSPACE_L1|5.013006|5.003007|p
15424263 isSPACE_LC|5.004000|5.004000|
4264 isSPACE_LC_utf8|5.006000||Viu
15434265 isSPACE_LC_utf8_safe|5.025009|5.006000|p
15444266 isSPACE_LC_uvchr|5.007001|5.007001|
4267 isSPACE_uni|5.006000||Viu
15454268 isSPACE_utf8|5.031005|5.031005|
15464269 isSPACE_utf8_safe|5.025009|5.006000|p
15474270 isSPACE_uvchr|5.023009|5.006000|p
1548 is_ssc_worth_it|5.021005||nViu
4271 is_ssc_worth_it|5.021005||Vniu
15494272 isSTRICT_UTF8_CHAR|5.025005|5.025005|n
4273 is_STRICT_UTF8_CHAR_utf8_no_length_checks|5.025005||Viu
4274 is_STRICT_UTF8_CHAR_utf8_no_length_checks_part0|5.025005||Viu
4275 is_STRICT_UTF8_CHAR_utf8_no_length_checks_part1|5.025005||Viu
4276 is_STRICT_UTF8_CHAR_utf8_no_length_checks_part2|5.025008||Viu
4277 is_STRICT_UTF8_CHAR_utf8_no_length_checks_part3|5.025008||Viu
15504278 is_strict_utf8_string|5.025006|5.025006|n
15514279 is_strict_utf8_string_loc|5.025006|5.025006|n
15524280 is_strict_utf8_string_loclen|5.025006|5.025006|n
4281 is_STRICT_VERSION|5.011004||Viu
4282 is_SURROGATE_utf8_safe|5.025005||Viu
4283 I_STDARG|5.003007||Viu
4284 I_STDBOOL|5.015003|5.015003|Vn
4285 I_STDINT|5.021004|5.021004|Vn
4286 is_THREE_CHAR_FOLD_HEAD_latin1_safe|5.031007||Viu
4287 is_THREE_CHAR_FOLD_HEAD_utf8_safe|5.031007||Viu
4288 is_THREE_CHAR_FOLD_latin1_safe|5.031007||Viu
4289 is_THREE_CHAR_FOLD_utf8_safe|5.031007||Viu
4290 IS_TRIE_AC|5.009005||Viu
15534291 _is_uni_FOO|5.017008||cVu
15544292 _is_uni_perl_idcont|5.017008||cVu
15554293 _is_uni_perl_idstart|5.017007||cVu
15574295 isUPPER_A|5.013006|5.003007|p
15584296 isUPPER_L1|5.013006|5.003007|p
15594297 isUPPER_LC|5.004000|5.004000|
4298 isUPPER_LC_utf8|5.006000||Viu
15604299 isUPPER_LC_utf8_safe|5.025009|5.006000|p
15614300 isUPPER_LC_uvchr|5.007001|5.007001|
4301 isUPPER_uni|5.006000||Viu
15624302 isUPPER_utf8|5.031005|5.031005|
15634303 isUPPER_utf8_safe|5.025009|5.006000|p
15644304 isUPPER_uvchr|5.023009|5.006000|p
1565 is_utf8_char|5.006000|5.006000|nd
4305 is_utf8_char|5.006000|5.006000|dn
4306 IS_UTF8_CHAR|5.009003||Viu
15664307 isUTF8_CHAR|5.021001|5.006001|pn
15674308 is_utf8_char_buf|5.015008|5.015008|n
15684309 isUTF8_CHAR_flags|5.025005|5.025005|
1569 is_utf8_char_helper|5.031004||ncVu
4310 is_utf8_char_helper|5.031004||cVnu
4311 is_UTF8_CHAR_utf8_no_length_checks|5.021001||Viu
15704312 is_utf8_common|5.009003||Viu
1571 is_utf8_cp_above_31_bits|5.025005||nViu
4313 is_utf8_cp_above_31_bits|5.025005||Vniu
15724314 is_utf8_fixed_width_buf_flags|5.025006|5.025006|n
15734315 is_utf8_fixed_width_buf_loc_flags|5.025006|5.025006|n
15744316 is_utf8_fixed_width_buf_loclen_flags|5.025006|5.025006|n
15754317 _is_utf8_FOO|5.031006||cVu
15764318 is_utf8_invariant_string|5.025005|5.011000|pn
15774319 is_utf8_invariant_string_loc|5.027001|5.027001|n
1578 is_utf8_non_invariant_string|5.027007||ncVi
1579 is_utf8_overlong_given_start_byte_ok|5.025006||nViu
4320 is_utf8_non_invariant_string|5.027007||cVni
4321 is_utf8_overlong_given_start_byte_ok|5.025006||Vniu
15804322 _is_utf8_perl_idcont|5.031006||cVu
15814323 _is_utf8_perl_idstart|5.031006||cVu
4324 isUTF8_POSSIBLY_PROBLEMATIC|5.023003||Viu
15824325 is_utf8_string|5.006001|5.006001|n
15834326 is_utf8_string_flags|5.025006|5.025006|n
15844327 is_utf8_string_loc|5.008001|5.008001|n
15874330 is_utf8_string_loclen_flags|5.025006|5.025006|n
15884331 is_utf8_valid_partial_char|5.025005|5.025005|n
15894332 is_utf8_valid_partial_char_flags|5.025005|5.025005|n
4333 is_VERTWS_cp_high|5.017006||Viu
4334 is_VERTWS_high|5.017006||Viu
4335 isVERTWS_uni|5.017006||Viu
4336 isVERTWS_utf8|5.017006||Viu
4337 isVERTWS_utf8_safe|5.025009||Viu
4338 isVERTWS_uvchr|5.023009||Viu
4339 isWARNf_on|5.006001||Viu
4340 isWARN_on|5.006000||Viu
4341 isWARN_ONCE|5.006000||Viu
15904342 isWB|5.021009||Viu
15914343 isWORDCHAR|5.013006|5.003007|p
15924344 isWORDCHAR_A|5.013006|5.003007|p
15934345 isWORDCHAR_L1|5.013006|5.003007|p
4346 isWORDCHAR_lazy_if_safe|5.025009||Viu
15944347 isWORDCHAR_LC|5.017007|5.004000|p
4348 isWORDCHAR_LC_utf8|5.017007||Viu
15954349 isWORDCHAR_LC_utf8_safe|5.025009|5.006000|p
15964350 isWORDCHAR_LC_uvchr|5.017007|5.017007|
4351 isWORDCHAR_uni|5.017006||Viu
15974352 isWORDCHAR_utf8|5.031005|5.031005|
15984353 isWORDCHAR_utf8_safe|5.025009|5.006000|p
15994354 isWORDCHAR_uvchr|5.023009|5.006000|p
16004355 isXDIGIT|5.006000|5.003007|p
16014356 isXDIGIT_A|5.013006|5.003007|p
4357 is_XDIGIT_cp_high|5.017006||Viu
4358 is_XDIGIT_high|5.017006||Viu
16024359 isXDIGIT_L1|5.013006|5.003007|p
16034360 isXDIGIT_LC|5.017007|5.003007|p
4361 isXDIGIT_LC_utf8|5.017007||Viu
16044362 isXDIGIT_LC_utf8_safe|5.025009|5.006000|p
16054363 isXDIGIT_LC_uvchr|5.017007|5.017007|
4364 isXDIGIT_uni|5.006000||Viu
16064365 isXDIGIT_utf8|5.031005|5.031005|
16074366 isXDIGIT_utf8_safe|5.025009|5.006000|p
16084367 isXDIGIT_uvchr|5.023009|5.006000|p
1609 items|5.003007|5.003007|V
1610 IVdf|5.006000|5.003007|p
1611 IVSIZE|5.006000|5.003007|p
1612 IVTYPE|5.006000|5.003007|p
1613 ix|5.003007|5.003007|V
4368 is_XPERLSPACE_cp_high|5.017006||Viu
4369 is_XPERLSPACE_high|5.017006||Viu
4370 I_SYS_DIR|5.003007|5.003007|Vn
4371 I_SYS_FILE|5.003007|5.003007|Vn
4372 I_SYS_IOCTL|5.003007|5.003007|Vn
4373 I_SYSLOG|5.006000|5.006000|Vn
4374 I_SYS_MOUNT|5.023005|5.023005|Vn
4375 I_SYS_PARAM|5.003007|5.003007|Vn
4376 I_SYS_POLL|5.010001|5.010001|Vn
4377 I_SYS_RESOURCE|5.003007|5.003007|Vn
4378 I_SYS_SELECT|5.003007|5.003007|Vn
4379 I_SYS_STAT|5.003007|5.003007|Vn
4380 I_SYS_STATFS|5.023005|5.023005|Vn
4381 I_SYS_STATVFS|5.023005|5.023005|Vn
4382 I_SYS_TIME|5.003007|5.003007|Vn
4383 I_SYS_TIMES|5.003007|5.003007|Vn
4384 I_SYS_TYPES|5.003007|5.003007|Vn
4385 I_SYSUIO|5.006000|5.006000|Vn
4386 I_SYS_UN|5.003007|5.003007|Vn
4387 I_SYSUTSNAME|5.006000|5.006000|Vn
4388 I_SYS_VFS|5.023005|5.023005|Vn
4389 I_SYS_WAIT|5.003007|5.003007|Vn
4390 items||5.003007|
4391 I_TERMIOS|5.003007|5.003007|Vn
4392 I_TIME|5.003007|5.003007|Vn
4393 I_UNISTD|5.003007|5.003007|Vn
4394 I_USTAT|5.023005|5.023005|Vn
4395 I_UTIME|5.003007|5.003007|Vn
4396 I_V|5.006000|5.003007|
4397 IVdf|5.006000|5.003007|poVn
4398 IV_DIG|5.006000||Viu
4399 IV_IS_QUAD|5.006000||Viu
4400 IV_MAX|5.003007|5.003007|
4401 IV_MAX_P1|5.007002||Viu
4402 IV_MIN|5.003007|5.003007|
4403 IVSIZE|5.006000|5.003007|poVn
4404 IVTYPE|5.006000|5.003007|poVn
4405 I_WCHAR|5.027006|5.027006|Vn
4406 I_WCTYPE|5.029009|5.029009|Vn
4407 ix||5.003007|
4408 I_XLOCALE|5.025004|5.025004|Vn
4409 JE_OLD_STACK_HWM_restore|5.027002||Viu
4410 JE_OLD_STACK_HWM_save|5.027002||Viu
4411 JE_OLD_STACK_HWM_zero|5.027002||Viu
16144412 jmaybe|5.003007||Viu
4413 JMPENV_BOOTSTRAP|5.006000||Viu
4414 JMPENV_JUMP|5.004000|5.004000|
4415 JMPENV_POP|5.004000||Viu
4416 JMPENV_PUSH|5.004000||Viu
4417 JOIN|5.005000||Viu
16154418 join_exact|5.009004||Viu
4419 kBINOP|5.003007||Viu
4420 kCOP|5.003007||Viu
4421 KEEPCOPY_PAT_MOD|5.009005||Viu
4422 KEEPCOPY_PAT_MODS|5.009005||Viu
4423 KEEPS|5.009005||Viu
4424 KEEPS_next|5.009005||Viu
4425 KEEPS_next_fail|5.009005||Viu
4426 KEEPS_next_fail_t8_p8|5.033003||Viu
4427 KEEPS_next_fail_t8_pb|5.033003||Viu
4428 KEEPS_next_fail_tb_p8|5.033003||Viu
4429 KEEPS_next_fail_tb_pb|5.033003||Viu
4430 KEEPS_next_t8_p8|5.033003||Viu
4431 KEEPS_next_t8_pb|5.033003||Viu
4432 KEEPS_next_tb_p8|5.033003||Viu
4433 KEEPS_next_tb_pb|5.033003||Viu
4434 KEEPS_t8_p8|5.033003||Viu
4435 KEEPS_t8_pb|5.033003||Viu
4436 KEEPS_tb_p8|5.033003||Viu
4437 KEEPS_tb_pb|5.033003||Viu
4438 KELVIN_SIGN|5.017003||Viu
4439 KERNEL|5.003007||Viu
4440 KEY_abs|5.003007||Viu
4441 KEY_accept|5.003007||Viu
4442 KEY_alarm|5.003007||Viu
4443 KEY_and|5.003007||Viu
4444 KEY_atan2|5.003007||Viu
4445 KEY_AUTOLOAD|5.003007||Viu
4446 KEY_BEGIN|5.003007||Viu
4447 KEY_bind|5.003007||Viu
4448 KEY_binmode|5.003007||Viu
4449 KEY_bless|5.003007||Viu
4450 KEY_break|5.027008||Viu
4451 KEY_caller|5.003007||Viu
4452 KEY_catch|5.033007||Viu
4453 KEY_chdir|5.003007||Viu
4454 KEY_CHECK|5.006000||Viu
4455 KEY_chmod|5.003007||Viu
4456 KEY_chomp|5.003007||Viu
4457 KEY_chop|5.003007||Viu
4458 KEY_chown|5.003007||Viu
4459 KEY_chr|5.003007||Viu
4460 KEY_chroot|5.003007||Viu
4461 KEY_close|5.003007||Viu
4462 KEY_closedir|5.003007||Viu
4463 KEY_cmp|5.003007||Viu
4464 KEY_connect|5.003007||Viu
4465 KEY_continue|5.003007||Viu
4466 KEY_cos|5.003007||Viu
4467 KEY_crypt|5.003007||Viu
4468 KEY___DATA|5.003007||Viu
4469 KEY_dbmclose|5.003007||Viu
4470 KEY_dbmopen|5.003007||Viu
4471 KEY_default|5.027008||Viu
4472 KEY_defined|5.003007||Viu
4473 KEY_delete|5.003007||Viu
4474 KEY_DESTROY|5.003007||Viu
4475 KEY_die|5.003007||Viu
4476 KEY_do|5.003007||Viu
4477 KEY_dump|5.003007||Viu
4478 KEY_each|5.003007||Viu
4479 KEY_else|5.003007||Viu
4480 KEY_elsif|5.003007||Viu
4481 KEY___END|5.003007||Viu
4482 KEY_END|5.003007||Viu
4483 KEY_endgrent|5.003007||Viu
4484 KEY_endhostent|5.003007||Viu
4485 KEY_endnetent|5.003007||Viu
4486 KEY_endprotoent|5.003007||Viu
4487 KEY_endpwent|5.003007||Viu
4488 KEY_endservent|5.003007||Viu
4489 KEY_eof|5.003007||Viu
4490 KEY_eq|5.003007||Viu
4491 KEY_eval|5.003007||Viu
4492 KEY_evalbytes|5.015005||Viu
4493 KEY_exec|5.003007||Viu
4494 KEY_exists|5.003007||Viu
4495 KEY_exit|5.003007||Viu
4496 KEY_exp|5.003007||Viu
4497 KEY_fc|5.015008||Viu
4498 KEY_fcntl|5.003007||Viu
4499 KEY___FILE|5.003007||Viu
4500 KEY_fileno|5.003007||Viu
4501 KEY_flock|5.003007||Viu
4502 KEY_for|5.003007||Viu
4503 KEY_foreach|5.003007||Viu
4504 KEY_fork|5.003007||Viu
4505 KEY_format|5.003007||Viu
4506 KEY_formline|5.003007||Viu
4507 KEY_ge|5.003007||Viu
4508 KEY_getc|5.003007||Viu
4509 KEY_getgrent|5.003007||Viu
4510 KEY_getgrgid|5.003007||Viu
4511 KEY_getgrnam|5.003007||Viu
4512 KEY_gethostbyaddr|5.003007||Viu
4513 KEY_gethostbyname|5.003007||Viu
4514 KEY_gethostent|5.003007||Viu
4515 KEY_getlogin|5.003007||Viu
4516 KEY_getnetbyaddr|5.003007||Viu
4517 KEY_getnetbyname|5.003007||Viu
4518 KEY_getnetent|5.003007||Viu
4519 KEY_getpeername|5.003007||Viu
4520 KEY_getpgrp|5.003007||Viu
4521 KEY_getppid|5.003007||Viu
4522 KEY_getpriority|5.003007||Viu
4523 KEY_getprotobyname|5.003007||Viu
4524 KEY_getprotobynumber|5.003007||Viu
4525 KEY_getprotoent|5.003007||Viu
4526 KEY_getpwent|5.003007||Viu
4527 KEY_getpwnam|5.003007||Viu
4528 KEY_getpwuid|5.003007||Viu
4529 KEY_getservbyname|5.003007||Viu
4530 KEY_getservbyport|5.003007||Viu
4531 KEY_getservent|5.003007||Viu
4532 KEY_getsockname|5.003007||Viu
4533 KEY_getsockopt|5.003007||Viu
4534 KEY_getspnam|5.031011||Viu
4535 KEY_given|5.009003||Viu
4536 KEY_glob|5.003007||Viu
4537 KEY_gmtime|5.003007||Viu
4538 KEY_goto|5.003007||Viu
4539 KEY_grep|5.003007||Viu
4540 KEY_gt|5.003007||Viu
4541 KEY_hex|5.003007||Viu
4542 KEY_if|5.003007||Viu
4543 KEY_index|5.003007||Viu
4544 KEY_INIT|5.005000||Viu
4545 KEY_int|5.003007||Viu
4546 KEY_ioctl|5.003007||Viu
4547 KEY_isa|5.031007||Viu
4548 KEY_join|5.003007||Viu
4549 KEY_keys|5.003007||Viu
4550 KEY_kill|5.003007||Viu
4551 KEY_last|5.003007||Viu
4552 KEY_lc|5.003007||Viu
4553 KEY_lcfirst|5.003007||Viu
4554 KEY_le|5.003007||Viu
4555 KEY_length|5.003007||Viu
4556 KEY___LINE|5.003007||Viu
4557 KEY_link|5.003007||Viu
4558 KEY_listen|5.003007||Viu
4559 KEY_local|5.003007||Viu
4560 KEY_localtime|5.003007||Viu
4561 KEY_lock|5.005000||Viu
4562 KEY_log|5.003007||Viu
4563 KEY_lstat|5.003007||Viu
4564 KEY_lt|5.003007||Viu
4565 KEY_m|5.003007||Viu
4566 KEY_map|5.003007||Viu
4567 KEY_mkdir|5.003007||Viu
4568 KEY_msgctl|5.003007||Viu
4569 KEY_msgget|5.003007||Viu
4570 KEY_msgrcv|5.003007||Viu
4571 KEY_msgsnd|5.003007||Viu
4572 KEY_my|5.003007||Viu
4573 KEY_ne|5.003007||Viu
4574 KEY_next|5.003007||Viu
4575 KEY_no|5.003007||Viu
4576 KEY_not|5.003007||Viu
4577 KEY_NULL|5.003007||Viu
4578 KEY_oct|5.003007||Viu
4579 KEY_open|5.003007||Viu
4580 KEY_opendir|5.003007||Viu
4581 KEY_or|5.003007||Viu
4582 KEY_ord|5.003007||Viu
4583 KEY_our|5.006000||Viu
4584 KEY_pack|5.003007||Viu
4585 KEY_package|5.003007||Viu
4586 KEY___PACKAGE|5.004000||Viu
4587 KEY_pipe|5.003007||Viu
4588 KEY_pop|5.003007||Viu
4589 KEY_pos|5.003007||Viu
4590 KEY_print|5.003007||Viu
4591 KEY_printf|5.003007||Viu
4592 KEY_prototype|5.003007||Viu
4593 KEY_push|5.003007||Viu
4594 KEY_q|5.003007||Viu
4595 KEY_qq|5.003007||Viu
4596 KEY_qr|5.005000||Viu
4597 KEY_quotemeta|5.003007||Viu
4598 KEY_qw|5.003007||Viu
4599 KEY_qx|5.003007||Viu
4600 KEY_rand|5.003007||Viu
4601 KEY_read|5.003007||Viu
4602 KEY_readdir|5.003007||Viu
4603 KEY_readline|5.003007||Viu
4604 KEY_readlink|5.003007||Viu
4605 KEY_readpipe|5.003007||Viu
4606 KEY_recv|5.003007||Viu
4607 KEY_redo|5.003007||Viu
4608 KEY_ref|5.003007||Viu
4609 KEY_rename|5.003007||Viu
4610 KEY_require|5.003007||Viu
4611 KEY_reset|5.003007||Viu
4612 KEY_return|5.003007||Viu
4613 KEY_reverse|5.003007||Viu
4614 KEY_rewinddir|5.003007||Viu
4615 KEY_rindex|5.003007||Viu
4616 KEY_rmdir|5.003007||Viu
4617 KEY_s|5.003007||Viu
4618 KEY_say|5.009003||Viu
4619 KEY_scalar|5.003007||Viu
4620 KEY_seek|5.003007||Viu
4621 KEY_seekdir|5.003007||Viu
4622 KEY_select|5.003007||Viu
4623 KEY_semctl|5.003007||Viu
4624 KEY_semget|5.003007||Viu
4625 KEY_semop|5.003007||Viu
4626 KEY_send|5.003007||Viu
4627 KEY_setgrent|5.003007||Viu
4628 KEY_sethostent|5.003007||Viu
4629 KEY_setnetent|5.003007||Viu
4630 KEY_setpgrp|5.003007||Viu
4631 KEY_setpriority|5.003007||Viu
4632 KEY_setprotoent|5.003007||Viu
4633 KEY_setpwent|5.003007||Viu
4634 KEY_setservent|5.003007||Viu
4635 KEY_setsockopt|5.003007||Viu
4636 KEY_shift|5.003007||Viu
4637 KEY_shmctl|5.003007||Viu
4638 KEY_shmget|5.003007||Viu
4639 KEY_shmread|5.003007||Viu
4640 KEY_shmwrite|5.003007||Viu
4641 KEY_shutdown|5.003007||Viu
4642 KEY_sigvar|5.025004||Viu
4643 KEY_sin|5.003007||Viu
4644 KEY_sleep|5.003007||Viu
4645 KEY_socket|5.003007||Viu
4646 KEY_socketpair|5.003007||Viu
4647 KEY_sort|5.003007||Viu
4648 KEY_splice|5.003007||Viu
4649 KEY_split|5.003007||Viu
4650 KEY_sprintf|5.003007||Viu
4651 KEY_sqrt|5.003007||Viu
4652 KEY_srand|5.003007||Viu
4653 KEY_stat|5.003007||Viu
4654 KEY_state|5.009004||Viu
4655 KEY_study|5.003007||Viu
4656 KEY_sub|5.003007||Viu
4657 KEY___SUB|5.015006||Viu
4658 KEY_substr|5.003007||Viu
4659 KEY_symlink|5.003007||Viu
4660 KEY_syscall|5.003007||Viu
4661 KEY_sysopen|5.003007||Viu
4662 KEY_sysread|5.003007||Viu
4663 KEY_sysseek|5.004000||Viu
4664 KEY_system|5.003007||Viu
4665 KEY_syswrite|5.003007||Viu
4666 KEY_tell|5.003007||Viu
4667 KEY_telldir|5.003007||Viu
4668 KEY_tie|5.003007||Viu
4669 KEY_tied|5.003007||Viu
4670 KEY_time|5.003007||Viu
4671 KEY_times|5.003007||Viu
4672 KEY_tr|5.003007||Viu
4673 KEY_truncate|5.003007||Viu
4674 KEY_try|5.033007||Viu
4675 KEY_uc|5.003007||Viu
4676 KEY_ucfirst|5.003007||Viu
4677 KEY_umask|5.003007||Viu
4678 KEY_undef|5.003007||Viu
4679 KEY_UNITCHECK|5.009005||Viu
4680 KEY_unless|5.003007||Viu
4681 KEY_unlink|5.003007||Viu
4682 KEY_unpack|5.003007||Viu
4683 KEY_unshift|5.003007||Viu
4684 KEY_untie|5.003007||Viu
4685 KEY_until|5.003007||Viu
4686 KEY_use|5.003007||Viu
4687 KEY_utime|5.003007||Viu
4688 KEY_values|5.003007||Viu
4689 KEY_vec|5.003007||Viu
4690 KEY_wait|5.003007||Viu
4691 KEY_waitpid|5.003007||Viu
4692 KEY_wantarray|5.003007||Viu
4693 KEY_warn|5.003007||Viu
4694 KEY_when|5.027008||Viu
4695 KEY_while|5.003007||Viu
16164696 keyword|5.003007||Viu
4697 KEYWORD_PLUGIN_DECLINE|5.011002||Viu
4698 KEYWORD_PLUGIN_EXPR|5.011002||Viu
4699 KEYWORD_PLUGIN_MUTEX_INIT|5.027006||Viu
4700 KEYWORD_PLUGIN_MUTEX_LOCK|5.027006||Viu
4701 KEYWORD_PLUGIN_MUTEX_TERM|5.027006||Viu
4702 KEYWORD_PLUGIN_MUTEX_UNLOCK|5.027006||Viu
16174703 keyword_plugin_standard|||iu
4704 KEYWORD_PLUGIN_STMT|5.011002||Viu
4705 KEY_write|5.003007||Viu
4706 KEY_x|5.003007||Viu
4707 KEY_xor|5.003007||Viu
4708 KEY_y|5.003007||Viu
4709 kGVOP_gv|5.006000||Viu
4710 kill|5.005000||Viu
4711 killpg|5.005000||Viu
4712 kLISTOP|5.003007||Viu
4713 kLOGOP|5.003007||Viu
4714 kLOOP|5.003007||Viu
4715 kPADOP|5.006000||Viu
4716 kPMOP|5.003007||Viu
4717 kPVOP|5.003007||Viu
4718 kSVOP|5.003007||Viu
4719 kSVOP_sv|5.006000||Viu
4720 kUNOP|5.003007||Viu
4721 kUNOP_AUX|5.021007||Viu
16184722 LATIN1_TO_NATIVE|5.019004|5.003007|p
4723 LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE|5.013011||Viu
4724 LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE_NATIVE|5.017004||Viu
4725 LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE|5.023002||Viu
4726 LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE_UTF8|5.023002||Viu
4727 LATIN_CAPITAL_LETTER_SHARP_S|5.014000||Viu
4728 LATIN_CAPITAL_LETTER_SHARP_S_UTF8|5.019001||Viu
4729 LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS|5.013011||Viu
4730 LATIN_SMALL_LETTER_A_WITH_RING_ABOVE|5.013011||Viu
4731 LATIN_SMALL_LETTER_A_WITH_RING_ABOVE_NATIVE|5.017004||Viu
4732 LATIN_SMALL_LETTER_DOTLESS_I|5.023002||Viu
4733 LATIN_SMALL_LETTER_DOTLESS_I_UTF8|5.023002||Viu
4734 LATIN_SMALL_LETTER_LONG_S|5.017003||Viu
4735 LATIN_SMALL_LETTER_LONG_S_UTF8|5.019001||Viu
4736 LATIN_SMALL_LETTER_SHARP_S|5.011002||Viu
4737 LATIN_SMALL_LETTER_SHARP_S_NATIVE|5.017004||Viu
4738 LATIN_SMALL_LETTER_SHARP_S_UTF8|5.033003||Viu
4739 LATIN_SMALL_LETTER_Y_WITH_DIAERESIS|5.011002||Viu
4740 LATIN_SMALL_LETTER_Y_WITH_DIAERESIS_NATIVE|5.017004||Viu
4741 LATIN_SMALL_LIGATURE_LONG_S_T|5.019004||Viu
4742 LATIN_SMALL_LIGATURE_LONG_S_T_UTF8|5.019004||Viu
4743 LATIN_SMALL_LIGATURE_ST|5.019004||Viu
4744 LATIN_SMALL_LIGATURE_ST_UTF8|5.019004||Viu
4745 LB_BREAKABLE|5.023007||Viu
4746 LB_CM_ZWJ_foo|5.025003||Viu
4747 LB_HY_or_BA_then_foo|5.023007||Viu
4748 LB_NOBREAK|5.023007||Viu
4749 LB_NOBREAK_EVEN_WITH_SP_BETWEEN|5.023007||Viu
4750 LB_PR_or_PO_then_OP_or_HY|5.023007||Viu
4751 LB_RI_then_RI|5.025003||Viu
4752 LB_SP_foo|5.023007||Viu
4753 LB_SY_or_IS_then_various|5.023007||Viu
4754 LB_various_then_PO_or_PR|5.023007||Viu
4755 LC_NUMERIC_LOCK|5.027009||pVu
4756 LC_NUMERIC_UNLOCK|5.027009||pVu
4757 LDBL_DIG|5.006000||Viu
16194758 LEAVE|5.003007|5.003007|
16204759 leave_adjust_stacks|5.023008|5.023008|xu
16214760 leave_scope|5.003007|5.003007|u
4761 LEAVE_SCOPE|5.003007||Viu
16224762 LEAVE_with_name|5.011002|5.011002|
4763 LEXACT|5.031005||Viu
4764 LEXACT_REQ8|5.031006||Viu
4765 LEXACT_REQ8_t8_p8|5.033003||Viu
4766 LEXACT_REQ8_t8_pb|5.033003||Viu
4767 LEXACT_REQ8_tb_p8|5.033003||Viu
4768 LEXACT_REQ8_tb_pb|5.033003||Viu
4769 LEXACT_t8_p8|5.033003||Viu
4770 LEXACT_t8_pb|5.033003||Viu
4771 LEXACT_tb_p8|5.033003||Viu
4772 LEXACT_tb_pb|5.033003||Viu
16234773 lex_bufutf8|5.011002|5.011002|x
16244774 lex_discard_to|5.011002|5.011002|x
4775 LEX_DONT_CLOSE_RSFP|5.015009||Viu
4776 LEX_EVALBYTES|5.015005||Viu
16254777 lex_grow_linestr|5.011002|5.011002|x
4778 LEX_IGNORE_UTF8_HINTS|5.015005||Viu
16264779 LEX_KEEP_PREVIOUS|5.011002|5.011002|
16274780 lex_next_chunk|5.011002|5.011002|x
4781 LEX_NOTPARSING|5.004004||Viu
16284782 lex_peek_unichar|5.011002|5.011002|x
16294783 lex_read_space|5.011002|5.011002|x
16304784 lex_read_to|5.011002|5.011002|x
16314785 lex_read_unichar|5.011002|5.011002|x
16324786 lex_start|5.009005|5.009005|x
4787 LEX_START_COPIED|5.015005||Viu
4788 LEX_START_FLAGS|5.015005||Viu
4789 LEX_START_SAME_FILTER|5.014000||Viu
16334790 lex_stuff_pv|5.013006|5.013006|x
16344791 lex_stuff_pvn|5.011002|5.011002|x
16354792 lex_stuff_pvs|5.013005|5.013005|x
16364793 lex_stuff_sv|5.011002|5.011002|x
16374794 LEX_STUFF_UTF8|5.011002|5.011002|
16384795 lex_unstuff|5.011002|5.011002|x
4796 LF_NATIVE|5.019004||Viu
4797 LIB_INVARG|5.008001||Viu
4798 LIBM_LIB_VERSION|5.009003|5.009003|Vn
16394799 LIKELY|5.009004|5.003007|p
4800 link|5.006000||Viu
16404801 LINKLIST|5.013006|5.013006|
16414802 list|5.003007||Viu
4803 listen|5.005000||Viu
16424804 listkids|5.003007||Viu
4805 LNBREAK|5.009005||Viu
4806 LNBREAK_t8_p8|5.033003||Viu
4807 LNBREAK_t8_pb|5.033003||Viu
4808 LNBREAK_tb_p8|5.033003||Viu
4809 LNBREAK_tb_pb|5.033003||Viu
4810 load_charnames|5.031010||cViu
16434811 load_module|5.006000|5.003007|pv
1644 load_module_nocontext|5.006000||vnVu
4812 load_module_nocontext|5.006000||vVn
4813 LOCALECONV_LOCK|5.033005||Viu
4814 LOCALECONV_UNLOCK|5.033005||Viu
4815 LOCALE_INIT|5.024000||Viu
4816 LOCALE_INIT_LC_NUMERIC|5.033005||Viu
4817 LOCALE_LOCK|5.024000||Viu
4818 LOCALE_PAT_MOD|5.013006||Viu
4819 LOCALE_PAT_MODS|5.013006||Viu
4820 LOCALE_READ_LOCK|5.033005||Viu
4821 LOCALE_READ_UNLOCK|5.033005||Viu
4822 LOCALE_TERM|5.024000||Viu
4823 LOCALE_TERM_LC_NUMERIC|5.033005||Viu
4824 LOCALE_TERM_POSIX_2008|5.033005||Viu
4825 LOCALE_UNLOCK|5.024000||Viu
16454826 localize|5.003007||Viu
1646 LONGDBLINFBYTES|5.023000|5.023000|
1647 LONGDBLMANTBITS|5.023000|5.023000|
1648 LONGDBLNANBYTES|5.023000|5.023000|
1649 LONGSIZE|5.004000|5.003007|
4827 LOCAL_PATCH_COUNT|5.003007||Viu
4828 localtime|5.031011||Viu
4829 LOCALTIME_MAX|5.010001|5.010001|Vn
4830 LOCALTIME_MIN|5.010001|5.010001|Vn
4831 LOCALTIME_R_NEEDS_TZSET|5.010000|5.010000|Vn
4832 LOCALTIME_R_PROTO|5.008000|5.008000|Vn
4833 LOCK_DOLLARZERO_MUTEX|5.008001||Viu
4834 lockf|5.006000||Viu
4835 LOCK_LC_NUMERIC_STANDARD|5.021010||poVnu
4836 LOCK_NUMERIC_STANDARD|||piu
4837 LOC_SED|5.003007|5.003007|Vn
4838 LOGICAL|5.005000||Viu
4839 LOGICAL_t8_p8|5.033003||Viu
4840 LOGICAL_t8_pb|5.033003||Viu
4841 LOGICAL_tb_p8|5.033003||Viu
4842 LOGICAL_tb_pb|5.033003||Viu
4843 LONGDBLINFBYTES|5.023000|5.023000|Vn
4844 LONGDBLMANTBITS|5.023000|5.023000|Vn
4845 LONGDBLNANBYTES|5.023000|5.023000|Vn
4846 LONGDOUBLE_BIG_ENDIAN|5.021009||Viu
4847 LONGDOUBLE_DOUBLEDOUBLE|5.021009||Viu
4848 LONG_DOUBLE_EQUALS_DOUBLE|5.007001||Viu
4849 LONG_DOUBLE_IS_DOUBLE|5.021003|5.021003|Vn
4850 LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BE_BE|5.023006|5.023006|Vn
4851 LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BE_LE|5.023006|5.023006|Vn
4852 LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BIG_ENDIAN|5.021003|5.021003|Vn
4853 LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LE_BE|5.023006|5.023006|Vn
4854 LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LE_LE|5.023006|5.023006|Vn
4855 LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LITTLE_ENDIAN|5.021003|5.021003|Vn
4856 LONG_DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN|5.021003|5.021003|Vn
4857 LONG_DOUBLE_IS_IEEE_754_128_BIT_LITTLE_ENDIAN|5.021003|5.021003|Vn
4858 LONG_DOUBLE_IS_UNKNOWN_FORMAT|5.021003|5.021003|Vn
4859 LONG_DOUBLE_IS_VAX_H_FLOAT|5.025004|5.025004|Vn
4860 LONG_DOUBLE_IS_X86_80_BIT_BIG_ENDIAN|5.021003|5.021003|Vn
4861 LONG_DOUBLE_IS_X86_80_BIT_LITTLE_ENDIAN|5.021003|5.021003|Vn
4862 LONG_DOUBLEKIND|5.021003|5.021003|Vn
4863 LONGDOUBLE_LITTLE_ENDIAN|5.021009||Viu
4864 LONGDOUBLE_MIX_ENDIAN|5.023006||Viu
4865 LONG_DOUBLESIZE|5.005000|5.005000|Vn
4866 LONG_DOUBLE_STYLE_IEEE|5.025007|5.025007|Vn
4867 LONG_DOUBLE_STYLE_IEEE_EXTENDED|5.025007|5.025007|Vn
4868 LONGDOUBLE_VAX_ENDIAN|5.025004||Viu
4869 LONGDOUBLE_X86_80_BIT|5.021009||Viu
4870 LONGJMP|5.005000||Viu
4871 longjmp|5.005000||Viu
4872 LONGJMP_t8_p8|5.033003||Viu
4873 LONGJMP_t8_pb|5.033003||Viu
4874 LONGJMP_tb_p8|5.033003||Viu
4875 LONGJMP_tb_pb|5.033003||Viu
4876 LONGLONGSIZE|5.005000|5.005000|Vn
4877 LONGSIZE|5.004000|5.003007|oVn
16504878 looks_like_bool|5.027008||Viu
16514879 looks_like_number|5.003007|5.003007|
4880 LOOP_PAT_MODS|5.009005||Viu
16524881 lop|5.005000||Viu
1653 lossless_NV_to_IV|5.031001||nViu
1654 LSEEKSIZE|5.006000|5.006000|
1655 LVRET|||i
4882 lossless_NV_to_IV|5.031001||Vniu
4883 LOWEST_ANYOF_HRx_BYTE|5.031002||Viu
4884 L_R_TZSET|5.009005|5.009005|Vn
4885 lseek|5.005000||Viu
4886 LSEEKSIZE|5.006000|5.006000|Vn
4887 lstat|5.005000||Viu
4888 LvFLAGS|5.015006||Viu
4889 LVf_NEG_LEN|5.027001||Viu
4890 LVf_NEG_OFF|5.027001||Viu
4891 LVf_OUT_OF_RANGE|5.027001||Viu
4892 LVRET|5.007001||Vi
4893 LvSTARGOFF|5.019004||Viu
4894 LvTARG|5.003007||Viu
4895 LvTARGLEN|5.003007||Viu
4896 LvTARGOFF|5.003007||Viu
4897 LvTYPE|5.003007||Viu
16564898 magic_clear_all_env|5.004001||Viu
16574899 magic_cleararylen_p|5.017002||Viu
16584900 magic_clearenv|5.003007||Viu
16654907 magic_dump|5.006000|5.006000|u
16664908 magic_existspack|5.003007||Viu
16674909 magic_freearylen_p|5.009003||Viu
4910 magic_freecollxfrm|5.033004||Viu
4911 magic_freemglob|5.033004||Viu
16684912 magic_freeovrld|5.007001||Viu
4913 magic_freeutf8|5.033004||Viu
16694914 magic_get|5.003007||Viu
16704915 magic_getarylen|5.003007||Viu
16714916 magic_getdebugvar|5.021005||Viu
16964941 magic_setdefelem|5.004000||Viu
16974942 magic_setenv|5.003007||Viu
16984943 magic_sethint|5.009004||Vi
4944 magic_sethint_feature|5.031007||Viu
16994945 magic_setisa|5.003007||Viu
17004946 magic_setlvref|5.021005||Viu
17014947 magic_setmglob|5.003007||Viu
17054951 magic_setpos|5.003007||Viu
17064952 magic_setregexp|5.008001||Viu
17074953 magic_setsig|5.003007||Viu
4954 magic_setsigall|5.035001||Viu
17084955 magic_setsubstr|5.003007||Viu
17094956 magic_settaint|5.003007||Viu
17104957 magic_setutf8|5.008001||Viu
17164963 make_matcher|5.027008||Viu
17174964 make_trie|5.009002||Viu
17184965 malloc|5.007002|5.007002|n
1719 malloced_size|5.005000||nViu
1720 malloc_good_size|5.010001||nViu
4966 MALLOC_CHECK_TAINT2|5.008001||Viu
4967 MALLOC_CHECK_TAINT|5.008001||Viu
4968 malloced_size|5.005000||Vniu
4969 malloc_good_size|5.010001||Vniu
4970 MALLOC_INIT|5.005000||Viu
4971 MALLOC_OVERHEAD|5.006000||Viu
4972 Malloc_t|5.003007|5.003007|Vn
4973 MALLOC_TERM|5.005000||Viu
4974 MALLOC_TOO_LATE_FOR|5.008001||Viu
17214975 MARK|5.003007|5.003007|
4976 MARKPOINT|5.009005||Viu
4977 MARKPOINT_next|5.009005||Viu
4978 MARKPOINT_next_fail|5.009005||Viu
4979 MARKPOINT_next_fail_t8_p8|5.033003||Viu
4980 MARKPOINT_next_fail_t8_pb|5.033003||Viu
4981 MARKPOINT_next_fail_tb_p8|5.033003||Viu
4982 MARKPOINT_next_fail_tb_pb|5.033003||Viu
4983 MARKPOINT_next_t8_p8|5.033003||Viu
4984 MARKPOINT_next_t8_pb|5.033003||Viu
4985 MARKPOINT_next_tb_p8|5.033003||Viu
4986 MARKPOINT_next_tb_pb|5.033003||Viu
4987 MARKPOINT_t8_p8|5.033003||Viu
4988 MARKPOINT_t8_pb|5.033003||Viu
4989 MARKPOINT_tb_p8|5.033003||Viu
4990 MARKPOINT_tb_pb|5.033003||Viu
17224991 markstack_grow|5.021001|5.021001|u
17234992 matcher_matches_sv|5.027008||Viu
4993 MAX|5.025006||Viu
4994 MAX_ANYOF_HRx_BYTE|5.031002||Viu
4995 MAXARG|5.003007||Viu
4996 MAX_CHARSET_NAME_LENGTH|5.013009||Viu
4997 MAX_FEATURE_LEN|5.013010||Viu
4998 MAX_FOLD_FROMS|5.029006||Viu
4999 MAX_LEGAL_CP|5.029002||Viu
5000 MAX_MATCHES|5.033005||Viu
5001 MAXO|5.003007||Viu
5002 MAXPATHLEN|5.006000||Viu
5003 MAX_PORTABLE_UTF8_TWO_BYTE|5.011002||Viu
5004 MAX_PRINT_A|5.033005||Viu
5005 MAX_RECURSE_EVAL_NOCHANGE_DEPTH|5.009005||Viu
5006 MAXSYSFD|5.003007||Viu
5007 MAX_UNICODE_UTF8|5.027006||Viu
5008 MAX_UNI_KEYWORD_INDEX|5.027011||Viu
5009 MAX_UTF8_TWO_BYTE|5.019004||Viu
5010 MAYBE_DEREF_GV|5.015003||Viu
5011 MAYBE_DEREF_GV_flags|5.015003||Viu
5012 MAYBE_DEREF_GV_nomg|5.015003||Viu
17245013 maybe_multimagic_gv|5.019004||Viu
17255014 mayberelocate|5.015006||Viu
5015 MBLEN_LOCK|5.033005||Viu
5016 MBLEN_UNLOCK|5.033005||Viu
5017 MBOL|5.003007||Viu
5018 MBOL_t8_p8|5.033003||Viu
5019 MBOL_t8_pb|5.033003||Viu
5020 MBOL_tb_p8|5.033003||Viu
5021 MBOL_tb_pb|5.033003||Viu
5022 MBTOWC_LOCK|5.033005||Viu
5023 MBTOWC_UNLOCK|5.033005||Viu
5024 MDEREF_ACTION_MASK|5.021007||Viu
5025 MDEREF_AV_gvav_aelem|5.021007||Viu
5026 MDEREF_AV_gvsv_vivify_rv2av_aelem|5.021007||Viu
5027 MDEREF_AV_padav_aelem|5.021007||Viu
5028 MDEREF_AV_padsv_vivify_rv2av_aelem|5.021007||Viu
5029 MDEREF_AV_pop_rv2av_aelem|5.021007||Viu
5030 MDEREF_AV_vivify_rv2av_aelem|5.021007||Viu
5031 MDEREF_FLAG_last|5.021007||Viu
5032 MDEREF_HV_gvhv_helem|5.021007||Viu
5033 MDEREF_HV_gvsv_vivify_rv2hv_helem|5.021007||Viu
5034 MDEREF_HV_padhv_helem|5.021007||Viu
5035 MDEREF_HV_padsv_vivify_rv2hv_helem|5.021007||Viu
5036 MDEREF_HV_pop_rv2hv_helem|5.021007||Viu
5037 MDEREF_HV_vivify_rv2hv_helem|5.021007||Viu
5038 MDEREF_INDEX_const|5.021007||Viu
5039 MDEREF_INDEX_gvsv|5.021007||Viu
5040 MDEREF_INDEX_MASK|5.021007||Viu
5041 MDEREF_INDEX_none|5.021007||Viu
5042 MDEREF_INDEX_padsv|5.021007||Viu
5043 MDEREF_MASK|5.021007||Viu
5044 MDEREF_reload|5.021007||Viu
5045 MDEREF_SHIFT|5.021007||Viu
17265046 measure_struct|5.007003||Viu
1727 memCHRs||5.003007|p
5047 MEM_ALIGNBYTES|5.003007|5.003007|Vn
5048 memBEGINPs|5.027006||Viu
5049 memBEGINs|5.027006||Viu
5050 MEMBER_TO_FPTR|5.006000||Viu
5051 memCHRs|5.031008|5.003007|p
17285052 mem_collxfrm|5.003007||dViu
17295053 _mem_collxfrm|5.025002||Viu
5054 memENDPs|5.027006||Viu
5055 memENDs|5.027006||Viu
17305056 memEQ|5.004000|5.003007|p
17315057 memEQs|5.009005|5.003007|p
1732 mem_log_alloc|5.024000||nViu
1733 mem_log_common|5.010001||nViu
1734 mem_log_free|5.024000||nViu
1735 mem_log_realloc|5.024000||nViu
5058 memGE|5.025005||Viu
5059 memGT|5.025005||Viu
5060 memLE|5.025005||Viu
5061 MEM_LOG_ALLOC|5.009003||Viu
5062 mem_log_alloc|5.024000||Vniu
5063 mem_log_common|5.010001||Vniu
5064 MEM_LOG_FREE|5.009003||Viu
5065 mem_log_free|5.024000||Vniu
5066 MEM_LOG_REALLOC|5.009003||Viu
5067 mem_log_realloc|5.024000||Vniu
5068 memLT|5.025005||Viu
17365069 memNE|5.004000|5.003007|p
17375070 memNEs|5.009005|5.003007|p
5071 MEM_SIZE|5.003007||Viu
5072 MEM_SIZE_MAX|5.009005||Viu
5073 MEM_WRAP_CHECK_1|5.009002||Viu
5074 MEM_WRAP_CHECK|5.009002||Viu
5075 MEM_WRAP_CHECK_s|5.027010||Viu
5076 memzero|5.003007|5.003007|
5077 MEOL|5.003007||Viu
5078 MEOL_t8_p8|5.033003||Viu
5079 MEOL_t8_pb|5.033003||Viu
5080 MEOL_tb_p8|5.033003||Viu
5081 MEOL_tb_pb|5.033003||Viu
17385082 mess|5.006000|5.004000|pv
17395083 mess_alloc|5.005000||Viu
1740 mess_nocontext|5.006000||pvnVu
5084 mess_nocontext|5.006000||pvVn
17415085 mess_sv|5.013001|5.004000|p
5086 MEXTEND|5.003007||Viu
17425087 mfree|5.007002|5.007002|nu
5088 MgBYTEPOS|5.019004||Viu
5089 MgBYTEPOS_set|5.019004||Viu
17435090 mg_clear|5.003007|5.003007|
17445091 mg_copy|5.003007|5.003007|
17455092 mg_dup|5.007003|5.007003|u
5093 MGf_BYTES|5.019004||Viu
5094 MGf_COPY|5.007003||Viu
5095 MGf_DUP|5.007003||Viu
5096 MGf_GSKIP|5.003007||Viu
17465097 mg_find|5.003007|5.003007|n
17475098 mg_findext|5.013008|5.003007|pn
17485099 mg_find_mglob|5.019002||cViu
5100 MGf_LOCAL|5.009003||Viu
5101 MGf_MINMATCH|5.003007||Viu
5102 MGf_PERSIST|5.021005||Viu
17495103 mg_free|5.003007|5.003007|
17505104 mg_freeext|5.027004|5.027004|
17515105 mg_free_type|5.013006|5.013006|
5106 MGf_REFCOUNTED|5.003007||Viu
5107 MGf_REQUIRE_GV|5.021004||Viu
5108 MGf_TAINTEDDIR|5.003007||Viu
17525109 mg_get|5.003007|5.003007|
17535110 mg_length|5.005000|5.005000|d
17545111 mg_localize|5.009003||Vi
17555112 mg_magical|5.003007|5.003007|n
5113 MgPV|5.003007||Viu
5114 MgPV_const|5.009003||Viu
5115 MgPV_nolen_const|5.009003||Viu
17565116 mg_set|5.003007|5.003007|
17575117 mg_size|5.005000|5.005000|u
1758 mini_mktime|5.007002|5.007002|nu
5118 MgSV|5.033009||Viu
5119 MgTAINTEDDIR|5.003007||Viu
5120 MgTAINTEDDIR_off|5.004000||Viu
5121 MgTAINTEDDIR_on|5.003007||Viu
5122 MICRO_SIGN|5.011002||Viu
5123 MICRO_SIGN_NATIVE|5.017004||Viu
5124 MICRO_SIGN_UTF8|5.033003||Viu
5125 MIN|5.025006||Viu
5126 mini_mktime|5.007002|5.007002|n
5127 MINMOD|5.003007||Viu
5128 MINMOD_t8_p8|5.033003||Viu
5129 MINMOD_t8_pb|5.033003||Viu
5130 MINMOD_tb_p8|5.033003||Viu
5131 MINMOD_tb_pb|5.033003||Viu
17595132 minus_v|5.015006||Viu
17605133 missingterm|5.005000||Viu
5134 MJD_OFFSET_DEBUG|5.009004||Viu
5135 Mkdir|5.004000||Viu
5136 mkdir|5.005000||Viu
5137 mktemp|5.005000||Viu
5138 Mmap_t|5.006000|5.006000|Vn
17615139 mode_from_discipline|5.006000||Viu
5140 Mode_t|5.003007|5.003007|Vn
17625141 modkids|5.003007||Viu
5142 MON_10|5.027010||Viu
5143 MON_11|5.027010||Viu
5144 MON_12|5.027010||Viu
5145 MON_1|5.027010||Viu
5146 MON_2|5.027010||Viu
5147 MON_3|5.027010||Viu
5148 MON_4|5.027010||Viu
5149 MON_5|5.027010||Viu
5150 MON_6|5.027010||Viu
5151 MON_7|5.027010||Viu
5152 MON_8|5.027010||Viu
5153 MON_9|5.027010||Viu
17635154 more_bodies|||iu
17645155 more_sv|5.009004||Viu
1765 moreswitches|5.003007|5.003007|u
5156 moreswitches|5.003007||cVu
5157 mortal_getenv|5.031011||cVnu
17665158 Move|5.003007|5.003007|
17675159 MoveD|5.009002|5.003007|p
17685160 move_proto_attr|5.019005||Viu
5161 M_PAT_MODS|5.009005||Viu
5162 MPH_BUCKETS|5.027011||Viu
5163 MPH_RSHIFT|5.027011||Viu
5164 MPH_VALt|5.027011||Viu
17695165 mPUSHi|5.009002|5.003007|p
17705166 mPUSHn|5.009002|5.003007|p
17715167 mPUSHp|5.009002|5.003007|p
17755171 mro_gather_and_rename|5.013007||Viu
17765172 mro_get_from_name|5.010001|5.010001|u
17775173 mro_get_linear_isa|5.009005|5.009005|
5174 mro_get_linear_isa_c3|||i
17785175 mro_get_linear_isa_dfs|5.009005||Vi
1779 mro_get_private_data|5.010001|5.010001|
5176 MRO_GET_PRIVATE_DATA|5.010001|5.010001|
5177 mro_get_private_data|||cu
17805178 mro_isa_changed_in|5.009005||Vi
17815179 mro_meta_dup|5.009005||Viu
17825180 mro_meta_init|||ciu
17855183 mro_register|5.010001|5.010001|
17865184 mro_set_mro|5.010001|5.010001|u
17875185 mro_set_private_data|5.010001|5.010001|
5186 MSPAGAIN|5.003007||Viu
5187 MSVC_DIAG_IGNORE|5.029010||Viu
5188 MSVC_DIAG_IGNORE_DECL|5.029010||Viu
5189 MSVC_DIAG_IGNORE_STMT|5.029010||Viu
5190 MSVC_DIAG_RESTORE|5.029010||Viu
5191 MSVC_DIAG_RESTORE_DECL|5.029010||Viu
5192 MSVC_DIAG_RESTORE_STMT|5.029010||Viu
17885193 mul128|5.005000||Viu
17895194 MULTICALL|5.009003|5.009003|
17905195 multiconcat_stringify|5.027006||cViu
17915196 multideref_stringify|5.021009||cViu
1792 MUTABLE_PTR|5.010001||pVu
1793 MUTABLE_SV|5.010001||pVu
5197 MULTILINE_PAT_MOD|5.009005||Viu
5198 MULTIPLICITY|5.006000|5.006000|Vn
5199 MUTABLE_AV|5.010001|5.003007|p
5200 MUTABLE_CV|5.010001|5.003007|p
5201 MUTABLE_GV|5.010001|5.003007|p
5202 MUTABLE_HV|5.010001|5.003007|p
5203 MUTABLE_IO|5.010001|5.003007|p
5204 MUTABLE_PTR|5.010001|5.003007|p
5205 MUTABLE_SV|5.010001|5.003007|p
5206 MUTEX_DESTROY|5.005000||Viu
5207 MUTEX_INIT|5.005000||Viu
5208 MUTEX_INIT_NEEDS_MUTEX_ZEROED|5.005003||Viu
5209 MUTEX_LOCK|5.005000||Viu
5210 MUTEX_UNLOCK|5.005000||Viu
17945211 mXPUSHi|5.009002|5.003007|p
17955212 mXPUSHn|5.009002|5.003007|p
17965213 mXPUSHp|5.009002|5.003007|p
17975214 mXPUSHs|5.010001|5.003007|p
17985215 mXPUSHu|5.009002|5.003007|p
1799 my_atof2|||cu
5216 my|5.011000||Viu
5217 my_atof2|5.029000||cVu
18005218 my_atof3|5.029000||cVu
1801 my_atof|5.006000|5.006000|u
5219 my_atof|5.006000|5.006000|
18025220 my_attrs|5.006000||Viu
1803 my_bytes_to_utf8|5.021009||nViu
5221 my_binmode|5.006000||Viu
5222 my_bytes_to_utf8|5.021009||Vniu
18045223 my_chsize|5.003007||Vu
18055224 my_clearenv|5.009003||Viu
18065225 MY_CXT|5.009000|5.009000|p
18075226 MY_CXT_CLONE|5.009002|5.009000|p
1808 my_cxt_index|||u
5227 MY_CXT_INDEX|5.009005||Viu
18095228 MY_CXT_INIT|5.009000|5.009000|p
18105229 my_cxt_init|5.009000|5.009000|u
5230 MY_CXT_INIT_ARG|5.013005||Viu
5231 MY_CXT_INIT_INTERP|5.009003||Viu
18115232 my_dirfd|5.009005|5.009005|nu
18125233 my_exit|5.003007|5.003007|
18135234 my_exit_jump|5.005000||Viu
18155236 my_fflush_all|5.006000|5.006000|u
18165237 my_fork|5.007003|5.007003|nu
18175238 my_kid|5.006000||Viu
5239 my_lstat|5.013003||Viu
18185240 my_lstat_flags|5.013003||cViu
1819 my_lstat|||u
1820 my_memrchr|5.027006||nViu
5241 my_memrchr|5.027006||Vniu
18215242 my_mkostemp_cloexec|||niu
18225243 my_mkostemp|||niu
18235244 my_mkstemp_cloexec|||niu
18245245 my_mkstemp|||niu
1825 my_nl_langinfo|5.027006||nViu
5246 my_nl_langinfo|5.027006||Vniu
18265247 my_pclose|5.003007|5.003007|u
18275248 my_popen|5.003007|5.003007|u
18285249 my_popen_list|5.007001|5.007001|u
18295250 my_setenv|5.003007|5.003007|
18305251 my_snprintf|5.009004|5.003007|pvn
18315252 my_socketpair|5.007003|5.007003|nu
1832 my_sprintf|5.009003|5.003007|pnd
5253 my_sprintf|5.009003|5.003007|pdn
5254 my_stat|5.013003||Viu
18335255 my_stat_flags|5.013003||cViu
1834 my_stat|||u
18355256 my_strerror|5.021001||Viu
1836 my_strftime|5.007002|5.007002|u
5257 my_strftime|5.007002|5.007002|
18375258 my_strlcat|5.009004|5.003007|pn
18385259 my_strlcpy|5.009004|5.003007|pn
18395260 my_strnlen|5.027006|5.003007|pn
18405261 my_strtod|5.029010|5.029010|n
18415262 my_unexec|5.003007||Viu
18425263 my_vsnprintf|5.009004|5.009004|n
5264 N0|5.029001||Viu
5265 N10|5.029001||Viu
5266 N11|5.029001||Viu
5267 N1|5.029001||Viu
5268 N2|5.029001||Viu
5269 N3|5.029001||Viu
5270 N4|5.029001||Viu
5271 N5|5.029001||Viu
5272 N6|5.029001||Viu
5273 N7|5.029001||Viu
5274 N8|5.029001||Viu
5275 N9|5.029001||Viu
5276 NAN_COMPARE_BROKEN|5.021005||Viu
5277 NANYOFM|5.029005||Viu
5278 NANYOFM_t8_p8|5.033003||Viu
5279 NANYOFM_t8_pb|5.033003||Viu
5280 NANYOFM_tb_p8|5.033003||Viu
5281 NANYOFM_tb_pb|5.033003||Viu
5282 NATIVE8_TO_UNI|5.011000||Viu
5283 NATIVE_BYTE_IS_INVARIANT|5.019004||Viu
5284 NATIVE_SKIP|5.019004||Viu
5285 NATIVE_TO_ASCII|5.007001||Viu
5286 NATIVE_TO_I8|5.015006||Viu
18435287 NATIVE_TO_LATIN1|5.019004|5.003007|p
1844 NATIVE_TO_NEED|5.019004||ndcVu
5288 NATIVE_TO_NEED|5.019004||dcVnu
18455289 NATIVE_TO_UNI|5.007001|5.003007|p
1846 need_utf8|5.009003||nViu
5290 NATIVE_TO_UTF|5.007001||Viu
5291 NATIVE_UTF8_TO_I8|5.019004||Viu
5292 nBIT_MASK|5.033001||Viu
5293 nBIT_UMAX|5.033001||Viu
5294 NBOUND|5.003007||Viu
5295 NBOUNDA|5.013009||Viu
5296 NBOUNDA_t8_p8|5.033003||Viu
5297 NBOUNDA_t8_pb|5.033003||Viu
5298 NBOUNDA_tb_p8|5.033003||Viu
5299 NBOUNDA_tb_pb|5.033003||Viu
5300 NBOUNDL|5.004000||Viu
5301 NBOUNDL_t8_p8|5.033003||Viu
5302 NBOUNDL_t8_pb|5.033003||Viu
5303 NBOUNDL_tb_p8|5.033003||Viu
5304 NBOUNDL_tb_pb|5.033003||Viu
5305 NBOUND_t8_p8|5.033003||Viu
5306 NBOUND_t8_pb|5.033003||Viu
5307 NBOUND_tb_p8|5.033003||Viu
5308 NBOUND_tb_pb|5.033003||Viu
5309 NBOUNDU|5.013009||Viu
5310 NBOUNDU_t8_p8|5.033003||Viu
5311 NBOUNDU_t8_pb|5.033003||Viu
5312 NBOUNDU_tb_p8|5.033003||Viu
5313 NBOUNDU_tb_pb|5.033003||Viu
5314 NBSP_NATIVE|5.021001||Viu
5315 NBSP_UTF8|5.021001||Viu
5316 NDBM_H_USES_PROTOTYPES|5.032001|5.032001|Vn
5317 NDEBUG|5.021007||Viu
5318 NEED_PTHREAD_INIT|5.005000||Viu
5319 need_utf8|5.009003||Vniu
5320 NEED_VA_COPY|5.007001|5.007001|Vn
5321 NEGATIVE_INDICES_VAR|5.008001||Viu
5322 Netdb_hlen_t|5.005000|5.005000|Vn
5323 Netdb_host_t|5.005000|5.005000|Vn
5324 Netdb_name_t|5.005000|5.005000|Vn
5325 Netdb_net_t|5.005000|5.005000|Vn
5326 NETDB_R_OBSOLETE|5.008000||Viu
5327 New|5.003007||Viu
18475328 newANONATTRSUB|5.006000|5.006000|u
18485329 newANONHASH|5.003007|5.003007|u
18495330 newANONLIST|5.003007|5.003007|u
18505331 newANONSUB|5.003007|5.003007|u
18515332 newASSIGNOP|5.003007|5.003007|
1852 newATTRSUB|5.006000|5.006000|u
5333 newATTRSUB|5.006000|5.006000|
18535334 newATTRSUB_x|5.019008||cVi
18545335 newAV|5.003007|5.003007|
5336 newAV_alloc_x|5.035001|5.035001|
5337 newAV_alloc_xz|5.035001|5.035001|
18555338 newAVREF|5.003007|5.003007|u
18565339 newBINOP|5.003007|5.003007|
5340 Newc|5.003007||Viu
18575341 new_collate|5.006000||Viu
18585342 newCONDOP|5.003007|5.003007|
18595343 new_constant|||iu
18915375 newNULLLIST|5.003007|5.003007|
18925376 new_numeric|5.006000||Viu
18935377 newOP|5.003007|5.003007|
1894 newPADNAMELIST|5.021007|5.021007|nx
1895 newPADNAMEouter|5.021007|5.021007|nx
1896 newPADNAMEpvn|5.021007|5.021007|nx
5378 NewOp|5.008001||Viu
5379 newPADNAMELIST|5.021007|5.021007|xn
5380 newPADNAMEouter|5.021007|5.021007|xn
5381 newPADNAMEpvn|5.021007|5.021007|xn
18975382 newPADOP|5.006000||V
18985383 newPMOP|5.003007|5.003007|
18995384 newPROG|5.003007|5.003007|u
19005385 newPVOP|5.003007|5.003007|
19015386 newRANGE|5.003007|5.003007|
1902 new_regcurly|5.027001||nViu
1903 newRV|5.003007|5.003007|u
5387 newRV|5.003007|5.003007|
19045388 newRV_inc|5.004000|5.003007|p
19055389 newRV_noinc|5.004000|5.003007|p
19065390 newSLICEOP|5.003007|5.003007|
19075391 new_stackinfo|5.005000|5.005000|u
19085392 newSTATEOP|5.003007|5.003007|
19095393 newSTUB|5.017001||Viu
1910 newSUB|5.003007|5.003007|u
5394 newSUB|5.003007|5.003007|
19115395 newSV|5.003007|5.003007|
5396 NEWSV|5.003007||Viu
19125397 newSVavdefelem|5.019004||Viu
19135398 newSVhek|5.009003|5.009003|
19145399 newSViv|5.003007|5.003007|
19175402 newSVpadname|5.017004|5.017004|x
19185403 newSVpv|5.003007|5.003007|
19195404 newSVpvf|5.006000|5.004000|v
1920 newSVpvf_nocontext|5.006000||vnVu
5405 newSVpvf_nocontext|5.006000||vVn
19215406 newSVpvn|5.004005|5.003007|p
19225407 newSVpvn_flags|5.010001|5.003007|p
19235408 newSVpvn_share|5.007001|5.003007|p
19295414 newSVREF|5.003007|5.003007|u
19305415 newSVrv|5.003007|5.003007|
19315416 newSVsv|5.003007|5.003007|
1932 newSVsv_flags|5.029009|5.003007|pu
5417 newSVsv_flags|5.029009|5.003007|p
19335418 newSVsv_nomg|5.029009|5.003007|p
19345419 newSV_type|5.009005|5.003007|p
19355420 newSVuv|5.006000|5.003007|p
5421 newTRYCATCHOP|5.033007|5.033007|x
19365422 newUNOP|5.003007|5.003007|
19375423 newUNOP_AUX|5.021007|5.021007|
19385424 new_version|5.009000|5.009000|
5425 NEW_VERSION|5.019008||Viu
19395426 new_warnings_bitfield|||xciu
19405427 newWHENOP|5.027008|5.027008|
19415428 newWHILEOP|5.013007|5.013007|
19475434 newXS_len_flags|5.015006||Vi
19485435 newXSproto|5.006000|5.006000|
19495436 Newxz|5.009003|5.003007|p
5437 Newz|5.003007||Viu
19505438 nextargv|5.003007||Viu
19515439 nextchar|5.005000||Viu
5440 NEXT_LINE_CHAR|5.007003||Viu
5441 NEXT_OFF|5.005000||Viu
5442 NEXTOPER|5.003007||Viu
19525443 next_symbol|5.007003||Viu
19535444 ninstr|5.003007|5.003007|n
5445 NL_LANGINFO_LOCK|5.033005||Viu
5446 NL_LANGINFO_UNLOCK|5.033005||Viu
19545447 no_bareword_allowed|5.005004||Viu
5448 no_bareword_filehandle|5.033006||Viu
5449 NOCAPTURE_PAT_MOD|5.021008||Viu
5450 NOCAPTURE_PAT_MODS|5.021008||Viu
5451 NODE_ALIGN|5.005000||Viu
5452 NODE_ALIGN_FILL|5.005000||Viu
5453 NODE_STEP_REGNODE|5.005000||Viu
5454 NODE_SZ_STR|5.006000||Viu
5455 NO_ENV_ARRAY_IN_MAIN|5.009004||Viu
5456 NOEXPR|5.027010||Viu
5457 NofAMmeth|5.003007||Viu
19555458 no_fh_allowed|5.003007||Viu
5459 NOLINE|5.003007||Viu
5460 NO_LOCALE|5.007000||Viu
5461 NO_LOCALECONV_MON_THOUSANDS_SEP|5.005000||Viu
5462 NONDESTRUCT_PAT_MOD|5.013002||Viu
5463 NONDESTRUCT_PAT_MODS|5.013002||Viu
5464 NON_OTHER_COUNT|5.033005||Viu
19565465 no_op|5.003007||Viu
1957 NOOP|5.005000|5.003007|poVu
1958 noperl_die|5.021006||vnViu
5466 NOOP|5.005000|5.003007|p
5467 noperl_die|5.021006||vVniu
5468 NORETURN_FUNCTION_END|5.009003||Viu
5469 NORMAL|5.003007||Viu
5470 NOSTR|5.027010||Viu
5471 NO_TAINT_SUPPORT|5.017006||Viu
19595472 not_a_number|5.005000||Viu
5473 NOTE3|5.027001||Viu
5474 NOTHING|5.003007||Viu
5475 NOTHING_t8_p8|5.033003||Viu
5476 NOTHING_t8_pb|5.033003||Viu
5477 NOTHING_tb_p8|5.033003||Viu
5478 NOTHING_tb_pb|5.033003||Viu
19605479 nothreadhook|5.008000|5.008000|
19615480 notify_parser_that_changed_to_utf8|5.025010||Viu
19625481 not_incrementable|5.021002||Viu
5482 NOT_IN_PAD|5.005000||Viu
5483 NOT_REACHED|5.019006|5.003007|poVnu
5484 NPOSIXA|5.017003||Viu
5485 NPOSIXA_t8_p8|5.033003||Viu
5486 NPOSIXA_t8_pb|5.033003||Viu
5487 NPOSIXA_tb_p8|5.033003||Viu
5488 NPOSIXA_tb_pb|5.033003||Viu
5489 NPOSIXD|5.017003||Viu
5490 NPOSIXD_t8_p8|5.033003||Viu
5491 NPOSIXD_t8_pb|5.033003||Viu
5492 NPOSIXD_tb_p8|5.033003||Viu
5493 NPOSIXD_tb_pb|5.033003||Viu
5494 NPOSIXL|5.017003||Viu
5495 NPOSIXL_t8_p8|5.033003||Viu
5496 NPOSIXL_t8_pb|5.033003||Viu
5497 NPOSIXL_tb_p8|5.033003||Viu
5498 NPOSIXL_tb_pb|5.033003||Viu
5499 NPOSIXU|5.017003||Viu
5500 NPOSIXU_t8_p8|5.033003||Viu
5501 NPOSIXU_t8_pb|5.033003||Viu
5502 NPOSIXU_tb_p8|5.033003||Viu
5503 NPOSIXU_tb_pb|5.033003||Viu
5504 NSIG|5.009003||Viu
5505 ntohi|5.003007||Viu
5506 ntohl|5.003007||Viu
5507 ntohs|5.003007||Viu
19635508 nuke_stacks|5.005000||Viu
5509 Null|5.003007||Viu
19645510 Nullav|5.003007|5.003007|d
19655511 Nullch|5.003007|5.003007|
19665512 Nullcv|5.003007|5.003007|d
5513 Nullfp|5.003007||Viu
5514 Nullgv|5.003007||Viu
5515 Nullhe|5.003007||Viu
5516 Nullhek|5.004000||Viu
19675517 Nullhv|5.003007|5.003007|d
5518 Nullop|5.003007||Viu
19685519 Nullsv|5.003007|5.003007|
19695520 NUM2PTR|5.006000||pVu
1970 num_overflow|5.009001||nViu
1971 NVef|5.006001|5.003007|p
1972 NVff|5.006001|5.003007|p
1973 NVgf|5.006001|5.003007|p
1974 NVMANTBITS|5.023000|5.023000|
1975 NVSIZE|5.006001|5.006001|
1976 NVTYPE|5.006000|5.003007|p
5521 NUM_ANYOF_CODE_POINTS|5.021004||Viu
5522 NUM_CLASSES|5.029001||Viu
5523 num_overflow|5.009001||Vniu
5524 NV_BIG_ENDIAN|5.021009||Viu
5525 NV_DIG|5.006000||Viu
5526 NVef|5.006001|5.003007|poVn
5527 NV_EPSILON|5.007003||Viu
5528 NVff|5.006001|5.003007|poVn
5529 NVgf|5.006001|5.003007|poVn
5530 NV_IMPLICIT_BIT|5.021009||Viu
5531 NV_INF|5.007003||Viu
5532 NV_LITTLE_ENDIAN|5.021009||Viu
5533 NVMANTBITS|5.023000|5.023000|Vn
5534 NV_MANT_DIG|5.006001||Viu
5535 NV_MAX_10_EXP|5.007003||Viu
5536 NV_MAX|5.006001||Viu
5537 NV_MAX_EXP|5.021003||Viu
5538 NV_MIN_10_EXP|5.007003||Viu
5539 NV_MIN|5.006001||Viu
5540 NV_MIN_EXP|5.021003||Viu
5541 NV_MIX_ENDIAN|5.021009||Viu
5542 NV_NAN|5.007003||Viu
5543 NV_NAN_BITS|5.023000||Viu
5544 NV_NAN_IS_QUIET|5.023000||Viu
5545 NV_NAN_IS_SIGNALING|5.023000||Viu
5546 NV_NAN_PAYLOAD_MASK|5.023000||Viu
5547 NV_NAN_PAYLOAD_MASK_IEEE_754_128_BE|5.023000||Viu
5548 NV_NAN_PAYLOAD_MASK_IEEE_754_128_LE|5.023000||Viu
5549 NV_NAN_PAYLOAD_MASK_IEEE_754_64_BE|5.023000||Viu
5550 NV_NAN_PAYLOAD_MASK_IEEE_754_64_LE|5.023000||Viu
5551 NV_NAN_PAYLOAD_MASK_SKIP_EIGHT|5.023006||Viu
5552 NV_NAN_PAYLOAD_PERM_0_TO_7|5.023000||Viu
5553 NV_NAN_PAYLOAD_PERM|5.023000||Viu
5554 NV_NAN_PAYLOAD_PERM_7_TO_0|5.023000||Viu
5555 NV_NAN_PAYLOAD_PERM_IEEE_754_128_BE|5.023000||Viu
5556 NV_NAN_PAYLOAD_PERM_IEEE_754_128_LE|5.023000||Viu
5557 NV_NAN_PAYLOAD_PERM_IEEE_754_64_BE|5.023000||Viu
5558 NV_NAN_PAYLOAD_PERM_IEEE_754_64_LE|5.023000||Viu
5559 NV_NAN_PAYLOAD_PERM_SKIP_EIGHT|5.023006||Viu
5560 NV_NAN_QS_BIT|5.023000||Viu
5561 NV_NAN_QS_BIT_OFFSET|5.023000||Viu
5562 NV_NAN_QS_BIT_SHIFT|5.023000||Viu
5563 NV_NAN_QS_BYTE|5.023000||Viu
5564 NV_NAN_QS_BYTE_OFFSET|5.023000||Viu
5565 NV_NAN_QS_QUIET|5.023000||Viu
5566 NV_NAN_QS_SIGNALING|5.023000||Viu
5567 NV_NAN_QS_TEST|5.023000||Viu
5568 NV_NAN_QS_XOR|5.023000||Viu
5569 NV_NAN_SET_QUIET|5.023000||Viu
5570 NV_NAN_SET_SIGNALING|5.023000||Viu
5571 NV_OVERFLOWS_INTEGERS_AT|5.010001|5.010001|Vn
5572 NV_PRESERVES_UV_BITS|5.006001|5.006001|Vn
5573 NVSIZE|5.006001|5.006001|Vn
5574 NVTYPE|5.006000|5.003007|poVn
5575 NV_VAX_ENDIAN|5.025003||Viu
5576 NV_WITHIN_IV|5.006000||Viu
5577 NV_WITHIN_UV|5.006000||Viu
5578 NV_X86_80_BIT|5.025004||Viu
5579 NV_ZERO_IS_ALLBITS_ZERO|5.035001|5.035001|Vn
5580 OA_AVREF|5.003007||Viu
5581 OA_BASEOP|5.005000||Viu
5582 OA_BASEOP_OR_UNOP|5.005000||Viu
5583 OA_BINOP|5.005000||Viu
5584 OA_CLASS_MASK|5.005000||Viu
5585 OA_COP|5.005000||Viu
5586 OA_CVREF|5.003007||Viu
5587 OA_DANGEROUS|5.003007||Viu
5588 OA_DEFGV|5.003007||Viu
5589 OA_FILEREF|5.003007||Viu
5590 OA_FILESTATOP|5.005000||Viu
5591 OA_FOLDCONST|5.003007||Viu
5592 OA_HVREF|5.003007||Viu
5593 OA_LIST|5.003007||Viu
5594 OA_LISTOP|5.005000||Viu
5595 OA_LOGOP|5.005000||Viu
5596 OA_LOOP|5.005000||Viu
5597 OA_LOOPEXOP|5.005000||Viu
5598 OA_MARK|5.003007||Viu
5599 OA_METHOP|5.021005||Viu
5600 OA_OPTIONAL|5.003007||Viu
5601 OA_OTHERINT|5.003007||Viu
5602 OA_PADOP|5.006000||Viu
5603 OA_PMOP|5.005000||Viu
5604 OA_PVOP_OR_SVOP|5.006000||Viu
5605 OA_RETSCALAR|5.003007||Viu
5606 OA_SCALAR|5.003007||Viu
5607 OA_SCALARREF|5.003007||Viu
5608 OASHIFT|5.003007||Viu
5609 OA_SVOP|5.005000||Viu
5610 OA_TARGET|5.003007||Viu
5611 OA_TARGLEX|5.006000||Viu
5612 OA_UNOP|5.005000||Viu
5613 OA_UNOP_AUX|5.021007||Viu
5614 O_BINARY|5.006000||Viu
5615 O_CREAT|5.006000||Viu
5616 OCSHIFT|5.006000||Viu
5617 OCTAL_VALUE|5.019008||Viu
5618 Off_t|5.003007|5.003007|Vn
5619 Off_t_size|5.006000|5.006000|Vn
5620 OFFUNI_IS_INVARIANT|5.023003||Viu
5621 OFFUNISKIP|5.019004||Viu
5622 ONCE_PAT_MOD|5.009005||Viu
5623 ONCE_PAT_MODS|5.009005||Viu
19775624 oopsAV|5.003007||Viu
19785625 oopsHV|5.003007||Viu
5626 OP|5.003007||Viu
19795627 op_append_elem|5.013006|5.013006|
19805628 op_append_list|5.013006|5.013006|
5629 opASSIGN|5.003007||Viu
5630 OP_BINARY|5.004000||Viu
5631 OP_CHECK_MUTEX_INIT|5.015008||Viu
5632 OP_CHECK_MUTEX_LOCK|5.015008||Viu
5633 OP_CHECK_MUTEX_TERM|5.015008||Viu
5634 OP_CHECK_MUTEX_UNLOCK|5.015008||Viu
19815635 OP_CLASS|5.013007|5.013007|
19825636 op_class|5.025010|5.025010|
19835637 op_clear|5.006000||cViu
5638 OPCODE|5.003007||Viu
19845639 op_contextualize|5.013006|5.013006|
19855640 op_convert_list|5.021006|5.021006|
19865641 OP_DESC|5.007003|5.007003|
19875642 op_dump|5.006000|5.006000|
5643 OPEN|5.003007||Viu
5644 open|5.005000||Viu
5645 opendir|5.005000||Viu
19885646 openn_cleanup|5.019010||Viu
19895647 openn_setup|5.019010||Viu
19905648 open_script|5.005000||Viu
5649 OPEN_t8_p8|5.033003||Viu
5650 OPEN_t8_pb|5.033003||Viu
5651 OPEN_tb_p8|5.033003||Viu
5652 OPEN_tb_pb|5.033003||Viu
5653 OPERAND|5.003007||Viu
5654 OPERANDl|5.031005||Viu
5655 OPERANDs|5.031005||Viu
5656 OPFAIL|5.009005||Viu
5657 OPFAIL_t8_p8|5.033003||Viu
5658 OPFAIL_t8_pb|5.033003||Viu
5659 OPFAIL_tb_p8|5.033003||Viu
5660 OPFAIL_tb_pb|5.033003||Viu
5661 OPf_FOLDED|5.021007||Viu
19915662 OPf_KIDS|5.003007|5.003007|
5663 OPf_KNOW|5.003007||Viu
5664 OPf_LIST|5.003007||Viu
5665 OPf_MOD|5.003007||Viu
5666 OPf_PARENS|5.003007||Viu
19925667 op_free|5.003007|5.003007|
5668 OP_FREED|5.017002||Viu
5669 OPf_REF|5.003007||Viu
5670 OPf_SPECIAL|5.003007||Viu
5671 OPf_STACKED|5.003007||Viu
5672 OPf_WANT|5.004000||Viu
5673 OPf_WANT_LIST|5.004000||Viu
5674 OPf_WANT_SCALAR|5.004000||Viu
5675 OPf_WANT_VOID|5.004000||Viu
5676 OP_GIMME|5.004000||Viu
5677 OP_GIMME_REVERSE|5.010001||Viu
19935678 OpHAS_SIBLING|5.021007|5.003007|p
19945679 op_integerize|5.015003||Viu
5680 OP_IS_DIRHOP|5.015003||Viu
5681 OP_IS_FILETEST|5.006001||Viu
5682 OP_IS_FILETEST_ACCESS|5.008001||Viu
5683 OP_IS_INFIX_BIT|5.021009||Viu
5684 OP_IS_NUMCOMPARE|5.015003||Viu
5685 OP_IS_SOCKET|5.006001||Viu
5686 OP_IS_STAT|5.031001||Viu
19955687 OpLASTSIB_set|5.021011|5.003007|p
19965688 op_linklist|5.013006|5.013006|
19975689 op_lvalue|5.013007|5.013007|x
19985690 op_lvalue_flags|||ciu
5691 OP_LVALUE_NO_CROAK|5.015001||Viu
19995692 OpMAYBESIB_set|5.021011|5.003007|p
20005693 opmethod_stash|5.021007||Viu
20015694 OpMORESIB_set|5.021011|5.003007|p
20025695 OP_NAME|5.007003|5.007003|
20035696 op_null|5.007002|5.007002|
5697 OPpALLOW_FAKE|5.015006||Viu
20045698 op_parent|5.025001|5.025001|n
5699 OPpARG1_MASK|5.021004||Viu
5700 OPpARG2_MASK|5.021004||Viu
5701 OPpARG3_MASK|5.021004||Viu
5702 OPpARG4_MASK|5.021004||Viu
5703 OPpARGELEM_AV|5.025004||Viu
5704 OPpARGELEM_HV|5.025004||Viu
5705 OPpARGELEM_MASK|5.025004||Viu
5706 OPpARGELEM_SV|5.025004||Viu
5707 OPpASSIGN_BACKWARDS|5.003007||Viu
5708 OPpASSIGN_COMMON_AGG|5.023002||Viu
5709 OPpASSIGN_COMMON_RC1|5.023002||Viu
5710 OPpASSIGN_COMMON_SCALAR|5.023002||Viu
5711 OPpASSIGN_CV_TO_GV|5.009003||Viu
5712 OPpASSIGN_TRUEBOOL|5.027003||Viu
5713 OPpAVHVSWITCH_MASK|5.025006||Viu
5714 OPpCONCAT_NESTED|5.027007||Viu
5715 OPpCONST_BARE|5.003007||Viu
5716 OPpCONST_ENTERED|5.003007||Viu
5717 OPpCONST_NOVER|5.009003||Viu
5718 OPpCONST_SHORTCIRCUIT|5.009001||Viu
5719 OPpCONST_STRICT|5.005004||Viu
5720 OPpCOREARGS_DEREF1|5.015003||Viu
5721 OPpCOREARGS_DEREF2|5.015003||Viu
5722 OPpCOREARGS_PUSHMARK|5.015003||Viu
5723 OPpCOREARGS_SCALARMOD|5.015003||Viu
5724 OPpDEREF|5.004000||Viu
5725 OPpDEREF_AV|5.003007||Viu
5726 OPpDEREF_HV|5.003007||Viu
5727 OPpDEREF_SV|5.004000||Viu
5728 OPpDONT_INIT_GV|5.009003||Viu
20055729 OPpEARLY_CV|5.006000|5.006000|
20065730 OPpENTERSUB_AMPER|5.003007|5.003007|
5731 OPpENTERSUB_DB|5.003007||Viu
5732 OPpENTERSUB_HASTARG|5.006000||Viu
5733 OPpENTERSUB_INARGS|5.006000||Viu
5734 OPpENTERSUB_LVAL_MASK|5.015001||Viu
5735 OPpENTERSUB_NOPAREN|5.005004||Viu
5736 OPpEVAL_BYTES|5.015005||Viu
5737 OPpEVAL_COPHH|5.015005||Viu
5738 OPpEVAL_HAS_HH|5.009003||Viu
5739 OPpEVAL_RE_REPARSING|5.017011||Viu
5740 OPpEVAL_UNICODE|5.015005||Viu
5741 OPpEXISTS_SUB|5.006000||Viu
5742 OPpFLIP_LINENUM|5.003007||Viu
5743 OPpFT_ACCESS|5.008001||Viu
5744 OPpFT_AFTER_t|5.015008||Viu
5745 OPpFT_STACKED|5.009001||Viu
5746 OPpFT_STACKING|5.015001||Viu
5747 OPpHINT_STRICT_REFS|5.021004||Viu
5748 OPpHUSH_VMSISH|5.007003||Viu
5749 OPpINDEX_BOOLNEG|5.027003||Viu
5750 OPpITER_DEF|5.027008||Viu
5751 OPpITER_REVERSED|5.009002||Viu
5752 OPpKVSLICE|5.027001||Viu
5753 OPpLIST_GUESSED|5.003007||Viu
5754 OPpLVAL_DEFER|5.004000||Viu
5755 OPpLVAL_INTRO|5.003007||Viu
5756 OPpLVALUE|5.019006||Viu
5757 OPpLVREF_AV|5.021005||Viu
5758 OPpLVREF_CV|5.021005||Viu
5759 OPpLVREF_ELEM|5.021005||Viu
5760 OPpLVREF_HV|5.021005||Viu
5761 OPpLVREF_ITER|5.021005||Viu
5762 OPpLVREF_SV|5.021005||Viu
5763 OPpLVREF_TYPE|5.021005||Viu
5764 OPpMAYBE_LVSUB|5.007001||Viu
5765 OPpMAYBE_TRUEBOOL|5.017004||Viu
5766 OPpMAY_RETURN_CONSTANT|5.009003||Viu
5767 OPpMULTICONCAT_APPEND|5.027006||Viu
5768 OPpMULTICONCAT_FAKE|5.027006||Viu
5769 OPpMULTICONCAT_STRINGIFY|5.027006||Viu
5770 OPpMULTIDEREF_DELETE|5.021007||Viu
5771 OPpMULTIDEREF_EXISTS|5.021007||Viu
5772 OPpOFFBYONE|5.015002||Viu
5773 OPpOPEN_IN_CRLF|5.006000||Viu
5774 OPpOPEN_IN_RAW|5.006000||Viu
5775 OPpOPEN_OUT_CRLF|5.006000||Viu
5776 OPpOPEN_OUT_RAW|5.006000||Viu
5777 OPpOUR_INTRO|5.006000||Viu
5778 OPpPADHV_ISKEYS|5.027003||Viu
5779 OPpPADRANGE_COUNTMASK|5.017006||Viu
5780 OPpPADRANGE_COUNTSHIFT|5.017006||Viu
5781 OPpPAD_STATE|5.009004||Viu
5782 OPpPV_IS_UTF8|5.016000||Viu
5783 OPpREFCOUNTED|5.006000||Viu
5784 OPpREPEAT_DOLIST|5.003007||Viu
20075785 op_prepend_elem|5.013006|5.013006|
5786 OPpREVERSE_INPLACE|5.011002||Viu
5787 OPpRV2HV_ISKEYS|5.027003||Viu
5788 OPpSLICE|5.004000||Viu
5789 OPpSLICEWARNING|5.019004||Viu
5790 OPpSORT_DESCEND|5.009002||Viu
5791 OPpSORT_INPLACE|5.009001||Viu
5792 OPpSORT_INTEGER|5.006000||Viu
5793 OPpSORT_NUMERIC|5.006000||Viu
5794 OPpSORT_REVERSE|5.006000||Viu
5795 OPpSORT_STABLE|5.009003||Viu
5796 OPpSORT_UNSTABLE|5.027004||Viu
5797 OPpSPLIT_ASSIGN|5.025006||Viu
5798 OPpSPLIT_IMPLIM|5.019002||Viu
5799 OPpSPLIT_LEX|5.025006||Viu
5800 OPpSUBSTR_REPL_FIRST|5.015006||Viu
5801 OPpTARGET_MY|5.006000||Viu
5802 OPpTRANS_ALL|5.009001||Viu
5803 OPpTRANS_CAN_FORCE_UTF8|5.031006||Viu
5804 OPpTRANS_COMPLEMENT|5.003007||Viu
5805 OPpTRANS_DELETE|5.003007||Viu
5806 OPpTRANS_FROM_UTF|5.006000||Viu
5807 OPpTRANS_GROWS|5.006000||Viu
5808 OPpTRANS_IDENTICAL|5.006000||Viu
5809 OPpTRANS_SQUASH|5.003007||Viu
5810 OPpTRANS_TO_UTF|5.006000||Viu
5811 OPpTRANS_USE_SVOP|5.031006||Viu
5812 OPpTRUEBOOL|5.017004||Viu
5813 OpREFCNT_dec|5.006000||Viu
20085814 op_refcnt_dec|||xiu
5815 OpREFCNT_inc|5.006000||Viu
20095816 op_refcnt_inc|||xiu
5817 OP_REFCNT_INIT|5.006000||Viu
5818 OP_REFCNT_LOCK|5.006000||Viu
20105819 op_refcnt_lock|5.009002|5.009002|u
5820 OpREFCNT_set|5.006000||Viu
5821 OP_REFCNT_TERM|5.006000||Viu
5822 OP_REFCNT_UNLOCK|5.006000||Viu
20115823 op_refcnt_unlock|5.009002|5.009002|u
20125824 op_relocate_sv|5.021005||Viu
20135825 op_scope|5.013007|5.013007|x
5826 OP_SIBLING|5.021002||Viu
20145827 OpSIBLING|5.021007|5.003007|p
20155828 op_sibling_splice|5.021002|5.021002|n
5829 OpSLAB|5.017002||Viu
20165830 opslab_force_free|5.017002||Viu
20175831 opslab_free|5.017002||Viu
20185832 opslab_free_nopad|5.017002||Viu
5833 OpslabREFCNT_dec|5.017002||Viu
5834 OpslabREFCNT_dec_padok|5.017002||Viu
5835 OpSLOT|5.017002||Viu
5836 OPSLOT_HEADER|5.017002||Viu
5837 OpSLOToff|5.033001||Viu
20195838 op_std_init|5.015003||Viu
5839 OPTIMIZED|5.005000||Viu
5840 OPTIMIZED_t8_p8|5.033003||Viu
5841 OPTIMIZED_t8_pb|5.033003||Viu
5842 OPTIMIZED_tb_p8|5.033003||Viu
5843 OPTIMIZED_tb_pb|5.033003||Viu
20205844 optimize_op|5.027006||Viu
20215845 optimize_optree|5.027006||Vi
5846 optimize_regclass|5.035001||Viu
20225847 OP_TYPE_IS|5.019007|5.019007|
5848 OP_TYPE_IS_NN|5.019010||Viu
5849 OP_TYPE_ISNT|5.019010||Viu
5850 OP_TYPE_ISNT_AND_WASNT|5.019010||Viu
5851 OP_TYPE_ISNT_AND_WASNT_NN|5.019010||Viu
5852 OP_TYPE_ISNT_NN|5.019010||Viu
20235853 OP_TYPE_IS_OR_WAS|5.019010|5.019010|
5854 OP_TYPE_IS_OR_WAS_NN|5.019010||Viu
20245855 op_unscope|5.017003||xViu
5856 O_RDONLY|5.006000||Viu
5857 O_RDWR|5.006000||Viu
20255858 ORIGMARK|5.003007|5.003007|
2026 OSNAME|5.003007|5.003007|
2027 OSVERS|5.007002|5.007002|
2028 output_non_portable|||Viu
5859 OSNAME|5.003007|5.003007|Vn
5860 OSVERS|5.007002|5.007002|Vn
5861 O_TEXT|5.006000||Viu
5862 OutCopFILE|5.007003||Viu
5863 output_non_portable|5.031008||Viu
20295864 output_posix_warnings|5.029005||Viu
5865 O_VMS_DELETEONCLOSE|5.031002||Viu
5866 O_WRONLY|5.006000||Viu
20305867 package|5.003007||Viu
20315868 package_version|5.011001||Viu
2032 pack_cat|||
5869 pack_cat|5.007003|5.007003|d
20335870 packlist|5.008001|5.008001|
20345871 pack_rec|5.008001||Viu
2035 packWARN|5.007003||pVu
5872 packWARN2|5.007003|5.003007|p
5873 packWARN3|5.007003|5.003007|p
5874 packWARN4|5.007003|5.003007|p
5875 packWARN|5.007003|5.003007|p
20365876 pad_add_anon|5.008001|5.008001|
20375877 pad_add_name_pv|5.015001|5.015001|
20385878 pad_add_name_pvn|5.015001|5.015001|
20395879 pad_add_name_pvs|5.015001|5.015001|
20405880 pad_add_name_sv|5.015001|5.015001|
5881 padadd_NO_DUP_CHECK|5.011002||Viu
5882 padadd_OUR|5.011002||Viu
5883 padadd_STALEOK|5.017003||Viu
5884 padadd_STATE|5.011002||Viu
20415885 pad_add_weakref|5.021007||Viu
20425886 pad_alloc|5.003007|5.003007|x
20435887 pad_alloc_name|5.015001||Vi
20445888 PadARRAY|5.017004|5.017004|x
2045 PAD_BASE_SV|||i
5889 PAD_BASE_SV|5.008001||Vi
20465890 pad_block_start|5.008001||Vi
20475891 pad_check_dup|5.008001||Vi
2048 PAD_CLONE_VARS|||i
2049 PAD_COMPNAME_FLAGS|||i
2050 PAD_COMPNAME_GEN|||i
2051 PAD_COMPNAME_GEN_set|||i
2052 PAD_COMPNAME_OURSTASH|||i
2053 PAD_COMPNAME_PV|||i
2054 pad_compname_type|||
2055 PAD_COMPNAME_TYPE|||i
5892 PAD_CLONE_VARS|5.008001||Vi
5893 PAD_COMPNAME|5.017004||Viu
5894 PAD_COMPNAME_FLAGS|5.008001||Vi
5895 PAD_COMPNAME_FLAGS_isOUR|5.009004||Viu
5896 PAD_COMPNAME_GEN|5.008001||Vi
5897 PAD_COMPNAME_GEN_set|5.009003||Vi
5898 PAD_COMPNAME_OURSTASH|5.008001||Vi
5899 PAD_COMPNAME_PV|5.008001||Vi
5900 PAD_COMPNAME_SV|5.009005||Viu
5901 PAD_COMPNAME_TYPE|5.008001||Vi
5902 pad_compname_type|5.009003|5.009003|d
5903 PAD_FAKELEX_ANON|5.009005||Viu
5904 PAD_FAKELEX_MULTI|5.009005||Viu
20565905 pad_findlex|5.005000||Vi
20575906 pad_findmy_pv|5.015001|5.015001|
20585907 pad_findmy_pvn|5.015001|5.015001|
20715920 padlist_store|5.017004||Viu
20725921 PadMAX|5.017004|5.017004|x
20735922 padname_dup|5.021007||Vi
5923 PadnameFLAGS|5.021007||Viu
20745924 padname_free|||ciu
2075 PadnameIN_SCOPE|5.031004||nViu
2076 PadnameIsOUR|||i
2077 PadnameIsSTATE|||i
5925 PADNAME_FROM_PV|5.021007||Viu
5926 PadnameIN_SCOPE|5.031004||Vniu
5927 PadnameIsOUR|5.017004||Vi
5928 PadnameIsSTATE|5.017004||Vi
5929 PadnameIsSTATE_on|5.021007||Viu
20785930 PadnameLEN|5.017004|5.017004|x
20795931 PadnamelistARRAY|5.017004|5.017004|x
20805932 padnamelist_dup|5.021007||Vi
2081 padnamelist_fetch|5.021007|5.021007|nx
5933 padnamelist_fetch|5.021007|5.021007|xn
20825934 padnamelist_free|||ciu
20835935 PadnamelistMAX|5.017004|5.017004|x
5936 PadnamelistMAXNAMED|5.019003||Viu
20845937 PadnamelistREFCNT|5.021007|5.021007|x
20855938 PadnamelistREFCNT_dec|5.021007|5.021007|x
20865939 padnamelist_store|5.021007|5.021007|x
2087 PadnameOURSTASH|||i
2088 PadnameOUTER|||i
5940 PadnameLVALUE|5.021006||Viu
5941 PadnameLVALUE_on|5.021006||Viu
5942 PadnameOURSTASH|5.017004||Vi
5943 PadnameOURSTASH_set|5.021007||Viu
5944 PadnameOUTER|5.017004||Vi
5945 PadnamePROTOCV|5.021007||Viu
20895946 PadnamePV|5.017004|5.017004|x
20905947 PadnameREFCNT|5.021007|5.021007|x
20915948 PadnameREFCNT_dec|5.021007|5.021007|x
20925949 PadnameSV|5.017004|5.017004|x
5950 PADNAMEt_LVALUE|5.021007||Viu
5951 PADNAMEt_OUR|5.021007||Viu
20935952 PADNAMEt_OUTER|5.021007|5.021007|
2094 PadnameTYPE|||i
5953 PADNAMEt_STATE|5.021007||Viu
5954 PADNAMEt_TYPED|5.021007||Viu
5955 PadnameTYPE|5.017004||Vi
5956 PadnameTYPE_set|5.021007||Viu
20955957 PadnameUTF8|5.017004|5.017004|x
20965958 pad_new|5.008001|5.008001|
5959 padnew_CLONE|5.008001||Viu
5960 padnew_SAVE|5.008001||Viu
5961 padnew_SAVESUB|5.008001||Viu
5962 pad_peg|5.009004||Viu
20975963 pad_push|5.008001||cVi
20985964 pad_reset|5.003007||Vi
2099 PAD_RESTORE_LOCAL|||i
2100 PAD_SAVE_LOCAL|||i
2101 PAD_SAVE_SETNULLPAD|||i
2102 PAD_SET_CUR|||i
2103 PAD_SET_CUR_NOSAVE|||i
2104 pad_setsv|5.008001|5.008001|
2105 PAD_SETSV|||i
2106 pad_sv|5.003007||V
2107 PAD_SV|||i
2108 PAD_SVl|||i
5965 PAD_RESTORE_LOCAL|5.008001||Vi
5966 PAD_SAVE_LOCAL|5.008001||Vi
5967 PAD_SAVE_SETNULLPAD|5.008001||Vi
5968 PAD_SET_CUR|5.008001||Vi
5969 PAD_SET_CUR_NOSAVE|5.008002||Vi
5970 pad_setsv|5.008001||cV
5971 PAD_SETSV|5.008001||Vi
5972 pad_sv|5.003007||cV
5973 PAD_SV|5.003007||Vi
5974 PAD_SVl|5.008001||Vi
21095975 pad_swipe|5.003007||Vi
21105976 pad_tidy|5.008001|5.008001|x
5977 panic_write2|5.008001||Viu
5978 PARENT_FAKELEX_FLAGS|5.009005||Viu
5979 PARENT_PAD_INDEX|5.009005||Viu
21115980 parse_arithexpr|5.013008|5.013008|x
21125981 parse_barestmt|5.013007|5.013007|x
21135982 parse_block|5.013007|5.013007|x
21275996 parse_subsignature|5.031003|5.031003|x
21285997 parse_termexpr|5.013008|5.013008|x
21295998 parse_unicode_opts|5.008001||Viu
2130 parse_uniprop_string|5.027011||cViu
2131 path_is_searchable|5.019001||nViu
5999 parse_uniprop_string|5.027011||Viu
6000 PATCHLEVEL|5.003007||Viu
6001 path_is_searchable|5.019001||Vniu
6002 Pause|5.003007||Viu
6003 pause|5.005000||Viu
6004 pclose|5.003007||Viu
21326005 peep|5.003007||Viu
21336006 pending_ident|5.017004||Viu
21346007 PERL_ABS|5.008001|5.003007|p
6008 Perl_acos|5.021004|5.021004|n
21356009 perl_alloc|5.003007|5.003007|n
2136 perl_alloc_using|5.006000||nVu
2137 PERL_BCDVERSION||5.003007|pou
2138 perl_clone|5.006000||nV
2139 perl_clone_using|5.006000||nVu
6010 PERL_ALLOC_CHECK|5.006000||Viu
6011 perl_alloc_using|5.006000||Vnu
6012 PERL_ANY_COW|5.017007||Viu
6013 PERL_API_REVISION|5.006000||Viu
6014 PERL_API_SUBVERSION|5.006000||Viu
6015 PERL_API_VERSION|5.006000||Viu
6016 PERL_API_VERSION_STRING|5.013004||Viu
6017 PERL_ARENA_ROOTS_SIZE|5.009004||Viu
6018 PERL_ARENA_SIZE|5.009003||Viu
6019 PERL_ARGS_ASSERT_CROAK_XS_USAGE|||ponu
6020 Perl_asin|5.021004|5.021004|n
6021 Perl_assert|5.011000||Viu
6022 perl_assert_ptr|5.027004||Viu
6023 PERL_ASYNC_CHECK|5.006000|5.006000|
6024 Perl_atan2|5.006000|5.006000|n
6025 Perl_atan|5.021004|5.021004|n
6026 Perl_atof2|5.006001||Viu
6027 Perl_atof|5.006000||Viu
6028 PERL_BCDVERSION||5.003007|onu
6029 PERL_BISON_VERSION|5.023008||Viu
6030 PERL_BITFIELD16|5.010001||Viu
6031 PERL_BITFIELD32|5.010001||Viu
6032 PERL_BITFIELD8|5.010001||Viu
6033 PERL_CALLCONV|5.005002||Viu
6034 PERL_CALLCONV_NO_RET|5.017002||Viu
6035 Perl_calloc|5.006000||Viu
6036 Perl_ceil|5.009001|5.009001|n
6037 PERL_CKDEF|5.006000||Viu
6038 perl_clone|5.006000||Vn
6039 perl_clone_using|5.006000||Vnu
21406040 perl_construct|5.003007|5.003007|n
2141 Perl_custom_op_xop|5.013007||V
6041 PERL_COP_SEQMAX|5.013010||Viu
6042 PERL_COPY_ON_WRITE|5.023001||Viu
6043 Perl_cos|5.006000|5.006000|n
6044 Perl_cosh|5.021004|5.021004|n
6045 PERL_COUNT_MULTIPLIER|5.027007||Viu
6046 Perl_custom_op_xop|5.019006||V
6047 PERLDB_ALL|5.004002||Viu
6048 PERLDBf_GOTO|5.004005||Viu
6049 PERLDBf_INTER|5.004002||Viu
6050 PERLDBf_LINE|5.004002||Viu
6051 PERLDBf_NAMEANON|5.006000||Viu
6052 PERLDBf_NAMEEVAL|5.006000||Viu
6053 PERLDBf_NONAME|5.004005||Viu
6054 PERLDBf_NOOPT|5.004002||Viu
6055 PERLDBf_SAVESRC|5.010001||Viu
6056 PERLDBf_SAVESRC_INVALID|5.010001||Viu
6057 PERLDBf_SAVESRC_NOSUBS|5.010001||Viu
6058 PERLDBf_SINGLE|5.004002||Viu
6059 PERLDBf_SUB|5.004002||Viu
6060 PERLDBf_SUBLINE|5.004002||Viu
6061 PERLDB_GOTO|5.004005||Viu
6062 PERLDB_INTER|5.004002||Viu
6063 PERLDB_LINE|5.004002||Viu
6064 PERLDB_LINE_OR_SAVESRC|5.023002||Viu
6065 PERLDB_NAMEANON|5.006000||Viu
6066 PERLDB_NAMEEVAL|5.006000||Viu
6067 PERLDB_NOOPT|5.004002||Viu
6068 PERLDB_SAVESRC|5.010001||Viu
6069 PERLDB_SAVESRC_INVALID|5.010001||Viu
6070 PERLDB_SAVESRC_NOSUBS|5.010001||Viu
6071 PERLDB_SINGLE|5.004002||Viu
6072 PERLDB_SUB|5.004002||Viu
6073 PERLDB_SUBLINE|5.004002||Viu
6074 PERLDB_SUB_NN|5.004005||Viu
6075 PERL_DEB2|5.021007||Viu
6076 PERL_DEB|5.008001||Viu
6077 PERL_DEBUG|5.008001||Viu
6078 Perl_debug_log|5.003007||Viu
6079 PERL_DEBUG_PAD|5.007003||Viu
6080 PERL_DEBUG_PAD_ZERO|5.007003||Viu
6081 PERL_DECIMAL_VERSION|5.019008||Viu
6082 PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION|5.009003||Viu
21426083 perl_destruct|5.007003|5.007003|n
2143 Perl_eval_pv||5.003007|ou
2144 Perl_eval_sv||5.003007|ou
6084 PerlDir_chdir|5.005000||Viu
6085 PerlDir_close|5.005000||Viu
6086 PerlDir_mapA|5.006000||Viu
6087 PerlDir_mapW|5.006000||Viu
6088 PerlDir_mkdir|5.005000||Viu
6089 PerlDir_open|5.005000||Viu
6090 PerlDir_read|5.005000||Viu
6091 PerlDir_rewind|5.005000||Viu
6092 PerlDir_rmdir|5.005000||Viu
6093 PerlDir_seek|5.005000||Viu
6094 PerlDir_tell|5.005000||Viu
6095 PERL_DONT_CREATE_GVSV|5.009003||Viu
6096 Perl_drand48|5.019004||Viu
6097 Perl_drand48_init|5.019004||Viu
6098 PERL_DRAND48_QUAD|5.019004||Viu
6099 PERL_DTRACE_PROBE_ENTRY|5.023009||Viu
6100 PERL_DTRACE_PROBE_FILE_LOADED|5.023009||Viu
6101 PERL_DTRACE_PROBE_FILE_LOADING|5.023009||Viu
6102 PERL_DTRACE_PROBE_OP|5.023009||Viu
6103 PERL_DTRACE_PROBE_PHASE|5.023009||Viu
6104 PERL_DTRACE_PROBE_RETURN|5.023009||Viu
6105 PERL_EBCDIC_TABLES_H|5.027001||Viu
6106 PERL_ENABLE_EXPERIMENTAL_REGEX_OPTIMISATIONS|5.009004||Viu
6107 PERL_ENABLE_EXTENDED_TRIE_OPTIMISATION|5.009004||Viu
6108 PERL_ENABLE_POSITIVE_ASSERTION_STUDY|5.009005||Viu
6109 PERL_ENABLE_TRIE_OPTIMISATION|5.009004||Viu
6110 PerlEnv_clearenv|5.006000||Viu
6111 PerlEnv_ENVgetenv|5.006000||Viu
6112 PerlEnv_ENVgetenv_len|5.006000||Viu
6113 PerlEnv_free_childdir|5.006000||Viu
6114 PerlEnv_free_childenv|5.006000||Viu
6115 PerlEnv_get_childdir|5.006000||Viu
6116 PerlEnv_get_childenv|5.006000||Viu
6117 PerlEnv_get_child_IO|5.006000||Viu
6118 PerlEnv_getenv|5.005000||Viu
6119 PerlEnv_getenv_len|5.006000||Viu
6120 PerlEnv_lib_path|5.005000||Viu
6121 PerlEnv_os_id|5.006000||Viu
6122 PerlEnv_putenv|5.005000||Viu
6123 PerlEnv_sitelib_path|5.005000||Viu
6124 PerlEnv_uname|5.005004||Viu
6125 PerlEnv_vendorlib_path|5.006000||Viu
6126 Perl_error_log|5.006000||Viu
6127 Perl_eval_pv||5.003007|onu
6128 Perl_eval_sv||5.003007|onu
21456129 PERL_EXIT_ABORT|5.019003|5.019003|
21466130 PERL_EXIT_DESTRUCT_END|5.007003|5.007003|
21476131 PERL_EXIT_EXPECTED|5.006000|5.006000|
21486132 PERL_EXIT_WARN|5.019003|5.019003|
6133 Perl_exp|5.006000|5.006000|n
6134 PERL_FEATURE_H|5.029006||Viu
6135 PERL_FILE_IS_ABSOLUTE|5.006000||Viu
6136 PERL_FILTER_EXISTS|5.009005||Viu
6137 Perl_floor|5.006000|5.006000|n
6138 PERL_FLUSHALL_FOR_CHILD|5.006000||Viu
6139 Perl_fmod|5.006000|5.006000|n
6140 Perl_fp_class|5.007003||Viu
6141 Perl_fp_class_denorm|5.007003||Viu
6142 Perl_fp_class_inf|5.007003||Viu
6143 Perl_fp_class_nan|5.007003||Viu
6144 Perl_fp_class_ndenorm|5.007003||Viu
6145 Perl_fp_class_ninf|5.007003||Viu
6146 Perl_fp_class_nnorm|5.007003||Viu
6147 Perl_fp_class_norm|5.007003||Viu
6148 Perl_fp_class_nzero|5.007003||Viu
6149 Perl_fp_class_pdenorm|5.007003||Viu
6150 Perl_fp_class_pinf|5.007003||Viu
6151 Perl_fp_class_pnorm|5.007003||Viu
6152 Perl_fp_class_pzero|5.007003||Viu
6153 Perl_fp_class_qnan|5.007003||Viu
6154 Perl_fp_class_snan|5.007003||Viu
6155 Perl_fp_class_zero|5.007003||Viu
6156 PERL_FPU_INIT|5.007002||Viu
6157 PERL_FPU_POST_EXEC|5.008001||Viu
6158 PERL_FPU_PRE_EXEC|5.008001||Viu
21496159 perl_free|5.003007|5.003007|n
6160 Perl_free_c_backtrace|5.021001||Viu
6161 Perl_frexp|5.006000|5.006000|n
6162 PERL_FS_VER_FMT|5.006000||Viu
6163 PERL_FS_VERSION|5.010001||Viu
6164 PERL_GCC_BRACE_GROUPS_FORBIDDEN|5.008001||Viu
6165 PERL_GET_CONTEXT|5.006000||Viu
6166 PERL_GET_INTERP|5.006000||Viu
6167 PERL_GET_THX|5.006000||Viu
6168 PERL_GIT_UNPUSHED_COMMITS|5.010001||Viu
6169 PERL_GPROF_MONCONTROL|5.007002||Viu
6170 PERL_HANDY_H|5.027001||Viu
21506171 PERL_HASH|5.003007|5.003007|p
6172 PERL_HASH_DEFAULT_HvMAX|5.017011||Viu
6173 PERL_HASH_FUNC|5.017006||Viu
6174 PERL_HASH_FUNC_SIPHASH13|5.033007||Viu
6175 PERL_HASH_FUNC_ZAPHOD32|5.027001||Viu
6176 PERL_HASH_INTERNAL|5.008002||Viu
6177 PERL_HASH_ITER_BUCKET|5.018000||Viu
6178 PERL_HASH_RANDOMIZE_KEYS|5.018000||Viu
6179 PERL_HASH_SEED|5.008001||Viu
6180 PERL_HASH_SEED_BYTES|5.017006||Viu
6181 PERL_HASH_SEED_STATE|5.027001||Viu
6182 PERL_HASH_SEED_WORDS|5.033007||Viu
6183 PERL_HASH_STATE_BYTES|5.027001||Viu
6184 PERL_HASH_STATE_WORDS|5.033007||Viu
6185 PERL_HASH_USE_SBOX32_ALSO|5.027001||Viu
6186 PERL_HASH_WITH_SEED|5.021001||Viu
6187 PERL_HASH_WITH_STATE|5.027001||Viu
6188 PERL_HV_ALLOC_AUX_SIZE|5.019010||Viu
6189 PERL_HV_ARRAY_ALLOC_BYTES|5.006000||Viu
6190 PERL___I|5.009005||Viu
6191 PERL_IMPLICIT_CONTEXT|5.006000||Viu
6192 PERL_INC_VERSION_LIST|5.035001|5.035001|Vn
6193 Perl_internal_drand48|5.027004||Viu
6194 PERL_INTERPRETER_SIZE_UPTO_MEMBER|5.010000||Viu
21516195 PERL_INT_MAX|5.003007|5.003007|p
21526196 PERL_INT_MIN|5.003007|5.003007|p
6197 PERL_INVLIST_INLINE_H|5.029006||Viu
6198 PerlIO|5.003007||Viu
21536199 PerlIO_apply_layers|5.007001|5.007001|
6200 PerlIOArg|5.007001||Viu
6201 PerlIOBase|5.007001||Viu
21546202 PerlIO_binmode|5.007001|5.007001|
6203 PERLIOBUF_DEFAULT_BUFSIZ|5.013007||Viu
21556204 PerlIO_canset_cnt|5.003007|5.003007|n
21566205 PerlIO_clearerr|5.007003|5.007003|
21576206 PerlIO_close|5.007003|5.007003|
21586207 PerlIO_context_layers|5.009004|5.009004|u
21596208 PerlIO_debug|5.007001|5.007001|
6209 PERLIO_DUP_CLONE|5.007003||Viu
6210 PERLIO_DUP_FD|5.007003||Viu
21606211 PerlIO_eof|5.007003|5.007003|
21616212 PerlIO_error|5.007003|5.007003|
21626213 PerlIO_exportFILE|5.003007|5.003007|n
6214 PERLIO_F_APPEND|5.007001|5.007001|
21636215 PerlIO_fast_gets|5.003007|5.003007|n
6216 PERLIO_F_CANREAD|5.007001|5.007001|
6217 PERLIO_F_CANWRITE|5.007001|5.007001|
6218 PERLIO_F_CLEARED|5.013008||Viu
6219 PERLIO_F_CRLF|5.007001|5.007001|
21646220 PerlIO_fdopen|5.003007|5.003007|n
6221 PERLIO_F_EOF|5.007001|5.007001|
6222 PERLIO_F_ERROR|5.007001|5.007001|
6223 PERLIO_F_FASTGETS|5.007001|5.007001|
21656224 PerlIO_fileno|5.007003|5.007003|
21666225 PerlIO_fill|5.007003|5.007003|u
21676226 PerlIO_findFILE|5.003007|5.003007|n
6227 PERLIO_F_LINEBUF|5.007001|5.007001|
21686228 PerlIO_flush|5.007003|5.007003|
6229 PERLIO_F_NOTREG|5.008001||Viu
6230 PERLIO_F_OPEN|5.007001|5.007001|
6231 PERLIO_F_RDBUF|5.007001|5.007001|
6232 PERLIO_F_TEMP|5.007001|5.007001|
6233 PERLIO_F_TRUNCATE|5.007001|5.007001|
6234 PERLIO_F_TTY|5.007001||Viu
6235 PERLIO_F_UNBUF|5.007001|5.007001|
21696236 PERLIO_FUNCS_CAST|5.009003||pVu
2170 PERLIO_FUNCS_DECL|5.009003||pVu
6237 PERLIO_FUNCS_DECL|5.009003|5.009003|pVu
6238 PERLIO_F_UTF8|5.007001|5.007001|
6239 PERLIO_F_WRBUF|5.007001|5.007001|
21716240 PerlIO_get_base|5.007003|5.007003|
21726241 PerlIO_get_bufsiz|5.007003|5.007003|
21736242 PerlIO_getc|5.003007|5.003007|n
21746243 PerlIO_get_cnt|5.007003|5.007003|
21756244 PerlIO_getpos|5.003007|5.003007|n
21766245 PerlIO_get_ptr|5.007003|5.007003|
6246 PERLIO_H|5.027001||Viu
21776247 PerlIO_has_base|5.003007|5.003007|n
21786248 PerlIO_has_cntptr|5.003007|5.003007|n
21796249 PerlIO_importFILE|5.003007|5.003007|n
6250 PERLIO_INIT|5.009005||Viu
6251 PERLIO_K_BUFFERED|5.007001|5.007001|
6252 PERLIO_K_CANCRLF|5.007001|5.007001|
6253 PERLIO_K_DESTRUCT|5.007001||Viu
6254 PERLIO_K_DUMMY|5.007001||Viu
6255 PERLIO_K_FASTGETS|5.007001|5.007001|
6256 PERLIO_K_MULTIARG|5.007003|5.007003|
6257 PERLIO_K_RAW|5.007001|5.007001|
6258 PERLIO_K_UTF8|5.007001||Viu
6259 PERLIO_LAYERS|5.007001||Viu
6260 PERLIOL_H|5.027001||Viu
6261 PerlIONext|5.007001||Viu
6262 PERLIO_NOT_STDIO|5.003007||Viu
21806263 PerlIO_open|5.003007|5.003007|n
21816264 PerlIO_printf|5.006000|5.003007|
21826265 PerlIO_putc|5.003007|5.003007|n
21836266 PerlIO_puts|5.003007|5.003007|n
21846267 PerlIO_read|5.007003|5.007003|
21856268 PerlIO_releaseFILE|5.003007|5.003007|n
2186 PerlIO_reopen|5.003007|5.003007|
6269 PerlIO_reopen|5.003007|5.003007|n
21876270 PerlIO_restore_errno|5.021006||cViu
21886271 PerlIO_rewind|5.003007|5.003007|n
21896272 PerlIO_save_errno|5.021006||cViu
21906273 PerlIO_seek|5.007003|5.007003|
6274 PerlIOSelf|5.007001||Viu
21916275 PerlIO_set_cnt|5.007003|5.007003|
21926276 PerlIO_setlinebuf|5.007003|5.007003|
21936277 PerlIO_setpos|5.003007|5.003007|n
21966280 PerlIO_stdin|5.007003|5.007003|
21976281 PerlIO_stdout|5.007003|5.007003|
21986282 PerlIO_stdoutf|5.006000|5.003007|
6283 PERLIO_STDTEXT|5.007001||Viu
21996284 PerlIO_tell|5.007003|5.007003|
6285 PERLIO_TERM|5.009005||Viu
22006286 PerlIO_ungetc|5.003007|5.003007|n
22016287 PerlIO_unread|5.007003|5.007003|u
6288 PERLIO_USING_CRLF|5.007003||Viu
6289 PerlIOValid|5.007003||Viu
22026290 PerlIO_vprintf|5.003007|5.003007|n
22036291 PerlIO_write|5.007003|5.007003|
6292 Perl_isfinite|5.007003|5.007003|n
6293 Perl_isfinitel|5.021004||Viu
6294 PERL_IS_GCC|5.032001||Viu
6295 Perl_isinf|5.007003|5.007003|n
6296 Perl_isnan|5.006001|5.006001|n
6297 PERL_IS_SUBWORD_ADDR|5.027007||Viu
6298 PERL_JNP_TO_DECIMAL|5.033001||Viu
22046299 Perl_langinfo|5.027004|5.027004|n
6300 PERL_LANGINFO_H|5.027004||Viu
6301 PERL_LAST_5_18_0_INTERP_MEMBER|5.017009||Viu
6302 Perl_ldexp|5.021003|5.021003|n
6303 PerlLIO_access|5.005000||Viu
6304 PerlLIO_chmod|5.005000||Viu
6305 PerlLIO_chown|5.005000||Viu
6306 PerlLIO_chsize|5.005000||Viu
6307 PerlLIO_close|5.005000||Viu
6308 PerlLIO_dup2|5.005000||Viu
22056309 PerlLIO_dup2_cloexec|5.027008||Viu
6310 PerlLIO_dup|5.005000||Viu
22066311 PerlLIO_dup_cloexec|5.027008||Viu
6312 PerlLIO_flock|5.005000||Viu
6313 PerlLIO_fstat|5.005000||Viu
6314 PerlLIO_ioctl|5.005000||Viu
6315 PerlLIO_isatty|5.005000||Viu
6316 PerlLIO_link|5.006000||Viu
6317 PerlLIO_lseek|5.005000||Viu
6318 PerlLIO_lstat|5.005000||Viu
6319 PerlLIO_mktemp|5.005000||Viu
6320 PerlLIO_open3|5.005000||Viu
22076321 PerlLIO_open3_cloexec|5.027008||Viu
6322 PerlLIO_open|5.005000||Viu
22086323 PerlLIO_open_cloexec|5.027008||Viu
6324 PerlLIO_read|5.005000||Viu
6325 PerlLIO_readlink|5.033005||Viu
6326 PerlLIO_rename|5.005000||Viu
6327 PerlLIO_setmode|5.005000||Viu
6328 PerlLIO_stat|5.005000||Viu
6329 PerlLIO_symlink|5.033005||Viu
6330 PerlLIO_tmpnam|5.005000||Viu
6331 PerlLIO_umask|5.005000||Viu
6332 PerlLIO_unlink|5.005000||Viu
6333 PerlLIO_utime|5.005000||Viu
6334 PerlLIO_write|5.005000||Viu
22096335 PERL_LOADMOD_DENY|5.006000|5.003007|
22106336 PERL_LOADMOD_IMPORT_OPS|5.006000|5.003007|
22116337 PERL_LOADMOD_NOIMPORT|5.006000|5.003007|
6338 Perl_log10|5.021004|5.021004|n
6339 Perl_log|5.006000|5.006000|n
22126340 PERL_LONG_MAX|5.003007|5.003007|p
22136341 PERL_LONG_MIN|5.003007|5.003007|p
22146342 PERL_MAGIC_arylen|5.007002|5.003007|p
22256353 PERL_MAGIC_envelem|5.007002|5.003007|p
22266354 PERL_MAGIC_ext|5.007002|5.003007|p
22276355 PERL_MAGIC_fm|5.007002|5.003007|p
2228 PERL_MAGIC_glob||5.003007|pou
6356 PERL_MAGIC_glob||5.003007|ponu
22296357 PERL_MAGIC_hints|5.009004|5.009004|
22306358 PERL_MAGIC_hintselem|5.009004|5.009004|
22316359 PERL_MAGIC_isa|5.007002|5.003007|p
22326360 PERL_MAGIC_isaelem|5.007002|5.003007|p
22336361 PERL_MAGIC_lvref|5.021005|5.021005|
2234 PERL_MAGIC_mutex||5.003007|pou
6362 PERL_MAGIC_mutex||5.003007|ponu
22356363 PERL_MAGIC_nkeys|5.007002|5.003007|p
22366364 PERL_MAGIC_nonelem|5.027009|5.027009|
2237 PERL_MAGIC_overload||5.003007|pou
2238 PERL_MAGIC_overload_elem||5.003007|pou
6365 PERL_MAGIC_overload||5.003007|ponu
6366 PERL_MAGIC_overload_elem||5.003007|ponu
22396367 PERL_MAGIC_overload_table|5.007002|5.003007|p
22406368 PERL_MAGIC_pos|5.007002|5.003007|p
22416369 PERL_MAGIC_qr|5.007002|5.003007|p
6370 PERL_MAGIC_READONLY_ACCEPTABLE|5.015000||Viu
22426371 PERL_MAGIC_regdata|5.007002|5.003007|p
22436372 PERL_MAGIC_regdatum|5.007002|5.003007|p
22446373 PERL_MAGIC_regex_global|5.007002|5.003007|p
22546383 PERL_MAGIC_tied|5.007002|5.003007|p
22556384 PERL_MAGIC_tiedelem|5.007002|5.003007|p
22566385 PERL_MAGIC_tiedscalar|5.007002|5.003007|p
6386 PERL_MAGIC_TYPE_IS_VALUE_MAGIC|5.015000||Viu
6387 PERL_MAGIC_TYPE_READONLY_ACCEPTABLE|5.015000||Viu
22576388 PERL_MAGIC_utf8|5.008001|5.003007|p
6389 PERL_MAGIC_UTF8_CACHESIZE|5.008001||Viu
22586390 PERL_MAGIC_uvar|5.007002|5.003007|p
22596391 PERL_MAGIC_uvar_elem|5.007003|5.003007|p
6392 PERL_MAGIC_VALUE_MAGIC|5.015000||Viu
22606393 PERL_MAGIC_vec|5.007002|5.003007|p
22616394 PERL_MAGIC_vstring|5.008001|5.003007|p
6395 PERL_MAGIC_VTABLE_MASK|5.015000||Viu
6396 Perl_malloc|5.006000||Viu
6397 PERL_MALLOC_CTL_H|5.027001||Viu
6398 Perl_malloc_good_size|5.010001||Viu
6399 PERL_MALLOC_WRAP|5.009002|5.009002|Vn
6400 PerlMem_calloc|5.006000||Viu
6401 PerlMem_free|5.005000||Viu
6402 PerlMem_free_lock|5.006000||Viu
6403 PerlMem_get_lock|5.006000||Viu
6404 PerlMem_is_locked|5.006000||Viu
6405 PerlMem_malloc|5.005000||Viu
6406 PERL_MEMORY_DEBUG_HEADER_SIZE|5.019009||Viu
6407 PerlMemParse_calloc|5.006000||Viu
6408 PerlMemParse_free|5.006000||Viu
6409 PerlMemParse_free_lock|5.006000||Viu
6410 PerlMemParse_get_lock|5.006000||Viu
6411 PerlMemParse_is_locked|5.006000||Viu
6412 PerlMemParse_malloc|5.006000||Viu
6413 PerlMemParse_realloc|5.006000||Viu
6414 PerlMem_realloc|5.005000||Viu
6415 PerlMemShared_calloc|5.006000||Viu
6416 PerlMemShared_free|5.006000||Viu
6417 PerlMemShared_free_lock|5.006000||Viu
6418 PerlMemShared_get_lock|5.006000||Viu
6419 PerlMemShared_is_locked|5.006000||Viu
6420 PerlMemShared_malloc|5.006000||Viu
6421 PerlMemShared_realloc|5.006000||Viu
6422 Perl_mfree|5.006000||Viu
6423 PERL_MG_UFUNC|5.007001||Viu
6424 Perl_modf|5.006000|5.006000|n
6425 PERL_MULTICONCAT_HEADER_SIZE|5.027006||Viu
6426 PERL_MULTICONCAT_IX_LENGTHS|5.027006||Viu
6427 PERL_MULTICONCAT_IX_NARGS|5.027006||Viu
6428 PERL_MULTICONCAT_IX_PLAIN_LEN|5.027006||Viu
6429 PERL_MULTICONCAT_IX_PLAIN_PV|5.027006||Viu
6430 PERL_MULTICONCAT_IX_UTF8_LEN|5.027006||Viu
6431 PERL_MULTICONCAT_IX_UTF8_PV|5.027006||Viu
6432 PERL_MULTICONCAT_MAXARG|5.027006||Viu
6433 Perl_my_mkostemp|5.027008||Viu
6434 Perl_my_mkstemp|5.027004||Viu
6435 PERL_MY_SNPRINTF_GUARDED|5.009004||Viu
6436 PERL_MY_SNPRINTF_POST_GUARD|5.021002||Viu
6437 PERL_MY_VSNPRINTF_GUARDED|5.009004||Viu
6438 PERL_MY_VSNPRINTF_POST_GUARD|5.021002||Viu
6439 PERL_NO_DEV_RANDOM|5.009004||Viu
6440 PERL_OBJECT_THIS|5.005000||Viu
6441 PERL_OP_PARENT|5.025001||Viu
6442 PERL_PADNAME_MINIMAL|5.021007||Viu
6443 PERL_PADSEQ_INTRO|5.013010||Viu
22626444 perl_parse|5.006000|5.006000|n
6445 PERL_PATCHLEVEL_H_IMPLICIT|5.006000||Viu
6446 PERL_PATCHNUM|5.010001||Viu
6447 PERL_POISON_EXPR|5.019006||Viu
6448 Perl_pow|5.006000|5.006000|n
6449 Perl_pp_accept|5.013009||Viu
6450 Perl_pp_aelemfast_lex|5.015000||Viu
6451 Perl_pp_andassign|5.013009||Viu
6452 Perl_pp_avalues|5.013009||Viu
6453 Perl_pp_bind|5.013009||Viu
6454 Perl_pp_bit_xor|5.013009||Viu
6455 Perl_pp_chmod|5.013009||Viu
6456 Perl_pp_chomp|5.013009||Viu
6457 Perl_pp_connect|5.013009||Viu
6458 Perl_pp_cos|5.013009||Viu
6459 Perl_pp_custom|5.013009||Viu
6460 Perl_pp_dbmclose|5.013009||Viu
6461 PERL_PPDEF|5.006000||Viu
6462 Perl_pp_dofile|5.013009||Viu
6463 Perl_pp_dor|5.013009||Viu
6464 Perl_pp_dorassign|5.013009||Viu
6465 Perl_pp_dump|5.013009||Viu
6466 Perl_pp_egrent|5.013009||Viu
6467 Perl_pp_enetent|5.013009||Viu
6468 Perl_pp_eprotoent|5.013009||Viu
6469 Perl_pp_epwent|5.013009||Viu
6470 Perl_pp_eservent|5.013009||Viu
6471 Perl_pp_exp|5.013009||Viu
6472 Perl_pp_fcntl|5.013009||Viu
6473 Perl_pp_ftatime|5.013009||Viu
6474 Perl_pp_ftbinary|5.013009||Viu
6475 Perl_pp_ftblk|5.013009||Viu
6476 Perl_pp_ftchr|5.013009||Viu
6477 Perl_pp_ftctime|5.013009||Viu
6478 Perl_pp_ftdir|5.013009||Viu
6479 Perl_pp_fteexec|5.013009||Viu
6480 Perl_pp_fteowned|5.013009||Viu
6481 Perl_pp_fteread|5.013009||Viu
6482 Perl_pp_ftewrite|5.013009||Viu
6483 Perl_pp_ftfile|5.013009||Viu
6484 Perl_pp_ftmtime|5.013009||Viu
6485 Perl_pp_ftpipe|5.013009||Viu
6486 Perl_pp_ftrexec|5.013009||Viu
6487 Perl_pp_ftrwrite|5.013009||Viu
6488 Perl_pp_ftsgid|5.013009||Viu
6489 Perl_pp_ftsize|5.013009||Viu
6490 Perl_pp_ftsock|5.013009||Viu
6491 Perl_pp_ftsuid|5.013009||Viu
6492 Perl_pp_ftsvtx|5.013009||Viu
6493 Perl_pp_ftzero|5.013009||Viu
6494 Perl_pp_getpeername|5.013009||Viu
6495 Perl_pp_getsockname|5.013009||Viu
6496 Perl_pp_ggrgid|5.013009||Viu
6497 Perl_pp_ggrnam|5.013009||Viu
6498 Perl_pp_ghbyaddr|5.013009||Viu
6499 Perl_pp_ghbyname|5.013009||Viu
6500 Perl_pp_gnbyaddr|5.013009||Viu
6501 Perl_pp_gnbyname|5.013009||Viu
6502 Perl_pp_gpbyname|5.013009||Viu
6503 Perl_pp_gpbynumber|5.013009||Viu
6504 Perl_pp_gpwnam|5.013009||Viu
6505 Perl_pp_gpwuid|5.013009||Viu
6506 Perl_pp_gsbyname|5.013009||Viu
6507 Perl_pp_gsbyport|5.013009||Viu
6508 Perl_pp_gsockopt|5.013009||Viu
6509 Perl_pp_hex|5.013009||Viu
6510 Perl_pp_i_postdec|5.006000||Viu
6511 Perl_pp_i_postinc|5.006000||Viu
6512 Perl_pp_i_predec|5.006000||Viu
6513 Perl_pp_i_preinc|5.006000||Viu
6514 Perl_pp_keys|5.013009||Viu
6515 Perl_pp_kill|5.013009||Viu
6516 Perl_pp_lcfirst|5.013009||Viu
6517 Perl_pp_lineseq|5.013009||Viu
6518 Perl_pp_listen|5.013009||Viu
6519 Perl_pp_localtime|5.013009||Viu
6520 Perl_pp_log|5.013009||Viu
6521 Perl_pp_lstat|5.013009||Viu
6522 Perl_pp_mapstart|5.013009||Viu
6523 Perl_pp_msgctl|5.013009||Viu
6524 Perl_pp_msgget|5.013009||Viu
6525 Perl_pp_msgrcv|5.013009||Viu
6526 Perl_pp_msgsnd|5.013009||Viu
6527 Perl_pp_nbit_xor|5.021009||Viu
6528 Perl_pp_orassign|5.013009||Viu
6529 Perl_pp_padany|5.013009||Viu
6530 Perl_pp_pop|5.013009||Viu
6531 Perl_pp_read|5.013009||Viu
6532 Perl_pp_recv|5.013009||Viu
6533 Perl_pp_regcmaybe|5.013009||Viu
6534 Perl_pp_rindex|5.013009||Viu
6535 Perl_pp_rv2hv|5.013009||Viu
6536 Perl_pp_say|5.013009||Viu
6537 Perl_pp_sbit_xor|5.021009||Viu
6538 Perl_pp_scalar|5.013009||Viu
6539 Perl_pp_schomp|5.013009||Viu
6540 Perl_pp_scope|5.013009||Viu
6541 Perl_pp_seek|5.013009||Viu
6542 Perl_pp_semop|5.013009||Viu
6543 Perl_pp_send|5.013009||Viu
6544 Perl_pp_sge|5.013009||Viu
6545 Perl_pp_sgrent|5.013009||Viu
6546 Perl_pp_sgt|5.013009||Viu
6547 Perl_pp_shmctl|5.013009||Viu
6548 Perl_pp_shmget|5.013009||Viu
6549 Perl_pp_shmread|5.013009||Viu
6550 Perl_pp_shutdown|5.013009||Viu
6551 Perl_pp_slt|5.013009||Viu
6552 Perl_pp_snetent|5.013009||Viu
6553 Perl_pp_socket|5.013009||Viu
6554 Perl_pp_sprotoent|5.013009||Viu
6555 Perl_pp_spwent|5.013009||Viu
6556 Perl_pp_sqrt|5.013009||Viu
6557 Perl_pp_sservent|5.013009||Viu
6558 Perl_pp_ssockopt|5.013009||Viu
6559 Perl_pp_symlink|5.013009||Viu
6560 Perl_pp_transr|5.013009||Viu
6561 Perl_pp_unlink|5.013009||Viu
6562 Perl_pp_utime|5.013009||Viu
6563 Perl_pp_values|5.013009||Viu
6564 PERL_PRESERVE_IVUV|5.007001||Viu
6565 PERL_PRIeldbl|5.006001|5.006001|Vn
6566 PERL_PRIfldbl|5.006000|5.006000|Vn
6567 PERL_PRIgldbl|5.006000|5.006000|Vn
6568 PerlProc_abort|5.005000||Viu
6569 PerlProc_crypt|5.005000||Viu
6570 PerlProc_DynaLoad|5.006000||Viu
6571 PerlProc_execl|5.005000||Viu
6572 PerlProc_execv|5.005000||Viu
6573 PerlProc_execvp|5.005000||Viu
6574 PerlProc__exit|5.005000||Viu
6575 PerlProc_exit|5.005000||Viu
6576 PerlProc_fork|5.006000||Viu
6577 PerlProc_getegid|5.005000||Viu
6578 PerlProc_geteuid|5.005000||Viu
6579 PerlProc_getgid|5.005000||Viu
6580 PerlProc_getlogin|5.005000||Viu
6581 PerlProc_GetOSError|5.006000||Viu
6582 PerlProc_getpid|5.006000||Viu
6583 PerlProc_gettimeofday|5.008000||Viu
6584 PerlProc_getuid|5.005000||Viu
6585 PerlProc_kill|5.005000||Viu
6586 PerlProc_killpg|5.005000||Viu
6587 PerlProc_lasthost|5.007001||Viu
6588 PerlProc_longjmp|5.005000||Viu
6589 PerlProc_pause|5.005000||Viu
6590 PerlProc_pclose|5.005000||Viu
6591 PerlProc_pipe|5.005000||Viu
22636592 PerlProc_pipe_cloexec|5.027008||Viu
6593 PerlProc_popen|5.005000||Viu
6594 PerlProc_popen_list|5.007001||Viu
6595 PerlProc_setgid|5.005000||Viu
6596 PerlProc_setjmp|5.005000||Viu
6597 PerlProc_setuid|5.005000||Viu
6598 PerlProc_signal|5.005000||Viu
6599 PerlProc_sleep|5.005000||Viu
6600 PerlProc_spawnvp|5.008000||Viu
6601 PerlProc_times|5.005000||Viu
6602 PerlProc_wait|5.005000||Viu
6603 PerlProc_waitpid|5.005000||Viu
6604 perl_pthread_mutex_lock|5.023006||Viu
6605 perl_pthread_mutex_unlock|5.023006||Viu
22646606 PERL_PV_ESCAPE_ALL|5.009004|5.003007|p
6607 PERL_PV_ESCAPE_DWIM|5.019008||Viu
22656608 PERL_PV_ESCAPE_FIRSTCHAR|5.009004|5.003007|p
22666609 PERL_PV_ESCAPE_NOBACKSLASH|5.009004|5.003007|p
22676610 PERL_PV_ESCAPE_NOCLEAR|5.009004|5.003007|p
22706613 PERL_PV_ESCAPE_RE|5.009005|5.003007|p
22716614 PERL_PV_ESCAPE_UNI|5.009004|5.003007|p
22726615 PERL_PV_ESCAPE_UNI_DETECT|5.009004|5.003007|p
2273 PERL_PV_PRETTY_DUMP|5.009004|5.003007|poVu
6616 PERL_PV_PRETTY_DUMP|5.009004||pcV
22746617 PERL_PV_PRETTY_ELLIPSES|5.010000|5.003007|p
6618 PERL_PV_PRETTY_EXACTSIZE|5.021005||Viu
22756619 PERL_PV_PRETTY_LTGT|5.009004|5.003007|p
2276 PERL_PV_PRETTY_NOCLEAR|5.010000|5.003007|poVu
6620 PERL_PV_PRETTY_NOCLEAR|5.010000||pcV
22776621 PERL_PV_PRETTY_QUOTE|5.009004|5.003007|p
2278 PERL_PV_PRETTY_REGPROP|5.009004|5.003007|poVu
6622 PERL_PV_PRETTY_REGPROP|5.009004||pcV
22796623 PERL_QUAD_MAX|5.003007|5.003007|p
22806624 PERL_QUAD_MIN|5.003007|5.003007|p
2281 PERL_REVISION|5.006000|5.003007|p
6625 PERL_READ_LOCK|5.033005||Viu
6626 PERL_READ_UNLOCK|5.033005||Viu
6627 Perl_realloc|5.006000||Viu
6628 PERL_REENTR_API|5.009005||Viu
6629 PERL_REENTR_H|5.027001||Viu
6630 PERL_REENTR_USING_ASCTIME_R|5.031011||Viu
6631 PERL_REENTR_USING_CRYPT_R|5.031011||Viu
6632 PERL_REENTR_USING_CTERMID_R|5.031011||Viu
6633 PERL_REENTR_USING_CTIME_R|5.031011||Viu
6634 PERL_REENTR_USING_ENDGRENT_R|5.031011||Viu
6635 PERL_REENTR_USING_ENDHOSTENT_R|5.031011||Viu
6636 PERL_REENTR_USING_ENDNETENT_R|5.031011||Viu
6637 PERL_REENTR_USING_ENDPROTOENT_R|5.031011||Viu
6638 PERL_REENTR_USING_ENDPWENT_R|5.031011||Viu
6639 PERL_REENTR_USING_ENDSERVENT_R|5.031011||Viu
6640 PERL_REENTR_USING_GETGRENT_R|5.031011||Viu
6641 PERL_REENTR_USING_GETGRGID_R|5.031011||Viu
6642 PERL_REENTR_USING_GETGRNAM_R|5.031011||Viu
6643 PERL_REENTR_USING_GETHOSTBYADDR_R|5.031011||Viu
6644 PERL_REENTR_USING_GETHOSTBYNAME_R|5.031011||Viu
6645 PERL_REENTR_USING_GETHOSTENT_R|5.031011||Viu
6646 PERL_REENTR_USING_GETLOGIN_R|5.031011||Viu
6647 PERL_REENTR_USING_GETNETBYADDR_R|5.031011||Viu
6648 PERL_REENTR_USING_GETNETBYNAME_R|5.031011||Viu
6649 PERL_REENTR_USING_GETNETENT_R|5.031011||Viu
6650 PERL_REENTR_USING_GETPROTOBYNAME_R|5.031011||Viu
6651 PERL_REENTR_USING_GETPROTOBYNUMBER_R|5.031011||Viu
6652 PERL_REENTR_USING_GETPROTOENT_R|5.031011||Viu
6653 PERL_REENTR_USING_GETPWENT_R|5.031011||Viu
6654 PERL_REENTR_USING_GETPWNAM_R|5.031011||Viu
6655 PERL_REENTR_USING_GETPWUID_R|5.031011||Viu
6656 PERL_REENTR_USING_GETSERVBYNAME_R|5.031011||Viu
6657 PERL_REENTR_USING_GETSERVBYPORT_R|5.031011||Viu
6658 PERL_REENTR_USING_GETSERVENT_R|5.031011||Viu
6659 PERL_REENTR_USING_GETSPNAM_R|5.031011||Viu
6660 PERL_REENTR_USING_GMTIME_R|5.031011||Viu
6661 PERL_REENTR_USING_LOCALTIME_R|5.031011||Viu
6662 PERL_REENTR_USING_READDIR64_R|5.031011||Viu
6663 PERL_REENTR_USING_READDIR_R|5.031011||Viu
6664 PERL_REENTR_USING_SETGRENT_R|5.031011||Viu
6665 PERL_REENTR_USING_SETHOSTENT_R|5.031011||Viu
6666 PERL_REENTR_USING_SETLOCALE_R|5.031011||Viu
6667 PERL_REENTR_USING_SETNETENT_R|5.031011||Viu
6668 PERL_REENTR_USING_SETPROTOENT_R|5.031011||Viu
6669 PERL_REENTR_USING_SETPWENT_R|5.031011||Viu
6670 PERL_REENTR_USING_SETSERVENT_R|5.031011||Viu
6671 PERL_REENTR_USING_STRERROR_R|5.031011||Viu
6672 PERL_REENTR_USING_TMPNAM_R|5.031011||Viu
6673 PERL_REENTR_USING_TTYNAME_R|5.031011||Viu
6674 PERL_REGCHARCLASS_H|5.027001||Viu
6675 PERL_REGCOMP_H|5.029006||Viu
6676 PERL_REGMATCH_SLAB_SLOTS|5.009004||Viu
6677 PERL_RELOCATABLE_INC|5.017002|5.017002|Vn
6678 PERL_REVISION|5.006000|5.006000|d
22826679 perl_run|5.003007|5.003007|n
6680 PERL_RW_MUTEX_DESTROY|5.033005||Viu
6681 PERL_RW_MUTEX_INIT|5.033005||Viu
6682 Perl_safesysmalloc_size|5.010001||Viu
6683 PERL_SAWAMPERSAND|5.017010||Viu
6684 PERL_SCAN_ALLOW_MEDIAL_UNDERSCORES|5.031009||Viu
22836685 PERL_SCAN_ALLOW_UNDERSCORES|5.007003|5.003007|p
22846686 PERL_SCAN_DISALLOW_PREFIX|5.007003|5.003007|p
22856687 PERL_SCAN_GREATER_THAN_UV_MAX|5.007003|5.003007|p
6688 PERL_SCAN_NOTIFY_ILLDIGIT|5.031008||Viu
22866689 PERL_SCAN_SILENT_ILLDIGIT|5.008001|5.003007|p
6690 PERL_SCAN_SILENT_NON_PORTABLE|5.015001||Viu
6691 PERL_SCAN_SILENT_OVERFLOW|5.031009||Viu
22876692 PERL_SCAN_TRAILING|5.021002|5.021002|
6693 PERL_SCNfldbl|5.006001|5.006001|Vn
6694 PERL_SCRIPT_MODE|5.004005||Viu
6695 PERL_SEEN_HV_FUNC_H|5.017010||Viu
6696 PERL_SEEN_HV_MACRO_H|5.027001||Viu
6697 PERL_SET_CONTEXT|5.006000||Viu
6698 PERL_SET_INTERP|5.006000||Viu
22886699 Perl_setlocale|5.027002|5.027002|n
6700 PERL_SET_PHASE|5.015001||Viu
6701 PERL_SET_THX|5.006000||Viu
6702 Perl_sharepvn|5.006000||Viu
22896703 PERL_SHORT_MAX|5.003007|5.003007|p
22906704 PERL_SHORT_MIN|5.003007|5.003007|p
2291 PERL_SIGNALS_UNSAFE_FLAG|5.008001|5.003007|poVu
2292 Perl_signbit|5.009005|5.009005|nx
6705 PERLSI_DESTROY|5.005000||Viu
6706 PERLSI_DIEHOOK|5.005000||Viu
6707 PERL_SIGNALS_UNSAFE_FLAG|5.008001|5.003007|p
6708 Perl_signbit|5.009005|5.009005|xn
6709 PERLSI_MAGIC|5.005000||Viu
6710 PERLSI_MAIN|5.005000||Viu
6711 PERLSI_MULTICALL|5.023000||Viu
6712 Perl_sin|5.006000|5.006000|n
6713 Perl_sinh|5.021004|5.021004|n
6714 PerlSIO_canset_cnt|5.007001||Viu
6715 PerlSIO_clearerr|5.007001||Viu
6716 PerlSIO_fast_gets|5.007001||Viu
6717 PerlSIO_fclose|5.007001||Viu
6718 PerlSIO_fdopen|5.007001||Viu
6719 PerlSIO_fdupopen|5.007001||Viu
6720 PerlSIO_feof|5.007001||Viu
6721 PerlSIO_ferror|5.007001||Viu
6722 PerlSIO_fflush|5.007001||Viu
6723 PerlSIO_fgetc|5.007001||Viu
6724 PerlSIO_fgetpos|5.007001||Viu
6725 PerlSIO_fgets|5.007001||Viu
6726 PerlSIO_fileno|5.007001||Viu
6727 PerlSIO_fopen|5.007001||Viu
6728 PerlSIO_fputc|5.007001||Viu
6729 PerlSIO_fputs|5.007001||Viu
6730 PerlSIO_fread|5.007001||Viu
6731 PerlSIO_freopen|5.007001||Viu
6732 PerlSIO_fseek|5.007001||Viu
6733 PerlSIO_fsetpos|5.007001||Viu
6734 PerlSIO_ftell|5.007001||Viu
6735 PerlSIO_fwrite|5.007001||Viu
6736 PerlSIO_get_base|5.007001||Viu
6737 PerlSIO_get_bufsiz|5.007001||Viu
6738 PerlSIO_get_cnt|5.007001||Viu
6739 PerlSIO_get_ptr|5.007001||Viu
6740 PerlSIO_has_base|5.007001||Viu
6741 PerlSIO_has_cntptr|5.007001||Viu
6742 PerlSIO_init|5.007001||Viu
6743 PerlSIO_printf|5.007001||Viu
6744 PerlSIO_rewind|5.007001||Viu
6745 PerlSIO_setbuf|5.007001||Viu
6746 PerlSIO_set_cnt|5.007001||Viu
6747 PerlSIO_setlinebuf|5.007001||Viu
6748 PerlSIO_set_ptr|5.007001||Viu
6749 PerlSIO_setvbuf|5.007001||Viu
6750 PerlSIO_stderr|5.007001||Viu
6751 PerlSIO_stdin|5.007001||Viu
6752 PerlSIO_stdout|5.007001||Viu
6753 PerlSIO_stdoutf|5.007001||Viu
6754 PerlSIO_tmpfile|5.007001||Viu
6755 PerlSIO_ungetc|5.007001||Viu
6756 PERLSI_OVERLOAD|5.005000||Viu
6757 PerlSIO_vprintf|5.007001||Viu
6758 PERL_SIPHASH_FNC|5.025008||Viu
6759 PERLSI_REGCOMP|5.031011||Viu
6760 PERLSI_REQUIRE|5.005000||Viu
6761 PERLSI_SIGNAL|5.005000||Viu
6762 PERLSI_SORT|5.005000||Viu
6763 PERLSI_UNDEF|5.005000||Viu
6764 PERLSI_UNKNOWN|5.005000||Viu
6765 PERLSI_WARNHOOK|5.005000||Viu
6766 PERL_SMALL_MACRO_BUFFER|5.023008||Viu
6767 PERL_SNPRINTF_CHECK|5.021002||Viu
6768 PerlSock_accept|5.005000||Viu
22936769 PerlSock_accept_cloexec|5.027008||Viu
6770 PerlSock_bind|5.005000||Viu
6771 PerlSock_closesocket|5.006000||Viu
6772 PerlSock_connect|5.005000||Viu
6773 PerlSock_endhostent|5.005000||Viu
6774 PerlSock_endnetent|5.005000||Viu
6775 PerlSock_endprotoent|5.005000||Viu
6776 PerlSock_endservent|5.005000||Viu
6777 PerlSock_gethostbyaddr|5.005000||Viu
6778 PerlSock_gethostbyname|5.005000||Viu
6779 PerlSock_gethostent|5.005000||Viu
6780 PerlSock_gethostname|5.005000||Viu
6781 PerlSock_getnetbyaddr|5.005000||Viu
6782 PerlSock_getnetbyname|5.005000||Viu
6783 PerlSock_getnetent|5.005000||Viu
6784 PerlSock_getpeername|5.005000||Viu
6785 PerlSock_getprotobyname|5.005000||Viu
6786 PerlSock_getprotobynumber|5.005000||Viu
6787 PerlSock_getprotoent|5.005000||Viu
6788 PerlSock_getservbyname|5.005000||Viu
6789 PerlSock_getservbyport|5.005000||Viu
6790 PerlSock_getservent|5.005000||Viu
6791 PerlSock_getsockname|5.005000||Viu
6792 PerlSock_getsockopt|5.005000||Viu
6793 PerlSock_htonl|5.005000||Viu
6794 PerlSock_htons|5.005000||Viu
6795 PerlSock_inet_addr|5.005000||Viu
6796 PerlSock_inet_ntoa|5.005000||Viu
6797 PerlSock_listen|5.005000||Viu
6798 PerlSock_ntohl|5.005000||Viu
6799 PerlSock_ntohs|5.005000||Viu
6800 PerlSock_recv|5.005000||Viu
6801 PerlSock_recvfrom|5.005000||Viu
6802 PerlSock_select|5.005000||Viu
6803 PerlSock_send|5.005000||Viu
6804 PerlSock_sendto|5.005000||Viu
6805 PerlSock_sethostent|5.005000||Viu
6806 PerlSock_setnetent|5.005000||Viu
6807 PerlSock_setprotoent|5.005000||Viu
6808 PerlSock_setservent|5.005000||Viu
6809 PerlSock_setsockopt|5.005000||Viu
6810 PerlSock_shutdown|5.005000||Viu
6811 PERL_SOCKS_NEED_PROTOTYPES|5.007001||Viu
6812 PerlSock_socket|5.005000||Viu
22946813 PerlSock_socket_cloexec|5.027008||Viu
6814 PerlSock_socketpair|5.005000||Viu
22956815 PerlSock_socketpair_cloexec|5.027008||Viu
2296 PERL_SUBVERSION|5.006000|5.003007|p
6816 Perl_sqrt|5.006000|5.006000|n
6817 PERL_STACK_OVERFLOW_CHECK|5.006000||Viu
6818 PERL_STATIC_FORCE_INLINE|5.031011||Viu
6819 PERL_STATIC_FORCE_INLINE_NO_RET|5.031011||Viu
6820 PERL_STATIC_INLINE|5.013004|5.013004|Vn
6821 PERL_STATIC_INLINE_NO_RET|5.017005||Viu
6822 PERL_STATIC_NO_RET|5.017005||Viu
6823 PERL_STRLEN_EXPAND_SHIFT|5.013004||Viu
6824 PERL_STRLEN_ROUNDUP|5.009003||Viu
6825 PERL_STRLEN_ROUNDUP_QUANTUM|5.009003||Viu
6826 Perl_strtod|5.021004||Viu
6827 PERL_SUB_DEPTH_WARN|5.010001||Viu
6828 PERL_SUBVERSION|5.006000|5.003007|d
6829 PERL_SYS_FPU_INIT|5.021005||Viu
22976830 PERL_SYS_INIT3|5.006000|5.006000|
6831 PERL_SYS_INIT3_BODY|5.010000||Viu
22986832 PERL_SYS_INIT|5.003007|5.003007|
6833 PERL_SYS_INIT_BODY|5.010000||Viu
22996834 PERL_SYS_TERM|5.003007|5.003007|
6835 PERL_SYS_TERM_BODY|5.010000||Viu
6836 Perl_tan|5.021004|5.021004|n
6837 Perl_tanh|5.021004|5.021004|n
6838 PERL_TARGETARCH|5.007002|5.007002|Vn
6839 PERL_TIME64_CONFIG_H|5.027001||Viu
6840 PERL_TIME64_H|5.027001||Viu
6841 PERL_TRACK_MEMPOOL|5.009003||Viu
6842 PERL_TSA|5.023006||Viu
6843 PERL_TSA_ACQUIRE|5.023006||Viu
6844 PERL_TSA_ACTIVE|5.023006||Viu
6845 PERL_TSA_CAPABILITY|5.023006||Viu
6846 PERL_TSA_EXCLUDES|5.023006||Viu
6847 PERL_TSA_GUARDED_BY|5.023006||Viu
6848 PERL_TSA_NO_TSA|5.023006||Viu
6849 PERL_TSA_PT_GUARDED_BY|5.023006||Viu
6850 PERL_TSA_RELEASE|5.023006||Viu
6851 PERL_TSA_REQUIRES|5.023006||Viu
23006852 PERL_UCHAR_MAX|5.003007|5.003007|p
23016853 PERL_UCHAR_MIN|5.003007|5.003007|p
23026854 PERL_UINT_MAX|5.003007|5.003007|p
2303 PERL_UINT_MIN|5.003007|5.003007|poVu
6855 PERL_UINT_MIN|5.003007|5.003007|p
23046856 PERL_ULONG_MAX|5.003007|5.003007|p
23056857 PERL_ULONG_MIN|5.003007|5.003007|p
2306 PERL_UNUSED_ARG|5.009003||pVu
2307 PERL_UNUSED_CONTEXT|5.009004|5.003007|poVu
2308 PERL_UNUSED_DECL|5.007002|5.003007|poVu
2309 PERL_UNUSED_RESULT|5.021001||pVu
2310 PERL_UNUSED_VAR|5.007002||pVu
6858 PERL_UNICODE_ALL_FLAGS|5.008001||Viu
6859 PERL_UNICODE_ARGV|5.008001||Viu
6860 PERL_UNICODE_ARGV_FLAG|5.008001||Viu
6861 PERL_UNICODE_CONSTANTS_H|5.027001||Viu
6862 PERL_UNICODE_DEFAULT_FLAGS|5.008001||Viu
6863 PERL_UNICODE_IN|5.008001||Viu
6864 PERL_UNICODE_IN_FLAG|5.008001||Viu
6865 PERL_UNICODE_INOUT|5.008001||Viu
6866 PERL_UNICODE_INOUT_FLAG|5.008001||Viu
6867 PERL_UNICODE_LOCALE|5.008001||Viu
6868 PERL_UNICODE_LOCALE_FLAG|5.008001||Viu
6869 PERL_UNICODE_MAX|5.007003||Viu
6870 PERL_UNICODE_OUT|5.008001||Viu
6871 PERL_UNICODE_OUT_FLAG|5.008001||Viu
6872 PERL_UNICODE_STD|5.008001||Viu
6873 PERL_UNICODE_STDERR|5.008001||Viu
6874 PERL_UNICODE_STDERR_FLAG|5.008001||Viu
6875 PERL_UNICODE_STD_FLAG|5.008001||Viu
6876 PERL_UNICODE_STDIN|5.008001||Viu
6877 PERL_UNICODE_STDIN_FLAG|5.008001||Viu
6878 PERL_UNICODE_STDOUT|5.008001||Viu
6879 PERL_UNICODE_STDOUT_FLAG|5.008001||Viu
6880 PERL_UNICODE_UTF8CACHEASSERT|5.009004||Viu
6881 PERL_UNICODE_UTF8CACHEASSERT_FLAG|5.009004||Viu
6882 PERL_UNICODE_WIDESYSCALLS|5.008001||Viu
6883 PERL_UNICODE_WIDESYSCALLS_FLAG|5.008001||Viu
6884 PERL_UNLOCK_HOOK|5.009004||Viu
6885 PERL_UNUSED_ARG|5.009003|5.003007|p
6886 PERL_UNUSED_CONTEXT|5.009004|5.003007|p
6887 PERL_UNUSED_DECL|5.007002|5.003007|p
6888 PERL_UNUSED_RESULT|5.021001|5.003007|p
6889 PERL_UNUSED_VAR|5.007002|5.003007|p
23116890 PERL_UQUAD_MAX|5.003007|5.003007|p
23126891 PERL_UQUAD_MIN|5.003007|5.003007|p
2313 PERL_USE_GCC_BRACE_GROUPS|5.009004|5.004000|poVu
6892 PERL_USE_DEVEL|5.010001|5.010001|Vn
6893 PERL_USE_GCC_BRACE_GROUPS|5.009004|5.003007|pV
6894 PERL_USES_PL_PIDSTATUS|5.009003||Viu
23146895 PERL_USHORT_MAX|5.003007|5.003007|p
23156896 PERL_USHORT_MIN|5.003007|5.003007|p
2316 PERL_VERSION|5.006000|5.003007|p
2317 perly_sighandler|||nu
6897 PERL_UTF8_H|5.027001||Viu
6898 PERL_UTIL_H|5.025012||Viu
6899 Perl_va_copy|5.007001||Viu
6900 PERLVAR|5.005000||Viu
6901 PERLVARA|5.006000||Viu
6902 PERLVARI|5.005000||Viu
6903 PERL_VARIANTS_WORD_MASK|5.027007||Viu
6904 PERLVARIC|5.005000||Viu
6905 PERL_VERSION|5.006000|5.003007|d
6906 PERL_VERSION_EQ|5.033001||p
6907 PERL_VERSION_GE|5.033001|5.003007|p
6908 PERL_VERSION_GT|5.033001|5.003007|p
6909 PERL_VERSION_LE|5.033001|5.003007|p
6910 PERL_VERSION_LT|5.033001|5.003007|p
6911 PERL_VERSION_MAJOR|5.033001||Viu
6912 PERL_VERSION_MINOR|5.033001||Viu
6913 PERL_VERSION_NE|5.033001||p
6914 PERL_VERSION_PATCH|5.033001||Viu
6915 PERL_VERSION_STRING|5.010001||Viu
6916 PERL_WAIT_FOR_CHILDREN|5.006000||Viu
6917 Perl_Warn_Bit|5.033003||Viu
6918 Perl_warner_nocontext||5.004000|ponu
6919 PERL_WARNHOOK_FATAL|5.009004||Viu
6920 Perl_Warn_Off|5.033003||Viu
6921 PERL_WORD_BOUNDARY_MASK|5.027007||Viu
6922 PERL_WORDSIZE|5.027007||Viu
6923 PERL_WRITE_LOCK|5.033005||Viu
6924 PERL_WRITE_MSG_TO_CONSOLE|5.007003||Viu
6925 PERL_WRITE_UNLOCK|5.033005||Viu
6926 PERL_XSUB_H|5.027001||Viu
6927 perly_sighandler|5.031007||cVnu
6928 PHOSTNAME|5.006000|5.006000|Vn
23186929 pidgone|5.003007||Viu
2319 PL_bufend||5.003007|pou
2320 PL_bufptr||5.003007|pou
6930 Pid_t|5.005000|5.005000|Vn
6931 pipe|5.005000||Viu
6932 PIPE_OPEN_MODE|5.008002||Viu
6933 PIPESOCK_MODE|5.008001||Viu
6934 PL_AboveLatin1|5.015008||Viu
6935 PL_amagic_generation|5.005000||Viu
6936 PL_an|5.005000||Viu
6937 PL_argvgv|5.005000||Viu
6938 PL_argvoutgv|5.005000||Viu
6939 PL_argvout_stack|5.006000||Viu
6940 PL_Assigned_invlist|5.025009||Viu
6941 PL_basetime|5.005000||Viu
6942 PL_beginav|5.005000||Viu
6943 PL_beginav_save|5.006001||Viu
6944 PL_blockhooks|5.013003||Viu
6945 PL_body_arenas|5.009004||Viu
6946 PL_body_roots|5.009003||Viu
6947 PL_bodytarget|5.005000||Viu
6948 PL_breakable_sub_gen|5.010001||Viu
6949 PL_bufend||5.003007|ponu
6950 PL_bufptr||5.003007|ponu
6951 PL_CCC_non0_non230|5.029008||Viu
23216952 PL_check|5.009003|5.006000|
2322 PL_compiling|5.004005|5.003007|poVu
6953 PL_checkav|5.006000||Viu
6954 PL_checkav_save|5.008001||Viu
6955 PL_chopset|5.005000||Viu
6956 PL_clocktick|5.008001||Viu
6957 PL_collation_ix|5.005000||Viu
6958 PL_collation_name|5.005000||Viu
6959 PL_collation_standard|5.005000||Viu
6960 PL_collxfrm_base|5.005000||Viu
6961 PL_collxfrm_mult|5.005000||Viu
6962 PL_colors|5.005000||Viu
6963 PL_colorset|5.005000||Viu
6964 PL_compcv|5.005000||Viu
6965 PL_compiling|5.005000|5.003007|poVnu
23236966 PL_comppad|5.008001|5.008001|x
23246967 PL_comppad_name|5.017004|5.017004|x
2325 PL_copline||5.003007|pou
6968 PL_comppad_name_fill|5.005000||Viu
6969 PL_comppad_name_floor|5.005000||Viu
6970 PL_constpadix|5.021004||Viu
6971 PL_copline||5.003007|ponu
6972 PL_cop_seqmax|5.005000||Viu
6973 PL_cshlen|5.005000||Viu
23266974 PL_curcop|5.004005|5.003007|p
6975 PL_curcopdb|5.005000||Viu
6976 PL_curlocales|5.027009||Viu
23276977 PL_curpad|5.005000|5.005000|x
6978 PL_curpm|5.005000||Viu
6979 PL_curpm_under|5.025007||Viu
6980 PL_curstack|5.005000||Viu
6981 PL_curstackinfo|5.005000||Viu
23286982 PL_curstash|5.004005|5.003007|p
2329 PL_DBsignal|5.005000|5.003007|poVu
2330 PL_DBsingle|5.004005|5.003007|poV
2331 PL_DBsub|5.004005|5.003007|poV
2332 PL_DBtrace|5.005000|5.003007|poV
2333 PL_debstash|5.004005|5.003007|poVu
6983 PL_curstname|5.005000||Viu
6984 PL_custom_op_descs|5.007003||Viu
6985 PL_custom_op_names|5.007003||Viu
6986 PL_custom_ops|5.013007||Viu
6987 PL_cv_has_eval|5.009000||Viu
6988 PL_dbargs|5.005000||Viu
6989 PL_DBcontrol|5.021005||Viu
6990 PL_DBcv|5.005000||Viu
6991 PL_DBgv|5.005000||Viu
6992 PL_DBline|5.005000||Viu
6993 PL_DBsignal|5.005000|5.003007|poVnu
6994 PL_DBsignal_iv|5.021005||Viu
6995 PL_DBsingle|5.005000||pV
6996 PL_DBsingle_iv|5.021005||Viu
6997 PL_DBsub|5.005000||pV
6998 PL_DBtrace|5.005000||pV
6999 PL_DBtrace_iv|5.021005||Viu
7000 PL_debstash|5.005000|5.003007|poVnu
7001 PL_debug|5.005000||Viu
7002 PL_debug_pad|5.007003||Viu
23347003 PL_defgv|5.004005|5.003007|p
2335 PL_diehook|5.004005|5.003007|poVu
2336 PL_dirty|5.004005|5.003007|poVu
2337 PL_dowarn|5.004005|5.003007|poV
7004 PL_def_layerlist|5.007003||Viu
7005 PL_defoutgv|5.005000||Viu
7006 PL_defstash|5.005000||Viu
7007 PL_delaymagic|5.005000||Viu
7008 PL_delaymagic_egid|5.015008||Viu
7009 PL_delaymagic_euid|5.015008||Viu
7010 PL_delaymagic_gid|5.015008||Viu
7011 PL_delaymagic_uid|5.015008||Viu
7012 PL_destroyhook|5.010000||Viu
7013 PL_diehook|5.005000|5.003007|poVnu
7014 PL_Dir|5.006000||Viu
7015 PL_dirty|5.005000|5.003007|poVnu
7016 PL_doswitches|5.005000||Viu
7017 PL_dowarn|5.005000||pV
7018 PL_dumper_fd|5.009003||Viu
7019 PL_dumpindent|5.006000||Viu
7020 PL_dump_re_max_len|5.023008||Viu
7021 PL_efloatbuf|5.006000||Viu
7022 PL_efloatsize|5.006000||Viu
7023 PL_E_FORMAT_PRECISION|5.029000||Viu
7024 PL_encoding|5.007003||Viu
7025 PL_endav|5.005000||Viu
7026 PL_Env|5.006000||Viu
7027 PL_envgv|5.005000||Viu
23387028 PL_errgv|5.004005|5.003007|p
2339 PL_error_count||5.003007|pou
7029 PL_error_count||5.003007|ponu
7030 PL_errors|5.006000||Viu
7031 PL_e_script|5.005000||Viu
7032 PL_eval_root|5.005000||Viu
7033 PL_evalseq|5.005000||Viu
7034 PL_eval_start|5.005000||Viu
23407035 PL_exit_flags|5.006000|5.006000|
2341 PL_expect||5.003007|pou
2342 PL_hexdigit|5.005000|5.003007|poVu
2343 PL_hints|5.005000|5.003007|poVu
2344 PL_in_my||5.003007|pou
2345 PL_in_my_stash||5.005000|pou
7036 PL_exitlist|5.005000||Viu
7037 PL_exitlistlen|5.005000||Viu
7038 PL_expect||5.003007|ponu
7039 PL_fdpid|5.005000||Viu
7040 PL_filemode|5.005000||Viu
7041 PL_firstgv|5.005000||Viu
7042 PL_forkprocess|5.005000||Viu
7043 PL_formtarget|5.005000||Viu
7044 PL_GCB_invlist|5.021009||Viu
7045 PL_generation|5.005000||Viu
7046 PL_gensym|5.005000||Viu
7047 PL_globalstash|5.005000||Viu
7048 PL_globhook|5.015005||Viu
7049 PL_hash_rand_bits|5.017010||Viu
7050 PL_HASH_RAND_BITS_ENABLED|5.018000||Viu
7051 PL_hash_rand_bits_enabled|5.018000||Viu
7052 PL_hash_seed|5.033007||Viu
7053 PL_hash_state|5.033007||Viu
7054 PL_HasMultiCharFold|5.017005||Viu
7055 PL_hexdigit||5.003007|pn
7056 PL_hintgv|5.005000||Viu
7057 PL_hints|5.005000|5.003007|poVnu
7058 PL_hv_fetch_ent_mh|5.005000||Viu
7059 PL_incgv|5.005000||Viu
7060 PL_in_clean_all|5.005000||Viu
7061 PL_in_clean_objs|5.005000||Viu
7062 PL_in_eval|5.005000||Viu
7063 PL_initav|5.005000||Viu
7064 PL_in_load_module|5.008001||Viu
7065 PL_in_my||5.003007|ponu
7066 PL_in_my_stash||5.005000|ponu
7067 PL_inplace|5.005000||Viu
7068 PL_in_some_fold|5.029007||Viu
7069 PL_internal_random_state|5.027004||Viu
7070 PL_in_utf8_COLLATE_locale|5.025002||Viu
7071 PL_in_utf8_CTYPE_locale|5.019009||Viu
7072 PL_in_utf8_turkic_locale|5.029008||Viu
7073 PL_isarev|5.009005||Viu
23467074 PL_keyword_plugin|5.011002|5.011002|x
2347 PL_last_in_gv|||i
2348 PL_laststatval|5.005000|5.003007|poVu
2349 PL_lex_state||5.003007|pou
2350 PL_lex_stuff||5.003007|pou
2351 PL_linestr||5.003007|pou
2352 PL_mess_sv|5.005000|5.004000|poVu
7075 PL_known_layers|5.007003||Viu
7076 PL_langinfo_buf|5.027004||Viu
7077 PL_langinfo_bufsize|5.027004||Viu
7078 PL_lastfd|5.005000||Viu
7079 PL_lastgotoprobe|5.005000||Viu
7080 PL_last_in_gv|5.005000||Vi
7081 PL_laststatval|5.005000|5.003007|poVnu
7082 PL_laststype|5.005000||Viu
7083 PL_Latin1|5.015008||Viu
7084 PL_LB_invlist|5.023007||Viu
7085 PL_lc_numeric_mutex_depth|5.027009||Viu
7086 PL_lex_state||5.003007|ponu
7087 PL_lex_stuff||5.003007|ponu
7088 PL_linestr||5.003007|ponu
7089 PL_LIO|5.006000||Viu
7090 PL_locale_utf8ness|5.027009||Viu
7091 PL_localizing|5.005000||Viu
7092 PL_localpatches|5.005000||Viu
7093 PL_lockhook|5.007003||Viu
7094 PL_main_cv|5.005000||Viu
7095 PL_main_root|5.005000||Viu
7096 PL_mainstack|5.005000||Viu
7097 PL_main_start|5.005000||Viu
7098 PL_markstack|5.005000||Viu
7099 PL_markstack_max|5.005000||Viu
7100 PL_markstack_ptr|5.005000||Viu
7101 PL_max_intro_pending|5.005000||Viu
7102 PL_maxo|5.005000||Viu
7103 PL_maxsysfd|5.005000|5.005000|
7104 PL_mbrlen_ps|5.031010||Viu
7105 PL_mbrtowc_ps|5.031010||Viu
7106 PL_Mem|5.006000||Viu
7107 PL_mem_log|5.033005||Viu
7108 PL_memory_debug_header|5.009004||Viu
7109 PL_MemParse|5.006000||Viu
7110 PL_MemShared|5.006000||Viu
7111 PL_mess_sv|5.005000|5.004000|poVnu
7112 PL_min_intro_pending|5.005000||Viu
7113 PL_minus_a|5.005000||Viu
7114 PL_minus_c|5.005000||Viu
7115 PL_minus_E|5.009003||Viu
7116 PL_minus_F|5.005000||Viu
7117 PL_minus_l|5.005000||Viu
7118 PL_minus_n|5.005000||Viu
7119 PL_minus_p|5.005000||Viu
7120 PL_modcount|5.005000||Viu
23537121 PL_modglobal|5.005000|5.005000|
7122 PL_multideref_pc|5.021007||Viu
7123 PL_my_cxt_list|5.009003||Viu
7124 PL_my_cxt_size|5.009003||Viu
23547125 PL_na|5.004005|5.003007|p
2355 PL_no_modify|5.006000|5.003007|poVu
2356 PL_ofsgv|||i
7126 PL_nomemok|5.005000||Viu
7127 PL_no_modify||5.003007|ponu
7128 PL_numeric_name|5.005000||Viu
7129 PL_numeric_radix_sv|5.007002||Viu
7130 PL_numeric_standard|5.005000||Viu
7131 PL_numeric_underlying|5.027006||Viu
7132 PL_numeric_underlying_is_standard|5.027009||Viu
7133 PL_ofsgv|5.011000||Vi
7134 PL_oldname|5.005000||Viu
7135 PL_op|5.005000||Viu
7136 PL_op_exec_cnt|5.019002||Viu
23577137 PL_opfreehook|5.011000|5.011000|
7138 PL_op_mask|5.005000||Viu
7139 PL_origalen|5.005000||Viu
7140 PL_origargc|5.005000||Viu
7141 PL_origargv|5.005000||Viu
7142 PL_origenviron|5.005000||Viu
7143 PL_origfilename|5.005000||Viu
7144 PL_ors_sv|5.007001||Viu
7145 PL_osname|5.005000||Viu
7146 PL_padix|5.005000||Viu
7147 PL_padix_floor|5.005000||Viu
7148 PL_padlist_generation|5.021007||Viu
7149 PL_padname_const|5.021007||Viu
7150 PL_padname_undef|5.021007||Viu
7151 PL_pad_reset_pending|5.005000||Viu
23587152 PL_parser|5.009005|5.003007|p
7153 PL_patchlevel|5.005000||Viu
23597154 PL_peepp|5.007003|5.007003|
2360 PL_perldb|5.004005|5.003007|poVu
7155 PL_perldb|5.005000|5.003007|poVnu
23617156 PL_perl_destruct_level|5.004005|5.003007|p
7157 PL_perlio|5.007003||Viu
23627158 PL_phase|5.013007|5.013007|
2363 PL_ppaddr|5.006000|5.003007|poVu
7159 PL_pidstatus|5.005000||Viu
7160 PL_Posix_ptrs|5.029000||Viu
7161 PL_ppaddr||5.003007|ponu
7162 PL_preambleav|5.005000||Viu
7163 PL_Private_Use|5.029009||Viu
7164 PL_Proc|5.006000||Viu
7165 PL_profiledata|5.005000||Viu
7166 PL_psig_name|5.006000||Viu
7167 PL_psig_pend|5.007001||Viu
7168 PL_psig_ptr|5.006000||Viu
7169 PL_ptr_table|5.006000||Viu
7170 PL_random_state|5.019004||Viu
7171 PL_RANDOM_STATE_TYPE|5.019004||Viu
7172 PL_reentrant_buffer|5.007002||Viu
7173 PL_reentrant_retint|5.008001||Viu
7174 PL_reg_curpm|5.006000||Viu
7175 PL_regex_pad|5.007002||Viu
7176 PL_regex_padav|5.007002||Viu
7177 PL_registered_mros|5.010001||Viu
7178 PL_regmatch_slab|5.009004||Viu
7179 PL_regmatch_state|5.009004||Viu
7180 PL_replgv|5.005000||Viu
7181 PL_restartjmpenv|5.013001||Viu
7182 PL_restartop|5.005000|5.005000|
23647183 PL_rpeepp|5.013005|5.013005|
2365 PL_rsfp||5.003007|pou
2366 PL_rsfp_filters||5.003007|pou
2367 PL_rs|||i
7184 PL_rs|5.005000||Vi
7185 PL_rsfp||5.003007|ponu
7186 PL_rsfp_filters||5.003007|ponu
23687187 PL_runops|5.006000|5.006000|
2369 PL_signals|5.008001||pVu
2370 PL_stack_base|5.004005|5.003007|poVu
2371 PL_stack_sp|5.004005|5.003007|poVu
2372 PL_statcache|5.005000|5.003007|poVu
2373 PL_stdingv|5.004005|5.003007|poVu
2374 PL_Sv|5.005000|5.003007|poVu
2375 PL_sv_arenaroot|5.004005|5.003007|poVu
7188 PL_savebegin|5.007003||Viu
7189 PL_savestack|5.005000||Viu
7190 PL_savestack_ix|5.005000||Viu
7191 PL_savestack_max|5.005000||Viu
7192 PL_sawampersand|5.005000||Viu
7193 PL_SB_invlist|5.021009||Viu
7194 PL_scopestack|5.005000||Viu
7195 PL_scopestack_ix|5.005000||Viu
7196 PL_scopestack_max|5.005000||Viu
7197 PL_scopestack_name|5.011002||Viu
7198 PL_SCX_invlist|5.027008||Viu
7199 PL_secondgv|5.005000||Viu
7200 PL_setlocale_buf|5.027009||Viu
7201 PL_setlocale_bufsize|5.027009||Viu
7202 PL_sharehook|5.007003||Viu
7203 PL_sighandler1p|5.031007||Viu
7204 PL_sighandler3p|5.031007||Viu
7205 PL_sighandlerp|5.005000||Viu
7206 PL_signalhook|5.013002||Viu
7207 PL_signals|5.008001|5.003007|poVnu
7208 PL_sig_pending|5.007001||Viu
7209 PL_Sock|5.006000||Viu
7210 PL_sortcop|5.005000||Viu
7211 PL_sortstash|5.005000||Viu
7212 PL_splitstr|5.005000||Viu
7213 PL_srand_called|5.006000||Viu
7214 PL_stack_base|5.005000|5.003007|poVnu
7215 PL_stack_max|5.005000||Viu
7216 PL_stack_sp|5.005000|5.003007|poVnu
7217 PL_start_env|5.005000||Viu
7218 PL_stashcache|5.008001||Viu
7219 PL_stashpad|5.017001||Viu
7220 PL_stashpadix|5.017001||Viu
7221 PL_stashpadmax|5.017001||Viu
7222 PL_statcache|5.005000|5.003007|poVnu
7223 PL_statgv|5.005000||Viu
7224 PL_statname|5.005000||Viu
7225 PL_statusvalue|5.005000||Viu
7226 PL_statusvalue_posix|5.009003||Viu
7227 PL_statusvalue_vms|5.005000||Viu
7228 PL_stderrgv|5.006000||Viu
7229 PL_stdingv|5.005000|5.003007|poVnu
7230 PL_StdIO|5.006000||Viu
7231 PL_strtab|5.005000||Viu
7232 PL_strxfrm_is_behaved|5.025002||Viu
7233 PL_strxfrm_max_cp|5.025002||Viu
7234 PL_strxfrm_NUL_replacement|5.025008||Viu
7235 PL_sub_generation|5.005000||Viu
7236 PL_subline|5.005000||Viu
7237 PL_subname|5.005000||Viu
7238 PL_Sv|5.005000||pcV
7239 PL_sv_arenaroot|5.005000|5.003007|poVnu
7240 PL_sv_consts|5.019002||Viu
7241 PL_sv_count|5.005000||Viu
7242 PL_sv_immortals|5.027003||Viu
23767243 PL_sv_no|5.004005|5.003007|p
7244 PL_sv_root|5.005000||Viu
7245 PL_sv_serial|5.010001||Viu
23777246 PL_sv_undef|5.004005|5.003007|p
23787247 PL_sv_yes|5.004005|5.003007|p
23797248 PL_sv_zero|5.027003|5.027003|
2380 PL_tainted|5.004005|5.003007|poVu
2381 PL_tainting|5.004005|5.003007|poVu
2382 PL_tokenbuf||5.003007|pou
2383 PL_Xpv|5.005000|5.003007|poVu
7249 PL_sys_intern|5.005000||Viu
7250 PL_tainted|5.005000|5.003007|poVnu
7251 PL_tainting|5.005000|5.003007|poVnu
7252 PL_taint_warn|5.007003||Viu
7253 PL_threadhook|5.008000||Viu
7254 PL_tmps_floor|5.005000||Viu
7255 PL_tmps_ix|5.005000||Viu
7256 PL_tmps_max|5.005000||Viu
7257 PL_tmps_stack|5.005000||Viu
7258 PL_tokenbuf||5.003007|ponu
7259 PL_top_env|5.005000||Viu
7260 PL_toptarget|5.005000||Viu
7261 PL_TR_SPECIAL_HANDLING_UTF8|5.031006||Viu
7262 PL_underlying_numeric_obj|5.027009||Viu
7263 PL_unicode|5.008001||Viu
7264 PL_unitcheckav|5.009005||Viu
7265 PL_unitcheckav_save|5.009005||Viu
7266 PL_unlockhook|5.007003||Viu
7267 PL_unsafe|5.005000||Viu
7268 PL_UpperLatin1|5.019005||Viu
7269 PLUS|5.003007||Viu
7270 PLUS_t8_p8|5.033003||Viu
7271 PLUS_t8_pb|5.033003||Viu
7272 PLUS_tb_p8|5.033003||Viu
7273 PLUS_tb_pb|5.033003||Viu
7274 PL_utf8cache|5.009004||Viu
7275 PL_utf8_charname_begin|5.017006||Viu
7276 PL_utf8_charname_continue|5.017006||Viu
7277 PL_utf8_foldclosures|5.013007||Viu
7278 PL_utf8_idcont|5.008000||Viu
7279 PL_utf8_idstart|5.008000||Viu
7280 PL_utf8locale|5.008001||Viu
7281 PL_utf8_mark|5.006000||Viu
7282 PL_utf8_perl_idcont|5.017008||Viu
7283 PL_utf8_perl_idstart|5.015004||Viu
7284 PL_utf8_tofold|5.007003||Viu
7285 PL_utf8_tolower|5.006000||Viu
7286 PL_utf8_tosimplefold|5.027011||Viu
7287 PL_utf8_totitle|5.006000||Viu
7288 PL_utf8_toupper|5.006000||Viu
7289 PL_utf8_xidcont|5.013010||Viu
7290 PL_utf8_xidstart|5.013010||Viu
7291 PL_vtbl_arylen|5.015000||Viu
7292 PL_vtbl_arylen_p|5.015000||Viu
7293 PL_vtbl_backref|5.015000||Viu
7294 PL_vtbl_bm|5.015000||Viu
7295 PL_vtbl_checkcall|5.017000||Viu
7296 PL_vtbl_collxfrm|5.015000||Viu
7297 PL_vtbl_dbline|5.015000||Viu
7298 PL_vtbl_debugvar|5.021005||Viu
7299 PL_vtbl_defelem|5.015000||Viu
7300 PL_vtbl_env|5.015000||Viu
7301 PL_vtbl_envelem|5.015000||Viu
7302 PL_vtbl_fm|5.015000||Viu
7303 PL_vtbl_hints|5.015000||Viu
7304 PL_vtbl_hintselem|5.015000||Viu
7305 PL_vtbl_isa|5.015000||Viu
7306 PL_vtbl_isaelem|5.015000||Viu
7307 PL_vtbl_lvref|5.021005||Viu
7308 PL_vtbl_mglob|5.015000||Viu
7309 PL_vtbl_nkeys|5.015000||Viu
7310 PL_vtbl_nonelem|5.027009||Viu
7311 PL_vtbl_ovrld|5.015000||Viu
7312 PL_vtbl_pack|5.015000||Viu
7313 PL_vtbl_packelem|5.015000||Viu
7314 PL_vtbl_pos|5.015000||Viu
7315 PL_vtbl_regdata|5.015000||Viu
7316 PL_vtbl_regdatum|5.015000||Viu
7317 PL_vtbl_regexp|5.015000||Viu
7318 PL_vtbl_sig|5.035001||Viu
7319 PL_vtbl_sigelem|5.015000||Viu
7320 PL_vtbl_substr|5.015000||Viu
7321 PL_vtbl_sv|5.015000||Viu
7322 PL_vtbl_taint|5.015000||Viu
7323 PL_vtbl_utf8|5.015000||Viu
7324 PL_vtbl_uvar|5.015000||Viu
7325 PL_vtbl_vec|5.015000||Viu
7326 PL_warnhook|5.005000||Viu
7327 PL_warn_locale|5.021008||Viu
7328 PL_watchaddr|5.006000||Viu
7329 PL_watchok|5.006000||Viu
7330 PL_WB_invlist|5.021009||Viu
7331 PL_wcrtomb_ps|5.031010||Viu
7332 PL_XPosix_ptrs|5.017008||Viu
7333 PL_Xpv|5.005000|5.003007|poVnu
7334 PL_xsubfilename|5.021006||Viu
23847335 pm_description|5.009004||Viu
7336 PMf_BASE_SHIFT|5.013004||Viu
7337 PMf_CHARSET|5.017011||Viu
7338 PMf_CODELIST_PRIVATE|5.017001||Viu
7339 PMf_CONST|5.003007||Viu
7340 PMf_CONTINUE|5.004000||Viu
7341 PMf_EVAL|5.003007||Viu
7342 PMf_EXTENDED|5.003007||Viu
7343 PMf_EXTENDED_MORE|5.021005||Viu
7344 PMf_FOLD|5.003007||Viu
7345 PMf_GLOBAL|5.003007||Viu
7346 PMf_HAS_CV|5.017001||Viu
7347 PMf_HAS_ERROR|5.025010||Viu
7348 PMf_IS_QR|5.017001||Viu
7349 PMf_KEEP|5.003007||Viu
7350 PMf_KEEPCOPY|5.009005||Viu
7351 PMf_MULTILINE|5.003007||Viu
7352 PMf_NOCAPTURE|5.021008||Viu
7353 PMf_NONDESTRUCT|5.013002||Viu
7354 PMf_ONCE|5.003007||Viu
7355 PMf_RETAINT|5.004005||Viu
7356 PMf_SINGLELINE|5.003007||Viu
7357 PMf_SPLIT|5.017011||Viu
7358 PMf_STRICT|5.021008||Viu
7359 PMf_USED|5.009005||Viu
7360 PMf_USE_RE_EVAL|5.017001||Viu
7361 PMf_WILDCARD|5.031010||Viu
7362 PM_GETRE|5.007002||Viu
23857363 pmop_dump|5.006000|5.006000|u
7364 PmopSTASH|5.007001||Viu
7365 PmopSTASHPV|5.007001||Viu
7366 PmopSTASHPV_set|5.007001||Viu
7367 PmopSTASH_set|5.007001||Viu
23867368 pmruntime|5.003007||Viu
7369 PM_SETRE|5.007002||Viu
7370 PM_STR|5.027010||Viu
23877371 pmtrans|5.003007||Viu
2388 _pMY_CXT|5.007003|5.009000|pV
2389 pMY_CXT_|5.007003|5.009000|pV
23907372 pMY_CXT|5.009000|5.009000|p
7373 _pMY_CXT||5.009000|p
7374 pMY_CXT_||5.009000|p
7375 PNf|5.021007||Viu
7376 PNfARG|5.021007||Viu
23917377 Poison|5.008000|5.003007|p
23927378 PoisonFree|5.009004|5.003007|p
23937379 PoisonNew|5.009004|5.003007|p
7380 PoisonPADLIST|5.021006||Viu
23947381 PoisonWith|5.009004|5.003007|p
7382 popen|5.003007||Viu
23957383 POPi|5.003007|5.003007|
23967384 POPl|5.003007|5.003007|
2397 POPMARK|||ciu
7385 POPMARK|5.003007||cViu
23987386 POP_MULTICALL|5.009003|5.009003|
23997387 POPn|5.006000|5.003007|
24007388 POPp|5.003007|5.003007|
24017389 POPpbytex|5.007001|5.007001|
7390 POPpconstx|5.009003||Viu
24027391 POPpx|5.005003|5.005003|
24037392 POPs|5.003007|5.003007|
24047393 pop_scope|5.003007|5.003007|u
7394 POPSTACK|5.005000||Viu
7395 POPSTACK_TO|5.005000||Viu
24057396 POPu|5.004000|5.004000|
24067397 POPul|5.006000|5.006000|
24077398 populate_ANYOF_from_invlist|5.019005||Viu
24087399 populate_isa|||viu
2409 pregcomp|5.009005|5.009005|u
2410 pregexec|5.003007|5.003007|u
2411 pregfree2|5.011000|5.011000|u
7400 POSIXA|5.017003||Viu
7401 POSIXA_t8_p8|5.033003||Viu
7402 POSIXA_t8_pb|5.033003||Viu
7403 POSIXA_tb_p8|5.033003||Viu
7404 POSIXA_tb_pb|5.033003||Viu
7405 POSIX_CC_COUNT|5.017008||Viu
7406 POSIXD|5.017003||Viu
7407 POSIXD_t8_p8|5.033003||Viu
7408 POSIXD_t8_pb|5.033003||Viu
7409 POSIXD_tb_p8|5.033003||Viu
7410 POSIXD_tb_pb|5.033003||Viu
7411 POSIXL|5.017003||Viu
7412 POSIXL_CLEAR|5.029004||Viu
7413 POSIXL_SET|5.029004||Viu
7414 POSIXL_t8_p8|5.033003||Viu
7415 POSIXL_t8_pb|5.033003||Viu
7416 POSIXL_tb_p8|5.033003||Viu
7417 POSIXL_tb_pb|5.033003||Viu
7418 POSIXL_TEST|5.029004||Viu
7419 POSIXL_ZERO|5.029004||Viu
7420 POSIXU|5.017003||Viu
7421 POSIXU_t8_p8|5.033003||Viu
7422 POSIXU_t8_pb|5.033003||Viu
7423 POSIXU_tb_p8|5.033003||Viu
7424 POSIXU_tb_pb|5.033003||Viu
7425 PP|5.003007||Viu
7426 pregcomp|5.009005|5.009005|
7427 pregexec|5.003007|5.003007|
7428 PREGf_ANCH|5.019009||Viu
7429 PREGf_ANCH_GPOS|5.019009||Viu
7430 PREGf_ANCH_MBOL|5.019009||Viu
7431 PREGf_ANCH_SBOL|5.019009||Viu
7432 PREGf_CUTGROUP_SEEN|5.009005||Viu
7433 PREGf_GPOS_FLOAT|5.019009||Viu
7434 PREGf_GPOS_SEEN|5.019009||Viu
7435 PREGf_IMPLICIT|5.009005||Viu
7436 PREGf_NAUGHTY|5.009005||Viu
7437 PREGf_NOSCAN|5.019009||Viu
7438 PREGf_RECURSE_SEEN|5.023009||Viu
7439 pregfree2|5.011000||cVu
24127440 pregfree|5.003007|5.003007|u
7441 PREGf_SKIP|5.009005||Viu
7442 PREGf_USE_RE_EVAL|5.017001||Viu
7443 PREGf_VERBARG_SEEN|5.009005||Viu
7444 prepare_SV_for_RV|5.010001||Viu
24137445 prescan_version|5.011004|5.011004|
7446 PRESCAN_VERSION|5.019008||Viu
7447 PREVOPER|5.003007||Viu
7448 PREV_RANGE_MATCHES_INVLIST|5.023002||Viu
24147449 printbuf|5.009004||Viu
24157450 print_bytes_for_locale|5.027002||Viu
24167451 print_collxfrm_input_and_return|5.025004||Viu
2417 printf_nocontext|5.007001|5.007001|vndu
2418 PRIVLIB|5.003007|5.003007|
7452 printf|5.003007||Viu
7453 PRINTF_FORMAT_NULL_OK|5.009005|5.009005|Vn
7454 printf_nocontext|5.007001|5.007001|vdnu
7455 PRIVLIB|5.003007|5.003007|Vn
7456 PRIVLIB_EXP|5.003007|5.003007|Vn
7457 PRIVSHIFT|5.003007||Viu
24197458 process_special_blocks|5.009005||Viu
7459 PROCSELFEXE_PATH|5.007003|5.007003|Vn
7460 PRUNE|5.009005||Viu
7461 PRUNE_t8_p8|5.033003||Viu
7462 PRUNE_t8_pb|5.033003||Viu
7463 PRUNE_tb_p8|5.033003||Viu
7464 PRUNE_tb_pb|5.033003||Viu
7465 PSEUDO|5.009004||Viu
7466 PSEUDO_t8_p8|5.033003||Viu
7467 PSEUDO_t8_pb|5.033003||Viu
7468 PSEUDO_tb_p8|5.033003||Viu
7469 PSEUDO_tb_pb|5.033003||Viu
7470 pthread_addr_t|5.005000||Viu
7471 PTHREAD_ATFORK|5.007002||Viu
7472 pthread_attr_init|5.006000||Viu
7473 PTHREAD_ATTR_SETDETACHSTATE|5.006000||Viu
7474 pthread_condattr_default|5.005000||Viu
7475 PTHREAD_CREATE|5.006000||Viu
7476 pthread_create|5.008001||Viu
7477 PTHREAD_CREATE_JOINABLE|5.005000||Viu
7478 PTHREAD_GETSPECIFIC|5.007002||Viu
7479 PTHREAD_GETSPECIFIC_INT|5.006000||Viu
7480 pthread_key_create|5.005000||Viu
7481 pthread_keycreate|5.008001||Viu
7482 pthread_mutexattr_default|5.005000||Viu
7483 pthread_mutexattr_init|5.005000||Viu
7484 pthread_mutexattr_settype|5.005000||Viu
7485 pTHX_12|5.019010||Viu
7486 pTHX_1|5.006000||Viu
7487 pTHX_2|5.006000||Viu
7488 pTHX_3|5.006000||Viu
7489 pTHX_4|5.006000||Viu
24207490 pTHX|5.006000|5.003007|p
2421 pTHX_|5.006000|5.003007|pV
7491 pTHX_5|5.009003||Viu
7492 pTHX_6|5.009003||Viu
7493 pTHX_7|5.009003||Viu
7494 pTHX_8|5.009003||Viu
7495 pTHX_9|5.009003||Viu
7496 pTHX_||5.003007|p
7497 pTHX__FORMAT|5.009002||Viu
7498 pTHX_FORMAT|5.009002||Viu
7499 pTHXo|5.006000||Viu
7500 pTHX__VALUE|5.009002||Viu
7501 pTHX_VALUE|5.009002||Viu
7502 pTHXx|5.006000||Viu
24227503 PTR2IV|5.006000|5.003007|p
2423 PTR2nat|5.009003||pVu
7504 PTR2nat|5.009003|5.003007|p
24247505 PTR2NV|5.006000|5.003007|p
2425 PTR2ul|5.007001||pVu
7506 PTR2ul|5.007001|5.003007|p
24267507 PTR2UV|5.006000|5.003007|p
2427 ptr_hash|5.017010||nViu
2428 PTRSIZE|5.005000|5.005000|
7508 Ptrdiff_t|5.029003||Viu
7509 ptr_hash|5.017010||Vniu
7510 PTRSIZE|5.005000|5.005000|Vn
24297511 ptr_table_clear|5.009005|5.009005|du
24307512 ptr_table_fetch|5.009005|5.009005|u
2431 ptr_table_find|5.009004||nViu
7513 ptr_table_find|5.009004||Vniu
24327514 ptr_table_free|5.009005|5.009005|u
24337515 ptr_table_new|5.009005|5.009005|u
24347516 ptr_table_split|5.009005|5.009005|u
24357517 ptr_table_store|5.009005|5.009005|u
2436 PTRV|5.006000|5.003007|poVu
7518 PTRV|5.006000|5.003007|poVnu
24377519 PUSHi|5.003007|5.003007|
24387520 PUSHMARK|5.003007|5.003007|
24397521 PUSHmortal|5.009002|5.003007|p
24407522 PUSH_MULTICALL|5.011000|5.011000|
7523 PUSH_MULTICALL_FLAGS|5.018000||Viu
24417524 PUSHn|5.006000|5.003007|
24427525 PUSHp|5.003007|5.003007|
24437526 PUSHs|5.003007|5.003007|
24447527 push_scope|5.003007|5.003007|u
7528 PUSHSTACK|5.005000||Viu
7529 PUSHSTACKi|5.005000||Viu
7530 PUSHSTACK_INIT_HWM|5.027002||Viu
7531 PUSHTARG|5.003007||Viu
24457532 PUSHu|5.004000|5.003007|p
24467533 PUTBACK|5.003007|5.003007|
7534 putc|5.003007||Viu
24477535 put_charclass_bitmap_innards|5.021004||Viu
24487536 put_charclass_bitmap_innards_common|5.023008||Viu
24497537 put_charclass_bitmap_innards_invlist|5.023008||Viu
24507538 put_code_point|5.021004||Viu
7539 putc_unlocked|5.003007||Viu
7540 putenv|5.005000||Viu
24517541 put_range|5.019009||Viu
7542 putw|5.003007||Viu
24527543 pv_display|5.006000|5.003007|p
24537544 pv_escape|5.009004|5.003007|p
24547545 pv_pretty|5.009004|5.003007|p
24557546 pv_uni_display|5.007003|5.007003|
7547 pWARN_ALL|5.006000||Viu
7548 pWARN_NONE|5.006000||Viu
7549 pWARN_STD|5.006000||Viu
7550 PWGECOS|5.004005|5.004005|Vn
7551 PWPASSWD|5.005000|5.005000|Vn
24567552 qerror|5.006000||cViu
2457 quadmath_format_needed|5.021004||nVi
2458 quadmath_format_valid|||nVi
2459 RANDBITS|5.003007|5.003007|
7553 QR_PAT_MODS|5.009005||Viu
7554 QUAD_IS_INT|5.006000|5.006000|Vn
7555 QUAD_IS___INT64|5.015003|5.015003|Vn
7556 QUAD_IS_INT64_T|5.006000|5.006000|Vn
7557 QUAD_IS_LONG|5.006000|5.006000|Vn
7558 QUAD_IS_LONG_LONG|5.006000|5.006000|Vn
7559 QUADKIND|5.006000|5.006000|Vn
7560 quadmath_format_needed|5.021004||Vni
7561 quadmath_format_valid|5.031007||Vni
7562 Quad_t|5.003007|5.003007|Vn
7563 QUESTION_MARK_CTRL|5.021001||Viu
7564 RADIXCHAR|5.027010||Viu
7565 RANDBITS|5.003007|5.003007|Vn
7566 RANDOM_R_PROTO|5.008000|5.008000|Vn
7567 Rand_seed_t|5.006000|5.006000|Vn
7568 RANGE_INDICATOR|5.031006||Viu
7569 rck_elide_nothing|5.032001||Viu
7570 RD_NODATA|5.003007|5.003007|Vn
7571 read|5.005000||Viu
7572 readdir|5.005000||Viu
7573 readdir64|5.009000||Viu
7574 READDIR64_R_PROTO|5.008000|5.008000|Vn
7575 READDIR_R_PROTO|5.008000|5.008000|Vn
24607576 READ_XDIGIT|5.017006|5.017006|
24617577 realloc|5.007002|5.007002|n
2462 ReANY|||ncu
7578 ReANY|5.017006||cVnu
24637579 re_compile|5.009005|5.009005|u
2464 re_croak2|||iu
2465 re_dup_guts|5.011000|5.011000|u
2466 reentrant_free|5.010000|5.010000|u
2467 reentrant_init|5.010000|5.010000|u
2468 reentrant_retry|5.010000|5.010000|vnu
2469 reentrant_size|5.010000|5.010000|u
7580 RE_COMPILE_RECURSION_INIT|5.029009||Viu
7581 RE_COMPILE_RECURSION_LIMIT|5.029009||Viu
7582 re_croak|||iu
7583 recv|5.006000||Viu
7584 recvfrom|5.005000||Viu
7585 RE_DEBUG_COMPILE_DUMP|5.009004||Viu
7586 RE_DEBUG_COMPILE_FLAGS|5.009005||Viu
7587 RE_DEBUG_COMPILE_MASK|5.009004||Viu
7588 RE_DEBUG_COMPILE_OPTIMISE|5.009004||Viu
7589 RE_DEBUG_COMPILE_PARSE|5.009004||Viu
7590 RE_DEBUG_COMPILE_TEST|5.021005||Viu
7591 RE_DEBUG_COMPILE_TRIE|5.009004||Viu
7592 RE_DEBUG_EXECUTE_INTUIT|5.009004||Viu
7593 RE_DEBUG_EXECUTE_MASK|5.009004||Viu
7594 RE_DEBUG_EXECUTE_MATCH|5.009004||Viu
7595 RE_DEBUG_EXECUTE_TRIE|5.009004||Viu
7596 RE_DEBUG_EXTRA_BUFFERS|5.009005||Viu
7597 RE_DEBUG_EXTRA_DUMP_PRE_OPTIMIZE|5.031004||Viu
7598 RE_DEBUG_EXTRA_GPOS|5.011000||Viu
7599 RE_DEBUG_EXTRA_MASK|5.009004||Viu
7600 RE_DEBUG_EXTRA_OFFDEBUG|5.009005||Viu
7601 RE_DEBUG_EXTRA_OFFSETS|5.009004||Viu
7602 RE_DEBUG_EXTRA_OPTIMISE|5.009005||Viu
7603 RE_DEBUG_EXTRA_STACK|5.009005||Viu
7604 RE_DEBUG_EXTRA_STATE|5.009004||Viu
7605 RE_DEBUG_EXTRA_TRIE|5.009004||Viu
7606 RE_DEBUG_EXTRA_WILDCARD|5.031011||Viu
7607 RE_DEBUG_FLAG|5.009004||Viu
7608 RE_DEBUG_FLAGS|5.009002||Viu
7609 re_dup_guts|5.011000|5.011000|
7610 reentrant_free|5.008000||cVu
7611 reentrant_init|5.008000||cVu
7612 REENTRANT_PROTO_B_B|5.008000||Viu
7613 REENTRANT_PROTO_B_BI|5.008000||Viu
7614 REENTRANT_PROTO_B_BW|5.008000||Viu
7615 REENTRANT_PROTO_B_CCD|5.008000||Viu
7616 REENTRANT_PROTO_B_CCS|5.008000||Viu
7617 REENTRANT_PROTO_B_IBI|5.008000||Viu
7618 REENTRANT_PROTO_B_IBW|5.008000||Viu
7619 REENTRANT_PROTO_B_SB|5.008000||Viu
7620 REENTRANT_PROTO_B_SBI|5.008000||Viu
7621 REENTRANT_PROTO_I_BI|5.008000||Viu
7622 REENTRANT_PROTO_I_BW|5.008000||Viu
7623 REENTRANT_PROTO_I_CCSBWR|5.008000||Viu
7624 REENTRANT_PROTO_I_CCSD|5.008000||Viu
7625 REENTRANT_PROTO_I_CII|5.008000||Viu
7626 REENTRANT_PROTO_I_CIISD|5.008000||Viu
7627 REENTRANT_PROTO_I_CSBI|5.008000||Viu
7628 REENTRANT_PROTO_I_CSBIR|5.008000||Viu
7629 REENTRANT_PROTO_I_CSBWR|5.008000||Viu
7630 REENTRANT_PROTO_I_CSBWRE|5.008000||Viu
7631 REENTRANT_PROTO_I_CSD|5.008000||Viu
7632 REENTRANT_PROTO_I_CWISBWRE|5.008000||Viu
7633 REENTRANT_PROTO_I_CWISD|5.008000||Viu
7634 REENTRANT_PROTO_I_D|5.008000||Viu
7635 REENTRANT_PROTO_I_H|5.008000||Viu
7636 REENTRANT_PROTO_I_IBI|5.008000||Viu
7637 REENTRANT_PROTO_I_IBW|5.008000||Viu
7638 REENTRANT_PROTO_I_ICBI|5.008000||Viu
7639 REENTRANT_PROTO_I_ICSBWR|5.008000||Viu
7640 REENTRANT_PROTO_I_ICSD|5.008000||Viu
7641 REENTRANT_PROTO_I_ID|5.008000||Viu
7642 REENTRANT_PROTO_I_IISD|5.008000||Viu
7643 REENTRANT_PROTO_I_ISBWR|5.008000||Viu
7644 REENTRANT_PROTO_I_ISD|5.008000||Viu
7645 REENTRANT_PROTO_I_LISBI|5.008000||Viu
7646 REENTRANT_PROTO_I_LISD|5.008000||Viu
7647 REENTRANT_PROTO_I_SB|5.008000||Viu
7648 REENTRANT_PROTO_I_SBI|5.008000||Viu
7649 REENTRANT_PROTO_I_SBIE|5.008000||Viu
7650 REENTRANT_PROTO_I_SBIH|5.008000||Viu
7651 REENTRANT_PROTO_I_SBIR|5.008000||Viu
7652 REENTRANT_PROTO_I_SBWR|5.008000||Viu
7653 REENTRANT_PROTO_I_SBWRE|5.008000||Viu
7654 REENTRANT_PROTO_I_SD|5.008000||Viu
7655 REENTRANT_PROTO_I_TISD|5.008000||Viu
7656 REENTRANT_PROTO_I_TS|5.008000||Viu
7657 REENTRANT_PROTO_I_TSBI|5.008000||Viu
7658 REENTRANT_PROTO_I_TSBIR|5.008000||Viu
7659 REENTRANT_PROTO_I_TSBWR|5.008000||Viu
7660 REENTRANT_PROTO_I_TsISBWRE|5.008001||Viu
7661 REENTRANT_PROTO_I_TSR|5.008000||Viu
7662 REENTRANT_PROTO_I_UISBWRE|5.008000||Viu
7663 REENTRANT_PROTO_I_uISBWRE|5.008001||Viu
7664 REENTRANT_PROTO_S_CBI|5.008000||Viu
7665 REENTRANT_PROTO_S_CCSBI|5.008000||Viu
7666 REENTRANT_PROTO_S_CIISBIE|5.008000||Viu
7667 REENTRANT_PROTO_S_CSBI|5.008000||Viu
7668 REENTRANT_PROTO_S_CSBIE|5.008000||Viu
7669 REENTRANT_PROTO_S_CWISBIE|5.008000||Viu
7670 REENTRANT_PROTO_S_CWISBWIE|5.008000||Viu
7671 REENTRANT_PROTO_S_ICSBI|5.008000||Viu
7672 REENTRANT_PROTO_S_ISBI|5.008000||Viu
7673 REENTRANT_PROTO_S_LISBI|5.008000||Viu
7674 REENTRANT_PROTO_S_SBI|5.008000||Viu
7675 REENTRANT_PROTO_S_SBIE|5.008000||Viu
7676 REENTRANT_PROTO_S_SBW|5.008000||Viu
7677 REENTRANT_PROTO_S_TISBI|5.008000||Viu
7678 REENTRANT_PROTO_S_TS|5.031011||Viu
7679 REENTRANT_PROTO_S_TSBI|5.008000||Viu
7680 REENTRANT_PROTO_S_TSBIE|5.008000||Viu
7681 REENTRANT_PROTO_S_TWISBIE|5.008000||Viu
7682 REENTRANT_PROTO_V_D|5.008000||Viu
7683 REENTRANT_PROTO_V_H|5.008000||Viu
7684 REENTRANT_PROTO_V_ID|5.008000||Viu
7685 reentrant_retry|5.008000||vcVnu
7686 reentrant_size|5.008000||cVu
7687 REENTR_MEMZERO|5.009003||Viu
24707688 re_exec_indentf|5.023009||vViu
2471 ref|5.003007||Vu
7689 REF|5.003007||Viu
7690 ref|5.009003||Viu
24727691 ref_array_or_hash|5.027008||Viu
24737692 refcounted_he_chain_2hv|5.013007||cVi
7693 REFCOUNTED_HE_EXISTS|5.015007||Viu
24747694 refcounted_he_fetch_pv|5.013007||cVi
24757695 refcounted_he_fetch_pvn|5.013007||cVi
2476 refcounted_he_fetch_pvs|||i
7696 refcounted_he_fetch_pvs|5.013007||Vi
24777697 refcounted_he_fetch_sv|5.013007||cVi
24787698 refcounted_he_free|5.013007||cVi
24797699 refcounted_he_inc|5.013007||cVi
7700 REFCOUNTED_HE_KEY_UTF8|5.013007||Viu
24807701 refcounted_he_new_pv|5.013007||cVi
24817702 refcounted_he_new_pvn|5.013007||cVi
2482 refcounted_he_new_pvs|||i
7703 refcounted_he_new_pvs|5.013007||Vi
24837704 refcounted_he_new_sv|5.013007||cVi
24847705 refcounted_he_value|5.009004||Viu
7706 REFF|5.004001||Viu
7707 REFFA|5.013010||Viu
7708 REFFAN|5.031001||Viu
7709 REFFAN_t8_p8|5.033003||Viu
7710 REFFAN_t8_pb|5.033003||Viu
7711 REFFAN_tb_p8|5.033003||Viu
7712 REFFAN_tb_pb|5.033003||Viu
7713 REFFA_t8_p8|5.033003||Viu
7714 REFFA_t8_pb|5.033003||Viu
7715 REFFA_tb_p8|5.033003||Viu
7716 REFFA_tb_pb|5.033003||Viu
7717 REFFL|5.004001||Viu
7718 REFFLN|5.031001||Viu
7719 REFFLN_t8_p8|5.033003||Viu
7720 REFFLN_t8_pb|5.033003||Viu
7721 REFFLN_tb_p8|5.033003||Viu
7722 REFFLN_tb_pb|5.033003||Viu
7723 REFFL_t8_p8|5.033003||Viu
7724 REFFL_t8_pb|5.033003||Viu
7725 REFFL_tb_p8|5.033003||Viu
7726 REFFL_tb_pb|5.033003||Viu
7727 REFFN|5.031001||Viu
7728 REFFN_t8_p8|5.033003||Viu
7729 REFFN_t8_pb|5.033003||Viu
7730 REFFN_tb_p8|5.033003||Viu
7731 REFFN_tb_pb|5.033003||Viu
7732 REFF_t8_p8|5.033003||Viu
7733 REFF_t8_pb|5.033003||Viu
7734 REFF_tb_p8|5.033003||Viu
7735 REFF_tb_pb|5.033003||Viu
7736 REFFU|5.013008||Viu
7737 REFFUN|5.031001||Viu
7738 REFFUN_t8_p8|5.033003||Viu
7739 REFFUN_t8_pb|5.033003||Viu
7740 REFFUN_tb_p8|5.033003||Viu
7741 REFFUN_tb_pb|5.033003||Viu
7742 REFFU_t8_p8|5.033003||Viu
7743 REFFU_t8_pb|5.033003||Viu
7744 REFFU_tb_p8|5.033003||Viu
7745 REFFU_tb_pb|5.033003||Viu
7746 REF_HE_KEY|5.009005||Viu
24857747 refkids|5.003007||Viu
7748 REFN|5.031001||Viu
7749 REFN_t8_p8|5.033003||Viu
7750 REFN_t8_pb|5.033003||Viu
7751 REFN_tb_p8|5.033003||Viu
7752 REFN_tb_pb|5.033003||Viu
7753 REF_t8_p8|5.033003||Viu
7754 REF_t8_pb|5.033003||Viu
7755 REF_tb_p8|5.033003||Viu
7756 REF_tb_pb|5.033003||Viu
24867757 refto|5.005000||Viu
24877758 reg2Lanode|5.021005||Viu
24887759 reg|5.005000||Viu
24897760 reganode|5.005000||Viu
7761 REG_ANY|5.006000||Viu
7762 REG_ANY_t8_p8|5.033003||Viu
7763 REG_ANY_t8_pb|5.033003||Viu
7764 REG_ANY_tb_p8|5.033003||Viu
7765 REG_ANY_tb_pb|5.033003||Viu
24907766 regatom|5.005000||Viu
24917767 regbranch|5.005000||Viu
2492 reg_check_named_buff_matched|5.009005||nViu
7768 reg_check_named_buff_matched|5.009005||Vniu
24937769 regclass|5.005000||Viu
24947770 regcppop|5.005000||Viu
24957771 regcppush|5.005000||Viu
24967772 regcp_restore|5.025006||Viu
2497 regcurly|5.013010||nViu
7773 regcurly|5.013010||cVniu
7774 REG_CUTGROUP_SEEN|5.019009||Viu
24987775 regdump|5.005000|5.005000|u
24997776 regdump_extflags|5.009005||Viu
25007777 regdump_intflags|5.019002||Viu
2501 regdupe_internal|5.009000|5.009000|u
2502 regexec_flags|5.005000|5.005000|u
2503 regex_set_precedence|5.021010||nViu
2504 regfree_internal|5.009005|5.009005|u
2505 reghop3|5.007001||nViu
2506 reghop4|5.009005||nViu
2507 reghopmaybe3|5.007001||nViu
7778 regdupe_internal|5.009005||cVu
7779 regexec_flags|5.005000||cVu
7780 REGEX_SET|5.031010||Viu
7781 regex_set_precedence|5.021010||Vniu
7782 REGEX_SET_t8_p8|5.033003||Viu
7783 REGEX_SET_t8_pb|5.033003||Viu
7784 REGEX_SET_tb_p8|5.033003||Viu
7785 REGEX_SET_tb_pb|5.033003||Viu
7786 REG_EXTFLAGS_NAME_SIZE|5.020000||Viu
7787 regfree_internal|5.009005||cVu
7788 REG_GPOS_SEEN|5.019009||Viu
7789 reghop3|5.007001||Vniu
7790 reghop4|5.009005||Vniu
7791 reghopmaybe3|5.007001||Vniu
25087792 reginclass|5.005000||Viu
2509 reginitcolors|5.006000|5.006000|u
7793 REG_INFTY|5.004005||Viu
7794 reginitcolors|5.006000||cVu
25107795 reginsert|5.005000||Viu
7796 REG_INTFLAGS_NAME_SIZE|5.020000||Viu
7797 register|5.003007||Viu
7798 REG_LOOKBEHIND_SEEN|5.019009||Viu
7799 REG_MAGIC|5.006000||Viu
25117800 regmatch|5.005000||Viu
7801 REGMATCH_STATE_MAX|5.009005||Viu
25127802 reg_named_buff|5.009005||cViu
2513 reg_named_buff_all|5.009005|5.009005|u
2514 reg_named_buff_exists|5.009005|5.009005|u
2515 reg_named_buff_fetch|5.009005|5.009005|u
2516 reg_named_buff_firstkey|5.009005|5.009005|u
7803 reg_named_buff_all|5.009005||cVu
7804 reg_named_buff_exists|5.009005||cVu
7805 reg_named_buff_fetch|5.009005||cVu
7806 reg_named_buff_firstkey|5.009005||cVu
25177807 reg_named_buff_iter|5.009005||cViu
2518 reg_named_buff_nextkey|5.009005|5.009005|u
2519 reg_named_buff_scalar|5.009005|5.009005|u
2520 regnext|5.005000|5.005000|u
7808 reg_named_buff_nextkey|5.009005||cVu
7809 reg_named_buff_scalar|5.009005||cVu
7810 regnext|5.003007||cVu
25217811 reg_node|5.005000||Viu
25227812 regnode_guts|5.021005||Viu
7813 REGNODE_MAX|5.009004||Viu
7814 REGNODE_SIMPLE|5.013002||Viu
7815 REGNODE_VARIES|5.013002||Viu
25237816 reg_numbered_buff_fetch|5.009005||cViu
25247817 reg_numbered_buff_length|5.009005||cViu
25257818 reg_numbered_buff_store|5.009005||cViu
25267819 regpiece|5.005000||Viu
7820 regpnode|5.031010||Viu
25277821 regprop|5.003007||Viu
25287822 reg_qr_package|5.009005||cViu
7823 REG_RECURSE_SEEN|5.019009||Viu
25297824 regrepeat|5.005000||Viu
7825 REG_RUN_ON_COMMENT_SEEN|5.019009||Viu
25307826 reg_scan_name|5.009005||Viu
2531 reg_skipcomment|5.009005||nViu
7827 reg_skipcomment|5.009005||Vniu
25327828 regtail|5.005000||Viu
25337829 regtail_study|5.009004||Viu
25347830 reg_temp_copy|5.009005||cViu
7831 REG_TOP_LEVEL_BRANCHES_SEEN|5.019009||Viu
25357832 regtry|5.005000||Viu
7833 REG_UNBOUNDED_QUANTIFIER_SEEN|5.019009||Viu
7834 REG_UNFOLDED_MULTI_SEEN|5.019009||Viu
7835 REG_VERBARG_SEEN|5.019009||Viu
7836 REG_ZERO_LEN_SEEN|5.019009||Viu
25367837 re_indentf|5.023009||vViu
25377838 re_intuit_start|5.006000||cVu
25387839 re_intuit_string|5.006000||cVu
7840 rename|5.005000||Viu
25397841 Renew|5.003007|5.003007|
25407842 Renewc|5.003007|5.003007|
7843 RENUM|5.005000||Viu
7844 RENUM_t8_p8|5.033003||Viu
7845 RENUM_t8_pb|5.033003||Viu
7846 RENUM_tb_p8|5.033003||Viu
7847 RENUM_tb_pb|5.033003||Viu
25417848 re_op_compile|5.017001||Viu
25427849 repeatcpy|5.003007|5.003007|nu
25437850 REPLACEMENT_CHARACTER_UTF8|5.025005|5.003007|p
25467853 report_uninit|5.006000||cVi
25477854 report_wrongway_fh|5.013009||Viu
25487855 re_printf|5.023009||vViu
7856 RE_PV_COLOR_DECL|5.009004||Viu
7857 RE_PV_QUOTED_DECL|5.009004||Viu
25497858 require_pv|5.006000|5.006000|
25507859 require_tie_mod|5.009005||Viu
2551 RESTORE_ERRNO|||i
2552 RESTORE_LC_NUMERIC|5.021010|5.021010|
7860 ReREFCNT_dec|5.005000||Viu
7861 ReREFCNT_inc|5.005000||Viu
7862 RESTORE_ERRNO|5.010001||Vi
7863 RESTORE_LC_NUMERIC|5.021010|5.021010|p
25537864 restore_magic|5.009003||Viu
25547865 restore_switched_locale|5.027009||Viu
7866 RE_SV_DUMPLEN|5.009004||Viu
7867 RE_SV_ESCAPE|5.009004||Viu
7868 RE_SV_TAIL|5.009004||Viu
7869 RETPUSHNO|5.003007||Viu
7870 RETPUSHUNDEF|5.003007||Viu
7871 RETPUSHYES|5.003007||Viu
7872 RE_TRACK_PATTERN_OFFSETS|5.009005||Viu
7873 RE_TRIE_MAXBUF_INIT|5.009002||Viu
7874 RE_TRIE_MAXBUF_NAME|5.009002||Viu
7875 RETSETNO|5.003007||Viu
7876 RETSETTARG|5.021009||Viu
7877 RETSETUNDEF|5.003007||Viu
7878 RETSETYES|5.003007||Viu
7879 RETURN|5.003007||Viu
7880 RETURNOP|5.003007||Viu
7881 RETURNX|5.003007||Viu
25557882 RETVAL|5.003007|5.003007|V
7883 rewind|5.003007||Viu
7884 rewinddir|5.005000||Viu
7885 REXEC_CHECKED|5.005000||Viu
7886 REXEC_COPY_SKIP_POST|5.017004||Viu
7887 REXEC_COPY_SKIP_PRE|5.017004||Viu
7888 REXEC_COPY_STR|5.005000||Viu
7889 REXEC_FAIL_ON_UNDERFLOW|5.019003||Viu
7890 REXEC_IGNOREPOS|5.006000||Viu
7891 REXEC_NOT_FIRST|5.006000||Viu
7892 REXEC_SCREAM|5.006000||Viu
7893 rmdir|5.005000||Viu
7894 RMS_DIR|5.008001||Viu
7895 RMS_FAC|5.008001||Viu
7896 RMS_FEX|5.008001||Viu
7897 RMS_FNF|5.008001||Viu
7898 RMS_IFI|5.008001||Viu
7899 RMS_ISI|5.008001||Viu
7900 RMS_PRV|5.008001||Viu
25567901 rninstr|5.003007|5.003007|n
7902 ROTL32|5.017010||Viu
7903 ROTL64|5.017010||Viu
7904 ROTL_UV|5.017010||Viu
7905 ROTR32|5.027001||Viu
7906 ROTR64|5.027001||Viu
7907 ROTR_UV|5.027001||Viu
25577908 rpeep|5.013005||Viu
25587909 rsignal|5.004000|5.004000|
25597910 rsignal_restore|5.004000||Viu
25607911 rsignal_save|5.004000||Viu
25617912 rsignal_state|5.004000|5.004000|u
7913 RsPARA|5.003007||Viu
7914 RsRECORD|5.005000||Viu
7915 RsSIMPLE|5.003007||Viu
7916 RsSNARF|5.003007||Viu
25627917 run_body|5.006000||Viu
2563 runops_debug|5.005000|5.005000|u
2564 runops_standard|5.005000|5.005000|u
7918 runops_debug|5.005000||cVu
7919 RUNOPS_DEFAULT|5.005000||Viu
7920 runops_standard|5.005000||cVu
25657921 run_user_filter|5.009003||Viu
25667922 rv2cv_op_cv|5.013006|5.013006|
7923 RV2CVOPCV_FLAG_MASK|5.021004||Viu
25677924 RV2CVOPCV_MARK_EARLY|5.013006|5.013006|
7925 RV2CVOPCV_MAYBE_NAME_GV|5.021004||Viu
25687926 RV2CVOPCV_RETURN_NAME_GV|5.013006|5.013006|
7927 RV2CVOPCV_RETURN_STUB|5.021004||Viu
25697928 rvpv_dup|5.007003|5.007003|u
7929 RX_ANCHORED_SUBSTR|5.010001||Viu
7930 RX_ANCHORED_UTF8|5.010001||Viu
7931 RXapif_ALL|5.009005||Viu
7932 RXapif_CLEAR|5.009005||Viu
7933 RXapif_DELETE|5.009005||Viu
7934 RXapif_EXISTS|5.009005||Viu
7935 RXapif_FETCH|5.009005||Viu
7936 RXapif_FIRSTKEY|5.009005||Viu
7937 RXapif_NEXTKEY|5.009005||Viu
7938 RXapif_ONE|5.009005||Viu
7939 RXapif_REGNAME|5.009005||Viu
7940 RXapif_REGNAMES|5.009005||Viu
7941 RXapif_REGNAMES_COUNT|5.009005||Viu
7942 RXapif_SCALAR|5.009005||Viu
7943 RXapif_STORE|5.009005||Viu
7944 RX_BUFF_IDX_CARET_FULLMATCH|5.017004||Viu
7945 RX_BUFF_IDX_CARET_POSTMATCH|5.017004||Viu
7946 RX_BUFF_IDX_CARET_PREMATCH|5.017004||Viu
7947 RX_BUFF_IDX_FULLMATCH|5.009005||Viu
7948 RX_BUFF_IDX_POSTMATCH|5.009005||Viu
7949 RX_BUFF_IDX_PREMATCH|5.009005||Viu
7950 RX_CHECK_SUBSTR|5.010001||Viu
7951 RX_COMPFLAGS|5.017011||Viu
7952 RX_ENGINE|5.010001||Viu
7953 RX_EXTFLAGS|5.010001||Viu
7954 RXf_BASE_SHIFT|5.013004||Viu
7955 RXf_CHECK_ALL|5.009005||Viu
7956 RXf_COPY_DONE|5.009005||Viu
7957 RXf_EVAL_SEEN|5.009005||Viu
7958 RXf_INTUIT_TAIL|5.009005||Viu
7959 RXf_IS_ANCHORED|5.019009||Viu
7960 RX_FLOAT_SUBSTR|5.010001||Viu
7961 RX_FLOAT_UTF8|5.010001||Viu
7962 RXf_MATCH_UTF8|5.009005||Viu
7963 RXf_NO_INPLACE_SUBST|5.017011||Viu
7964 RXf_NULL|5.010000||Viu
7965 RXf_PMf_CHARSET|5.013009||Viu
7966 RXf_PMf_COMPILETIME|5.009005||Viu
7967 RXf_PMf_EXTENDED|5.009005||Viu
7968 RXf_PMf_EXTENDED_MORE|5.021005||Viu
7969 RXf_PMf_FLAGCOPYMASK|5.017011||Viu
7970 RXf_PMf_FOLD|5.009005||Viu
7971 RXf_PMf_KEEPCOPY|5.009005||Viu
7972 RXf_PMf_MULTILINE|5.009005||Viu
7973 RXf_PMf_NOCAPTURE|5.021008||Viu
7974 RXf_PMf_SINGLELINE|5.009005||Viu
7975 RXf_PMf_SPLIT|5.017011||Viu
7976 RXf_PMf_STD_PMMOD|5.009005||Viu
7977 RXf_PMf_STD_PMMOD_SHIFT|5.010001||Viu
7978 RXf_PMf_STRICT|5.021008||Viu
7979 RXf_SKIPWHITE|5.009005||Viu
7980 RXf_SPLIT|5.009005||Viu
7981 RXf_START_ONLY|5.009005||Viu
7982 RXf_TAINTED|5.009005||Viu
7983 RXf_TAINTED_SEEN|5.009005||Viu
7984 RXf_UNBOUNDED_QUANTIFIER_SEEN|5.019009||Viu
7985 RXf_USE_INTUIT|5.009005||Viu
7986 RXf_USE_INTUIT_ML|5.009005||Viu
7987 RXf_USE_INTUIT_NOML|5.009005||Viu
7988 RXf_WHITE|5.009005||Viu
7989 RX_GOFS|5.010001||Viu
7990 RXi_GET|5.009005||Viu
7991 RXi_GET_DECL|5.009005||Viu
7992 RX_INTFLAGS|5.019009||Viu
7993 RXi_SET|5.009005||Viu
7994 RX_ISTAINTED|5.017006||Viu
7995 RX_LASTCLOSEPAREN|5.010001||Viu
7996 RX_LASTPAREN|5.010001||Viu
7997 RX_MATCH_COPIED|5.006000||Viu
7998 RX_MATCH_COPIED_off|5.006000||Viu
7999 RX_MATCH_COPIED_on|5.006000||Viu
8000 RX_MATCH_COPIED_set|5.006000||Viu
8001 RX_MATCH_COPY_FREE|5.009000||Viu
8002 RX_MATCH_TAINTED|5.005000||Viu
8003 RX_MATCH_TAINTED_off|5.005000||Viu
8004 RX_MATCH_TAINTED_on|5.005000||Viu
8005 RX_MATCH_TAINTED_set|5.005000||Viu
8006 RX_MATCH_UTF8|5.008001||Viu
8007 RX_MATCH_UTF8_off|5.008001||Viu
8008 RX_MATCH_UTF8_on|5.008001||Viu
8009 RX_MATCH_UTF8_set|5.008001||Viu
8010 RX_MINLEN|5.010001||Viu
8011 RX_MINLENRET|5.010001||Viu
8012 RX_NPARENS|5.010001||Viu
8013 RX_OFFS|5.010001||Viu
8014 RXp_COMPFLAGS|5.017011||Viu
8015 RXp_ENGINE|5.027003||Viu
8016 RXp_EXTFLAGS|5.010001||Viu
8017 RXp_GOFS|5.027003||Viu
8018 RXp_HAS_CUTGROUP|5.027003||Viu
8019 RXp_INTFLAGS|5.019009||Viu
8020 RXp_ISTAINTED|5.027003||Viu
8021 RXp_MATCH_COPIED|5.010001||Viu
8022 RXp_MATCH_COPIED_off|5.010001||Viu
8023 RXp_MATCH_COPIED_on|5.010001||Viu
8024 RXp_MATCH_COPY_FREE|5.027003||Viu
8025 RXp_MATCH_TAINTED|5.010001||Viu
8026 RXp_MATCH_TAINTED_off|5.027003||Viu
8027 RXp_MATCH_TAINTED_on|5.017008||Viu
8028 RXp_MATCH_UTF8|5.010001||Viu
8029 RXp_MATCH_UTF8_off|5.027003||Viu
8030 RXp_MATCH_UTF8_on|5.027003||Viu
8031 RXp_MATCH_UTF8_set|5.027003||Viu
8032 RXp_MINLEN|5.027003||Viu
8033 RXp_MINLENRET|5.027003||Viu
8034 RXp_NPARENS|5.027003||Viu
8035 RXp_OFFS|5.027003||Viu
8036 RXp_PAREN_NAMES|5.010001||Viu
8037 RX_PRECOMP|5.010001||Viu
8038 RX_PRECOMP_const|5.010001||Viu
8039 RX_PRELEN|5.010001||Viu
8040 RXp_SAVED_COPY|5.027003||Viu
8041 RXp_SUBBEG|5.027003||Viu
8042 RXp_SUBOFFSET|5.027003||Viu
8043 RXp_ZERO_LEN|5.027003||Viu
8044 RX_REFCNT|5.010001||Viu
25708045 rxres_free|5.004000||Viu
25718046 rxres_restore|5.004000||Viu
25728047 rxres_save|5.004000||Viu
8048 RX_SAVED_COPY|5.011000||Viu
8049 RX_SUBBEG|5.010001||Viu
8050 RX_SUBCOFFSET|5.017004||Viu
8051 RX_SUBLEN|5.010001||Viu
8052 RX_SUBOFFSET|5.017004||Viu
8053 RX_TAINT_on|5.017006||Viu
8054 RX_UTF8|5.010001||Viu
8055 RX_WRAPLEN|5.010001||Viu
8056 RX_WRAPPED|5.010001||Viu
8057 RX_WRAPPED_const|5.011000||Viu
8058 RX_ZERO_LEN|5.019003||Viu
8059 safecalloc|5.003007||Viu
25738060 Safefree|5.003007|5.003007|
2574 safesyscalloc|5.006000|5.006000|nu
2575 safesysfree|5.006000|5.006000|nu
2576 safesysmalloc|5.006000|5.006000|nu
2577 safesysrealloc|5.006000|5.006000|nu
8061 safefree|5.003007||Viu
8062 safemalloc|5.003007||Viu
8063 saferealloc|5.003007||Viu
8064 safesyscalloc|5.006000|5.006000|n
8065 safesysfree|5.006000|5.006000|n
8066 safesysmalloc|5.006000|5.006000|n
8067 safesysrealloc|5.006000|5.006000|n
8068 SAFE_TRIE_NODENUM|5.009002||Viu
25788069 same_dirent|5.003007||Viu
25798070 SANE_ERRSV|5.031003|5.031003|
8071 SANY|5.003007||Viu
8072 SANY_t8_p8|5.033003||Viu
8073 SANY_t8_pb|5.033003||Viu
8074 SANY_tb_p8|5.033003||Viu
8075 SANY_tb_pb|5.033003||Viu
25808076 save_adelete|5.011000|5.011000|u
8077 SAVEADELETE|5.011000||Viu
25818078 save_aelem|5.004005|5.004005|u
25828079 save_aelem_flags|5.011000|5.011000|u
25838080 save_alloc|5.006000|5.006000|u
25848081 save_aptr|5.003007|5.003007|
25858082 save_ary|5.003007|5.003007|
2586 save_bool|5.008001|5.008001|u
2587 save_clearsv|5.003007|5.003007|u
2588 SAVECLEARSV|||i
2589 SAVECOMPPAD|||i
2590 SAVE_DEFSV|5.004005|5.003007|poVu
2591 save_delete|5.003007|5.003007|u
2592 save_destructor|5.006000|5.006000|u
2593 save_destructor_x|5.006000|5.006000|u
2594 SAVE_ERRNO|||i
2595 save_freeop|5.010001|5.010001|u
2596 save_freepv|5.003007|5.003007|u
2597 save_freesv|5.003007|5.003007|u
8083 SAVEBOOL|5.008001|5.008001|
8084 save_bool|5.008001||cVu
8085 save_clearsv|5.003007||cVu
8086 SAVECLEARSV|5.003007||Vi
8087 SAVECOMPILEWARNINGS|5.009004||Viu
8088 SAVECOMPPAD|5.006000||Vi
8089 SAVECOPFILE|5.006000||Viu
8090 SAVECOPFILE_FREE|5.006001||Viu
8091 SAVECOPLINE|5.006000||Viu
8092 SAVECOPSTASH_FREE|5.006001||Viu
8093 SAVE_DEFSV|5.004005|5.003007|p
8094 SAVEDELETE|5.003007|5.003007|
8095 save_delete|5.003007||cVu
8096 save_destructor|5.003007||cVu
8097 SAVEDESTRUCTOR|5.006000|5.006000|
8098 SAVEDESTRUCTOR_X|5.006000|5.006000|
8099 save_destructor_x|5.006000||cVu
8100 SAVE_ERRNO|5.010001||Vi
8101 SAVEFEATUREBITS|5.031006||Viu
8102 SAVEf_KEEPOLDELEM|5.011000||Viu
8103 SAVEFREECOPHH|5.013007||Viu
8104 SAVEFREEOP|5.010001|5.010001|
8105 save_freeop|5.010001||cVu
8106 SAVEFREEPADNAME|5.021007||Viu
8107 SAVEFREEPV|5.003007|5.003007|
8108 save_freepv|5.010001||cVu
8109 SAVEFREESV|5.003007|5.003007|
8110 save_freesv|5.010001||cVu
8111 SAVEf_SETMAGIC|5.011000||Viu
8112 SAVEGENERICPV|5.006001||Viu
25988113 save_generic_pvref|5.006001|5.006001|u
8114 SAVEGENERICSV|5.005003||Viu
25998115 save_generic_svref|5.005003|5.005003|u
26008116 save_gp|5.004000|5.004000|
26018117 save_hash|5.003007|5.003007|
26028118 save_hdelete|5.011000|5.011000|u
2603 save_hek_flags|5.008000||nViu
8119 SAVEHDELETE|5.011000||Viu
8120 save_hek_flags|5.008000||Vniu
26048121 save_helem|5.004005|5.004005|u
26058122 save_helem_flags|5.011000|5.011000|u
8123 SAVEHINTS|5.005000||Viu
26068124 save_hints|5.010001|5.010001|u
26078125 save_hptr|5.003007|5.003007|
2608 save_I16|5.004000|5.004000|u
2609 save_I32|5.003007|5.003007|u
2610 save_I8|5.006000|5.006000|u
2611 save_int|5.003007|5.003007|u
8126 SAVEI16|5.004000|5.004000|
8127 save_I16|5.004000||cVu
8128 SAVEI32|5.003007|5.003007|
8129 save_I32|5.003007||cVu
8130 SAVEI8|5.006000|5.006000|
8131 save_I8|5.006000||cVu
8132 SAVEINT|5.003007|5.003007|
8133 save_int|5.003007||cVu
26128134 save_item|5.003007|5.003007|
2613 save_iv|5.005000|5.005000|u
8135 SAVEIV|5.003007|5.003007|
8136 save_iv|5.004000||cVu
26148137 save_lines|5.005000||Viu
26158138 save_list|5.003007|5.003007|d
2616 save_long|5.003007|5.003007|du
8139 SAVELONG|5.003007|5.003007|
8140 save_long|5.003007||dcVu
26178141 save_magic_flags|5.019002||Viu
2618 save_mortalizesv|5.007001|5.007001|u
8142 SAVE_MASK|5.013001||Viu
8143 SAVEMORTALIZESV|5.007001|5.007001|
8144 save_mortalizesv|5.010001||cVu
26198145 save_nogv|5.003007|5.003007|du
8146 SAVEOP|5.005000||Viu
26208147 save_op|5.010001|5.010001|u
26218148 save_padsv_and_mortalize|5.010001|5.010001|u
8149 SAVEPADSVANDMORTALIZE|5.010001||Viu
26228150 SAVEPADSV|||i
2623 save_pptr|5.003007|5.003007|u
8151 SAVEPARSER|5.009005||Viu
8152 SAVEPPTR|5.003007|5.003007|
8153 save_pptr|5.003007||cVu
26248154 save_pushi32ptr|5.010001|5.010001|u
26258155 save_pushptr|5.010001|5.010001|u
26268156 save_pushptri32ptr|5.010001||Viu
26288158 savepv|5.003007|5.003007|
26298159 savepvn|5.003007|5.003007|
26308160 savepvs|5.009003|5.009003|
2631 save_re_context|5.006000|5.006000|u
8161 save_re_context|5.006000||cVu
26328162 save_scalar|5.003007|5.003007|
26338163 save_scalar_at|5.005000||Viu
26348164 save_set_svflags|5.009000|5.009000|u
8165 SAVESETSVFLAGS|5.009000||Viu
26358166 savesharedpv|5.007003|5.007003|
8167 SAVESHAREDPV|5.007003||Viu
26368168 savesharedpvn|5.009005|5.009005|
26378169 save_shared_pvref|5.007003|5.007003|u
26388170 savesharedpvs|5.013006|5.013006|
26398171 savesharedsvpv|5.013006|5.013006|
2640 save_sptr|5.003007|5.003007|u
8172 SAVESPTR|5.003007|5.003007|
8173 save_sptr|5.003007||cVu
26418174 savestack_grow|5.003007|5.003007|u
26428175 savestack_grow_cnt|5.008001|5.008001|u
8176 SAVESTACK_POS|5.004000|5.004000|
26438177 save_strlen|5.019004||cViu
26448178 savesvpv|5.009002|5.009002|
26458179 save_svref|5.003007|5.003007|
8180 SAVESWITCHSTACK|5.009002||Viu
8181 SAVEt_ADELETE|5.011000||Viu
8182 SAVEt_AELEM|5.004005||Viu
8183 SAVEt_ALLOC|5.006000||Viu
8184 SAVEt_APTR|5.003007||Viu
8185 SAVEt_AV|5.003007||Viu
8186 SAVEt_BOOL|5.008001||Viu
8187 SAVEt_CLEARPADRANGE|5.017006||Viu
8188 SAVEt_CLEARSV|5.003007||Viu
8189 SAVEt_COMPILE_WARNINGS|5.009004||Viu
8190 SAVEt_COMPPAD|5.006000||Viu
8191 SAVEt_DELETE|5.003007||Viu
8192 SAVEt_DESTRUCTOR|5.003007||Viu
8193 SAVEt_DESTRUCTOR_X|5.006000||Viu
8194 SAVEt_FREECOPHH|5.013007||Viu
8195 SAVEt_FREEOP|5.003007||Viu
8196 SAVEt_FREEPADNAME|5.021007||Viu
8197 SAVEt_FREEPV|5.003007||Viu
8198 SAVEt_FREESV|5.003007||Viu
8199 SAVEt_GENERIC_PVREF|5.006001||Viu
8200 SAVEt_GENERIC_SVREF|5.005003||Viu
8201 SAVEt_GP|5.003007||Viu
8202 SAVEt_GVSLOT|5.017007||Viu
8203 SAVEt_GVSV|5.013005||Viu
8204 SAVEt_HELEM|5.004005||Viu
8205 SAVEt_HINTS|5.005000||Viu
8206 SAVEt_HINTS_HH|5.033001||Viu
8207 SAVEt_HPTR|5.003007||Viu
8208 SAVEt_HV|5.003007||Viu
8209 SAVEt_I16|5.004000||Viu
8210 SAVEt_I32|5.003007||Viu
8211 SAVEt_I32_SMALL|5.013001||Viu
8212 SAVEt_I8|5.006000||Viu
8213 SAVE_TIGHT_SHIFT|5.013001||Viu
8214 SAVEt_INT|5.003007||Viu
8215 SAVEt_INT_SMALL|5.013001||Viu
8216 SAVEt_ITEM|5.003007||Viu
8217 SAVEt_IV|5.003007||Viu
8218 SAVEt_LONG|5.003007||Viu
8219 SAVEt_MORTALIZESV|5.007001||Viu
26468220 SAVETMPS|5.003007|5.003007|
26478221 savetmps|5.023008|5.023008|xu
2648 save_to_buffer|5.027004||nViu
8222 SAVEt_NSTAB|5.003007||Viu
8223 save_to_buffer|5.027004||Vniu
8224 SAVEt_OP|5.005000||Viu
8225 SAVEt_PADSV_AND_MORTALIZE|5.010001||Viu
8226 SAVEt_PARSER|5.009005||Viu
8227 SAVEt_PPTR|5.003007||Viu
8228 SAVEt_READONLY_OFF|5.019002||Viu
8229 SAVEt_REGCONTEXT|5.003007||Viu
8230 SAVEt_SAVESWITCHSTACK|5.009002||Viu
8231 SAVEt_SET_SVFLAGS|5.009000||Viu
8232 SAVEt_SHARED_PVREF|5.007003||Viu
8233 SAVEt_SPTR|5.003007||Viu
8234 SAVEt_STACK_POS|5.004000||Viu
8235 SAVEt_STRLEN|5.019004||Viu
8236 SAVEt_STRLEN_SMALL|5.033005||Viu
8237 SAVEt_SV|5.003007||Viu
8238 SAVEt_SVREF|5.003007||Viu
8239 SAVEt_TMPSFLOOR|5.023008||Viu
8240 SAVEt_VPTR|5.006000||Viu
26498241 save_vptr|5.006000|5.006000|u
8242 SAVEVPTR|5.006000||Viu
8243 SAWAMPERSAND_LEFT|5.017004||Viu
8244 SAWAMPERSAND_MIDDLE|5.017004||Viu
8245 SAWAMPERSAND_RIGHT|5.017004||Viu
26508246 sawparens|5.003007||Viu
8247 sb_dstr|5.003007||Viu
8248 sb_iters|5.003007||Viu
8249 sb_m|5.003007||Viu
8250 sb_maxiters|5.003007||Viu
8251 SBOL|5.003007||Viu
8252 SBOL_t8_p8|5.033003||Viu
8253 SBOL_t8_pb|5.033003||Viu
8254 SBOL_tb_p8|5.033003||Viu
8255 SBOL_tb_pb|5.033003||Viu
8256 sb_orig|5.003007||Viu
8257 SBOX32_CHURN_ROUNDS|5.027001||Viu
8258 SBOX32_MAX_LEN|5.027001||Viu
8259 SBOX32_MIX3|5.027001||Viu
8260 SBOX32_MIX4|5.027001||Viu
8261 SBOX32_SCRAMBLE32|5.027001||Viu
8262 SBOX32_SKIP_MASK|5.027001||Viu
8263 SBOX32_STATE_BITS|5.027001||Viu
8264 SBOX32_STATE_BYTES|5.027001||Viu
8265 SBOX32_STATE_WORDS|5.027001||Viu
8266 SBOX32_STATIC_INLINE|5.027001||Viu
8267 SBOX32_WARN2|5.027001||Viu
8268 SBOX32_WARN3|5.027001||Viu
8269 SBOX32_WARN4|5.027001||Viu
8270 SBOX32_WARN5|5.027001||Viu
8271 SBOX32_WARN6|5.027001||Viu
8272 sb_rflags|5.006000||Viu
8273 sb_rx|5.003007||Viu
8274 sb_rxres|5.004000||Viu
8275 sb_rxtainted|5.004000||Viu
8276 sb_s|5.003007||Viu
8277 sb_strend|5.003007||Viu
8278 sb_targ|5.003007||Viu
26518279 scalar|5.003007||Viu
26528280 scalarboolean|5.005000||Viu
26538281 scalarkids|5.003007||Viu
2654 scalar_mod_type|5.006000||nViu
2655 scalarseq|5.003007||Viu
8282 scalar_mod_type|5.006000||Vniu
26568283 scalarvoid|5.003007||Viu
26578284 scan_bin|5.006000|5.006000|
26588285 scan_commit|5.005000||Viu
26598286 scan_const|5.003007||Viu
8287 SCAN_DEF|5.003007||Viu
26608288 scan_formline|5.003007||Viu
26618289 scan_heredoc|5.003007||Viu
26628290 scan_hex|5.006000|5.003007|
26638291 scan_ident|5.003007||Viu
26648292 scan_inputsymbol|5.003007||Viu
2665 scan_num|5.007001|5.007001|u
8293 scan_num|5.003007||cVu
26668294 scan_oct|5.006000|5.003007|
26678295 scan_pat|5.003007||Viu
8296 SCAN_REPL|5.003007||Viu
26688297 scan_str|5.003007||xcViu
26698298 scan_subst|5.003007||Viu
8299 SCAN_TR|5.003007||Viu
26708300 scan_trans|5.003007||Viu
26718301 scan_version|5.009001|5.009001|
8302 SCAN_VERSION|5.019008||Viu
26728303 scan_vstring|5.009005|5.009005|u
26738304 scan_word|5.003007||xcViu
8305 SCHED_YIELD|5.006000|5.006000|Vn
8306 SCOPE_SAVES_SIGNAL_MASK|5.007001||Viu
26748307 search_const|5.010001||Viu
26758308 seed|5.008001|5.008001|u
8309 seedDrand01|5.006000|5.006000|
8310 SEEK_CUR|5.003007||Viu
8311 seekdir|5.005000||Viu
8312 SEEK_END|5.003007||Viu
8313 SEEK_SET|5.003007||Viu
8314 select|5.005000||Viu
8315 Select_fd_set_t|5.003007|5.003007|Vn
8316 SELECT_MIN_BITS|5.005003|5.005003|Vn
8317 Semctl|5.004005||Viu
8318 semun|5.006000||Viu
8319 send|5.005000||Viu
8320 sendto|5.005000||Viu
8321 SEOL|5.003007||Viu
8322 SEOL_t8_p8|5.033003||Viu
8323 SEOL_t8_pb|5.033003||Viu
8324 SEOL_tb_p8|5.033003||Viu
8325 SEOL_tb_pb|5.033003||Viu
26768326 sequence_num|5.009003||Viu
26778327 set_ANYOF_arg|5.019005||Viu
8328 set_ANYOF_SYNTHETIC|5.019009||Viu
8329 setbuf|5.003007||Viu
26788330 set_caret_X|5.019006||Viu
26798331 set_context|5.006000|5.006000|nu
26808332 setdefout|5.003007|5.003007|
2681 SETERRNO|||i
2682 setfd_cloexec|5.027008||nViu
8333 SETERRNO|5.003007||Vi
8334 setfd_cloexec|5.027008||Vniu
26838335 setfd_cloexec_for_nonsysfd|5.027008||Viu
26848336 setfd_cloexec_or_inhexec_by_sysfdness|5.027008||Viu
2685 setfd_inhexec|5.027008||nViu
8337 setfd_inhexec|5.027008||Vniu
26868338 setfd_inhexec_for_sysfd|5.027008||Viu
2687 setlocale_debug_string|5.027002||nViu
8339 setgid|5.005000||Viu
8340 setgrent|5.009000||Viu
8341 SETGRENT_R_HAS_FPTR|5.008000||Viu
8342 SETGRENT_R_PROTO|5.008000|5.008000|Vn
8343 sethostent|5.005000||Viu
8344 SETHOSTENT_R_PROTO|5.008000|5.008000|Vn
8345 SETi|5.003007||Viu
8346 setjmp|5.005000||Viu
8347 setlinebuf|5.005000||Viu
8348 setlocale|5.009000||Viu
8349 setlocale_debug_string|5.027002||Vniu
8350 SETLOCALE_LOCK|5.033005||Viu
8351 SETLOCALE_R_PROTO|5.008000|5.008000|Vn
8352 SETLOCALE_UNLOCK|5.033005||Viu
8353 SET_MARK_OFFSET|5.006000||Viu
8354 setmode|5.005000||Viu
8355 SETn|5.003007||Viu
8356 setnetent|5.005000||Viu
8357 SETNETENT_R_PROTO|5.008000|5.008000|Vn
26888358 set_numeric_radix|5.006000||Viu
8359 SET_NUMERIC_STANDARD|5.004000||Viu
26898360 set_numeric_standard|5.006000||cViu
8361 SET_NUMERIC_UNDERLYING|5.021010||Viu
26908362 set_numeric_underlying|5.027006||cViu
2691 set_padlist|5.021006||ncViu
8363 SETp|5.003007||Viu
8364 set_padlist|5.021006||cVniu
8365 setprotoent|5.005000||Viu
8366 SETPROTOENT_R_PROTO|5.008000|5.008000|Vn
8367 setpwent|5.009000||Viu
8368 SETPWENT_R_HAS_FPTR|5.008000||Viu
8369 SETPWENT_R_PROTO|5.008000|5.008000|Vn
26928370 set_regex_pv|5.029004||Viu
8371 setregid|5.003007||Viu
8372 setreuid|5.003007||Viu
8373 SETs|5.003007||Viu
8374 setservent|5.005000||Viu
8375 SETSERVENT_R_PROTO|5.008000|5.008000|Vn
8376 setsockopt|5.005000||Viu
8377 setSTR_LEN|5.031005||Viu
8378 SET_SVANY_FOR_BODYLESS_IV|5.023008||Viu
8379 SET_SVANY_FOR_BODYLESS_NV|5.023008||Viu
8380 SETTARG|5.003007||Viu
8381 SET_THR|5.005000||Viu
8382 SET_THREAD_SELF|5.005003||Viu
8383 SETu|5.004000||Viu
8384 setuid|5.005000||Viu
26938385 _setup_canned_invlist|5.019008||cViu
8386 setvbuf|5.003007||Viu
26948387 share_hek|5.004000|5.004000|u
26958388 share_hek_flags|5.008000||Viu
2696 SHORTSIZE|5.004000|5.004000|
2697 should_warn_nl|5.021001||nViu
8389 share_hek_hek|5.009003||Viu
8390 sharepvn|5.005000||Viu
8391 SHARP_S_SKIP|5.007003||Viu
8392 Shmat_t|5.003007|5.003007|Vn
8393 SHORTSIZE|5.004000|5.004000|Vn
8394 should_warn_nl|5.021001||Vniu
8395 should_we_output_Debug_r|5.031011||Viu
8396 SH_PATH|5.003007|5.003007|Vn
8397 shutdown|5.005000||Viu
26988398 si_dup|5.007003|5.007003|u
2699 sighandler1|||nViu
2700 sighandler3|||nViu
2701 sighandler|5.003007||nViu
8399 S_IEXEC|5.006000||Viu
8400 S_IFIFO|5.011000||Viu
8401 S_IFMT|5.003007||Viu
8402 SIGABRT|5.003007||Viu
8403 sighandler1|5.031007||Vniu
8404 sighandler3|5.031007||Vniu
8405 sighandler|5.003007||Vniu
8406 SIGILL|5.003007||Viu
8407 Sigjmp_buf|5.003007|5.003007|Vn
8408 Siglongjmp|5.003007|5.003007|
8409 signal|5.005000||Viu
8410 Signal_t|5.003007|5.003007|Vn
8411 SIG_NAME|5.003007|5.003007|Vn
8412 SIG_NUM|5.003007|5.003007|Vn
8413 Sigsetjmp|5.003007|5.003007|
8414 SIG_SIZE|5.007001|5.007001|Vn
27028415 simplify_sort|5.006000||Viu
2703 SITELIB|5.003007|5.003007|
8416 SINGLE_PAT_MOD|5.009005||Viu
8417 SIPHASH_SEED_STATE|5.027001||Viu
8418 SIPROUND|5.017006||Viu
8419 S_IREAD|5.006000||Viu
8420 S_IRGRP|5.003007||Viu
8421 S_IROTH|5.003007||Viu
8422 S_IRUSR|5.003007||Viu
8423 S_IRWXG|5.006000||Viu
8424 S_IRWXO|5.006000||Viu
8425 S_IRWXU|5.006000||Viu
8426 S_ISBLK|5.003007||Viu
8427 S_ISCHR|5.003007||Viu
8428 S_ISDIR|5.003007||Viu
8429 S_ISFIFO|5.003007||Viu
8430 S_ISGID|5.003007||Viu
8431 S_ISLNK|5.003007||Viu
8432 S_ISREG|5.003007||Viu
8433 S_ISSOCK|5.003007||Viu
8434 S_ISUID|5.003007||Viu
8435 SITEARCH|5.003007|5.003007|Vn
8436 SITEARCH_EXP|5.003007|5.003007|Vn
8437 SITELIB|5.003007|5.003007|Vn
8438 SITELIB_EXP|5.003007|5.003007|Vn
8439 SITELIB_STEM|5.006000|5.006000|Vn
8440 S_IWGRP|5.003007||Viu
8441 S_IWOTH|5.003007||Viu
8442 S_IWRITE|5.006000||Viu
8443 S_IWUSR|5.003007||Viu
8444 S_IXGRP|5.003007||Viu
8445 S_IXOTH|5.003007||Viu
8446 S_IXUSR|5.003007||Viu
8447 SIZE_ALIGN|5.005000||Viu
8448 Size_t|5.003007|5.003007|Vn
8449 Size_t_MAX|5.021003||Viu
8450 Size_t_size|5.006000|5.006000|Vn
8451 SKIP|5.009005||Viu
8452 SKIP_next|5.009005||Viu
8453 SKIP_next_fail|5.009005||Viu
8454 SKIP_next_fail_t8_p8|5.033003||Viu
8455 SKIP_next_fail_t8_pb|5.033003||Viu
8456 SKIP_next_fail_tb_p8|5.033003||Viu
8457 SKIP_next_fail_tb_pb|5.033003||Viu
8458 SKIP_next_t8_p8|5.033003||Viu
8459 SKIP_next_t8_pb|5.033003||Viu
8460 SKIP_next_tb_p8|5.033003||Viu
8461 SKIP_next_tb_pb|5.033003||Viu
27048462 skipspace_flags|5.019002||xcViu
8463 SKIP_t8_p8|5.033003||Viu
8464 SKIP_t8_pb|5.033003||Viu
8465 SKIP_tb_p8|5.033003||Viu
8466 SKIP_tb_pb|5.033003||Viu
27058467 skip_to_be_ignored_text|5.023004||Viu
27068468 Slab_Alloc|5.006000||cViu
27078469 Slab_Free|5.007003||cViu
27088470 Slab_to_ro|5.017002||Viu
27098471 Slab_to_rw|5.009005||Viu
8472 sleep|5.005000||Viu
8473 SLOPPYDIVIDE|5.003007||Viu
8474 socket|5.005000||Viu
8475 SOCKET_OPEN_MODE|5.008002||Viu
8476 socketpair|5.005000||Viu
8477 Sock_size_t|5.006000|5.006000|Vn
27108478 softref2xv|||iu
27118479 sortcv|5.009003||Viu
27128480 sortcv_stacked|5.009003||Viu
27138481 sortcv_xsub|5.009003||Viu
27148482 sortsv|5.007003|5.007003|
27158483 sortsv_flags|5.009003|5.009003|
8484 sortsv_flags_impl|5.031011||Viu
27168485 SP|5.003007|5.003007|
27178486 space_join_names_mortal|5.009004||Viu
27188487 SPAGAIN|5.003007|5.003007|
8488 S_PAT_MODS|5.009005||Viu
8489 specialWARN|5.006000||Viu
8490 SRAND48_R_PROTO|5.008000|5.008000|Vn
8491 SRANDOM_R_PROTO|5.008000|5.008000|Vn
8492 SRCLOSE|5.027008||Viu
8493 SRCLOSE_t8_p8|5.033003||Viu
8494 SRCLOSE_t8_pb|5.033003||Viu
8495 SRCLOSE_tb_p8|5.033003||Viu
8496 SRCLOSE_tb_pb|5.033003||Viu
8497 SROPEN|5.027008||Viu
8498 SROPEN_t8_p8|5.033003||Viu
8499 SROPEN_t8_pb|5.033003||Viu
8500 SROPEN_tb_p8|5.033003||Viu
8501 SROPEN_tb_pb|5.033003||Viu
8502 SS_ACCVIO|5.008001||Viu
8503 SS_ADD_BOOL|5.017007||Viu
8504 SS_ADD_DPTR|5.017007||Viu
8505 SS_ADD_DXPTR|5.017007||Viu
8506 SS_ADD_END|5.017007||Viu
8507 SS_ADD_INT|5.017007||Viu
8508 SS_ADD_IV|5.017007||Viu
8509 SS_ADD_LONG|5.017007||Viu
8510 SS_ADD_PTR|5.017007||Viu
8511 SS_ADD_UV|5.017007||Viu
8512 SS_BUFFEROVF|5.021009||Viu
27198513 ssc_add_range|5.019005||Viu
27208514 ssc_and|5.019005||Viu
27218515 ssc_anything|5.019005||Viu
2722 ssc_clear_locale|5.019005||nViu
8516 ssc_clear_locale|5.019005||Vniu
27238517 ssc_cp_and|5.019005||Viu
27248518 ssc_finalize|5.019005||Viu
8519 SSCHECK|5.003007||Viu
27258520 ssc_init|5.019005||Viu
27268521 ssc_intersection|5.019005||Viu
2727 ssc_is_anything|5.019005||nViu
2728 ssc_is_cp_posixl_init|5.019005||nViu
8522 ssc_is_anything|5.019005||Vniu
8523 ssc_is_cp_posixl_init|5.019005||Vniu
8524 SSC_MATCHES_EMPTY_STRING|5.021004||Viu
27298525 ssc_or|5.019005||Viu
27308526 ssc_union|5.019005||Viu
8527 SS_DEVOFFLINE|5.008001||Viu
27318528 ss_dup|5.007003|5.007003|u
8529 SSGROW|5.008001||Viu
8530 SS_IVCHAN|5.008001||Viu
8531 SSize_t|5.003007|5.003007|Vn
8532 SSize_t_MAX|5.019004||Viu
8533 SS_MAXPUSH|5.017007||Viu
8534 SSNEW|5.006000||Viu
8535 SSNEWa|5.006000||Viu
8536 SSNEWat|5.007001||Viu
8537 SSNEWt|5.007001||Viu
8538 SS_NOPRIV|5.021001||Viu
8539 SS_NORMAL|5.008001||Viu
8540 SSPOPBOOL|5.008001||Viu
8541 SSPOPDPTR|5.003007||Viu
8542 SSPOPDXPTR|5.006000||Viu
8543 SSPOPINT|5.003007||Viu
8544 SSPOPIV|5.003007||Viu
8545 SSPOPLONG|5.003007||Viu
8546 SSPOPPTR|5.003007||Viu
8547 SSPOPUV|5.013001||Viu
8548 SSPTR|5.006000||Viu
8549 SSPTRt|5.007001||Viu
8550 SSPUSHBOOL|5.008001||Viu
8551 SSPUSHDPTR|5.003007||Viu
8552 SSPUSHDXPTR|5.006000||Viu
8553 SSPUSHINT|5.003007||Viu
8554 SSPUSHIV|5.003007||Viu
8555 SSPUSHLONG|5.003007||Viu
8556 SSPUSHPTR|5.003007||Viu
8557 SSPUSHUV|5.013001||Viu
27328558 ST|5.003007|5.003007|
2733 stack_grow|5.003007|5.003007|u
2734 START_EXTERN_C|5.005000|5.003007|poVu
8559 stack_grow|5.003007||cVu
8560 STANDARD_C|5.003007||Viu
8561 STAR|5.003007||Viu
8562 STAR_t8_p8|5.033003||Viu
8563 STAR_t8_pb|5.033003||Viu
8564 STAR_tb_p8|5.033003||Viu
8565 STAR_tb_pb|5.033003||Viu
8566 START_EXTERN_C|5.005000|5.003007|pV
27358567 start_glob|||xi
27368568 START_MY_CXT|5.010000|5.010000|p
2737 STARTPERL|5.003007|5.003007|
8569 STARTPERL|5.003007|5.003007|Vn
27388570 start_subparse|5.004000|5.003007|pu
2739 STDCHAR|5.003007|5.003007|
8571 StashHANDLER|5.007001||Viu
8572 Stat|5.003007||Viu
8573 stat|5.005000||Viu
8574 STATIC|5.005000||Viu
8575 STATIC_ASSERT_1|5.021007||Viu
8576 STATIC_ASSERT_2|5.021007||Viu
8577 STATIC_ASSERT_DECL|5.027001||Viu
8578 STATIC_ASSERT_STMT|5.021007||Viu
8579 Stat_t|5.004005||Viu
8580 STATUS_ALL_FAILURE|5.004000||Viu
8581 STATUS_ALL_SUCCESS|5.004000||Viu
8582 STATUS_CURRENT|5.004000||Viu
8583 STATUS_EXIT|5.009003||Viu
8584 STATUS_EXIT_SET|5.009003||Viu
8585 STATUS_NATIVE|5.004000||Viu
8586 STATUS_NATIVE_CHILD_SET|5.009003||Viu
8587 STATUS_UNIX|5.009003||Viu
8588 STATUS_UNIX_EXIT_SET|5.009003||Viu
8589 STATUS_UNIX_SET|5.009003||Viu
8590 STDCHAR|5.003007|5.003007|Vn
8591 stderr|5.003007||Viu
8592 stdin|5.003007||Viu
8593 STDIO_PTR_LVAL_SETS_CNT|5.007001|5.007001|Vn
8594 STDIO_PTR_LVALUE|5.006000|5.006000|Vn
8595 STDIO_STREAM_ARRAY|5.006000|5.006000|Vn
27408596 stdize_locale|5.007001||Viu
8597 stdout|5.003007||Viu
8598 stdoutf|5.005000||Viu
8599 STD_PAT_MODS|5.009005||Viu
8600 STD_PMMOD_FLAGS_CLEAR|5.013006||Viu
8601 ST_INO_SIGN|5.015002|5.015002|Vn
8602 ST_INO_SIZE|5.015002|5.015002|Vn
27418603 STMT_END|5.003007|5.003007|pV
27428604 STMT_START|5.003007|5.003007|pV
8605 STOREFEATUREBITSHH|5.031006||Viu
27438606 STORE_LC_NUMERIC_FORCE_TO_UNDERLYING|5.021010|5.021010|
8607 STORE_LC_NUMERIC_SET_STANDARD|5.027009||pVu
27448608 STORE_LC_NUMERIC_SET_TO_NEEDED|5.021010|5.021010|
27458609 STORE_LC_NUMERIC_SET_TO_NEEDED_IN|5.031003|5.031003|
8610 STORE_NUMERIC_SET_STANDARD|||piu
8611 strBEGINs|5.027006||Viu
27468612 strEQ|5.003007|5.003007|
8613 Strerror|5.003007||Viu
8614 strerror|5.009000||Viu
8615 STRERROR_R_PROTO|5.008000|5.008000|Vn
27478616 strGE|5.003007|5.003007|
27488617 strGT|5.003007|5.003007|
8618 STRING|5.006000||Viu
8619 STRINGIFY|5.003007|5.003007|Vn
8620 STRINGl|5.031005||Viu
8621 STRINGs|5.031005||Viu
27498622 strip_return|5.009003||Viu
27508623 strLE|5.003007|5.003007|
8624 STR_LEN|5.006000||Viu
8625 STRLEN|5.027001||Viu
8626 STR_LENl|5.031005||Viu
8627 STR_LENs|5.031005||Viu
27518628 strLT|5.003007|5.003007|
27528629 strNE|5.003007|5.003007|
27538630 strnEQ|5.003007|5.003007|
27548631 strnNE|5.003007|5.003007|
8632 STR_SZ|5.006000||Viu
27558633 Strtod|5.029010|5.029010|n
27568634 Strtol|5.006000|5.006000|n
8635 strtoll|5.006000||Viu
27578636 Strtoul|5.006000|5.006000|n
2758 str_to_version|5.006000|5.006000|u
8637 strtoull|5.006000||Viu
8638 str_to_version|5.006000||cVu
27598639 StructCopy|5.003007|5.003007|V
8640 STRUCT_OFFSET|5.004000||Viu
8641 STRUCT_SV|5.007001||Viu
27608642 STR_WITH_LEN|5.009003|5.003007|pV
27618643 study_chunk|5.005000||Viu
27628644 sub_crush_depth|5.004000||Viu
27638645 sublex_done|5.005000||Viu
27648646 sublex_push|5.005000||Viu
27658647 sublex_start|5.005000||Viu
2766 sv_2bool|5.003007|5.003007|
2767 sv_2bool_flags|5.013006|5.013006|
8648 SUBST_TAINT_BOOLRET|5.013010||Viu
8649 SUBST_TAINT_PAT|5.013010||Viu
8650 SUBST_TAINT_REPL|5.013010||Viu
8651 SUBST_TAINT_RETAINT|5.013010||Viu
8652 SUBST_TAINT_STR|5.013010||Viu
8653 SUBVERSION|5.003007||Viu
8654 SUCCEED|5.003007||Viu
8655 SUCCEED_t8_p8|5.033003||Viu
8656 SUCCEED_t8_pb|5.033003||Viu
8657 SUCCEED_tb_p8|5.033003||Viu
8658 SUCCEED_tb_pb|5.033003||Viu
8659 SUSPEND|5.005000||Viu
8660 SUSPEND_t8_p8|5.033003||Viu
8661 SUSPEND_t8_pb|5.033003||Viu
8662 SUSPEND_tb_p8|5.033003||Viu
8663 SUSPEND_tb_pb|5.033003||Viu
8664 sv_2bool|5.013006||cV
8665 sv_2bool_flags|5.013006||cV
8666 sv_2bool_nomg|5.017002||Viu
27688667 sv_2cv|5.003007|5.003007|
27698668 sv_2io|5.003007|5.003007|
27708669 sv_2iuv_common|5.009004||Viu
27718670 sv_2iuv_non_preserve|5.007001||Viu
2772 sv_2iv|5.003007|5.003007|u
8671 sv_2iv|5.009001||cVu
27738672 sv_2iv_flags|5.009001|5.009001|
27748673 sv_2mortal|5.003007|5.003007|
27758674 sv_2num|5.010000||xVi
8675 sv_2nv|5.013001||Viu
27768676 sv_2nv_flags|5.013001|5.013001|
2777 sv_2pv|5.003007|5.003007|u
8677 sv_2pv|5.005000||cVu
27788678 sv_2pvbyte|5.006000|5.003007|p
27798679 sv_2pvbyte_flags|5.031004|5.031004|u
2780 sv_2pvbyte_nolen|5.006000|5.003007|p
2781 sv_2pv_flags|5.007002|5.003007|p
2782 sv_2pv_nolen|5.006000|5.003007|p
8680 sv_2pvbyte_nolen|5.009003||pcV
8681 sv_2pv_flags|5.007002||pcV
8682 sv_2pv_nolen|5.009003||pcV
8683 sv_2pv_nomg|5.007002||Viu
27838684 sv_2pvutf8|5.006000|5.006000|
27848685 sv_2pvutf8_flags|5.031004|5.031004|u
2785 sv_2pvutf8_nolen|5.006000|5.006000|
2786 sv_2uv|5.004000|5.003007|pu
8686 sv_2pvutf8_nolen|5.009003||cV
8687 sv_2uv|5.009001||pcVu
27878688 sv_2uv_flags|5.009001|5.009001|
27888689 sv_add_arena|5.003007||Vi
27898690 sv_add_backref|||iu
8691 SvAMAGIC|5.003007||Viu
27908692 SvAMAGIC_off|5.031004|5.031004|nu
27918693 SvAMAGIC_on|5.031004|5.031004|nu
8694 SvANY|5.003007||Viu
27928695 sv_backoff|5.003007|5.003007|n
27938696 sv_bless|5.003007|5.003007|
27948697 sv_buf_to_ro|5.019008||Viu
27958698 sv_buf_to_rw|5.019008||Viu
8699 SvCANCOW|5.017007||Viu
8700 SvCANEXISTDELETE|5.011000||Viu
27968701 SV_CATBYTES|5.021005|5.021005|
27978702 sv_cat_decode|5.008001|5.008001|
8703 sv_cathek|5.021004||Viu
27988704 sv_catpv|5.003007|5.003007|
27998705 sv_catpvf|5.006000|5.004000|v
28008706 sv_catpv_flags|5.013006|5.013006|
28018707 sv_catpvf_mg|5.006000|5.004000|pv
2802 sv_catpvf_mg_nocontext|5.006000||pvnVu
2803 sv_catpvf_nocontext|5.006000||vnVu
8708 sv_catpvf_mg_nocontext|5.006000||pvVn
8709 sv_catpvf_nocontext|5.006000||vVn
28048710 sv_catpv_mg|5.004005|5.003007|p
28058711 sv_catpvn|5.003007|5.003007|
28068712 sv_catpvn_flags|5.007002|5.007002|
28078713 sv_catpvn_mg|5.004005|5.003007|p
28088714 sv_catpvn_nomg|5.007002|5.003007|p
8715 sv_catpvn_nomg_maybeutf8|5.017005||Viu
8716 sv_catpvn_nomg_utf8_upgrade|5.017002||Viu
28098717 sv_catpv_nomg|5.013006|5.013006|
28108718 sv_catpvs|5.009003|5.003007|p
28118719 sv_catpvs_flags|5.013006|5.013006|
28168724 sv_catsv_mg|5.004005|5.003007|p
28178725 sv_catsv_nomg|5.007002|5.003007|p
28188726 SV_CATUTF8|5.021005|5.021005|
8727 sv_catxmlpvs|5.013006||Viu
8728 SV_CHECK_THINKFIRST|5.008001||Viu
8729 SV_CHECK_THINKFIRST_COW_DROP|5.009000||Viu
28198730 sv_chop|5.003007|5.003007|
28208731 sv_clean_all|5.003007||Vi
28218732 sv_clean_objs|5.003007||Vi
28248735 sv_cmp_flags|5.013006|5.013006|
28258736 sv_cmp_locale|5.004000|5.004000|
28268737 sv_cmp_locale_flags|5.013006|5.013006|
2827 sv_collxfrm|||
8738 sv_collxfrm|5.013006||V
28288739 sv_collxfrm_flags|5.013006|5.013006|
2829 SV_CONST_RETURN|5.009003|5.003007|poVu
8740 SvCOMPILED|5.003007||Viu
8741 SvCOMPILED_off|5.003007||Viu
8742 SvCOMPILED_on|5.003007||Viu
8743 SV_CONST|5.019002||Viu
8744 SV_CONST_BINMODE|5.019002||Viu
8745 SV_CONST_CLEAR|5.019002||Viu
8746 SV_CONST_CLOSE|5.019002||Viu
8747 SV_CONST_DELETE|5.019002||Viu
8748 SV_CONST_DESTROY|5.019002||Viu
8749 SV_CONST_EOF|5.019002||Viu
8750 SV_CONST_EXISTS|5.019002||Viu
8751 SV_CONST_EXTEND|5.019002||Viu
8752 SV_CONST_FETCH|5.019002||Viu
8753 SV_CONST_FETCHSIZE|5.019002||Viu
8754 SV_CONST_FILENO|5.019002||Viu
8755 SV_CONST_FIRSTKEY|5.019002||Viu
8756 SV_CONST_GETC|5.019002||Viu
8757 SV_CONST_NEXTKEY|5.019002||Viu
8758 SV_CONST_OPEN|5.019002||Viu
8759 SV_CONST_POP|5.019002||Viu
8760 SV_CONST_PRINT|5.019002||Viu
8761 SV_CONST_PRINTF|5.019002||Viu
8762 SV_CONST_PUSH|5.019002||Viu
8763 SV_CONST_READ|5.019002||Viu
8764 SV_CONST_READLINE|5.019002||Viu
8765 SV_CONST_RETURN|5.009003|5.003007|poVnu
8766 SV_CONST_SCALAR|5.019002||Viu
8767 SV_CONSTS_COUNT|5.019002||Viu
8768 SV_CONST_SEEK|5.019002||Viu
8769 SV_CONST_SHIFT|5.019002||Viu
8770 SV_CONST_SPLICE|5.019002||Viu
8771 SV_CONST_STORE|5.019002||Viu
8772 SV_CONST_STORESIZE|5.019002||Viu
8773 SV_CONST_TELL|5.019002||Viu
8774 SV_CONST_TIEARRAY|5.019002||Viu
8775 SV_CONST_TIEHANDLE|5.019002||Viu
8776 SV_CONST_TIEHASH|5.019002||Viu
8777 SV_CONST_TIESCALAR|5.019002||Viu
8778 SV_CONST_UNSHIFT|5.019002||Viu
8779 SV_CONST_UNTIE|5.019002||Viu
8780 SV_CONST_WRITE|5.019002||Viu
28308781 sv_copypv|5.007003|5.007003|
28318782 sv_copypv_flags|5.017002|5.017002|
28328783 sv_copypv_nomg|5.017002|5.017002|
28338784 SV_COW_DROP_PV|5.008001|5.003007|p
2834 SV_COW_SHARED_HASH_KEYS|5.009005|5.003007|poVu
8785 SV_COW_OTHER_PVS|5.009005||Viu
8786 SV_COW_REFCNT_MAX|5.017007||Viu
8787 SV_COW_SHARED_HASH_KEYS|5.009005|5.003007|poVnu
28358788 SvCUR|5.003007|5.003007|
28368789 SvCUR_set|5.003007|5.003007|
28378790 sv_dec|5.003007|5.003007|
28438796 sv_derived_from_sv|5.015004|5.015004|
28448797 sv_derived_from_svpvn|5.031006||Viu
28458798 sv_destroyable|5.010000|5.010000|
8799 SvDESTROYABLE|5.010000||Viu
28468800 sv_display|5.021002||Viu
8801 SV_DO_COW_SVSETSV|5.009005||Viu
28478802 sv_does|5.009004|5.009004|
28488803 sv_does_pv|5.015004|5.015004|
28498804 sv_does_pvn|5.015004|5.015004|
28548809 sv_dup_inc|5.013002|5.013002|u
28558810 sv_dup_inc_multiple|5.011000||Viu
28568811 SvEND|5.003007|5.003007|
8812 SvEND_set|5.003007||Viu
8813 SvENDx|5.003007||Viu
28578814 sv_eq|5.003007|5.003007|
28588815 sv_eq_flags|5.013006|5.013006|
28598816 sv_exp_grow|5.009003||Viu
8817 SVf256|5.008001||Viu
8818 SVf32|5.009002||Viu
28608819 SVf|5.006000|5.003007|p
8820 SvFAKE|5.003007||Viu
8821 SvFAKE_off|5.003007||Viu
8822 SvFAKE_on|5.003007||Viu
8823 SVf_AMAGIC|5.003007||Viu
28618824 SVfARG|5.009005|5.003007|p
8825 SVf_BREAK|5.003007||Viu
8826 SVf_FAKE|5.003007||Viu
8827 SVf_IOK|5.003007||Viu
8828 SVf_IsCOW|5.017006||Viu
8829 SVf_IVisUV|5.006000||Viu
8830 SvFLAGS|5.003007||Viu
8831 SVf_NOK|5.003007||Viu
8832 SVf_OK|5.003007||Viu
8833 SVf_OOK|5.003007||Viu
28628834 sv_force_normal|5.006000|5.006000|
28638835 sv_force_normal_flags|5.007001|5.007001|
8836 SV_FORCE_UTF8_UPGRADE|5.011000|5.011000|
8837 SVf_POK|5.003007||Viu
8838 SVf_PROTECT|5.021005||Viu
8839 SVf_READONLY|5.003007||Viu
28648840 sv_free2|||xciu
28658841 sv_free|5.003007|5.003007|
28668842 sv_free_arenas|5.003007||Vi
8843 SVf_ROK|5.003007||Viu
8844 SVf_THINKFIRST|5.003007||Viu
28678845 SVf_UTF8|5.006000|5.003007|p
28688846 SvGAMAGIC|5.006001|5.006001|
2869 sv_get_backrefs|5.021008|5.021008|nx
8847 sv_get_backrefs|5.021008|5.021008|xn
28708848 SvGETMAGIC|5.004005|5.003007|p
28718849 sv_gets|5.003007|5.003007|
8850 SvGID|5.019001||Viu
28728851 SV_GMAGIC|5.007002|5.003007|p
2873 sv_grow|5.003007|5.003007|
8852 SvGMAGICAL|5.003007||Viu
8853 SvGMAGICAL_off|5.003007||Viu
8854 SvGMAGICAL_on|5.003007||Viu
28748855 SvGROW|5.003007|5.003007|
8856 sv_grow|5.003007||cV
8857 Sv_Grow|5.003007||Viu
8858 SvGROW_mutable|5.009003||Viu
28758859 SV_HAS_TRAILING_NUL|5.009004|5.003007|p
28768860 SV_IMMEDIATE_UNREF|5.007001|5.003007|p
8861 SvIMMORTAL|5.004000||Viu
8862 SvIMMORTAL_INTERP|5.027003||Viu
8863 SvIMMORTAL_TRUE|5.027003||Viu
28778864 sv_inc|5.003007|5.003007|
28788865 sv_i_ncmp|5.009003||Viu
8866 sv_i_ncmp_desc|5.031011||Viu
28798867 sv_inc_nomg|5.013002|5.013002|
28808868 sv_insert|5.003007|5.003007|
28818869 sv_insert_flags|5.010001|5.010001|
28828870 SvIOK|5.003007|5.003007|
8871 SvIOK_nog|5.017002||Viu
8872 SvIOK_nogthink|5.017002||Viu
28838873 SvIOK_notUV|5.006000|5.006000|
28848874 SvIOK_off|5.003007|5.003007|
28858875 SvIOK_on|5.003007|5.003007|
28868876 SvIOK_only|5.003007|5.003007|
28878877 SvIOK_only_UV|5.006000|5.006000|
28888878 SvIOKp|5.003007|5.003007|
8879 SvIOKp_on|5.003007||Viu
28898880 SvIOK_UV|5.006000|5.006000|
28908881 sv_isa|5.003007|5.003007|
2891 sv_isa_sv|||x
8882 sv_isa_sv|5.031007|5.031007|x
28928883 SvIsCOW|5.008003|5.008003|
28938884 SvIsCOW_shared_hash|5.008003|5.008003|
8885 SvIS_FREED|5.009003||Viu
28948886 sv_isobject|5.003007|5.003007|
28958887 SvIV|5.003007|5.003007|
2896 sv_iv|5.005000|5.005000|d
8888 sv_iv|5.005000||dcV
28978889 SvIV_nomg|5.009001|5.003007|p
8890 SvIV_please|5.007001||Viu
8891 SvIV_please_nomg|5.013002||Viu
28988892 SvIV_set|5.003007|5.003007|
28998893 SvIVX|5.003007|5.003007|
29008894 SvIVx|5.003007|5.003007|
8895 SvIVXx|5.003007||Viu
29018896 sv_kill_backrefs|||xiu
29028897 sv_len|5.003007|5.003007|
29038898 SvLEN|5.003007|5.003007|
29048899 SvLEN_set|5.003007|5.003007|
29058900 sv_len_utf8|5.006000|5.006000|p
2906 sv_len_utf8_nomg|5.017004||pVu
8901 sv_len_utf8_nomg|5.017004||pViu
8902 SvLENx|5.003007||Viu
29078903 SvLOCK|5.007003|5.007003|
29088904 sv_magic|5.003007|5.003007|
8905 SvMAGIC|5.003007||Viu
8906 SvMAGICAL|5.003007||Viu
8907 SvMAGICAL_off|5.003007||Viu
8908 SvMAGICAL_on|5.003007||Viu
29098909 sv_magicext|5.007003|5.007003|
29108910 sv_magicext_mglob|5.019002||cViu
29118911 sv_magic_portable||5.004000|pou
29128912 SvMAGIC_set|5.009003|5.003007|p
29138913 sv_mortalcopy|5.003007|5.003007|
29148914 sv_mortalcopy_flags|5.017005|5.003007|p
2915 SV_MUTABLE_RETURN|5.009003|5.003007|poVu
8915 SV_MUTABLE_RETURN|5.009003|5.003007|poVnu
29168916 sv_ncmp|5.009003||Viu
8917 sv_ncmp_desc|5.031011||Viu
29178918 sv_newmortal|5.003007|5.003007|
2918 sv_newref|5.003007|5.003007|
8919 sv_newref|5.003007||cV
29198920 SvNIOK|5.003007|5.003007|
8921 SvNIOK_nog|5.017002||Viu
8922 SvNIOK_nogthink|5.017002||Viu
29208923 SvNIOK_off|5.003007|5.003007|
29218924 SvNIOKp|5.003007|5.003007|
29228925 SvNOK|5.003007|5.003007|
8926 SvNOK_nog|5.017002||Viu
8927 SvNOK_nogthink|5.017002||Viu
29238928 SvNOK_off|5.003007|5.003007|
29248929 SvNOK_on|5.003007|5.003007|
29258930 SvNOK_only|5.003007|5.003007|
29268931 SvNOKp|5.003007|5.003007|
8932 SvNOKp_on|5.003007||Viu
29278933 sv_nolocking|5.007003|5.007003|d
29288934 sv_nosharing|5.007003|5.007003|
29298935 SV_NOSTEAL|5.009002|5.003007|p
29308936 sv_nounlocking|5.007003|5.007003|d
8937 sv_nv|5.005000||dcV
29318938 SvNV|5.006000|5.003007|
2932 sv_nv|5.006000|5.005000|d
29338939 SvNV_nomg|5.013002|5.003007|p
29348940 SvNV_set|5.006000|5.003007|
29358941 SvNVX|5.006000|5.003007|
29368942 SvNVx|5.006000|5.003007|
8943 SvNVXx|5.003007||Viu
8944 SvOBJECT|5.003007||Viu
8945 SvOBJECT_off|5.003007||Viu
8946 SvOBJECT_on|5.003007||Viu
29378947 SvOK|5.003007|5.003007|
2938 sv_only_taint_gmagic|5.021010||nViu
8948 SvOK_off|5.003007||Viu
8949 SvOK_off_exc_UV|5.006000||Viu
8950 SvOKp|5.003007||Viu
8951 sv_only_taint_gmagic|5.021010||Vniu
29398952 SvOOK|5.003007|5.003007|
8953 SvOOK_off|5.003007|5.003007|
29408954 SvOOK_offset|5.011000|5.011000|
8955 SvOOK_on|5.003007||Viu
8956 sv_or_pv_len_utf8|5.017005||Viu
29418957 sv_or_pv_pos_u2b|5.019004||Viu
8958 SvOURSTASH|5.009005||Viu
8959 SvOURSTASH_set|5.009005||Viu
8960 SvPADMY|5.003007||Viu
8961 SvPADMY_on|5.003007||Viu
8962 SVpad_OUR|5.006000||Viu
8963 SvPAD_OUR|5.009004||Viu
8964 SvPAD_OUR_on|5.009004||Viu
8965 SvPADSTALE|5.009000||Viu
8966 SvPADSTALE_off|5.009000||Viu
8967 SvPADSTALE_on|5.009000||Viu
8968 SVpad_STATE|5.009004||Viu
8969 SvPAD_STATE|5.009004||Viu
8970 SvPAD_STATE_on|5.009004||Viu
8971 SvPADTMP|5.003007||Viu
8972 SvPADTMP_off|5.003007||Viu
8973 SvPADTMP_on|5.003007||Viu
8974 SVpad_TYPED|5.007002||Viu
8975 SvPAD_TYPED|5.009004||Viu
8976 SvPAD_TYPED_on|5.009004||Viu
8977 SVpav_REAL|5.009003||Viu
8978 SVpav_REIFY|5.009003||Viu
8979 SvPCS_IMPORTED|5.009005||Viu
8980 SvPCS_IMPORTED_off|5.009005||Viu
8981 SvPCS_IMPORTED_on|5.009005||Viu
8982 SvPEEK|5.003007||Viu
29428983 sv_peek|5.005000|5.005000|u
8984 SVpgv_GP|5.009005||Viu
8985 SVphv_CLONEABLE|5.009003||Viu
8986 SVphv_HASKFLAGS|5.008000||Viu
8987 SVphv_LAZYDEL|5.003007||Viu
8988 SVphv_SHAREKEYS|5.003007||Viu
8989 SVp_IOK|5.003007||Viu
8990 SVp_NOK|5.003007||Viu
29438991 SvPOK|5.003007|5.003007|
8992 SvPOK_byte_nog|5.017002||Viu
8993 SvPOK_byte_nogthink|5.017002||Viu
8994 SvPOK_byte_pure_nogthink|5.017003||Viu
8995 SvPOK_nog|5.017002||Viu
8996 SvPOK_nogthink|5.017002||Viu
29448997 SvPOK_off|5.003007|5.003007|
29458998 SvPOK_on|5.003007|5.003007|
29468999 SvPOK_only|5.003007|5.003007|
29479000 SvPOK_only_UTF8|5.006000|5.006000|
29489001 SvPOKp|5.003007|5.003007|
9002 SvPOKp_on|5.003007||Viu
9003 SvPOK_pure_nogthink|5.017003||Viu
9004 SvPOK_utf8_nog|5.017002||Viu
9005 SvPOK_utf8_nogthink|5.017002||Viu
9006 SvPOK_utf8_pure_nogthink|5.017003||Viu
29499007 sv_pos_b2u|5.006000|5.006000|
29509008 sv_pos_b2u_flags|5.019003|5.019003|
29519009 sv_pos_b2u_midway|5.009004||Viu
29529010 sv_pos_u2b|5.006000|5.006000|
29539011 sv_pos_u2b_cached|5.009004||Viu
29549012 sv_pos_u2b_flags|5.011005|5.011005|
2955 sv_pos_u2b_forwards|5.009004||nViu
2956 sv_pos_u2b_midway|5.009004||nViu
9013 sv_pos_u2b_forwards|5.009004||Vniu
9014 sv_pos_u2b_midway|5.009004||Vniu
9015 SVp_POK|5.003007||Viu
9016 SVprv_PCS_IMPORTED|5.009005||Viu
9017 SVprv_WEAKREF|5.006000||Viu
9018 SVp_SCREAM|5.003007||Viu
29579019 SvPV|5.003007|5.003007|
2958 sv_pv|5.006000|5.006000|
9020 sv_pv|5.008000||cV
29599021 SvPVbyte|5.006000|5.003007|p
2960 sv_pvbyte|5.006000|5.006000|
9022 sv_pvbyte|5.008000||cV
29619023 SvPVbyte_force|5.009002|5.009002|
2962 sv_pvbyten|5.006000|5.006000|d
2963 sv_pvbyten_force|5.006000|5.006000|
9024 sv_pvbyten|5.006000||dcV
9025 sv_pvbyten_force|5.006000||cV
29649026 SvPVbyte_nolen|5.006000|5.006000|
29659027 SvPVbyte_nomg|5.031004|5.031004|
29669028 SvPVbyte_or_null|5.031004|5.031004|
29679029 SvPVbyte_or_null_nomg|5.031004|5.031004|
29689030 SvPVbytex|5.006000|5.006000|
29699031 SvPVbytex_force|5.006000|5.006000|
2970 SvPVCLEAR|5.025006|5.025006|
2971 SvPV_const|5.009003||pVu
2972 SvPV_flags|5.007002||pVu
2973 SvPV_flags_const|5.009003||pVu
9032 SvPVbytex_nolen|5.009003|5.009003|
9033 SvPVCLEAR|5.025006|5.025006|p
9034 SvPV_const|5.009003|5.003007|p
9035 SvPV_flags|5.007002|5.003007|p
9036 SvPV_flags_const|5.009003|5.003007|p
29749037 SvPV_flags_const_nolen|5.009003||pVu
2975 SvPV_flags_mutable|5.009003||pVu
9038 SvPV_flags_mutable|5.009003|5.003007|p
29769039 SvPV_force|5.003007|5.003007|p
2977 SvPV_force_flags|5.007002||pVu
2978 SvPV_force_flags_mutable|5.009003||pVu
2979 SvPV_force_flags_nolen|5.009003||pVu
2980 SvPV_force_mutable|5.009003||pVu
2981 SvPV_force_nolen|5.009003||pVu
9040 SvPV_force_flags|5.007002|5.003007|p
9041 SvPV_force_flags_mutable|5.009003|5.003007|p
9042 SvPV_force_flags_nolen|5.009003|5.003007|p
9043 SvPV_force_mutable|5.009003|5.003007|p
9044 SvPV_force_nolen|5.009003|5.003007|p
29829045 SvPV_force_nomg|5.007002|5.003007|p
2983 SvPV_force_nomg_nolen|5.009003||pVu
2984 SvPV_mutable|5.009003||pVu
2985 sv_pvn|5.005000|5.005000|d
2986 sv_pvn_force|5.003007|5.003007|
9046 SvPV_force_nomg_nolen|5.009003|5.003007|p
9047 SvPV_free|5.009003|5.009003|
9048 SvPV_mutable|5.009003|5.003007|p
9049 sv_pvn|5.004000||dcV
9050 sv_pvn_force|5.005000||cV
29879051 sv_pvn_force_flags|5.007002|5.003007|p
9052 sv_pvn_force_nomg|5.007002||Viu
29889053 sv_pvn_nomg|5.007003|5.005000|pdu
29899054 SvPV_nolen|5.006000|5.003007|p
2990 SvPV_nolen_const|5.009003||pVu
9055 SvPV_nolen_const|5.009003|5.003007|p
29919056 SvPV_nomg|5.007002|5.003007|p
2992 SvPV_nomg_const|5.009003||pVu
2993 SvPV_nomg_const_nolen|5.009003||pVu
9057 SvPV_nomg_const|5.009003|5.003007|p
9058 SvPV_nomg_const_nolen|5.009003|5.003007|p
29949059 SvPV_nomg_nolen|5.013007|5.003007|p
2995 SvPV_renew|5.009003||pVu
9060 SvPV_renew|5.009003|5.003007|p
29969061 SvPV_set|5.003007|5.003007|
2997 sv_pvutf8|5.006000|5.006000|
9062 SvPV_shrink_to_cur|5.009003||Viu
29989063 SvPVutf8|5.006000|5.006000|
9064 sv_pvutf8|5.008000||cV
29999065 SvPVutf8_force|5.006000|5.006000|
3000 sv_pvutf8n|5.006000|5.006000|d
3001 sv_pvutf8n_force|5.006000|5.006000|
9066 sv_pvutf8n|5.006000||dcV
9067 sv_pvutf8n_force|5.006000||cV
30029068 SvPVutf8_nolen|5.006000|5.006000|
30039069 SvPVutf8_nomg|5.031004|5.031004|
30049070 SvPVutf8_or_null|5.031004|5.031004|
30079073 SvPVutf8x_force|5.006000|5.006000|
30089074 SvPVX|5.003007|5.003007|
30099075 SvPVx|5.003007|5.003007|
3010 SvPVX_const|5.009003||pVu
3011 SvPVX_mutable|5.009003||pVu
9076 SvPVX_const|5.009003|5.003007|p
9077 SvPVx_const|5.009003|5.009003|
9078 SvPVx_force|5.005000|5.005000|
9079 SvPVX_mutable|5.009003|5.003007|p
9080 SvPVx_nolen|5.009003|5.009003|
9081 SvPVx_nolen_const|5.009003|5.003007|p
9082 SvPVXtrue|5.017002||Viu
9083 SvPVXx|5.003007|5.003007|
30129084 SvREADONLY|5.003007|5.003007|
30139085 SvREADONLY_off|5.003007|5.003007|
30149086 SvREADONLY_on|5.003007|5.003007|
30179089 SvREFCNT|5.003007|5.003007|
30189090 SvREFCNT_dec|5.003007|5.003007|
30199091 SvREFCNT_dec_NN|5.017007|5.017007|
9092 SvREFCNT_IMMORTAL|5.017008||Viu
30209093 SvREFCNT_inc|5.003007|5.003007|pn
30219094 SvREFCNT_inc_NN|5.009004|5.003007|pn
3022 SvREFCNT_inc_simple|5.009004|5.003007|p
3023 SvREFCNT_inc_simple_NN|5.009004|5.003007|p
3024 SvREFCNT_inc_simple_void|5.009004|5.003007|p
3025 SvREFCNT_inc_simple_void_NN|5.009004|5.003007|p
9095 SvREFCNT_inc_simple|5.009004|5.003007|pn
9096 SvREFCNT_inc_simple_NN|5.009004|5.003007|pn
9097 SvREFCNT_inc_simple_void|5.009004|5.003007|pn
9098 SvREFCNT_inc_simple_void_NN|5.009004|5.003007|pn
30269099 SvREFCNT_inc_void|5.009004|5.003007|pn
3027 SvREFCNT_inc_void_NN|5.009004|5.003007|p
9100 SvREFCNT_inc_void_NN|5.009004|5.003007|pn
30289101 sv_reftype|5.003007|5.003007|
30299102 sv_replace|5.003007|5.003007|
30309103 sv_report_used|5.003007|5.003007|
30319104 sv_reset|5.003007|5.003007|
30329105 sv_resetpvn|5.017005||Viu
9106 SvRMAGICAL|5.003007||Viu
9107 SvRMAGICAL_off|5.003007||Viu
9108 SvRMAGICAL_on|5.003007||Viu
30339109 SvROK|5.003007|5.003007|
30349110 SvROK_off|5.003007|5.003007|
30359111 SvROK_on|5.003007|5.003007|
30369112 SvRV|5.003007|5.003007|
9113 SvRV_const|5.010001||Viu
30379114 SvRV_set|5.009003|5.003007|p
30389115 sv_rvunweaken|5.027004|5.027004|
30399116 sv_rvweaken|5.006000|5.006000|
9117 SvRVx|5.003007||Viu
30409118 SvRX|5.009005|5.003007|p
30419119 SvRXOK|5.009005|5.003007|p
9120 SV_SAVED_COPY|5.009005||Viu
9121 SvSCREAM|5.003007||Viu
9122 SvSCREAM_off|5.003007||Viu
9123 SvSCREAM_on|5.003007||Viu
9124 sv_setgid|5.019001||Viu
30429125 sv_sethek|5.015004||cViu
30439126 sv_setiv|5.003007|5.003007|
30449127 sv_setiv_mg|5.004005|5.003007|p
30519134 sv_setpv_bufsize|5.025006|5.025006|
30529135 sv_setpvf|5.006000|5.004000|v
30539136 sv_setpvf_mg|5.006000|5.004000|pv
3054 sv_setpvf_mg_nocontext|5.006000||pvnVu
3055 sv_setpvf_nocontext|5.006000||vnVu
9137 sv_setpvf_mg_nocontext|5.006000||pvVn
9138 sv_setpvf_nocontext|5.006000||vVn
30569139 sv_setpviv|5.008001|5.008001|d
30579140 sv_setpviv_mg|5.008001|5.008001|d
30589141 sv_setpv_mg|5.004005|5.003007|p
30739156 sv_setsv_mg|5.004005|5.003007|p
30749157 sv_setsv_nomg|5.007002|5.003007|p
30759158 SvSetSV_nosteal|5.004000|5.004000|
9159 sv_setuid|5.019001||Viu
30769160 sv_set_undef|5.025008|5.025008|
30779161 sv_setuv|5.004000|5.003007|p
30789162 sv_setuv_mg|5.004005|5.003007|p
9163 SVs_GMG|5.003007||Viu
30799164 SvSHARE|5.007003|5.007003|
3080 SvSHARED_HASH|5.009003||pVu
9165 SvSHARED_HASH|5.009003|5.003007|p
9166 SvSHARED_HEK_FROM_PV|5.009003||Viu
9167 SV_SKIP_OVERLOAD|5.013001||Viu
30819168 SV_SMAGIC|5.009003|5.003007|p
9169 SvSMAGICAL|5.003007||Viu
9170 SvSMAGICAL_off|5.003007||Viu
9171 SvSMAGICAL_on|5.003007||Viu
9172 SVs_OBJECT|5.003007||Viu
9173 SVs_PADMY|5.003007||Viu
30829174 SVs_PADSTALE|5.009000|5.009000|
9175 SVs_PADTMP|5.003007||Viu
9176 SVs_RMG|5.003007||Viu
9177 SVs_SMG|5.003007||Viu
30839178 SvSTASH|5.003007|5.003007|
30849179 SvSTASH_set|5.009003|5.003007|p
30859180 SVs_TEMP|5.003007|5.003007|
30869181 sv_string_from_errnum|5.027003|5.027003|
9182 SvTAIL|5.003007||Viu
30879183 SvTAINT|5.003007|5.003007|
3088 sv_taint|5.004000|5.004000|
3089 sv_tainted|5.004000|5.004000|
9184 sv_taint|5.009003||cV
30909185 SvTAINTED|5.004000|5.004000|
9186 sv_tainted|5.004000||cV
30919187 SvTAINTED_off|5.004000|5.004000|
30929188 SvTAINTED_on|5.004000|5.004000|
3093 SvTHINKFIRST|||i
9189 SvTEMP|5.003007||Viu
9190 SvTEMP_off|5.003007||Viu
9191 SvTEMP_on|5.003007||Viu
9192 SVt_FIRST|5.021005||Viu
9193 SvTHINKFIRST|5.003007||Vi
9194 SvTIED_mg|5.005003||Viu
9195 SvTIED_obj|5.005003|5.005003|
30949196 SVt_INVLIST|||c
30959197 SVt_IV|5.003007|5.003007|
9198 SVt_MASK|5.015001||Viu
30969199 SVt_NULL|5.003007|5.003007|
30979200 SVt_NV|5.003007|5.003007|
30989201 SVt_PV|5.003007|5.003007|
30999202 SVt_PVAV|5.003007|5.003007|
9203 SVt_PVBM|5.009005||Viu
31009204 SVt_PVCV|5.003007|5.003007|
31019205 SVt_PVFM|5.003007|5.003007|
31029206 SVt_PVGV|5.003007|5.003007|
31089212 SVt_PVNV|5.003007|5.003007|
31099213 SVt_REGEXP|5.011000|5.011000|
31109214 SvTRUE|5.003007|5.003007|
3111 sv_true|5.005000|5.005000|
9215 sv_true|5.005000||cV
9216 SvTRUE_common|5.033005||cVu
9217 SvTRUE_NN|5.017007|5.017007|
31129218 SvTRUE_nomg|5.013006|5.003007|p
9219 SvTRUE_nomg_NN|5.017007|5.017007|
31139220 SvTRUEx|5.003007|5.003007|
9221 SvTRUEx_nomg|5.017002||Viu
9222 SVt_RV|5.011000||Viu
31149223 SvTYPE|5.003007|5.003007|
3115 svtype|5.003007|5.003007|V
9224 SVTYPEMASK|5.003007||Viu
9225 SvUID|5.019001||Viu
9226 SV_UNDEF_RETURNS_NULL|5.011000||Viu
31169227 sv_unglob|5.005000||Viu
31179228 sv_uni_display|5.007003|5.007003|
31189229 SvUNLOCK|5.007003|5.007003|
31209231 sv_unmagicext|5.013008|5.003007|p
31219232 sv_unref|5.003007|5.003007|
31229233 sv_unref_flags|5.007001|5.007001|
3123 sv_untaint|5.004000|5.004000|
9234 sv_untaint|5.004000||cV
31249235 SvUOK|5.007001|5.006000|p
9236 SvUOK_nog|5.017002||Viu
9237 SvUOK_nogthink|5.017002||Viu
31259238 sv_upgrade|5.003007|5.003007|
31269239 SvUPGRADE|5.003007|5.003007|
31279240 sv_usepvn|5.003007|5.003007|
31339246 sv_utf8_downgrade_flags|5.031004|5.031004|
31349247 sv_utf8_downgrade_nomg|5.031004|5.031004|
31359248 sv_utf8_encode|5.006000|5.006000|
3136 SV_UTF8_NO_ENCODING|5.008001|5.003007|poVu
9249 SV_UTF8_NO_ENCODING|5.008001|5.003007|pd
31379250 SvUTF8_off|5.006000|5.006000|
31389251 SvUTF8_on|5.006000|5.006000|
31399252 sv_utf8_upgrade|5.007001|5.007001|
31419254 sv_utf8_upgrade_flags_grow|5.011000|5.011000|
31429255 sv_utf8_upgrade_nomg|5.007002|5.007002|
31439256 SvUV|5.004000|5.003007|p
3144 sv_uv|5.005000|5.003007|pd
9257 sv_uv|5.005000||pdcV
31459258 SvUV_nomg|5.009001|5.003007|p
31469259 SvUV_set|5.009003|5.003007|p
31479260 SvUVX|5.004000|5.003007|p
31489261 SvUVx|5.004000|5.003007|p
31499262 SvUVXx|5.004000|5.003007|pd
9263 SvVALID|5.003007||Viu
31509264 sv_vcatpvf|5.006000|5.004000|p
31519265 sv_vcatpvf_mg|5.006000|5.004000|p
31529266 sv_vcatpvfn|5.004000|5.004000|
31559269 sv_vsetpvf|5.006000|5.004000|p
31569270 sv_vsetpvf_mg|5.006000|5.004000|p
31579271 sv_vsetpvfn|5.004000|5.004000|
3158 SvVSTRING_mg|5.009004||pVu
9272 SvVSTRING_mg|5.009004|5.003007|p
9273 SvWEAKREF|5.006000||Viu
9274 SvWEAKREF_off|5.006000||Viu
9275 SvWEAKREF_on|5.006000||Viu
31599276 swallow_bom|5.006001||Viu
31609277 switch_category_locale_to_template|5.027009||Viu
9278 SWITCHSTACK|5.003007||Viu
31619279 switch_to_global_locale|5.027009|5.003007|pn
31629280 sync_locale|5.027009|5.003007|pn
3163 sys_init3|5.010000|5.010000|nu
3164 sys_init|5.010000|5.010000|nu
9281 sys_init3|||cnu
9282 sys_init|||cnu
31659283 sys_intern_clear|5.006001||Vu
31669284 sys_intern_dup|5.006000||Vu
31679285 sys_intern_init|5.006001||Vu
3168 sys_term|5.010000|5.010000|nu
9286 SYSTEM_GMTIME_MAX|5.011000||Viu
9287 SYSTEM_GMTIME_MIN|5.011000||Viu
9288 SYSTEM_LOCALTIME_MAX|5.011000||Viu
9289 SYSTEM_LOCALTIME_MIN|5.011000||Viu
9290 sys_term|||cnu
9291 TAIL|5.005000||Viu
9292 TAIL_t8_p8|5.033003||Viu
9293 TAIL_t8_pb|5.033003||Viu
9294 TAIL_tb_p8|5.033003||Viu
9295 TAIL_tb_pb|5.033003||Viu
9296 TAINT|5.004000||Viu
31699297 taint_env|5.003007|5.003007|u
9298 TAINT_ENV|5.003007||Viu
9299 TAINT_get|5.017006||Viu
9300 TAINT_IF|5.003007||Viu
9301 TAINTING_get|5.017006||Viu
9302 TAINTING_set|5.017006||Viu
9303 TAINT_NOT|5.003007||Viu
31709304 taint_proper|5.003007|5.003007|u
9305 TAINT_PROPER|5.003007||Viu
9306 TAINT_set|5.017006||Viu
9307 TAINT_WARN_get|5.017006||Viu
9308 TAINT_WARN_set|5.017006||Viu
9309 TARG|5.003007|5.003007|
9310 TARGi|5.023005||Viu
9311 TARGn|5.023005||Viu
9312 TARGu|5.023005||Viu
9313 telldir|5.005000||Viu
9314 T_FMT|5.027010||Viu
9315 T_FMT_AMPM|5.027010||Viu
31719316 THIS|5.003007|5.003007|V
3172 thread_locale_init|5.027009|5.027009|nxu
3173 thread_locale_term|5.027009|5.027009|nxu
9317 THOUSEP|5.027010||Viu
9318 THR|5.005000||Viu
9319 THREAD_CREATE_NEEDS_STACK|5.007002||Viu
9320 thread_locale_init|5.027009|5.027009|xnu
9321 thread_locale_term|5.027009|5.027009|xnu
9322 THREAD_RET_TYPE|5.005000||Viu
31749323 tied_method|5.013009||vViu
9324 TIED_METHOD_ARGUMENTS_ON_STACK|5.013009||Viu
9325 TIED_METHOD_MORTALIZE_NOT_NEEDED|5.013009||Viu
9326 TIED_METHOD_SAY|5.013009||Viu
9327 times|5.005000||Viu
9328 Time_t|5.003007|5.003007|Vn
9329 Timeval|5.004000|5.004000|Vn
9330 TM|5.011000||Viu
9331 tmpfile|5.003007||Viu
9332 tmpnam|5.005000||Viu
9333 TMPNAM_R_PROTO|5.008000|5.008000|Vn
31759334 tmps_grow_p|5.021005||cViu
31769335 to_byte_substr|5.008000||Viu
9336 toCTRL|5.004000||Viu
31779337 toFOLD|5.019001|5.019001|
3178 _to_fold_latin1|5.015005||ncViu
9338 toFOLD_A|5.019001||Viu
9339 _to_fold_latin1|5.015005||cVniu
9340 toFOLD_LC|5.019001||Viu
9341 toFOLD_uni|5.007003||Viu
31799342 toFOLD_utf8|5.031005|5.031005|
31809343 toFOLD_utf8_safe|5.025009|5.006000|p
31819344 toFOLD_uvchr|5.023009|5.006000|p
9345 TO_INTERNAL_SIZE|5.023002||Viu
31829346 tokenize_use|5.009003||Viu
31839347 tokeq|5.005000||Viu
31849348 tokereport|5.007001||Viu
31859349 toLOWER|5.003007|5.003007|
9350 toLOWER_A|5.019001|5.019001|
31869351 toLOWER_L1|5.019001|5.019001|
3187 to_lower_latin1|5.015005||nViu
9352 toLOWER_LATIN1|5.013006|5.011002|
9353 to_lower_latin1|5.015005||Vniu
31889354 toLOWER_LC|5.004000|5.004000|
9355 toLOWER_uni|5.006000||Viu
31899356 toLOWER_utf8|5.031005|5.031005|
31909357 toLOWER_utf8_safe|5.025009|5.006000|p
31919358 toLOWER_uvchr|5.023009|5.006000|p
31929359 too_few_arguments_pv|5.016000||Viu
9360 TOO_LATE_FOR|5.008001||Viu
31939361 too_many_arguments_pv|5.016000||Viu
3194 TOPMARK|||ciu
9362 TOPi|5.003007||Viu
9363 TOPl|5.003007||Viu
9364 TOPm1s|5.007001||Viu
9365 TOPMARK|5.003007||cViu
9366 TOPn|5.003007||Viu
9367 TOPp1s|5.007001||Viu
9368 TOPp|5.003007||Viu
9369 TOPpx|5.005003||Viu
9370 TOPs|5.003007||Viu
9371 TOPu|5.004000||Viu
9372 TOPul|5.006000||Viu
31959373 toTITLE|5.019001|5.019001|
9374 toTITLE_A|5.019001||Viu
9375 toTITLE_uni|5.006000||Viu
31969376 toTITLE_utf8|5.031005|5.031005|
31979377 toTITLE_utf8_safe|5.025009|5.006000|p
31989378 toTITLE_uvchr|5.023009|5.006000|p
3199 to_uni_fold|5.031004||cVu
9379 to_uni_fold|5.014000||cVu
32009380 _to_uni_fold_flags|5.014000||cVu
32019381 to_uni_lower|5.006000||cVu
32029382 to_uni_title|5.006000||cVu
32039383 to_uni_upper|5.006000||cVu
32049384 toUPPER|5.003007|5.003007|
9385 toUPPER_A|5.019001||Viu
9386 toUPPER_LATIN1_MOD|5.011002||Viu
9387 toUPPER_LC|5.004000||Viu
32059388 _to_upper_title_latin1|5.015005||Viu
9389 toUPPER_uni|5.006000||Viu
32069390 toUPPER_utf8|5.031005|5.031005|
32079391 toUPPER_utf8_safe|5.025009|5.006000|p
32089392 toUPPER_uvchr|5.023009|5.006000|p
32129396 to_utf8_substr|5.008000||Viu
32139397 _to_utf8_title_flags|5.015006||cVu
32149398 _to_utf8_upper_flags|5.015006||cVu
3215 translate_substr_offsets|5.015006||nViu
9399 translate_substr_offsets|5.015006||Vniu
32169400 traverse_op_tree|5.029008||Vi
9401 TR_DELETE|5.031006||Viu
9402 TRIE|5.009002||Viu
9403 TRIE_BITMAP|5.009004||Viu
9404 TRIE_BITMAP_BYTE|5.009004||Viu
9405 TRIE_BITMAP_CLEAR|5.009004||Viu
9406 TRIE_BITMAP_SET|5.009004||Viu
9407 TRIE_BITMAP_TEST|5.009004||Viu
9408 TRIEC|5.009004||Viu
9409 TRIE_CHARCOUNT|5.009004||Viu
9410 TRIEC_t8_p8|5.033003||Viu
9411 TRIEC_t8_pb|5.033003||Viu
9412 TRIEC_tb_p8|5.033003||Viu
9413 TRIEC_tb_pb|5.033003||Viu
9414 TRIE_next|5.009005||Viu
9415 TRIE_next_fail|5.009005||Viu
9416 TRIE_next_fail_t8_p8|5.033003||Viu
9417 TRIE_next_fail_t8_pb|5.033003||Viu
9418 TRIE_next_fail_tb_p8|5.033003||Viu
9419 TRIE_next_fail_tb_pb|5.033003||Viu
9420 TRIE_next_t8_p8|5.033003||Viu
9421 TRIE_next_t8_pb|5.033003||Viu
9422 TRIE_next_tb_p8|5.033003||Viu
9423 TRIE_next_tb_pb|5.033003||Viu
9424 TRIE_NODEIDX|5.009002||Viu
9425 TRIE_NODENUM|5.009002||Viu
9426 TRIE_t8_p8|5.033003||Viu
9427 TRIE_t8_pb|5.033003||Viu
9428 TRIE_tb_p8|5.033003||Viu
9429 TRIE_tb_pb|5.033003||Viu
9430 TRIE_WORDS_OFFSET|5.009005||Viu
9431 TR_OOB|5.031006||Viu
9432 TR_R_EMPTY|5.031006||Viu
9433 TR_SPECIAL_HANDLING|5.031006||Viu
9434 TRUE|5.003007||Viu
9435 truncate|5.006000||Viu
9436 TR_UNLISTED|5.031006||Viu
9437 TR_UNMAPPED|5.031006||Viu
32179438 try_amagic_bin|||ciu
9439 tryAMAGICbin_MG|5.013002||Viu
32189440 try_amagic_un|||ciu
9441 tryAMAGICunDEREF|5.006000||Viu
9442 tryAMAGICun_MG|5.013002||Viu
9443 tryAMAGICunTARGETlist|5.017002||Viu
9444 TS_W32_BROKEN_LOCALECONV|5.027010||Viu
9445 tTHX|5.009003||Viu
9446 ttyname|5.009000||Viu
9447 TTYNAME_R_PROTO|5.008000|5.008000|Vn
32199448 turkic_fc|5.029008||Viu
32209449 turkic_lc|5.029008||Viu
32219450 turkic_uc|5.029008||Viu
3222 U16SIZE|5.006000|5.006000|
3223 U16TYPE|5.006000|5.006000|
3224 U32SIZE|5.006000|5.006000|
3225 U32TYPE|5.006000|5.006000|
3226 U8SIZE|5.006000|5.006000|
3227 U8TYPE|5.006000|5.006000|
3228 uiv_2buf|5.009003||nViu
9451 TWO_BYTE_UTF8_TO_NATIVE|5.019004||Viu
9452 TWO_BYTE_UTF8_TO_UNI|5.013008||Viu
9453 TYPE_CHARS|5.004000||Viu
9454 TYPE_DIGITS|5.004000||Viu
9455 U16|5.027001||Viu
9456 U16_MAX|5.003007||Viu
9457 U16_MIN|5.003007||Viu
9458 U16SIZE|5.006000|5.006000|Vn
9459 U16TYPE|5.006000|5.006000|Vn
9460 U_32|5.007002|5.007002|
9461 U32|5.027001||Viu
9462 U32_ALIGNMENT_REQUIRED|5.007001|5.007001|Vn
9463 U32_MAX|5.003007||Viu
9464 U32_MAX_P1|5.007002||Viu
9465 U32_MAX_P1_HALF|5.007002||Viu
9466 U32_MIN|5.003007||Viu
9467 U32SIZE|5.006000|5.006000|Vn
9468 U32TYPE|5.006000|5.006000|Vn
9469 U64|5.023002||Viu
9470 U64SIZE|5.006000|5.006000|Vn
9471 U64TYPE|5.006000|5.006000|Vn
9472 U8|5.027001||Viu
9473 U8_MAX|5.003007||Viu
9474 U8_MIN|5.003007||Viu
9475 U8SIZE|5.006000|5.006000|Vn
9476 U8TO16_LE|5.017010||Viu
9477 U8TO32_LE|5.017010||Viu
9478 U8TO64_LE|5.017006||Viu
9479 U8TYPE|5.006000|5.006000|Vn
9480 UCHARAT|5.003007||Viu
9481 U_I|5.003007||Viu
9482 Uid_t|5.003007|5.003007|Vn
9483 Uid_t_f|5.006000|5.006000|Vn
9484 Uid_t_sign|5.006000|5.006000|Vn
9485 Uid_t_size|5.006000|5.006000|Vn
9486 UINT16_C|5.003007|5.003007|
9487 UINT32_C|5.003007|5.003007|
9488 UINT32_MIN|5.006000||Viu
9489 UINT64_C|5.023002|5.023002|
9490 UINT64_MIN|5.006000||Viu
9491 UINTMAX_C|5.003007|5.003007|
9492 uiv_2buf|5.009003||Vniu
9493 U_L|5.003007||Viu
9494 umask|5.005000||Viu
9495 uname|5.005004||Viu
32299496 UNDERBAR|5.009002|5.003007|p
32309497 unexpected_non_continuation_text|5.025006||Viu
9498 ungetc|5.003007||Viu
9499 UNI_age_values_index|5.029009||Viu
9500 UNI_AHEX|5.029002||Viu
9501 UNI_ahex_values_index|5.029009||Viu
9502 UNI_ALNUM|5.029002||Viu
9503 UNI_ALPHA|5.029002||Viu
9504 UNI_ALPHABETIC|5.029002||Viu
9505 UNI_alpha_values_index|5.029009||Viu
9506 UNI_ASCIIHEXDIGIT|5.029002||Viu
9507 UNI_BASICLATIN|5.029002||Viu
9508 UNI_bc_values_index|5.029009||Viu
9509 UNI_bidic_values_index|5.029009||Viu
9510 UNI_bidim_values_index|5.029009||Viu
9511 UNI_BLANK|5.029002||Viu
9512 UNI_blk_values_index|5.029009||Viu
9513 UNI_bpt_values_index|5.029009||Viu
9514 UNI_cased_values_index|5.029009||Viu
9515 UNI_CC|5.029002||Viu
9516 UNI_ccc_values_index|5.029009||Viu
9517 UNI_ce_values_index|5.029009||Viu
9518 UNI_ci_values_index|5.029009||Viu
9519 UNI_CNTRL|5.029002||Viu
9520 UNICODE_ALLOW_ABOVE_IV_MAX|5.031006||Viu
9521 UNICODE_ALLOW_ANY|5.007003||Viu
9522 UNICODE_ALLOW_SUPER|5.007003||Viu
9523 UNICODE_ALLOW_SURROGATE|5.007003||Viu
9524 UNICODE_BYTE_ORDER_MARK|5.008000||Viu
9525 UNICODE_DISALLOW_ABOVE_31_BIT|5.023006|5.023006|
9526 UNICODE_DISALLOW_ILLEGAL_C9_INTERCHANGE|5.025005|5.025005|
9527 UNICODE_DISALLOW_ILLEGAL_INTERCHANGE|5.013009|5.013009|
9528 UNICODE_DISALLOW_NONCHAR|5.013009|5.013009|
9529 UNICODE_DISALLOW_PERL_EXTENDED|5.027002|5.027002|
9530 UNICODE_DISALLOW_SUPER|5.013009|5.013009|
9531 UNICODE_DISALLOW_SURROGATE|5.013009|5.013009|
9532 UNICODE_DOT_DOT_VERSION|5.023002||Viu
9533 UNICODE_DOT_VERSION|5.023002||Viu
9534 UNICODE_GOT_NONCHAR|5.027009||Viu
9535 UNICODE_GOT_PERL_EXTENDED|5.027009||Viu
9536 UNICODE_GOT_SUPER|5.027009||Viu
9537 UNICODE_GOT_SURROGATE|5.027009||Viu
9538 UNICODE_GREEK_CAPITAL_LETTER_SIGMA|5.007003||Viu
9539 UNICODE_GREEK_SMALL_LETTER_FINAL_SIGMA|5.007003||Viu
9540 UNICODE_GREEK_SMALL_LETTER_SIGMA|5.007003||Viu
9541 UNICODE_IS_32_CONTIGUOUS_NONCHARS|5.023006||Viu
9542 UNICODE_IS_BYTE_ORDER_MARK|5.007001||Viu
9543 UNICODE_IS_END_PLANE_NONCHAR_GIVEN_NOT_SUPER|5.023006||Viu
9544 UNICODE_IS_NONCHAR|5.013009||Viu
9545 UNICODE_IS_PERL_EXTENDED|5.027002||Viu
9546 UNICODE_IS_REPLACEMENT|5.007001||Viu
9547 UNICODE_IS_SUPER|5.013009||Viu
9548 UNICODE_IS_SURROGATE|5.007001||Viu
9549 UNICODE_MAJOR_VERSION|5.023002||Viu
9550 UNICODE_PAT_MOD|5.013006||Viu
9551 UNICODE_PAT_MODS|5.013006||Viu
32319552 UNICODE_REPLACEMENT|5.007001|5.003007|p
9553 UNICODE_SURROGATE_FIRST|5.007001||Viu
9554 UNICODE_SURROGATE_LAST|5.007001||Viu
9555 UNICODE_WARN_ABOVE_31_BIT|5.023006|5.023006|
9556 UNICODE_WARN_ILLEGAL_C9_INTERCHANGE|5.025005|5.025005|
9557 UNICODE_WARN_ILLEGAL_INTERCHANGE|5.013009|5.013009|
9558 UNICODE_WARN_NONCHAR|5.013009|5.013009|
9559 UNICODE_WARN_PERL_EXTENDED|5.027002|5.027002|
9560 UNICODE_WARN_SUPER|5.013009|5.013009|
9561 UNICODE_WARN_SURROGATE|5.013009|5.013009|
9562 UNI_compex_values_index|5.029009||Viu
9563 UNI_CONTROL|5.029002||Viu
9564 UNI_cwcf_values_index|5.029009||Viu
9565 UNI_cwcm_values_index|5.029009||Viu
9566 UNI_cwkcf_values_index|5.029009||Viu
9567 UNI_cwl_values_index|5.029009||Viu
9568 UNI_cwt_values_index|5.029009||Viu
9569 UNI_cwu_values_index|5.029009||Viu
9570 UNI_dash_values_index|5.029009||Viu
9571 UNI_DECIMALNUMBER|5.029002||Viu
9572 UNI_dep_values_index|5.029009||Viu
9573 UNI_dia_values_index|5.029009||Viu
9574 UNI_DIGIT|5.029002||Viu
9575 UNI_DISPLAY_BACKSLASH|5.007003|5.007003|
9576 UNI_DISPLAY_BACKSPACE|5.031009|5.031009|
9577 UNI_DISPLAY_ISPRINT|5.007003|5.007003|
9578 UNI_DISPLAY_QQ|5.007003|5.007003|
9579 UNI_DISPLAY_REGEX|5.007003|5.007003|
9580 UNI_di_values_index|5.029009||Viu
9581 UNI_dt_values_index|5.029009||Viu
9582 UNI_ea_values_index|5.029009||Viu
9583 UNI_ebase_values_index|5.031010||Viu
9584 UNI_ecomp_values_index|5.031010||Viu
9585 UNI_emod_values_index|5.031010||Viu
9586 UNI_emoji_values_index|5.031010||Viu
9587 UNI_epres_values_index|5.031010||Viu
9588 UNI_extpict_values_index|5.031010||Viu
9589 UNI_ext_values_index|5.029009||Viu
9590 UNI_gcb_values_index|5.029009||Viu
9591 UNI_gc_values_index|5.029009||Viu
9592 UNI_GRAPH|5.029002||Viu
9593 UNI_grbase_values_index|5.029009||Viu
9594 UNI_grext_values_index|5.029009||Viu
9595 UNI_HEX|5.029002||Viu
9596 UNI_HEXDIGIT|5.029002||Viu
9597 UNI_hex_values_index|5.029009||Viu
9598 UNI_HORIZSPACE|5.029002||Viu
9599 UNI_hst_values_index|5.029009||Viu
9600 UNI_HYPHEN|5.029002||Viu
9601 UNI_hyphen_values_index|5.029009||Viu
9602 UNI_idc_values_index|5.029009||Viu
9603 UNI_identifierstatus_values_index|5.031010||Viu
9604 UNI_identifiertype_values_index|5.031010||Viu
9605 UNI_ideo_values_index|5.029009||Viu
9606 UNI_idsb_values_index|5.029009||Viu
9607 UNI_idst_values_index|5.029009||Viu
9608 UNI_ids_values_index|5.029009||Viu
9609 UNI_inpc_values_index|5.029009||Viu
9610 UNI_insc_values_index|5.029009||Viu
9611 UNI_in_values_index|5.029009||Viu
9612 UNI_IS_INVARIANT|5.007001||Viu
9613 UNI_jg_values_index|5.029009||Viu
9614 UNI_joinc_values_index|5.029009||Viu
9615 UNI_jt_values_index|5.029009||Viu
9616 UNI_L|5.029002||Viu
9617 UNI_L_AMP|5.029002||Viu
9618 UNI_LB__SG|5.029002||Viu
9619 UNI_lb_values_index|5.029009||Viu
9620 UNI_LC|5.029002||Viu
9621 UNI_LL|5.029002||Viu
9622 UNI_loe_values_index|5.029009||Viu
9623 UNI_LOWER|5.029002||Viu
9624 UNI_LOWERCASE|5.029002||Viu
9625 UNI_lower_values_index|5.029009||Viu
9626 UNI_LT|5.029002||Viu
9627 UNI_LU|5.029002||Viu
9628 UNI_math_values_index|5.029009||Viu
9629 UNI_nchar_values_index|5.029009||Viu
9630 UNI_ND|5.029002||Viu
9631 UNI_nfcqc_values_index|5.029009||Viu
9632 UNI_nfdqc_values_index|5.029009||Viu
9633 UNI_nfkcqc_values_index|5.029009||Viu
9634 UNI_nfkdqc_values_index|5.029009||Viu
9635 UNI_nt_values_index|5.029009||Viu
9636 UNI_nv_values_index|5.029009||Viu
9637 UNI_patsyn_values_index|5.029009||Viu
9638 UNI_patws_values_index|5.029009||Viu
9639 UNI_pcm_values_index|5.029009||Viu
9640 UNI_PERLSPACE|5.029002||Viu
9641 UNI_PERLWORD|5.029002||Viu
9642 UNI_PRINT|5.029002||Viu
9643 UNI_qmark_values_index|5.029009||Viu
9644 UNI_radical_values_index|5.029009||Viu
9645 UNI_ri_values_index|5.029009||Viu
9646 UNI_sb_values_index|5.029009||Viu
9647 UNI_sc_values_index|5.029009||Viu
9648 UNI_scx_values_index|5.029009||Viu
9649 UNI_sd_values_index|5.029009||Viu
9650 UNISKIP|5.007001||Viu
9651 UNI_SPACE|5.029002||Viu
9652 UNI_SPACEPERL|5.029002||Viu
9653 UNI_sterm_values_index|5.029009||Viu
9654 UNI_term_values_index|5.029009||Viu
9655 UNI_TITLECASE|5.029002||Viu
9656 UNI_TITLECASELETTER|5.029002||Viu
32329657 UNI_TO_NATIVE|5.007001|5.003007|p
9658 UNI_uideo_values_index|5.029009||Viu
9659 UNI_UPPER|5.029002||Viu
9660 UNI_UPPERCASE|5.029002||Viu
9661 UNI_upper_values_index|5.029009||Viu
9662 UNI_vo_values_index|5.029009||Viu
9663 UNI_vs_values_index|5.029009||Viu
9664 UNI_wb_values_index|5.029009||Viu
9665 UNI_WHITESPACE|5.029002||Viu
9666 UNI_WORD|5.029002||Viu
9667 UNI_WSPACE|5.029002||Viu
9668 UNI_wspace_values_index|5.029009||Viu
9669 UNI_XDIGIT|5.029002||Viu
9670 UNI_xidc_values_index|5.029009||Viu
9671 UNI_xids_values_index|5.029009||Viu
9672 UNI_XPERLSPACE|5.029002||Viu
9673 UNKNOWN_ERRNO_MSG|5.019007||Viu
9674 UNLESSM|5.003007||Viu
9675 UNLESSM_t8_p8|5.033003||Viu
9676 UNLESSM_t8_pb|5.033003||Viu
9677 UNLESSM_tb_p8|5.033003||Viu
9678 UNLESSM_tb_pb|5.033003||Viu
32339679 UNLIKELY|5.009004|5.003007|p
3234 unlnk|5.003007||Vu
9680 UNLINK|5.003007||Viu
9681 unlink|5.005000||Viu
9682 unlnk|5.003007||cVu
9683 UNLOCK_DOLLARZERO_MUTEX|5.008001||Viu
9684 UNLOCK_LC_NUMERIC_STANDARD|5.021010||poVnu
9685 UNLOCK_NUMERIC_STANDARD|||piu
9686 UNOP_AUX_item_sv|5.021007||Viu
32359687 unpack_rec|5.008001||Viu
32369688 unpack_str|5.007003|5.007003|d
32379689 unpackstring|5.008001|5.008001|
9690 unpackWARN1|5.007003||Viu
9691 unpackWARN2|5.007003||Viu
9692 unpackWARN3|5.007003||Viu
9693 unpackWARN4|5.007003||Viu
32389694 unreferenced_to_tmp_stack|5.013002||Viu
32399695 unshare_hek|5.004000||Viu
32409696 unshare_hek_or_pvn|5.008000||Viu
32429698 unwind_handler_stack|5.009003||Viu
32439699 update_debugger_info|5.009005||Viu
32449700 upg_version|5.009005|5.009005|
9701 UPG_VERSION|5.019008||Viu
9702 Uquad_t|5.006000|5.006000|Vn
9703 U_S|5.003007||Viu
32459704 usage|5.005000||Viu
9705 USE_64_BIT_ALL|5.006000|5.006000|Vn
9706 USE_64_BIT_INT|5.006000|5.006000|Vn
9707 USE_64_BIT_RAWIO|5.006000||Viu
9708 USE_64_BIT_STDIO|5.006000||Viu
9709 USE_BSDPGRP|5.003007||Viu
9710 USE_C_BACKTRACE|5.035001|5.035001|Vn
9711 USE_DYNAMIC_LOADING|5.003007|5.003007|Vn
9712 USE_ENVIRON_ARRAY|5.007001||Viu
9713 USE_GRENT_BUFFER|5.008000||Viu
9714 USE_GRENT_FPTR|5.008000||Viu
9715 USE_GRENT_PTR|5.008000||Viu
9716 USE_HASH_SEED|5.008001||Viu
9717 USE_HOSTENT_BUFFER|5.008000||Viu
9718 USE_HOSTENT_ERRNO|5.008000||Viu
9719 USE_HOSTENT_PTR|5.008000||Viu
9720 USE_ITHREADS|5.010000|5.010000|Vn
9721 USE_LARGE_FILES|5.006000|5.006000|Vn
9722 USE_LEFT|5.004000||Viu
9723 USE_LOCALE|5.004000||Viu
9724 USE_LOCALE_ADDRESS|5.027009||Viu
9725 USE_LOCALE_COLLATE|5.004000||Viu
9726 USE_LOCALE_CTYPE|5.004000||Viu
9727 USE_LOCALE_IDENTIFICATION|5.027009||Viu
9728 USE_LOCALE_MEASUREMENT|5.027009||Viu
9729 USE_LOCALE_MESSAGES|5.019002||Viu
9730 USE_LOCALE_MONETARY|5.019002||Viu
9731 USE_LOCALE_NUMERIC|5.004000||Viu
9732 USE_LOCALE_PAPER|5.027009||Viu
9733 USE_LOCALE_SYNTAX|5.033001||Viu
9734 USE_LOCALE_TELEPHONE|5.027009||Viu
9735 USE_LOCALE_TIME|5.021002||Viu
9736 USE_LOCALE_TOD|5.033001||Viu
9737 USEMYBINMODE|5.006000||Viu
9738 USE_NETENT_BUFFER|5.008000||Viu
9739 USE_NETENT_ERRNO|5.008000||Viu
9740 USE_NETENT_PTR|5.008000||Viu
9741 USE_PERL_ATOF|5.008000||Viu
9742 USE_PERLIO|5.007001|5.007001|Vn
9743 USE_PERL_PERTURB_KEYS|5.018000||Viu
9744 USE_POSIX_2008_LOCALE|5.027003||Viu
9745 USE_PROTOENT_BUFFER|5.008000||Viu
9746 USE_PROTOENT_PTR|5.008000||Viu
9747 USE_PWENT_BUFFER|5.008000||Viu
9748 USE_PWENT_FPTR|5.008000||Viu
9749 USE_PWENT_PTR|5.008000||Viu
9750 USE_REENTRANT_API|5.007003||Viu
9751 USER_PROP_MUTEX_INIT|5.029008||Viu
9752 USER_PROP_MUTEX_LOCK|5.029008||Viu
9753 USER_PROP_MUTEX_TERM|5.029008||Viu
9754 USER_PROP_MUTEX_UNLOCK|5.029008||Viu
9755 USE_SEMCTL_SEMID_DS|5.004005|5.004005|Vn
9756 USE_SEMCTL_SEMUN|5.004005|5.004005|Vn
9757 USE_SERVENT_BUFFER|5.008000||Viu
9758 USE_SERVENT_PTR|5.008000||Viu
9759 USE_SPENT_BUFFER|5.031011||Viu
9760 USE_SPENT_PTR|5.008000||Viu
9761 USE_STAT_BLOCKS|5.005003|5.005003|Vn
9762 USE_STAT_RDEV|5.003007||Viu
9763 USE_STDIO|5.003007||Viu
9764 USE_STDIO_BASE|5.006000|5.006000|Vn
9765 USE_STDIO_PTR|5.006000|5.006000|Vn
9766 USE_SYSTEM_GMTIME|5.011000||Viu
9767 USE_SYSTEM_LOCALTIME|5.011000||Viu
9768 USE_THREADS|5.006000|5.006000|Vn
9769 USE_THREAD_SAFE_LOCALE|5.025004||Viu
9770 USE_TM64|5.011000||Viu
9771 USE_UTF8_IN_NAMES|5.007003||Viu
32469772 utf16_textfilter|5.011001||Viu
32479773 utf16_to_utf8|5.006000||cViu
32489774 utf16_to_utf8_reversed|5.006000||cViu
9775 UTF8_ACCUMULATE|5.007001||Viu
9776 UTF8_ALLOW_ANY|5.007001||Viu
9777 UTF8_ALLOW_ANYUV|5.007001||Viu
9778 UTF8_ALLOW_CONTINUATION|5.007001||Viu
9779 UTF8_ALLOW_DEFAULT|5.009004||Viu
9780 UTF8_ALLOW_EMPTY|5.007001||Viu
9781 UTF8_ALLOW_FE_FF|5.027009||Viu
9782 UTF8_ALLOW_FFFF|5.007001||Viu
9783 UTF8_ALLOW_LONG|5.007001||Viu
9784 UTF8_ALLOW_LONG_AND_ITS_VALUE|5.025009||Viu
9785 UTF8_ALLOW_NON_CONTINUATION|5.007001||Viu
9786 UTF8_ALLOW_OVERFLOW|5.025009||Viu
9787 UTF8_ALLOW_SHORT|5.007001||Viu
9788 UTF8_ALLOW_SURROGATE|5.007001||Viu
32499789 UTF8_CHECK_ONLY|5.007001|5.007001|
32509790 UTF8_CHK_SKIP|5.031006|5.006000|p
9791 UTF8_DISALLOW_ABOVE_31_BIT|5.023006||Viu
9792 UTF8_DISALLOW_FE_FF|5.013009||Viu
32519793 UTF8_DISALLOW_ILLEGAL_C9_INTERCHANGE|5.025005|5.025005|
32529794 UTF8_DISALLOW_ILLEGAL_INTERCHANGE|5.013009|5.013009|
32539795 UTF8_DISALLOW_NONCHAR|5.013009|5.013009|
32559797 UTF8_DISALLOW_SUPER|5.013009|5.013009|
32569798 UTF8_DISALLOW_SURROGATE|5.013009|5.013009|
32579799 utf8_distance|5.006000|5.006000|
9800 UTF8_EIGHT_BIT_HI|5.007001||Viu
9801 UTF8_EIGHT_BIT_LO|5.007001||Viu
32589802 UTF8f|5.019001|5.003007|p
32599803 UTF8fARG|5.019002|5.003007|p
9804 UTF8_GOT_ABOVE_31_BIT|5.025006||Viu
9805 UTF8_GOT_CONTINUATION|5.025006|5.025006|
9806 UTF8_GOT_EMPTY|5.025006|5.025006|
9807 UTF8_GOT_LONG|5.025006|5.025006|
9808 UTF8_GOT_NONCHAR|5.025006|5.025006|
9809 UTF8_GOT_NON_CONTINUATION|5.025006|5.025006|
9810 UTF8_GOT_OVERFLOW|5.025006|5.025006|
9811 UTF8_GOT_PERL_EXTENDED|5.027002|5.027002|
9812 UTF8_GOT_SHORT|5.025006|5.025006|
9813 UTF8_GOT_SUPER|5.025006|5.025006|
9814 UTF8_GOT_SURROGATE|5.025006|5.025006|
32609815 utf8_hop|5.006000|5.006000|n
32619816 utf8_hop_back|5.025007|5.025007|n
32629817 utf8_hop_forward|5.025007|5.025007|n
32639818 utf8_hop_safe|5.025007|5.025007|n
9819 UTF8_IS_ABOVE_LATIN1|5.017004||Viu
9820 UTF8_IS_ABOVE_LATIN1_START|5.023003||Viu
9821 UTF8_IS_CONTINUATION|5.007001||Viu
9822 UTF8_IS_CONTINUED|5.007001||Viu
9823 UTF8_IS_DOWNGRADEABLE_START|5.007001||Viu
32649824 UTF8_IS_INVARIANT|5.007001|5.003007|p
9825 UTF8_IS_NEXT_CHAR_DOWNGRADEABLE|5.017006||Viu
32659826 UTF8_IS_NONCHAR|5.023002|5.023002|
9827 UTF8_IS_NONCHAR_GIVEN_THAT_NON_SUPER_AND_GE_PROBLEMATIC|5.013009||Viu
9828 UTF8_IS_REPLACEMENT|5.017000||Viu
9829 UTF8_IS_START|5.007001||Viu
9830 UTF8_IS_START_base|5.031007||Viu
32669831 UTF8_IS_SUPER|5.023002|5.023002|
32679832 UTF8_IS_SURROGATE|5.023002|5.023002|
32689833 utf8_length|5.007001|5.007001|
32699834 UTF8_MAXBYTES|5.009002|5.006000|p
32709835 UTF8_MAXBYTES_CASE|5.009002|5.003007|p
9836 UTF8_MAX_FOLD_CHAR_EXPAND|5.013009||Viu
9837 UTF8_MAXLEN|5.006000||Viu
32719838 utf8_mg_len_cache_update|5.013003||Viu
32729839 utf8_mg_pos_cache_update|5.009004||Viu
32739840 utf8n_to_uvchr|5.007001|5.007001|n
32749841 utf8n_to_uvchr_error|5.025006|5.025006|n
3275 utf8n_to_uvchr_msgs|5.027009|5.027009|nx
3276 _utf8n_to_uvchr_msgs_helper|5.029001||ncVu
3277 utf8n_to_uvuni|5.007001||cV
9842 utf8n_to_uvchr_msgs|5.027009|5.027009|n
9843 _utf8n_to_uvchr_msgs_helper|5.029001||cVnu
9844 utf8n_to_uvuni|5.007001||dcV
32789845 UTF8_SAFE_SKIP|5.029009|5.006000|p
32799846 UTF8SKIP|5.006000|5.006000|
32809847 UTF8_SKIP|5.023002|5.006000|p
32849851 utf8_to_uvchr_buf_helper|5.031004||cVu
32859852 utf8_to_uvuni|5.007001||dcV
32869853 utf8_to_uvuni_buf|5.015009||dcV
9854 UTF8_TWO_BYTE_HI|5.011002||Viu
9855 UTF8_TWO_BYTE_HI_nocast|5.011002||Viu
9856 UTF8_TWO_BYTE_LO|5.011002||Viu
9857 UTF8_TWO_BYTE_LO_nocast|5.011002||Viu
9858 UTF8_WARN_ABOVE_31_BIT|5.023006||Viu
9859 UTF8_WARN_FE_FF|5.013009||Viu
32879860 UTF8_WARN_ILLEGAL_C9_INTERCHANGE|5.025005|5.025005|
32889861 UTF8_WARN_ILLEGAL_INTERCHANGE|5.013009|5.013009|
32899862 UTF8_WARN_NONCHAR|5.013009|5.013009|
32909863 UTF8_WARN_PERL_EXTENDED|5.027002|5.027002|
32919864 UTF8_WARN_SUPER|5.013009|5.013009|
32929865 UTF8_WARN_SURROGATE|5.013009|5.013009|
9866 UTF_ACCUMULATION_SHIFT|5.007001||Viu
9867 UTF_CONTINUATION_MARK|5.007001||Viu
9868 UTF_CONTINUATION_MASK|5.007001||Viu
9869 UTF_IS_CONTINUATION_MASK|5.023006||Viu
9870 UTF_MIN_ABOVE_LATIN1_BYTE|5.031006||Viu
9871 UTF_MIN_START_BYTE|5.031006||Viu
9872 UTF_START_MARK|5.007001||Viu
9873 UTF_START_MASK|5.007001||Viu
9874 UTF_TO_NATIVE|5.007001||Viu
32939875 utilize|5.003007||Viu
9876 utime|5.005000||Viu
9877 U_V|5.006000|5.003007|
32949878 UVCHR_IS_INVARIANT|5.019004|5.003007|p
32959879 UVCHR_SKIP|5.022000|5.003007|p
32969880 uvchr_to_utf8|5.007001|5.007001|
32979881 uvchr_to_utf8_flags|5.007003|5.007003|
3298 uvchr_to_utf8_flags_msgs|5.027009|5.027009|x
3299 UVof|5.006000|5.003007|p
3300 uvoffuni_to_utf8_flags|||c
9882 uvchr_to_utf8_flags_msgs|5.027009|5.027009|
9883 UV_DIG|5.006000||Viu
9884 UVf|5.010000|5.010000|d
9885 UV_IS_QUAD|5.006000||Viu
9886 UV_MAX|5.003007|5.003007|
9887 UV_MAX_P1|5.007002||Viu
9888 UV_MAX_P1_HALF|5.007002||Viu
9889 UV_MIN|5.003007|5.003007|
9890 UVof|5.006000|5.003007|poVn
9891 uvoffuni_to_utf8_flags|5.027009||cV
33019892 uvoffuni_to_utf8_flags_msgs|5.027009||cVu
3302 UVSIZE|5.006000|5.003007|p
3303 UVTYPE|5.006000|5.003007|p
3304 UVuf|5.006000|5.003007|p
9893 UVSIZE|5.006000|5.003007|poVn
9894 UVTYPE|5.006000|5.003007|poVn
9895 UVuf|5.006000|5.003007|poVn
33059896 uvuni_to_utf8|5.019004||cVu
3306 uvuni_to_utf8_flags|5.007003||cV
3307 UVxf|5.006000|5.003007|p
3308 UVXf|5.007001|5.007001|p
9897 uvuni_to_utf8_flags|5.007003||dcV
9898 UVxf|5.006000|5.003007|poVn
9899 UVXf|5.007001|5.007001|poVn
9900 VAL_EAGAIN|5.003007|5.003007|Vn
33099901 validate_proto|5.019002||xcVi
33109902 validate_suid|||iu
3311 valid_utf8_to_uvchr|5.015009||ncV
9903 valid_utf8_to_uvchr|5.015009||cVn
33129904 valid_utf8_to_uvuni|5.015009||dcVu
3313 variant_byte_number|5.031004||ncVu
3314 variant_under_utf8_count|5.027007||nVi
9905 VAL_O_NONBLOCK|5.003007|5.003007|Vn
9906 variant_byte_number|5.031004||cVnu
9907 variant_under_utf8_count|5.027007||Vni
33159908 varname|5.009003||Viu
33169909 vcmp|5.009000|5.009000|
9910 VCMP|5.019008||Viu
33179911 vcroak|5.006000|5.006000|
33189912 vdeb|5.007003|5.007003|u
3319 vform|5.006000|5.006000|u
9913 VERB|5.009005||Viu
9914 VERB_t8_p8|5.033003||Viu
9915 VERB_t8_pb|5.033003||Viu
9916 VERB_tb_p8|5.033003||Viu
9917 VERB_tb_pb|5.033003||Viu
9918 vform|5.006000|5.006000|
9919 vfprintf|5.003007||Viu
33209920 visit|5.005000||Viu
33219921 vivify_defelem|5.004000||cViu
33229922 vivify_ref|5.004000||Viu
3323 vload_module|5.006000|5.003007|pu
9923 vload_module|5.006000|5.003007|p
33249924 vmess|5.006000|5.004000|p
3325 vnewSVpvf|5.006000|5.004000|pu
9925 vnewSVpvf|5.006000|5.004000|p
33269926 vnormal|5.009002|5.009002|
9927 VNORMAL|5.019008||Viu
33279928 vnumify|5.009000|5.009000|
9929 VNUMIFY|5.019008||Viu
9930 voidnonfinal|||iu
9931 VOL|5.003007||Viu
33289932 vstringify|5.009000|5.009000|
9933 VSTRINGIFY|5.019008||Viu
9934 VTBL_amagic|5.005003||Viu
9935 VTBL_amagicelem|5.005003||Viu
9936 VTBL_arylen|5.005003||Viu
9937 VTBL_bm|5.005003||Viu
9938 VTBL_collxfrm|5.005003||Viu
9939 VTBL_dbline|5.005003||Viu
9940 VTBL_defelem|5.005003||Viu
9941 VTBL_env|5.005003||Viu
9942 VTBL_envelem|5.005003||Viu
9943 VTBL_fm|5.005003||Viu
9944 VTBL_glob|5.005003||Viu
9945 VTBL_isa|5.005003||Viu
9946 VTBL_isaelem|5.005003||Viu
9947 VTBL_mglob|5.005003||Viu
9948 VTBL_nkeys|5.005003||Viu
9949 VTBL_pack|5.005003||Viu
9950 VTBL_packelem|5.005003||Viu
9951 VTBL_pos|5.005003||Viu
9952 VTBL_regdata|5.006000||Viu
9953 VTBL_regdatum|5.006000||Viu
9954 VTBL_regexp|5.005003||Viu
9955 VTBL_sigelem|5.005003||Viu
9956 VTBL_substr|5.005003||Viu
9957 VTBL_sv|5.005003||Viu
9958 VTBL_taint|5.005003||Viu
9959 VTBL_uvar|5.005003||Viu
9960 VTBL_vec|5.005003||Viu
9961 vTHX|5.006000||Viu
9962 VT_NATIVE|5.021004||Viu
9963 vtohl|5.003007||Viu
9964 vtohs|5.003007||Viu
9965 VUTIL_REPLACE_CORE|5.019008||Viu
33299966 vverify|5.009003|5.009003|
9967 VVERIFY|5.019008||Viu
33309968 vwarn|5.006000|5.006000|
3331 vwarner|5.006000|5.006000|u
9969 vwarner|5.006000|5.004000|p
33329970 wait4pid|5.003007||Viu
9971 wait|5.005000||Viu
9972 want_vtbl_bm|5.015000||Viu
9973 want_vtbl_fm|5.015000||Viu
33339974 warn|5.006000|5.003007|v
33349975 WARN_ALL|5.006000|5.003007|p
9976 WARN_ALLstring|5.006000||Viu
33359977 WARN_AMBIGUOUS|5.006000|5.003007|p
3336 WARN_ASSERTIONS||5.003007|pou
9978 WARN_ASSERTIONS||5.003007|ponu
33379979 WARN_BAREWORD|5.006000|5.003007|p
33389980 WARN_CLOSED|5.006000|5.003007|p
33399981 WARN_CLOSURE|5.006000|5.003007|p
33409982 WARN_DEBUGGING|5.006000|5.003007|p
33419983 WARN_DEPRECATED|5.006000|5.003007|p
33429984 WARN_DIGIT|5.006000|5.003007|p
3343 warner|5.006000|5.004000|pvu
3344 warner_nocontext|5.006000||vnVu
9985 warner|5.006000|5.004000|pv
9986 warner_nocontext|5.006000||vVn
33459987 WARN_EXEC|5.006000|5.003007|p
33469988 WARN_EXITING|5.006000|5.003007|p
33479989 WARN_EXPERIMENTAL|5.017004|5.017004|
33499991 WARN_EXPERIMENTAL__BITWISE|5.021009|5.021009|
33509992 WARN_EXPERIMENTAL__CONST_ATTR|5.021008|5.021008|
33519993 WARN_EXPERIMENTAL__DECLARED_REFS|5.025003|5.025003|
3352 WARN_EXPERIMENTAL__ISA|||
9994 WARN_EXPERIMENTAL__ISA|5.031007|5.031007|
33539995 WARN_EXPERIMENTAL__LEXICAL_SUBS|5.017005|5.017005|
33549996 WARN_EXPERIMENTAL__POSTDEREF|5.019005|5.019005|
33559997 WARN_EXPERIMENTAL__PRIVATE_USE|5.029009|5.029009|
335910001 WARN_EXPERIMENTAL__SCRIPT_RUN|5.027008|5.027008|
336010002 WARN_EXPERIMENTAL__SIGNATURES|5.019009|5.019009|
336110003 WARN_EXPERIMENTAL__SMARTMATCH|5.017011|5.017011|
10004 WARN_EXPERIMENTAL__TRY|5.033007|5.033007|
336210005 WARN_EXPERIMENTAL__UNIPROP_WILDCARDS|5.029009|5.029009|
336310006 WARN_EXPERIMENTAL__VLB|5.029009|5.029009|
336410007 WARN_EXPERIMENTAL__WIN32_PERLIO|5.021001|5.021001|
337410017 WARN_MISC|5.006000|5.003007|p
337510018 WARN_MISSING|5.021002|5.021002|
337610019 WARN_NEWLINE|5.006000|5.003007|p
3377 warn_nocontext|5.006000||pvnVu
10020 warn_nocontext|5.006000||pvVn
337810021 WARN_NONCHAR|5.013010|5.013010|
10022 WARN_NONEstring|5.006000||Viu
337910023 WARN_NON_UNICODE|5.013010|5.013010|
338010024 WARN_NUMERIC|5.006000|5.003007|p
338110025 WARN_ONCE|5.006000|5.003007|p
338710031 WARN_PORTABLE|5.006000|5.003007|p
338810032 WARN_PRECEDENCE|5.006000|5.003007|p
338910033 WARN_PRINTF|5.006000|5.003007|p
3390 _warn_problematic_locale|5.021008||ncViu
10034 _warn_problematic_locale|5.021008||cVniu
339110035 WARN_PROTOTYPE|5.006000|5.003007|p
339210036 WARN_QW|5.006000|5.003007|p
339310037 WARN_RECURSION|5.006000|5.003007|p
339810042 WARN_SEMICOLON|5.006000|5.003007|p
339910043 WARN_SEVERE|5.006000|5.003007|p
340010044 WARN_SHADOW|5.027007|5.027007|
10045 WARNshift|5.011001||Viu
340110046 WARN_SIGNAL|5.006000|5.003007|p
10047 WARNsize|5.006000||Viu
340210048 WARN_SUBSTR|5.006000|5.003007|p
340310049 WARN_SURROGATE|5.013010|5.013010|
340410050 warn_sv|5.013001|5.003007|p
341410060 WARN_VOID|5.006000|5.003007|p
341510061 was_lvalue_sub|||ciu
341610062 watch|5.003007||Viu
3417 whichsig|5.003007|5.003007|u
3418 whichsig_pv|5.015004|5.015004|u
3419 whichsig_pvn|5.015004|5.015004|u
3420 whichsig_sv|5.015004|5.015004|u
3421 WIDEST_UTYPE|5.015004|5.003007|p
3422 win32_croak_not_implemented|5.017006||nViu
10063 WB_BREAKABLE|5.023008||Viu
10064 WB_DQ_then_HL|5.023008||Viu
10065 WB_Ex_or_FO_or_ZWJ_then_foo|5.025003||Viu
10066 WB_HL_then_DQ|5.023008||Viu
10067 WB_hs_then_hs|5.023008||Viu
10068 WB_LE_or_HL_then_MB_or_ML_or_SQ|5.023008||Viu
10069 WB_MB_or_ML_or_SQ_then_LE_or_HL|5.023008||Viu
10070 WB_MB_or_MN_or_SQ_then_NU|5.023008||Viu
10071 WB_NOBREAK|5.023008||Viu
10072 WB_NU_then_MB_or_MN_or_SQ|5.023008||Viu
10073 WB_RI_then_RI|5.025003||Viu
10074 WCTOMB_LOCK|5.033005||Viu
10075 WCTOMB_UNLOCK|5.033005||Viu
10076 WEXITSTATUS|5.008001||Viu
10077 what_MULTI_CHAR_FOLD_latin1_safe|5.033005||Viu
10078 what_MULTI_CHAR_FOLD_utf8_safe|5.033005||Viu
10079 what_MULTI_CHAR_FOLD_utf8_safe_part0|5.033005||Viu
10080 what_MULTI_CHAR_FOLD_utf8_safe_part1|5.033005||Viu
10081 what_MULTI_CHAR_FOLD_utf8_safe_part2|5.033005||Viu
10082 what_MULTI_CHAR_FOLD_utf8_safe_part3|5.033005||Viu
10083 what_MULTI_CHAR_FOLD_utf8_safe_part4|5.033005||Viu
10084 what_MULTI_CHAR_FOLD_utf8_safe_part5|5.033005||Viu
10085 what_MULTI_CHAR_FOLD_utf8_safe_part6|5.033005||Viu
10086 what_MULTI_CHAR_FOLD_utf8_safe_part7|5.033005||Viu
10087 whichsig|5.003007|5.003007|
10088 whichsig_pv|5.015004|5.015004|
10089 whichsig_pvn|5.015004|5.015004|
10090 whichsig_sv|5.015004|5.015004|
10091 WHILEM|5.003007||Viu
10092 WHILEM_A_max|5.009005||Viu
10093 WHILEM_A_max_fail|5.009005||Viu
10094 WHILEM_A_max_fail_t8_p8|5.033003||Viu
10095 WHILEM_A_max_fail_t8_pb|5.033003||Viu
10096 WHILEM_A_max_fail_tb_p8|5.033003||Viu
10097 WHILEM_A_max_fail_tb_pb|5.033003||Viu
10098 WHILEM_A_max_t8_p8|5.033003||Viu
10099 WHILEM_A_max_t8_pb|5.033003||Viu
10100 WHILEM_A_max_tb_p8|5.033003||Viu
10101 WHILEM_A_max_tb_pb|5.033003||Viu
10102 WHILEM_A_min|5.009005||Viu
10103 WHILEM_A_min_fail|5.009005||Viu
10104 WHILEM_A_min_fail_t8_p8|5.033003||Viu
10105 WHILEM_A_min_fail_t8_pb|5.033003||Viu
10106 WHILEM_A_min_fail_tb_p8|5.033003||Viu
10107 WHILEM_A_min_fail_tb_pb|5.033003||Viu
10108 WHILEM_A_min_t8_p8|5.033003||Viu
10109 WHILEM_A_min_t8_pb|5.033003||Viu
10110 WHILEM_A_min_tb_p8|5.033003||Viu
10111 WHILEM_A_min_tb_pb|5.033003||Viu
10112 WHILEM_A_pre|5.009005||Viu
10113 WHILEM_A_pre_fail|5.009005||Viu
10114 WHILEM_A_pre_fail_t8_p8|5.033003||Viu
10115 WHILEM_A_pre_fail_t8_pb|5.033003||Viu
10116 WHILEM_A_pre_fail_tb_p8|5.033003||Viu
10117 WHILEM_A_pre_fail_tb_pb|5.033003||Viu
10118 WHILEM_A_pre_t8_p8|5.033003||Viu
10119 WHILEM_A_pre_t8_pb|5.033003||Viu
10120 WHILEM_A_pre_tb_p8|5.033003||Viu
10121 WHILEM_A_pre_tb_pb|5.033003||Viu
10122 WHILEM_B_max|5.009005||Viu
10123 WHILEM_B_max_fail|5.009005||Viu
10124 WHILEM_B_max_fail_t8_p8|5.033003||Viu
10125 WHILEM_B_max_fail_t8_pb|5.033003||Viu
10126 WHILEM_B_max_fail_tb_p8|5.033003||Viu
10127 WHILEM_B_max_fail_tb_pb|5.033003||Viu
10128 WHILEM_B_max_t8_p8|5.033003||Viu
10129 WHILEM_B_max_t8_pb|5.033003||Viu
10130 WHILEM_B_max_tb_p8|5.033003||Viu
10131 WHILEM_B_max_tb_pb|5.033003||Viu
10132 WHILEM_B_min|5.009005||Viu
10133 WHILEM_B_min_fail|5.009005||Viu
10134 WHILEM_B_min_fail_t8_p8|5.033003||Viu
10135 WHILEM_B_min_fail_t8_pb|5.033003||Viu
10136 WHILEM_B_min_fail_tb_p8|5.033003||Viu
10137 WHILEM_B_min_fail_tb_pb|5.033003||Viu
10138 WHILEM_B_min_t8_p8|5.033003||Viu
10139 WHILEM_B_min_t8_pb|5.033003||Viu
10140 WHILEM_B_min_tb_p8|5.033003||Viu
10141 WHILEM_B_min_tb_pb|5.033003||Viu
10142 WHILEM_t8_p8|5.033003||Viu
10143 WHILEM_t8_pb|5.033003||Viu
10144 WHILEM_tb_p8|5.033003||Viu
10145 WHILEM_tb_pb|5.033003||Viu
10146 WIDEST_UTYPE|5.015004|5.003007|poVnu
10147 WIFEXITED|5.008001||Viu
10148 WIFSIGNALED|5.008001||Viu
10149 WIFSTOPPED|5.008001||Viu
10150 win32_croak_not_implemented|5.017006||Vniu
10151 WIN32SCK_IS_STDSCK|5.007001||Viu
342310152 win32_setlocale|5.027006||Viu
10153 withinCOUNT|5.031004||Viu
10154 withinCOUNT_KNOWN_VALID|5.033005||Viu
342410155 WITH_LC_NUMERIC_SET_TO_NEEDED|5.031003|5.031003|
342510156 WITH_LC_NUMERIC_SET_TO_NEEDED_IN|5.031003|5.031003|
342610157 with_queued_errors|5.013001||Viu
10158 with_tp_UTF8ness|5.033003||Viu
10159 WNOHANG|5.008001||Viu
342710160 wrap_keyword_plugin|5.027006|5.027006|x
342810161 wrap_op_checker|5.015008|5.015008|
10162 write|5.005000||Viu
342910163 write_to_stderr|5.008001||Viu
10164 WSTOPSIG|5.008001||Viu
10165 WTERMSIG|5.008001||Viu
10166 WUNTRACED|5.008001||Viu
343010167 XCPT_CATCH|5.009002|5.003007|p
343110168 XCPT_RETHROW|5.009002|5.003007|p
343210169 XCPT_TRY_END|5.009002|5.003007|p
343310170 XCPT_TRY_START|5.009002|5.003007|p
10171 XDIGIT_VALUE|5.019008||Viu
10172 XHvTOTALKEYS|5.007003||Viu
10173 xio_any|5.006001||Viu
10174 xio_dirp|5.006001||Viu
10175 xiv_iv|5.009003||Viu
10176 xlv_targoff|5.019004||Viu
343410177 XopDISABLE|5.013007|5.013007|V
10178 XOPd_xop_class|5.013007||Viu
10179 XOPd_xop_desc|5.013007||Viu
10180 XOPd_xop_name|5.013007||Viu
10181 XOPd_xop_peep|5.013007||Viu
343510182 XopENABLE|5.013007|5.013007|V
343610183 XopENTRY|5.013007|5.013007|V
343710184 XopENTRYCUSTOM|5.019006|5.013007|V
343810185 XopENTRY_set|5.013007|5.013007|V
343910186 XopFLAGS|5.013007|5.013007|
10187 XOPf_xop_class|5.013007||Viu
10188 XOPf_xop_desc|5.013007||Viu
10189 XOPf_xop_name|5.013007||Viu
10190 XOPf_xop_peep|5.013007||Viu
10191 XORSHIFT128_set|5.027001||Viu
10192 XORSHIFT96_set|5.027001||Viu
344010193 XPUSHi|5.003007|5.003007|
344110194 XPUSHmortal|5.009002|5.003007|p
344210195 XPUSHn|5.006000|5.003007|
344310196 XPUSHp|5.003007|5.003007|
344410197 XPUSHs|5.003007|5.003007|
10198 XPUSHTARG|5.003007||Viu
344510199 XPUSHu|5.004000|5.003007|p
3446 XS|5.003007|5.003007|V
10200 XPUSHundef|5.006000||Viu
10201 xpv_len|5.017006||Viu
10202 XS|5.003007|5.003007|Vu
10203 XSANY|5.003007||Viu
344710204 XS_APIVERSION_BOOTCHECK|5.013004|5.013004|
10205 XS_APIVERSION_POPMARK_BOOTCHECK|5.021006||Viu
10206 XS_APIVERSION_SETXSUBFN_POPMARK_BOOTCHECK|5.021006||Viu
344810207 xs_boot_epilog|5.021006||cViu
3449 XS_EXTERNAL|5.015002|5.015002|V
3450 xs_handshake|||vnciu
3451 XS_INTERNAL|5.015002|5.015002|V
3452 XSprePUSH|5.006000|5.003007|poVu
3453 XSPROTO|5.010000||pVu
10208 XS_BOTHVERSION_BOOTCHECK|5.021006||Viu
10209 XS_BOTHVERSION_POPMARK_BOOTCHECK|5.021006||Viu
10210 XS_BOTHVERSION_SETXSUBFN_POPMARK_BOOTCHECK|5.021006||Viu
10211 XS_DYNAMIC_FILENAME|5.009004||Viu
10212 XS_EXTERNAL|5.015002|5.015002|Vu
10213 xs_handshake|||vcniu
10214 XSINTERFACE_CVT|5.005000||Viu
10215 XSINTERFACE_CVT_ANON|5.010000||Viu
10216 XSINTERFACE_FUNC|5.005000||Viu
10217 XSINTERFACE_FUNC_SET|5.005000||Viu
10218 XS_INTERNAL|5.015002|5.015002|Vu
10219 XSprePUSH|5.006000|5.003007|poVnu
10220 XSPROTO|5.010000|5.003007|pVu
345410221 XSRETURN|5.003007|5.003007|p
345510222 XSRETURN_EMPTY|5.003007|5.003007|
345610223 XSRETURN_IV|5.003007|5.003007|
345710224 XSRETURN_NO|5.003007|5.003007|
345810225 XSRETURN_NV|5.006000|5.003007|
345910226 XSRETURN_PV|5.003007|5.003007|
10227 XSRETURN_PVN|5.006000||Viu
346010228 XSRETURN_UNDEF|5.003007|5.003007|
346110229 XSRETURN_UV|5.008001|5.003007|p
346210230 XSRETURN_YES|5.003007|5.003007|
10231 XS_SETXSUBFN_POPMARK|5.021006||Viu
346310232 XST_mIV|5.003007|5.003007|
346410233 XST_mNO|5.003007|5.003007|
346510234 XST_mNV|5.006000|5.003007|
346610235 XST_mPV|5.003007|5.003007|
10236 XST_mPVN|5.006000||Viu
346710237 XST_mUNDEF|5.003007|5.003007|
346810238 XST_mUV|5.008001|5.003007|p
346910239 XST_mYES|5.003007|5.003007|
347010240 XS_VERSION|5.003007|5.003007|
347110241 XS_VERSION_BOOTCHECK|5.003007|5.003007|
347210242 xs_version_bootcheck|||iu
10243 XTENDED_PAT_MOD|5.009005||Viu
10244 xuv_uv|5.009003||Viu
10245 YESEXPR|5.027010||Viu
10246 YESSTR|5.027010||Viu
10247 YIELD|5.005000||Viu
10248 YYDEBUG|5.025006||Viu
10249 YYEMPTY|5.009005||Viu
347310250 yyerror|5.003007||Viu
347410251 yyerror_pv|5.016000||Viu
347510252 yyerror_pvn|5.016000||Viu
347610253 yylex|5.003007||cViu
347710254 yyparse|5.003007||Viu
347810255 yyquit|5.025010||Viu
10256 YYSTYPE_IS_DECLARED|5.009001||Viu
10257 YYSTYPE_IS_TRIVIAL|5.009001||Viu
10258 YYTOKENTYPE|5.009001||Viu
347910259 yyunlex|5.013005||Viu
348010260 yywarn|5.003007||Viu
10261 ZAPHOD32_FINALIZE|5.027001||Viu
10262 ZAPHOD32_MIX|5.027001||Viu
10263 ZAPHOD32_SCRAMBLE32|5.027001||Viu
10264 ZAPHOD32_STATIC_INLINE|5.027001||Viu
10265 ZAPHOD32_WARN2|5.027001||Viu
10266 ZAPHOD32_WARN3|5.027001||Viu
10267 ZAPHOD32_WARN4|5.027001||Viu
10268 ZAPHOD32_WARN5|5.027001||Viu
10269 ZAPHOD32_WARN6|5.027001||Viu
348110270 Zero|5.003007|5.003007|
348210271 ZeroD|5.009002|5.003007|p
348310272 );
349110280 next if $API{$f}{experimental};
349210281 next unless $API{$f}{todo};
349310282 next if int_parse_version($API{$f}{todo}) <= $int_min_perl;
3494 print "$f ", '.'x(40-length($f)), " ", format_version($API{$f}{todo}), "\n";
10283 my $repeat = 40 - length($f);
10284 $repeat = 0 if $repeat < 0;
10285 print "$f ", '.'x $repeat, " ", format_version($API{$f}{todo}), "\n";
349510286 }
349610287 exit 0;
349710288 }
360310394
360410395 # Set $replace to the number given for lines that look like
360510396 # / * Replace: \d+ * /
3606 # (blanks added to keep real C comments from appearing in this file)
360710397 # Thus setting it to 1 starts a region where replacements are automatically
360810398 # done, and setting it to 0 ends that region.
360910399 $replace = $1 if m{^\s*$rccs\s+Replace:\s+(\d+)\s+$rcce\s*$};
361310403 $replace{$2} = $1 if $replace and m{^\s*#\s*define\s+(\w+)(?:\([^)]*\))?\s+(\w+)};
361410404
361510405 # Add bar => foo to %replace for lines like '#define foo bar / * Replace * /
3616 # (blanks added to keep real C comments from appearing in this file)
361710406 $replace{$2} = $1 if m{^\s*#\s*define\s+(\w+)(?:\([^)]*\))?\s+(\w+).*$rccs\s+Replace\s+$rcce};
361810407
361910408 # Add foo => bar to %replace for lines like / * Replace foo with bar * /
3620 # (blanks added to keep real C comments from appearing in this file)
3621 $replace{$1} = $2 if m{^\s*$rccs\s+Replace (\w+) with (\w+)\s+$rcce\s*$};
10409 $replace{$1} = $2 if m{^\s*$rccs\s+Replace (\w+) with (\w+.*?)\s+$rcce\s*$};
362210410
362310411 # For lines like / * foo, bar depends on baz, bat * /
362410412 # create a list of the elements on the rhs, and make that list apply to each
362510413 # element in the lhs, which becomes a key in \%depends.
3626 # (blanks added to keep real C comments from appearing in this file)
362710414 if (m{^\s*$rccs\s+(\w+(\s*,\s*\w+)*)\s+depends\s+on\s+(\w+(\s*,\s*\w+)*)\s+$rcce\s*$}) {
362810415 my @deps = map { s/\s+//g; $_ } split /,/, $3;
362910416 my $d;
364410431 my $f;
364510432 my $count = 0;
364610433 my $match = $opt{'api-info'} =~ m!^/(.*)/$! ? $1 : "^\Q$opt{'api-info'}\E\$";
10434
10435 # Sort the names, and split into two classes; one for things that are part of
10436 # the API; a second for things that aren't.
10437 my @ok_to_use;
10438 my @shouldnt_use;
364710439 for $f (sort dictionary_order keys %API) {
364810440 next unless $f =~ /$match/;
10441 my $base = int_parse_version($API{$f}{base}) if $API{$f}{base};
10442 if ($base && ! $API{$f}{inaccessible} && ! $API{$f}{core_only}) {
10443 push @ok_to_use, $f;
10444 }
10445 else {
10446 push @shouldnt_use, $f;
10447 }
10448 }
10449
10450 # We normally suppress non-API items. But if the search matched no API
10451 # items, output the non-ones. This allows someone to get the info for an
10452 # item if they ask for it specifically enough, but doesn't normally clutter
10453 # the output with irrelevant results.
10454 @ok_to_use = @shouldnt_use unless @ok_to_use;
10455
10456 for $f (@ok_to_use) {
364910457 print "\n=== $f ===\n";
365010458 my $info = 0;
365110459 my $base;
365310461 my $todo;
365410462 $todo = int_parse_version($API{$f}{todo}) if $API{$f}{todo};
365510463
3656 # Output information if it is generally publicly usable
3657 if ($base && ! $API{$f}{inaccessible} && ! $API{$f}{core_only}) {
10464 # Output information
10465 if ($base) {
365810466 my $with_or= "";
365910467 if ( $base <= $int_min_perl
366010468 || ( (! $API{$f}{provided} && ! $todo)
366210470 {
366310471 $with_or= " with or";
366410472 }
3665 print "\nSupported at least since perl-",
10473
10474 my $Supported = ($API{$f}{undocumented}) ? 'Available' : 'Supported';
10475 print "\n$Supported at least since perl-",
366610476 format_version($base), ",$with_or without $ppport.";
366710477 if ($API{$f}{unverified}) {
366810478 print "\nThis information is based on inspection of the source code",
398110791 diag("Uses $func");
398210792 }
398310793 }
3984 $warnings += hint($func);
10794 $warnings += (hint($func) || 0);
398510795 }
398610796
398710797 unless ($opt{quiet}) {
426811078 $hint =~ s/^/ /mg;
426911079 print " --- hint for $func ---\n", $hint;
427011080 }
4271 $rv;
11081 $rv || 0;
427211082 }
427311083
427411084 sub usage
434811158 #define DPPP_CAT2(x,y) CAT2(x,y)
434911159 #define DPPP_(name) DPPP_CAT2(DPPP_NAMESPACE, name)
435011160
4351 #ifndef PERL_REVISION
4352 # if !defined(__PATCHLEVEL_H_INCLUDED__) && !(defined(PATCHLEVEL) && defined(SUBVERSION))
11161 #define D_PPP_RELEASE_DATE 1625616000 /* 2021-07-07 */
11162
11163 #if ! defined(PERL_REVISION) && ! defined(PERL_VERSION_MAJOR)
11164 # if ! defined(__PATCHLEVEL_H_INCLUDED__) \
11165 && ! ( defined(PATCHLEVEL) && defined(SUBVERSION))
435311166 # define PERL_PATCHLEVEL_H_IMPLICIT
435411167 # include <patchlevel.h>
435511168 # endif
4356 # if !(defined(PERL_VERSION) || (defined(SUBVERSION) && defined(PATCHLEVEL)))
11169 # if ! defined(PERL_VERSION) \
11170 && ! defined(PERL_VERSION_MAJOR) \
11171 && ( ! defined(SUBVERSION) || ! defined(PATCHLEVEL) )
435711172 # include <could_not_find_Perl_patchlevel.h>
435811173 # endif
4359 # ifndef PERL_REVISION
4360 # define PERL_REVISION (5)
4361 /* Replace: 1 */
4362 # define PERL_VERSION PATCHLEVEL
4363 # define PERL_SUBVERSION SUBVERSION
4364 /* Replace PERL_PATCHLEVEL with PERL_VERSION */
4365 /* Replace: 0 */
11174 #endif
11175
11176 #ifdef PERL_VERSION_MAJOR
11177 # define D_PPP_MAJOR PERL_VERSION_MAJOR
11178 #elif defined(PERL_REVISION)
11179 # define D_PPP_MAJOR PERL_REVISION
11180 #else
11181 # define D_PPP_MAJOR 5
11182 #endif
11183
11184 #ifdef PERL_VERSION_MINOR
11185 # define D_PPP_MINOR PERL_VERSION_MINOR
11186 #elif defined(PERL_VERSION)
11187 # define D_PPP_MINOR PERL_VERSION
11188 #elif defined(PATCHLEVEL)
11189 # define D_PPP_MINOR PATCHLEVEL
11190 # define PERL_VERSION PATCHLEVEL /* back-compat */
11191 #else
11192 # error Could not find a source for PERL_VERSION_MINOR
11193 #endif
11194
11195 #ifdef PERL_VERSION_PATCH
11196 # define D_PPP_PATCH PERL_VERSION_PATCH
11197 #elif defined(PERL_SUBVERSION)
11198 # define D_PPP_PATCH PERL_SUBVERSION
11199 #elif defined(SUBVERSION)
11200 # define D_PPP_PATCH SUBVERSION
11201 # define PERL_SUBVERSION SUBVERSION /* back-compat */
11202 #else
11203 # error Could not find a source for PERL_VERSION_PATCH
11204 #endif
11205
11206 #if D_PPP_MAJOR < 5 || D_PPP_MAJOR == 6
11207 # error Devel::PPPort works only on Perl 5, Perl 7, ...
11208 #elif D_PPP_MAJOR != 5
11209 /* Perl 7 and above: the old forms are deprecated, set up so that they
11210 * assume Perl 5, and will make this look like 5.201.201.
11211 *
11212 * 201 is used so will be well above anything that would come from a 5
11213 * series if we unexpectedly have to continue it, but still gives plenty of
11214 * room, up to 255, of numbers that will fit into a byte in case there is
11215 * something else unforeseen */
11216 # undef PERL_REVISION
11217 # undef PERL_VERSION
11218 # undef PERL_SUBVERSION
11219 # define D_PPP_REVISION 5
11220 # define D_PPP_VERSION 201
11221 # define D_PPP_SUBVERSION 201
11222 # if (defined(__clang__) /* _Pragma here doesn't work with gcc */ \
11223 && ( (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) \
11224 || defined(_STDC_C99) \
11225 || defined(__c99)))
11226 # define D_PPP_STRINGIFY(x) #x
11227 # define D_PPP_deprecate(xyz) _Pragma(D_PPP_STRINGIFY(GCC warning(D_PPP_STRINGIFY(xyz) " is deprecated")))
11228 # define PERL_REVISION (D_PPP_REVISION D_PPP_deprecate(PERL_REVISION))
11229 # define PERL_VERSION (D_PPP_REVISION D_PPP_deprecate(PERL_VERSION))
11230 # define PERL_SUBVERSION (D_PPP_SUBVERSION D_PPP_deprecate(PERL_SUBVERSION))
11231 # else
11232 # define PERL_REVISION D_PPP_REVISION
11233 # define PERL_VERSION D_PPP_REVISION
11234 # define PERL_SUBVERSION D_PPP_SUBVERSION
436611235 # endif
436711236 #endif
436811237
11238 /* Warning: PERL_PATCHLEVEL PATCHLEVEL SUBVERSION PERL_REVISION PERL_VERSION
11239 * PERL_SUBVERSION PERL_BCDVERSION
11240 *
11241 * You should be using PERL_VERSION_xy(maj,min,ptch) instead of this, where xy
11242 * is one of EQ, NE, LE, GT, LT, GE
11243 */
11244
11245 /* Replace PERL_PATCHLEVEL with PERL_VERSION_xy(5,a,b) (where xy is EQ,LT,GT...) */
11246 /* Replace PATCHLEVEL with PERL_VERSION_xy(5,a,b) (where xy is EQ,LT,GT...) */
11247 /* Replace SUBVERSION with PERL_VERSION_xy(5,a,b) (where xy is EQ,LT,GT...) */
11248 /* Replace PERL_REVISION with PERL_VERSION_xy(a,b,c) (where xy is EQ,LT,GT...) */
11249 /* Replace PERL_VERSION with PERL_VERSION_xy(5,a,b) (where xy is EQ,LT,GT...) */
11250 /* Replace PERL_SUBVERSION with PERL_VERSION_xy(5,a,b) (where xy is EQ,LT,GT...) */
11251 /* Replace PERL_BCDVERSION with PERL_VERSION_xy(5,a,b) (where xy is EQ,LT,GT...) */
11252
436911253 #define D_PPP_DEC2BCD(dec) ((((dec)/100)<<8)|((((dec)%100)/10)<<4)|((dec)%10))
4370 #define PERL_BCDVERSION ((D_PPP_DEC2BCD(PERL_REVISION)<<24)|(D_PPP_DEC2BCD(PERL_VERSION)<<12)|D_PPP_DEC2BCD(PERL_SUBVERSION))
4371
4372 /* It is very unlikely that anyone will try to use this with Perl 6
4373 (or greater), but who knows.
4374 */
4375 #if PERL_REVISION != 5
4376 # error include/ppport.h only works with Perl version 5
4377 #endif /* PERL_REVISION != 5 */
11254 #define D_PPP_JNP_TO_BCD(j,n,p) ((D_PPP_DEC2BCD(j)<<24)|(D_PPP_DEC2BCD(n)<<12)|D_PPP_DEC2BCD(p))
11255 #define PERL_BCDVERSION D_PPP_JNP_TO_BCD(D_PPP_MAJOR, \
11256 D_PPP_MINOR, \
11257 D_PPP_PATCH)
11258
11259 /* These differ from the versions outside D:P in using PERL_BCDVERSION instead
11260 * of PERL_DECIMAL_VERSION. The formats printing in this module assume BCD, so
11261 * always use it */
11262 #undef PERL_VERSION_EQ
11263 #undef PERL_VERSION_NE
11264 #undef PERL_VERSION_LT
11265 #undef PERL_VERSION_GE
11266 #undef PERL_VERSION_LE
11267 #undef PERL_VERSION_GT
11268
11269 /* N.B. These don't work if the patch number is 42 or 92, as those are what '*'
11270 * is in ASCII and EBCDIC respectively */
11271 #ifndef PERL_VERSION_EQ
11272 # define PERL_VERSION_EQ(j,n,p) \
11273 (((p) == '*') ? ( (j) == D_PPP_VERSION_MAJOR \
11274 && (n) == D_PPP_VERSION_MINOR) \
11275 : (PERL_BCDVERSION == D_PPP_JNP_TO_BCD(j,n,p)))
11276 #endif
11277
11278 #ifndef PERL_VERSION_NE
11279 # define PERL_VERSION_NE(j,n,p) (! PERL_VERSION_EQ(j,n,p))
11280 #endif
11281 #ifndef PERL_VERSION_LT
11282 # define PERL_VERSION_LT(j,n,p) /* p=='*' means _LT(j,n,0) */ \
11283 (PERL_BCDVERSION < D_PPP_JNP_TO_BCD( (j), \
11284 (n), \
11285 (((p) == '*') ? 0 : (p))))
11286 #endif
11287
11288 #ifndef PERL_VERSION_GE
11289 # define PERL_VERSION_GE(j,n,p) (! PERL_VERSION_LT(j,n,p))
11290 #endif
11291 #ifndef PERL_VERSION_LE
11292 # define PERL_VERSION_LE(j,n,p) /* p=='*' means _LT(j,n+1,0) */ \
11293 (PERL_BCDVERSION < D_PPP_JNP_TO_BCD( (j), \
11294 (((p) == '*') ? ((n)+1) : (n)), \
11295 (((p) == '*') ? 0 : (p))))
11296 #endif
11297
11298 #ifndef PERL_VERSION_GT
11299 # define PERL_VERSION_GT(j,n,p) (! PERL_VERSION_LE(j,n,p))
11300 #endif
437811301 #ifndef dTHR
437911302 # define dTHR dNOOP
438011303 #endif
495211875 #endif
495311876 #endif
495411877
4955 /* Hint: newCONSTSUB
4956 * Returns a CV* as of perl-5.7.1. This return value is not supported
4957 * by Devel::PPPort.
4958 */
4959
496011878 /* newCONSTSUB from IO.xs is in the core starting with 5.004_63 */
496111879 #if (PERL_BCDVERSION < 0x5004063) && (PERL_BCDVERSION != 0x5004005)
496211880
496511883 #define NEED_newCONSTSUB
496611884
496711885 #if defined(NEED_newCONSTSUB)
4968 static void DPPP_(my_newCONSTSUB)(HV * stash, const char * name, SV * sv);
11886 static CV * DPPP_(my_newCONSTSUB)(HV * stash, const char * name, SV * sv);
496911887 static
497011888 #else
4971 extern void DPPP_(my_newCONSTSUB)(HV * stash, const char * name, SV * sv);
11889 extern CV * DPPP_(my_newCONSTSUB)(HV * stash, const char * name, SV * sv);
497211890 #endif
497311891
497411892 #if defined(NEED_newCONSTSUB) || defined(NEED_newCONSTSUB_GLOBAL)
498411902 /* (There's no PL_parser in perl < 5.005, so this is completely safe) */
498511903 #define D_PPP_PL_copline PL_copline
498611904
4987 void
11905 CV *
498811906 DPPP_(my_newCONSTSUB)(HV *stash, const char *name, SV *sv)
498911907 {
11908 CV *cv;
499011909 U32 oldhints = PL_hints;
499111910 HV *old_cop_stash = PL_curcop->cop_stash;
499211911 HV *old_curstash = PL_curstash;
499711916 if (stash)
499811917 PL_curstash = PL_curcop->cop_stash = stash;
499911918
5000 newSUB(
11919 cv = newSUB(
500111920
500211921 start_subparse(FALSE, 0),
500311922
501011929 PL_curcop->cop_stash = old_cop_stash;
501111930 PL_curstash = old_curstash;
501211931 PL_curcop->cop_line = oldline;
11932
11933 return cv;
501311934 }
501411935 #endif
501511936 #endif
520612127 # define __ASSERT_(statement)
520712128 #endif
520812129
12130 #endif
12131 #ifndef __has_builtin
12132 # define __has_builtin(x) 0
12133 #endif
12134
12135 #if __has_builtin(__builtin_unreachable)
12136 # define D_PPP_HAS_BUILTIN_UNREACHABLE
12137 #elif (defined(__GNUC__) && ( __GNUC__ > 4 \
12138 || __GNUC__ == 4 && __GNUC_MINOR__ >= 5))
12139 # define D_PPP_HAS_BUILTIN_UNREACHABLE
12140 #endif
12141
12142 #ifndef ASSUME
12143 # ifdef DEBUGGING
12144 # define ASSUME(x) assert(x)
12145 # elif defined(_MSC_VER)
12146 # define ASSUME(x) __assume(x)
12147 # elif defined(__ARMCC_VERSION)
12148 # define ASSUME(x) __promise(x)
12149 # elif defined(D_PPP_HAS_BUILTIN_UNREACHABLE)
12150 # define ASSUME(x) ((x) ? (void) 0 : __builtin_unreachable())
12151 # else
12152 # define ASSUME(x) assert(x)
12153 # endif
12154 #endif
12155
12156 #ifndef NOT_REACHED
12157 # ifdef D_PPP_HAS_BUILTIN_UNREACHABLE
12158 # define NOT_REACHED \
12159 STMT_START { \
12160 ASSUME(!"UNREACHABLE"); __builtin_unreachable(); \
12161 } STMT_END
12162 # elif ! defined(__GNUC__) && (defined(__sun) || defined(__hpux))
12163 # define NOT_REACHED
12164 # else
12165 # define NOT_REACHED ASSUME(!"UNREACHABLE")
12166 # endif
12167 #endif
12168
12169 #ifndef WIDEST_UTYPE
12170 # ifdef QUADKIND
12171 # ifdef U64TYPE
12172 # define WIDEST_UTYPE U64TYPE
12173 # else
12174 # define WIDEST_UTYPE unsigned Quad_t
12175 # endif
12176 # else
12177 # define WIDEST_UTYPE U32
12178 # endif
520912179 #endif
521012180
521112181 /* These could become provided if/when they become part of the public API */
521712187 #ifndef inRANGE
521812188 # define inRANGE(c, l, u) \
521912189 ( (sizeof(c) == sizeof(U8)) ? withinCOUNT(((U8) (c)), (l), ((u) - (l))) \
5220 : (sizeof(c) == sizeof(U16)) ? withinCOUNT(((U16) (c)), (l), ((u) - (l))) \
522112190 : (sizeof(c) == sizeof(U32)) ? withinCOUNT(((U32) (c)), (l), ((u) - (l))) \
522212191 : (withinCOUNT(((WIDEST_UTYPE) (c)), (l), ((u) - (l)))))
522312192 #endif
542612395
542712396 #undef STMT_START
542812397 #undef STMT_END
5429 #ifdef PERL_USE_GCC_BRACE_GROUPS
12398 #if defined(VOIDFLAGS) && defined(PERL_USE_GCC_BRACE_GROUPS)
543012399 # define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
543112400 # define STMT_END )
543212401 #else
546612435 #ifndef av_top_index
546712436 # define av_top_index AvFILL
546812437 #endif
12438
12439 #ifndef av_count
12440 # define av_count(av) (AvFILL(av)+1)
12441 #endif
546912442 #ifndef ERRSV
547012443 # define ERRSV get_sv("@",FALSE)
547112444 #endif
551712490 #endif
551812491 #ifndef dAXMARK
551912492 # define dAXMARK I32 ax = POPMARK; \
5520 register SV ** const mark = PL_stack_base + ax++
12493 SV ** const mark = PL_stack_base + ax++
552112494 #endif
552212495 #ifndef XSprePUSH
552312496 # define XSprePUSH (sp = PL_stack_base + ax - 1)
558512558
558612559 #endif
558712560
5588 #ifndef WIDEST_UTYPE
5589 # ifdef QUADKIND
5590 # ifdef U64TYPE
5591 # define WIDEST_UTYPE U64TYPE
5592 # else
5593 # define WIDEST_UTYPE Quad_t
5594 # endif
5595 # else
5596 # define WIDEST_UTYPE U32
5597 # endif
5598 #endif
5599
560012561 /* On versions without NATIVE_TO_ASCII, only ASCII is supported */
560112562 #if defined(EBCDIC) && defined(NATIVE_TO_ASCI)
560212563 #ifndef NATIVE_TO_LATIN1
565812619 #ifdef EBCDIC
565912620
566012621 /* This is the first version where these macros are fully correct on EBCDIC
5661 * platforms. Relying on * the C library functions, as earlier releases did,
5662 * causes problems with * locales */
12622 * platforms. Relying on the C library functions, as earlier releases did,
12623 * causes problems with locales */
566312624 # if (PERL_BCDVERSION < 0x5022000)
566412625 # undef isALNUM
566512626 # undef isALNUM_A
584012801 #endif
584112802
584212803 #ifndef isCNTRL_L1
5843 # define isCNTRL_L1(c) (isCNTRL(c) || ( (WIDEST_UTYPE) (c) <= 0x9F \
5844 && (WIDEST_UTYPE) (c) >= 0x80))
12804 # define isCNTRL_L1(c) ( (WIDEST_UTYPE) (c) < ' ' \
12805 || inRANGE((c), 0x7F, 0x9F))
584512806 #endif
584612807
584712808 #ifndef isLOWER
5848 # define isLOWER(c) ((c) >= 'a' && (c) <= 'z')
12809 # define isLOWER(c) inRANGE((c), 'a', 'z')
584912810 #endif
585012811
585112812 #ifndef isUPPER
5852 # define isUPPER(c) ((c) <= 'Z' && (c) >= 'A')
12813 # define isUPPER(c) inRANGE((c), 'A', 'Z')
585312814 #endif
585412815
585512816 #endif /* Below are definitions common to EBCDIC and ASCII */
604313004
604413005 #ifndef isXDIGIT
604513006 # define isXDIGIT(c) ( isDIGIT(c) \
6046 || ((c) >= 'a' && (c) <= 'f') \
6047 || ((c) >= 'A' && (c) <= 'F'))
13007 || inRANGE((c), 'a', 'f') \
13008 || inRANGE((c), 'A', 'F'))
604813009 #endif
604913010
605013011 #ifndef isXDIGIT_L1
673213693 #endif
673313694
673413695 #ifndef MUTABLE_PTR
6735 #if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN)
13696 #if defined(PERL_USE_GCC_BRACE_GROUPS)
673613697 # define MUTABLE_PTR(p) ({ void *_p = (p); _p; })
673713698 #else
673813699 # define MUTABLE_PTR(p) ((void *) (p))
673913700 #endif
674013701 #endif
13702 #ifndef MUTABLE_AV
13703 # define MUTABLE_AV(p) ((AV *)MUTABLE_PTR(p))
13704 #endif
13705
13706 #ifndef MUTABLE_CV
13707 # define MUTABLE_CV(p) ((CV *)MUTABLE_PTR(p))
13708 #endif
13709
13710 #ifndef MUTABLE_GV
13711 # define MUTABLE_GV(p) ((GV *)MUTABLE_PTR(p))
13712 #endif
13713
13714 #ifndef MUTABLE_HV
13715 # define MUTABLE_HV(p) ((HV *)MUTABLE_PTR(p))
13716 #endif
13717
13718 #ifndef MUTABLE_IO
13719 # define MUTABLE_IO(p) ((IO *)MUTABLE_PTR(p))
13720 #endif
13721
674113722 #ifndef MUTABLE_SV
674213723 # define MUTABLE_SV(p) ((SV *)MUTABLE_PTR(p))
674313724 #endif
674413725
674513726 #if (PERL_BCDVERSION >= 0x5004000) && !defined(vnewSVpvf)
6746 #if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN)
13727 #if defined(PERL_USE_GCC_BRACE_GROUPS)
674713728 # define vnewSVpvf(pat, args) ({ SV *_sv = newSV(0); sv_vsetpvfn(_sv, (pat), strlen((pat)), (args), Null(SV**), 0, Null(bool*)); _sv; })
674813729 #else
674913730 # define vnewSVpvf(pat, args) ((PL_Sv = newSV(0)), sv_vsetpvfn(PL_Sv, (pat), strlen((pat)), (args), Null(SV**), 0, Null(bool*)), PL_Sv)
699613977 # define SV_COW_SHARED_HASH_KEYS 0
699713978 #endif
699813979
6999 #if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN)
13980 #if defined(PERL_USE_GCC_BRACE_GROUPS)
700013981 #ifndef sv_2pv_flags
700113982 # define sv_2pv_flags(sv, lp, flags) ({ SV *_sv = (sv); const I32 _flags = (flags); STRLEN *_lp = lp; _lp = _lp ? : &PL_na; (!(_flags & SV_GMAGIC) && SvGMAGICAL(_sv)) ? ({ char *_pv; SvGMAGICAL_off(_sv); _pv = sv_2pv(_sv, _lp); SvGMAGICAL_on(_sv); _pv; }) : sv_2pv(_sv, _lp); })
700213983 #endif
709614077 ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \
709714078 ? SvPVX_const(sv) : sv_2pv_flags(sv, D_PPP_SVPV_NOLEN_LP_ARG, SV_GMAGIC|SV_CONST_RETURN))
709814079 #endif
14080
14081 # if defined(PERL_USE_GCC_BRACE_GROUPS)
14082 #ifndef SvPVx_nolen_const
14083 # define SvPVx_nolen_const(sv) ({SV *sV_ = (sv); SvPV_nolen_const(sV_); })
14084 #endif
14085
14086 # else
14087 #ifndef SvPVx_nolen_const
14088 # define SvPVx_nolen_const(sv) (PL_Sv = sv, SvPV_nolen_const(PL_Sv))
14089 #endif
14090
14091 # endif
709914092 #ifndef SvPV_nomg
710014093 # define SvPV_nomg(sv, lp) SvPV_flags(sv, lp, 0)
710114094 #endif
711814111 (Malloc_t)SvPVX(sv), (MEM_SIZE)((n)))); \
711914112 } STMT_END
712014113 #endif
14114 #ifndef SvPVCLEAR
14115 # define SvPVCLEAR(sv) sv_setpvs((sv), "")
14116 #endif
712114117 #ifndef WARN_ALL
712214118 # define WARN_ALL 0
712314119 #endif
730714303 #endif
730814304 #ifndef packWARN
730914305 # define packWARN(a) (a)
14306 #endif
14307
14308 #ifndef packWARN2
14309 # define packWARN2(a,b) (packWARN(a) << 8 | (b))
14310 #endif
14311
14312 #ifndef packWARN3
14313 # define packWARN3(a,b,c) (packWARN2(a,b) << 8 | (c))
14314 #endif
14315
14316 #ifndef packWARN4
14317 # define packWARN4(a,b,c,d) (packWARN3(a,b,c) << 8 | (d))
731014318 #endif
731114319
731214320 #ifndef ckWARN
731614324 # define ckWARN(a) PL_dowarn
731714325 # endif
731814326 #endif
14327 #ifndef ckWARN2
14328 # define ckWARN2(a,b) (ckWARN(a) || ckWARN(b))
14329 #endif
14330
14331 #ifndef ckWARN3
14332 # define ckWARN3(a,b,c) (ckWARN(c) || ckWARN2(a,b))
14333 #endif
14334
14335 #ifndef ckWARN4
14336 # define ckWARN4(a,b,c,d) (ckWARN(d) || ckWARN3(a,b,c))
14337 #endif
14338
14339 #ifndef ckWARN_d
14340 # ifdef isLEXWARN_off
14341 # define ckWARN_d(a) (isLEXWARN_off || ckWARN(a))
14342 # else
14343 # define ckWARN_d(a) 1
14344 # endif
14345 #endif
14346 #ifndef ckWARN2_d
14347 # define ckWARN2_d(a,b) (ckWARN_d(a) || ckWARN_d(b))
14348 #endif
14349
14350 #ifndef ckWARN3_d
14351 # define ckWARN3_d(a,b,c) (ckWARN_d(c) || ckWARN2_d(a,b))
14352 #endif
14353
14354 #ifndef ckWARN4_d
14355 # define ckWARN4_d(a,b,c,d) (ckWARN_d(d) || ckWARN3_d(a,b,c))
14356 #endif
14357 #ifndef vwarner
14358 # define vwarner(err, pat, argsp) \
14359 STMT_START { SV *sv; \
14360 PERL_UNUSED_ARG(err); \
14361 sv = vnewSVpvf(pat, argsp); \
14362 sv_2mortal(sv); \
14363 warn("%s", SvPV_nolen(sv)); \
14364 } STMT_END
14365 #endif
731914366
732014367 #if (PERL_BCDVERSION >= 0x5004000) && !defined(warner)
7321 #if defined(NEED_warner)
14368 # if defined(NEED_warner)
732214369 static void DPPP_(my_warner)(U32 err, const char * pat, ...);
732314370 static
732414371 #else
733314380 void
733414381 DPPP_(my_warner)(U32 err, const char *pat, ...)
733514382 {
7336 SV *sv;
733714383 va_list args;
7338
7339 PERL_UNUSED_ARG(err);
7340
734114384 va_start(args, pat);
7342 sv = vnewSVpvf(pat, &args);
14385 vwarner(err, pat, &args);
734314386 va_end(args);
7344 sv_2mortal(sv);
7345 warn("%s", SvPV_nolen(sv));
734614387 }
734714388
7348 #define warner Perl_warner
7349
7350 #define Perl_warner_nocontext Perl_warner
7351
7352 #endif
14389 # define warner Perl_warner
14390
14391 # define Perl_warner_nocontext Perl_warner
14392
14393 # endif
14394 #endif
14395
14396 #if (PERL_BCDVERSION >= 0x5004000) && !defined(ck_warner)
14397 # if defined(NEED_ck_warner)
14398 static void DPPP_(my_ck_warner)(pTHX_ U32 err, const char * pat, ...);
14399 static
14400 #else
14401 extern void DPPP_(my_ck_warner)(pTHX_ U32 err, const char * pat, ...);
14402 #endif
14403
14404 #if defined(NEED_ck_warner) || defined(NEED_ck_warner_GLOBAL)
14405
14406 #define Perl_ck_warner DPPP_(my_ck_warner)
14407
14408
14409 void
14410 DPPP_(my_ck_warner)(pTHX_ U32 err, const char *pat, ...)
14411 {
14412 va_list args;
14413
14414 if ( ! ckWARN((err ) & 0xFF)
14415 && ! ckWARN((err >> 8) & 0xFF)
14416 && ! ckWARN((err >> 16) & 0xFF)
14417 && ! ckWARN((err >> 24) & 0xFF))
14418 {
14419 return;
14420 }
14421
14422 va_start(args, pat);
14423 vwarner(err, pat, &args);
14424 va_end(args);
14425 }
14426
14427 # define ck_warner Perl_ck_warner
14428 # endif
14429 #endif
14430
14431 #if (PERL_BCDVERSION >= 0x5004000) && !defined(ck_warner_d)
14432 # if defined(NEED_ck_warner_d)
14433 static void DPPP_(my_ck_warner_d)(pTHX_ U32 err, const char * pat, ...);
14434 static
14435 #else
14436 extern void DPPP_(my_ck_warner_d)(pTHX_ U32 err, const char * pat, ...);
14437 #endif
14438
14439 #if defined(NEED_ck_warner_d) || defined(NEED_ck_warner_d_GLOBAL)
14440
14441 #define Perl_ck_warner_d DPPP_(my_ck_warner_d)
14442
14443
14444 void
14445 DPPP_(my_ck_warner_d)(pTHX_ U32 err, const char *pat, ...)
14446 {
14447 va_list args;
14448
14449 if ( ! ckWARN_d((err ) & 0xFF)
14450 && ! ckWARN_d((err >> 8) & 0xFF)
14451 && ! ckWARN_d((err >> 16) & 0xFF)
14452 && ! ckWARN_d((err >> 24) & 0xFF))
14453 {
14454 return;
14455 }
14456
14457 va_start(args, pat);
14458 vwarner(err, pat, &args);
14459 va_end(args);
14460 }
14461
14462 # define ck_warner_d Perl_ck_warner_d
14463
14464
14465 # endif
735314466 #endif
735414467
735514468 #ifndef IVdf
739714510 # define newSVuv(uv) ((uv) <= IV_MAX ? newSViv((IV)uv) : newSVnv((NV)uv))
739814511 #endif
739914512
7400 #if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN)
14513 #if defined(PERL_USE_GCC_BRACE_GROUPS)
740114514 #ifndef sv_2uv
740214515 # define sv_2uv(sv) ({ SV *_sv = (sv); (UV) (SvNOK(_sv) ? SvNV(_sv) : sv_2nv(_sv)); })
740314516 #endif
742014533 # define SvUV(sv) (SvIOK(sv) ? SvUVX(sv) : sv_2uv(sv))
742114534 #endif
742214535
7423 #if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN)
14536 #if defined(PERL_USE_GCC_BRACE_GROUPS)
742414537 #ifndef SvUVx
742514538 # define SvUVx(sv) ({ SV *_sv = (sv)); SvUV(_sv); })
742614539 #endif
780014913 #define croak_xs_usage DPPP_(my_croak_xs_usage)
780114914 #define Perl_croak_xs_usage DPPP_(my_croak_xs_usage)
780214915
7803
14916 #ifndef PERL_ARGS_ASSERT_CROAK_XS_USAGE
14917 #define PERL_ARGS_ASSERT_CROAK_XS_USAGE assert(cv); assert(params)
780414918
780514919 void
780614920 DPPP_(my_croak_xs_usage)(const CV *const cv, const char *const params)
780814922 dTHX;
780914923 const GV *const gv = CvGV(cv);
781014924
7811 #ifdef PERL_ARGS_ASSERT_CROAK_XS_USAGE
781214925 PERL_ARGS_ASSERT_CROAK_XS_USAGE;
7813 #else
7814 assert(cv); assert(params);
7815 #endif
781614926
781714927 if (gv) {
781814928 const char *const gvname = GvNAME(gv);
783014940 }
783114941 #endif
783214942 #endif
14943 #endif
783314944 #ifndef mPUSHs
783414945 # define mPUSHs(s) PUSHs(sv_2mortal(s))
783514946 #endif
791815029
791915030 #endif
792015031 #endif
15032 #ifndef G_LIST
15033 # define G_LIST G_ARRAY /* Replace */
15034 #endif
792115035 #ifndef PERL_LOADMOD_DENY
792215036 # define PERL_LOADMOD_DENY 0x1
792315037 #endif
793015044 # define PERL_LOADMOD_IMPORT_OPS 0x4
793115045 #endif
793215046
7933 #if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN)
15047 #if defined(PERL_USE_GCC_BRACE_GROUPS)
793415048 # define D_PPP_CROAK_IF_ERROR(cond) ({ SV *_errsv; ((cond) && (_errsv = ERRSV) && (SvROK(_errsv) || SvTRUE(_errsv)) && (croak_sv(_errsv), 1)); })
793515049 #else
793615050 # define D_PPP_CROAK_IF_ERROR(cond) ((cond) && (SvROK(ERRSV) || SvTRUE(ERRSV)) && (croak_sv(ERRSV), 1))
795515069 # ifdef eval_sv
795615070 # undef eval_sv
795715071 # endif
7958 # if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN)
15072 # if defined(PERL_USE_GCC_BRACE_GROUPS)
795915073 # define eval_sv(sv, flags) ({ I32 _flags = (flags); I32 _ret = Perl_eval_sv(aTHX_ sv, (_flags & ~G_RETHROW)); D_PPP_CROAK_IF_ERROR(_flags & G_RETHROW); _ret; })
796015074 # else
796115075 # define eval_sv(sv, flags) ((PL_na = Perl_eval_sv(aTHX_ sv, ((flags) & ~G_RETHROW))), D_PPP_CROAK_IF_ERROR((flags) & G_RETHROW), (I32)PL_na)
796615080 #if (PERL_BCDVERSION < 0x5031002)
796715081 # ifdef eval_pv
796815082 # undef eval_pv
7969 # if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN)
15083 # if defined(PERL_USE_GCC_BRACE_GROUPS)
797015084 # define eval_pv(p, croak_on_error) ({ SV *_sv = Perl_eval_pv(aTHX_ p, 0); D_PPP_CROAK_IF_ERROR(croak_on_error); _sv; })
797115085 # else
797215086 # define eval_pv(p, croak_on_error) ((PL_Sv = Perl_eval_pv(aTHX_ p, 0)), D_PPP_CROAK_IF_ERROR(croak_on_error), PL_Sv)
804015154
804115155 OP * const modname = newSVOP(OP_CONST, 0, name);
804215156 /* 5.005 has a somewhat hacky force_normal that doesn't croak on
8043 SvREADONLY() if PL_compling is true. Current perls take care in
15157 SvREADONLY() if PL_compiling is true. Current perls take care in
804415158 ck_require() to correctly turn off SvREADONLY before calling
8045 force_normal_flags(). This seems a better fix than fudging PL_compling
15159 force_normal_flags(). This seems a better fix than fudging PL_compiling
804615160 */
804715161 SvREADONLY_off(((SVOP*)modname)->op_sv);
804815162 modname->op_private |= OPpCONST_BARE;
811815232 #endif
811915233
812015234 #ifndef newRV_noinc
8121 #if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN)
15235 #if defined(PERL_USE_GCC_BRACE_GROUPS)
812215236 # define newRV_noinc(sv) ({ SV *_sv = (SV *)newRV((sv)); SvREFCNT_dec((sv)); _sv; })
812315237 #else
812415238 # define newRV_noinc(sv) ((PL_Sv = (SV *)newRV((sv))), SvREFCNT_dec((sv)), PL_Sv)
830215416 #endif
830315417
830415418 #ifndef newSV_type
8305 #if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN)
15419 #if defined(PERL_USE_GCC_BRACE_GROUPS)
830615420 # define newSV_type(t) ({ SV *_sv = newSV(0); sv_upgrade(_sv, (t)); _sv; })
830715421 #else
830815422 # define newSV_type(t) ((PL_Sv = newSV(0)), sv_upgrade(PL_Sv, (t)), PL_Sv)
832715441 #endif
832815442
832915443 #ifndef newSVpvn_flags
8330 #if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN)
15444 #if defined(PERL_USE_GCC_BRACE_GROUPS)
833115445 # define newSVpvn_flags(s, len, flags) ({ SV *_sv = newSVpvn(D_PPP_CONSTPV_ARG((s)), (len)); SvFLAGS(_sv) |= ((flags) & SVf_UTF8); ((flags) & SVs_TEMP) ? sv_2mortal(_sv) : _sv; })
833215446 #else
833315447 # define newSVpvn_flags(s, len, flags) ((PL_Sv = newSVpvn(D_PPP_CONSTPV_ARG((s)), (len))), SvFLAGS(PL_Sv) |= ((flags) & SVf_UTF8), (((flags) & SVs_TEMP) ? sv_2mortal(PL_Sv) : PL_Sv))
833915453
834015454 #if ( (PERL_BCDVERSION >= 0x5007003) && (PERL_BCDVERSION < 0x5008007) ) || ( (PERL_BCDVERSION >= 0x5009000) && (PERL_BCDVERSION < 0x5009002) )
834115455 #undef sv_setsv_flags
8342 #if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN)
15456 #if defined(PERL_USE_GCC_BRACE_GROUPS)
834315457 #define sv_setsv_flags(dstr, sstr, flags) \
834415458 STMT_START { \
834515459 if (((flags) & SV_NOSTEAL) && (sstr) && (SvFLAGS((SV *)(sstr)) & SVs_TEMP)) { \
836515479 #endif
836615480 #endif
836715481
8368 #if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN)
15482 #if defined(PERL_USE_GCC_BRACE_GROUPS)
836915483 #ifndef sv_setsv_flags
837015484 # define sv_setsv_flags(dstr, sstr, flags) \
837115485 STMT_START { \
842415538
842515539 #endif
842615540
8427 #if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN)
15541 #if defined(PERL_USE_GCC_BRACE_GROUPS)
842815542 #ifndef newSVsv_flags
842915543 # define newSVsv_flags(sv, flags) ({ SV *_sv = newSV(0); sv_setsv_flags(_sv, (sv), (flags)); _sv; })
843015544 #endif
856315677 #if (PERL_BCDVERSION >= 0x5009002) && (PERL_BCDVERSION <= 0x5009003) /* 5.9.2 and 5.9.3 ignore the length param */
856415678 #undef gv_fetchpvn_flags
856515679 #endif
8566 #ifndef GV_NOADD_MASK
8567 # define GV_NOADD_MASK 0xE0
8568 #endif
8569
15680
15681 #ifdef GV_NOADD_MASK
15682 # define D_PPP_GV_NOADD_MASK GV_NOADD_MASK
15683 #else
15684 # define D_PPP_GV_NOADD_MASK 0xE0
15685 #endif
857015686 #ifndef gv_fetchpvn_flags
8571 # define gv_fetchpvn_flags(name, len, flags, sv_type) gv_fetchpv(SvPVX(sv_2mortal(newSVpvn((name), (len)))), ((flags) & GV_NOADD_MASK) ? FALSE : TRUE, (I32)(sv_type))
15687 # define gv_fetchpvn_flags(name, len, flags, sv_type) gv_fetchpv(SvPVX(sv_2mortal(newSVpvn((name), (len)))), ((flags) & D_PPP_GV_NOADD_MASK) ? FALSE : TRUE, (I32)(sv_type))
857215688 #endif
857315689 #ifndef GvSVn
857415690 # define GvSVn(gv) GvSV(gv)
865515771 #endif
865615772
865715773 #ifdef SVf_IVisUV
8658 #if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN)
15774 #if defined(PERL_USE_GCC_BRACE_GROUPS)
865915775 #ifndef SvIV_nomg
866015776 # define SvIV_nomg(sv) (!SvGMAGICAL((sv)) ? SvIV((sv)) : ({ SV *_sviv = sv_mortalcopy_flags((sv), SV_NOSTEAL); IV _iv = SvIV(_sviv); SvFLAGS((sv)) = (SvFLAGS((sv)) & ~SVf_IVisUV) | (SvFLAGS(_sviv) & SVf_IVisUV); _iv; }))
866115777 #endif
902216138 I32 i;
902316139
902416140 for (i = startingblock; i >= 0; i--) {
9025 register const PERL_CONTEXT * const cx = &cxstk[i];
16141 const PERL_CONTEXT * const cx = &cxstk[i];
902616142 switch (CxTYPE(cx)) {
902716143 default:
902816144 continue;
905516171 const PERL_CONTEXT *
905616172 DPPP_(my_caller_cx)(pTHX_ I32 level, const PERL_CONTEXT **dbcxp)
905716173 {
9058 register I32 cxix = DPPP_dopoptosub_at(cxstack, cxstack_ix);
9059 register const PERL_CONTEXT *cx;
9060 register const PERL_CONTEXT *ccstack = cxstack;
16174 I32 cxix = DPPP_dopoptosub_at(cxstack, cxstack_ix);
16175 const PERL_CONTEXT *cx;
16176 const PERL_CONTEXT *ccstack = cxstack;
906116177 const PERL_SI *top_si = PL_curstackinfo;
906216178
906316179 for (;;) {
990817024 (((len) > 7) ? 0xFF : (0xFF & (0xFE << (7-(len)))))
990917025 #endif
991017026
9911 #if (PERL_BCDVERSION < 0x5018000) /* On non-EBCDIC was valid before this, */
9912 /* but easier to just do one check */
17027 /* On non-EBCDIC was valid for some releases earlier than this, but easier to
17028 * just do one check */
17029 #if (PERL_BCDVERSION < 0x5018000)
991317030 # undef UTF8_MAXBYTES_CASE
991417031 #endif
991517032
1007217189 #endif
1007317190
1007417191 #ifdef UVCHR_IS_INVARIANT
10075 # if 'A' == 65
10076 # ifdef QUADKIND
10077 # define D_PPP_UVCHR_SKIP_UPPER(c) \
10078 (WIDEST_UTYPE) (c) < \
10079 (((WIDEST_UTYPE) 1) << (6 * D_PPP_BYTE_INFO_BITS)) ? 7 : 13
10080 # else
10081 # define D_PPP_UVCHR_SKIP_UPPER(c) 7 /* 32 bit platform */
10082 # endif
17192 # if 'A' != 65 || UVSIZE < 8
17193 /* 32 bit platform, which includes UTF-EBCDIC on the releases this is
17194 * backported to */
17195 # define D_PPP_UVCHR_SKIP_UPPER(c) 7
1008317196 # else
10084 /* In the releases this is backported to, UTF-EBCDIC had a max of 2**31-1 */
10085 # define D_PPP_UVCHR_SKIP_UPPER(c) 7
17197 # define D_PPP_UVCHR_SKIP_UPPER(c) \
17198 (((WIDEST_UTYPE) (c)) < \
17199 (((WIDEST_UTYPE) 1) << (6 * D_PPP_BYTE_INFO_BITS)) ? 7 : 13)
1008617200 # endif
1008717201 #ifndef UVCHR_SKIP
1008817202 # define UVCHR_SKIP(c) \
1035217466 * disabled, so this 'if' will be true, and so later on, we know that
1035317467 * 's' is dereferencible */
1035417468 if (do_warnings) {
10355 *retlen = (STRLEN) -1;
17469 if (retlen) {
17470 *retlen = (STRLEN) -1;
17471 }
1035617472 }
1035717473 else {
1035817474 ret = D_PPP_utf8_to_uvchr_buf_callee(
1042617542 /* Also note that SvGETMAGIC() may change presence of SVf_UTF8 flag */
1042717543 # if (PERL_BCDVERSION < 0x5017005)
1042817544 # undef sv_len_utf8
10429 # if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN)
17545 # if defined(PERL_USE_GCC_BRACE_GROUPS)
1043017546 # define sv_len_utf8_nomg(sv) ({ SV *_sv2 = (sv); (SvUTF8(_sv2) ? Perl_sv_len_utf8(aTHX_ (!SvGMAGICAL(_sv2) ? _sv2 : sv_mortalcopy_flags(_sv2, SV_NOSTEAL))) : ({ STRLEN _len; SvPV_nomg(_sv2, _len); _len; })); })
1043117547 # define sv_len_utf8(sv) ({ SV *_sv1 = (sv); SvGETMAGIC(_sv1); sv_len_utf8_nomg(_sv1); })
1043217548 # else
1043417550 # define sv_len_utf8(sv) (PL_Sv = (sv), SvGETMAGIC(PL_Sv), sv_len_utf8_nomg(PL_Sv))
1043517551 # endif
1043617552 # endif
10437 # if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN)
17553 # if defined(PERL_USE_GCC_BRACE_GROUPS)
1043817554 #ifndef sv_len_utf8_nomg
1043917555 # define sv_len_utf8_nomg(sv) ({ SV *_sv = (sv); sv_len_utf8(!SvGMAGICAL(_sv) ? _sv : sv_mortalcopy_flags(_sv, SV_NOSTEAL)); })
1044017556 #endif
1070117817 #endif
1070217818 #endif
1070317819
10704 /* If this doesn't exist, it's not needed, so noop */
17820 #if PERL_VERSION_LT(5,27,9)
17821 #ifndef LC_NUMERIC_LOCK
17822 # define LC_NUMERIC_LOCK
17823 #endif
17824
17825 #ifndef LC_NUMERIC_UNLOCK
17826 # define LC_NUMERIC_UNLOCK
17827 #endif
17828
17829 # if PERL_VERSION_LT(5,19,0)
17830 # undef STORE_LC_NUMERIC_SET_STANDARD
17831 # undef RESTORE_LC_NUMERIC
17832 # undef DECLARATION_FOR_LC_NUMERIC_MANIPULATION
17833 # ifdef USE_LOCALE
17834 #ifndef DECLARATION_FOR_LC_NUMERIC_MANIPULATION
17835 # define DECLARATION_FOR_LC_NUMERIC_MANIPULATION char *LoC_
17836 #endif
17837
17838 #ifndef STORE_NUMERIC_SET_STANDARD
17839 # define STORE_NUMERIC_SET_STANDARD() \
17840 LoC_ = savepv(setlocale(LC_NUMERIC, NULL)); \
17841 SAVEFREEPV(LoC_); \
17842 setlocale(LC_NUMERIC, "C");
17843 #endif
17844
17845 #ifndef RESTORE_LC_NUMERIC
17846 # define RESTORE_LC_NUMERIC() \
17847 setlocale(LC_NUMERIC, LoC_);
17848 #endif
17849
17850 # else
17851 #ifndef DECLARATION_FOR_LC_NUMERIC_MANIPULATION
17852 # define DECLARATION_FOR_LC_NUMERIC_MANIPULATION
17853 #endif
17854
17855 #ifndef STORE_LC_NUMERIC_SET_STANDARD
17856 # define STORE_LC_NUMERIC_SET_STANDARD()
17857 #endif
17858
17859 #ifndef RESTORE_LC_NUMERIC
17860 # define RESTORE_LC_NUMERIC()
17861 #endif
17862
17863 # endif
17864 # endif
17865 #endif
17866
17867 #ifndef LOCK_NUMERIC_STANDARD
17868 # define LOCK_NUMERIC_STANDARD()
17869 #endif
17870
17871 #ifndef UNLOCK_NUMERIC_STANDARD
17872 # define UNLOCK_NUMERIC_STANDARD()
17873 #endif
17874
17875 /* The names of these changed in 5.28 */
17876 #ifndef LOCK_LC_NUMERIC_STANDARD
17877 # define LOCK_LC_NUMERIC_STANDARD LOCK_NUMERIC_STANDARD
17878 #endif
17879
17880 #ifndef UNLOCK_LC_NUMERIC_STANDARD
17881 # define UNLOCK_LC_NUMERIC_STANDARD UNLOCK_NUMERIC_STANDARD
17882 #endif
17883
17884 /* If this doesn't exist, it's not needed, so is void noop */
1070517885 #ifndef switch_to_global_locale
1070617886 # define switch_to_global_locale()
1070717887 #endif
1071517895 # if (PERL_BCDVERSION >= 0x5021003)
1071617896 # undef sync_locale
1071717897 # define sync_locale() (Perl_sync_locale(aTHX), 1)
10718 # elif defined(sync_locale) /* These should be the 5.20 maints*/
17898 # elif defined(sync_locale) /* These should only be the 5.20 maints*/
1071917899 # undef sync_locale /* Just copy their defn and return 1 */
1072017900 # define sync_locale() (new_ctype(setlocale(LC_CTYPE, NULL)), \
1072117901 new_collate(setlocale(LC_COLLATE, NULL)), \
99 use overload '""' => sub { $_[0]->path }, bool => sub { 1 }, fallback => 1;
1010
1111 # ABSTRACT: Base class for File::Build files
12 our $VERSION = '1.34'; # VERSION
12 our $VERSION = '1.56'; # VERSION
1313
1414
1515 sub new
157157
158158 =head1 VERSION
159159
160 version 1.34
160 version 1.56
161161
162162 =head1 SYNOPSIS
163163
164164 Create your own file class
165165
166166 package FFI::Build::File::Foo;
167 use base qw( FFI::Build::File::Base );
167 use parent qw( FFI::Build::File::Base );
168168 use constant default_suffix => '.foo';
169169 use constant default_encoding => ':utf8';
170170
336336
337337 Ilya Pavlov (Ilya33)
338338
339 Petr Pisar (ppisar)
339 Petr Písař (ppisar)
340340
341341 Mohammad S Anwar (MANWAR)
342342
345345 Meredith (merrilymeredith, MHOWARD)
346346
347347 Diab Jerius (DJERIUS)
348
349 Eric Brine (IKEGAMI)
350
351 szTheory
352
353 José Joaquín Atria (JJATRIA)
354
355 Pete Houston (openstrike, HOUSTON)
348356
349357 =head1 COPYRIGHT AND LICENSE
350358
22 use strict;
33 use warnings;
44 use 5.008004;
5 use base qw( FFI::Build::File::Base );
5 use parent qw( FFI::Build::File::Base );
66 use constant default_suffix => '.c';
77 use constant default_encoding => ':utf8';
88 use Capture::Tiny ();
1010 use FFI::Build::File::Object;
1111
1212 # ABSTRACT: Class to track C source file in FFI::Build
13 our $VERSION = '1.34'; # VERSION
13 our $VERSION = '1.56'; # VERSION
1414
1515
1616 sub accept_suffix
185185
186186 =head1 VERSION
187187
188 version 1.34
188 version 1.56
189189
190190 =head1 SYNOPSIS
191191
223223
224224 Ilya Pavlov (Ilya33)
225225
226 Petr Pisar (ppisar)
226 Petr Písař (ppisar)
227227
228228 Mohammad S Anwar (MANWAR)
229229
232232 Meredith (merrilymeredith, MHOWARD)
233233
234234 Diab Jerius (DJERIUS)
235
236 Eric Brine (IKEGAMI)
237
238 szTheory
239
240 José Joaquín Atria (JJATRIA)
241
242 Pete Houston (openstrike, HOUSTON)
235243
236244 =head1 COPYRIGHT AND LICENSE
237245
22 use strict;
33 use warnings;
44 use 5.008004;
5 use base qw( FFI::Build::File::C );
5 use parent qw( FFI::Build::File::C );
66 use constant default_suffix => '.cxx';
77 use constant default_encoding => ':utf8';
88
99 # ABSTRACT: Class to track C source file in FFI::Build
10 our $VERSION = '1.34'; # VERSION
10 our $VERSION = '1.56'; # VERSION
1111
1212
1313 sub accept_suffix
2424 sub ld
2525 {
2626 my($self) = @_;
27 $self->platform->cxx;
27 $self->platform->cxxld;
2828 }
2929
3030 1;
4141
4242 =head1 VERSION
4343
44 version 1.34
44 version 1.56
4545
4646 =head1 SYNOPSIS
4747
7979
8080 Ilya Pavlov (Ilya33)
8181
82 Petr Pisar (ppisar)
82 Petr Písař (ppisar)
8383
8484 Mohammad S Anwar (MANWAR)
8585
8989
9090 Diab Jerius (DJERIUS)
9191
92 Eric Brine (IKEGAMI)
93
94 szTheory
95
96 José Joaquín Atria (JJATRIA)
97
98 Pete Houston (openstrike, HOUSTON)
99
92100 =head1 COPYRIGHT AND LICENSE
93101
94102 This software is copyright (c) 2015,2016,2017,2018,2019,2020 by Graham Ollis.
22 use strict;
33 use warnings;
44 use 5.008004;
5 use base qw( FFI::Build::File::Base );
5 use parent qw( FFI::Build::File::Base );
66 use constant default_encoding => ':raw';
77
88 # ABSTRACT: Class to track object file in FFI::Build
9 our $VERSION = '1.34'; # VERSION
9 our $VERSION = '1.56'; # VERSION
1010
1111
1212 sub default_suffix
2828
2929 =head1 VERSION
3030
31 version 1.34
31 version 1.56
3232
3333 =head1 SYNOPSIS
3434
8080
8181 Ilya Pavlov (Ilya33)
8282
83 Petr Pisar (ppisar)
83 Petr Písař (ppisar)
8484
8585 Mohammad S Anwar (MANWAR)
8686
9090
9191 Diab Jerius (DJERIUS)
9292
93 Eric Brine (IKEGAMI)
94
95 szTheory
96
97 José Joaquín Atria (JJATRIA)
98
99 Pete Houston (openstrike, HOUSTON)
100
93101 =head1 COPYRIGHT AND LICENSE
94102
95103 This software is copyright (c) 2015,2016,2017,2018,2019,2020 by Graham Ollis.
22 use strict;
33 use warnings;
44 use 5.008004;
5 use base qw( FFI::Build::File::Base );
5 use parent qw( FFI::Build::File::Base );
66 use constant default_encoding => ':raw';
77 use Carp ();
88
99 # ABSTRACT: Class to track object file in FFI::Build
10 our $VERSION = '1.34'; # VERSION
10 our $VERSION = '1.56'; # VERSION
1111
1212
1313 sub default_suffix
3939
4040 =head1 VERSION
4141
42 version 1.34
42 version 1.56
4343
4444 =head1 SYNOPSIS
4545
7777
7878 Ilya Pavlov (Ilya33)
7979
80 Petr Pisar (ppisar)
80 Petr Písař (ppisar)
8181
8282 Mohammad S Anwar (MANWAR)
8383
8787
8888 Diab Jerius (DJERIUS)
8989
90 Eric Brine (IKEGAMI)
91
92 szTheory
93
94 José Joaquín Atria (JJATRIA)
95
96 Pete Houston (openstrike, HOUSTON)
97
9098 =head1 COPYRIGHT AND LICENSE
9199
92100 This software is copyright (c) 2015,2016,2017,2018,2019,2020 by Graham Ollis.
1212 use ExtUtils::MakeMaker 7.12;
1313
1414 # ABSTRACT: FFI::Build installer code for ExtUtils::MakeMaker
15 our $VERSION = '1.34'; # VERSION
15 our $VERSION = '1.56'; # VERSION
1616
1717
1818 sub new
307307
308308 =head1 VERSION
309309
310 version 1.34
310 version 1.56
311311
312312 =head1 SYNOPSIS
313313
419419
420420 Ilya Pavlov (Ilya33)
421421
422 Petr Pisar (ppisar)
422 Petr Písař (ppisar)
423423
424424 Mohammad S Anwar (MANWAR)
425425
428428 Meredith (merrilymeredith, MHOWARD)
429429
430430 Diab Jerius (DJERIUS)
431
432 Eric Brine (IKEGAMI)
433
434 szTheory
435
436 José Joaquín Atria (JJATRIA)
437
438 Pete Houston (openstrike, HOUSTON)
431439
432440 =head1 COPYRIGHT AND LICENSE
433441
1010 use FFI::Platypus::ShareConfig;
1111
1212 # ABSTRACT: Platform specific configuration.
13 our $VERSION = '1.34'; # VERSION
13 our $VERSION = '1.56'; # VERSION
1414
1515
1616 sub new
6969 {
7070 push @suffix, '.' . $self->{config}->{dlext};
7171 }
72 wantarray ? @suffix : $suffix[0]; ## no critic (Freenode::Wantarray)
72 wantarray ? @suffix : $suffix[0]; ## no critic (Community::Wantarray)
7373 }
7474
7575
151151 }
152152
153153 Carp::croak("unable to detect corresponding C++ compiler");
154 }
155
156
157 sub cxxld
158 {
159 my $self = _self(shift);
160
161 $DB::single = 1;
162
163 # This is definitely not exhaustive or complete or even
164 # particularlly good. Patches welcome.
165
166 if($self->osname eq 'darwin')
167 {
168 my @cxx = @{ $self->cxx };
169 return [map { /^(cc|clang|gcc)$/ ? @cxx : $_ } @{ $self->ld }];
170 }
171 else
172 {
173 return $self->cxx;
174 }
154175 }
155176
156177
247268 elsif($self->osname eq 'darwin')
248269 {
249270 # we want to build a .dylib instead of a .bundle
250 @ldflags = map { $_ eq '-bundle' ? '-shared' : $_ } @ldflags;
271 @ldflags = map { $_ eq '-bundle' ? '-dynamiclib' : $_ } @ldflags;
251272 }
252273 \@ldflags;
253274 }
394415 push @diag, "osname : ". _c($self->osname);
395416 push @diag, "cc : ". _l($self->cc);
396417 push @diag, "cxx : ". (eval { _l($self->cxx) } || '---' );
418 push @diag, "cxxld : ". (eval { _l($self->cxxld) } || '---' );
397419 push @diag, "for : ". (eval { _l($self->for) } || '---' );
398420 push @diag, "ld : ". _l($self->ld);
399421 push @diag, "ccflags : ". _l($self->ccflags);
420442
421443 =head1 VERSION
422444
423 version 1.34
445 version 1.56
424446
425447 =head1 SYNOPSIS
426448
497519
498520 The C++ compiler that naturally goes with the C compiler.
499521
522 =head2 cxxld
523
524 my @cxxld = @{ $platform->cxxld };
525
526 The C++ linker that naturally goes with the C compiler.
527
500528 =head2 for
501529
502530 my @for = @{ $platform->for };
602630
603631 Ilya Pavlov (Ilya33)
604632
605 Petr Pisar (ppisar)
633 Petr Písař (ppisar)
606634
607635 Mohammad S Anwar (MANWAR)
608636
611639 Meredith (merrilymeredith, MHOWARD)
612640
613641 Diab Jerius (DJERIUS)
642
643 Eric Brine (IKEGAMI)
644
645 szTheory
646
647 José Joaquín Atria (JJATRIA)
648
649 Pete Houston (openstrike, HOUSTON)
614650
615651 =head1 COPYRIGHT AND LICENSE
616652
1111 use File::Path ();
1212
1313 # ABSTRACT: Build shared libraries for use with FFI
14 our $VERSION = '1.34'; # VERSION
14 our $VERSION = '1.56'; # VERSION
15
16 # Platypus-Man,
17 # Platypus-Man,
18 # Friendly Neighborhood Platypus-Man
19 # Is He Strong?
20 # Listen Bud
21 # He's got Proportional Strength of a Platypus
22 # Hey Man!
23 # There Goes The Platypus-Man
1524
1625
1726 sub _native_name
301310
302311 =head1 VERSION
303312
304 version 1.34
313 version 1.56
305314
306315 =head1 SYNOPSIS
307316
308 use FFI::Platypus;
317 use FFI::Platypus 1.00;
309318 use FFI::Build;
310319
311320 my $build = FFI::Build->new(
536545
537546 Ilya Pavlov (Ilya33)
538547
539 Petr Pisar (ppisar)
548 Petr Písař (ppisar)
540549
541550 Mohammad S Anwar (MANWAR)
542551
545554 Meredith (merrilymeredith, MHOWARD)
546555
547556 Diab Jerius (DJERIUS)
557
558 Eric Brine (IKEGAMI)
559
560 szTheory
561
562 José Joaquín Atria (JJATRIA)
563
564 Pete Houston (openstrike, HOUSTON)
548565
549566 =head1 COPYRIGHT AND LICENSE
550567
33 use warnings;
44 use 5.008004;
55 use FFI::Platypus;
6 use base qw( Exporter );
6 use Exporter qw( import );
77
88 our @EXPORT = grep /^arguments_/, keys %FFI::Platypus::API::;
99
1010 # ABSTRACT: Platypus arguments and return value API for custom types
11 our $VERSION = '1.34'; # VERSION
11 our $VERSION = '1.56'; # VERSION
1212
1313
1414 1;
2525
2626 =head1 VERSION
2727
28 version 1.34
28 version 1.56
2929
3030 =head1 SYNOPSIS
3131
262262
263263 Ilya Pavlov (Ilya33)
264264
265 Petr Pisar (ppisar)
265 Petr Písař (ppisar)
266266
267267 Mohammad S Anwar (MANWAR)
268268
271271 Meredith (merrilymeredith, MHOWARD)
272272
273273 Diab Jerius (DJERIUS)
274
275 Eric Brine (IKEGAMI)
276
277 szTheory
278
279 José Joaquín Atria (JJATRIA)
280
281 Pete Houston (openstrike, HOUSTON)
274282
275283 =head1 COPYRIGHT AND LICENSE
276284
33 use warnings;
44 use 5.008004;
55 use FFI::Platypus;
6 use base qw( Exporter );
6 use Exporter qw( import );
77
88 our @EXPORT = qw( scalar_to_buffer buffer_to_scalar );
99 our @EXPORT_OK = qw ( scalar_to_pointer grow set_used_length window );
1010
1111 # ABSTRACT: Convert scalars to C buffers
12 our $VERSION = '1.34'; # VERSION
12 our $VERSION = '1.56'; # VERSION
1313
1414
1515 use constant _incantation =>
4949
5050 =head1 VERSION
5151
52 version 1.34
52 version 1.56
5353
5454 =head1 SYNOPSIS
5555
105105 use FFI::Platypus::Memory qw( malloc memcpy free )
106106
107107 my($ptr, $size) = scalar_to_buffer $string;
108 c_function_thaat_does_not_keep_ptr( $ptr, $size); # okay
108 c_function_that_does_not_keep_ptr( $ptr, $size); # okay
109109
110110 my($ptr, $size) = scalar_to_buffer $string;
111111 my $ptr_copy = malloc($size);
335335
336336 Ilya Pavlov (Ilya33)
337337
338 Petr Pisar (ppisar)
338 Petr Písař (ppisar)
339339
340340 Mohammad S Anwar (MANWAR)
341341
344344 Meredith (merrilymeredith, MHOWARD)
345345
346346 Diab Jerius (DJERIUS)
347
348 Eric Brine (IKEGAMI)
349
350 szTheory
351
352 José Joaquín Atria (JJATRIA)
353
354 Pete Houston (openstrike, HOUSTON)
347355
348356 =head1 COPYRIGHT AND LICENSE
349357
55 use Carp ();
66
77 # ABSTRACT: Bundle foreign code with your Perl module
8 our $VERSION = '1.34'; # VERSION
8 our $VERSION = '1.56'; # VERSION
99
1010
1111 package FFI::Platypus;
149149
150150 =head1 VERSION
151151
152 version 1.34
152 version 1.56
153153
154154 =head1 SYNOPSIS
155155
198198
199199 use strict;
200200 use warnings;
201 use FFI::Platypus;
201 use FFI::Platypus 1.00;
202202
203203 {
204204 my $ffi = FFI::Platypus->new( api => 1 );
222222
223223 C<t/foo.t>
224224
225 use Test::More;
225 use Test2::V0;
226226 use Foo;
227227
228228 my $foo = Foo->new("platypus", 10);
354354 want something like this:
355355
356356 package Foo::Bar::Baz;
357 use FFI::Platypus;
357 use FFI::Platypus 1.00;
358358 my $ffi = FFI::Platypus->new( api => 1 );
359359 $ffi->bundle('Foo::Bar');
360360 ...
375375
376376 You're done! You can now use this class. Lets write a test to make sure it works,
377377
378 use strict;
379 use warnings;
380 use Test::More;
378 use Test2::V0;
381379 use Foo;
382380
383381 my $foo = Foo->new("platypus", 10);
540538
541539 use strict;
542540 use warnings;
543 use FFI::Platypus;
541 use FFI::Platypus 1.00;
544542
545543 our $VERSION = '1.00';
546544
578576 this then we don't have to be as careful about deallocating
579577 things in Perl space.
580578
579 =head2 Compiler or linker flags example
580
581 There are times when you will want to specify your own compiler and
582 linker flags for the C code that you are bundling. The C<TL;DR> is that
583 you can put a C<.fbx> file in your C<ffi> directory. This is a Perl
584 script that returns a hash reference that is passed into the
585 L<FFI::Build> constructor. This allows you to set a number of options,
586 including compiler and linker flags. A more detailed example follows:
587
588 You may want or need to set compiler and linker flags for your bundled
589 C code. For example, say we have a header file, but instead of
590 putting it in the C<ffi> directory we want to put it in a separate
591 directory called C<include>.
592
593 C<include/answer.h>:
594
595 #ifndef ANSWER_H
596 #define ANSWER_H
597
598 int answer(void);
599
600 #endif
601
602 C<ffi/answer.c>:
603
604 #include <answer.h>
605
606 int
607 answer(void)
608 {
609 /* the answer to life the universe and everything */
610 return 42;
611 }
612
613 C<lib/Answer.pm>:
614
615 package Answer;
616
617 use strict;
618 use warnings;
619 use FFI::Platypus 1.00;
620 use Exporter qw( import );
621
622 our @EXPORT = qw( answer );
623
624 my $ffi = FFI::Platypus->new( api => 1 );
625 $ffi->bundle;
626 $ffi->attach( answer => [] => 'int' );
627
628 1;
629
630 If you try to use this module just as-is you will get an error, about
631 not being able to find the header file. Probably something like this:
632
633 ffi/answer.c:1:10: fatal error: 'answer.h' file not found
634
635 So we put a C<answer.fbx> file in the C<ffi> directory. (In case you
636 are wondering FBX stands for "Ffi Build and file eXtensions should
637 whenever possible be three characters long"). The name of the file
638 can be anything so long as it ends in C<.fbx>, we just choose C<answer>
639 here because that is the name of the project.
640
641 C<ffi/answer.fbx>:
642
643 our $DIR;
644
645 return {
646 cflags => "-I/include",
647 source => "$DIR/*.c",
648 }
649
650 The C<$DIR> variable is provided by the builder code. It is the root
651 of the distribution, and is helpful if you need a fully qualified path.
652 In this case you could have also used C<ffi/*.c>.
653
654 The script returns a hash reference which is passed into the L<FFI::Build>
655 constructor, so you can use any of the options supported by that
656 class. Now we should be able to use our bundled module:
657
658 % perl -Ilib -MAnswer=answer -E 'say answer'
659 42
660
661 =head2 Using bundled code with Alien.
662
663 A useful technique is to use Platypus with L<Alien> technology. The
664 L<Alien> namespace is reserved for providing external non-Perl dependencies
665 for CPAN modules. The nominal L<Alien> module when installed looks
666 for the library locally, and if it can't be found it fetches it from
667 the internet, builds it, and installs it in a private directory so that
668 it can be used by other CPAN modules. For L<Aliens> that provide
669 shared libraries, and that have simple interfaces that do not require
670 additional C code you can easily just pass the shared libraries
671 to Platypus directly. For modules that require some bundled C code
672 and an L<Alien> you have to link the L<Alien> library with your bundled
673 code. If the L<Alien> uses the L<Alien::Base> interface then all you have
674 to do is give the name of the L<Alien> to L<FFI::Build>.
675
676 For example, the C<bzip2> library provides an interface that requires
677 the caller to allocate a C C<struct> and then pass it to its various
678 functions. The C<struct> is actually pretty simple and you could use
679 L<FFI::C> or L<FFI::Platypus::Record>, but here is an example of how you
680 would connect bundled C code with an L<Alien>.
681
682 C<ffi/compress.c>:
683
684 #include <bzlib.h>
685 #include <stdlib.h>
686
687 int
688 bzip2__new(bz_stream **stream, int blockSize100k, int verbosity, int workFactor )
689 {
690 *stream = malloc(sizeof(bz_stream));
691 (*stream)->bzalloc = NULL;
692 (*stream)->bzfree = NULL;
693 (*stream)->opaque = NULL;
694
695 return BZ2_bzCompressInit(*stream, blockSize100k, verbosity, workFactor );
696 }
697
698 C<lib/Bzip2.pm>:
699
700 package Bzip2;
701
702 use strict;
703 use warnings;
704 use FFI::Platypus 1.00;
705 use FFI::Platypus::Memory qw( free );
706
707 my $ffi = FFI::Platypus->new( api => 1 );
708 $ffi->bundle;
709
710 $ffi->mangler(sub {
711 my $name = shift;
712 $name =~ s/^/bzip2__/ unless $name =~ /^BZ2_/;
713 $name;
714 });
715
716 =head2 new
717
718 my $bzip2 = Bzip2->new($block_size_100k, $verbosity, $work_flow);
719
720 =cut
721
722 $ffi->attach( new => ['opaque*', 'int', 'int', 'int'] => 'int' => sub {
723 my $xsub = shift;
724 my $class = shift;
725 my $ptr;
726 my $ret = $xsub->(\$ptr, @_);
727 return bless \$ptr, $class;
728 });
729
730 $ffi->attach( [ BZ2_bzCompressEnd => 'DESTROY' ] => ['opaque'] => 'int' => sub {
731 my $xsub = shift;
732 my $self = shift;
733 my $ret = $xsub->($$self);
734 free $$self;
735 });
736
737 1;
738
739 The C<.fbx> file that goes with this to make it work with L<Alien::Libbz2>
740 is now pretty trivial:
741
742 C<ffi/bz2.fbx>:
743
744 {
745 alien => ['Alien::Libbz2'],
746 source => ['ffi/*.c'],
747 };
748
581749 =head1 AUTHOR
582750
583751 Author: Graham Ollis E<lt>plicease@cpan.orgE<gt>
604772
605773 Ilya Pavlov (Ilya33)
606774
607 Petr Pisar (ppisar)
775 Petr Písař (ppisar)
608776
609777 Mohammad S Anwar (MANWAR)
610778
613781 Meredith (merrilymeredith, MHOWARD)
614782
615783 Diab Jerius (DJERIUS)
784
785 Eric Brine (IKEGAMI)
786
787 szTheory
788
789 José Joaquín Atria (JJATRIA)
790
791 Pete Houston (openstrike, HOUSTON)
616792
617793 =head1 COPYRIGHT AND LICENSE
618794
1111 }, bool => sub { 1 }, fallback => 1;
1212
1313 # ABSTRACT: Platypus closure object
14 our $VERSION = '1.34'; # VERSION
14 our $VERSION = '1.56'; # VERSION
1515
1616
1717 sub new
6666
6767 package FFI::Platypus::ClosureData;
6868
69 our $VERSION = '1.34'; # VERSION
69 our $VERSION = '1.56'; # VERSION
7070
7171 1;
7272
8282
8383 =head1 VERSION
8484
85 version 1.34
85 version 1.56
8686
8787 =head1 SYNOPSIS
8888
9393
9494 create closure from Platypus object
9595
96 use FFI::Platypus;
96 use FFI::Platypus 1.00;
9797 my $ffi = FFI::Platypus->new( api => 1 );
9898 my $closure = $ffi->closure(sub { print "hello world\n" });
9999
168168
169169 Ilya Pavlov (Ilya33)
170170
171 Petr Pisar (ppisar)
171 Petr Písař (ppisar)
172172
173173 Mohammad S Anwar (MANWAR)
174174
178178
179179 Diab Jerius (DJERIUS)
180180
181 Eric Brine (IKEGAMI)
182
183 szTheory
184
185 José Joaquín Atria (JJATRIA)
186
187 Pete Houston (openstrike, HOUSTON)
188
181189 =head1 COPYRIGHT AND LICENSE
182190
183191 This software is copyright (c) 2015,2016,2017,2018,2019,2020 by Graham Ollis.
66 use FFI::Platypus;
77
88 # ABSTRACT: Define constants in C space for Perl
9 our $VERSION = '1.34'; # VERSION
9 our $VERSION = '1.56'; # VERSION
1010
1111
1212 {
6565
6666 =head1 VERSION
6767
68 version 1.34
68 version 1.56
6969
7070 =head1 SYNOPSIS
7171
8686
8787 use strict;
8888 use warnings;
89 use FFI::Platypus;
90 use base qw( Exporter );
91
92 my $ffi = FFI::Platypus->new;
93 # sets constatns Foo::FOO and ABC::DEF from C
89 use FFI::Platypus 1.00;
90 use Exporter qw( import );
91
92 my $ffi = FFI::Platypus->new( api => 1 );
93 # sets constants Foo::FOO and ABC::DEF from C
9494 $ffi->bundle;
9595
9696 1;
180180
181181 use strict;
182182 use warnings;
183 use FFI::Platypus;
183 use FFI::Platypus 1.00;
184184
185185 {
186186 my $ffi = FFI::Platypus->new( api => 1 );
215215
216216 Ilya Pavlov (Ilya33)
217217
218 Petr Pisar (ppisar)
218 Petr Písař (ppisar)
219219
220220 Mohammad S Anwar (MANWAR)
221221
224224 Meredith (merrilymeredith, MHOWARD)
225225
226226 Diab Jerius (DJERIUS)
227
228 Eric Brine (IKEGAMI)
229
230 szTheory
231
232 José Joaquín Atria (JJATRIA)
233
234 Pete Houston (openstrike, HOUSTON)
227235
228236 =head1 COPYRIGHT AND LICENSE
229237
22 use strict;
33 use warnings;
44 use 5.008004;
5 use base qw( Exporter );
5 use Exporter qw( import );
66
77 require FFI::Platypus;
88 our @EXPORT = qw( dlopen dlerror dlsym dlclose );
99 push @EXPORT, grep /RTLD_/, keys %FFI::Platypus::DL::;
1010
1111 # ABSTRACT: Slightly non-portable interface to libdl
12 our $VERSION = '1.34'; # VERSION
12 our $VERSION = '1.56'; # VERSION
1313
1414
1515 1;
2626
2727 =head1 VERSION
2828
29 version 1.34
29 version 1.56
3030
3131 =head1 SYNOPSIS
3232
33 use FFI::Platypus;
33 use FFI::Platypus 1.00;
3434 use FFI::Platypus::DL;
3535
3636 my $handle = dlopen("./libfoo.so", RTLD_PLATYPUS_DEFAULT);
200200
201201 Ilya Pavlov (Ilya33)
202202
203 Petr Pisar (ppisar)
203 Petr Písař (ppisar)
204204
205205 Mohammad S Anwar (MANWAR)
206206
209209 Meredith (merrilymeredith, MHOWARD)
210210
211211 Diab Jerius (DJERIUS)
212
213 Eric Brine (IKEGAMI)
214
215 szTheory
216
217 José Joaquín Atria (JJATRIA)
218
219 Pete Houston (openstrike, HOUSTON)
212220
213221 =head1 COPYRIGHT AND LICENSE
214222
55 use FFI::Platypus;
66
77 # ABSTRACT: An FFI function object
8 our $VERSION = '1.34'; # VERSION
8 our $VERSION = '1.56'; # VERSION
99
1010
1111 use overload '&{}' => sub {
1818
1919 package FFI::Platypus::Function::Function;
2020
21 use base qw( FFI::Platypus::Function );
21 use parent qw( FFI::Platypus::Function );
2222
2323 sub attach
2424 {
5454
5555 package FFI::Platypus::Function::Wrapper;
5656
57 use base qw( FFI::Platypus::Function );
57 use parent qw( FFI::Platypus::Function );
5858
5959 sub new
6060 {
126126
127127 =head1 VERSION
128128
129 version 1.34
129 version 1.56
130130
131131 =head1 SYNOPSIS
132132
133 use FFI::Platypus;
133 use FFI::Platypus 1.00;
134134
135135 # call directly
136136 my $ffi = FFI::Platypus->new( api => 1 );
198198
199199 Ilya Pavlov (Ilya33)
200200
201 Petr Pisar (ppisar)
201 Petr Písař (ppisar)
202202
203203 Mohammad S Anwar (MANWAR)
204204
207207 Meredith (merrilymeredith, MHOWARD)
208208
209209 Diab Jerius (DJERIUS)
210
211 Eric Brine (IKEGAMI)
212
213 szTheory
214
215 José Joaquín Atria (JJATRIA)
216
217 Pete Houston (openstrike, HOUSTON)
210218
211219 =head1 COPYRIGHT AND LICENSE
212220
33 use warnings;
44 use 5.008004;
55 use FFI::Platypus;
6 use base qw( Exporter );
6 use Exporter qw( import );
77
88 require FFI::Platypus;
99 _init();
1111 our @EXPORT = grep /^FFI_PL/, keys %FFI::Platypus::Internal::;
1212
1313 # ABSTRACT: For internal use only
14 our $VERSION = '1.34'; # VERSION
14 our $VERSION = '1.56'; # VERSION
1515
1616
1717 1;
2828
2929 =head1 VERSION
3030
31 version 1.34
31 version 1.56
3232
3333 =head1 SYNOPSIS
3434
6565
6666 Ilya Pavlov (Ilya33)
6767
68 Petr Pisar (ppisar)
68 Petr Písař (ppisar)
6969
7070 Mohammad S Anwar (MANWAR)
7171
7575
7676 Diab Jerius (DJERIUS)
7777
78 Eric Brine (IKEGAMI)
79
80 szTheory
81
82 José Joaquín Atria (JJATRIA)
83
84 Pete Houston (openstrike, HOUSTON)
85
7886 =head1 COPYRIGHT AND LICENSE
7987
8088 This software is copyright (c) 2015,2016,2017,2018,2019,2020 by Graham Ollis.
44 use 5.008004;
55
66 # ABSTRACT: Documentation and tools for using Platypus with the Assembly
7 our $VERSION = '1.34'; # VERSION
7 our $VERSION = '1.56'; # VERSION
88
99
1010 sub native_type_map
2626
2727 =head1 VERSION
2828
29 version 1.34
29 version 1.56
3030
3131 =head1 SYNOPSIS
3232
33 use FFI::Platypus;
33 use FFI::Platypus 1.00;
3434 my $ffi = FFI::Platypus->new( api => 1 );
3535 $ffi->lang('ASM');
3636
6363
6464 The Core Platypus documentation.
6565
66 =item L<FFI::Platypus::Lang>
67
68 Includes a list of other language plugins for Platypus.
69
6670 =back
6771
6872 =head1 AUTHOR
9195
9296 Ilya Pavlov (Ilya33)
9397
94 Petr Pisar (ppisar)
98 Petr Písař (ppisar)
9599
96100 Mohammad S Anwar (MANWAR)
97101
101105
102106 Diab Jerius (DJERIUS)
103107
108 Eric Brine (IKEGAMI)
109
110 szTheory
111
112 José Joaquín Atria (JJATRIA)
113
114 Pete Houston (openstrike, HOUSTON)
115
104116 =head1 COPYRIGHT AND LICENSE
105117
106118 This software is copyright (c) 2015,2016,2017,2018,2019,2020 by Graham Ollis.
44 use 5.008004;
55
66 # ABSTRACT: Documentation and tools for using Platypus with the C programming language
7 our $VERSION = '1.34'; # VERSION
7 our $VERSION = '1.56'; # VERSION
88
99
1010 sub native_type_map
2727
2828 =head1 VERSION
2929
30 version 1.34
30 version 1.56
3131
3232 =head1 SYNOPSIS
3333
34 use FFI::Platypus;
34 use FFI::Platypus 1.00;
3535 my $ffi = FFI::Platypus->new( api => 1 );
3636 $ffi->lang('C'); # the default
3737
5959 =item L<FFI::Platypus>
6060
6161 The Core Platypus documentation.
62
63 =item L<FFI::Platypus::Lang>
64
65 Includes a list of other language plugins for Platypus.
6266
6367 =back
6468
8892
8993 Ilya Pavlov (Ilya33)
9094
91 Petr Pisar (ppisar)
95 Petr Písař (ppisar)
9296
9397 Mohammad S Anwar (MANWAR)
9498
98102
99103 Diab Jerius (DJERIUS)
100104
105 Eric Brine (IKEGAMI)
106
107 szTheory
108
109 José Joaquín Atria (JJATRIA)
110
111 Pete Houston (openstrike, HOUSTON)
112
101113 =head1 COPYRIGHT AND LICENSE
102114
103115 This software is copyright (c) 2015,2016,2017,2018,2019,2020 by Graham Ollis.
55 use Config;
66
77 # ABSTRACT: Documentation and tools for using Platypus with the Windows API
8 our $VERSION = '1.34'; # VERSION
8 our $VERSION = '1.56'; # VERSION
99
1010
1111 sub abi
101101 SIZE_T ULONG_PTR
102102 SSIZE_T LONG_PTR
103103 UCHAR uint8
104 UINT uint
104105 UINT8 uint8
105106 UINT16 uint16
106107 UINT32 uint32
173174 \%map;
174175 }
175176
177
178 sub load_custom_types
179 {
180 my(undef, $ffi) = @_;
181 $ffi->load_custom_type('::WideString' => 'LPCWSTR', access => 'read' );
182 $ffi->load_custom_type('::WideString' => 'LPWSTR', access => 'write' );
183 }
184
176185 1;
177186
178187 __END__
187196
188197 =head1 VERSION
189198
190 version 1.34
199 version 1.56
191200
192201 =head1 SYNOPSIS
193202
194 use FFI::Platypus;
195 my $ffi = FFI::Platypus->new( api => 1 );
203 use utf8;
204 use FFI::Platypus 1.35;
205
206 my $ffi = FFI::Platypus->new(
207 api => 1,
208 lib => [undef],
209 );
210
211 # load this plugin
196212 $ffi->lang('Win32');
213
214 # Pass two double word integer values to the Windows API Beep function.
215 $ffi->attach( Beep => ['DWORD','DWORD'] => 'BOOL');
216 Beep(262, 300);
217
218 # Send a Unicode string to the Windows API MessageBoxW function.
219 use constant MB_OK => 0x00000000;
220 use constant MB_DEFAULT_DESKTOP_ONLY => 0x00020000;
221 $ffi->attach( [MessageBoxW => 'MessageBox'] => [ 'HWND', 'LPCWSTR', 'LPCWSTR', 'UINT'] => 'int' );
222 MessageBox(undef, "I ❤️ Platypus", "Confession", MB_OK|MB_DEFAULT_DESKTOP_ONLY);
223
224 # Get a Unicode string from the Windows API GetCurrentDirectoryW function.
225 $ffi->attach( [GetCurrentDirectoryW => 'GetCurrentDirectory'] => ['DWORD', 'LPWSTR'] => 'DWORD');
226 my $buf_size = GetCurrentDirectory(0,undef);
227 my $dir = "\0\0" x $buf_size;
228 GetCurrentDirectory($buf_size, \$dir) or die $^E;
229 print "$dir\n";
197230
198231 =head1 DESCRIPTION
199232
200233 This module provides the Windows datatypes used by the Windows API.
201234 This means that you can use things like C<DWORD> as an alias for
202 C<uint32>.
235 C<uint32>. The full list of type aliases is not documented here as
236 it may change over time or be dynamic. You can get the list for your
237 current environment with this one-liner:
238
239 perl -MFFI::Platypus::Lang::Win32 -E "say for sort keys %{ FFI::Platypus::Lang::Win32->native_type_map }"
240
241 This plugin will also set the correct ABI for use with Win32 API
242 functions. (On 32 bit systems a different ABI is used for Win32 API
243 than what is used by the C library, on 32 bit systems the same ABI
244 is used). Most of the time this exactly what you want, but if you
245 need to use functions that are using the standard C calling convention,
246 but need the Win32 types, you can do that by setting the ABI back
247 immediately after loading the language plugin:
248
249 $ffi->lang('Win32');
250 $ffi->abi('default_abi');
251
252 Most of the types should be pretty self-explanatory or at least provided
253 in the Microsoft documentation on the internet, but the use of Unicode
254 strings probably requires some more detail:
255
256 [version 1.35]
257
258 This plugin also provides C<LPCWSTR> and C<LPWSTR> "wide" string types
259 which are implemented using L<FFI::Platypus::Type::WideString>. For
260 full details, please see the documentation for that module, and note
261 that C<LPCWSTR> is a wide string in the read-only string mode and
262 C<LPWSTR> is a wide string in the read-write buffer mode.
263
264 The C<LPCWSTR> is handled fairly transparently by the plugin, but for
265 when using read-write buffers (C<LPWSTR>) with the Win32 API you typically
266 need to allocate a buffer string of the right size. These examples will
267 use C<GetCurrentDirectoryW> attached as C<GetCurrentDirectory>
268 as in the synopsis above. These are illustrative only, you would normally
269 want to use the L<Cwd> module to get the current working directory.
270
271 =over 4
272
273 =item default buffer size 2048
274
275 The simplest way is to fallback on the rather arbitrary default buffer size of 2048.
276
277 my $dir;
278 GetCurrentDirectory(1024, \$dir);
279 print "I am in the directory: $dir\n";
280
281 B<Discussion>: This only works if you know the API that you are using will not ever use
282 more than 2048 bytes. The author believes this to be the case for C<GetCurrentDirectoryW>
283 since directory paths in windows have a maximum of 260 characters. If every character was
284 outside the Basic Multilingual Plane (BMP) they would take up exactly 4 characters each.
285 (This is probably not ever the case since the disk volume at least will be a Latin letter).
286 Taking account of the C<NULL> termination you would need 260 * 4 + 2 bytes or 1048 bytes.
287
288 We pass in a reference to our scalar so that the Win32 API can write into it.
289
290 We are passing in half the number of bytes as the first argument because the API expects
291 the number of C<WCHAR> (or C<wchar_t>), not the number of bytes or the technically the
292 number of characters since characters can take up either 2 or 4 bytes in UTF-16.
293
294 =item allocate your buffer to your own size.
295
296 If possible it is of course always best to allocate exactly the size of buffer that
297 you need.
298
299 my $size = GetCurrentDirectory(0, undef);
300 my $dir = "\0\0" x $size;
301 GetCurrentDirectory($size, \$dir);
302 print "I am in the directory: $dir\n";
303
304 B<Discussion>: In this case the API provides a way of getting the exact size of buffer
305 that you need. We allocate this in Perl by creating a string of C<NULLs> of the right
306 length. The Perl string C<"\0"> is exactly on byte, so we double that before using the
307 C<x> operator to multiple that by the size returned by the API.
308
309 Now, somewhat unexpectedly what is returned is not the same buffer, but a new string
310 in new UTF-8 encoded Perl string. This is what you want most of the time.
311
312 =item initialize your read-write buffer
313
314 Some APIs might be modifying an existing string rather than just writing an entirely
315 new one. In that case you still want to allocate a buffer, but you want to initialize
316 it with a value. You can do this by passing an array reference instead of a scalar
317 reference. The firs element of the array is the buffer, and the second is the initialization.
318
319 my $dir;
320 GetCurrentDirectory($size, [ \$dir, "I ❤ Perl + Platypus" ]);
321
322 B<Discussion>: Note that this particular API ignores the string passed in and writes
323 over it, but this demonstrates how you would initialize a buffer string. Once again,
324 if C<$dir> is not initialized (is C<undef>), then a buffer of the default size of 2048
325 bytes will be created internally. You can also allocate a specific number of bytes
326 as in the previous example.
327
328 =item allocate memory using C<malloc> etc.
329
330 You can also allocate memory using C<malloc> (see L<FFI::Platypus::Memory>) and encode
331 your string using L<Encode> and copy it using C<wcscpy>. This may be appropriate in
332 some cases, but it is beyond the scope of this document.
333
334 =back
203335
204336 =head1 METHODS
205337
207339
208340 my $abi = FFI::Platypus::Lang::Win32->abi;
209341
342 This is called internally when the type plugin is loaded by Platypus.
343 It selects the appropriate ABI to make Win32 API function calls.
344
210345 =head2 native_type_map
211346
212347 my $hashref = FFI::Platypus::Lang::Win32->native_type_map;
348
349 This is called internally when the type plugin is loaded by Platypus.
350 It provides types aliases useful on the Windows platform, so it may
351 also be useful for introspection.
213352
214353 This returns a hash reference containing the native aliases for the
215354 Windows API. That is the keys are native Windows API C types and the
216355 values are libffi native types.
217356
357 This will includes types like C<DWORD> and C<HWND>, and others. The
358 full list may be adjusted over time and may be computed dynamically.
359 To get the full list for your install you can use this one-liner:
360
361 perl -MFFI::Platypus::Lang::Win32 -E "say for sort keys %{ FFI::Platypus::Lang::Win32->native_type_map }"
362
363 =head2 load_custom_types
364
365 FFI::Platypus::Lang::Win32->load_custom_types($ffi);
366
367 This is called internally when the type plugin is loaded by Platypus.
368 It provides custom types useful on the Windows platform. For now
369 that means the C<LPWSTR> and C<LPCWSTR> types.
370
371 =head1 CAVEATS
372
373 The Win32 API isn't a different computer language in the same sense that the
374 other language plugins (those for Fortran or Rust for example). But implementing
375 these types as a language plugin is the most convenient way to do it.
376
377 Prior to version 1.35, this plugin didn't provide an implementation for
378 C<LPWSTR> or C<LPCWSTR>, so in the likely event that you need those types make
379 sure you also require at least that version of Platypus.
380
218381 =head1 SEE ALSO
219382
220383 =over 4
223386
224387 The Core Platypus documentation.
225388
389 =item L<FFI::Platypus::Lang>
390
391 Includes a list of other language plugins for Platypus.
392
393 =item L<FFI::Platypus::Type::WideString>
394
395 The wide string type plugin use for C<LPWSTR> and C<LPCWSTR> types.
396
397 =item L<Win32::API>
398
399 Another FFI, but for Windows only.
400
226401 =back
227402
228403 =head1 AUTHOR
251426
252427 Ilya Pavlov (Ilya33)
253428
254 Petr Pisar (ppisar)
429 Petr Písař (ppisar)
255430
256431 Mohammad S Anwar (MANWAR)
257432
260435 Meredith (merrilymeredith, MHOWARD)
261436
262437 Diab Jerius (DJERIUS)
438
439 Eric Brine (IKEGAMI)
440
441 szTheory
442
443 José Joaquín Atria (JJATRIA)
444
445 Pete Houston (openstrike, HOUSTON)
263446
264447 =head1 COPYRIGHT AND LICENSE
265448
44 use 5.008004;
55
66 # ABSTRACT: Language specific customizations
7 our $VERSION = '1.34'; # VERSION
7 our $VERSION = '1.56'; # VERSION
88
99
1010
2222
2323 =head1 VERSION
2424
25 version 1.34
25 version 1.56
2626
2727 =head1 SYNOPSIS
2828
4242
4343 =item L<FFI::Platypus>
4444
45 Platypus itself.
46
47 =item L<FFI::Platypus::Lang::ASM>
48
49 This language plugin provides no type aliases, and is intended
50 for use with assembly language or for when no other language
51 plugin is appropriate.
52
4553 =item L<FFI::Platypus::Lang::C>
54
55 Language plugin for the C programming language.
56
57 =item L<FFI::Platypus::Lang::Fortran>
58
59 Non-core language plugin for the Fortran programming language.
60
61 =item L<FFI::Platypus::Lang::CPP>
62
63 Non-core language plugin for the C++ programming language.
64
65 =item L<FFI::Platypus::Lang::Go>
66
67 Non-core language plugin for the Go programming language.
68
69 =item L<FFI::Platypus::Lang::Pascal>
70
71 Non-core language plugin for the Pascal programming language.
72
73 =item L<FFI::Platypus::Lang::Rust>
74
75 Non-core language plugin for the Rust programming language.
76
77 =item L<FFI::Platypus::Lang::Win32>
78
79 Language plugin for use with the Win32 API.
4680
4781 =back
4882
72106
73107 Ilya Pavlov (Ilya33)
74108
75 Petr Pisar (ppisar)
109 Petr Písař (ppisar)
76110
77111 Mohammad S Anwar (MANWAR)
78112
82116
83117 Diab Jerius (DJERIUS)
84118
119 Eric Brine (IKEGAMI)
120
121 szTheory
122
123 José Joaquín Atria (JJATRIA)
124
125 Pete Houston (openstrike, HOUSTON)
126
85127 =head1 COPYRIGHT AND LICENSE
86128
87129 This software is copyright (c) 2015,2016,2017,2018,2019,2020 by Graham Ollis.
44 use 5.008004;
55
66 # ABSTRACT: Legacy Platypus interfaces
7 our $VERSION = '1.34'; # VERSION
7 our $VERSION = '1.56'; # VERSION
88
99
1010 package FFI::Platypus;
7777
7878 =head1 VERSION
7979
80 version 1.34
80 version 1.56
8181
8282 =head1 DESCRIPTION
8383
109109
110110 Ilya Pavlov (Ilya33)
111111
112 Petr Pisar (ppisar)
112 Petr Písař (ppisar)
113113
114114 Mohammad S Anwar (MANWAR)
115115
119119
120120 Diab Jerius (DJERIUS)
121121
122 Eric Brine (IKEGAMI)
123
124 szTheory
125
126 José Joaquín Atria (JJATRIA)
127
128 Pete Houston (openstrike, HOUSTON)
129
122130 =head1 COPYRIGHT AND LICENSE
123131
124132 This software is copyright (c) 2015,2016,2017,2018,2019,2020 by Graham Ollis.
33 use warnings;
44 use 5.008004;
55 use FFI::Platypus;
6 use base qw( Exporter );
6 use Exporter qw( import );
77
88 # ABSTRACT: Memory functions for FFI
9 our $VERSION = '1.34'; # VERSION
9 our $VERSION = '1.56'; # VERSION
1010
1111
1212 our @EXPORT = qw( malloc free calloc realloc memcpy memset strdup strndup strcpy );
3232 $ffi->attach(strdup => ['string'] => 'opaque' => '$');
3333 $_strdup_impl = 'libc';
3434 };
35 if($@ && $^O eq 'MSWin32')
36 {
37 eval {
38 die "do not use c impl" if ($ENV{FFI_PLATYPUS_MEMORY_STRDUP_IMPL}||'libc') eq 'ffi';
39 $ffi->attach([ _strdup => 'strdup' ] => ['string'] => 'opaque' => '$');
40 $_strdup_impl = 'libc';
41 };
42 }
3543 if($@)
3644 {
45 warn "using bundled strdup";
3746 $_strdup_impl = 'ffi';
3847 $ffi->attach([ ffi_platypus_memory__strdup => 'strdup' ] => ['string'] => 'opaque' => '$');
3948 }
5261 $ffi->attach([ ffi_platypus_memory__strndup => 'strndup' ] => ['string','size_t'] => 'opaque' => '$$');
5362 }
5463
64 # used internally by FFI::Platypus::Type::WideString, may go away.
65 eval { $ffi->attach( [ wcslen => '_wcslen' ] => [ 'opaque' ] => 'size_t' => '$' ) };
66 eval { $ffi->attach( [ wcsnlen => '_wcsnlen' ] => [ 'string', 'size_t' ] => 'size_t' => '$$' ) };
67
5568 1;
5669
5770 __END__
6679
6780 =head1 VERSION
6881
69 version 1.34
82 version 1.56
7083
7184 =head1 SYNOPSIS
7285
198211
199212 Ilya Pavlov (Ilya33)
200213
201 Petr Pisar (ppisar)
214 Petr Písař (ppisar)
202215
203216 Mohammad S Anwar (MANWAR)
204217
207220 Meredith (merrilymeredith, MHOWARD)
208221
209222 Diab Jerius (DJERIUS)
223
224 Eric Brine (IKEGAMI)
225
226 szTheory
227
228 José Joaquín Atria (JJATRIA)
229
230 Pete Houston (openstrike, HOUSTON)
210231
211232 =head1 COPYRIGHT AND LICENSE
212233
44 use 5.008004;
55
66 # ABSTRACT: FFI support for structured records data
7 our $VERSION = '1.34'; # VERSION
7 our $VERSION = '1.56'; # VERSION
88
99
1010 {
3030
3131 $ffi->attach( _find_symbol => ['string'] => 'ffi_type');
3232
33 $ffi->attach( new => ['ffi_type[]'] => 'meta_t', sub {
34 my($xsub, $class, $elements) = @_;
33 $ffi->attach( new => ['ffi_type[]','int'] => 'meta_t', sub {
34 my($xsub, $class, $elements, $closure_safe) = @_;
3535
3636 if(ref($elements) ne 'ARRAY')
3737 {
5656
5757 push @element_type_pointers, undef;
5858
59 my $ptr = $xsub->(\@element_type_pointers);
59 my $ptr = $xsub->(\@element_type_pointers, $closure_safe);
6060 bless \$ptr, $class;
6161 });
6262
6767
6868 $ffi->attach( DESTROY => ['meta_t'] => 'void' );
6969 }
70
71 sub ptr { ${ shift() } }
7072
7173 1;
7274
8284
8385 =head1 VERSION
8486
85 version 1.34
87 version 1.56
8688
8789 =head1 DESCRIPTION
8890
115117
116118 Ilya Pavlov (Ilya33)
117119
118 Petr Pisar (ppisar)
120 Petr Písař (ppisar)
119121
120122 Mohammad S Anwar (MANWAR)
121123
125127
126128 Diab Jerius (DJERIUS)
127129
130 Eric Brine (IKEGAMI)
131
132 szTheory
133
134 José Joaquín Atria (JJATRIA)
135
136 Pete Houston (openstrike, HOUSTON)
137
128138 =head1 COPYRIGHT AND LICENSE
129139
130140 This software is copyright (c) 2015,2016,2017,2018,2019,2020 by Graham Ollis.
55 use Carp qw( croak );
66
77 # ABSTRACT: Tied array interface for record array members
8 our $VERSION = '1.34'; # VERSION
8 our $VERSION = '1.56'; # VERSION
99
1010
1111 sub TIEARRAY
6262
6363 =head1 VERSION
6464
65 version 1.34
65 version 1.56
6666
6767 =head1 SYNOPSIS
6868
143143
144144 Ilya Pavlov (Ilya33)
145145
146 Petr Pisar (ppisar)
146 Petr Písař (ppisar)
147147
148148 Mohammad S Anwar (MANWAR)
149149
153153
154154 Diab Jerius (DJERIUS)
155155
156 Eric Brine (IKEGAMI)
157
158 szTheory
159
160 José Joaquín Atria (JJATRIA)
161
162 Pete Houston (openstrike, HOUSTON)
163
156164 =head1 COPYRIGHT AND LICENSE
157165
158166 This software is copyright (c) 2015,2016,2017,2018,2019,2020 by Graham Ollis.
44 use 5.008004;
55 use Carp qw( croak );
66 use FFI::Platypus;
7 use base qw( Exporter );
7 use Exporter qw( import );
88 use constant 1.32 ();
99
1010 our @EXPORT = qw( record_layout record_layout_1 );
1111
1212 # ABSTRACT: FFI support for structured records data
13 our $VERSION = '1.34'; # VERSION
13 our $VERSION = '1.56'; # VERSION
1414
1515
1616 sub record_layout_1
7373
7474 my @destroy;
7575 my @ffi_types;
76 my $has_string;
7677
7778 while(@_)
7879 {
8687 croak "accessor/method $name already exists"
8788 if $caller->can($name);
8889
89 my $size = $type->sizeof;
90 my $align = $type->alignof;
90 my $size = $type->sizeof;
91 my $align = $type->alignof;
9192 $record_align = $align if $align > $record_align;
92 my $meta = $type->meta;
93 my $meta = $type->meta;
9394
9495 $offset++ while $offset % $align;
9596
107108 $ffi_type = $meta->{ffi_type};
108109 $count = $meta->{element_count};
109110 $count = 1 unless defined $count;
111
112 $has_string = 1 if $meta->{type} eq 'string';
110113 }
111114 push @ffi_types, $ffi_type for 1..$count;
112115 }
165168 require FFI::Platypus::Record::Meta;
166169 my $ffi_meta = FFI::Platypus::Record::Meta->new(
167170 \@ffi_types,
171 !$has_string,
168172 );
169173 *{join '::', $caller, '_ffi_meta'} = sub { $ffi_meta };
170174 }
199203
200204 =head1 VERSION
201205
202 version 1.34
206 version 1.56
203207
204208 =head1 SYNOPSIS
205209
222226
223227 use FFI::Platypus::Record;
224228
225 record_layout_1(qw(
226 int age
227 string(3) title
228 string_rw name
229 ));
229 record_layout_1(
230 'int' => 'age',
231 'string(3)' => 'title',
232 'string rw' => 'name',
233 );
230234
231235 package main;
232236
233 use FFI::Platypus;
237 use FFI::Platypus 1.00;
234238
235239 my $ffi = FFI::Platypus->new( api => 1 );
236240 $ffi->lib("myperson.so");
275279
276280 =item C pointers to C<struct> types
277281
278 =item Passing C <struct>s by-value.
282 =item Passing C C<struct>s by-value.
279283
280284 =back
281285
536540
537541 Ilya Pavlov (Ilya33)
538542
539 Petr Pisar (ppisar)
543 Petr Písař (ppisar)
540544
541545 Mohammad S Anwar (MANWAR)
542546
545549 Meredith (merrilymeredith, MHOWARD)
546550
547551 Diab Jerius (DJERIUS)
552
553 Eric Brine (IKEGAMI)
554
555 szTheory
556
557 José Joaquín Atria (JJATRIA)
558
559 Pete Houston (openstrike, HOUSTON)
548560
549561 =head1 COPYRIGHT AND LICENSE
550562
44 use 5.008004;
55 use File::Spec;
66
7 our $VERSION = '1.34'; # VERSION
7 our $VERSION = '1.56'; # VERSION
88
99 sub dist_dir ($)
1010 {
6363
6464 =head1 VERSION
6565
66 version 1.34
66 version 1.56
6767
6868 =head1 AUTHOR
6969
9191
9292 Ilya Pavlov (Ilya33)
9393
94 Petr Pisar (ppisar)
94 Petr Písař (ppisar)
9595
9696 Mohammad S Anwar (MANWAR)
9797
101101
102102 Diab Jerius (DJERIUS)
103103
104 Eric Brine (IKEGAMI)
105
106 szTheory
107
108 José Joaquín Atria (JJATRIA)
109
110 Pete Houston (openstrike, HOUSTON)
111
104112 =head1 COPYRIGHT AND LICENSE
105113
106114 This software is copyright (c) 2015,2016,2017,2018,2019,2020 by Graham Ollis.
1212 use FFI::Platypus::Buffer qw( buffer_to_scalar );
1313
1414 # ABSTRACT: Convert string scalar to a buffer as a pointer / size_t combination
15 our $VERSION = '1.34'; # VERSION
15 our $VERSION = '1.56'; # VERSION
1616
1717
1818 my @stack;
6060
6161 =head1 VERSION
6262
63 version 1.34
63 version 1.56
6464
6565 =head1 SYNOPSIS
6666
131131
132132 Ilya Pavlov (Ilya33)
133133
134 Petr Pisar (ppisar)
134 Petr Písař (ppisar)
135135
136136 Mohammad S Anwar (MANWAR)
137137
141141
142142 Diab Jerius (DJERIUS)
143143
144 Eric Brine (IKEGAMI)
145
146 szTheory
147
148 José Joaquín Atria (JJATRIA)
149
150 Pete Houston (openstrike, HOUSTON)
151
144152 =head1 COPYRIGHT AND LICENSE
145153
146154 This software is copyright (c) 2015,2016,2017,2018,2019,2020 by Graham Ollis.
55 use FFI::Platypus;
66
77 # ABSTRACT: Platypus custom type for arrays of strings
8 our $VERSION = '1.34'; # VERSION
8 our $VERSION = '1.56'; # VERSION
99
1010
1111 use constant _incantation =>
124124
125125 =head1 VERSION
126126
127 version 1.34
127 version 1.56
128128
129129 =head1 SYNOPSIS
130130
241241
242242 Ilya Pavlov (Ilya33)
243243
244 Petr Pisar (ppisar)
244 Petr Písař (ppisar)
245245
246246 Mohammad S Anwar (MANWAR)
247247
250250 Meredith (merrilymeredith, MHOWARD)
251251
252252 Diab Jerius (DJERIUS)
253
254 Eric Brine (IKEGAMI)
255
256 szTheory
257
258 José Joaquín Atria (JJATRIA)
259
260 Pete Houston (openstrike, HOUSTON)
253261
254262 =head1 COPYRIGHT AND LICENSE
255263
66 use Scalar::Util qw( readonly );
77
88 # ABSTRACT: Convert a pointer to a string and back
9 our $VERSION = '1.34'; # VERSION
9 our $VERSION = '1.56'; # VERSION
1010
1111
1212 use constant _incantation =>
7575
7676 =head1 VERSION
7777
78 version 1.34
78 version 1.56
7979
8080 =head1 SYNOPSIS
8181
159159
160160 Ilya Pavlov (Ilya33)
161161
162 Petr Pisar (ppisar)
162 Petr Písař (ppisar)
163163
164164 Mohammad S Anwar (MANWAR)
165165
169169
170170 Diab Jerius (DJERIUS)
171171
172 Eric Brine (IKEGAMI)
173
174 szTheory
175
176 José Joaquín Atria (JJATRIA)
177
178 Pete Houston (openstrike, HOUSTON)
179
172180 =head1 COPYRIGHT AND LICENSE
173181
174182 This software is copyright (c) 2015,2016,2017,2018,2019,2020 by Graham Ollis.
0 package FFI::Platypus::Type::WideString;
1
2 use strict;
3 use warnings;
4 use 5.008004;
5 use FFI::Platypus;
6 use FFI::Platypus::Memory qw( memcpy );
7 use FFI::Platypus::Buffer qw( buffer_to_scalar scalar_to_pointer scalar_to_buffer );
8 use Encode qw( decode encode find_encoding );
9 use Carp ();
10
11 # ABSTRACT: Platypus custom type for Unicode "wide" strings
12 our $VERSION = '1.56'; # VERSION
13
14
15 my @stack; # To keep buffer alive.
16
17 sub _compute_wide_string_encoding
18 {
19 foreach my $need (qw( wcslen wcsnlen ))
20 {
21 die "This type plugin needs $need from libc, and cannot find it"
22 unless FFI::Platypus::Memory->can("_$need");
23 }
24
25 my $ffi = FFI::Platypus->new( api => 1, lib => [undef] );
26
27 my $size = eval { $ffi->sizeof('wchar_t') };
28 die 'no wchar_t' if $@;
29
30 my %orders = (
31 join('', 1..$size) => 'BE',
32 join('', reverse 1..$size) => 'LE',
33 );
34
35 my $byteorder = join '', @{ $ffi->cast( "wchar_t*", "uint8[$size]", \hex(join '', map { "0$_" } 1..$size) ) };
36
37 my $encoding;
38
39 if($size == 2)
40 {
41 $encoding = 'UTF-16';
42 }
43 elsif($size == 4)
44 {
45 $encoding = 'UTF-32';
46 }
47 else
48 {
49 die "not sure what encoding to use for size $size";
50 }
51
52 if(defined $orders{$byteorder})
53 {
54 $encoding .= $orders{$byteorder};
55 }
56 else
57 {
58 die "odd byteorder $byteorder not (yet) supported";
59 }
60
61 die "Perl doesn't recognize $encoding as an encoding"
62 unless find_encoding($encoding);
63
64 return ($encoding, $size);
65 }
66
67 sub ffi_custom_type_api_1
68 {
69 my %args = @_;
70
71 # TODO: it wold be nice to allow arbitrary encodings, but we are
72 # relying on a couple of wcs* functions to compute the string, so
73 # we will leave that for future development.
74 my($encoding, $width) = __PACKAGE__->_compute_wide_string_encoding();
75
76 # it is hard to come up with a default size for write buffers
77 # but 2048 is a multiple of 1024 that is large enough to fit
78 # any Windows PATH (260*4)+2 = 1042
79 #
80 # (assuming all characters in the PATH are in the BMP, which is
81 # admitedly unlikely, possilby impossible (?) and and a null
82 # termination of two bytes).
83 #
84 # it is arbitrary and based on a platform specific windows
85 # thing, but windows is where wide strings are most likely
86 # to be found, so seems good as anything.
87 my $size = $args{size} || 2048;
88 my $access = $args{access} || 'read';
89
90 my %ct = (
91 native_type => 'opaque',
92 );
93
94 $ct{native_to_perl} = sub {
95 return undef unless defined $_[0];
96 return decode($encoding,
97 buffer_to_scalar(
98 $_[0],
99 FFI::Platypus::Memory::_wcslen($_[0])*$width,
100 )
101 );
102 };
103
104 if($access eq 'read')
105 {
106 $ct{perl_to_native} = sub {
107 if(defined $_[0])
108 {
109 my $buf = encode($encoding, $_[0]."\0");
110 push @stack, \$buf;
111 return scalar_to_pointer $buf;
112 }
113 else
114 {
115 push @stack, undef;
116 return undef;
117 }
118 };
119
120 $ct{perl_to_native_post} = sub {
121 pop @stack;
122 return;
123 };
124
125 }
126 elsif($access eq 'write')
127 {
128 my @stack;
129
130 $ct{perl_to_native} = sub {
131 my $ref = shift;
132 if(ref($ref) eq 'ARRAY')
133 {
134 ${ $ref->[0] } = "\0" x $size unless defined ${ $ref->[0] };
135 my $ptr = scalar_to_pointer ${ $ref->[0] };
136 if(defined $ref->[0])
137 {
138 my $init = encode($encoding, $ref->[1]);
139 my($sptr, $ssize) = scalar_to_buffer($init);
140 memcpy($ptr, $sptr, $ssize);
141 }
142 push @stack, \${ $ref->[0] };
143 return $ptr;
144 }
145 elsif(ref($ref) eq 'SCALAR')
146 {
147 push @stack, $ref;
148 $$ref = "\0" x $size unless defined $$ref;
149 return scalar_to_pointer $$ref;
150 }
151 else
152 {
153 push @stack, $ref;
154 return undef;
155 }
156 };
157
158 $ct{perl_to_native_post} = sub {
159 my $ref = pop @stack;
160 return unless defined $ref;
161 my $len = length $$ref;
162 $len = FFI::Platypus::Memory::_wcsnlen($$ref, $len);
163 $$ref = decode($encoding, substr($$ref, 0, $len*$width));
164 };
165
166 }
167 else
168 {
169 Carp::croak("Unknown access type $access");
170 }
171
172 return \%ct;
173 }
174
175 1;
176
177 __END__
178
179 =pod
180
181 =encoding UTF-8
182
183 =head1 NAME
184
185 FFI::Platypus::Type::WideString - Platypus custom type for Unicode "wide" strings
186
187 =head1 VERSION
188
189 version 1.56
190
191 =head1 SYNOPSIS
192
193 use FFI::Platypus 1.00;
194
195 my $ffi = FFI::Platypus->new( api => 1, lib => [undef] );
196 $ffi->load_custom_type('::WideString' => 'wstring', access => 'read' );
197 $ffi->load_custom_type('::WideString' => 'wstring_w', access => 'write' );
198
199 # call function that takes a constant wide string
200 $ffi->attach( wcscmp => ['wstring', 'wstring'] => 'int' );
201 my $diff = wcscmp("I ❤ perl + Platypus", "I ❤ perl + Platypus"); # returns 0
202
203 # call a function that takes a wide string for writing
204 $ffi->attach( wcscpy => ['wstring_w', 'wstring'] );
205 my $buf;
206 wcscpy(\$buf, "I ❤ perl + Platypus");
207 print $buf, "\n"; # prints "I ❤ perl + Platypus"
208
209 # call a function that takes a wide string for modification
210 $ffi->attach( wcscat => ['wstring_w', 'wstring'] );
211 my $buf;
212 wcscat( [ \$buf, "I ❤ perl" ], " + Platypus");
213 print $buf, "\n"; # prints "I ❤ perl + Platypus"
214
215 On Windows use with C<LPCWSTR>:
216
217 use FFI::Platypus 1.00;
218
219 my $ffi = FFI::Platypus->new( api => 1, lib => [undef] );
220
221 # define some custom Win32 Types
222 # to get these automatically see FFI::Platypus::Lang::Win32
223 $ffi->load_custom_type('::WideString' => 'LPCWSTR', access => 'read' );
224 $ffi->type('opaque' => 'HWND');
225 $ffi->type('uint' => 'UINT');
226
227 use constant MB_OK => 0x00000000;
228 use constant MB_DEFAULT_DESKTOP_ONLY => 0x00020000;
229
230 $ffi->attach( [MessageBoxW => 'MessageBox'] => [ 'HWND', 'LPCWSTR', 'LPCWSTR', 'UINT'] => 'int' );
231
232 MessageBox(undef, "I ❤️ Platypus", "Confession", MB_OK|MB_DEFAULT_DESKTOP_ONLY);
233
234 =head1 DESCRIPTION
235
236 This custom type plugin for L<FFI::Platypus> provides support for the native
237 "wide" string type on your platform, if it is available.
238
239 Wide strings are made of up wide characters (C<wchar_t>, also known as C<WCHAR>
240 on Windows) and have enough bits to represent character sets that require
241 larger than the traditional one byte C<char>.
242
243 These strings are most commonly used on Windows where they are referred to as
244 C<LPWSTR> and C<LPCWSTR> (The former for read/write buffers and the latter for
245 const read-only strings), where they are encoded as C<UTF-16LE>.
246
247 They are also supported by libc on many modern Unix systems where they are usually
248 C<UTF-32> of the native byte-order of the system. APIs on Unix systems more
249 commonly use UTF-8 which provides some compatibility with ASCII, but you may
250 occasionally find APIs that talk in wide strings. (libarchive, for example,
251 can work in both).
252
253 This plugin will detect the native wide string format for you and transparently
254 convert Perl strings, which are typically encoded internally as UTF-8. If for
255 some reason it cannot detect the correct encoding, or if your platform is
256 currently supported, an exception will be thrown (please open a ticket if this
257 is the case). It can be used either for read/write buffers, for const read-only
258 strings, and for return values. It supports these options:
259
260 Options:
261
262 =over 4
263
264 =item access
265
266 Either C<read> or C<write> depending on if you are using a read/write buffer
267 or a const read-only string.
268
269 =item size
270
271 For read/write buffer, the size of the buffer to create, if not provided by
272 the caller.
273
274 =back
275
276 =head2 read-only
277
278 Read-only strings are the easiest of all, are converted to the native wide
279 string format in a buffer and are freed after that function call completes.
280
281 $ffi->load_custom_type('::WideString' => 'wstring' );
282 $ffi->function( wprintf => [ 'wstring' ] => [ 'wstring' ] => 'int' )
283 ->call("I %s perl + Platypus", "❤");
284
285 This is the mode that you want to use when you are calling a function that
286 takes a C<const wchar_t*> or a C<LPCWSTR>.
287
288 =head2 return value
289
290 For return values the C<access> and C<size> options are ignored. The string
291 is simply copied into a Perl native string.
292
293 $ffi->load_custom_type('::WideString' => 'wstring' );
294 # see note below in CAVEATS about wcsdup
295 my $str = $ffi->function( wcsdup => [ 'wstring' ] => 'wstring' )
296 ->call("I ❤ perl + Platypus");
297
298 This is the mode that you want to use when you are calling a function that
299 returns a C<const wchar_t*>, C<wchar_t>, C<LPWSTR> or C<LPCWSTR>.
300
301 =head2 read/write
302
303 Read/write strings can be passed in one of two ways. Which you choose
304 depends on if you want to initialize the read/write buffer or not.
305
306 =over 4
307
308 =item default buffer size
309
310 The simplest way is to fallback on the default buffer size, which can
311 be specified using the C<size> option when creating the custom type.
312
313 my $ffi = FFI::Platypus->new( api => 1, lib => [undef] );
314 $ffi->load_custom_type('::WideString' => 'wstring', access => 'read' );
315 $ffi->load_custom_type('::WideString' => 'wstring_w', access => 'write', size => 512 );
316
317 $ffi->attach( wcscpy => ['wstring_w', 'wstring'] );
318 my $buf;
319 wcscpy(\$buf, "I ❤ perl + Platypus");
320 print $buf, "\n"; # prints "I ❤ perl + Platypus"
321
322 B<Discussion>: This is the most sensical approach when the exact size of the
323 buffer is known for all usages of the string type. It can also be sensical
324 if the buffer size is larger than any possible output, though care should
325 be taken since this may be hard to determine reliably.
326
327 The default size if none is specified when creating the custom type is 2048,
328 which is probably large enough for many uses, but also probably wastes
329 memory for many of them.
330
331 =item allocate your buffer of a specific size
332
333 The safest and most memory efficient method is of course to allocate exactly
334 the amount of memory that you need.
335
336 my $ffi = FFI::Platypus->new( api => 1, lib => [undef] );
337 $ffi->load_custom_type('::WideString' => 'wstring', access => 'read' );
338 $ffi->load_custom_type('::WideString' => 'wstring_w', access => 'write' );
339
340 $ffi->attach( wcscpy => ['wstring_w', 'wstring'] );
341 my $width = $ffi->sizeof('wchar_t');
342 my $buf = "\0" x ( (length ("I ❤ perl + Platypus") + 1)*$width);
343 wcscpy(\$buf, "I ❤ perl + Platypus");
344 print $buf, "\n"; # prints "I ❤ perl + Platypus"
345
346 B<Discussion>: By assigning C<$buf> to a string of null characters the
347 length of the source string, plus one (for the null at the end) and then
348 multiplying that by the size of C<wchar_t>, you get the exact number of
349 bytes needed for the destination buffer.
350
351 Note that although we pass in a reference to a buffer, what comes back
352 is converted to a Perl string, which will be internally UTF-8, not stored
353 at the original buffer location. This is slightly awkward, but what you
354 need most of the time.
355
356 =item initialize the read/write buffer
357
358 Some functions don't expect empty null padded buffers though, in this
359 case you will want to initialize the buffer.
360
361 my $ffi = FFI::Platypus->new( api => 1, lib => [undef] );
362 $ffi->load_custom_type('::WideString' => 'wstring', access => 'read' );
363 $ffi->load_custom_type('::WideString' => 'wstring_w', access => 'write' );
364
365 $ffi->attach( wcscat => ['wstring_w', 'wstring'] );
366 my $buf;
367 wcscat( [ \$buf, "I ❤ perl" ], " + Platypus");
368 print $buf, "\n"; # prints "I ❤ perl + Platypus"
369
370 B<Discussion>: To initialize we pass in an array reference instead of a
371 scalar reference. The first element is a scalar reference to the buffer
372 (which can be pre-allocated or not; if it is not allocated then it will
373 be allocated to the default size for the type). The second argument is
374 what the buffer should be initialized to before the underlying C function
375 is called. The Perl string is encoded into wide string format before
376 being used to initialize the buffer.
377
378 As before a reference to the translated string is returned, and the
379 buffer that was used to pass in is freed.
380
381 =item allocate memory using C<malloc> or C<wcsdup> etc.
382
383 You can also allocate memory using C<malloc> or C<wcsdup> to return
384 an opaque type and manipulate it using the libc C<wcs*> functions.
385 It will still probably be useful to use this plugin to cast the
386 opaque back to a Perl string. The CAVEATS section below includes
387 several examples.
388
389 =back
390
391 This is the mode that you want to use when you are calling a function that
392 takes a <wchar_t*> or a C<LPWSTR>.
393
394 =head1 CAVEATS
395
396 As with the Platypus built in C<string> type, return values are copied into
397 a Perl scalar. This is usually what you want anyway, but some APIs expect
398 the caller to take responsibility for freeing the pointer to the wide string
399 that it returns. For example, C<wcsdup> works in this way. The workaround
400 is to return an opaque pointer, cast it from a wide string and free the
401 pointer.
402
403 use FFI::Platypus::Memory qw( free );
404 $ffi->load_custom_type('::WideString' => 'wstring' );
405 my $ptr = $ffi->function( wcsdup => [ 'wstring' ] => 'opaque' )
406 ->call("I ❤ perl + Platypus");
407 my $str = $ffi->cast('opaque', 'wstring', $ptr);
408 free $ptr;
409
410 Because of the order in which objects are freed you cannot return a wide
411 string if it is also a wide string argument to a function. For example
412 C<wcscpy> may crash if you specify the return value as a wide string:
413
414 # wchar_t *wcscpy(wchar_t *dest, const wchar_t *src);
415 $ffi->attach( wcscpy => [ 'wstring_w', 'wstring' ] => 'wstring' ); # no
416 my $str;
417 wcscpy( \$str, "I ❤ perl + Platypus"); # may crash on memory error
418
419 This is because the order in which things are done here are 1. C<$str> is allocated
420 2. C<$str> is re-encoded as utf and the old buffer is freed 3. the return value
421 is computed based on the C<$str> buffer that was freed.
422
423 If you look at C<wcscpy> though you don't actually need the return value.
424 To make this code work, you can just ignore the return value:
425
426 $ffi->attach( wcscpy => [ 'wstring_w', 'wstring' ] => 'void' ); # yes
427 my $str;
428 wcscpy( \$str, "I ❤ perl + Platypus"); # good!
429
430 On the other hand you do care about the return value from C<wcschr>, which returns
431 a pointer to the first occurrence of a character in an argument string:
432
433 # wchar_t *wcschr(const wchar_t *wcs, wchar_t wc);
434 $ffi->attach( wcschr => [ 'wstring', 'wchar_t' ] => 'wstring' ); # no
435 # this may crash on memory error or return the wrong value
436 my $str = wcschr("I ❤ perl + Platypus", ord("❤"));
437
438 Instead you need to work with pointers and casts to use this function:
439
440 use FFI::Platypus 1.00;
441 use FFI::Platypus::Memory qw( free );
442
443 my $ffi = FFI::Platypus->new( api => 1, lib => [undef] );
444
445 $ffi->attach( wcsdup => ['wstring'] => 'opaque' );
446 $ffi->attach( strchr => [ opaque', 'wchar_t' ] => 'wstring' );
447
448 # create a wcs string in memory using wcsdup
449 my $haystack = wcsdup("I ❤ perl + Platypus");
450 # find the heart and return as a wide string
451 my $needle = strchr($haystack, ord("❤"));
452 # safe to free the pointer to the larger string now
453 free $haystack;
454
455 =head1 SEE ALSO
456
457 =over 4
458
459 =item L<FFI::Platypus>
460
461 Core Platypus documentation.
462
463 =item L<FFI::Platypus::Type>
464
465 Includes documentation on handling "normal" 8 bit C strings among others.
466
467 =item L<FFI::Platypus::Lang::Win32>
468
469 Documentation for using Platypus with C<LPWSTR> and C<LPCWSTR> types on
470 Microsoft Windows. These types are just aliases for the standard C wide
471 strings.
472
473 =back
474
475 =head1 AUTHOR
476
477 Author: Graham Ollis E<lt>plicease@cpan.orgE<gt>
478
479 Contributors:
480
481 Bakkiaraj Murugesan (bakkiaraj)
482
483 Dylan Cali (calid)
484
485 pipcet
486
487 Zaki Mughal (zmughal)
488
489 Fitz Elliott (felliott)
490
491 Vickenty Fesunov (vyf)
492
493 Gregor Herrmann (gregoa)
494
495 Shlomi Fish (shlomif)
496
497 Damyan Ivanov
498
499 Ilya Pavlov (Ilya33)
500
501 Petr Písař (ppisar)
502
503 Mohammad S Anwar (MANWAR)
504
505 Håkon Hægland (hakonhagland, HAKONH)
506
507 Meredith (merrilymeredith, MHOWARD)
508
509 Diab Jerius (DJERIUS)
510
511 Eric Brine (IKEGAMI)
512
513 szTheory
514
515 José Joaquín Atria (JJATRIA)
516
517 Pete Houston (openstrike, HOUSTON)
518
519 =head1 COPYRIGHT AND LICENSE
520
521 This software is copyright (c) 2015,2016,2017,2018,2019,2020 by Graham Ollis.
522
523 This is free software; you can redistribute it and/or modify it under
524 the same terms as the Perl 5 programming language system itself.
525
526 =cut
66 require FFI::Platypus;
77
88 # ABSTRACT: Defining types for FFI::Platypus
9 our $VERSION = '1.34'; # VERSION
9 our $VERSION = '1.56'; # VERSION
1010
1111 # The TypeParser and Type classes are used internally ONLY and
1212 # are not to be exposed to the user. External users should
5757
5858 =head1 VERSION
5959
60 version 1.34
60 version 1.56
6161
6262 =head1 SYNOPSIS
6363
6464 OO Interface:
6565
66 use FFI::Platypus;
66 use FFI::Platypus 1.00;
6767 my $ffi = FFI::Platypus->new( api => 1 );
6868 $ffi->type('int' => 'my_int');
6969
7777 attaching functions.
7878
7979 # Example of defining types
80 use FFI::Platypus;
80 use FFI::Platypus 1.00;
8181 my $ffi = FFI::Platypus->new( api => 1 );
8282 $ffi->type('int');
8383 $ffi->type('string');
133133 define a type alias that can later be used by function declaration
134134 and attachment.
135135
136 use FFI::Platypus;
136 use FFI::Platypus 1.00;
137137 my $ffi = FFI::Platypus->new( api => 1 );
138138 $ffi->type('int' => 'myint');
139139 $ffi->type('string' => 'mystring');
257257 Here is an example that uses the standard libc C<isalpha>, C<isdigit>
258258 type functions:
259259
260 use FFI::Platypus;
261
262 my $ffi = FFI::Platypus->new;
260 use FFI::Platypus 1.00;
261
262 my $ffi = FFI::Platypus->new( api => 1 );
263263 $ffi->lib(undef);
264264 $ffi->type('int' => 'character');
265265
298298 list all the integer types that L<FFI::Platypus> knows about, plus how
299299 they are implemented.
300300
301 use FFI::Platypus;
302
303 my $ffi = FFI::Platypus->new;
304
305 foreach my $type_name (sort FFI::Platypus->types)
301 use FFI::Platypus 1.00;
302
303 my $ffi = FFI::Platypus->new( api => 1 );
304
305 foreach my $type_name (sort $ffi->types)
306306 {
307307 my $meta = $ffi->type_meta($type_name);
308 next unless $meta->{element_type} eq 'int';
308 next unless defined $meta->{element_type} && $meta->{element_type} eq 'int';
309309 printf "%20s %s\n", $type_name, $meta->{ffi_type};
310310 }
311311
480480 As a special case, when you pass C<undef> into a function that takes an
481481 opaque type it will be translated into C<NULL> for C. When a C function
482482 returns a NULL pointer, it will be translated back to C<undef>.
483
484 For functions that take a pointer to a void pointer (that is a C<void **>),
485 you can use a pointer to an opaque type. Consider the C code:
486
487 struct archive_entry;
488 int archive_read_next_header(struct archive *, struvct archive_entry **);
489
490 Once again the internals of C<archive_entry> are not provided. Perl code:
491
492 $ffi->type('opaque' => 'archive_entry');
493 $ffi->attach(archive_read_next_header => [ 'archive', 'archive_entry*' ] => 'int');
494
495 Now we can call this function
496
497 my $archive = archive_read_new();
498 ... # additional prep for $active is required
499 while(1) {
500 my $entry;
501 archive_read_next_header($archive, \$entry);
502 last unless defined $entry;
503 # can now use $entry for other archive_entry_ methods.
504 }
505
506 The way C<archive_read_next_header> works, it will return a pointer to the next
507 C<archive_entry> object until it gets to the end, when it will return a pointer
508 to C<NULL> which will be represented in Perl by a C<undef>.
483509
484510 There are a number of useful utility functions for dealing with opaque
485511 types in the L<FFI::Platypus::Memory> module.
627653 });
628654 print_message($get_message);
629655
656 Another type of string that you may run into with some APIs is the
657 so called "wide" string. In your C code if you see C<wchar_t*>
658 or C<const wchar_t*> or if in Win32 API code you see C<LPWSTR>
659 or C<LPCWSTR>. Most commonly you will see these types when working
660 with the Win32 API, but you may see them in Unix as well. These
661 types are intended for dealing with Unicode, but they do not use
662 the same UTF-8 format used by Perl internally, so they need to be
663 converted. You can do this manually by allocating the memory
664 and using the L<Encode> module, but the easier way is to use
665 either L<FFI::Platypus::Type::WideString> or
666 L<FFI::Platypus::Lang::Win32>, which handle the memory allocation
667 and conversion for you.
668
630669 =head2 Pointer / References
631670
632671 In C you can pass a pointer to a variable to a function in order
655694 }
656695
657696 # foo.pl
658 use FFI::Platypus;
697 use FFI::Platypus 1.00;
659698 my $ffi = FFI::Platypus->new( api => 1 );
660699 $ffi->lib('libfoo.so'); # change to reflect the dynamic lib
661700 # that contains foo.c
691730 L<FFI::Platypus::Record> to define a record layout for a record class.
692731 Here is a brief example:
693732
694 package My::UnixTime;
695
733 package Unix::TimeStruct;
734
735 use FFI::Platypus 1.00;
696736 use FFI::Platypus::Record;
697737
698738 record_layout_1(qw(
711751
712752 my $ffi = FFI::Platypus->new( api => 1 );
713753 $ffi->lib(undef);
714 # define a record class My::UnixTime and alias it to "tm"
715 $ffi->type("record(My::UnixTime)*" => 'tm');
754 # define a record class Unix::TimeStruct and alias it to "tm"
755 $ffi->type("record(Unix::TimeStruct)*" => 'tm');
716756
717757 # attach the C localtime function as a constructor
718758 $ffi->attach( localtime => ['time_t*'] => 'tm', sub {
723763
724764 package main;
725765
726 # now we can actually use our My::UnixTime class
727 my $time = My::UnixTime->localtime;
766 # now we can actually use our Unix::TimeStruct class
767 my $time = Unix::TimeStruct->localtime;
728768 printf "time is %d:%d:%d %s\n",
729769 $time->tm_hour,
730770 $time->tm_min,
747787 integer).
748788
749789 use Convert::Binary::C;
750 use FFI::Platypus;
790 use FFI::Platypus 1.00;
751791 use Data::Dumper qw( Dumper );
752792
753793 my $c = Convert::Binary::C->new;
825865
826866 Here is a longer practical example, once again using the tm struct:
827867
828 package My::UnixTime;
829
830 use FFI::Platypus;
868 package Unix::TimeStruct;
869
870 use FFI::Platypus 1.00;
831871 use FFI::TinyCC;
832872 use FFI::TinyCC::Inline 'tcc_eval';
833873
859899 }
860900 };
861901
862 # To use My::UnixTime as a record class, we need to
902 # To use Unix::TimeStruct as a record class, we need to
863903 # specify a size for the record, a function called
864904 # either ffi_record_size or _ffi_record_size should
865905 # return the size in bytes. This function has to
868908
869909 my $ffi = FFI::Platypus->new( api => 1 );
870910 $ffi->lib(undef);
871 # define a record class My::UnixTime and alias it
911 # define a record class Unix::TimeStruct and alias it
872912 # to "tm"
873 $ffi->type("record(My::UnixTime)*" => 'tm');
913 $ffi->type("record(Unix::TimeStruct)*" => 'tm');
874914
875915 # attach the C localtime function as a constructor
876916 $ffi->attach( [ localtime => '_new' ] => ['time_t*'] => 'tm' );
908948
909949 package main;
910950
911 # now we can actually use our My::UnixTime class
912 my $time = My::UnixTime->new;
951 # now we can actually use our Unix::TimeStruct class
952 my $time = Unix::TimeStruct->new;
913953 printf "time is %d:%d:%d\n", $time->get_hour, $time->get_min, $time->get_sec;
914954
915955 Contrast a record type which is stored as a scalar string of bytes in
9721012 my $foo = $ffi->cast( 'opaque' => 'foo_t*', $foo_ptr );
9731013 free $foo_ptr;
9741014
1015 You can pass records into a closure, but care needs to be taken.
1016 Records passed into a closure are read-only inside the closure,
1017 including C<string rw> members. Although you can pass a "pointer"
1018 to a record into a closure, because of limitations of the
1019 implementation you actually have a copy, so all records passed
1020 into closures are passed by-value.
1021
9751022 =head2 Fixed length arrays
9761023
9771024 Fixed length arrays of native types and strings are supported by
9811028 Unix C<pipe> command which returns a list of two file descriptors
9821029 as an array.
9831030
984 use FFI::Platypus;
1031 use FFI::Platypus 1.00;
9851032
9861033 my $ffi = FFI::Platypus->new( api => 1 );
9871034 $ffi->lib(undef);
10241071
10251072 Can be called from Perl like this:
10261073
1027 use FFI::Platypus;
1028
1029 my $ffi = FFI::Platypus->new( api => 1 )
1074 use FFI::Platypus 1.00;
1075
1076 my $ffi = FFI::Platypus->new( api => 1 );
10301077 $ffi->lib('./var_array.so');
10311078
10321079 $ffi->attach( sum => [ 'int[]', 'int' ] => 'int' );
10471094 terminology) is a Perl subroutine that can be called from C. In order
10481095 to be called from C it needs to be passed to a C function. To define
10491096 the closure type you need to provide a list of argument types and a
1050 return type. As of this writing only native types and strings are
1051 supported as closure argument types and only native types are supported
1052 as closure return types. Here is an example, with C code:
1053
1054 [ version 0.54 ]
1055
1056 EXPERIMENTAL: As of version 0.54, the record type (see L<FFI::Platypus::Record>)
1057 is also experimentally supported as a closure argument type. One
1058 caveat is that the record member type string_rw is NOT supported
1059 and probably never will be.
1097 return type. Currently only native types (integers, floating point
1098 values, opaque), strings and records (by-value; you can pass a pointer
1099 to a record, but due to limitations of the record implementation this
1100 is actually a copy) are supported as closure argument types, and only
1101 native types and records (by-value; pointer records and records with
1102 string pointers cannot be returned from a closure) are supported as
1103 closure return types. Inside the closure any records passed in are
1104 read-only.
1105
1106 We plan to add other types, though they can be converted using the Platypus
1107 C<cast> or C<attach_cast> methods.
1108
1109 Here is an example, with C code:
10601110
10611111 /*
10621112 * closure.c - on Linux compile with: gcc closure.c -shared -o closure.so -fPIC
10821132
10831133 And the Perl code:
10841134
1085 use FFI::Platypus;
1135 use FFI::Platypus 1.00;
10861136
10871137 my $ffi = FFI::Platypus->new( api => 1 );
10881138 $ffi->lib('./closure.so');
11021152 If you have a pointer to a function in the form of an C<opaque> type,
11031153 you can pass this in place of a closure type:
11041154
1105 use FFI::Platypus;
1155 use FFI::Platypus 1.00;
11061156
11071157 my $ffi = FFI::Platypus->new( api => 1 );
11081158 $ffi->lib('./closure.so');
11851235
11861236 package Foo;
11871237
1188 use FFI::Platypus;
1189 use base qw( Exporter );
1238 use FFI::Platypus 1.00;
1239 use Exporter qw( import );
11901240
11911241 our @EXPORT_OK = qw( FOO_STATIC FOO_DYNAMIC FOO_OTHER foo get_foo );
11921242
12091259
12101260 package Foo;
12111261
1212 use FFI::Platypus;
1262 use FFI::Platypus 1.00;
12131263
12141264 our @EXPORT_OK = qw( foo get_foo );
12151265
12621312
12631313 package Foo;
12641314
1265 use FFI::Platypus;
1315 use FFI::Platypus 1.00;
12661316 use FFI::Platypus::API qw( arguments_get_string );
12671317
12681318 my $ffi = FFI::Platypus->new( api => 1 );
13631413
13641414 Ilya Pavlov (Ilya33)
13651415
1366 Petr Pisar (ppisar)
1416 Petr Písař (ppisar)
13671417
13681418 Mohammad S Anwar (MANWAR)
13691419
13721422 Meredith (merrilymeredith, MHOWARD)
13731423
13741424 Diab Jerius (DJERIUS)
1425
1426 Eric Brine (IKEGAMI)
1427
1428 szTheory
1429
1430 José Joaquín Atria (JJATRIA)
1431
1432 Pete Houston (openstrike, HOUSTON)
13751433
13761434 =head1 COPYRIGHT AND LICENSE
13771435
33 use warnings;
44 use 5.008004;
55 use Carp qw( croak );
6 use base qw( FFI::Platypus::TypeParser );
6 use parent qw( FFI::Platypus::TypeParser );
77
88 # ABSTRACT: FFI Type Parser Version Zero
9 our $VERSION = '1.34'; # VERSION
9 our $VERSION = '1.56'; # VERSION
1010
1111
1212 our @CARP_NOT = qw( FFI::Platypus FFI::Platypus::TypeParser );
6464 {
6565 my @argument_types = map { $self->parse($_) } map { my $t = $_; $t =~ s/^\s+//; $t =~ s/\s+$//; $t } split /,/, $1;
6666 my $return_type = $self->parse($2);
67 return $self->types->{$name} = $self->create_type_closure($return_type, @argument_types);
67 return $self->types->{$name} = $self->create_type_closure($self->abi, $return_type, @argument_types);
6868 }
6969
7070 if($name =~ /^ string \s* \( ([0-9]+) \) $/x)
164164
165165 =head1 VERSION
166166
167 version 1.34
167 version 1.56
168168
169169 =head1 SYNOPSIS
170170
254254
255255 Ilya Pavlov (Ilya33)
256256
257 Petr Pisar (ppisar)
257 Petr Písař (ppisar)
258258
259259 Mohammad S Anwar (MANWAR)
260260
263263 Meredith (merrilymeredith, MHOWARD)
264264
265265 Diab Jerius (DJERIUS)
266
267 Eric Brine (IKEGAMI)
268
269 szTheory
270
271 José Joaquín Atria (JJATRIA)
272
273 Pete Houston (openstrike, HOUSTON)
266274
267275 =head1 COPYRIGHT AND LICENSE
268276
33 use warnings;
44 use 5.008004;
55 use Carp qw( croak );
6 use base qw( FFI::Platypus::TypeParser );
6 use parent qw( FFI::Platypus::TypeParser );
77
88 # ABSTRACT: FFI Type Parser Version One
9 our $VERSION = '1.34'; # VERSION
9 our $VERSION = '1.56'; # VERSION
1010
1111
1212 our @CARP_NOT = qw( FFI::Platypus FFI::Platypus::TypeParser );
8989 {
9090 my $rt = $2;
9191 return $self->types->{$name} = $self->create_type_closure(
92 $self->abi,
9293 $self->parse($rt, $opt),
9394 map { $self->parse($_, $opt) } map { my $t = $_; $t =~ s/^\s+//; $t =~ s/\s+$//; $t } split /,/, $at,
9495 );
136137 1,
137138 $class->$size_method,
138139 $class,
139 $class->_ffi_meta->ffi_type,
140 $class->_ffi_meta->ptr,
140141 );
141142 }
142143 }
290291
291292 =head1 VERSION
292293
293 version 1.34
294 version 1.56
294295
295296 =head1 SYNOPSIS
296297
297 use FFI::Platypus;
298 use FFI::Platypus 1.00;
298299 my $ffi = FFI::Platypus->new( api => 1 );
299300 $ffi->type('record(Foo::Bar)' => 'foo_bar_t');
300301 $ffi->type('record(Foo::Bar)*' => 'foo_bar_ptr');
350351
351352 Ilya Pavlov (Ilya33)
352353
353 Petr Pisar (ppisar)
354 Petr Písař (ppisar)
354355
355356 Mohammad S Anwar (MANWAR)
356357
359360 Meredith (merrilymeredith, MHOWARD)
360361
361362 Diab Jerius (DJERIUS)
363
364 Eric Brine (IKEGAMI)
365
366 szTheory
367
368 José Joaquín Atria (JJATRIA)
369
370 Pete Houston (openstrike, HOUSTON)
362371
363372 =head1 COPYRIGHT AND LICENSE
364373
66 use Carp qw( croak );
77
88 # ABSTRACT: FFI Type Parser
9 our $VERSION = '1.34'; # VERSION
9 our $VERSION = '1.56'; # VERSION
1010
1111
1212 # The TypeParser and Type classes are used internally ONLY and
1717 sub new
1818 {
1919 my($class) = @_;
20 my $self = bless { types => {}, type_map => {} }, $class;
20 my $self = bless { types => {}, type_map => {}, abi => -1 }, $class;
2121 $self->build;
2222 $self;
2323 }
6969 shift->{types};
7070 }
7171
72 # The type parser needs to know the ABI when creating closures
73 sub abi
74 {
75 my($self, $new) = @_;
76 $self->{abi} = $new if defined $new;
77 $self->{abi};
78 }
79
7280 {
7381 my %store;
7482
111119
112120 =head1 VERSION
113121
114 version 1.34
122 version 1.56
115123
116124 =head1 DESCRIPTION
117125
144152
145153 Ilya Pavlov (Ilya33)
146154
147 Petr Pisar (ppisar)
155 Petr Písař (ppisar)
148156
149157 Mohammad S Anwar (MANWAR)
150158
154162
155163 Diab Jerius (DJERIUS)
156164
165 Eric Brine (IKEGAMI)
166
167 szTheory
168
169 José Joaquín Atria (JJATRIA)
170
171 Pete Houston (openstrike, HOUSTON)
172
157173 =head1 COPYRIGHT AND LICENSE
158174
159175 This software is copyright (c) 2015,2016,2017,2018,2019,2020 by Graham Ollis.
77 use FFI::Platypus::Type;
88
99 # ABSTRACT: Write Perl bindings to non-Perl libraries with FFI. No XS required.
10 our $VERSION = '1.34'; # VERSION
11
12 # Platypus Man,
13 # Platypus Man,
14 # Does Everything The Platypus Can
15 # ...
16 # Watch Out!
17 # Here Comes The Platypus Man
10 our $VERSION = '1.56'; # VERSION
11
12 # Platypus-Man,
13 # Platypus-Man,
14 # Does Whatever A Platypus Can
15 # Is Mildly Venomous
16 # Hangs Out In Rivers By Caves
17 # Look Out!
18 # Here Comes The Platypus-Man
1819
1920 # From the original FFI::Platypus prototype:
2021 # Kinda like gluing a duckbill to an adorable mammal
301302 $fixed_args = [];
302303 }
303304
304 my $args = [@$fixed_args, @{ $var_args || [] } ];
305305 my $fixed_arg_count = defined $var_args ? scalar(@$fixed_args) : -1;
306306
307 my @args = map { $self->{tp}->parse($_) || croak "unknown type: $_" } @$args;
307 my @args = map { $self->{tp}->parse($_) || croak "unknown type: $_" } @$fixed_args;
308 if($var_args)
309 {
310 push @args, map {
311 my $type = $self->{tp}->parse($_);
312 # https://github.com/PerlFFI/FFI-Platypus/issues/323
313 $type->type_code == 67 ? $self->{tp}->parse('double') : $type
314 } @$var_args;
315 }
316
308317 $ret = $self->{tp}->parse($ret) || croak "unknown type: $ret";
309318 my $address = $name =~ /^-?[0-9]+$/ ? $name : $self->find_symbol($name);
310319 croak "unable to find $name" unless defined $address || $self->ignore_not_found;
549558 }
550559
551560 $self->{abi} = $newabi;
561 $self->{tp}->abi($newabi);
552562
553563 $self;
554564 }
582592
583593 =head1 VERSION
584594
585 version 1.34
595 version 1.56
586596
587597 =head1 SYNOPSIS
588598
589 use FFI::Platypus;
599 use FFI::Platypus 1.00;
590600
591601 # for all new code you should use api => 1
592602 my $ffi = FFI::Platypus->new( api => 1 );
629639 common interface specifications to a common format like JSON that could
630640 be shared between different languages.
631641
632 =item FFI / Platypus could be a bridge to Perl 6
633
634 One of those "other" languages could be Perl 6 and Perl 6 already has an
642 =item FFI / Platypus could be a bridge to Raku
643
644 One of those "other" languages could be Raku and Raku already has an
635645 FFI interface I am told.
636646
637647 =item FFI / Platypus can be reimplemented
714724
715725 =item api
716726
727 [version 0.91]
728
717729 Sets the API level. Legal values are
718730
719731 =over
731743
732744 All new code should be written with this set to 1! The Platypus documentation
733745 assumes this api level is set.
746
747 =item C<2>
748
749 Enable version 2 API, which is currently experimental. Using API level 2 prior
750 to Platypus version 2.00 will trigger a (noisy) warning.
751
752 API version 2 is identical to version 1, except:
753
754 =over 4
755
756 =item Pointer functions that return C<NULL> will return C<undef> instead of empty list
757
758 This fixes a long standing design bug in Platypus.
759
760 =item Array references may be passed to pointer argument types
761
762 This replicates the behavior of array argument types with no size. So the types C<sint8*> and C<sint8[]>
763 behave identically when an array reference is passed in. They differ in that, as before, you can
764 pass a scalar reference into type C<sint8*>.
765
766 =back
734767
735768 =back
736769
848881
849882 Examples:
850883
851 $ffi->type('sint32'); # oly checks to see that sint32 is a valid type
884 $ffi->type('sint32'); # only checks to see that sint32 is a valid type
852885 $ffi->type('sint32' => 'myint'); # creates an alias myint for sint32
853886 $ffi->type('bogus'); # dies with appropriate diagnostic
854887
12671300
12681301 =head2 Integer conversions
12691302
1270 use FFI::Platypus;
1303 use FFI::Platypus 1.00;
12711304
12721305 my $ffi = FFI::Platypus->new( api => 1 );
12731306 $ffi->lib(undef);
12861319 =head2 libnotify
12871320
12881321 use FFI::CheckLib;
1289 use FFI::Platypus;
1322 use FFI::Platypus 1.00;
12901323
12911324 # NOTE: I ported this from anoter Perl FFI library and it seems to work most
12921325 # of the time, but also seems to SIGSEGV sometimes. I saw the same behavior
13431376
13441377 =head2 Allocating and freeing memory
13451378
1346 use FFI::Platypus;
1379 use FFI::Platypus 1.00;
13471380 use FFI::Platypus::Memory qw( malloc free memcpy );
13481381
13491382 my $ffi = FFI::Platypus->new( api => 1 );
14031436 });
14041437 }
14051438
1406 # now we can actually use our My::UnixTime class
1439 # now we can actually use our Unix::TimeStruct class
14071440 my $time = Unix::TimeStruct->localtime;
14081441 printf "time is %d:%d:%d %s\n",
14091442 $time->tm_hour,
14321465 =head2 libuuid
14331466
14341467 use FFI::CheckLib;
1435 use FFI::Platypus;
1468 use FFI::Platypus 1.00;
14361469 use FFI::Platypus::Memory qw( malloc free );
14371470
14381471 my $ffi = FFI::Platypus->new( api => 1 );
14431476 $ffi->attach(uuid_generate => ['uuid_t'] => 'void');
14441477 $ffi->attach(uuid_unparse => ['uuid_t','uuid_string'] => 'void');
14451478
1446 my $uuid = "\0" x 16; # uuid_t
1479 my $uuid = "\0" x $ffi->sizeof('uuid_t');
14471480 uuid_generate($uuid);
14481481
1449 my $string = "\0" x 37; # 36 bytes to store a UUID string
1450 # + NUL termination
1482 my $string = "\0" x $ffi->sizeof('uuid_string');
14511483 uuid_unparse($uuid, $string);
14521484
14531485 print "$string\n";
14631495
14641496 =head2 puts and getpid
14651497
1466 use FFI::Platypus;
1498 use FFI::Platypus 1.00;
14671499
14681500 my $ffi = FFI::Platypus->new( api => 1 );
14691501 $ffi->lib(undef);
14781510
14791511 =head2 Math library
14801512
1481 use FFI::Platypus;
1513 use FFI::Platypus 1.00;
14821514 use FFI::CheckLib;
14831515
14841516 my $ffi = FFI::Platypus->new( api => 1 );
15051537
15061538 =head2 Strings
15071539
1508 use FFI::Platypus;
1509
1510 my $ffi = FFI::Platypus->new;
1540 use FFI::Platypus 1.00;
1541
1542 my $ffi = FFI::Platypus->new( api => 1 );
15111543 $ffi->lib(undef);
15121544 $ffi->attach(puts => ['string'] => 'int');
15131545 $ffi->attach(strlen => ['string'] => 'int');
15261558
15271559 puts(strerror(2));
15281560
1529 B<Discussion>: Strings are not a native type to C<libffi> but the are
1530 handled seamlessly by Platypus.
1561 B<Discussion>: ASCII and UTF-8 Strings are not a native type to C<libffi>
1562 but the are handled seamlessly by Platypus. If you need to talk to an
1563 API that uses so called "wide" strings (APIs which use C<const wchar_t*>
1564 or C<wchar_t*>), then you will want to use the wide string type plugin
1565 L<FFI::Platypus::Type::WideString>. APIs which use other arbitrary
1566 encodings can be accessed by converting your Perl strings manually with
1567 the L<Encode> module.
15311568
15321569 =head2 Attach function from pointer
15331570
15341571 use FFI::TinyCC;
1535 use FFI::Platypus;
1572 use FFI::Platypus 1.00;
15361573
15371574 my $ffi = FFI::Platypus->new( api => 1 );
15381575 my $tcc = FFI::TinyCC->new;
15691606 use constant ZMQ_REQ => 3;
15701607 use constant ZMQ_REP => 4;
15711608 use FFI::CheckLib qw( find_lib_or_exit );
1572 use FFI::Platypus;
1609 use FFI::Platypus 1.00;
15731610 use FFI::Platypus::Memory qw( malloc );
15741611 use FFI::Platypus::Buffer qw( scalar_to_buffer buffer_to_scalar );
15751612
16581695
16591696 =head2 libarchive
16601697
1661 use FFI::Platypus ();
1662 use FFI::CheckLib qw( find_lib_or_exit );
1698 use FFI::Platypus 1.00;
1699 use FFI::CheckLib qw( find_lib_or_exit );
16631700
16641701 # This example uses FreeBSD's libarchive to list the contents of any
16651702 # archive format that it suppors. We've also filled out a part of
17831820
17841821 =head2 unix open
17851822
1786 use FFI::Platypus;
1823 use FFI::Platypus 1.00;
17871824
17881825 {
17891826 package FD;
18331870
18341871 =head2 bzip2
18351872
1836 use FFI::Platypus 0.20 (); # 0.20 required for using wrappers
1873 use FFI::Platypus 1.00;
18371874 use FFI::CheckLib qw( find_lib_or_die );
18381875 use FFI::Platypus::Buffer qw( scalar_to_buffer buffer_to_scalar );
18391876 use FFI::Platypus::Memory qw( malloc free );
19131950 arguments to conform to the C API. What ever value you return from the
19141951 wrapper function will be returned back to the original caller.
19151952
1953 =head2 The Win32 API
1954
1955 use utf8;
1956 use FFI::Platypus 1.00;
1957
1958 my $ffi = FFI::Platypus->new(
1959 api => 1,
1960 lib => [undef],
1961 );
1962
1963 # see FFI::Platypus::Lang::Win32
1964 $ffi->lang('Win32');
1965
1966 # Send a Unicode string to the Windows API MessageBoxW function.
1967 use constant MB_OK => 0x00000000;
1968 use constant MB_DEFAULT_DESKTOP_ONLY => 0x00020000;
1969 $ffi->attach( [MessageBoxW => 'MessageBox'] => [ 'HWND', 'LPCWSTR', 'LPCWSTR', 'UINT'] => 'int' );
1970 MessageBox(undef, "I ❤️ Platypus", "Confession", MB_OK|MB_DEFAULT_DESKTOP_ONLY);
1971
1972 B<Discussion>: The API used by Microsoft Windows present some unique
1973 challenges. On 32 bit systems a different ABI is used than what is
1974 used by the standard C library. It also provides a rats nest of
1975 type aliases. Finally if you want to talk Unicode to any of the
1976 Windows API you will need to use C<UTF-16LE> instead of C<utf-8>
1977 which is native to Perl. (The Win32 API refers to these as
1978 C<LPWSTR> and C<LPCWSTR> types). As much as possible the Win32
1979 "language" plugin attempts to handle this transparently. For more
1980 details see L<FFI::Platypus::Lang::Win32>.
1981
19161982 =head2 bundle your own code
19171983
19181984 C<ffi/foo.c>:
19602026
19612027 use strict;
19622028 use warnings;
1963 use FFI::Platypus;
2029 use FFI::Platypus 1.00;
19642030
19652031 {
19662032 my $ffi = FFI::Platypus->new( api => 1 );
22912357
22922358 =item L<NativeCall>
22932359
2294 Promising interface to Platypus inspired by Perl 6.
2360 Promising interface to Platypus inspired by Raku.
22952361
22962362 =item L<FFI::Platypus::Type>
22972363
23572423
23582424 Documentation and tools for using Platypus with the Assembly
23592425
2426 =item L<FFI::Platypus::Lang::Win32>
2427
2428 Documentation and tools for using Platypus with the Win32 API.
2429
2430 =item L<Wasm> and L<Wasm::Wasmtime>
2431
2432 Modules for writing WebAssembly bindings in Perl. This allows you to call
2433 functions written in any language supported by WebAssembly. These modules
2434 are also implemented using Platypus.
2435
23602436 =item L<Convert::Binary::C>
23612437
23622438 A great interface for decoding C data structures, including C<struct>s,
24472523
24482524 Ilya Pavlov (Ilya33)
24492525
2450 Petr Pisar (ppisar)
2526 Petr Písař (ppisar)
24512527
24522528 Mohammad S Anwar (MANWAR)
24532529
24562532 Meredith (merrilymeredith, MHOWARD)
24572533
24582534 Diab Jerius (DJERIUS)
2535
2536 Eric Brine (IKEGAMI)
2537
2538 szTheory
2539
2540 José Joaquín Atria (JJATRIA)
2541
2542 Pete Houston (openstrike, HOUSTON)
24592543
24602544 =head1 COPYRIGHT AND LICENSE
24612545
88 use FFI::Build::Platform;
99
1010 # ABSTRACT: Probe runner builder for FFI
11 our $VERSION = '1.34'; # VERSION
11 our $VERSION = '1.56'; # VERSION
1212
1313
1414 sub new
250250
251251 =head1 VERSION
252252
253 version 1.34
253 version 1.56
254254
255255 =head1 SYNOPSIS
256256
400400
401401 Ilya Pavlov (Ilya33)
402402
403 Petr Pisar (ppisar)
403 Petr Písař (ppisar)
404404
405405 Mohammad S Anwar (MANWAR)
406406
409409 Meredith (merrilymeredith, MHOWARD)
410410
411411 Diab Jerius (DJERIUS)
412
413 Eric Brine (IKEGAMI)
414
415 szTheory
416
417 José Joaquín Atria (JJATRIA)
418
419 Pete Houston (openstrike, HOUSTON)
412420
413421 =head1 COPYRIGHT AND LICENSE
414422
44 use 5.008004;
55
66 # ABSTRACT: The results from a probe run.
7 our $VERSION = '1.34'; # VERSION
7 our $VERSION = '1.56'; # VERSION
88
99
1010 sub new
4141
4242 =head1 VERSION
4343
44 version 1.34
44 version 1.56
4545
4646 =head1 SYNOPSIS
4747
103103
104104 Ilya Pavlov (Ilya33)
105105
106 Petr Pisar (ppisar)
106 Petr Písař (ppisar)
107107
108108 Mohammad S Anwar (MANWAR)
109109
113113
114114 Diab Jerius (DJERIUS)
115115
116 Eric Brine (IKEGAMI)
117
118 szTheory
119
120 José Joaquín Atria (JJATRIA)
121
122 Pete Houston (openstrike, HOUSTON)
123
116124 =head1 COPYRIGHT AND LICENSE
117125
118126 This software is copyright (c) 2015,2016,2017,2018,2019,2020 by Graham Ollis.
66 use FFI::Probe::Runner::Result;
77
88 # ABSTRACT: Probe runner for FFI
9 our $VERSION = '1.34'; # VERSION
9 our $VERSION = '1.56'; # VERSION
1010
1111
1212 sub new
8484
8585 =head1 VERSION
8686
87 version 1.34
87 version 1.56
8888
8989 =head1 SYNOPSIS
9090
173173
174174 Ilya Pavlov (Ilya33)
175175
176 Petr Pisar (ppisar)
176 Petr Písař (ppisar)
177177
178178 Mohammad S Anwar (MANWAR)
179179
182182 Meredith (merrilymeredith, MHOWARD)
183183
184184 Diab Jerius (DJERIUS)
185
186 Eric Brine (IKEGAMI)
187
188 szTheory
189
190 José Joaquín Atria (JJATRIA)
191
192 Pete Houston (openstrike, HOUSTON)
185193
186194 =head1 COPYRIGHT AND LICENSE
187195
1111 use FFI::Temp;
1212
1313 # ABSTRACT: System detection and probing for FFI extensions.
14 our $VERSION = '1.34'; # VERSION
14 our $VERSION = '1.56'; # VERSION
1515
1616
1717 sub new
512512
513513 =head1 VERSION
514514
515 version 1.34
515 version 1.56
516516
517517 =head1 SYNOPSIS
518518
669669
670670 Ilya Pavlov (Ilya33)
671671
672 Petr Pisar (ppisar)
672 Petr Písař (ppisar)
673673
674674 Mohammad S Anwar (MANWAR)
675675
678678 Meredith (merrilymeredith, MHOWARD)
679679
680680 Diab Jerius (DJERIUS)
681
682 Eric Brine (IKEGAMI)
683
684 szTheory
685
686 José Joaquín Atria (JJATRIA)
687
688 Pete Houston (openstrike, HOUSTON)
681689
682690 =head1 COPYRIGHT AND LICENSE
683691
77 use File::Temp qw( tempdir );
88
99 # ABSTRACT: Temp Dir support for FFI::Platypus
10 our $VERSION = '1.34'; # VERSION
10 our $VERSION = '1.56'; # VERSION
1111
1212
1313 # problem with vanilla File::Temp is that is often uses
2424 sub _root
2525 {
2626 my $root = File::Spec->rel2abs(File::Spec->catdir(".tmp"));
27 unless(-d $root)
27 my $lock = File::Spec->catfile($root, "l$$");
28
29 foreach my $try (0..9)
2830 {
29 mkdir $root or die "unable to create temp root $!";
31 sleep $try if $try != 0;
32 mkdir $root or die "unable to create temp root $!" unless -d $root;
33
34 # There is a race condition here if the FFI::Temp is
35 # used in parallel. To work around we run this 10
36 # times until it works. There is still a race condition
37 # if it fails 10 times, but hopefully that is unlikely.
38
39 # ??: doesn't account for fork, but probably doesn't need to.
40 open my $fh, '>', $lock or next;
41 close $fh or next;
42
43 $root{$root} = 1;
44 return $root;
3045 }
31
32 # TODO: doesn't account for fork...
33 my $lock = File::Spec->catfile($root, "l$$");
34 unless(-f $lock)
35 {
36 open my $fh, '>', $lock;
37 close $fh;
38 }
39 $root{$root} = 1;
40 $root;
4146 }
4247
4348 END {
7984
8085 =head1 VERSION
8186
82 version 1.34
87 version 1.56
8388
8489 =head1 DESCRIPTION
8590
111116
112117 Ilya Pavlov (Ilya33)
113118
114 Petr Pisar (ppisar)
119 Petr Písař (ppisar)
115120
116121 Mohammad S Anwar (MANWAR)
117122
121126
122127 Diab Jerius (DJERIUS)
123128
129 Eric Brine (IKEGAMI)
130
131 szTheory
132
133 José Joaquín Atria (JJATRIA)
134
135 Pete Houston (openstrike, HOUSTON)
136
124137 =head1 COPYRIGHT AND LICENSE
125138
126139 This software is copyright (c) 2015,2016,2017,2018,2019,2020 by Graham Ollis.
55 cip sudo apt-get install libffi-dev
66 cip exec cpanm -n version
77
8 if [ "$CIP_TAG" == "5.30-debug" ]; then
8 if [ "$CIP_TAG" == "5.34" ]; then
9 cip exec cpanm -n forks
10 fi
11
12 if [[ "$CIP_TAG" =~ ^5\.[0-9]+-debug(32)?$ ]]; then
913 cip exec cpanm -n Test::LeakTrace
1014 fi
11
12 if [ "$CIP_TAG" == "5.30-debug32" ]; then
13 cip exec cpanm -n Test::LeakTrace
14 fi
3131 my $new = $orig;
3232 $new =~ s/8/$bits/;
3333
34 open my $in, '<', $orig;
35 open my $out, '>', $new;
34 open my $in, '<', $orig or die "unable to read $orig";
35 open my $out, '>', $new or die "unable to write $new";
3636
3737 if($orig =~ /\.c$/)
3838 {
6666
6767 foreach my $type (qw( double ))
6868 {
69 foreach my $orig (qw( t/ffi/float.c t/type_float.t ))
69 foreach my $orig (qw( t/ffi/float.c t/type_float.t t/type_complex_float.t t/ffi/complex_float.c ))
7070 {
7171 my $new = $orig;
7272 $new =~ s/float/$type/;
7373
74 open my $in, '<', $orig;
75 open my $out, '>', $new;
74 open my $in, '<', $orig or die "unable to read $orig $!";
75 open my $out, '>', $new or die "unable to write $new $!";
7676
7777 if($orig =~ /\.c$/)
7878 {
9696 while(<$in>)
9797 {
9898 s/float/$type/eg;
99 s/SIZEOF_FLOAT_COMPLEX/"SIZEOF_@{[ uc $type ]}_COMPLEX"/eg;
100 if($type eq 'double')
101 {
102 s/crealf/creal/g;
103 s/cimagf/cimag/g;
104 }
105 else
106 {
107 die 'todo';
108 }
99109 print $out $_;
100110 }
101111
103113 close $in;
104114 }
105115 }
106
107 {
108 my @list;
109 # sort map { chomp; s/\.pm$//; s/^lib\///; s/\//::/g; $_ } `find lib -name \*.pm`
110 File::Find::find(sub {
111 my $pm = $File::Find::name;
112 return unless $pm =~ s/\.pm$//;
113 $pm =~ s/^lib\///;
114 $pm =~ s/\//::/g;
115 $pm =~ s/^lib\///;
116 push @list, $pm;
117 }, 'lib');
118 @list = sort @list;
119
120 die "unable to find modules!" unless @list;
121
122 open my $fh, '>', 't/01_use.t';
123
124 print $fh <<'EOM';
125 use strict;
126 use warnings;
127 use Test::More;
128
129 EOM
130
131 foreach my $module (@list)
132 {
133 print $fh "require_ok '$module';\n";
134 }
135
136 foreach my $module (@list)
137 {
138 my $test = lc $module;
139 $test =~ s/::/_/g;
140 $test = "t/$test.t";
141 printf $fh "ok -f %-55s %s\n", "'$test',", "'test for $module';";
142 }
143
144 print $fh <<'EOM';
145 done_testing;
146
147 EOM
148
149 close $fh;
150 }
00 severity = 1
11 only = 1
22
3 [Freenode::ArrayAssignAref]
4 [Freenode::BarewordFilehandles]
5 [Freenode::ConditionalDeclarations]
6 [Freenode::ConditionalImplicitReturn]
7 [Freenode::DeprecatedFeatures]
8 [Freenode::DiscouragedModules]
9 [Freenode::DollarAB]
10 [Freenode::Each]
11 [Freenode::IndirectObjectNotation]
12 [Freenode::LexicalForeachIterator]
13 [Freenode::LoopOnHash]
14 [Freenode::ModPerl]
15 [Freenode::OpenArgs]
16 [Freenode::OverloadOptions]
17 [Freenode::POSIXImports]
18 [Freenode::PackageMatchesFilename]
19 [Freenode::PreferredAlternatives]
20 [Freenode::StrictWarnings]
3 [Community::ArrayAssignAref]
4 [Community::BarewordFilehandles]
5 [Community::ConditionalDeclarations]
6 [Community::ConditionalImplicitReturn]
7 [Community::DeprecatedFeatures]
8 [Community::DiscouragedModules]
9 [Community::DollarAB]
10 [Community::Each]
11 [Community::IndirectObjectNotation]
12 [Community::LexicalForeachIterator]
13 [Community::LoopOnHash]
14 [Community::ModPerl]
15 [Community::OpenArgs]
16 [Community::OverloadOptions]
17 [Community::POSIXImports]
18 [Community::PackageMatchesFilename]
19 [Community::PreferredAlternatives]
20 [Community::StrictWarnings]
2121 extra_importers = Test2::V0
22 [Freenode::Threads]
23 [Freenode::Wantarray]
24 [Freenode::WarningsSwitch]
25 [Freenode::WhileDiamondDefaultAssignment]
22 [Community::Threads]
23 [Community::Wantarray]
24 [Community::WarningsSwitch]
25 [Community::WhileDiamondDefaultAssignment]
2626
2727 [BuiltinFunctions::ProhibitBooleanGrep]
2828 ;[BuiltinFunctions::ProhibitStringyEval]
0 use strict;
1 use warnings;
0 use Test2::V0 -no_srand => 1;
21 use Config;
3 use Test::More tests => 1;
2
3 eval { require 'Test/More.pm' };
44
55 # This .t file is generated.
66 # make changes instead to dist.ini
2121 List::Util
2222 Math::LongDouble
2323 PkgConfig
24 Test::More
24 Test2::API
25 Test2::V0
2526 constant
2627 forks
28 parent
2729 );
2830
2931 $post_diag = sub {
159161
160162 diag sprintf $format, 'perl', "$] $^O $Config{archname}";
161163
162 foreach my $module (@modules)
164 foreach my $module (sort @modules)
163165 {
164166 my $pm = "$module.pm";
165167 $pm =~ s{::}{/}g;
183185
184186 spacer;
185187
188 done_testing;
189
+0
-84
t/01_use.t less more
0 use strict;
1 use warnings;
2 use Test::More;
3
4 require_ok 'FFI::Build';
5 require_ok 'FFI::Build::File::Base';
6 require_ok 'FFI::Build::File::C';
7 require_ok 'FFI::Build::File::CXX';
8 require_ok 'FFI::Build::File::Library';
9 require_ok 'FFI::Build::File::Object';
10 require_ok 'FFI::Build::MM';
11 require_ok 'FFI::Build::Platform';
12 require_ok 'FFI::Platypus';
13 require_ok 'FFI::Platypus::API';
14 require_ok 'FFI::Platypus::Buffer';
15 require_ok 'FFI::Platypus::Bundle';
16 require_ok 'FFI::Platypus::Closure';
17 require_ok 'FFI::Platypus::Constant';
18 require_ok 'FFI::Platypus::DL';
19 require_ok 'FFI::Platypus::Function';
20 require_ok 'FFI::Platypus::Internal';
21 require_ok 'FFI::Platypus::Lang';
22 require_ok 'FFI::Platypus::Lang::ASM';
23 require_ok 'FFI::Platypus::Lang::C';
24 require_ok 'FFI::Platypus::Lang::Win32';
25 require_ok 'FFI::Platypus::Legacy';
26 require_ok 'FFI::Platypus::Memory';
27 require_ok 'FFI::Platypus::Record';
28 require_ok 'FFI::Platypus::Record::Meta';
29 require_ok 'FFI::Platypus::Record::TieArray';
30 require_ok 'FFI::Platypus::ShareConfig';
31 require_ok 'FFI::Platypus::Type';
32 require_ok 'FFI::Platypus::Type::PointerSizeBuffer';
33 require_ok 'FFI::Platypus::Type::StringArray';
34 require_ok 'FFI::Platypus::Type::StringPointer';
35 require_ok 'FFI::Platypus::TypeParser';
36 require_ok 'FFI::Platypus::TypeParser::Version0';
37 require_ok 'FFI::Platypus::TypeParser::Version1';
38 require_ok 'FFI::Probe';
39 require_ok 'FFI::Probe::Runner';
40 require_ok 'FFI::Probe::Runner::Builder';
41 require_ok 'FFI::Probe::Runner::Result';
42 require_ok 'FFI::Temp';
43 ok -f 't/ffi_build.t', 'test for FFI::Build';
44 ok -f 't/ffi_build_file_base.t', 'test for FFI::Build::File::Base';
45 ok -f 't/ffi_build_file_c.t', 'test for FFI::Build::File::C';
46 ok -f 't/ffi_build_file_cxx.t', 'test for FFI::Build::File::CXX';
47 ok -f 't/ffi_build_file_library.t', 'test for FFI::Build::File::Library';
48 ok -f 't/ffi_build_file_object.t', 'test for FFI::Build::File::Object';
49 ok -f 't/ffi_build_mm.t', 'test for FFI::Build::MM';
50 ok -f 't/ffi_build_platform.t', 'test for FFI::Build::Platform';
51 ok -f 't/ffi_platypus.t', 'test for FFI::Platypus';
52 ok -f 't/ffi_platypus_api.t', 'test for FFI::Platypus::API';
53 ok -f 't/ffi_platypus_buffer.t', 'test for FFI::Platypus::Buffer';
54 ok -f 't/ffi_platypus_bundle.t', 'test for FFI::Platypus::Bundle';
55 ok -f 't/ffi_platypus_closure.t', 'test for FFI::Platypus::Closure';
56 ok -f 't/ffi_platypus_constant.t', 'test for FFI::Platypus::Constant';
57 ok -f 't/ffi_platypus_dl.t', 'test for FFI::Platypus::DL';
58 ok -f 't/ffi_platypus_function.t', 'test for FFI::Platypus::Function';
59 ok -f 't/ffi_platypus_internal.t', 'test for FFI::Platypus::Internal';
60 ok -f 't/ffi_platypus_lang.t', 'test for FFI::Platypus::Lang';
61 ok -f 't/ffi_platypus_lang_asm.t', 'test for FFI::Platypus::Lang::ASM';
62 ok -f 't/ffi_platypus_lang_c.t', 'test for FFI::Platypus::Lang::C';
63 ok -f 't/ffi_platypus_lang_win32.t', 'test for FFI::Platypus::Lang::Win32';
64 ok -f 't/ffi_platypus_legacy.t', 'test for FFI::Platypus::Legacy';
65 ok -f 't/ffi_platypus_memory.t', 'test for FFI::Platypus::Memory';
66 ok -f 't/ffi_platypus_record.t', 'test for FFI::Platypus::Record';
67 ok -f 't/ffi_platypus_record_meta.t', 'test for FFI::Platypus::Record::Meta';
68 ok -f 't/ffi_platypus_record_tiearray.t', 'test for FFI::Platypus::Record::TieArray';
69 ok -f 't/ffi_platypus_shareconfig.t', 'test for FFI::Platypus::ShareConfig';
70 ok -f 't/ffi_platypus_type.t', 'test for FFI::Platypus::Type';
71 ok -f 't/ffi_platypus_type_pointersizebuffer.t', 'test for FFI::Platypus::Type::PointerSizeBuffer';
72 ok -f 't/ffi_platypus_type_stringarray.t', 'test for FFI::Platypus::Type::StringArray';
73 ok -f 't/ffi_platypus_type_stringpointer.t', 'test for FFI::Platypus::Type::StringPointer';
74 ok -f 't/ffi_platypus_typeparser.t', 'test for FFI::Platypus::TypeParser';
75 ok -f 't/ffi_platypus_typeparser_version0.t', 'test for FFI::Platypus::TypeParser::Version0';
76 ok -f 't/ffi_platypus_typeparser_version1.t', 'test for FFI::Platypus::TypeParser::Version1';
77 ok -f 't/ffi_probe.t', 'test for FFI::Probe';
78 ok -f 't/ffi_probe_runner.t', 'test for FFI::Probe::Runner';
79 ok -f 't/ffi_probe_runner_builder.t', 'test for FFI::Probe::Runner::Builder';
80 ok -f 't/ffi_probe_runner_result.t', 'test for FFI::Probe::Runner::Result';
81 ok -f 't/ffi_temp.t', 'test for FFI::Temp';
82 done_testing;
83
5959 {
6060 my_cx_closure(s, i);
6161 }
62
63 typedef void (*cxv_closure_t)(cx_struct_t, int);
64 static cxv_closure_t my_cxv_closure;
65
66 EXTERN void
67 cxv_closure_set(cxv_closure_t closure)
68 {
69 my_cxv_closure = closure;
70 }
71
72 EXTERN void
73 cxv_closure_call(cx_struct_t s, int i)
74 {
75 my_cxv_closure(s, i);
76 }
77
78 typedef struct {
79 char foo;
80 short bar;
81 int baz;
82 } cx_struct_simple_t;
83
84 typedef cx_struct_simple_t (*cxv_closure_simple_t)(void);
85
86 EXTERN cx_struct_simple_t*
87 cxv_closure_simple_call(cxv_closure_simple_t closure)
88 {
89 static cx_struct_simple_t simple;
90 simple = closure();
91 return &simple;
92 }
0 /*
1 * DO NOT MODIFY THIS FILE.
2 * This file generated from similar file t/ffi/complex_float.c
3 * all instances of "float" have been changed to "double"
4 */
05 #include "libtest.h"
16 #if SIZEOF_DOUBLE_COMPLEX
27
2328 EXTERN double
2429 complex_double_ptr_get_real(double complex *f)
2530 {
26 return crealf(*f);
31 return creal(*f);
2732 }
2833
2934 EXTERN double
3035 complex_double_ptr_get_imag(double complex *f)
3136 {
32 return cimagf(*f);
37 return cimag(*f);
3338 }
3439
3540 EXTERN void
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use lib 't/lib';
42 use Test::Cleanup;
53 use Test::Platypus;
3129 subtest 'file classes' => sub {
3230 {
3331 package FFI::Build::File::Foo1;
34 use base qw( FFI::Build::File::Base );
32 use parent qw( FFI::Build::File::Base );
3533 $INC{'FFI/Build/File/Foo1.pm'} = __FILE__;
3634 }
3735
3836 {
3937 package FFI::Build::File::Foo2;
40 use base qw( FFI::Build::File::Base );
38 use parent qw( FFI::Build::File::Base );
4139 }
4240
4341 my @list = FFI::Build::_file_classes();
123121
124122 subtest 'build c++' => sub {
125123
126 plan skip_all => 'Test requires C++ compiler'
124 skip_all 'Test requires C++ compiler'
127125 unless eval { FFI::Build::Platform->which(FFI::Build::Platform->cxx) };
128126
129127 my $tempdir = FFI::Temp->newdir( TEMPLATE => "tmpbuild.XXXXXX" );
198196
199197 subtest 'alien' => sub {
200198
201 plan skip_all => 'Test requires Acme::Alien::DontPanic 1.03'
199 skip_all 'Test requires Acme::Alien::DontPanic 1.03'
202200 unless eval { require Acme::Alien::DontPanic; Acme::Alien::DontPanic->VERSION("1.03") };
203201
204202
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use FFI::Build::File::Base;
42
53 {
64 package
75 FFI::Build::File::Foo;
8 use base qw( FFI::Build::File::Base );
6 use parent qw( FFI::Build::File::Base );
97 use constant default_suffix => '.foo';
108 use constant default_encoding => ':utf8';
119 }
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use lib 't/lib';
42 use Test::Cleanup;
53 use FFI::Build::File::C;
2321 my $object = $file->build_item;
2422 isa_ok $object, 'FFI::Build::File::Object';
2523
26 is_deeply
24 is
2725 [ $object->build_item ],
2826 [];
2927
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use lib 't/lib';
42 use Test::Cleanup;
53 use FFI::Build::File::CXX;
75 use FFI::Build::Platform;
86 use Capture::Tiny qw( capture_merged );
97
10 plan skip_all => 'Test requires C++ compiler'
8 skip_all 'Test requires C++ compiler'
119 unless eval { FFI::Build::Platform->which(FFI::Build::Platform->cxx) };
1210
1311 subtest 'basic' => sub {
2826 my $object = $file->build_item;
2927 isa_ok $object, 'FFI::Build::File::Object';
3028
31 is_deeply
29 is
3230 [ $object->build_item ],
3331 [];
3432
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use FFI::Build::File::Library;
42 use Config ();
53
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use FFI::Build::File::Object;
42
53 my $o = FFI::Build::Platform->object_suffix;
0 use strict;
1 use warnings;
0 use Test2::V0 -no_srand => 1;
21 use 5.008004;
3 use Test::More;
42 use FFI::Build::MM;
53 use Capture::Tiny qw( capture_merged );
64 use File::Glob qw( bsd_glob );
5048 subtest 'build with fbx file' => sub {
5149 my $build = $mm->load_build('corpus/ffi_build_mm/lb1', undef, undef);
5250 isa_ok $build, 'FFI::Build';
53 is_deeply [sort map { $_->basename } $build->source], ['hello1.c','hello2.c']
51 is [sort map { $_->basename } $build->source], ['hello1.c','hello2.c']
5452 };
5553
5654 subtest 'build with fbx file with errors' => sub {
6260 subtest 'build with default' => sub {
6361 my $build = $mm->load_build('corpus/ffi_build_mm/lb2', undef, undef);
6462 isa_ok $build, 'FFI::Build';
65 is_deeply [sort map { $_->basename } $build->source], ['hello1.c','hello2.c']
63 is [sort map { $_->basename } $build->source], ['hello1.c','hello2.c']
6664 };
6765
6866 my $postamble = $mm->mm_postamble;
148146 };
149147
150148 subtest 'alien' => sub {
151 plan skip_all => 'todo';
149 skip_all 'todo';
152150 };
153151
154152 done_testing;
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use FFI::Build::Platform;
42 use Capture::Tiny qw( capture_merged );
53
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use FFI::Platypus;
42 use FFI::CheckLib;
53 use Data::Dumper;
2422
2523 subtest 'no arguments' => sub {
2624 my $ffi = FFI::Platypus->new;
27 isa_ok $ffi, 'FFI::Platypus', 'FFI::Platypus.new';
28 is_deeply [$ffi->lib], [], 'ffi.lib';
25 isa_ok $ffi, 'FFI::Platypus';
26 is [$ffi->lib], [], 'ffi.lib';
2927 };
3028
3129 subtest 'with single lib' => sub {
3230 my $ffi = FFI::Platypus->new( lib => "libfoo.so" );
33 isa_ok $ffi, 'FFI::Platypus', 'FFI::Platypus.new';
34 is_deeply [$ffi->lib], ['libfoo.so'], 'ffi.lib';
31 isa_ok $ffi, 'FFI::Platypus';
32 is [$ffi->lib], ['libfoo.so'], 'ffi.lib';
3533 };
3634
3735 subtest 'with multiple lib' => sub {
3836 my $ffi = FFI::Platypus->new( lib => ["libfoo.so", "libbar.so", "libbaz.so" ] );
39 isa_ok $ffi, 'FFI::Platypus', 'FFI::Platypus.new';
40 is_deeply [$ffi->lib], ['libfoo.so', 'libbar.so', 'libbaz.so'], 'ffi.lib';
37 isa_ok $ffi, 'FFI::Platypus';
38 is [$ffi->lib], ['libfoo.so', 'libbar.so', 'libbaz.so'], 'ffi.lib';
4139 };
4240
4341 };
5553 subtest $abi => sub {
5654 eval { $ffi->abi($abi) };
5755 is $@, '', 'string';
56 is $ffi->{tp}->abi, $abis{$abi}, 'type parser';
5857 eval { $ffi->abi($abis{$abi}) };
5958 is $@, '', 'integer';
59 is $ffi->{tp}->abi, $abis{$abi}, 'type parser';
6060 };
6161 }
6262
226226 eval { $ffi->lib($lib) };
227227 is $@, '', 'ffi.lib (set)';
228228
229 is_deeply [eval { $ffi->lib }], [$lib], 'ffi.lib (get)';
229 is [eval { $ffi->lib }], [$lib], 'ffi.lib (get)';
230230
231231 };
232232
234234
235235 subtest 'baseline' => sub {
236236 my $ffi = FFI::Platypus->new;
237 is_deeply([$ffi->lib], []);
237 is([$ffi->lib], []);
238238 };
239239
240240 subtest 'lib => [undef]' => sub {
241241 my $ffi = FFI::Platypus->new(lib => [undef]);
242 is_deeply([$ffi->lib], [undef]);
242 is([$ffi->lib], [undef]);
243243 };
244244
245245 subtest 'lib => undef' => sub {
246246 my $ffi = FFI::Platypus->new(lib => undef);
247 is_deeply([$ffi->lib], [undef]);
247 is([$ffi->lib], [undef]);
248248 };
249249
250250 };
259259 eval { $ffi->lib(sub{ $lib }) };
260260 is $@, '', 'ffi.lib (set)';
261261
262 is_deeply [eval { $ffi->lib }], [$lib], 'ffi.lib (get)';
262 is [eval { $ffi->lib }], [$lib], 'ffi.lib (get)';
263263
264264 };
265265 };
380380 foreach my $name (map { "$_ *" } @list)
381381 {
382382 subtest $name => sub {
383 plan skip_all => 'ME GRIMLOCK SAY STRING CAN NO BE POINTER' if $name eq 'string *';
383 skip_all 'ME GRIMLOCK SAY STRING CAN NO BE POINTER' if $name eq 'string *';
384384 my $ffi = FFI::Platypus->new;
385385 eval { $ffi->type($name) };
386386 is $@, '', "ffi.type($name)";
400400 my $name = "$basic [$size]";
401401
402402 subtest $name => sub {
403 plan skip_all => 'ME GRIMLOCK SAY STRING CAN NO BE ARRAY' if $name =~ /^string \[[0-9]+\]$/; # TODO: actually this should be doable
403 skip_all 'ME GRIMLOCK SAY STRING CAN NO BE ARRAY' if $name =~ /^string \[[0-9]+\]$/; # TODO: actually this should be doable
404404 my $ffi = FFI::Platypus->new;
405405 eval { $ffi->type($name) };
406406 is $@, '', "ffi.type($name)";
530530 foreach my $name (@names)
531531 {
532532 subtest $name => sub {
533 plan skip_all => 'test requires longdouble support'
533 skip_all 'test requires longdouble support'
534534 unless FFI::Platypus::TypeParser->new->have_type($name);
535535 my $type = eval { FFI::Platypus::TypeParser::Version0->new->parse($name) };
536536 is $@, '', "type = FFI::Platypus::TypeParser::Version0->new->parse($name)";
553553 subtest 'class or instance method' => sub {
554554 my @class = FFI::Platypus->types;
555555 my @instance = FFI::Platypus->new->types;
556 is_deeply \@class, \@instance, 'class and instance methods are identical';
556 is \@class, \@instance, 'class and instance methods are identical';
557557 note "type: $_" foreach sort @class;
558558 };
559559
726726 attach_basic;
727727
728728 use FFI::Platypus;
729 use Test::More;
729 use Test2::V0 -no_srand => 1;
730730
731731 my $ffi = FFI::Platypus->new( lib => [@lib] );
732732
760760 attach_void;
761761
762762 use FFI::Platypus;
763 use Test::More;
763 use Test2::V0 -no_srand => 1;
764764
765765 my $ffi = FFI::Platypus->new( lib => [@lib] );
766766
820820 @warnings = ();
821821 my $ffi = FFI::Platypus->new( api => 0, lib => ['corpus/bogus.so'] );
822822 is $ffi->find_symbol('foo'), undef;
823 is_deeply \@warnings, [];
823 is \@warnings, [];
824824 };
825825
826826 subtest 'api = 1' => sub {
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use FFI::Platypus::API;
42
53 subtest 'basic' => sub {
0 use strict;
1 use warnings;
2 use utf8;
3 use B;
4
50 # see https://github.com/PerlFFI/FFI-Platypus/issues/85
61 use if $^O ne 'MSWin32' || $] >= 5.018, 'open', ':std', ':encoding(utf8)';
7 use Test::More;
2 use Test2::V0 -no_srand => 1;
83 use Encode qw( decode );
94 use FFI::Platypus::Buffer;
105 use FFI::Platypus::Buffer qw( scalar_to_pointer grow set_used_length window );
6 use utf8;
7 use B;
118
129 subtest simple => sub {
1310 my $orig = 'me grimlock king';
146143 like ( $err, qr/must be a scalar/, "croaked" );
147144 };
148145
149 TODO : {
150
151 local $TODO = "is set_used_length undef behavior correct?";
146 {
147
148 my $todo = todo "is set_used_length undef behavior correct?";
152149
153150 subtest '$str = undef' => sub {
154151 my $str;
179176 window $ro, $ptr, $len;
180177 is($ro, "my stuff");
181178 is(length($ro), 8);
182 is_deeply([scalar_to_buffer $ro], [$ptr,$len]);
179 is([scalar_to_buffer $ro], [$ptr,$len]);
183180 local $@ = '';
184181 eval { $ro .= "foo" };
185182 like "$@", qr/Modification of a read-only value attempted/;
186 is_deeply([scalar_to_buffer $ro], [$ptr,$len]);
183 is([scalar_to_buffer $ro], [$ptr,$len]);
187184 };
188185
189186 subtest 'unicode' => sub {
193190 window $ro, $ptr, $len, 1;
194191 is($ro, "привет");
195192 is(length($ro), 6);
196 is_deeply([scalar_to_buffer $ro], [$ptr,$len]);
193 is([scalar_to_buffer $ro], [$ptr,$len]);
197194 local $@ = '';
198195 eval { $ro .= "foo" };
199196 like "$@", qr/Modification of a read-only value attempted/;
200 is_deeply([scalar_to_buffer $ro], [$ptr,$len]);
197 is([scalar_to_buffer $ro], [$ptr,$len]);
201198 };
202199
203200 subtest 'strlen' => sub {
207204 window $ro, $ptr;
208205 is($ro, "foo");
209206 is(length($ro), 3);
210 is_deeply([scalar_to_pointer $ro], [$ptr]);
207 is([scalar_to_pointer $ro], [$ptr]);
211208 };
212209 };
213210
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
1 use lib 't/lib';
2 use Test::Cleanup;
33 use FFI::Platypus;
44 use FFI::Temp;
55 use FFI::Build;
5151
5252 ok( !! FFI::Platypus->can('_bundle') );
5353
54 $build->clean;
54 cleanup(
55 sub { $build->clean },
56 $root,
57 );
5558
5659 };
5760
9497 is "$@", '';
9598 is( Foo::Bar2::bar2(), 43 );
9699
97 $build->clean;
100 cleanup(
101 sub { $build->clean },
102 $root,
103 );
98104 };
99105
100106 subtest 'not loaded yet' => sub {
132138 $ffi->attach("bar3" => [] => 'sint32');
133139 is( bar3(), 44 );
134140
135 $build->clean;
141 cleanup(
142 sub { $build->clean },
143 $root,
144 );
136145
137146 };
138147
141150 local @INC = @INC;
142151
143152 my $root = FFI::Temp->newdir;
153 cleanup($root);
144154
145155 spew("$root/lib/Foo/Bar4.pm", <<'EOF');
146156 package Foo::Bar4;
172182 subtest 'entry points' => sub {
173183
174184 my $root = FFI::Temp->newdir;
185 cleanup($root);
175186
176187 our @log;
177188 our $log_closure = do {
262273
263274 note "log:$_" for @log;
264275
265 is_deeply(
276 is(
266277 \@log,
267278 [
268279 'ffi_pl_bundle_fini (enter)',
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use FFI::Platypus::Closure;
42 use FFI::CheckLib;
53
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use FFI::Platypus::Constant;
42 use File::Path qw( mkpath );
53 use File::Basename qw( dirname );
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use FFI::Platypus::DL;
42 use FFI::CheckLib qw( find_lib );
53
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use FFI::Platypus::Function;
42 use FFI::Platypus;
53 use FFI::CheckLib;
131129 my $ffi = FFI::Platypus->new;
132130 $ffi->lib($libtest);
133131
134 plan skip_all => 'test requires variadic function support'
132 skip_all 'test requires variadic function support'
135133 unless eval { $ffi->function('variadic_return_arg' => ['int'] => ['int'] => 'int') };
136134
137135
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use FFI::Platypus::Function;
42 use FFI::Platypus;
53 use FFI::CheckLib;
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use FFI::Platypus::Internal;
42
53 subtest 'basic' => sub {
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use FFI::Platypus::Lang;
42 use FFI::CheckLib;
53 use FFI::Platypus;
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use FFI::CheckLib;
42 use FFI::Platypus;
53
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use FFI::CheckLib;
42 use FFI::Platypus;
53
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use FFI::Platypus::Lang::Win32;
42
5 my $map = FFI::Platypus::Lang::Win32->native_type_map;
3 {
4 require FFI::Platypus::Type::WideString;
5 my($encoding,$width) = eval { FFI::Platypus::Type::WideString->_compute_wide_string_encoding() };
6 if(my $error = $@)
7 {
8 $error =~ s/ at .*$//;
9 skip_all "Unable to detect wide string details: $error\n";
10 }
611
7 foreach my $alias (sort keys %$map)
8 {
9 my $type = $map->{$alias};
10 note sprintf("%-30s %s", $alias, $type);
12 note "encoding = $encoding";
13 note "width = $width";
1114 }
1215
13 pass 'good';
16 subtest 'native type map diagnostic' => sub {
17
18 my $map = FFI::Platypus::Lang::Win32->native_type_map;
19
20 foreach my $alias (sort keys %$map)
21 {
22 my $type = $map->{$alias};
23 note sprintf("%-30s %s", $alias, $type);
24 }
25
26 pass 'good';
27 };
28
29 my $ffi = FFI::Platypus->new( api => 1, lib => [undef] );
30
31 subtest 'load' => sub {
32 local $@ = "";
33 eval { $ffi->lang('Win32') };
34 is "$@", "";
35 };
36
37 my @strings = (
38 [ "trivial" => "" ],
39 [ "simple" => "abcde" ],
40 [ "fancy" => "abcd\x{E9}" ],
41 [ "complex" => "I \x{2764} Platypus" ],
42 );
43
44 subtest 'LPCWSTR' => sub {
45 skip_all 'Test only works on Windows' unless $^O eq 'MSWin32';
46
47 my $lstrlenW = $ffi->function( lstrlenW => [ 'LPCWSTR' ] => 'int' );
48
49 foreach my $test (@strings)
50 {
51 my($name, $string) = @$test;
52 is($lstrlenW->call($string), length($string), $name);
53 }
54 };
55
56 subtest 'LPWSTR' => sub {
57 skip_all 'Test only works on Windows' unless $^O eq 'MSWin32';
58
59 my $GetCurrentDirectoryW = $ffi->function( GetCurrentDirectoryW => ['DWORD','LPWSTR'] => 'DWORD' );
60
61 my $size = $GetCurrentDirectoryW->call(0, undef);
62 cmp_ok $size, '>', 0;
63
64 my $buf = "\0" x ($size*2);
65 $GetCurrentDirectoryW->call($size, \$buf);
66
67 note "buf = $buf";
68
69 ok( -d $buf, "returned directory exists");
70 };
1471
1572 done_testing;
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use FFI::Platypus;
42
53 subtest 'only load as needed' => sub {
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use FFI::Platypus;
42 use FFI::Platypus::Memory;
53
0 use strict;
1 use warnings;
0 use Test2::V0 -no_srand => 1;
21 use FFI::Platypus;
32 use FFI::Platypus::Memory qw( malloc free );
4 use Test::More;
53 use Data::Dumper;
64
75 do {
245243 my $acc1 = "uint$bits";
246244 my $acc2 = "get_uint$bits";
247245 $foo->$acc1([1,2,3]);
248 is_deeply $foo->$acc1, [1,2,3], "$acc1 = 1,2,3";
249 is_deeply $foo->$acc2, [1,2,3], "$acc2 = 1,2,3";
246 is $foo->$acc1, [1,2,3], "$acc1 = 1,2,3";
247 is $foo->$acc2, [1,2,3], "$acc2 = 1,2,3";
250248 is $foo->$acc1(1), 2, "$acc1(1) = 2";
251249 $foo->$acc1(1,20);
252 is_deeply $foo->$acc1, [1,20,3], "$acc1 = 1,20,3";
250 is $foo->$acc1, [1,20,3], "$acc1 = 1,20,3";
253251 };
254252
255253 subtest "signed $bits integer" => sub {
256254 my $acc1 = "sint$bits";
257255 my $acc2 = "get_sint$bits";
258256 $foo->$acc1([-1,2,-3]);
259 is_deeply $foo->$acc1, [-1,2,-3], "$acc1 = -1,2,-3";
260 is_deeply $foo->$acc2, [-1,2,-3], "$acc2 = -1,2,-3";
257 is $foo->$acc1, [-1,2,-3], "$acc1 = -1,2,-3";
258 is $foo->$acc2, [-1,2,-3], "$acc2 = -1,2,-3";
261259 is $foo->$acc1(2), -3, "$acc1(2) = -3";
262260 $foo->$acc1(1,-20);
263 is_deeply $foo->$acc1, [-1,-20,-3], "$acc1 = -1,-20,-3";
261 is $foo->$acc1, [-1,-20,-3], "$acc1 = -1,-20,-3";
264262 };
265263 }
266264
268266 {
269267 subtest $type => sub {
270268 $foo->$type([1.5,undef,-1.5]);
271 is_deeply $foo->$type, [1.5,0.0,-1.5], "$type = 1.5,0,-1.5";
269 is $foo->$type, [1.5,0.0,-1.5], "$type = 1.5,0,-1.5";
272270 is $foo->$type(0), 1.5;
273271 is $foo->$type(1), 0.0;
274272 is $foo->$type(2), -1.5;
275273 $foo->$type(1,20.0);
276 is_deeply $foo->$type, [1.5,20.0,-1.5], "$type = 1.5,20,-1.5";
274 is $foo->$type, [1.5,20.0,-1.5], "$type = 1.5,20,-1.5";
277275 };
278276 }
279277
282280 my $ptr2 = malloc 64;
283281
284282 $foo->opaque([$ptr1,undef,$ptr2]);
285 is_deeply $foo->opaque, [$ptr1,undef,$ptr2], "opaque = $ptr1,undef,$ptr2";
283 is $foo->opaque, [$ptr1,undef,$ptr2], "opaque = $ptr1,undef,$ptr2";
286284
287285 $foo->opaque(1,$ptr1);
288 is_deeply $foo->opaque, [$ptr1,$ptr1,$ptr2], "opaque = $ptr1,$ptr1,$ptr2";
286 is $foo->opaque, [$ptr1,$ptr1,$ptr2], "opaque = $ptr1,$ptr1,$ptr2";
289287
290288 $foo->opaque(0,undef);
291 is_deeply $foo->opaque, [undef,$ptr1,$ptr2], "opaque = undef,$ptr1,$ptr2";
289 is $foo->opaque, [undef,$ptr1,$ptr2], "opaque = undef,$ptr1,$ptr2";
292290
293291 is $foo->opaque(0), undef;
294292 is $foo->opaque(1), $ptr1;
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use FFI::Platypus;
42 use FFI::Platypus::Record::Meta;
53 use Data::Dumper qw( Dumper );
2018 my $got = $meta->element_pointers;
2119 my $exp = [map { FFI::Platypus::Record::Meta::_find_symbol($_) } qw( uint8 uint8 pointer float double )];
2220
23 is_deeply
21 is
2422 $got,
2523 $exp,
2624 'meta->element_pointers'
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31
42 do {
53 package
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use FFI::Platypus::ShareConfig;
42 use Data::Dumper;
53
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use FFI::Platypus::Internal;
42 use FFI::Platypus::Type;
53 use Data::Dumper qw( Dumper );
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use FFI::CheckLib;
42 use FFI::Platypus;
53 use FFI::Platypus::Memory qw( malloc );
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use FFI::CheckLib;
42 use FFI::Platypus;
53
6563 'returns null',
6664 );
6765
68 is_deeply(
66 is(
6967 $ffi->function(onetwothree3 => [] => 'sa3')->call,
7068 [ qw( one two three ) ],
7169 'returns with just strings',
7270 );
7371
74 is_deeply(
72 is(
7573 $ffi->function(onenullthree3 => [] => 'sa3')->call,
7674 [ 'one', undef, 'three' ],
7775 'returns with NULL/undef in the middle',
7876 );
7977
80 is_deeply(
78 is(
8179 $ffi->function(onenullthree3 => [] => 'sa3x')->call,
8280 [ 'one', 'x', 'three' ],
8381 'returns with NULL/undef in the middle with default',
9593 'returns null',
9694 );
9795
98 is_deeply(
96 is(
9997 $ffi->function('onetwothree4', => [] => 'sa')->call,
10098 [ qw( one two three ) ],
10199 );
102100
103 is_deeply(
101 is(
104102 $ffi->function('onenullthree3' => [] => 'sa')->call,
105103 [ qw( one ) ],
106104 );
107105
108 is_deeply(
106 is(
109107 $ffi->function('ptrnull' => [] => 'sa')->call,
110108 [],
111109 );
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use FFI::Platypus;
42 use FFI::CheckLib;
53
3432 subtest 'return value' => sub {
3533 my $string = "once more onto";
3634
37 is_deeply string_pointer_pointer_return($string), \"once more onto", "not null string = $string";
38 is_deeply string_pointer_pointer_return(undef), \undef, "\\null";
35 is string_pointer_pointer_return($string), \"once more onto", "not null string = $string";
36 is string_pointer_pointer_return(undef), \undef, "\\null";
3937 my $value = pointer_null();
4038 is $value, undef, "null";
4139
0 use Test2::V0 -no_srand => 1;
1 use open ':std', ':encoding(utf8)';
2 use FFI::CheckLib;
3 use FFI::Platypus;
4 use FFI::Platypus::Memory qw( free strdup );
5 use FFI::Platypus::Type::WideString;
6
7 my($encoding,$width) = eval { FFI::Platypus::Type::WideString->_compute_wide_string_encoding() };
8
9 if(my $error = $@)
10 {
11 $error =~ s/ at .*$//;
12 skip_all "Unable to detect wide string details: $error\n";
13 }
14
15 # This test assumes a wchar_t of at least 2 bytes, which is probably true
16 # everywhere Platypus is actually suppored, but wchar_t could technically
17 # be the same size as char.
18
19 note "encoding = $encoding";
20 note "width = $width";
21
22 my @lib = find_lib lib => 'test', symbol => 'f0', libpath => 't/ffi'; # need test lib for pointer_is_null
23 push @lib, undef; # for libc wcs* functions
24
25 my $ffi = FFI::Platypus->new( api => 1, lib => \@lib );
26 $ffi->ignore_not_found(1);
27 $ffi->load_custom_type('::WideString' => 'wstring');
28 $ffi->load_custom_type('::WideString' => 'wstring_w', access => 'write');
29
30 my $wcsdup = do {
31
32 our $ptr;
33 my $wrapper = sub {
34 my $xsub = shift;
35 free $ptr if defined $ptr;
36 $ptr = undef;
37 $ptr = $xsub->(@_);
38 };
39
40 my $wcsdup = $ffi->function( wcsdup => ['wstring'] => 'opaque' => $wrapper);
41
42 $wcsdup = $ffi->function( _wcsdup => ['wstring'] => 'opaque' => $wrapper)
43 if $^O eq 'MSWin32' && ! defined $wcsdup;
44
45 END { free $ptr if defined $ptr; undef $ptr };
46
47 $wcsdup;
48 };
49
50 subtest 'wcschr' => sub {
51
52 my $wcschr = $ffi->function( wcschr => ['opaque','wchar_t'] => 'wstring' );
53 skip_all 'Test requires wcschr' unless defined $wcschr;
54 skip_all 'Test requires wcsdup' unless defined $wcsdup;
55
56 is( $ffi->cast( opaque => 'wstring', $wcsdup->call("I \x{2764} Platypus")), "I \x{2764} Platypus" );
57
58 # make sure libc is using the same wchar_t as we are.
59 # also tests "in as argument" mode.
60 is( $wcschr->call($wcsdup->call('foobar'), ord('b')), 'bar');
61 is( $wcschr->call($wcsdup->call("I \x{2764} Platypus"), ord("\x{2764}")), "\x{2764} Platypus");
62
63 };
64
65 my @strings = (
66 [ "trivial" => "" ],
67 [ "simple" => "abcde" ],
68 [ "fancy" => "abcd\x{E9}" ],
69 [ "complex" => "I \x{2764} Platypus" ],
70 );
71
72 subtest 'wide string as argument (in)' => sub {
73
74 my $wcslen = $ffi->function( wcslen => ['wstring'] => 'size_t' );
75 skip_all 'Test requires wcslen' unless defined $wcslen;
76
77 foreach my $test (@strings)
78 {
79 my($name, $string) = @$test;
80 # note: this works because on Windows with UTF_16
81 # because all of our test strings are in the BMP
82 is($wcslen->call($string), length($string), $name);
83 }
84
85 is($ffi->cast( 'wstring', 'opaque', undef), undef, 'NULL');
86
87 };
88
89 subtest 'wide string as argument (out)' => sub {
90
91 my $wcscpy = $ffi->function( wcscpy => ['wstring_w','wstring'] );
92 skip_all 'Test requires wcscpy' unless defined $wcscpy;
93
94 foreach my $test (@strings)
95 {
96 my($name, $string) = @$test;
97
98 my $out1;
99 $wcscpy->call(\$out1, $string);
100 is($out1, $string, "$name default buffer size");
101
102 my $out2 = "\0" x ($width * (length($string)+1));
103 $wcscpy->call(\$out2, $string);
104 is($out2, $string, "$name with just enough buffer");
105 }
106
107 my $is_null = $ffi->function( pointer_is_null => ['wstring_w'] => 'int' );
108 ok($is_null->call(undef), "NULL");
109 };
110
111 subtest 'wide string as a return value' => sub {
112
113 skip_all 'Test requires wcsdup' unless defined $wcsdup;
114
115 foreach my $test (@strings)
116 {
117 my($name, $string) = @$test;
118 my $ptr = $wcsdup->($string);
119 is($ffi->cast('opaque','wstring', $ptr), $string, $name);
120 }
121
122 is($ffi->cast('opaque','wstring', undef), undef, 'NULL');
123
124 };
125
126 subtest 'wide string as in-out argument' => sub {
127
128 my $wcscat = $ffi->function( wcscat => ['wstring_w','wstring'] );
129 skip_all 'Test requires wcscat' unless defined $wcscat;
130
131 foreach my $test (@strings)
132 {
133 my($name, $string) = @$test;
134
135 my $out1;
136 $wcscat->call([\$out1, $string], $string);
137 is($out1, "$string$string", "$name default buffer size");
138
139 my $out2 = "\0" x ($width * (length($string)*2+1));
140 $wcscat->call([\$out2, $string], $string);
141 is($out2, "$string$string", "$name with just enough buffer");
142 }
143
144 };
145
146 done_testing;
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use FFI::Platypus;
42 use FFI::Platypus::TypeParser;
53
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use FFI::Platypus;
42 use FFI::Platypus::TypeParser;
53 use FFI::Platypus::Internal;
119
1210 subtest basic => sub {
1311
14 is_deeply(
12 is(
1513 $type = FFI::Platypus::TypeParser::Version0->new->parse('uint64')->meta,
1614 {
1715 element_size => 8,
2725
2826 subtest 'longdouble' => sub {
2927
30 plan skip_all => 'test requires support for long double'
28 skip_all 'test requires support for long double'
3129 unless FFI::Platypus::TypeParser->have_type('longdouble');
3230
33 is_deeply(
31 is(
3432 $type = FFI::Platypus::TypeParser::Version0->new->parse('longdouble')->meta,
3533 {
3634 element_size => 16,
4745
4846 subtest 'complex' => sub {
4947
50 plan skip_all => 'test requires support for complex'
48 skip_all 'test requires support for complex'
5149 unless FFI::Platypus::TypeParser->have_type('complex_float');
5250
53 plan skip_all => 'test requires support for complex'
51 skip_all 'test requires support for complex'
5452 unless FFI::Platypus::TypeParser->have_type('complex_double');
5553
56 is_deeply(
54 is(
5755 $type = FFI::Platypus::TypeParser::Version0->new->parse('complex_float')->meta,
5856 {
5957 element_size => 8,
6664 'complex float',
6765 ) or diag explain $type;
6866
69 is_deeply(
67 is(
7068 $type = FFI::Platypus::TypeParser::Version0->new->parse('complex_double')->meta,
7169 {
7270 element_size => 16,
8583
8684 subtest record => sub {
8785
88 is_deeply(
86 is(
8987 $type = FFI::Platypus::TypeParser::Version0->new->parse('string(42)')->meta,
9088 {
9189 ffi_type => 'pointer',
9795 'fixed string',
9896 ) or diag explain $type;
9997
100 is_deeply(
98 is(
10199 $type = FFI::Platypus::TypeParser::Version0->new->parse('record(42)')->meta,
102100 {
103101 ffi_type => 'pointer',
117115 ));
118116 }
119117
120 is_deeply(
118 is(
121119 $type =FFI::Platypus::TypeParser::Version0->new->parse('record(Foo::Bar::Baz)')->meta,
122120 {
123121 ffi_type => 'pointer',
134132
135133 subtest string => sub {
136134
137 is_deeply(
135 is(
138136 $type = FFI::Platypus::TypeParser::Version0->new->parse('string')->meta,
139137 {
140138 access => 'ro',
147145 'default string',
148146 ) or diag explain $type;
149147
150 is_deeply(
148 is(
151149 $type = FFI::Platypus::TypeParser::Version0->new->parse('string ro')->meta,
152150 {
153151 access => 'ro',
160158 'explicit ro string',
161159 ) or diag explain $type;
162160
163 is_deeply(
161 is(
164162 $type = FFI::Platypus::TypeParser::Version0->new->parse('string_ro')->meta,
165163 {
166164 access => 'ro',
173171 'explicit ro string with underscore',
174172 ) or diag explain $type;
175173
176 is_deeply(
174 is(
177175 $type = FFI::Platypus::TypeParser::Version0->new->parse('string rw')->meta,
178176 {
179177 access => 'rw',
186184 'explicit rw string',
187185 ) or diag explain $type;
188186
189 is_deeply(
187 is(
190188 $type = FFI::Platypus::TypeParser::Version0->new->parse('string_rw')->meta,
191189 {
192190 access => 'rw',
203201
204202 subtest array => sub {
205203
206 is_deeply(
204 is(
207205 $type = FFI::Platypus::TypeParser::Version0->new->parse('uint64 [4]')->meta,
208206 {
209207 element_count => 4,
218216 'fixed array',
219217 ) or diag explain $type;
220218
221 is_deeply(
219 is(
222220 $type = FFI::Platypus::TypeParser::Version0->new->parse('uint64 []')->meta,
223221 {
224222 element_count => 0,
235233
236234 subtest 'longdouble' => sub {
237235
238 plan skip_all => 'test requires support for long double'
236 skip_all 'test requires support for long double'
239237 unless FFI::Platypus::TypeParser->have_type('longdouble');
240238
241 is_deeply(
239 is(
242240 $type = FFI::Platypus::TypeParser::Version0->new->parse('longdouble []')->meta,
243241 {
244242 element_count => 0,
256254
257255 subtest 'complex' => sub {
258256
259 plan skip_all => 'test requires support for complex'
257 skip_all 'test requires support for complex'
260258 unless FFI::Platypus::TypeParser->have_type('complex_float');
261259
262 plan skip_all => 'test requires support for complex'
260 skip_all 'test requires support for complex'
263261 unless FFI::Platypus::TypeParser->have_type('complex_double');
264262
265 is_deeply(
263 is(
266264 $type = FFI::Platypus::TypeParser::Version0->new->parse('complex_float []')->meta,
267265 {
268266 element_count => 0,
276274 'variable array',
277275 ) or diag explain $type;
278276
279 is_deeply(
277 is(
280278 $type = FFI::Platypus::TypeParser::Version0->new->parse('complex_double []')->meta,
281279 {
282280 element_count => 0,
296294
297295 subtest pointer => sub {
298296
299 is_deeply(
297 is(
300298 $type = FFI::Platypus::TypeParser::Version0->new->parse('uint64 *')->meta,
301299 {
302300 element_size => 8,
312310
313311 subtest 'longdouble' => sub {
314312
315 plan skip_all => 'test requires support for long double'
313 skip_all 'test requires support for long double'
316314 unless FFI::Platypus::TypeParser->have_type('longdouble');
317315
318 is_deeply(
316 is(
319317 $type = FFI::Platypus::TypeParser::Version0->new->parse('longdouble *')->meta,
320318 {
321319 element_size => 16,
332330
333331 subtest 'complex' => sub {
334332
335 plan skip_all => 'test requires support for complex'
333 skip_all 'test requires support for complex'
336334 unless FFI::Platypus::TypeParser->have_type('complex_float');
337335
338 plan skip_all => 'test requires support for complex'
336 skip_all 'test requires support for complex'
339337 unless FFI::Platypus::TypeParser->have_type('complex_double');
340338
341 is_deeply(
339 is(
342340 $type = FFI::Platypus::TypeParser::Version0->new->parse('complex_float *')->meta,
343341 {
344342 element_size => 8,
351349 'complex float pointer',
352350 ) or diag explain $type;
353351
354 is_deeply(
352 is(
355353 $type = FFI::Platypus::TypeParser::Version0->new->parse('complex_double *')->meta,
356354 {
357355 element_size => 16,
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use FFI::Platypus;
42 use FFI::Platypus::Internal;
53 use FFI::Platypus::TypeParser::Version1;
0 use strict;
1 use warnings;
0 use Test2::V0 -no_srand => 1;
21 use 5.008004;
3 use Test::More;
42 use FFI::Probe;
53 use FFI::Probe::Runner;
64 use Capture::Tiny qw( capture_merged );
123121 };
124122
125123 ok $ret, 'foo.bar.baz';
126 is_deeply $probe->data, { foo => { bar => { baz => 3 } } };
124 is $probe->data, { foo => { bar => { baz => 3 } } };
127125
128126 n {
129127 $ret = $probe->check_eval(
136134 };
137135
138136 ok $ret, 'foo.bar.string';
139 is_deeply $probe->data, { foo => { bar => { baz => 3, string => 'hello world 7' } } };
137 is $probe->data, { foo => { bar => { baz => 3, string => 'hello world 7' } } };
140138
141139 n {
142140 $ret = $probe->check_type_int('unsigned char');
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use Config;
42 use FFI::Probe::Runner;
53 use Capture::Tiny qw( capture_merged );
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use FFI::Temp;
42 use Capture::Tiny qw( capture_merged );
53 use FFI::Probe::Runner::Builder;
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use FFI::Probe::Runner::Result;
42
53 my %std = ( stdout => "foo\n", stderr => "bar\n", rv => 0, signal => 0 );
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use FFI::Temp;
42
53 my $dir = FFI::Temp->newdir;
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use FFI::CheckLib;
42 use FFI::Platypus;
53 use File::Spec;
1311 last if -f $path;
1412 }
1513
16 plan skip_all => 'Test requires forks' unless defined $path && -f $path;
14 skip_all 'Test requires forks' unless defined $path && -f $path;
1715 }
1816
1917 use forks;
3230 $val;
3331 }
3432
33 ok 1;
34
3535 is(threads->create(\&otherthread)->join(), 22, 'works in a thread');
3636
3737 is f0(24), 24, 'works in main thread';
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use FFI::CheckLib qw( find_lib );
42 use FFI::Platypus;
53
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use FFI::CheckLib qw( find_lib );
42 use FFI::Platypus;
53 use Carp ();
9189
9290 };
9391
94 done_testing;
92 done_testing;
0 use Test2::V0 -no_srand => 1;
1 use FFI::Platypus;
2 use FFI::Platypus::Memory qw( malloc free );
3
4 skip_all 'test requires variadic function support'
5 unless eval { FFI::Platypus->new( lib => [undef] )->function(
6 sprintf => ['opaque', 'string'] => ['float'] ) };
7
8 foreach my $api (0,1,2)
9 {
10
11 subtest "api => $api" => sub {
12
13 our $ffi = FFI::Platypus->new( api => $api, lib => [undef], experimental => ($api >=2 ? $api : undef));
14
15 $ffi->type('float' => 'my_float');
16
17 sub callit
18 {
19 my($type) = @_;
20
21 my $ptr = malloc 1024;
22 $ffi->function( sprintf => ['opaque','string'] => [$type] )->call($ptr, "%f", 3.14);
23 my $string = $ffi->cast('opaque' => 'string', $ptr);
24 free $ptr;
25 return $string;
26 }
27
28 my $double = callit('double');
29 my $float = callit('float');
30 note "double = $double";
31 note "float = $float";
32 is $float, $double;
33
34 $float = callit('my_float');
35 note "my_float = $float";
36 is $float, $double;
37
38 };
39 }
40
41 done_testing;
11
22 use strict;
33 use warnings;
4 use base qw( Exporter );
4 use Exporter qw( import );
55 use File::Path qw( rmtree );
66
77 our @EXPORT = qw( cleanup );
1515
1616 END
1717 {
18 foreach my $dir (@cleanup)
18 foreach my $item (@cleanup)
1919 {
20 rmtree($dir, { verbose => 0 });
20 if(ref $item eq 'CODE')
21 {
22 $item->();
23 }
24 else
25 {
26 rmtree("$item", { verbose => 0 });
27 }
2128 }
2229 }
2330
11
22 use strict;
33 use warnings;
4 use Test::More;
4 use Test2::V0 ();
55
66 my @funcs;
77
2727
2828 *FFI::Platypus::Function::Function::_attach = sub {
2929 my($self, $perl_name, $location, $proto) = @_;
30 note " attaching: $perl_name";
30 Test2::V0::note(" attaching: $perl_name");
3131 my $xsub = $self->_sub_ref($location);
3232 FFI::Platypus::Function::Wrapper::_set_prototype($proto, $xsub) if defined $proto;
3333 no strict 'refs';
3636 }
3737
3838 END {
39 note "deleting @{[ scalar @funcs ]} attached functions";
39 Test2::V0::note("deleting @{[ scalar @funcs ]} attached functions");
4040 @funcs = ();
4141 }
4242
11
22 use strict;
33 use warnings;
4 use Test::More ();
5 use base qw( Exporter );
4 use Test2::API qw( context );
5 use Exporter qw( import );
66
77 our @EXPORT = qw( platypus );
88
1111
1212 my $ffi = eval {
1313 require FFI::Platypus;
14 FFI::Platypus->VERSION(0.51);
1514 FFI::Platypus->new;
1615 };
1716
18 SKIP: {
19 Test::More::skip "Test requires FFI::Platypus", $count unless $ffi;
17 if($ffi)
18 {
2019 $code->($ffi);
2120 }
21 else
22 {
23 my $ctx = context();
24 $ctx->skip('', "Test requires FFI::Platypus") for 1..$count;
25 $ctx->release;
26 }
27
2228 }
2329
2430 1;
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use Config;
42 use Capture::Tiny qw( capture_merged );
53 use FFI::Temp;
64
75 # libexpat1-dev
86
9 plan skip_all => 'tested only in CI' if ($ENV{CIPSOMETHING}||'') ne 'true';
10 plan skip_all => 'tested only in CI -debug' if $Config{ccflags} !~ /-DDEBUG_LEAKING_SCALARS/;
7 skip_all 'tested only in CI' if ($ENV{CIPSOMETHING}||'') ne 'true';
8 skip_all 'tested only in CI -debug' if $Config{ccflags} !~ /-DDEBUG_LEAKING_SCALARS/;
119
1210 my %exfail = map { $_ => 1 } qw( attach.pl );
1311
5654 if($exfail{$name})
5755 {
5856 note "expected fail";
59 TODO: {
60 local $TODO = 'expected fail';
57 {
58 my $todo = todo 'expected fail';
6159 is($exit, 0, 'valgrind') or do {
6260 note "[output]\n$out";
6361 note "[log]\n", do { local $/; <$log> };
0 use strict;
1 use warnings;
2 use Test::More;
3 BEGIN { plan skip_all => 'Test requires a threading Perl' unless eval q{ use threads; 1 } }
0 use Test2::V0 -no_srand => 1;
1 BEGIN { skip_all 'Test requires a threading Perl' unless eval q{ use threads; 1 } }
42 use FFI::CheckLib;
53 use FFI::Platypus;
64 use Config;
1917 $val;
2018 }
2119
20 ok 1;
21
2222 is(threads->create(\&otherthread)->join(), 22, 'works in a thread');
2323
2424 is f0(24), 24, 'works in main thread';
0 use strict;
1 use warnings;
2 use Test::More;
0 #
1 # DO NOT MODIFY THIS FILE.
2 # This file generated from similar file t/type_complex_float.t
3 # all instances of "float" have been changed to "double"
4 #
5 use Test2::V0 -no_srand => 1;
36 use FFI::Platypus;
47 use FFI::Platypus::TypeParser;
58 use FFI::CheckLib;
69 use Data::Dumper qw( Dumper );
710
811 BEGIN {
9 plan skip_all => 'Test requires support for double complex'
12 skip_all 'Test requires support for double complex'
1013 unless FFI::Platypus::TypeParser->have_type('complex_double');
1114 }
1215
13 foreach my $api (0, 1)
16 foreach my $api (0, 1, 2)
1417 {
1518
1619 subtest "api = $api" => sub {
2124 warn $message;
2225 };
2326
24 my $ffi = FFI::Platypus->new( api => $api );
27 my $ffi = FFI::Platypus->new( api => $api, experimental => ($api >=2 ? $api : undef) );
2528 $ffi->lib(find_lib lib => 'test', symbol => 'f0', libpath => 't/ffi');
2629
2730 $ffi->attach(['complex_double_get_real' => 'creal'] => ['complex_double'] => 'double');
4245 };
4346
4447 subtest 'with Math::Complex' => sub {
45 plan skip_all => 'test requires Math::Complex'
48 skip_all 'test requires Math::Complex'
4649 unless eval q{ use Math::Complex (); 1 };
4750 my $c = Math::Complex->make(10.5, 20.5);
4851 note "to_string(\$c) = ", to_string($c);
6972 };
7073
7174 subtest 'with Math::Complex' => sub {
72 plan skip_all => 'test requires Math::Complex'
75 skip_all 'test requires Math::Complex'
7376 unless eval q{ use Math::Complex (); 1 };
7477 my $c = Math::Complex->make(10.5, 20.5);
7578 note "to_string(\$c) = ", to_string($c);
8083 subtest 'values set on out (array)' => sub {
8184 my @c;
8285 complex_set(\\@c, 1.0, 2.0);
83 is_deeply \@c, [ 1.0, 2.0 ];
86 is \@c, [ 1.0, 2.0 ];
8487 };
8588
8689 subtest 'values set on out (object)' => sub {
87 plan skip_all => 'test requires Math::Complex'
90 skip_all 'test requires Math::Complex'
8891 unless eval q{ use Math::Complex (); 1 };
8992 my $c = Math::Complex->make(0.0, 0.0);
9093 complex_set(\$c, 1.0, 2.0);
91 is_deeply( [ $c->Re, $c->Im ], [1.0,2.0] );
94 is( [ $c->Re, $c->Im ], [1.0,2.0] );
9295 };
9396
9497 subtest 'values set on out (other)' => sub {
9598 my $c;
9699 complex_set(\$c, 1.0, 2.0);
97 is_deeply( $c, [1.0, 2.0]);
100 is( $c, [1.0, 2.0]);
98101 };
99102
100103 };
105108
106109 subtest 'return value' => sub {
107110
108 is_deeply(complex_ret(1.0,2.0), [1.0,2.0], 'standard');
109 is_deeply(complex_ptr_ret(1.0,2.0), \[1.0,2.0], 'pointer');
110 is_deeply([complex_null()], [], 'null');
111 is(complex_ret(1.0,2.0), [1.0,2.0], 'standard');
112 is(complex_ptr_ret(1.0,2.0), \[1.0,2.0], 'pointer');
113 is([complex_null()], $api >= 2 ? [undef] : [], 'null');
111114
112115 };
113116
117120
118121 my @a = ([0.0,0.0], [1.0,2.0], [3.0,4.0]);
119122 my $ret;
120 is_deeply( $ret = $f->call(\@a, 0), [0.0,0.0] )
123 is( $ret = $f->call(\@a, 0), [0.0,0.0] )
121124 or diag Dumper($ret);
122 is_deeply( $ret = $f->call(\@a, 1), [1.0,2.0] )
125 is( $ret = $f->call(\@a, 1), [1.0,2.0] )
123126 or diag Dumper($ret);
124 is_deeply( $ret = $f->call(\@a, 2), [3.0,4.0] )
127 is( $ret = $f->call(\@a, 2), [3.0,4.0] )
128 or diag Dumper($ret);
129
130 };
131
132 subtest 'complex array arg' => sub {
133
134 skip_all 'for api >= 2 only' unless $api >= 2;
135
136 my $f = $ffi->function(complex_double_array_get => ['complex_double*','int'] => 'complex_double' );
137
138 my @a = ([0.0,0.0], [1.0,2.0], [3.0,4.0]);
139 my $ret;
140 is( $ret = $f->call(\@a, 0), [0.0,0.0] )
141 or diag Dumper($ret);
142 is( $ret = $f->call(\@a, 1), [1.0,2.0] )
143 or diag Dumper($ret);
144 is( $ret = $f->call(\@a, 2), [3.0,4.0] )
125145 or diag Dumper($ret);
126146
127147 };
132152
133153 my @a = ([0.0,0.0], [1.0,2.0], [3.0,4.0]);
134154 $f->call(\@a, 1, 5.0, 6.0);
135 is_deeply(\@a, [[0.0,0.0], [5.0,6.0], [3.0,4.0]]);
155 is(\@a, [[0.0,0.0], [5.0,6.0], [3.0,4.0]]);
156
157 };
158
159 subtest 'complex array arg set' => sub {
160
161 skip_all 'for api >= 2 only' unless $api >= 2;
162
163 my $f = $ffi->function(complex_double_array_set => ['complex_double*','int','double','double'] => 'void' );
164
165 my @a = ([0.0,0.0], [1.0,2.0], [3.0,4.0]);
166 $f->call(\@a, 1, 5.0, 6.0);
167 is(\@a, [[0.0,0.0], [5.0,6.0], [3.0,4.0]]);
136168
137169 };
138170
143175 my @a = ([0.0,0.0], [1.0,2.0], [3.0,4.0]);
144176 my $ret;
145177
146 is_deeply(
178 is(
147179 $ret = $f->call( \@a ),
148180 \@a,
149181 ) or diag Dumper($ret);
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use FFI::Platypus;
42 use FFI::Platypus::TypeParser;
53 use FFI::CheckLib;
64 use Data::Dumper qw( Dumper );
75
86 BEGIN {
9 plan skip_all => 'Test requires support for float complex'
7 skip_all 'Test requires support for float complex'
108 unless FFI::Platypus::TypeParser->have_type('complex_float');
119 }
1210
13 foreach my $api (0, 1)
11 foreach my $api (0, 1, 2)
1412 {
1513
1614 subtest "api = $api" => sub {
2119 warn $message;
2220 };
2321
24 my $ffi = FFI::Platypus->new( api => $api );
22 my $ffi = FFI::Platypus->new( api => $api, experimental => ($api >=2 ? $api : undef) );
2523 $ffi->lib(find_lib lib => 'test', symbol => 'f0', libpath => 't/ffi');
2624
2725 $ffi->attach(['complex_float_get_real' => 'creal'] => ['complex_float'] => 'float');
4240 };
4341
4442 subtest 'with Math::Complex' => sub {
45 plan skip_all => 'test requires Math::Complex'
43 skip_all 'test requires Math::Complex'
4644 unless eval q{ use Math::Complex (); 1 };
4745 my $c = Math::Complex->make(10.5, 20.5);
4846 note "to_string(\$c) = ", to_string($c);
6967 };
7068
7169 subtest 'with Math::Complex' => sub {
72 plan skip_all => 'test requires Math::Complex'
70 skip_all 'test requires Math::Complex'
7371 unless eval q{ use Math::Complex (); 1 };
7472 my $c = Math::Complex->make(10.5, 20.5);
7573 note "to_string(\$c) = ", to_string($c);
8078 subtest 'values set on out (array)' => sub {
8179 my @c;
8280 complex_set(\\@c, 1.0, 2.0);
83 is_deeply \@c, [ 1.0, 2.0 ];
81 is \@c, [ 1.0, 2.0 ];
8482 };
8583
8684 subtest 'values set on out (object)' => sub {
87 plan skip_all => 'test requires Math::Complex'
85 skip_all 'test requires Math::Complex'
8886 unless eval q{ use Math::Complex (); 1 };
8987 my $c = Math::Complex->make(0.0, 0.0);
9088 complex_set(\$c, 1.0, 2.0);
91 is_deeply( [ $c->Re, $c->Im ], [1.0,2.0] );
89 is( [ $c->Re, $c->Im ], [1.0,2.0] );
9290 };
9391
9492 subtest 'values set on out (other)' => sub {
9593 my $c;
9694 complex_set(\$c, 1.0, 2.0);
97 is_deeply( $c, [1.0, 2.0]);
95 is( $c, [1.0, 2.0]);
9896 };
9997
10098 };
105103
106104 subtest 'return value' => sub {
107105
108 is_deeply(complex_ret(1.0,2.0), [1.0,2.0], 'standard');
109 is_deeply(complex_ptr_ret(1.0,2.0), \[1.0,2.0], 'pointer');
110 is_deeply([complex_null()], [], 'null');
106 is(complex_ret(1.0,2.0), [1.0,2.0], 'standard');
107 is(complex_ptr_ret(1.0,2.0), \[1.0,2.0], 'pointer');
108 is([complex_null()], $api >= 2 ? [undef] : [], 'null');
111109
112110 };
113111
117115
118116 my @a = ([0.0,0.0], [1.0,2.0], [3.0,4.0]);
119117 my $ret;
120 is_deeply( $ret = $f->call(\@a, 0), [0.0,0.0] )
118 is( $ret = $f->call(\@a, 0), [0.0,0.0] )
121119 or diag Dumper($ret);
122 is_deeply( $ret = $f->call(\@a, 1), [1.0,2.0] )
120 is( $ret = $f->call(\@a, 1), [1.0,2.0] )
123121 or diag Dumper($ret);
124 is_deeply( $ret = $f->call(\@a, 2), [3.0,4.0] )
122 is( $ret = $f->call(\@a, 2), [3.0,4.0] )
123 or diag Dumper($ret);
124
125 };
126
127 subtest 'complex array arg' => sub {
128
129 skip_all 'for api >= 2 only' unless $api >= 2;
130
131 my $f = $ffi->function(complex_float_array_get => ['complex_float*','int'] => 'complex_float' );
132
133 my @a = ([0.0,0.0], [1.0,2.0], [3.0,4.0]);
134 my $ret;
135 is( $ret = $f->call(\@a, 0), [0.0,0.0] )
136 or diag Dumper($ret);
137 is( $ret = $f->call(\@a, 1), [1.0,2.0] )
138 or diag Dumper($ret);
139 is( $ret = $f->call(\@a, 2), [3.0,4.0] )
125140 or diag Dumper($ret);
126141
127142 };
132147
133148 my @a = ([0.0,0.0], [1.0,2.0], [3.0,4.0]);
134149 $f->call(\@a, 1, 5.0, 6.0);
135 is_deeply(\@a, [[0.0,0.0], [5.0,6.0], [3.0,4.0]]);
150 is(\@a, [[0.0,0.0], [5.0,6.0], [3.0,4.0]]);
151
152 };
153
154 subtest 'complex array arg set' => sub {
155
156 skip_all 'for api >= 2 only' unless $api >= 2;
157
158 my $f = $ffi->function(complex_float_array_set => ['complex_float*','int','float','float'] => 'void' );
159
160 my @a = ([0.0,0.0], [1.0,2.0], [3.0,4.0]);
161 $f->call(\@a, 1, 5.0, 6.0);
162 is(\@a, [[0.0,0.0], [5.0,6.0], [3.0,4.0]]);
136163
137164 };
138165
143170 my @a = ([0.0,0.0], [1.0,2.0], [3.0,4.0]);
144171 my $ret;
145172
146 is_deeply(
173 is(
147174 $ret = $f->call( \@a ),
148175 \@a,
149176 ) or diag Dumper($ret);
153180 }
154181
155182 done_testing;
156
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use FFI::Platypus;
42 use FFI::CheckLib;
53 use FFI::Platypus::ShareConfig;
9593 ->call( ["Graham", 47] ),
9694 47,
9795 );
98 is_deeply(
96 is(
9997 $ffi->function( foo_create => ['string','sint32'] => 'foo_t' )
10098 ->call("Adams", 42),
10199 ["Adams\0\0\0\0\0\0\0\0\0\0\0", 42],
102100 );
103 is_deeply(
101 is(
104102 $ffi->function( pointer_null => [] => 'foo_t' )
105103 ->call,
106104 [],
143141 47,
144142 );
145143 subtest 'return-value' => sub {
146 plan skip_all => 'test requires working return records-by-value'
144 skip_all 'test requires working return records-by-value'
147145 unless $return_ok;
148146
149 is_deeply(
147 is(
150148 $ffi->function( foo_value_create => ['string','sint32'] => 'foo_t' )
151149 ->call("Adams", 42),
152150 ["Adams\0\0\0\0\0\0\0\0\0\0\0", 42],
22 # This file generated from similar file t/type_float.t
33 # all instances of "float" have been changed to "double"
44 #
5 use strict;
6 use warnings;
7 use Test::More;
5 use Test2::V0 -no_srand => 1;
86 use FFI::Platypus;
97 use FFI::CheckLib;
108
3735 $ffi->attach( [double_static_array => 'static_array'] => [] => 'double_a');
3836 $ffi->attach( [pointer_null => 'null2'] => [] => 'double_a');
3937
38 if($api >= 2)
39 {
40 $ffi->attach( [double_sum => 'sum3'] => ['double*'] => 'double');
41 $ffi->attach( [double_array_inc => 'array_inc2'] => ['double*'] => 'void');
42 }
43
4044 is add(1.5,2.5), 4, 'add(1.5,2.5) = 4';
4145 is eval { no warnings; add() }, 0.0, 'add() = 0.0';
4246
5256 is sum(\@list), 55, 'sum([1..10]) = 55';
5357 is sum2(\@list,scalar @list), 55, 'sum2([1..10],10) = 55';
5458
59 if($api >= 2)
60 {
61 is sum3(\@list), 55, 'sum([1..10]) = 55';
62 }
63
5564 array_inc(\@list);
5665 do { local $SIG{__WARN__} = sub {}; array_inc(); };
5766
58 is_deeply \@list, [2,3,4,5,6,7,8,9,10,11], 'array increment';
67 is \@list, [2,3,4,5,6,7,8,9,10,11], 'array increment';
5968
60 is_deeply [null()], [$api >= 2 ? (undef) : ()], 'null() == undef';
69 if($api >= 2)
70 {
71 array_inc2(\@list);
72 is \@list, [3,4,5,6,7,8,9,10,11,12], 'array increment';
73 }
74
75 is [null()], [$api >= 2 ? (undef) : ()], 'null() == undef';
6176 is is_null(undef), 1, 'is_null(undef) == 1';
6277 is is_null(), 1, 'is_null() == 1';
6378 is is_null(\22), 0, 'is_null(22) == 0';
6479
65 is_deeply static_array(), [-5.5, 5.5, -10, 10, -15.5, 15.5, 20, -20, 25.5, -25.5], 'static_array = [-5.5, 5.5, -10, 10, -15.5, 15.5, 20, -20, 25.5, -25.5]';
80 is static_array(), [-5.5, 5.5, -10, 10, -15.5, 15.5, 20, -20, 25.5, -25.5], 'static_array = [-5.5, 5.5, -10, 10, -15.5, 15.5, 20, -20, 25.5, -25.5]';
6681
67 is_deeply [null2()], [$api >= 2 ? (undef) : ()], 'null2() == undef';
82 is [null2()], [$api >= 2 ? (undef) : ()], 'null2() == undef';
6883
6984 my $closure = $ffi->closure(sub { $_[0]+2.25 });
7085 $ffi->attach( [double_set_closure => 'set_closure'] => ['double_c'] => 'void');
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use FFI::Platypus;
42 use FFI::CheckLib;
53
3230 $ffi->attach( [float_static_array => 'static_array'] => [] => 'float_a');
3331 $ffi->attach( [pointer_null => 'null2'] => [] => 'float_a');
3432
33 if($api >= 2)
34 {
35 $ffi->attach( [float_sum => 'sum3'] => ['float*'] => 'float');
36 $ffi->attach( [float_array_inc => 'array_inc2'] => ['float*'] => 'void');
37 }
38
3539 is add(1.5,2.5), 4, 'add(1.5,2.5) = 4';
3640 is eval { no warnings; add() }, 0.0, 'add() = 0.0';
3741
4751 is sum(\@list), 55, 'sum([1..10]) = 55';
4852 is sum2(\@list,scalar @list), 55, 'sum2([1..10],10) = 55';
4953
54 if($api >= 2)
55 {
56 is sum3(\@list), 55, 'sum([1..10]) = 55';
57 }
58
5059 array_inc(\@list);
5160 do { local $SIG{__WARN__} = sub {}; array_inc(); };
5261
53 is_deeply \@list, [2,3,4,5,6,7,8,9,10,11], 'array increment';
62 is \@list, [2,3,4,5,6,7,8,9,10,11], 'array increment';
5463
55 is_deeply [null()], [$api >= 2 ? (undef) : ()], 'null() == undef';
64 if($api >= 2)
65 {
66 array_inc2(\@list);
67 is \@list, [3,4,5,6,7,8,9,10,11,12], 'array increment';
68 }
69
70 is [null()], [$api >= 2 ? (undef) : ()], 'null() == undef';
5671 is is_null(undef), 1, 'is_null(undef) == 1';
5772 is is_null(), 1, 'is_null() == 1';
5873 is is_null(\22), 0, 'is_null(22) == 0';
5974
60 is_deeply static_array(), [-5.5, 5.5, -10, 10, -15.5, 15.5, 20, -20, 25.5, -25.5], 'static_array = [-5.5, 5.5, -10, 10, -15.5, 15.5, 20, -20, 25.5, -25.5]';
75 is static_array(), [-5.5, 5.5, -10, 10, -15.5, 15.5, 20, -20, 25.5, -25.5], 'static_array = [-5.5, 5.5, -10, 10, -15.5, 15.5, 20, -20, 25.5, -25.5]';
6176
62 is_deeply [null2()], [$api >= 2 ? (undef) : ()], 'null2() == undef';
77 is [null2()], [$api >= 2 ? (undef) : ()], 'null2() == undef';
6378
6479 my $closure = $ffi->closure(sub { $_[0]+2.25 });
6580 $ffi->attach( [float_set_closure => 'set_closure'] => ['float_c'] => 'void');
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use FFI::Platypus;
42 use FFI::Platypus::TypeParser;
53 use FFI::CheckLib;
64 use Config;
75
86 BEGIN {
9 plan skip_all => 'test requires support for long double'
7 skip_all 'test requires support for long double'
108 unless FFI::Platypus::TypeParser->have_type('longdouble');
119 }
1210
3028 }
3129 };
3230
33 foreach my $api (0, 1)
31 foreach my $api (0, 1, 2)
3432 {
3533
3634 subtest "api = $api" => sub {
4139 warn $message;
4240 };
4341
44 my $ffi = FFI::Platypus->new( api => $api );
42 my $ffi = FFI::Platypus->new( api => $api, experimental => ($api >=2 ? $api : undef) );
4543 $ffi->lib(find_lib lib => 'test', libpath => 't/ffi');
4644
4745 $ffi->type('longdouble*' => 'longdouble_p');
5149 $ffi->attach( longdouble_pointer_test => ['longdouble_p', 'longdouble_p'] => 'int');
5250 $ffi->attach( longdouble_array_test => ['longdouble_a', 'int'] => 'int');
5351 $ffi->attach( [longdouble_array_test => 'longdouble_array_test3'] => ['longdouble_a3', 'int'] => 'int');
52 $ffi->attach( [longdouble_array_test => 'longdouble_array_test_ptr'] => ['longdouble*', 'int'] => 'int') if $api >= 2;
5453 $ffi->attach( longdouble_array_return_test => [] => 'longdouble_a3');
5554 $ffi->attach( pointer_is_null => ['longdouble_p'] => 'int');
5655 $ffi->attach( longdouble_pointer_return_test => ['longdouble'] => 'longdouble_p');
5756 $ffi->attach( pointer_null => [] => 'longdouble_p');
5857
5958 subtest 'with Math::LongDouble' => sub {
60 plan skip_all => 'test requires Math::LongDouble'
59 skip_all 'test requires Math::LongDouble'
6160 if $Config{uselongdouble} || !eval q{ use Math::LongDouble; 1 };
6261
6362 my $ld15 = Math::LongDouble->new(1.5);
108107 ok $list->[2] == $ld30;
109108 };
110109
110 subtest 'array var ptr' => sub {
111 skip_all 'for api = 2 and better only' unless $api >= 2;
112 my $list = [ map { Math::LongDouble->new($_) } qw( 25.0 25.0 50.0 )];
113
114 ok longdouble_array_test_ptr($list, 3);
115 note "[", join(',', map { "$_" } @$list), "]";
116 ok $list->[0] == $ld10;
117 ok $list->[1] == $ld20;
118 ok $list->[2] == $ld30;
119 };
120
111121 subtest 'array return' => sub {
112122 my $list = longdouble_array_return_test();
113123 note "[", join(',', map { "$_" } @$list), "]";
118128 };
119129
120130 subtest 'without Math::LongDouble' => sub {
121 plan skip_all => 'test requires Math::LongDouble'
131 skip_all 'test requires Math::LongDouble'
122132 if ! $Config{uselongdouble} || ! eval q{ use Math::LongDouble; 1 };
123133
124134 subtest 'scalar' => sub {
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use FFI::Platypus;
42 use FFI::Platypus::TypeParser;
53 use FFI::CheckLib;
64 use Config;
75
86 BEGIN {
9 plan skip_all => 'test requires support for long double'
7 skip_all 'test requires support for long double'
108 unless FFI::Platypus::TypeParser->have_type('longdouble');
119 }
1210
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use FFI::Platypus;
42 use FFI::Platypus::TypeParser;
53 use FFI::CheckLib;
119 warn $message;
1210 };
1311
14 plan skip_all => 'test requires support for long double'
12 skip_all 'test requires support for long double'
1513 unless FFI::Platypus::TypeParser->have_type('longdouble');
16 plan skip_all => 'test requires Devel::Hide 0.0010'
14 skip_all 'test requires Devel::Hide 0.0010'
1715 unless eval q{ use Devel::Hide 0.0010 qw( Math::LongDouble ); 1; };
1816 }
1917
4038 $ffi->attach( pointer_null => [] => 'longdouble_p');
4139
4240 subtest 'without Math::LongDouble' => sub {
43 plan skip_all => 'test requires Math::LongDouble'
41 skip_all 'test requires Math::LongDouble'
4442 if eval q{ use Math::LongDouble; 1 };
4543
4644 subtest 'scalar' => sub {
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use FFI::Platypus;
42 use FFI::Platypus::TypeParser;
53 use FFI::CheckLib;
64 use Config;
75
86 BEGIN {
9 plan skip_all => 'test requires support for long double'
7 skip_all 'test requires support for long double'
108 unless FFI::Platypus::TypeParser->have_type('longdouble');
119 }
1210
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use FFI::CheckLib;
42 use FFI::Platypus;
53 use FFI::Platypus::Memory qw( malloc free );
2523 $ffi->attach( [pointer_get_my_pointer => 'getp'] => [] => 'opaque');
2624 $ffi->attach( [pointer_get_my_pointer_arg => 'geta'] => ['opaque*'] => 'void');
2725
28 is_deeply [null()], [$api >= 2 ? (undef) : ()], 'null = ()/undef';
26 is [null()], [$api >= 2 ? (undef) : ()], 'null = ()/undef';
2927 is is_null(undef), 1, 'is_null(undef) == 1';
3028 is is_null(), 1, 'is_null() == 1';
3129
5351 free $ptr;
5452
5553 $ffi->attach( [pointer_arg_array_in => 'aa_in'] => ['opaque[3]'] => 'int');
54 $ffi->attach( [pointer_arg_array_in => 'aa_in_ptr'] => ['opaque*'] => 'int') if $api >= 2;
5655 $ffi->attach( [pointer_arg_array_null_in => 'aa_null_in'] => ['opaque[3]'] => 'int');
5756 $ffi->attach( [pointer_arg_array_out => 'aa_out'] => ['opaque[3]'] => 'void');
57 $ffi->attach( [pointer_arg_array_out => 'aa_out_ptr'] => ['opaque*'] => 'void') if $api >= 2;
5858 $ffi->attach( [pointer_arg_array_null_out => 'aa_null_out'] => ['opaque[3]'] => 'void');
5959
6060 do {
6363 free $_ for @stuff;
6464 };
6565
66 if($api >= 2)
67 {
68 my @stuff = map { perl_to_c_string_copy($_) } qw( one two three );
69 is aa_in_ptr([@stuff]), 1, "aa_in([one two three])";
70 free $_ for @stuff;
71 };
72
6673 is aa_null_in([undef,undef,undef]), 1, "aa_null_in([undef,undef,undef])";
6774
6875 do {
6976 my @list = (undef,undef,undef);
7077 aa_out(\@list);
71 is_deeply [map { $ffi->cast('opaque' => 'string', $_) } @list], [qw( four five six )], 'aa_out()';
78 is [map { $ffi->cast('opaque' => 'string', $_) } @list], [qw( four five six )], 'aa_out()';
79 };
80
81 if($api >= 2)
82 {
83 my @list = (undef,undef,undef);
84 aa_out(\@list);
85 is [map { $ffi->cast('opaque' => 'string', $_) } @list], [qw( four five six )], 'aa_out()';
7286 };
7387
7488 do {
7589 my @list1 = (malloc 32, malloc 32, malloc 32);
7690 my @list2 = @list1;
7791 aa_null_out(\@list2);
78 is_deeply [@list2], [undef,undef,undef], 'aa_null_out()';
92 is [@list2], [undef,undef,undef], 'aa_null_out()';
7993 free $_ for @list1;
8094 };
8195
8397 $ffi->attach( [pointer_ret_array_out_null_terminated => 'ra_out_nt'] => [] => 'opaque[]');
8498 $ffi->attach( [pointer_ret_array_null_out => 'ra_null_out'] => [] => 'opaque[3]');
8599
86 is_deeply [map { $ffi->cast('opaque' => 'string', $_) } @{ ra_out() } ], [qw( seven eight nine )], "ra_out()";
87 is_deeply [map { $ffi->cast('opaque' => 'string', $_) } @{ ra_out_nt() } ], [qw( seven eight nine )], "ra_out_nt()";
88 is_deeply ra_null_out(), [undef,undef,undef], 'ra_null_out';
100 is [map { $ffi->cast('opaque' => 'string', $_) } @{ ra_out() } ], [qw( seven eight nine )], "ra_out()";
101 is [map { $ffi->cast('opaque' => 'string', $_) } @{ ra_out_nt() } ], [qw( seven eight nine )], "ra_out_nt()";
102 is ra_null_out(), [undef,undef,undef], 'ra_null_out';
89103
90104
91105 $ffi->attach( [pointer_pointer_pointer_to_pointer => 'pp2p'] => ['opaque*'] => 'opaque');
194208
195209 };
196210
197 is_deeply
211 is
198212 [$ffi->function( pointer_null => [] => 'roger_t' )->call],
199213 [$api >= 2 ? (undef) : ()],
200214 ;
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use FFI::Platypus;
42 use FFI::CheckLib qw( find_lib );
53 use FFI::Platypus::Memory qw( malloc free );
4139
4240 subtest 'return null' => sub {
4341
44 is_deeply(
42 is(
4543 [FFI::Platypus->new( api => 1, lib => [@lib] )->function( pointer_null => [] => 'record(10)*' )->call],
4644 [],
4745 );
4846
49 is_deeply(
47 is(
5048 [FFI::Platypus->new( api => 2, experimental => 2, lib => [@lib] )->function( pointer_null => [] => 'record(10)*' )->call],
5149 [undef],
5250 );
8785
8886 subtest 'closure' => sub {
8987
90 { package Closture::Record::RW;
88 { package Closure::Record::RW;
9189
9290 use FFI::Platypus::Record;
9391
105103
106104 my $ffi = FFI::Platypus->new( lib => [@lib] );
107105
108 $ffi->type('record(Closture::Record::RW)' => 'cx_struct_rw_t');
106 $ffi->type('record(Closure::Record::RW)' => 'cx_struct_rw_t');
109107 eval { $ffi->type('(cx_struct_rw_t,int)->void' => 'cx_closure_t') };
110108 is $@, '', 'allow record type as arg';
111109
112110 my $cx_closure_set = $ffi->function(cx_closure_set => [ 'cx_closure_t' ] => 'void' );
113111 my $cx_closure_call = $ffi->function(cx_closure_call => [ 'cx_struct_rw_t', 'int' ] => 'void' );
114112
115 my $r = Closture::Record::RW->new;
113 my $r = Closure::Record::RW->new;
116114 $r->one("one");
117115 $r->two("two");
118116 $r->three(3);
139137 }
140138 is($r2->three, 3);
141139 is($r2->four, "four");
142 is_deeply($r2->myarray1, [1,2]);
140 is($r2->myarray1, [1,2]);
143141 {
144142 local $@ = '';
145143 eval { $r2->myarray1([3,4]) };
146144 isnt $@, '';
147145 note "error = $@";
148146 }
149 is_deeply($r2->myarray1, [1,2]);
147 is($r2->myarray1, [1,2]);
150148 {
151149 local $@ = '';
152150 eval { $r2->myarray1(3,4) };
153151 isnt $@, '';
154152 note "error = $@";
155153 }
156 is_deeply($r2->myarray1, [1,2]);
154 is($r2->myarray1, [1,2]);
157155
158156 is($r2->opaque1, $r->opaque1);
159157 {
164162 }
165163 is($r2->opaque1, $r->opaque1);
166164
167 is_deeply($r2->myarray2, $r->myarray2);
165 is($r2->myarray2, $r->myarray2);
168166 {
169167 local $@ = '';
170168 eval { $r2->myarray2([undef,undef]) };
171169 isnt $@, '';
172170 note "error = $@";
173171 }
174 is_deeply($r2->myarray2, $r->myarray2);
172 is($r2->myarray2, $r->myarray2);
175173 {
176174 local $@ = '';
177175 eval { $r2->myarray2(undef,undef) };
178176 isnt $@, '';
179177 note "error = $@";
180178 }
181 is_deeply($r2->myarray2, $r->myarray2);
179 is($r2->myarray2, $r->myarray2);
182180
183181 {
184182 local $@ = '';
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use FFI::Platypus;
42 use FFI::CheckLib qw( find_lib );
53 use FFI::Platypus::Memory qw( malloc free );
64 use FFI::Platypus::ShareConfig;
75
8 my $libtest = find_lib lib => 'test', symbol => 'f0', libpath => 't/ffi';
6 my @lib = find_lib lib => 'test', symbol => 'f0', libpath => 't/ffi';
97
108 my $return_ok = FFI::Platypus::ShareConfig->get('probe')->{recordvalue};
119
2018 }
2119
2220 subtest 'is a reference' => sub {
23 my $ffi = FFI::Platypus->new( api => 1 );
24 $ffi->lib($libtest);
21 my $ffi = FFI::Platypus->new( lib => [@lib], api => 1 );
2522
2623 $ffi->type("record(FooRecord)" => 'foo_record_t');
2724 my $get_name = $ffi->function( foo_value_get_name => [ 'foo_record_t' ] => 'string' );
6057
6158 subtest 'return value' => sub {
6259
63 plan skip_all => 'test requires working return records-by-value'
60 skip_all 'test requires working return records-by-value'
6461 unless $return_ok;
6562
6663 subtest 'function object' => sub {
9693
9794 };
9895
96 subtest 'closure' => sub {
97
98 { package Closure::Record::RW;
99
100 use FFI::Platypus::Record;
101
102 record_layout_1(
103 'string rw' => 'one',
104 'string rw' => 'two',
105 'int' => 'three',
106 'string rw' => 'four',
107 'int[2]' => 'myarray1',
108 'opaque' => 'opaque1',
109 'opaque[2]' => 'myarray2',
110 'string(5)' => 'fixedfive',
111 );
112 }
113
114 my $ffi = FFI::Platypus->new( lib => [@lib], api => 1 );
115
116 $ffi->type('record(Closure::Record::RW)' => 'cx_struct_rw_t');
117 {
118 local $@ = '';
119 eval { $ffi->type('(cx_struct_rw_t,int)->void' => 'cxv_closure_t') };
120 is $@, '', 'do allow record type as arg';
121 }
122
123 {
124 local $@ = '';
125 eval { $ffi->type('()->cx_struct_rw_t' ) };
126 like "$@", qr/Record return type contains types that cannot be returned from a closure/, 'do not allow record type with pointer strings as ret type';
127 }
128
129 my $cxv_closure_set = $ffi->function(cxv_closure_set => [ 'cxv_closure_t' ] => 'void' );
130 my $cxv_closure_call = $ffi->function(cxv_closure_call => [ 'cx_struct_rw_t', 'int' ] => 'void' );
131
132 my $r = Closure::Record::RW->new;
133 $r->one("one");
134 $r->two("two");
135 $r->three(3);
136 $r->four("four");
137 $r->myarray1([1,2]);
138 $r->opaque1(malloc(22));
139 $r->myarray2([malloc(33),malloc(44)]);
140 $r->fixedfive("five\0");
141 is($r->_ffi_record_ro, 0);
142
143 my $here = 0;
144
145 my $f = $ffi->closure(sub {
146 my($r2,$num) = @_;
147 note "first closure";
148 isa_ok $r2, 'Closure::Record::RW';
149 is($r2->_ffi_record_ro, 1);
150 is($r2->one, "one");
151 is($r2->two, "two");
152 is($r2->three, 3);
153 {
154 local $@ = '';
155 eval { $r2->three(64) };
156 isnt $@, '';
157 note "error = $@";
158 }
159 is($r2->three, 3);
160 is($r2->four, "four");
161 is($r2->myarray1, [1,2]);
162 {
163 local $@ = '';
164 eval { $r2->myarray1([3,4]) };
165 isnt $@, '';
166 note "error = $@";
167 }
168 is($r2->myarray1, [1,2]);
169 {
170 local $@ = '';
171 eval { $r2->myarray1(3,4) };
172 isnt $@, '';
173 note "error = $@";
174 }
175 is($r2->myarray1, [1,2]);
176
177 is($r2->opaque1, $r->opaque1);
178 {
179 local $@ = '';
180 eval { $r2->opaque1(undef) };
181 isnt $@, '';
182 note "error = $@";
183 }
184 is($r2->opaque1, $r->opaque1);
185
186 is($r2->myarray2, $r->myarray2);
187 {
188 local $@ = '';
189 eval { $r2->myarray2([undef,undef]) };
190 isnt $@, '';
191 note "error = $@";
192 }
193 is($r2->myarray2, $r->myarray2);
194 {
195 local $@ = '';
196 eval { $r2->myarray2(undef,undef) };
197 isnt $@, '';
198 note "error = $@";
199 }
200 is($r2->myarray2, $r->myarray2);
201
202 {
203 local $@ = '';
204 eval { $r2->one("new string!") };
205 isnt $@, '';
206 note "error = $@";
207 }
208 is($r2->one, "one");
209
210 is($r2->fixedfive, "five\0");
211 {
212 local $@ = '';
213 eval { $r2->fixedfive("xxxxx") };
214 isnt $@, '';
215 note "error = $@";
216 }
217 is($r2->fixedfive, "five\0");
218
219 is($num, 42);
220 $here = 1;
221 });
222
223 $cxv_closure_set->($f);
224 $cxv_closure_call->($r, 42);
225
226 is($here, 1);
227
228 };
229
230 subtest 'closure ret' => sub {
231
232 { package Closure::Record::Simple;
233
234 use FFI::Platypus::Record;
235
236 record_layout_1(
237 char => 'foo',
238 short => 'bar',
239 int => 'baz',
240 );
241
242 }
243
244 my $ffi = FFI::Platypus->new( lib => [@lib], api => 1 );
245
246 $ffi->type('record(Closure::Record::Simple)' => 'cx_struct_simple_t');
247
248 {
249 local $@ = '';
250 eval { $ffi->type('()->cx_struct_simple_t' => 'cxv_closure_simple_t' ) };
251 is "$@", '';
252 }
253
254 my $cxv_closure_simple_call = do {
255 local $@ = '';
256 my $f = eval { $ffi->function( cxv_closure_simple_call => ['cxv_closure_simple_t'] => 'cx_struct_simple_t*') };
257 is "$@", '';
258 $f;
259 };
260
261 subtest 'good' => sub {
262
263 my $f = $ffi->closure(sub {
264 return Closure::Record::Simple->new( foo => 1, bar => 2, baz => 3 );
265 });
266
267 my $r = $cxv_closure_simple_call->call($f);
268
269 isa_ok $r, 'Closure::Record::Simple';
270 is $r->foo, 1;
271 is $r->bar, 2;
272 is $r->baz, 3;
273 };
274
275 subtest 'bad' => sub {
276
277 my $f = $ffi->closure(sub {
278 return undef;
279 });
280
281 local $SIG{__WARN__} = sub {
282 note @_;
283 };
284
285 my $r = $cxv_closure_simple_call->call($f);
286
287 isa_ok $r, 'Closure::Record::Simple';
288 is $r->foo, 0;
289 is $r->bar, 0;
290 is $r->baz, 0;
291
292 };
293
294 subtest 'short' => sub {
295
296 my $f = $ffi->closure(sub {
297 my $r = Closure::Record::Simple->new;
298 $$r = "";
299 return $r;
300 });
301
302 local $SIG{__WARN__} = sub {
303 note @_;
304 };
305
306 my $r = $cxv_closure_simple_call->call($f);
307
308 isa_ok $r, 'Closure::Record::Simple';
309 is $r->foo, 0;
310 is $r->bar, 0;
311 is $r->baz, 0;
312
313 };
314
315 };
316
99317 done_testing;
100318
22 # This file generated from similar file t/type_sint8.t
33 # all instances of "int8" have been changed to "int16"
44 #
5 use strict;
6 use warnings;
7 use Test::More;
5 use Test2::V0 -no_srand => 1;
86 use FFI::Platypus;
97 use FFI::CheckLib;
108
3735 $ffi->attach( [sint16_static_array => 'static_array'] => [] => 'sint16_a');
3836 $ffi->attach( [pointer_null => 'null2'] => [] => 'sint16_a');
3937
38 if($api >= 2)
39 {
40 $ffi->attach( [sint16_sum => 'sum3'] => ['sint16*'] => 'sint16' );
41 $ffi->attach( [sint16_array_inc => 'array_inc2'] => ['sint16*'] => 'void');
42 }
43
4044 is add(-1,2), 1, 'add(-1,2) = 1';
4145 is do { no warnings; add() }, 0, 'add() = 0';
4246
5256 is sum(\@list), -5, 'sum([-5..4]) = -5';
5357 is sum2(\@list,scalar @list), -5, 'sum([-5..4],10) = -5';
5458
59 if($api >= 2)
60 {
61 is(sum3(\@list), -5, 'sum([-5..4]) = -5 (passed as pointer)');
62 }
63
5564 array_inc(\@list);
5665 do { local $SIG{__WARN__} = sub {}; array_inc() };
5766
58 is_deeply \@list, [-4,-3,-2,-1,0,1,2,3,4,5], 'array increment';
67 is \@list, [-4,-3,-2,-1,0,1,2,3,4,5], 'array increment';
5968
60 is_deeply [null()], [$api >= 2 ? (undef) : ()], 'null() == undef';
69 if($api >= 2)
70 {
71 @list = (-5,-4,-3,-2,-1,0,1,2,3,4);
72 array_inc2(\@list);
73 is \@list, [-4,-3,-2,-1,0,1,2,3,4,5], 'array increment';
74 }
75
76 is [null()], [$api >= 2 ? (undef) : ()], 'null() == undef';
6177 is is_null(undef), 1, 'is_null(undef) == 1';
6278 is is_null(), 1, 'is_null() == 1';
6379 is is_null(\22), 0, 'is_null(22) == 0';
6480
65 is_deeply static_array(), [-1,2,-3,4,-5,6,-7,8,-9,10], 'static_array = [-1,2,-3,4,-5,6,-7,8,-9,10]';
81 is static_array(), [-1,2,-3,4,-5,6,-7,8,-9,10], 'static_array = [-1,2,-3,4,-5,6,-7,8,-9,10]';
6682
67 is_deeply [null2()], [$api >= 2 ? (undef) : ()], 'null2() == undef';
83 is [null2()], [$api >= 2 ? (undef) : ()], 'null2() == undef';
6884
6985 my $closure = $ffi->closure(sub { $_[0]-2 });
7086 $ffi->attach( [sint16_set_closure => 'set_closure'] => ['sint16_c'] => 'void');
22 # This file generated from similar file t/type_sint8.t
33 # all instances of "int8" have been changed to "int32"
44 #
5 use strict;
6 use warnings;
7 use Test::More;
5 use Test2::V0 -no_srand => 1;
86 use FFI::Platypus;
97 use FFI::CheckLib;
108
3735 $ffi->attach( [sint32_static_array => 'static_array'] => [] => 'sint32_a');
3836 $ffi->attach( [pointer_null => 'null2'] => [] => 'sint32_a');
3937
38 if($api >= 2)
39 {
40 $ffi->attach( [sint32_sum => 'sum3'] => ['sint32*'] => 'sint32' );
41 $ffi->attach( [sint32_array_inc => 'array_inc2'] => ['sint32*'] => 'void');
42 }
43
4044 is add(-1,2), 1, 'add(-1,2) = 1';
4145 is do { no warnings; add() }, 0, 'add() = 0';
4246
5256 is sum(\@list), -5, 'sum([-5..4]) = -5';
5357 is sum2(\@list,scalar @list), -5, 'sum([-5..4],10) = -5';
5458
59 if($api >= 2)
60 {
61 is(sum3(\@list), -5, 'sum([-5..4]) = -5 (passed as pointer)');
62 }
63
5564 array_inc(\@list);
5665 do { local $SIG{__WARN__} = sub {}; array_inc() };
5766
58 is_deeply \@list, [-4,-3,-2,-1,0,1,2,3,4,5], 'array increment';
67 is \@list, [-4,-3,-2,-1,0,1,2,3,4,5], 'array increment';
5968
60 is_deeply [null()], [$api >= 2 ? (undef) : ()], 'null() == undef';
69 if($api >= 2)
70 {
71 @list = (-5,-4,-3,-2,-1,0,1,2,3,4);
72 array_inc2(\@list);
73 is \@list, [-4,-3,-2,-1,0,1,2,3,4,5], 'array increment';
74 }
75
76 is [null()], [$api >= 2 ? (undef) : ()], 'null() == undef';
6177 is is_null(undef), 1, 'is_null(undef) == 1';
6278 is is_null(), 1, 'is_null() == 1';
6379 is is_null(\22), 0, 'is_null(22) == 0';
6480
65 is_deeply static_array(), [-1,2,-3,4,-5,6,-7,8,-9,10], 'static_array = [-1,2,-3,4,-5,6,-7,8,-9,10]';
81 is static_array(), [-1,2,-3,4,-5,6,-7,8,-9,10], 'static_array = [-1,2,-3,4,-5,6,-7,8,-9,10]';
6682
67 is_deeply [null2()], [$api >= 2 ? (undef) : ()], 'null2() == undef';
83 is [null2()], [$api >= 2 ? (undef) : ()], 'null2() == undef';
6884
6985 my $closure = $ffi->closure(sub { $_[0]-2 });
7086 $ffi->attach( [sint32_set_closure => 'set_closure'] => ['sint32_c'] => 'void');
22 # This file generated from similar file t/type_sint8.t
33 # all instances of "int8" have been changed to "int64"
44 #
5 use strict;
6 use warnings;
7 use Test::More;
5 use Test2::V0 -no_srand => 1;
86 use FFI::Platypus;
97 use FFI::CheckLib;
108
3735 $ffi->attach( [sint64_static_array => 'static_array'] => [] => 'sint64_a');
3836 $ffi->attach( [pointer_null => 'null2'] => [] => 'sint64_a');
3937
38 if($api >= 2)
39 {
40 $ffi->attach( [sint64_sum => 'sum3'] => ['sint64*'] => 'sint64' );
41 $ffi->attach( [sint64_array_inc => 'array_inc2'] => ['sint64*'] => 'void');
42 }
43
4044 is add(-1,2), 1, 'add(-1,2) = 1';
4145 is do { no warnings; add() }, 0, 'add() = 0';
4246
5256 is sum(\@list), -5, 'sum([-5..4]) = -5';
5357 is sum2(\@list,scalar @list), -5, 'sum([-5..4],10) = -5';
5458
59 if($api >= 2)
60 {
61 is(sum3(\@list), -5, 'sum([-5..4]) = -5 (passed as pointer)');
62 }
63
5564 array_inc(\@list);
5665 do { local $SIG{__WARN__} = sub {}; array_inc() };
5766
58 is_deeply \@list, [-4,-3,-2,-1,0,1,2,3,4,5], 'array increment';
67 is \@list, [-4,-3,-2,-1,0,1,2,3,4,5], 'array increment';
5968
60 is_deeply [null()], [$api >= 2 ? (undef) : ()], 'null() == undef';
69 if($api >= 2)
70 {
71 @list = (-5,-4,-3,-2,-1,0,1,2,3,4);
72 array_inc2(\@list);
73 is \@list, [-4,-3,-2,-1,0,1,2,3,4,5], 'array increment';
74 }
75
76 is [null()], [$api >= 2 ? (undef) : ()], 'null() == undef';
6177 is is_null(undef), 1, 'is_null(undef) == 1';
6278 is is_null(), 1, 'is_null() == 1';
6379 is is_null(\22), 0, 'is_null(22) == 0';
6480
65 is_deeply static_array(), [-1,2,-3,4,-5,6,-7,8,-9,10], 'static_array = [-1,2,-3,4,-5,6,-7,8,-9,10]';
81 is static_array(), [-1,2,-3,4,-5,6,-7,8,-9,10], 'static_array = [-1,2,-3,4,-5,6,-7,8,-9,10]';
6682
67 is_deeply [null2()], [$api >= 2 ? (undef) : ()], 'null2() == undef';
83 is [null2()], [$api >= 2 ? (undef) : ()], 'null2() == undef';
6884
6985 my $closure = $ffi->closure(sub { $_[0]-2 });
7086 $ffi->attach( [sint64_set_closure => 'set_closure'] => ['sint64_c'] => 'void');
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use FFI::Platypus;
42 use FFI::CheckLib;
53
3230 $ffi->attach( [sint8_static_array => 'static_array'] => [] => 'sint8_a');
3331 $ffi->attach( [pointer_null => 'null2'] => [] => 'sint8_a');
3432
33 if($api >= 2)
34 {
35 $ffi->attach( [sint8_sum => 'sum3'] => ['sint8*'] => 'sint8' );
36 $ffi->attach( [sint8_array_inc => 'array_inc2'] => ['sint8*'] => 'void');
37 }
38
3539 is add(-1,2), 1, 'add(-1,2) = 1';
3640 is do { no warnings; add() }, 0, 'add() = 0';
3741
4751 is sum(\@list), -5, 'sum([-5..4]) = -5';
4852 is sum2(\@list,scalar @list), -5, 'sum([-5..4],10) = -5';
4953
54 if($api >= 2)
55 {
56 is(sum3(\@list), -5, 'sum([-5..4]) = -5 (passed as pointer)');
57 }
58
5059 array_inc(\@list);
5160 do { local $SIG{__WARN__} = sub {}; array_inc() };
5261
53 is_deeply \@list, [-4,-3,-2,-1,0,1,2,3,4,5], 'array increment';
62 is \@list, [-4,-3,-2,-1,0,1,2,3,4,5], 'array increment';
5463
55 is_deeply [null()], [$api >= 2 ? (undef) : ()], 'null() == undef';
64 if($api >= 2)
65 {
66 @list = (-5,-4,-3,-2,-1,0,1,2,3,4);
67 array_inc2(\@list);
68 is \@list, [-4,-3,-2,-1,0,1,2,3,4,5], 'array increment';
69 }
70
71 is [null()], [$api >= 2 ? (undef) : ()], 'null() == undef';
5672 is is_null(undef), 1, 'is_null(undef) == 1';
5773 is is_null(), 1, 'is_null() == 1';
5874 is is_null(\22), 0, 'is_null(22) == 0';
5975
60 is_deeply static_array(), [-1,2,-3,4,-5,6,-7,8,-9,10], 'static_array = [-1,2,-3,4,-5,6,-7,8,-9,10]';
76 is static_array(), [-1,2,-3,4,-5,6,-7,8,-9,10], 'static_array = [-1,2,-3,4,-5,6,-7,8,-9,10]';
6177
62 is_deeply [null2()], [$api >= 2 ? (undef) : ()], 'null2() == undef';
78 is [null2()], [$api >= 2 ? (undef) : ()], 'null2() == undef';
6379
6480 my $closure = $ffi->closure(sub { $_[0]-2 });
6581 $ffi->attach( [sint8_set_closure => 'set_closure'] => ['sint8_c'] => 'void');
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use FFI::Platypus;
42 use FFI::CheckLib;
53
9593 $ffi->attach( string_test_pointer_ret => [ 'string' ] => 'string*' );
9694 $ffi->attach( [ pointer_null => 'string_test_pointer_ret_null' ] => [] => 'string*' );
9795
98 is_deeply( string_test_pointer_ret("foo"), \"foo" );
99 is_deeply( string_test_pointer_ret(undef), \undef );
100 is_deeply( [string_test_pointer_ret_null()], [$api >= 2 ? (undef) : ()] );
96 is( string_test_pointer_ret("foo"), \"foo" );
97 is( string_test_pointer_ret(undef), \undef );
98 is( [string_test_pointer_ret_null()], [$api >= 2 ? (undef) : ()] );
10199
102100 subtest 'fixed length input' => sub {
103101
133131 is $get_string_from_array->(\@list, 3), undef, "get_string_from_array(\@list, 3) = undef";
134132 };
135133
134 subtest 'variable length input' => sub {
135
136 skip_all 'test requires api >=2'
137 unless $api >= 2;
138
139 my $get_string_from_array = $ffi->function(get_string_from_array => ['string*','int'] => 'string');
140
141 my @list = ('foo', 'bar', 'baz', undef );
142
143 for(0..2)
144 {
145 is $get_string_from_array->(\@list, $_), $list[$_], "get_string_from_array(\@list, $_) = $list[$_]";
146 }
147
148 is $get_string_from_array->(\@list, 3), undef, "get_string_from_array(\@list, 3) = undef";
149 };
150
136151 subtest 'fixed length return' => sub {
137152
138153 $ffi->type('string[3]' => 'sa3');
143158 'returns null',
144159 );
145160
146 is_deeply(
161 is(
147162 $ffi->function(onetwothree3 => [] => 'sa3')->call,
148163 [ qw( one two three ) ],
149164 'returns with just strings',
150165 );
151166
152 is_deeply(
167 is(
153168 $ffi->function(onenullthree3 => [] => 'sa3')->call,
154169 [ 'one', undef, 'three' ],
155170 'returns with NULL/undef in the middle',
165180 'returns null',
166181 );
167182
168 is_deeply(
183 is(
169184 $ffi->function('onetwothree4', => [] => 'sa')->call,
170185 [ qw( one two three ) ],
171186 );
172187
173 is_deeply(
188 is(
174189 $ffi->function('onenullthree3' => [] => 'sa')->call,
175190 [ qw( one ) ],
176191 );
177192
178 is_deeply(
193 is(
179194 $ffi->function('ptrnull' => [] => 'sa')->call,
180195 [],
181196 );
186201
187202 my @args = ( undef, 'six', 'xx' );
188203 $ffi->function( string_array_arg_update => [ 'string[3]' ] => 'void' )->call(\@args);
189 is_deeply(
204 is(
190205 \@args,
191206 [ "one", "two", "xx" ],
192207 );
202217
203218 };
204219
205 is_deeply(
220 is(
206221 [$ffi->function( pointer_null => [] => 'string' )->call],
207222 [$api >= 2 ? (undef) : ()],
208223 );
22 # This file generated from similar file t/type_uint8.t
33 # all instances of "int8" have been changed to "int16"
44 #
5 use strict;
6 use warnings;
7 use Test::More;
5 use Test2::V0 -no_srand => 1;
86 use FFI::Platypus;
97 use FFI::CheckLib;
108
3735 $ffi->attach( [uint16_static_array => 'static_array'] => [] => 'uint16_a');
3836 $ffi->attach( [pointer_null => 'null2'] => [] => 'uint16_a');
3937
38 if($api >= 2)
39 {
40 $ffi->attach( [uint16_sum => 'sum3'] => ['uint16*'] => 'uint16' );
41 $ffi->attach( [uint16_array_inc => 'array_inc2'] => ['uint16*'] => 'void');
42 }
43
4044 is add(1,2), 3, 'add(1,2) = 3';
4145 is do { no warnings; add() }, 0, 'add() = 0';
4246
5256 is sum(\@list), 55, 'sum([1..10]) = 55';
5357 is sum2(\@list, scalar @list), 55, 'sum2([1..10],10) = 55';
5458
59 if($api >= 2)
60 {
61 is(sum3(\@list), 55, 'sum([1..10]) = 55 (passed as pointer)');
62 }
63
5564 array_inc(\@list);
5665 do { local $SIG{__WARN__} = sub {}; array_inc() };
5766
58 is_deeply \@list, [2,3,4,5,6,7,8,9,10,11], 'array increment';
67 is \@list, [2,3,4,5,6,7,8,9,10,11], 'array increment';
5968
60 is_deeply [null()], [$api >= 2 ? (undef) : ()], 'null() == undef';
69 if($api >= 2)
70 {
71 @list = (1,2,3,4,5,6,7,8,9,10);
72 array_inc2(\@list);
73 is \@list, [2,3,4,5,6,7,8,9,10,11], 'array increment';
74 }
75
76 is [null()], [$api >= 2 ? (undef) : ()], 'null() == undef';
6177 is is_null(undef), 1, 'is_null(undef) == 1';
6278 is is_null(), 1, 'is_null() == 1';
6379 is is_null(\22), 0, 'is_null(22) == 0';
6480
65 is_deeply static_array(), [1,4,6,8,10,12,14,16,18,20], 'static_array = [1,4,6,8,10,12,14,16,18,20]';
81 is static_array(), [1,4,6,8,10,12,14,16,18,20], 'static_array = [1,4,6,8,10,12,14,16,18,20]';
6682
67 is_deeply [null2()], [$api >= 2 ? (undef) : ()], 'null2() == undef';
83 is [null2()], [$api >= 2 ? (undef) : ()], 'null2() == undef';
6884
6985 my $closure = $ffi->closure(sub { $_[0]+2 });
7086 $ffi->attach( [uint16_set_closure => 'set_closure'] => ['uint16_c'] => 'void');
22 # This file generated from similar file t/type_uint8.t
33 # all instances of "int8" have been changed to "int32"
44 #
5 use strict;
6 use warnings;
7 use Test::More;
5 use Test2::V0 -no_srand => 1;
86 use FFI::Platypus;
97 use FFI::CheckLib;
108
3735 $ffi->attach( [uint32_static_array => 'static_array'] => [] => 'uint32_a');
3836 $ffi->attach( [pointer_null => 'null2'] => [] => 'uint32_a');
3937
38 if($api >= 2)
39 {
40 $ffi->attach( [uint32_sum => 'sum3'] => ['uint32*'] => 'uint32' );
41 $ffi->attach( [uint32_array_inc => 'array_inc2'] => ['uint32*'] => 'void');
42 }
43
4044 is add(1,2), 3, 'add(1,2) = 3';
4145 is do { no warnings; add() }, 0, 'add() = 0';
4246
5256 is sum(\@list), 55, 'sum([1..10]) = 55';
5357 is sum2(\@list, scalar @list), 55, 'sum2([1..10],10) = 55';
5458
59 if($api >= 2)
60 {
61 is(sum3(\@list), 55, 'sum([1..10]) = 55 (passed as pointer)');
62 }
63
5564 array_inc(\@list);
5665 do { local $SIG{__WARN__} = sub {}; array_inc() };
5766
58 is_deeply \@list, [2,3,4,5,6,7,8,9,10,11], 'array increment';
67 is \@list, [2,3,4,5,6,7,8,9,10,11], 'array increment';
5968
60 is_deeply [null()], [$api >= 2 ? (undef) : ()], 'null() == undef';
69 if($api >= 2)
70 {
71 @list = (1,2,3,4,5,6,7,8,9,10);
72 array_inc2(\@list);
73 is \@list, [2,3,4,5,6,7,8,9,10,11], 'array increment';
74 }
75
76 is [null()], [$api >= 2 ? (undef) : ()], 'null() == undef';
6177 is is_null(undef), 1, 'is_null(undef) == 1';
6278 is is_null(), 1, 'is_null() == 1';
6379 is is_null(\22), 0, 'is_null(22) == 0';
6480
65 is_deeply static_array(), [1,4,6,8,10,12,14,16,18,20], 'static_array = [1,4,6,8,10,12,14,16,18,20]';
81 is static_array(), [1,4,6,8,10,12,14,16,18,20], 'static_array = [1,4,6,8,10,12,14,16,18,20]';
6682
67 is_deeply [null2()], [$api >= 2 ? (undef) : ()], 'null2() == undef';
83 is [null2()], [$api >= 2 ? (undef) : ()], 'null2() == undef';
6884
6985 my $closure = $ffi->closure(sub { $_[0]+2 });
7086 $ffi->attach( [uint32_set_closure => 'set_closure'] => ['uint32_c'] => 'void');
22 # This file generated from similar file t/type_uint8.t
33 # all instances of "int8" have been changed to "int64"
44 #
5 use strict;
6 use warnings;
7 use Test::More;
5 use Test2::V0 -no_srand => 1;
86 use FFI::Platypus;
97 use FFI::CheckLib;
108
3735 $ffi->attach( [uint64_static_array => 'static_array'] => [] => 'uint64_a');
3836 $ffi->attach( [pointer_null => 'null2'] => [] => 'uint64_a');
3937
38 if($api >= 2)
39 {
40 $ffi->attach( [uint64_sum => 'sum3'] => ['uint64*'] => 'uint64' );
41 $ffi->attach( [uint64_array_inc => 'array_inc2'] => ['uint64*'] => 'void');
42 }
43
4044 is add(1,2), 3, 'add(1,2) = 3';
4145 is do { no warnings; add() }, 0, 'add() = 0';
4246
5256 is sum(\@list), 55, 'sum([1..10]) = 55';
5357 is sum2(\@list, scalar @list), 55, 'sum2([1..10],10) = 55';
5458
59 if($api >= 2)
60 {
61 is(sum3(\@list), 55, 'sum([1..10]) = 55 (passed as pointer)');
62 }
63
5564 array_inc(\@list);
5665 do { local $SIG{__WARN__} = sub {}; array_inc() };
5766
58 is_deeply \@list, [2,3,4,5,6,7,8,9,10,11], 'array increment';
67 is \@list, [2,3,4,5,6,7,8,9,10,11], 'array increment';
5968
60 is_deeply [null()], [$api >= 2 ? (undef) : ()], 'null() == undef';
69 if($api >= 2)
70 {
71 @list = (1,2,3,4,5,6,7,8,9,10);
72 array_inc2(\@list);
73 is \@list, [2,3,4,5,6,7,8,9,10,11], 'array increment';
74 }
75
76 is [null()], [$api >= 2 ? (undef) : ()], 'null() == undef';
6177 is is_null(undef), 1, 'is_null(undef) == 1';
6278 is is_null(), 1, 'is_null() == 1';
6379 is is_null(\22), 0, 'is_null(22) == 0';
6480
65 is_deeply static_array(), [1,4,6,8,10,12,14,16,18,20], 'static_array = [1,4,6,8,10,12,14,16,18,20]';
81 is static_array(), [1,4,6,8,10,12,14,16,18,20], 'static_array = [1,4,6,8,10,12,14,16,18,20]';
6682
67 is_deeply [null2()], [$api >= 2 ? (undef) : ()], 'null2() == undef';
83 is [null2()], [$api >= 2 ? (undef) : ()], 'null2() == undef';
6884
6985 my $closure = $ffi->closure(sub { $_[0]+2 });
7086 $ffi->attach( [uint64_set_closure => 'set_closure'] => ['uint64_c'] => 'void');
0 use strict;
1 use warnings;
2 use Test::More;
0 use Test2::V0 -no_srand => 1;
31 use FFI::Platypus;
42 use FFI::CheckLib;
53
3230 $ffi->attach( [uint8_static_array => 'static_array'] => [] => 'uint8_a');
3331 $ffi->attach( [pointer_null => 'null2'] => [] => 'uint8_a');
3432
33 if($api >= 2)
34 {
35 $ffi->attach( [uint8_sum => 'sum3'] => ['uint8*'] => 'uint8' );
36 $ffi->attach( [uint8_array_inc => 'array_inc2'] => ['uint8*'] => 'void');
37 }
38
3539 is add(1,2), 3, 'add(1,2) = 3';
3640 is do { no warnings; add() }, 0, 'add() = 0';
3741
4751 is sum(\@list), 55, 'sum([1..10]) = 55';
4852 is sum2(\@list, scalar @list), 55, 'sum2([1..10],10) = 55';
4953
54 if($api >= 2)
55 {
56 is(sum3(\@list), 55, 'sum([1..10]) = 55 (passed as pointer)');
57 }
58
5059 array_inc(\@list);
5160 do { local $SIG{__WARN__} = sub {}; array_inc() };
5261
53 is_deeply \@list, [2,3,4,5,6,7,8,9,10,11], 'array increment';
62 is \@list, [2,3,4,5,6,7,8,9,10,11], 'array increment';
5463
55 is_deeply [null()], [$api >= 2 ? (undef) : ()], 'null() == undef';
64 if($api >= 2)
65 {
66 @list = (1,2,3,4,5,6,7,8,9,10);
67 array_inc2(\@list);
68 is \@list, [2,3,4,5,6,7,8,9,10,11], 'array increment';
69 }
70
71 is [null()], [$api >= 2 ? (undef) : ()], 'null() == undef';
5672 is is_null(undef), 1, 'is_null(undef) == 1';
5773 is is_null(), 1, 'is_null() == 1';
5874 is is_null(\22), 0, 'is_null(22) == 0';
5975
60 is_deeply static_array(), [1,4,6,8,10,12,14,16,18,20], 'static_array = [1,4,6,8,10,12,14,16,18,20]';
76 is static_array(), [1,4,6,8,10,12,14,16,18,20], 'static_array = [1,4,6,8,10,12,14,16,18,20]';
6177
62 is_deeply [null2()], [$api >= 2 ? (undef) : ()], 'null2() == undef';
78 is [null2()], [$api >= 2 ? (undef) : ()], 'null2() == undef';
6379
6480 my $closure = $ffi->closure(sub { $_[0]+2 });
6581 $ffi->attach( [uint8_set_closure => 'set_closure'] => ['uint8_c'] => 'void');
4040 RETVAL
4141
4242 ffi_pl_type *
43 create_type_record(self, is_by_value, size, record_class=NULL, ffi_type=NULL)
43 create_type_record(self, is_by_value, size, record_class=NULL, meta=NULL)
4444 SV *self
4545 int is_by_value
4646 size_t size
4747 ffi_pl_string record_class
48 void *ffi_type
48 void *meta
4949 PREINIT:
5050 ffi_pl_type *type;
5151 CODE:
6363 {
6464 type->extra[0].record.class = NULL;
6565 }
66 type->extra[0].record.ffi_type = ffi_type;
66 type->extra[0].record.meta = meta;
6767 RETVAL = type;
6868 OUTPUT:
6969 RETVAL
160160 || (basis->type_code & FFI_PL_BASE_MASK) == (FFI_PL_TYPE_RECORD_VALUE & FFI_PL_BASE_MASK))
161161 {
162162 type->extra[0].record.size = basis->extra[0].record.size;
163 type->extra[0].record.ffi_type = basis->extra[0].record.ffi_type;
163 type->extra[0].record.meta = basis->extra[0].record.meta;
164164 if(basis->extra[0].record.class)
165165 {
166166 size = strlen(basis->extra[0].record.class) + 1;
181181
182182
183183 ffi_pl_type *
184 create_type_closure(self, return_type, ...)
185 SV *self
184 create_type_closure(self, abi, return_type, ...)
185 SV *self
186 int abi
186187 ffi_pl_type *return_type
187188 PREINIT:
188189 ffi_pl_type *type;
231232 case FFI_PL_TYPE_OPAQUE:
232233 ffi_return_type = &ffi_type_pointer;
233234 break;
235 case FFI_PL_TYPE_RECORD_VALUE:
236 if(return_type->extra[0].record.meta == NULL)
237 croak("Only native types are supported as closure return types (%d)", return_type->type_code);
238 if(!return_type->extra[0].record.meta->can_return_from_closure)
239 croak("Record return type contains types that cannot be returned from a closure");
240 ffi_return_type = &return_type->extra[0].record.meta->ffi_type;
241 break;
234242 default:
235243 croak("Only native types are supported as closure return types (%d)", return_type->type_code);
236244 break;
237245 }
238246
239 Newx(ffi_argument_types, items-2, ffi_type*);
240 type = ffi_pl_type_new(sizeof(ffi_pl_type_extra_closure) + sizeof(ffi_pl_type)*(items-2));
247 Newx(ffi_argument_types, items-3, ffi_type*);
248 type = ffi_pl_type_new(sizeof(ffi_pl_type_extra_closure) + sizeof(ffi_pl_type)*(items-3));
241249 type->type_code = FFI_PL_TYPE_CLOSURE;
242250
243251 type->extra[0].closure.return_type = return_type;
244252 type->extra[0].closure.flags = 0;
245253
246 for(i=0; i<(items-2); i++)
247 {
248 arg = ST(2+i);
254 for(i=0; i<(items-3); i++)
255 {
256 arg = ST(3+i);
249257 type->extra[0].closure.argument_types[i] = INT2PTR(ffi_pl_type*, SvIV((SV*)SvRV(arg)));
250258 switch(type->extra[0].closure.argument_types[i]->type_code)
251259 {
287295 case FFI_PL_TYPE_RECORD:
288296 ffi_argument_types[i] = &ffi_type_pointer;
289297 break;
298 case FFI_PL_TYPE_RECORD_VALUE:
299 if(type->extra[0].closure.argument_types[i]->extra[0].record.meta == NULL)
300 {
301 Safefree(ffi_argument_types);
302 croak("Only native types and strings are supported as closure argument types (%d)", type->extra[0].closure.argument_types[i]->type_code);
303 }
304 ffi_argument_types[i] = &type->extra[0].closure.argument_types[i]->extra[0].record.meta->ffi_type;
305 break;
290306 default:
291307 Safefree(ffi_argument_types);
292 croak("Only native types and strings are supported as closure argument types (%d)", return_type->type_code);
308 croak("Only native types and strings are supported as closure argument types (%d)", type->extra[0].closure.argument_types[i]->type_code);
293309 break;
294310 }
295311 }
296312
297313 ffi_status = ffi_prep_cif(
298314 &type->extra[0].closure.ffi_cif,
299 FFI_DEFAULT_ABI,
300 items-2,
315 abi == -1 ? FFI_DEFAULT_ABI : abi,
316 items-3,
301317 ffi_return_type,
302318 ffi_argument_types
303319 );
314330 croak("unknown error with ffi_prep_cif");
315331 }
316332
317 if( items-2 == 0 )
333 if( items-3 == 0 )
318334 {
319335 type->extra[0].closure.flags |= G_NOARGS;
320336 }
5959 int flags = extra->flags;
6060 int i;
6161 int count;
62 SV *sv;
62 SV *sv,*ref;
6363
6464 if(!(flags & G_NOARGS))
6565 {
148148 sv_setpvn(sv, *((char**)arguments[i]), extra->argument_types[i]->extra[0].record.size);
149149 if(extra->argument_types[i]->extra[0].record.class != NULL)
150150 {
151 SV *ref = newRV_inc(sv);
151 ref = newRV_inc(sv);
152152 sv_bless(ref, gv_stashpv(extra->argument_types[i]->extra[0].record.class, GV_ADD));
153153 SvREADONLY_on(sv);
154154 sv = ref;
160160 }
161161 XPUSHs(sv);
162162 break;
163 case FFI_PL_TYPE_RECORD_VALUE:
164 sv = sv_newmortal();
165 sv_setpvn(sv, (char*)arguments[i], extra->argument_types[i]->extra[0].record.size);
166 ref = newRV_inc(sv);
167 sv_bless(ref, gv_stashpv(extra->argument_types[i]->extra[0].record.class, GV_ADD));
168 SvREADONLY_on(sv);
169 XPUSHs(ref);
170 break;
163171 default:
164172 warn("bad type");
165173 break;
257265 case FFI_PL_TYPE_OPAQUE:
258266 *((void**)result) = SvOK(sv) ? INT2PTR(void*, SvIV(sv)) : NULL;
259267 break;
268 case FFI_PL_TYPE_RECORD_VALUE:
269 if(sv_isobject(sv) && sv_derived_from(sv, extra->return_type->extra[0].record.class))
270 {
271 char *ptr;
272 STRLEN len;
273 ptr = SvPV(SvRV(sv), len);
274 if(len > extra->return_type->extra[0].record.size)
275 len = extra->return_type->extra[0].record.size;
276 else if(len < extra->return_type->extra[0].record.size)
277 {
278 warn("Return record from closure is wrong size!");
279 memset(result, 0, extra->return_type->extra[0].record.size);
280 }
281 memcpy(result, ptr, len);
282 break;
283 }
284 warn("Return record from closure is wrong type!");
285 memset(result, 0, extra->return_type->extra[0].record.size);
286 break;
260287 default:
261288 warn("bad type");
262289 break;
4848 case FFI_PL_TYPE_RECORD:
4949 return &ffi_type_pointer;
5050 case FFI_PL_TYPE_RECORD_VALUE:
51 return type->extra[0].record.ffi_type;
51 return type->extra[0].record.meta != NULL ? &type->extra[0].record.meta->ffi_type : NULL;
5252 }
5353 switch(type_code & (FFI_PL_SHAPE_MASK))
5454 {
00 use Test2::Require::Module 'Test2::Tools::PerlCritic';
11 use Test2::Require::Module 'Perl::Critic';
2 use Test2::Require::Module 'Perl::Critic::Freenode';
2 use Test2::Require::Module 'Perl::Critic::Community';
33 use Test2::V0;
44 use Perl::Critic;
55 use Test2::Tools::PerlCritic;
0 use Test2::V0 -no_srand => 1;
1
2 eval { require FFI::Platypus; FFI::Platypus->VERSION('1.00') };
3 skip_all 'Test requires FFI::Platypus 1.00' if $@;
4 eval { require Test::Script; Test::Script->import('script_compiles') };
5 skip_all 'Test requires Test::Script' if $@;
6 eval { require Convert::Binary::C };
7 skip_all 'Test requires Convert::Binary::C' if $@;
8 skip_all 'Test requires version defined for FFI::Platypus' unless defined $FFI::Platypus::VERSION;
9
10 opendir my $dir, 'examples';
11 my @examples = sort grep /\.pl$/, readdir $dir;
12 closedir $dir;
13
14 script_compiles("examples/$_") for @examples;
15
16 done_testing;
3030 my @private_classes;
3131 my %private_methods;
3232
33 push @{ $config->{pod_coverage}->{private} },
33 push $config->{pod_coverage}->{private}->@*,
3434 'Alien::.*::Install::Files#Inline';
3535
36 foreach my $private (@{ $config->{pod_coverage}->{private} })
36 foreach my $private ($config->{pod_coverage}->{private}->@*)
3737 {
3838 my($class,$method) = split /#/, $private;
3939 if(defined $class && $class ne '')
2323
2424 chdir(File::Spec->catdir($FindBin::Bin, File::Spec->updir, File::Spec->updir));
2525
26 add_stopwords(@{ $config->{pod_spelling_system}->{stopwords} });
26 add_stopwords($config->{pod_spelling_system}->{stopwords}->@*);
2727 add_stopwords(qw(
2828 Plicease
2929 stdout