[svn:parrot] r46814 - in branches/ops_massacre: src/dynoplibs src/ops t/compilers/imcc/imcpasm t/dynoplibs t/op
plobsing at svn.parrot.org
plobsing at svn.parrot.org
Thu May 20 07:42:18 UTC 2010
Author: plobsing
Date: Thu May 20 07:42:17 2010
New Revision: 46814
URL: https://trac.parrot.org/parrot/changeset/46814
Log:
move cmod to dynop
Modified:
branches/ops_massacre/src/dynoplibs/math.ops
branches/ops_massacre/src/ops/math.ops
branches/ops_massacre/src/ops/ops.num
branches/ops_massacre/t/compilers/imcc/imcpasm/opt1.t
branches/ops_massacre/t/dynoplibs/math.t
branches/ops_massacre/t/op/inf_nan.t
branches/ops_massacre/t/op/integer.t
branches/ops_massacre/t/op/number.t
Modified: branches/ops_massacre/src/dynoplibs/math.ops
==============================================================================
--- branches/ops_massacre/src/dynoplibs/math.ops Thu May 20 07:12:16 2010 (r46813)
+++ branches/ops_massacre/src/dynoplibs/math.ops Thu May 20 07:42:17 2010 (r46814)
@@ -25,6 +25,162 @@
=cut
+=head2 General Math
+
+=over 4
+
+=cut
+
+########################################
+
+=item B<cmod>(out INT, in INT, in INT)
+
+=item B<cmod>(invar PMC, invar PMC, in INT)
+
+=item B<cmod>(invar PMC, invar PMC, invar PMC)
+
+NOTE: This "uncorrected mod" algorithm uses the C language's built-in
+mod operator (x % y), which is
+
+ ... the remainder when x is divided by y, and thus is zero
+ when y divides x exactly.
+ ...
+ The direction of truncation for / and the sign of the result
+ for % are machine-dependent for negative operands, as is the
+ action taken on overflow or underflow.
+ -- [1], page 41
+
+Also:
+
+ ... if the second operand is 0, the result is undefined.
+ Otherwise, it is always true that (a/b)*b + a%b is equal to z. If
+ both operands are non-negative, then the remainder is non-
+ negative and smaller than the divisor; if not, it is guaranteed
+ only that the absolute value of the remainder is smaller than
+ the absolute value of the divisor.
+ -- [1], page 205
+
+This op is provided for those who need it (such as speed-sensitive
+applications with heavy use of mod, but using it only with positive
+arguments), but a more mathematically useful mod based on ** floor(x/y)
+and defined with y == 0 is provided by the mod op.
+
+ [1] Brian W. Kernighan and Dennis M. Ritchie, *The C Programming
+ Language*, Second Edition. Prentice Hall, 1988.
+
+If the denominator is zero, a 'Divide by zero' exception is thrown.
+
+=cut
+
+inline op cmod(out INT, in INT, in INT) :base_core {
+ INTVAL den = $3;
+ if ($3 == 0) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
+ EXCEPTION_DIV_BY_ZERO,
+ "Divide by zero");
+ goto ADDRESS(handler);
+ }
+ $1 = $2 % den;
+}
+
+inline op cmod(invar PMC, invar PMC, in INT) :base_core {
+ INTVAL result;
+
+ if ($3 == 0) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
+ EXCEPTION_DIV_BY_ZERO,
+ "Divide by zero");
+ goto ADDRESS(handler);
+ }
+
+ result = VTABLE_get_integer(interp, $2) % $3;
+
+ $1 = Parrot_pmc_new(interp, VTABLE_type(interp, $2));
+ VTABLE_set_integer_native(interp, $1, result);
+}
+
+inline op cmod(invar PMC, invar PMC, invar PMC) :base_core {
+ INTVAL result;
+ INTVAL value = VTABLE_get_integer(interp, $3);
+
+ if (value == 0) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
+ EXCEPTION_DIV_BY_ZERO,
+ "Divide by zero");
+ goto ADDRESS(handler);
+ }
+
+ result = VTABLE_get_integer(interp, $2) % value;
+
+ $1 = Parrot_pmc_new(interp, VTABLE_type(interp, $2));
+ VTABLE_set_integer_native(interp, $1, result);
+}
+
+########################################
+
+=item B<cmod>(out NUM, in NUM, in NUM)
+
+=item B<cmod>(invar PMC, invar PMC, in NUM)
+
+NOTE: This "uncorrected mod" algorithm uses the built-in C math library's
+fmod() function, which computes
+
+ ... the remainder of dividing x by y. The return value is
+ x - n * y, where n is the quotient of x / y, rounded towards
+ zero to an integer.
+ -- fmod() manpage on RedHat Linux 7.0
+
+In addition, fmod() returns
+
+ the remainder, unless y is zero, when the function fails and
+ errno is set.
+
+According to page 251 of [1], the result when y is zero is implementation-
+defined.
+
+This op is provided for those who need it, but a more mathematically
+useful numeric mod based on floor(x/y) instead of truncate(x/y) and
+defined with y == 0 is provided by the mod op.
+
+ [1] Brian W. Kernighan and Dennis M. Ritchie, *The C Programming
+ Language*, Second Edition. Prentice Hall, 1988.
+
+If the denominator is zero, a 'Divide by zero' exception is thrown.
+
+=cut
+
+inline op cmod(out NUM, in NUM, in NUM) :base_core {
+ FLOATVAL den = $3;
+ if (FLOAT_IS_ZERO($3)) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
+ EXCEPTION_DIV_BY_ZERO,
+ "Divide by zero");
+ goto ADDRESS(handler);
+ }
+ $1 = fmod($2, den);
+}
+
+inline op cmod(invar PMC, invar PMC, in NUM) :base_core {
+ FLOATVAL result;
+ FLOATVAL value = $3;
+
+ if (FLOAT_IS_ZERO(value)) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
+ EXCEPTION_DIV_BY_ZERO,
+ "Divide by zero");
+ goto ADDRESS(handler);
+ }
+
+ result = fmod(VTABLE_get_integer(interp, $2), value);
+
+ $1 = Parrot_pmc_new(interp, VTABLE_type(interp, $2));
+ VTABLE_set_integer_native(interp, $1, (INTVAL) result);
+}
+
+=back
+
+=cut
+
###############################################################################
=head2 Pseudorandom number operations
Modified: branches/ops_massacre/src/ops/math.ops
==============================================================================
--- branches/ops_massacre/src/ops/math.ops Thu May 20 07:12:16 2010 (r46813)
+++ branches/ops_massacre/src/ops/math.ops Thu May 20 07:42:17 2010 (r46814)
@@ -137,152 +137,6 @@
########################################
-=item B<cmod>(out INT, in INT, in INT)
-
-=item B<cmod>(invar PMC, invar PMC, in INT)
-
-=item B<cmod>(invar PMC, invar PMC, invar PMC)
-
-NOTE: This "uncorrected mod" algorithm uses the C language's built-in
-mod operator (x % y), which is
-
- ... the remainder when x is divided by y, and thus is zero
- when y divides x exactly.
- ...
- The direction of truncation for / and the sign of the result
- for % are machine-dependent for negative operands, as is the
- action taken on overflow or underflow.
- -- [1], page 41
-
-Also:
-
- ... if the second operand is 0, the result is undefined.
- Otherwise, it is always true that (a/b)*b + a%b is equal to z. If
- both operands are non-negative, then the remainder is non-
- negative and smaller than the divisor; if not, it is guaranteed
- only that the absolute value of the remainder is smaller than
- the absolute value of the divisor.
- -- [1], page 205
-
-This op is provided for those who need it (such as speed-sensitive
-applications with heavy use of mod, but using it only with positive
-arguments), but a more mathematically useful mod based on ** floor(x/y)
-and defined with y == 0 is provided by the mod op.
-
- [1] Brian W. Kernighan and Dennis M. Ritchie, *The C Programming
- Language*, Second Edition. Prentice Hall, 1988.
-
-If the denominator is zero, a 'Divide by zero' exception is thrown.
-
-=cut
-
-inline op cmod(out INT, in INT, in INT) :base_core {
- INTVAL den = $3;
- if ($3 == 0) {
- opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
- EXCEPTION_DIV_BY_ZERO,
- "Divide by zero");
- goto ADDRESS(handler);
- }
- $1 = $2 % den;
-}
-
-inline op cmod(invar PMC, invar PMC, in INT) :base_core {
- INTVAL result;
-
- if ($3 == 0) {
- opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
- EXCEPTION_DIV_BY_ZERO,
- "Divide by zero");
- goto ADDRESS(handler);
- }
-
- result = VTABLE_get_integer(interp, $2) % $3;
-
- $1 = Parrot_pmc_new(interp, VTABLE_type(interp, $2));
- VTABLE_set_integer_native(interp, $1, result);
-}
-
-inline op cmod(invar PMC, invar PMC, invar PMC) :base_core {
- INTVAL result;
- INTVAL value = VTABLE_get_integer(interp, $3);
-
- if (value == 0) {
- opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
- EXCEPTION_DIV_BY_ZERO,
- "Divide by zero");
- goto ADDRESS(handler);
- }
-
- result = VTABLE_get_integer(interp, $2) % value;
-
- $1 = Parrot_pmc_new(interp, VTABLE_type(interp, $2));
- VTABLE_set_integer_native(interp, $1, result);
-}
-
-########################################
-
-=item B<cmod>(out NUM, in NUM, in NUM)
-
-=item B<cmod>(invar PMC, invar PMC, in NUM)
-
-NOTE: This "uncorrected mod" algorithm uses the built-in C math library's
-fmod() function, which computes
-
- ... the remainder of dividing x by y. The return value is
- x - n * y, where n is the quotient of x / y, rounded towards
- zero to an integer.
- -- fmod() manpage on RedHat Linux 7.0
-
-In addition, fmod() returns
-
- the remainder, unless y is zero, when the function fails and
- errno is set.
-
-According to page 251 of [1], the result when y is zero is implementation-
-defined.
-
-This op is provided for those who need it, but a more mathematically
-useful numeric mod based on floor(x/y) instead of truncate(x/y) and
-defined with y == 0 is provided by the mod op.
-
- [1] Brian W. Kernighan and Dennis M. Ritchie, *The C Programming
- Language*, Second Edition. Prentice Hall, 1988.
-
-If the denominator is zero, a 'Divide by zero' exception is thrown.
-
-=cut
-
-inline op cmod(out NUM, in NUM, in NUM) :base_core {
- FLOATVAL den = $3;
- if (FLOAT_IS_ZERO($3)) {
- opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
- EXCEPTION_DIV_BY_ZERO,
- "Divide by zero");
- goto ADDRESS(handler);
- }
- $1 = fmod($2, den);
-}
-
-inline op cmod(invar PMC, invar PMC, in NUM) :base_core {
- FLOATVAL result;
- FLOATVAL value = $3;
-
- if (FLOAT_IS_ZERO(value)) {
- opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
- EXCEPTION_DIV_BY_ZERO,
- "Divide by zero");
- goto ADDRESS(handler);
- }
-
- result = fmod(VTABLE_get_integer(interp, $2), value);
-
- $1 = Parrot_pmc_new(interp, VTABLE_type(interp, $2));
- VTABLE_set_integer_native(interp, $1, (INTVAL) result);
-}
-
-########################################
-
=item B<dec>(inout INT)
=item B<dec>(inout NUM)
Modified: branches/ops_massacre/src/ops/ops.num
==============================================================================
--- branches/ops_massacre/src/ops/ops.num Thu May 20 07:12:16 2010 (r46813)
+++ branches/ops_massacre/src/ops/ops.num Thu May 20 07:42:17 2010 (r46814)
@@ -546,648 +546,637 @@
add_p_p_ic 522
add_p_p_n 523
add_p_p_nc 524
-cmod_i_i_i 525
-cmod_i_ic_i 526
-cmod_i_i_ic 527
-cmod_p_p_i 528
-cmod_p_p_ic 529
-cmod_p_p_p 530
-cmod_n_n_n 531
-cmod_n_nc_n 532
-cmod_n_n_nc 533
-cmod_p_p_n 534
-cmod_p_p_nc 535
-dec_i 536
-dec_n 537
-dec_p 538
-div_i_i 539
-div_i_ic 540
-div_n_n 541
-div_n_nc 542
-div_p_p 543
-div_p_i 544
-div_p_ic 545
-div_p_n 546
-div_p_nc 547
-div_i_i_i 548
-div_i_ic_i 549
-div_i_i_ic 550
-div_i_ic_ic 551
-div_n_n_n 552
-div_n_nc_n 553
-div_n_n_nc 554
-div_n_nc_nc 555
-div_p_p_p 556
-div_p_p_i 557
-div_p_p_ic 558
-div_p_p_n 559
-div_p_p_nc 560
-fdiv_i_i 561
-fdiv_i_ic 562
-fdiv_n_n 563
-fdiv_n_nc 564
-fdiv_p_p 565
-fdiv_p_i 566
-fdiv_p_ic 567
-fdiv_p_n 568
-fdiv_p_nc 569
-fdiv_i_i_i 570
-fdiv_i_ic_i 571
-fdiv_i_i_ic 572
-fdiv_n_n_n 573
-fdiv_n_nc_n 574
-fdiv_n_n_nc 575
-fdiv_p_p_p 576
-fdiv_p_p_i 577
-fdiv_p_p_ic 578
-fdiv_p_p_n 579
-fdiv_p_p_nc 580
-ceil_n 581
-ceil_i_n 582
-ceil_n_n 583
-floor_n 584
-floor_i_n 585
-floor_n_n 586
-inc_i 587
-inc_n 588
-inc_p 589
-mod_i_i 590
-mod_i_ic 591
-mod_n_n 592
-mod_n_nc 593
-mod_p_p 594
-mod_p_i 595
-mod_p_ic 596
-mod_p_n 597
-mod_p_nc 598
-mod_i_i_i 599
-mod_i_ic_i 600
-mod_i_i_ic 601
-mod_n_n_n 602
-mod_n_nc_n 603
-mod_n_n_nc 604
-mod_p_p_p 605
-mod_p_p_i 606
-mod_p_p_ic 607
-mod_p_p_n 608
-mod_p_p_nc 609
-mul_i_i 610
-mul_i_ic 611
-mul_n_n 612
-mul_n_nc 613
-mul_p_p 614
-mul_p_i 615
-mul_p_ic 616
-mul_p_n 617
-mul_p_nc 618
-mul_i_i_i 619
-mul_i_ic_i 620
-mul_i_i_ic 621
-mul_n_n_n 622
-mul_n_nc_n 623
-mul_n_n_nc 624
-mul_p_p_p 625
-mul_p_p_i 626
-mul_p_p_ic 627
-mul_p_p_n 628
-mul_p_p_nc 629
-neg_i 630
-neg_n 631
-neg_p 632
-neg_i_i 633
-neg_n_n 634
-neg_p_p 635
-sub_i_i 636
-sub_i_ic 637
-sub_n_n 638
-sub_n_nc 639
-sub_p_p 640
-sub_p_i 641
-sub_p_ic 642
-sub_p_n 643
-sub_p_nc 644
-sub_i_i_i 645
-sub_i_ic_i 646
-sub_i_i_ic 647
-sub_n_n_n 648
-sub_n_nc_n 649
-sub_n_n_nc 650
-sub_p_p_p 651
-sub_p_p_i 652
-sub_p_p_ic 653
-sub_p_p_n 654
-sub_p_p_nc 655
-sqrt_n_n 656
-callmethodcc_p_s 657
-callmethodcc_p_sc 658
-callmethodcc_p_p 659
-callmethod_p_s_p 660
-callmethod_p_sc_p 661
-callmethod_p_p_p 662
-tailcallmethod_p_s 663
-tailcallmethod_p_sc 664
-tailcallmethod_p_p 665
-addmethod_p_s_p 666
-addmethod_p_sc_p 667
-can_i_p_s 668
-can_i_p_sc 669
-does_i_p_s 670
-does_i_p_sc 671
-does_i_p_p 672
-does_i_p_pc 673
-isa_i_p_s 674
-isa_i_p_sc 675
-isa_i_p_p 676
-isa_i_p_pc 677
-newclass_p_s 678
-newclass_p_sc 679
-newclass_p_p 680
-newclass_p_pc 681
-subclass_p_p 682
-subclass_p_pc 683
-subclass_p_p_s 684
-subclass_p_pc_s 685
-subclass_p_p_sc 686
-subclass_p_pc_sc 687
-subclass_p_p_p 688
-subclass_p_pc_p 689
-subclass_p_p_pc 690
-subclass_p_pc_pc 691
-subclass_p_s 692
-subclass_p_sc 693
-subclass_p_s_s 694
-subclass_p_sc_s 695
-subclass_p_s_sc 696
-subclass_p_sc_sc 697
-subclass_p_s_p 698
-subclass_p_sc_p 699
-subclass_p_s_pc 700
-subclass_p_sc_pc 701
-get_class_p_s 702
-get_class_p_sc 703
-get_class_p_p 704
-get_class_p_pc 705
-class_p_p 706
-addparent_p_p 707
-removeparent_p_p 708
-addrole_p_p 709
-addattribute_p_s 710
-addattribute_p_sc 711
-removeattribute_p_s 712
-removeattribute_p_sc 713
-getattribute_p_p_s 714
-getattribute_p_p_sc 715
-getattribute_p_p_p_s 716
-getattribute_p_p_pc_s 717
-getattribute_p_p_p_sc 718
-getattribute_p_p_pc_sc 719
-setattribute_p_s_p 720
-setattribute_p_sc_p 721
-setattribute_p_p_s_p 722
-setattribute_p_pc_s_p 723
-setattribute_p_p_sc_p 724
-setattribute_p_pc_sc_p 725
-inspect_p_p 726
-inspect_p_pc 727
-inspect_p_p_s 728
-inspect_p_pc_s 729
-inspect_p_p_sc 730
-inspect_p_pc_sc 731
-new_p_s 732
-new_p_sc 733
-new_p_s_p 734
-new_p_sc_p 735
-new_p_s_pc 736
-new_p_sc_pc 737
-new_p_p 738
-new_p_pc 739
-new_p_p_p 740
-new_p_pc_p 741
-new_p_p_pc 742
-new_p_pc_pc 743
-root_new_p_p 744
-root_new_p_pc 745
-root_new_p_p_p 746
-root_new_p_pc_p 747
-root_new_p_p_pc 748
-root_new_p_pc_pc 749
-typeof_s_p 750
-typeof_p_p 751
-get_repr_s_p 752
-find_method_p_p_s 753
-find_method_p_p_sc 754
-defined_i_p 755
-defined_i_p_ki 756
-defined_i_p_kic 757
-defined_i_p_k 758
-defined_i_p_kc 759
-exists_i_p_ki 760
-exists_i_p_kic 761
-exists_i_p_k 762
-exists_i_p_kc 763
-delete_p_k 764
-delete_p_kc 765
-delete_p_ki 766
-delete_p_kic 767
-elements_i_p 768
-push_p_i 769
-push_p_ic 770
-push_p_n 771
-push_p_nc 772
-push_p_s 773
-push_p_sc 774
-push_p_p 775
-pop_i_p 776
-pop_n_p 777
-pop_s_p 778
-pop_p_p 779
-unshift_p_i 780
-unshift_p_ic 781
-unshift_p_n 782
-unshift_p_nc 783
-unshift_p_s 784
-unshift_p_sc 785
-unshift_p_p 786
-shift_i_p 787
-shift_n_p 788
-shift_s_p 789
-shift_p_p 790
-splice_p_p_i_i 791
-splice_p_p_ic_i 792
-splice_p_p_i_ic 793
-splice_p_p_ic_ic 794
-setprop_p_s_p 795
-setprop_p_sc_p 796
-getprop_p_s_p 797
-getprop_p_sc_p 798
-delprop_p_s 799
-delprop_p_sc 800
-prophash_p_p 801
-freeze_s_p 802
-thaw_p_s 803
-thaw_p_sc 804
-add_multi_s_s_p 805
-add_multi_sc_s_p 806
-add_multi_s_sc_p 807
-add_multi_sc_sc_p 808
-find_multi_p_s_s 809
-find_multi_p_sc_s 810
-find_multi_p_s_sc 811
-find_multi_p_sc_sc 812
-register_p 813
-unregister_p 814
-box_p_i 815
-box_p_ic 816
-box_p_n 817
-box_p_nc 818
-box_p_s 819
-box_p_sc 820
-iter_p_p 821
-morph_p_p 822
-morph_p_pc 823
-clone_s_s 824
-clone_s_sc 825
-set_i_i 826
-set_i_ic 827
-set_i_n 828
-set_i_nc 829
-set_i_s 830
-set_i_sc 831
-set_n_n 832
-set_n_nc 833
-set_n_i 834
-set_n_ic 835
-set_n_s 836
-set_n_sc 837
-set_n_p 838
-set_s_p 839
-set_s_s 840
-set_s_sc 841
-set_s_i 842
-set_s_ic 843
-set_s_n 844
-set_s_nc 845
-set_p_pc 846
-set_p_p 847
-set_p_i 848
-set_p_ic 849
-set_p_n 850
-set_p_nc 851
-set_p_s 852
-set_p_sc 853
-set_i_p 854
-assign_p_p 855
-assign_p_i 856
-assign_p_ic 857
-assign_p_n 858
-assign_p_nc 859
-assign_p_s 860
-assign_p_sc 861
-assign_s_s 862
-assign_s_sc 863
-setref_p_p 864
-deref_p_p 865
-set_p_ki_i 866
-set_p_kic_i 867
-set_p_ki_ic 868
-set_p_kic_ic 869
-set_p_ki_n 870
-set_p_kic_n 871
-set_p_ki_nc 872
-set_p_kic_nc 873
-set_p_ki_s 874
-set_p_kic_s 875
-set_p_ki_sc 876
-set_p_kic_sc 877
-set_p_ki_p 878
-set_p_kic_p 879
-set_i_p_ki 880
-set_i_p_kic 881
-set_n_p_ki 882
-set_n_p_kic 883
-set_s_p_ki 884
-set_s_p_kic 885
-set_p_p_ki 886
-set_p_p_kic 887
-set_p_k_i 888
-set_p_kc_i 889
-set_p_k_ic 890
-set_p_kc_ic 891
-set_p_k_n 892
-set_p_kc_n 893
-set_p_k_nc 894
-set_p_kc_nc 895
-set_p_k_s 896
-set_p_kc_s 897
-set_p_k_sc 898
-set_p_kc_sc 899
-set_p_k_p 900
-set_p_kc_p 901
-set_i_p_k 902
-set_i_p_kc 903
-set_n_p_k 904
-set_n_p_kc 905
-set_s_p_k 906
-set_s_p_kc 907
-set_p_p_k 908
-set_p_p_kc 909
-clone_p_p 910
-clone_p_p_p 911
-clone_p_p_pc 912
-copy_p_p 913
-null_s 914
-null_i 915
-null_p 916
-null_n 917
-ord_i_s 918
-ord_i_sc 919
-ord_i_s_i 920
-ord_i_sc_i 921
-ord_i_s_ic 922
-ord_i_sc_ic 923
-chr_s_i 924
-chr_s_ic 925
-chopn_s_s_i 926
-chopn_s_sc_i 927
-chopn_s_s_ic 928
-chopn_s_sc_ic 929
-concat_s_s 930
-concat_s_sc 931
-concat_p_p 932
-concat_p_s 933
-concat_p_sc 934
-concat_s_s_s 935
-concat_s_sc_s 936
-concat_s_s_sc 937
-concat_p_p_s 938
-concat_p_p_sc 939
-concat_p_p_p 940
-repeat_s_s_i 941
-repeat_s_sc_i 942
-repeat_s_s_ic 943
-repeat_s_sc_ic 944
-repeat_p_p_i 945
-repeat_p_p_ic 946
-repeat_p_p_p 947
-repeat_p_i 948
-repeat_p_ic 949
-repeat_p_p 950
-length_i_s 951
-length_i_sc 952
-bytelength_i_s 953
-bytelength_i_sc 954
-pin_s 955
-unpin_s 956
-substr_s_s_i 957
-substr_s_sc_i 958
-substr_s_s_ic 959
-substr_s_sc_ic 960
-substr_s_s_i_i 961
-substr_s_sc_i_i 962
-substr_s_s_ic_i 963
-substr_s_sc_ic_i 964
-substr_s_s_i_ic 965
-substr_s_sc_i_ic 966
-substr_s_s_ic_ic 967
-substr_s_sc_ic_ic 968
-substr_s_p_i_i 969
-substr_s_p_ic_i 970
-substr_s_p_i_ic 971
-substr_s_p_ic_ic 972
-replace_s_s_i_i_s 973
-replace_s_sc_i_i_s 974
-replace_s_s_ic_i_s 975
-replace_s_sc_ic_i_s 976
-replace_s_s_i_ic_s 977
-replace_s_sc_i_ic_s 978
-replace_s_s_ic_ic_s 979
-replace_s_sc_ic_ic_s 980
-replace_s_s_i_i_sc 981
-replace_s_sc_i_i_sc 982
-replace_s_s_ic_i_sc 983
-replace_s_sc_ic_i_sc 984
-replace_s_s_i_ic_sc 985
-replace_s_sc_i_ic_sc 986
-replace_s_s_ic_ic_sc 987
-replace_s_sc_ic_ic_sc 988
-index_i_s_s 989
-index_i_sc_s 990
-index_i_s_sc 991
-index_i_sc_sc 992
-index_i_s_s_i 993
-index_i_sc_s_i 994
-index_i_s_sc_i 995
-index_i_sc_sc_i 996
-index_i_s_s_ic 997
-index_i_sc_s_ic 998
-index_i_s_sc_ic 999
-index_i_sc_sc_ic 1000
-sprintf_s_s_p 1001
-sprintf_s_sc_p 1002
-sprintf_p_p_p 1003
-new_s 1004
-new_s_i 1005
-new_s_ic 1006
-stringinfo_i_s_i 1007
-stringinfo_i_sc_i 1008
-stringinfo_i_s_ic 1009
-stringinfo_i_sc_ic 1010
-upcase_s_s 1011
-upcase_s_sc 1012
-downcase_s_s 1013
-downcase_s_sc 1014
-titlecase_s_s 1015
-titlecase_s_sc 1016
-join_s_s_p 1017
-join_s_sc_p 1018
-split_p_s_s 1019
-split_p_sc_s 1020
-split_p_s_sc 1021
-split_p_sc_sc 1022
-charset_i_s 1023
-charset_i_sc 1024
-charsetname_s_i 1025
-charsetname_s_ic 1026
-find_charset_i_s 1027
-find_charset_i_sc 1028
-trans_charset_s_s_i 1029
-trans_charset_s_sc_i 1030
-trans_charset_s_s_ic 1031
-trans_charset_s_sc_ic 1032
-encoding_i_s 1033
-encoding_i_sc 1034
-encodingname_s_i 1035
-encodingname_s_ic 1036
-find_encoding_i_s 1037
-find_encoding_i_sc 1038
-trans_encoding_s_s_i 1039
-trans_encoding_s_sc_i 1040
-trans_encoding_s_s_ic 1041
-trans_encoding_s_sc_ic 1042
-is_cclass_i_i_s_i 1043
-is_cclass_i_ic_s_i 1044
-is_cclass_i_i_sc_i 1045
-is_cclass_i_ic_sc_i 1046
-is_cclass_i_i_s_ic 1047
-is_cclass_i_ic_s_ic 1048
-is_cclass_i_i_sc_ic 1049
-is_cclass_i_ic_sc_ic 1050
-find_cclass_i_i_s_i_i 1051
-find_cclass_i_ic_s_i_i 1052
-find_cclass_i_i_sc_i_i 1053
-find_cclass_i_ic_sc_i_i 1054
-find_cclass_i_i_s_ic_i 1055
-find_cclass_i_ic_s_ic_i 1056
-find_cclass_i_i_sc_ic_i 1057
-find_cclass_i_ic_sc_ic_i 1058
-find_cclass_i_i_s_i_ic 1059
-find_cclass_i_ic_s_i_ic 1060
-find_cclass_i_i_sc_i_ic 1061
-find_cclass_i_ic_sc_i_ic 1062
-find_cclass_i_i_s_ic_ic 1063
-find_cclass_i_ic_s_ic_ic 1064
-find_cclass_i_i_sc_ic_ic 1065
-find_cclass_i_ic_sc_ic_ic 1066
-find_not_cclass_i_i_s_i_i 1067
-find_not_cclass_i_ic_s_i_i 1068
-find_not_cclass_i_i_sc_i_i 1069
-find_not_cclass_i_ic_sc_i_i 1070
-find_not_cclass_i_i_s_ic_i 1071
-find_not_cclass_i_ic_s_ic_i 1072
-find_not_cclass_i_i_sc_ic_i 1073
-find_not_cclass_i_ic_sc_ic_i 1074
-find_not_cclass_i_i_s_i_ic 1075
-find_not_cclass_i_ic_s_i_ic 1076
-find_not_cclass_i_i_sc_i_ic 1077
-find_not_cclass_i_ic_sc_i_ic 1078
-find_not_cclass_i_i_s_ic_ic 1079
-find_not_cclass_i_ic_s_ic_ic 1080
-find_not_cclass_i_i_sc_ic_ic 1081
-find_not_cclass_i_ic_sc_ic_ic 1082
-escape_s_s 1083
-compose_s_s 1084
-compose_s_sc 1085
-spawnw_i_s 1086
-spawnw_i_sc 1087
-spawnw_i_p 1088
-err_i 1089
-err_s 1090
-err_s_i 1091
-err_s_ic 1092
-time_i 1093
-time_n 1094
-gmtime_s_i 1095
-gmtime_s_ic 1096
-localtime_s_i 1097
-localtime_s_ic 1098
-decodetime_p_i 1099
-decodetime_p_ic 1100
-decodelocaltime_p_i 1101
-decodelocaltime_p_ic 1102
-sysinfo_s_i 1103
-sysinfo_s_ic 1104
-sysinfo_i_i 1105
-sysinfo_i_ic 1106
-sleep_i 1107
-sleep_ic 1108
-sleep_n 1109
-sleep_nc 1110
-store_lex_s_p 1111
-store_lex_sc_p 1112
-store_dynamic_lex_s_p 1113
-store_dynamic_lex_sc_p 1114
-find_lex_p_s 1115
-find_lex_p_sc 1116
-find_dynamic_lex_p_s 1117
-find_dynamic_lex_p_sc 1118
-find_caller_lex_p_s 1119
-find_caller_lex_p_sc 1120
-get_namespace_p 1121
-get_namespace_p_p 1122
-get_namespace_p_pc 1123
-get_hll_namespace_p 1124
-get_hll_namespace_p_p 1125
-get_hll_namespace_p_pc 1126
-get_root_namespace_p 1127
-get_root_namespace_p_p 1128
-get_root_namespace_p_pc 1129
-get_global_p_s 1130
-get_global_p_sc 1131
-get_global_p_p_s 1132
-get_global_p_pc_s 1133
-get_global_p_p_sc 1134
-get_global_p_pc_sc 1135
-get_hll_global_p_s 1136
-get_hll_global_p_sc 1137
-get_hll_global_p_p_s 1138
-get_hll_global_p_pc_s 1139
-get_hll_global_p_p_sc 1140
-get_hll_global_p_pc_sc 1141
-get_root_global_p_s 1142
-get_root_global_p_sc 1143
-get_root_global_p_p_s 1144
-get_root_global_p_pc_s 1145
-get_root_global_p_p_sc 1146
-get_root_global_p_pc_sc 1147
-set_global_s_p 1148
-set_global_sc_p 1149
-set_global_p_s_p 1150
-set_global_pc_s_p 1151
-set_global_p_sc_p 1152
-set_global_pc_sc_p 1153
-set_hll_global_s_p 1154
-set_hll_global_sc_p 1155
-set_hll_global_p_s_p 1156
-set_hll_global_pc_s_p 1157
-set_hll_global_p_sc_p 1158
-set_hll_global_pc_sc_p 1159
-set_root_global_s_p 1160
-set_root_global_sc_p 1161
-set_root_global_p_s_p 1162
-set_root_global_pc_s_p 1163
-set_root_global_p_sc_p 1164
-set_root_global_pc_sc_p 1165
-find_name_p_s 1166
-find_name_p_sc 1167
-find_sub_not_null_p_s 1168
-find_sub_not_null_p_sc 1169
+dec_i 525
+dec_n 526
+dec_p 527
+div_i_i 528
+div_i_ic 529
+div_n_n 530
+div_n_nc 531
+div_p_p 532
+div_p_i 533
+div_p_ic 534
+div_p_n 535
+div_p_nc 536
+div_i_i_i 537
+div_i_ic_i 538
+div_i_i_ic 539
+div_i_ic_ic 540
+div_n_n_n 541
+div_n_nc_n 542
+div_n_n_nc 543
+div_n_nc_nc 544
+div_p_p_p 545
+div_p_p_i 546
+div_p_p_ic 547
+div_p_p_n 548
+div_p_p_nc 549
+fdiv_i_i 550
+fdiv_i_ic 551
+fdiv_n_n 552
+fdiv_n_nc 553
+fdiv_p_p 554
+fdiv_p_i 555
+fdiv_p_ic 556
+fdiv_p_n 557
+fdiv_p_nc 558
+fdiv_i_i_i 559
+fdiv_i_ic_i 560
+fdiv_i_i_ic 561
+fdiv_n_n_n 562
+fdiv_n_nc_n 563
+fdiv_n_n_nc 564
+fdiv_p_p_p 565
+fdiv_p_p_i 566
+fdiv_p_p_ic 567
+fdiv_p_p_n 568
+fdiv_p_p_nc 569
+ceil_n 570
+ceil_i_n 571
+ceil_n_n 572
+floor_n 573
+floor_i_n 574
+floor_n_n 575
+inc_i 576
+inc_n 577
+inc_p 578
+mod_i_i 579
+mod_i_ic 580
+mod_n_n 581
+mod_n_nc 582
+mod_p_p 583
+mod_p_i 584
+mod_p_ic 585
+mod_p_n 586
+mod_p_nc 587
+mod_i_i_i 588
+mod_i_ic_i 589
+mod_i_i_ic 590
+mod_n_n_n 591
+mod_n_nc_n 592
+mod_n_n_nc 593
+mod_p_p_p 594
+mod_p_p_i 595
+mod_p_p_ic 596
+mod_p_p_n 597
+mod_p_p_nc 598
+mul_i_i 599
+mul_i_ic 600
+mul_n_n 601
+mul_n_nc 602
+mul_p_p 603
+mul_p_i 604
+mul_p_ic 605
+mul_p_n 606
+mul_p_nc 607
+mul_i_i_i 608
+mul_i_ic_i 609
+mul_i_i_ic 610
+mul_n_n_n 611
+mul_n_nc_n 612
+mul_n_n_nc 613
+mul_p_p_p 614
+mul_p_p_i 615
+mul_p_p_ic 616
+mul_p_p_n 617
+mul_p_p_nc 618
+neg_i 619
+neg_n 620
+neg_p 621
+neg_i_i 622
+neg_n_n 623
+neg_p_p 624
+sub_i_i 625
+sub_i_ic 626
+sub_n_n 627
+sub_n_nc 628
+sub_p_p 629
+sub_p_i 630
+sub_p_ic 631
+sub_p_n 632
+sub_p_nc 633
+sub_i_i_i 634
+sub_i_ic_i 635
+sub_i_i_ic 636
+sub_n_n_n 637
+sub_n_nc_n 638
+sub_n_n_nc 639
+sub_p_p_p 640
+sub_p_p_i 641
+sub_p_p_ic 642
+sub_p_p_n 643
+sub_p_p_nc 644
+sqrt_n_n 645
+callmethodcc_p_s 646
+callmethodcc_p_sc 647
+callmethodcc_p_p 648
+callmethod_p_s_p 649
+callmethod_p_sc_p 650
+callmethod_p_p_p 651
+tailcallmethod_p_s 652
+tailcallmethod_p_sc 653
+tailcallmethod_p_p 654
+addmethod_p_s_p 655
+addmethod_p_sc_p 656
+can_i_p_s 657
+can_i_p_sc 658
+does_i_p_s 659
+does_i_p_sc 660
+does_i_p_p 661
+does_i_p_pc 662
+isa_i_p_s 663
+isa_i_p_sc 664
+isa_i_p_p 665
+isa_i_p_pc 666
+newclass_p_s 667
+newclass_p_sc 668
+newclass_p_p 669
+newclass_p_pc 670
+subclass_p_p 671
+subclass_p_pc 672
+subclass_p_p_s 673
+subclass_p_pc_s 674
+subclass_p_p_sc 675
+subclass_p_pc_sc 676
+subclass_p_p_p 677
+subclass_p_pc_p 678
+subclass_p_p_pc 679
+subclass_p_pc_pc 680
+subclass_p_s 681
+subclass_p_sc 682
+subclass_p_s_s 683
+subclass_p_sc_s 684
+subclass_p_s_sc 685
+subclass_p_sc_sc 686
+subclass_p_s_p 687
+subclass_p_sc_p 688
+subclass_p_s_pc 689
+subclass_p_sc_pc 690
+get_class_p_s 691
+get_class_p_sc 692
+get_class_p_p 693
+get_class_p_pc 694
+class_p_p 695
+addparent_p_p 696
+removeparent_p_p 697
+addrole_p_p 698
+addattribute_p_s 699
+addattribute_p_sc 700
+removeattribute_p_s 701
+removeattribute_p_sc 702
+getattribute_p_p_s 703
+getattribute_p_p_sc 704
+getattribute_p_p_p_s 705
+getattribute_p_p_pc_s 706
+getattribute_p_p_p_sc 707
+getattribute_p_p_pc_sc 708
+setattribute_p_s_p 709
+setattribute_p_sc_p 710
+setattribute_p_p_s_p 711
+setattribute_p_pc_s_p 712
+setattribute_p_p_sc_p 713
+setattribute_p_pc_sc_p 714
+inspect_p_p 715
+inspect_p_pc 716
+inspect_p_p_s 717
+inspect_p_pc_s 718
+inspect_p_p_sc 719
+inspect_p_pc_sc 720
+new_p_s 721
+new_p_sc 722
+new_p_s_p 723
+new_p_sc_p 724
+new_p_s_pc 725
+new_p_sc_pc 726
+new_p_p 727
+new_p_pc 728
+new_p_p_p 729
+new_p_pc_p 730
+new_p_p_pc 731
+new_p_pc_pc 732
+root_new_p_p 733
+root_new_p_pc 734
+root_new_p_p_p 735
+root_new_p_pc_p 736
+root_new_p_p_pc 737
+root_new_p_pc_pc 738
+typeof_s_p 739
+typeof_p_p 740
+get_repr_s_p 741
+find_method_p_p_s 742
+find_method_p_p_sc 743
+defined_i_p 744
+defined_i_p_ki 745
+defined_i_p_kic 746
+defined_i_p_k 747
+defined_i_p_kc 748
+exists_i_p_ki 749
+exists_i_p_kic 750
+exists_i_p_k 751
+exists_i_p_kc 752
+delete_p_k 753
+delete_p_kc 754
+delete_p_ki 755
+delete_p_kic 756
+elements_i_p 757
+push_p_i 758
+push_p_ic 759
+push_p_n 760
+push_p_nc 761
+push_p_s 762
+push_p_sc 763
+push_p_p 764
+pop_i_p 765
+pop_n_p 766
+pop_s_p 767
+pop_p_p 768
+unshift_p_i 769
+unshift_p_ic 770
+unshift_p_n 771
+unshift_p_nc 772
+unshift_p_s 773
+unshift_p_sc 774
+unshift_p_p 775
+shift_i_p 776
+shift_n_p 777
+shift_s_p 778
+shift_p_p 779
+splice_p_p_i_i 780
+splice_p_p_ic_i 781
+splice_p_p_i_ic 782
+splice_p_p_ic_ic 783
+setprop_p_s_p 784
+setprop_p_sc_p 785
+getprop_p_s_p 786
+getprop_p_sc_p 787
+delprop_p_s 788
+delprop_p_sc 789
+prophash_p_p 790
+freeze_s_p 791
+thaw_p_s 792
+thaw_p_sc 793
+add_multi_s_s_p 794
+add_multi_sc_s_p 795
+add_multi_s_sc_p 796
+add_multi_sc_sc_p 797
+find_multi_p_s_s 798
+find_multi_p_sc_s 799
+find_multi_p_s_sc 800
+find_multi_p_sc_sc 801
+register_p 802
+unregister_p 803
+box_p_i 804
+box_p_ic 805
+box_p_n 806
+box_p_nc 807
+box_p_s 808
+box_p_sc 809
+iter_p_p 810
+morph_p_p 811
+morph_p_pc 812
+clone_s_s 813
+clone_s_sc 814
+set_i_i 815
+set_i_ic 816
+set_i_n 817
+set_i_nc 818
+set_i_s 819
+set_i_sc 820
+set_n_n 821
+set_n_nc 822
+set_n_i 823
+set_n_ic 824
+set_n_s 825
+set_n_sc 826
+set_n_p 827
+set_s_p 828
+set_s_s 829
+set_s_sc 830
+set_s_i 831
+set_s_ic 832
+set_s_n 833
+set_s_nc 834
+set_p_pc 835
+set_p_p 836
+set_p_i 837
+set_p_ic 838
+set_p_n 839
+set_p_nc 840
+set_p_s 841
+set_p_sc 842
+set_i_p 843
+assign_p_p 844
+assign_p_i 845
+assign_p_ic 846
+assign_p_n 847
+assign_p_nc 848
+assign_p_s 849
+assign_p_sc 850
+assign_s_s 851
+assign_s_sc 852
+setref_p_p 853
+deref_p_p 854
+set_p_ki_i 855
+set_p_kic_i 856
+set_p_ki_ic 857
+set_p_kic_ic 858
+set_p_ki_n 859
+set_p_kic_n 860
+set_p_ki_nc 861
+set_p_kic_nc 862
+set_p_ki_s 863
+set_p_kic_s 864
+set_p_ki_sc 865
+set_p_kic_sc 866
+set_p_ki_p 867
+set_p_kic_p 868
+set_i_p_ki 869
+set_i_p_kic 870
+set_n_p_ki 871
+set_n_p_kic 872
+set_s_p_ki 873
+set_s_p_kic 874
+set_p_p_ki 875
+set_p_p_kic 876
+set_p_k_i 877
+set_p_kc_i 878
+set_p_k_ic 879
+set_p_kc_ic 880
+set_p_k_n 881
+set_p_kc_n 882
+set_p_k_nc 883
+set_p_kc_nc 884
+set_p_k_s 885
+set_p_kc_s 886
+set_p_k_sc 887
+set_p_kc_sc 888
+set_p_k_p 889
+set_p_kc_p 890
+set_i_p_k 891
+set_i_p_kc 892
+set_n_p_k 893
+set_n_p_kc 894
+set_s_p_k 895
+set_s_p_kc 896
+set_p_p_k 897
+set_p_p_kc 898
+clone_p_p 899
+clone_p_p_p 900
+clone_p_p_pc 901
+copy_p_p 902
+null_s 903
+null_i 904
+null_p 905
+null_n 906
+ord_i_s 907
+ord_i_sc 908
+ord_i_s_i 909
+ord_i_sc_i 910
+ord_i_s_ic 911
+ord_i_sc_ic 912
+chr_s_i 913
+chr_s_ic 914
+chopn_s_s_i 915
+chopn_s_sc_i 916
+chopn_s_s_ic 917
+chopn_s_sc_ic 918
+concat_s_s 919
+concat_s_sc 920
+concat_p_p 921
+concat_p_s 922
+concat_p_sc 923
+concat_s_s_s 924
+concat_s_sc_s 925
+concat_s_s_sc 926
+concat_p_p_s 927
+concat_p_p_sc 928
+concat_p_p_p 929
+repeat_s_s_i 930
+repeat_s_sc_i 931
+repeat_s_s_ic 932
+repeat_s_sc_ic 933
+repeat_p_p_i 934
+repeat_p_p_ic 935
+repeat_p_p_p 936
+repeat_p_i 937
+repeat_p_ic 938
+repeat_p_p 939
+length_i_s 940
+length_i_sc 941
+bytelength_i_s 942
+bytelength_i_sc 943
+pin_s 944
+unpin_s 945
+substr_s_s_i 946
+substr_s_sc_i 947
+substr_s_s_ic 948
+substr_s_sc_ic 949
+substr_s_s_i_i 950
+substr_s_sc_i_i 951
+substr_s_s_ic_i 952
+substr_s_sc_ic_i 953
+substr_s_s_i_ic 954
+substr_s_sc_i_ic 955
+substr_s_s_ic_ic 956
+substr_s_sc_ic_ic 957
+substr_s_p_i_i 958
+substr_s_p_ic_i 959
+substr_s_p_i_ic 960
+substr_s_p_ic_ic 961
+replace_s_s_i_i_s 962
+replace_s_sc_i_i_s 963
+replace_s_s_ic_i_s 964
+replace_s_sc_ic_i_s 965
+replace_s_s_i_ic_s 966
+replace_s_sc_i_ic_s 967
+replace_s_s_ic_ic_s 968
+replace_s_sc_ic_ic_s 969
+replace_s_s_i_i_sc 970
+replace_s_sc_i_i_sc 971
+replace_s_s_ic_i_sc 972
+replace_s_sc_ic_i_sc 973
+replace_s_s_i_ic_sc 974
+replace_s_sc_i_ic_sc 975
+replace_s_s_ic_ic_sc 976
+replace_s_sc_ic_ic_sc 977
+index_i_s_s 978
+index_i_sc_s 979
+index_i_s_sc 980
+index_i_sc_sc 981
+index_i_s_s_i 982
+index_i_sc_s_i 983
+index_i_s_sc_i 984
+index_i_sc_sc_i 985
+index_i_s_s_ic 986
+index_i_sc_s_ic 987
+index_i_s_sc_ic 988
+index_i_sc_sc_ic 989
+sprintf_s_s_p 990
+sprintf_s_sc_p 991
+sprintf_p_p_p 992
+new_s 993
+new_s_i 994
+new_s_ic 995
+stringinfo_i_s_i 996
+stringinfo_i_sc_i 997
+stringinfo_i_s_ic 998
+stringinfo_i_sc_ic 999
+upcase_s_s 1000
+upcase_s_sc 1001
+downcase_s_s 1002
+downcase_s_sc 1003
+titlecase_s_s 1004
+titlecase_s_sc 1005
+join_s_s_p 1006
+join_s_sc_p 1007
+split_p_s_s 1008
+split_p_sc_s 1009
+split_p_s_sc 1010
+split_p_sc_sc 1011
+charset_i_s 1012
+charset_i_sc 1013
+charsetname_s_i 1014
+charsetname_s_ic 1015
+find_charset_i_s 1016
+find_charset_i_sc 1017
+trans_charset_s_s_i 1018
+trans_charset_s_sc_i 1019
+trans_charset_s_s_ic 1020
+trans_charset_s_sc_ic 1021
+encoding_i_s 1022
+encoding_i_sc 1023
+encodingname_s_i 1024
+encodingname_s_ic 1025
+find_encoding_i_s 1026
+find_encoding_i_sc 1027
+trans_encoding_s_s_i 1028
+trans_encoding_s_sc_i 1029
+trans_encoding_s_s_ic 1030
+trans_encoding_s_sc_ic 1031
+is_cclass_i_i_s_i 1032
+is_cclass_i_ic_s_i 1033
+is_cclass_i_i_sc_i 1034
+is_cclass_i_ic_sc_i 1035
+is_cclass_i_i_s_ic 1036
+is_cclass_i_ic_s_ic 1037
+is_cclass_i_i_sc_ic 1038
+is_cclass_i_ic_sc_ic 1039
+find_cclass_i_i_s_i_i 1040
+find_cclass_i_ic_s_i_i 1041
+find_cclass_i_i_sc_i_i 1042
+find_cclass_i_ic_sc_i_i 1043
+find_cclass_i_i_s_ic_i 1044
+find_cclass_i_ic_s_ic_i 1045
+find_cclass_i_i_sc_ic_i 1046
+find_cclass_i_ic_sc_ic_i 1047
+find_cclass_i_i_s_i_ic 1048
+find_cclass_i_ic_s_i_ic 1049
+find_cclass_i_i_sc_i_ic 1050
+find_cclass_i_ic_sc_i_ic 1051
+find_cclass_i_i_s_ic_ic 1052
+find_cclass_i_ic_s_ic_ic 1053
+find_cclass_i_i_sc_ic_ic 1054
+find_cclass_i_ic_sc_ic_ic 1055
+find_not_cclass_i_i_s_i_i 1056
+find_not_cclass_i_ic_s_i_i 1057
+find_not_cclass_i_i_sc_i_i 1058
+find_not_cclass_i_ic_sc_i_i 1059
+find_not_cclass_i_i_s_ic_i 1060
+find_not_cclass_i_ic_s_ic_i 1061
+find_not_cclass_i_i_sc_ic_i 1062
+find_not_cclass_i_ic_sc_ic_i 1063
+find_not_cclass_i_i_s_i_ic 1064
+find_not_cclass_i_ic_s_i_ic 1065
+find_not_cclass_i_i_sc_i_ic 1066
+find_not_cclass_i_ic_sc_i_ic 1067
+find_not_cclass_i_i_s_ic_ic 1068
+find_not_cclass_i_ic_s_ic_ic 1069
+find_not_cclass_i_i_sc_ic_ic 1070
+find_not_cclass_i_ic_sc_ic_ic 1071
+escape_s_s 1072
+compose_s_s 1073
+compose_s_sc 1074
+spawnw_i_s 1075
+spawnw_i_sc 1076
+spawnw_i_p 1077
+err_i 1078
+err_s 1079
+err_s_i 1080
+err_s_ic 1081
+time_i 1082
+time_n 1083
+gmtime_s_i 1084
+gmtime_s_ic 1085
+localtime_s_i 1086
+localtime_s_ic 1087
+decodetime_p_i 1088
+decodetime_p_ic 1089
+decodelocaltime_p_i 1090
+decodelocaltime_p_ic 1091
+sysinfo_s_i 1092
+sysinfo_s_ic 1093
+sysinfo_i_i 1094
+sysinfo_i_ic 1095
+sleep_i 1096
+sleep_ic 1097
+sleep_n 1098
+sleep_nc 1099
+store_lex_s_p 1100
+store_lex_sc_p 1101
+store_dynamic_lex_s_p 1102
+store_dynamic_lex_sc_p 1103
+find_lex_p_s 1104
+find_lex_p_sc 1105
+find_dynamic_lex_p_s 1106
+find_dynamic_lex_p_sc 1107
+find_caller_lex_p_s 1108
+find_caller_lex_p_sc 1109
+get_namespace_p 1110
+get_namespace_p_p 1111
+get_namespace_p_pc 1112
+get_hll_namespace_p 1113
+get_hll_namespace_p_p 1114
+get_hll_namespace_p_pc 1115
+get_root_namespace_p 1116
+get_root_namespace_p_p 1117
+get_root_namespace_p_pc 1118
+get_global_p_s 1119
+get_global_p_sc 1120
+get_global_p_p_s 1121
+get_global_p_pc_s 1122
+get_global_p_p_sc 1123
+get_global_p_pc_sc 1124
+get_hll_global_p_s 1125
+get_hll_global_p_sc 1126
+get_hll_global_p_p_s 1127
+get_hll_global_p_pc_s 1128
+get_hll_global_p_p_sc 1129
+get_hll_global_p_pc_sc 1130
+get_root_global_p_s 1131
+get_root_global_p_sc 1132
+get_root_global_p_p_s 1133
+get_root_global_p_pc_s 1134
+get_root_global_p_p_sc 1135
+get_root_global_p_pc_sc 1136
+set_global_s_p 1137
+set_global_sc_p 1138
+set_global_p_s_p 1139
+set_global_pc_s_p 1140
+set_global_p_sc_p 1141
+set_global_pc_sc_p 1142
+set_hll_global_s_p 1143
+set_hll_global_sc_p 1144
+set_hll_global_p_s_p 1145
+set_hll_global_pc_s_p 1146
+set_hll_global_p_sc_p 1147
+set_hll_global_pc_sc_p 1148
+set_root_global_s_p 1149
+set_root_global_sc_p 1150
+set_root_global_p_s_p 1151
+set_root_global_pc_s_p 1152
+set_root_global_p_sc_p 1153
+set_root_global_pc_sc_p 1154
+find_name_p_s 1155
+find_name_p_sc 1156
+find_sub_not_null_p_s 1157
+find_sub_not_null_p_sc 1158
Modified: branches/ops_massacre/t/compilers/imcc/imcpasm/opt1.t
==============================================================================
--- branches/ops_massacre/t/compilers/imcc/imcpasm/opt1.t Thu May 20 07:12:16 2010 (r46813)
+++ branches/ops_massacre/t/compilers/imcc/imcpasm/opt1.t Thu May 20 07:42:17 2010 (r46814)
@@ -5,7 +5,7 @@
use strict;
use warnings;
use lib qw( . lib ../lib ../../lib );
-use Parrot::Test tests => 78;
+use Parrot::Test tests => 77;
use Parrot::Config;
my $output;
@@ -312,22 +312,6 @@
OUT
##############################
-pir_2_pasm_is( <<'CODE', <<'OUT', "constant cmod" );
-.sub _main
- cmod $I0, 33, 10
- cmod $N0, 33.0, 10.0
- end
-.end
-CODE
-# IMCC does produce b0rken PASM files
-# see http://guest@rt.perl.org/rt3/Ticket/Display.html?id=32392
-_main:
- set I0, 3
- set N0, 3
- end
-OUT
-
-##############################
pir_2_pasm_is( <<'CODE', <<'OUT', "constant mod" );
.sub _main
mod $I0, 33, 10
Modified: branches/ops_massacre/t/dynoplibs/math.t
==============================================================================
--- branches/ops_massacre/t/dynoplibs/math.t Thu May 20 07:12:16 2010 (r46813)
+++ branches/ops_massacre/t/dynoplibs/math.t Thu May 20 07:42:17 2010 (r46814)
@@ -16,11 +16,21 @@
=cut
+.macro exception_is ( M )
+ .local pmc exception
+ .local string message
+ .get_results (exception)
+
+ message = exception['message']
+ is( message, .M, .M )
+.endm
+
.loadlib 'math_ops'
+
.sub main :main
.include 'test_more.pir'
.include 'fp_equality.pasm'
- plan(20)
+ plan(34)
ok(1, "load math_ops")
rand $I0
test_2_arg_int()
@@ -32,6 +42,15 @@
test_local_nums()
test_local_nums_2_arg()
test_local_ints()
+ test_cmod_n()
+ test_exception_cmod_n_n_n_by_zero()
+ test_exception_cmod_n_nc_n_by_zero()
+ test_exception_cmod_n_n_nc_by_zero()
+ test_cmod()
+ test_cmod_i_i_i_by_zero()
+ test_cmod_i_ic_i_by_zero()
+ test_cmod_i_i_ic_by_zero()
+ test_cmod_float_integer_pmc_nan()
.end
.sub test_2_arg_int
@@ -178,6 +197,114 @@
finish:
.end
+.sub test_cmod_n
+ set $N0, 5.000
+ set $N1, 3.000
+ cmod $N2, $N0, $N1
+ is( $N2, "2", 'cmod_n' )
+.end
+
+.sub test_exception_cmod_n_n_n_by_zero
+ push_eh handler
+ set $N0, 0
+ set $N1, 10
+ cmod $N2, $N1, $N0
+ handler:
+ .exception_is( 'Divide by zero' )
+.end
+
+.sub test_exception_cmod_n_nc_n_by_zero
+ push_eh handler
+ set $N0, 0
+ cmod $N2, 10, $N0
+ handler:
+ .exception_is( 'Divide by zero' )
+.end
+
+.sub test_exception_cmod_n_n_nc_by_zero
+ push_eh handler
+ set $N1, 10
+ cmod $N2, $N1, 0
+ handler:
+ .exception_is( 'Divide by zero' )
+.end
+
+.sub 'test_cmod'
+ $I0 = 5
+ $I1 = 3
+ $I2 = cmod $I0, $I1
+ is($I2, 2, 'cmod_i_i_i')
+ is($I0, 5, 'cmod_i_i_i - dividend unchanged')
+ is($I1, 3, 'cmod_i_i_i - divisor unchanged')
+
+ $I0 = 12
+
+ $I1 = cmod $I0, 10
+ is($I1, 2, 'cmod_i_i_ic')
+
+ $I1 = cmod 14, $I0
+ is($I1, 2, 'cmod_i_ic_i')
+
+ $I1 = cmod 13, 11
+ is($I1, 2, 'cmod_i_ic_ic')
+.end
+
+.sub 'test_cmod_i_i_i_by_zero'
+ $I0 = 0
+ $I1 = 10
+ push_eh test_cmod_i_i_i_by_zero_catch
+ $I2 = cmod $I1, $I0
+ pop_eh
+ $I3 = 0
+ goto test_cmod_i_i_i_by_zero_end
+
+ test_cmod_i_i_i_by_zero_catch:
+ $I3 = 1
+
+ test_cmod_i_i_i_by_zero_end:
+ ok($I3, 'cmod_i_i_i by zero')
+.end
+
+.sub 'test_cmod_i_ic_i_by_zero'
+ $I0 = 0
+ push_eh test_cmod_i_ic_i_by_zero_catch
+ $I2 = cmod 10, $I0
+ pop_eh
+ $I3 = 0
+ goto test_cmod_i_ic_i_by_zero_end
+
+ test_cmod_i_ic_i_by_zero_catch:
+ $I3 = 1
+
+ test_cmod_i_ic_i_by_zero_end:
+ ok($I3, 'cmod_i_ic_i by zero')
+.end
+
+.sub 'test_cmod_i_i_ic_by_zero'
+ $I1 = 10
+ push_eh test_cmod_i_i_ic_by_zero_catch
+ $I2 = cmod $I1, 0
+ pop_eh
+ $I3 = 0
+ goto test_cmod_i_i_ic_by_zero_end
+
+ test_cmod_i_i_ic_by_zero_catch:
+ $I3 = 1
+
+ test_cmod_i_i_ic_by_zero_end:
+ ok($I3, 'cmod_i_i_ic by zero')
+.end
+
+.sub test_cmod_float_integer_pmc_nan
+ $P1 = new 'Float'
+ $P2 = new 'Integer'
+ $P2 = 1
+ $N0 = 'NaN'
+ cmod $P1, $P2, $N0
+ #is($P1, 'NaN', 'cmod with Float and Integer PMCs and NaN')
+ todo(0, 'cmod with Float and Integer PMCs and NaN', 'cmod does not play nicely with PMCs and NaN')
+.end
+
# Local Variables:
# mode: pir
# fill-column: 100
Modified: branches/ops_massacre/t/op/inf_nan.t
==============================================================================
--- branches/ops_massacre/t/op/inf_nan.t Thu May 20 07:12:16 2010 (r46813)
+++ branches/ops_massacre/t/op/inf_nan.t Thu May 20 07:42:17 2010 (r46814)
@@ -18,7 +18,7 @@
.sub main :main
.include 'test_more.pir'
- plan(38)
+ plan(37)
test_basic_arith()
test_sqrt()
@@ -30,7 +30,6 @@
test_fdiv_integer_pmc_nan()
test_fdiv_float_pmc_nan()
test_fdiv_float_integer_pmc_nan()
- test_cmod_float_integer_pmc_nan()
test_mod_float_integer_pmc_nan()
.end
@@ -156,7 +155,7 @@
$N0 = 'NaN'
fdiv $P1, $P2, $N0
#is($P1, 'NaN', 'fdiv with Integer PMCs and NaN')
- todo(0, 'fdiv with Integer PMCs and NaN', 'fdiv/mod/cmod do not play nicely with PMCs and NaN')
+ todo(0, 'fdiv with Integer PMCs and NaN', 'fdiv/mod do not play nicely with PMCs and NaN')
.end
.sub test_fdiv_float_pmc_nan
@@ -166,7 +165,7 @@
$N0 = 'NaN'
fdiv $P1, $P2, $N0
#is($P1, 'NaN','fdiv with Float PMCs and NaN')
- todo(0,'fdiv with Float PMCs and NaN', 'fdiv/mod/cmod do not play nicely with PMCs and NaN')
+ todo(0,'fdiv with Float PMCs and NaN', 'fdiv/mod do not play nicely with PMCs and NaN')
.end
.sub test_fdiv_float_integer_pmc_nan
@@ -176,17 +175,7 @@
$N0 = 'NaN'
fdiv $P1, $P2, $N0
#is($P1, 'NaN', 'fdiv with Float and Integer PMCs and NaN')
- todo(0, 'fdiv with Float and Integer PMCs and NaN', 'fdiv/mod/cmod do not play nicely with PMCs and NaN')
-.end
-
-.sub test_cmod_float_integer_pmc_nan
- $P1 = new 'Float'
- $P2 = new 'Integer'
- $P2 = 1
- $N0 = 'NaN'
- cmod $P1, $P2, $N0
- #is($P1, 'NaN', 'cmod with Float and Integer PMCs and NaN')
- todo(0, 'cmod with Float and Integer PMCs and NaN', 'fdiv/mod/cmod do not play nicely with PMCs and NaN')
+ todo(0, 'fdiv with Float and Integer PMCs and NaN', 'fdiv/mod do not play nicely with PMCs and NaN')
.end
.sub test_mod_float_integer_pmc_nan
@@ -196,7 +185,7 @@
$N0 = 'NaN'
mod $P1, $P2, $N0
#is($P1, 'NaN', 'mod with Float and Integer PMCs and NaN')
- todo(0, 'mod with Float and Integer PMCs and NaN', 'fdiv/mod/cmod do not play nicely with PMCs and NaN')
+ todo(0, 'mod with Float and Integer PMCs and NaN', 'fdiv/mod do not play nicely with PMCs and NaN')
.end
# Local Variables:
Modified: branches/ops_massacre/t/op/integer.t
==============================================================================
--- branches/ops_massacre/t/op/integer.t Thu May 20 07:12:16 2010 (r46813)
+++ branches/ops_massacre/t/op/integer.t Thu May 20 07:42:17 2010 (r46814)
@@ -16,7 +16,7 @@
=cut
-.const int TESTS = 159
+.const int TESTS = 150
.sub 'test' :main
.include 'test_more.pir'
@@ -32,7 +32,6 @@
test_div()
test_mod()
mod_negative_zero_rest()
- test_cmod()
test_eq()
test_ne()
test_lt()
@@ -60,9 +59,6 @@
test_fdiv_i_i_i_by_zero()
test_fdiv_i_ic_i_by_zero()
test_fdiv_i_i_ic_by_zero()
- test_cmod_i_i_i_by_zero()
- test_cmod_i_ic_i_by_zero()
- test_cmod_i_i_ic_by_zero()
test_mod_i_i_i_by_zero()
test_mod_i_ic_i_by_zero()
test_mod_i_i_ic_by_zero()
@@ -337,26 +333,6 @@
is($I1, 0, 'mod - negative, zero rest (#36003), -3 mod -3 = 0')
.end
-.sub 'test_cmod'
- $I0 = 5
- $I1 = 3
- $I2 = cmod $I0, $I1
- is($I2, 2, 'cmod_i_i_i')
- is($I0, 5, 'cmod_i_i_i - dividend unchanged')
- is($I1, 3, 'cmod_i_i_i - divisor unchanged')
-
- $I0 = 12
-
- $I1 = cmod $I0, 10
- is($I1, 2, 'cmod_i_i_ic')
-
- $I1 = cmod 14, $I0
- is($I1, 2, 'cmod_i_ic_i')
-
- $I1 = cmod 13, 11
- is($I1, 2, 'cmod_i_ic_ic')
-.end
-
.sub 'test_eq'
$I0 = 0x12345678
$I1 = 0x12345678
@@ -925,52 +901,6 @@
ok($I3, 'fdiv_i_i_ic by zero')
.end
-.sub 'test_cmod_i_i_i_by_zero'
- $I0 = 0
- $I1 = 10
- push_eh test_cmod_i_i_i_by_zero_catch
- $I2 = cmod $I1, $I0
- pop_eh
- $I3 = 0
- goto test_cmod_i_i_i_by_zero_end
-
- test_cmod_i_i_i_by_zero_catch:
- $I3 = 1
-
- test_cmod_i_i_i_by_zero_end:
- ok($I3, 'cmod_i_i_i by zero')
-.end
-
-.sub 'test_cmod_i_ic_i_by_zero'
- $I0 = 0
- push_eh test_cmod_i_ic_i_by_zero_catch
- $I2 = cmod 10, $I0
- pop_eh
- $I3 = 0
- goto test_cmod_i_ic_i_by_zero_end
-
- test_cmod_i_ic_i_by_zero_catch:
- $I3 = 1
-
- test_cmod_i_ic_i_by_zero_end:
- ok($I3, 'cmod_i_ic_i by zero')
-.end
-
-.sub 'test_cmod_i_i_ic_by_zero'
- $I1 = 10
- push_eh test_cmod_i_i_ic_by_zero_catch
- $I2 = cmod $I1, 0
- pop_eh
- $I3 = 0
- goto test_cmod_i_i_ic_by_zero_end
-
- test_cmod_i_i_ic_by_zero_catch:
- $I3 = 1
-
- test_cmod_i_i_ic_by_zero_end:
- ok($I3, 'cmod_i_i_ic by zero')
-.end
-
.sub 'test_mod_i_i_i_by_zero'
$I0 = 0
$I1 = 10
Modified: branches/ops_massacre/t/op/number.t
==============================================================================
--- branches/ops_massacre/t/op/number.t Thu May 20 07:12:16 2010 (r46813)
+++ branches/ops_massacre/t/op/number.t Thu May 20 07:42:17 2010 (r46814)
@@ -19,7 +19,7 @@
.sub main :main
.include 'test_more.pir'
- plan(130)
+ plan(126)
test_set_n_nc()
test_set_n()
test_add_n_n_n()
@@ -30,7 +30,6 @@
test_mul_i()
test_div_i()
test_mod_n()
- test_cmod_n()
test_eq_n_ic()
test_eq_nc_ic()
test_ne_n_ic()
@@ -66,9 +65,6 @@
test_exception_fdiv_n_n_n_by_zero()
test_exception_fdiv_n_nc_n_by_zero()
test_exception_fdiv_n_n_nc_by_zero()
- test_exception_cmod_n_n_n_by_zero()
- test_exception_cmod_n_nc_n_by_zero()
- test_exception_cmod_n_n_nc_by_zero()
test_mod_n_n_n_by_zero()
test_mod_n_nc_n_by_zero()
test_mod_n_n_nc_by_zero()
@@ -259,13 +255,6 @@
is( $N2, "-2", 'mod_n' )
.end
-.sub test_cmod_n
- set $N0, 5.000
- set $N1, 3.000
- cmod $N2, $N0, $N1
- is( $N2, "2", 'cmod_n' )
-.end
-
.sub test_eq_n_ic
set $N0, 5.000001
set $N1, 5.000001
@@ -780,31 +769,6 @@
.exception_is( 'Divide by zero' )
.end
-.sub test_exception_cmod_n_n_n_by_zero
- push_eh handler
- set $N0, 0
- set $N1, 10
- cmod $N2, $N1, $N0
- handler:
- .exception_is( 'Divide by zero' )
-.end
-
-.sub test_exception_cmod_n_nc_n_by_zero
- push_eh handler
- set $N0, 0
- cmod $N2, 10, $N0
- handler:
- .exception_is( 'Divide by zero' )
-.end
-
-.sub test_exception_cmod_n_n_nc_by_zero
- push_eh handler
- set $N1, 10
- cmod $N2, $N1, 0
- handler:
- .exception_is( 'Divide by zero' )
-.end
-
.sub test_mod_n_n_n_by_zero
set $N0, 0
set $N1, 10
More information about the parrot-commits
mailing list