rubinius-compiler 3.13 → 3.14
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rubinius/code/compiler/generator.rb +156 -0
- data/lib/rubinius/code/compiler/version.rb +1 -1
- metadata +12 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 544ee959349b5edda489ba74e5872e5987653fec
|
4
|
+
data.tar.gz: 11bb224fd588e580aaad62ecd814e33b8fc2d42c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0f0a5c2d23b0e3ed95a1db311e188ad6e62c61e4a3d84f5a93b992d293f441f27d35e41ea7a0813f110b78b4cf47c7e49ee058188ab916989943e0fcf798f146
|
7
|
+
data.tar.gz: 03209b606678cbe808cf2692f19cfc761f26d9089cd783c59343499637c43fb5824c6c7d1f679e2d2f4131b4241755f983316018dfc97696dbbb12fd576fcd6a
|
@@ -458,6 +458,10 @@ module CodeTools
|
|
458
458
|
label
|
459
459
|
end
|
460
460
|
|
461
|
+
def get_unwind_label
|
462
|
+
(state && state.unwind_label) || new_unwind_label
|
463
|
+
end
|
464
|
+
|
461
465
|
# Helpers
|
462
466
|
|
463
467
|
def new_basic_block
|
@@ -586,5 +590,157 @@ module CodeTools
|
|
586
590
|
send_super_stack_with_block meth, args
|
587
591
|
end
|
588
592
|
end
|
593
|
+
|
594
|
+
# instructions that can cause stack unwinding
|
595
|
+
|
596
|
+
def cast_array
|
597
|
+
uw = get_unwind_label
|
598
|
+
super
|
599
|
+
unwind uw
|
600
|
+
end
|
601
|
+
|
602
|
+
def cast_for_multi_block_arg
|
603
|
+
uw = get_unwind_label
|
604
|
+
super
|
605
|
+
unwind uw
|
606
|
+
end
|
607
|
+
|
608
|
+
def cast_for_single_block_arg
|
609
|
+
uw = get_unwind_label
|
610
|
+
super
|
611
|
+
unwind uw
|
612
|
+
end
|
613
|
+
|
614
|
+
def cast_for_splat_block_arg
|
615
|
+
uw = get_unwind_label
|
616
|
+
super
|
617
|
+
unwind uw
|
618
|
+
end
|
619
|
+
|
620
|
+
def cast_multi_value
|
621
|
+
uw = get_unwind_label
|
622
|
+
super
|
623
|
+
unwind uw
|
624
|
+
end
|
625
|
+
|
626
|
+
def check_frozen
|
627
|
+
uw = get_unwind_label
|
628
|
+
super
|
629
|
+
unwind uw
|
630
|
+
end
|
631
|
+
|
632
|
+
def create_block(arg1)
|
633
|
+
uw = get_unwind_label
|
634
|
+
super
|
635
|
+
unwind uw
|
636
|
+
end
|
637
|
+
|
638
|
+
def find_const(arg1)
|
639
|
+
uw = get_unwind_label
|
640
|
+
super
|
641
|
+
unwind uw
|
642
|
+
end
|
643
|
+
|
644
|
+
def invoke_primitive(arg1, arg2)
|
645
|
+
uw = get_unwind_label
|
646
|
+
super
|
647
|
+
unwind uw
|
648
|
+
end
|
649
|
+
|
650
|
+
def object_to_s(arg1)
|
651
|
+
uw = get_unwind_label
|
652
|
+
super
|
653
|
+
unwind uw
|
654
|
+
end
|
655
|
+
|
656
|
+
def push_const(arg1)
|
657
|
+
uw = get_unwind_label
|
658
|
+
super
|
659
|
+
unwind uw
|
660
|
+
end
|
661
|
+
|
662
|
+
def push_ivar(arg1)
|
663
|
+
uw = get_unwind_label
|
664
|
+
super
|
665
|
+
unwind uw
|
666
|
+
end
|
667
|
+
|
668
|
+
def raise_break
|
669
|
+
uw = get_unwind_label
|
670
|
+
super
|
671
|
+
unwind uw
|
672
|
+
end
|
673
|
+
|
674
|
+
def send_method(arg1)
|
675
|
+
uw = get_unwind_label
|
676
|
+
super
|
677
|
+
unwind uw
|
678
|
+
end
|
679
|
+
|
680
|
+
def send_stack(arg1, arg2)
|
681
|
+
uw = get_unwind_label
|
682
|
+
super
|
683
|
+
unwind uw
|
684
|
+
end
|
685
|
+
|
686
|
+
def send_stack_with_block(arg1, arg2)
|
687
|
+
uw = get_unwind_label
|
688
|
+
super
|
689
|
+
unwind uw
|
690
|
+
end
|
691
|
+
|
692
|
+
def send_stack_with_splat(arg1, arg2)
|
693
|
+
uw = get_unwind_label
|
694
|
+
super
|
695
|
+
unwind uw
|
696
|
+
end
|
697
|
+
|
698
|
+
def send_super_stack_with_block(arg1, arg2)
|
699
|
+
uw = get_unwind_label
|
700
|
+
super
|
701
|
+
unwind uw
|
702
|
+
end
|
703
|
+
|
704
|
+
def send_super_stack_with_splat(arg1, arg2)
|
705
|
+
uw = get_unwind_label
|
706
|
+
super
|
707
|
+
unwind uw
|
708
|
+
end
|
709
|
+
|
710
|
+
def send_vcall(arg1)
|
711
|
+
uw = get_unwind_label
|
712
|
+
super
|
713
|
+
unwind uw
|
714
|
+
end
|
715
|
+
|
716
|
+
def string_build(arg1)
|
717
|
+
uw = get_unwind_label
|
718
|
+
super
|
719
|
+
unwind uw
|
720
|
+
end
|
721
|
+
|
722
|
+
def string_dup
|
723
|
+
uw = get_unwind_label
|
724
|
+
super
|
725
|
+
unwind uw
|
726
|
+
end
|
727
|
+
|
728
|
+
def yield_splat(arg1)
|
729
|
+
uw = get_unwind_label
|
730
|
+
super
|
731
|
+
unwind uw
|
732
|
+
end
|
733
|
+
|
734
|
+
def yield_stack(arg1)
|
735
|
+
uw = get_unwind_label
|
736
|
+
super
|
737
|
+
unwind uw
|
738
|
+
end
|
739
|
+
|
740
|
+
def zsuper(arg1)
|
741
|
+
uw = get_unwind_label
|
742
|
+
super
|
743
|
+
unwind uw
|
744
|
+
end
|
589
745
|
end
|
590
746
|
end
|
metadata
CHANGED
@@ -1,43 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubinius-compiler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '3.
|
4
|
+
version: '3.14'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brian Shirai
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-08-
|
11
|
+
date: 2017-08-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
+
prerelease: false
|
14
15
|
name: bundler
|
15
|
-
|
16
|
+
version_requirements: !ruby/object:Gem::Requirement
|
16
17
|
requirements:
|
17
18
|
- - "~>"
|
18
19
|
- !ruby/object:Gem::Version
|
19
20
|
version: '1.3'
|
20
|
-
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
21
|
+
requirement: !ruby/object:Gem::Requirement
|
23
22
|
requirements:
|
24
23
|
- - "~>"
|
25
24
|
- !ruby/object:Gem::Version
|
26
25
|
version: '1.3'
|
26
|
+
type: :development
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
+
prerelease: false
|
28
29
|
name: rake
|
29
|
-
|
30
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
31
|
requirements:
|
31
32
|
- - "~>"
|
32
33
|
- !ruby/object:Gem::Version
|
33
34
|
version: '10.0'
|
34
|
-
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
37
36
|
requirements:
|
38
37
|
- - "~>"
|
39
38
|
- !ruby/object:Gem::Version
|
40
39
|
version: '10.0'
|
40
|
+
type: :development
|
41
41
|
description: A Bytecode compiler for the Rubinius language platform.
|
42
42
|
email:
|
43
43
|
- brixen@gmail.com
|
@@ -77,8 +77,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
77
77
|
version: '0'
|
78
78
|
requirements: []
|
79
79
|
rubyforge_project:
|
80
|
-
rubygems_version: 2.
|
80
|
+
rubygems_version: 2.6.6
|
81
81
|
signing_key:
|
82
82
|
specification_version: 4
|
83
83
|
summary: A Bytecode compiler for the Rubinius language platform.
|
84
84
|
test_files: []
|
85
|
+
has_rdoc:
|