ikra 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/ast/builder.rb +225 -77
- data/lib/ast/host_section_builder.rb +38 -0
- data/lib/ast/interpreter.rb +67 -0
- data/lib/ast/lexical_variables_enumerator.rb +3 -2
- data/lib/ast/nodes.rb +521 -31
- data/lib/ast/printer.rb +116 -18
- data/lib/ast/ssa_generator.rb +192 -0
- data/lib/ast/visitor.rb +235 -21
- data/lib/config/configuration.rb +28 -3
- data/lib/config/os_configuration.rb +62 -9
- data/lib/cpu/cpu_implementation.rb +39 -0
- data/lib/ikra.rb +13 -3
- data/lib/resources/cuda/allocate_device_memory.cpp +5 -0
- data/lib/resources/cuda/allocate_host_memory.cpp +1 -0
- data/lib/resources/cuda/allocate_memcpy_environment_to_device.cpp +11 -0
- data/lib/resources/cuda/ast/assignment.cpp +1 -0
- data/lib/resources/cuda/block_function_head.cpp +7 -1
- data/lib/resources/cuda/entry_point.cpp +47 -0
- data/lib/resources/cuda/env_builder_copy_array.cpp +8 -2
- data/lib/resources/cuda/free_device_memory.cpp +3 -0
- data/lib/resources/cuda/free_memory_for_command.cpp +24 -0
- data/lib/resources/cuda/header.cpp +23 -9
- data/lib/resources/cuda/header_structs.cpp +92 -0
- data/lib/resources/cuda/host_section_block_function_head.cpp +12 -0
- data/lib/resources/cuda/host_section_entry_point.cpp +55 -0
- data/lib/resources/cuda/host_section_free_device_memory.cpp +18 -0
- data/lib/resources/cuda/host_section_launch_parallel_section.cpp +14 -0
- data/lib/resources/cuda/host_section_malloc_memcpy_device_to_host.cpp +10 -0
- data/lib/resources/cuda/kernel.cpp +9 -2
- data/lib/resources/cuda/launch_kernel.cpp +5 -0
- data/lib/resources/cuda/memcpy_device_to_host.cpp +3 -0
- data/lib/resources/cuda/memcpy_device_to_host_expr.cpp +10 -0
- data/lib/resources/cuda/reduce_body.cpp +88 -0
- data/lib/resources/cuda/stencil_array_reconstruction.cpp +2 -0
- data/lib/resources/cuda/stencil_body.cpp +16 -0
- data/lib/resources/cuda/struct_definition.cpp +4 -0
- data/lib/ruby_core/array.rb +34 -0
- data/lib/ruby_core/array_command.rb +313 -0
- data/lib/ruby_core/core.rb +103 -0
- data/lib/ruby_core/interpreter.rb +16 -0
- data/lib/ruby_core/math.rb +32 -0
- data/lib/ruby_core/ruby_integration.rb +256 -0
- data/lib/symbolic/host_section.rb +115 -0
- data/lib/symbolic/input.rb +87 -0
- data/lib/symbolic/input_visitor.rb +68 -0
- data/lib/symbolic/symbolic.rb +793 -117
- data/lib/symbolic/visitor.rb +70 -8
- data/lib/translator/array_command_struct_builder.rb +163 -0
- data/lib/translator/ast_translator.rb +572 -0
- data/lib/translator/block_translator.rb +104 -48
- data/lib/translator/commands/array_combine_command.rb +41 -0
- data/lib/translator/commands/array_identity_command.rb +28 -0
- data/lib/translator/commands/array_index_command.rb +52 -0
- data/lib/translator/commands/array_reduce_command.rb +135 -0
- data/lib/translator/commands/array_stencil_command.rb +129 -0
- data/lib/translator/commands/array_zip_command.rb +30 -0
- data/lib/translator/commands/command_translator.rb +264 -0
- data/lib/translator/cuda_errors.rb +32 -0
- data/lib/translator/environment_builder.rb +263 -0
- data/lib/translator/host_section/array_host_section_command.rb +150 -0
- data/lib/translator/host_section/array_in_host_section_command.rb +41 -0
- data/lib/translator/host_section/ast_translator.rb +14 -0
- data/lib/translator/host_section/parallel_section_invocation_visitor.rb +20 -0
- data/lib/translator/host_section/program_builder.rb +89 -0
- data/lib/translator/input_translator.rb +226 -0
- data/lib/translator/kernel_builder.rb +137 -0
- data/lib/translator/kernel_launcher/for_loop_kernel_launcher.rb +40 -0
- data/lib/translator/kernel_launcher/kernel_launcher.rb +259 -0
- data/lib/translator/kernel_launcher/while_loop_kernel_launcher.rb +38 -0
- data/lib/translator/last_returns_visitor.rb +19 -10
- data/lib/translator/program_builder.rb +197 -0
- data/lib/translator/program_launcher.rb +273 -0
- data/lib/translator/struct_type.rb +55 -0
- data/lib/translator/translator.rb +34 -11
- data/lib/translator/variable_classifier_visitor.rb +56 -0
- data/lib/types/inference/ast_inference.rb +586 -0
- data/lib/types/inference/clear_types_visitor.rb +11 -0
- data/lib/types/inference/command_inference.rb +101 -0
- data/lib/types/inference/input_inference.rb +62 -0
- data/lib/types/{object_tracer.rb → inference/object_tracer.rb} +5 -6
- data/lib/types/inference/ruby_extension.rb +35 -0
- data/lib/types/inference/symbol_table.rb +131 -0
- data/lib/types/types.rb +14 -0
- data/lib/types/types/array_command_type.rb +123 -0
- data/lib/types/types/array_type.rb +137 -0
- data/lib/types/{class_type.rb → types/class_type.rb} +42 -18
- data/lib/types/{primitive_type.rb → types/primitive_type.rb} +20 -7
- data/lib/types/types/ruby_type.rb +88 -0
- data/lib/types/types/struct_type.rb +179 -0
- data/lib/types/types/union_type.rb +239 -0
- metadata +160 -18
- data/lib/ast/method_definition.rb +0 -37
- data/lib/ast/translator.rb +0 -264
- data/lib/resources/cuda/kernel_launcher.cpp +0 -28
- data/lib/scope.rb +0 -166
- data/lib/translator/command_translator.rb +0 -421
- data/lib/translator/local_variables_enumerator.rb +0 -35
- data/lib/translator/method_translator.rb +0 -24
- data/lib/types/array_type.rb +0 -51
- data/lib/types/ruby_extension.rb +0 -67
- data/lib/types/ruby_type.rb +0 -45
- data/lib/types/type_inference.rb +0 -382
- data/lib/types/union_type.rb +0 -155
@@ -0,0 +1,239 @@
|
|
1
|
+
# No explicit `require`s. This file should be includes via types.rb
|
2
|
+
|
3
|
+
require "forwardable"
|
4
|
+
require "set"
|
5
|
+
|
6
|
+
module Ikra
|
7
|
+
module Types
|
8
|
+
|
9
|
+
# Represents a possibly polymorphic type consisting of 0..* instances of {RubyType}. Only
|
10
|
+
# primitive types or class types are allowed for these inner types, but not union types.
|
11
|
+
class UnionType
|
12
|
+
include RubyType
|
13
|
+
include Enumerable
|
14
|
+
extend Forwardable
|
15
|
+
|
16
|
+
def_delegator :@types, :each
|
17
|
+
|
18
|
+
# @return [Set<RubyType>] Inner types
|
19
|
+
attr_accessor :types
|
20
|
+
|
21
|
+
def ==(other)
|
22
|
+
return other.class == self.class && other.types == self.types
|
23
|
+
end
|
24
|
+
|
25
|
+
def dup
|
26
|
+
result = super
|
27
|
+
result.types = @types.dup
|
28
|
+
return result
|
29
|
+
end
|
30
|
+
|
31
|
+
def initialize(*types)
|
32
|
+
# Check arguments
|
33
|
+
types.each do |type|
|
34
|
+
if type.is_union_type?
|
35
|
+
raise AssertionError.new(
|
36
|
+
"Union type not allowed as inner type of union type")
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
@types = Set.new(types)
|
41
|
+
end
|
42
|
+
|
43
|
+
def empty?
|
44
|
+
return @types.empty?
|
45
|
+
end
|
46
|
+
|
47
|
+
# Removes all type information.
|
48
|
+
def clear!
|
49
|
+
@types.clear
|
50
|
+
end
|
51
|
+
|
52
|
+
# Removes all singleton types contained in `union_type` from this type.
|
53
|
+
def remove!(union_type)
|
54
|
+
if union_type.is_singleton?
|
55
|
+
raise AssertionError.new("Union type expected")
|
56
|
+
else
|
57
|
+
@types.delete_if do |type|
|
58
|
+
union_type.include?(type)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def size
|
64
|
+
return @types.size
|
65
|
+
end
|
66
|
+
|
67
|
+
def to_c_type
|
68
|
+
if is_singleton?
|
69
|
+
return @types.first.to_c_type
|
70
|
+
else
|
71
|
+
return "union_t"
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
def c_size
|
76
|
+
if is_singleton?
|
77
|
+
return @types.first.c_size
|
78
|
+
else
|
79
|
+
return "sizeof(union_t)"
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
def to_ruby_type
|
84
|
+
if is_singleton?
|
85
|
+
return @types.first.to_ruby_type
|
86
|
+
else
|
87
|
+
raise NotImplementedError.new
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
def to_ffi_type
|
92
|
+
if is_singleton?
|
93
|
+
return @types.first.to_ffi_type
|
94
|
+
else
|
95
|
+
raise NotImplementedError.new
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
def is_primitive?
|
100
|
+
if is_singleton?
|
101
|
+
return @types.first.is_primitive?
|
102
|
+
else
|
103
|
+
return false
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
def is_union_type?
|
108
|
+
return true
|
109
|
+
end
|
110
|
+
|
111
|
+
def to_union_type
|
112
|
+
return self
|
113
|
+
end
|
114
|
+
|
115
|
+
def is_singleton?
|
116
|
+
return @types.size == 1
|
117
|
+
end
|
118
|
+
|
119
|
+
# Returns the single inner type or raises an error if this union type contains more than one inner type.
|
120
|
+
# @return [RubyType] Inner type
|
121
|
+
def singleton_type
|
122
|
+
if !is_singleton?
|
123
|
+
raise AssertionError.new(
|
124
|
+
"Union type is not singleton (found #{@types.size} types)")
|
125
|
+
end
|
126
|
+
|
127
|
+
return @types.first
|
128
|
+
end
|
129
|
+
|
130
|
+
# Merges all inner types of the argument into this union type.
|
131
|
+
# @param [UnionType] union_type The other union type
|
132
|
+
# @return [Bool] true if the argument added new inner types to this union type
|
133
|
+
def expand(union_type)
|
134
|
+
if not union_type.is_union_type?
|
135
|
+
raise AssertionError.new(
|
136
|
+
"Cannot expand with non-union type: #{union_type}")
|
137
|
+
end
|
138
|
+
|
139
|
+
is_expanded = false
|
140
|
+
|
141
|
+
for type in union_type
|
142
|
+
is_expanded = is_expanded | add(type)
|
143
|
+
end
|
144
|
+
|
145
|
+
return is_expanded
|
146
|
+
end
|
147
|
+
|
148
|
+
# Merges all inner types of the argument into this union type.
|
149
|
+
# @param [UnionType] union_type The other union type
|
150
|
+
# @return [UnionType] self
|
151
|
+
def expand_return_type(union_type)
|
152
|
+
expand(union_type)
|
153
|
+
return self
|
154
|
+
end
|
155
|
+
|
156
|
+
# Adds a singleton type to this union type.
|
157
|
+
# @return True if the type was extended
|
158
|
+
def add(singleton_type)
|
159
|
+
if singleton_type.is_union_type?
|
160
|
+
raise AssertionError.new("Singleton type expected")
|
161
|
+
end
|
162
|
+
|
163
|
+
if singleton_type == PrimitiveType::Int && include?(PrimitiveType::Float)
|
164
|
+
# Special rule: Coerce int to float
|
165
|
+
return false
|
166
|
+
elsif singleton_type == PrimitiveType::Float && include?(PrimitiveType::Int)
|
167
|
+
# Special rule: Coerce int to float
|
168
|
+
@types.delete(PrimitiveType::Int)
|
169
|
+
@types.add(singleton_type)
|
170
|
+
return true
|
171
|
+
else
|
172
|
+
is_expanded = !@types.include?(singleton_type)
|
173
|
+
@types.add(singleton_type)
|
174
|
+
return is_expanded
|
175
|
+
end
|
176
|
+
end
|
177
|
+
|
178
|
+
# Determines if this union type contains a specific singleton type.
|
179
|
+
# @param [RubyType] singleton_type The other type
|
180
|
+
# @return [Bool] true if the type is included
|
181
|
+
def include?(singleton_type)
|
182
|
+
if singleton_type.is_union_type?
|
183
|
+
raise AssertionError.new("Union type can never be included in union type")
|
184
|
+
end
|
185
|
+
|
186
|
+
@types.include?(singleton_type)
|
187
|
+
end
|
188
|
+
|
189
|
+
def include_all?(union_type)
|
190
|
+
if not union_type.is_union_type?
|
191
|
+
raise AssertionError.new("Union type expected")
|
192
|
+
end
|
193
|
+
|
194
|
+
return (union_type.types - @types).size == 0
|
195
|
+
end
|
196
|
+
|
197
|
+
# Alias for {#include_all?}
|
198
|
+
def <=(union_type)
|
199
|
+
return union_type.include_all?(self)
|
200
|
+
end
|
201
|
+
|
202
|
+
def to_s
|
203
|
+
return "U{#{@types.to_a.join(", ")}}"
|
204
|
+
end
|
205
|
+
|
206
|
+
class << self
|
207
|
+
def create_int
|
208
|
+
return new(PrimitiveType::Int)
|
209
|
+
end
|
210
|
+
|
211
|
+
def create_float
|
212
|
+
return new(PrimitiveType::Float)
|
213
|
+
end
|
214
|
+
|
215
|
+
def create_bool
|
216
|
+
return new(PrimitiveType::Bool)
|
217
|
+
end
|
218
|
+
|
219
|
+
def create_void
|
220
|
+
return new(PrimitiveType::Void)
|
221
|
+
end
|
222
|
+
|
223
|
+
def create_nil
|
224
|
+
return new(PrimitiveType::Nil)
|
225
|
+
end
|
226
|
+
|
227
|
+
def create_unknown
|
228
|
+
return new(UnknownType::Instance)
|
229
|
+
end
|
230
|
+
|
231
|
+
def parameter_hash_to_s(hash)
|
232
|
+
return hash.map do |name, type|
|
233
|
+
name.to_s + ": " + type.to_s
|
234
|
+
end.join(", ")
|
235
|
+
end
|
236
|
+
end
|
237
|
+
end
|
238
|
+
end
|
239
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ikra
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthias Springer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-04-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ffi
|
@@ -70,6 +70,90 @@ dependencies:
|
|
70
70
|
- - ">="
|
71
71
|
- !ruby/object:Gem::Version
|
72
72
|
version: 0.8.2
|
73
|
+
- !ruby/object:Gem::Dependency
|
74
|
+
name: ruby2ruby
|
75
|
+
requirement: !ruby/object:Gem::Requirement
|
76
|
+
requirements:
|
77
|
+
- - "~>"
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: 1.3.1
|
80
|
+
type: :runtime
|
81
|
+
prerelease: false
|
82
|
+
version_requirements: !ruby/object:Gem::Requirement
|
83
|
+
requirements:
|
84
|
+
- - "~>"
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: 1.3.1
|
87
|
+
- !ruby/object:Gem::Dependency
|
88
|
+
name: sexp_processor
|
89
|
+
requirement: !ruby/object:Gem::Requirement
|
90
|
+
requirements:
|
91
|
+
- - "~>"
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: 3.2.0
|
94
|
+
type: :runtime
|
95
|
+
prerelease: false
|
96
|
+
version_requirements: !ruby/object:Gem::Requirement
|
97
|
+
requirements:
|
98
|
+
- - "~>"
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
version: 3.2.0
|
101
|
+
- !ruby/object:Gem::Dependency
|
102
|
+
name: ruby_parser
|
103
|
+
requirement: !ruby/object:Gem::Requirement
|
104
|
+
requirements:
|
105
|
+
- - "~>"
|
106
|
+
- !ruby/object:Gem::Version
|
107
|
+
version: 2.3.1
|
108
|
+
type: :runtime
|
109
|
+
prerelease: false
|
110
|
+
version_requirements: !ruby/object:Gem::Requirement
|
111
|
+
requirements:
|
112
|
+
- - "~>"
|
113
|
+
- !ruby/object:Gem::Version
|
114
|
+
version: 2.3.1
|
115
|
+
- !ruby/object:Gem::Dependency
|
116
|
+
name: file-tail
|
117
|
+
requirement: !ruby/object:Gem::Requirement
|
118
|
+
requirements:
|
119
|
+
- - "~>"
|
120
|
+
- !ruby/object:Gem::Version
|
121
|
+
version: 1.0.10
|
122
|
+
type: :runtime
|
123
|
+
prerelease: false
|
124
|
+
version_requirements: !ruby/object:Gem::Requirement
|
125
|
+
requirements:
|
126
|
+
- - "~>"
|
127
|
+
- !ruby/object:Gem::Version
|
128
|
+
version: 1.0.10
|
129
|
+
- !ruby/object:Gem::Dependency
|
130
|
+
name: bacon
|
131
|
+
requirement: !ruby/object:Gem::Requirement
|
132
|
+
requirements:
|
133
|
+
- - ">="
|
134
|
+
- !ruby/object:Gem::Version
|
135
|
+
version: '0'
|
136
|
+
type: :development
|
137
|
+
prerelease: false
|
138
|
+
version_requirements: !ruby/object:Gem::Requirement
|
139
|
+
requirements:
|
140
|
+
- - ">="
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
version: '0'
|
143
|
+
- !ruby/object:Gem::Dependency
|
144
|
+
name: pry
|
145
|
+
requirement: !ruby/object:Gem::Requirement
|
146
|
+
requirements:
|
147
|
+
- - ">="
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
version: '0'
|
150
|
+
type: :development
|
151
|
+
prerelease: false
|
152
|
+
version_requirements: !ruby/object:Gem::Requirement
|
153
|
+
requirements:
|
154
|
+
- - ">="
|
155
|
+
- !ruby/object:Gem::Version
|
156
|
+
version: '0'
|
73
157
|
description: GPGPU Accelerator for Array-based Computations
|
74
158
|
email: matthias.springer@acm.org
|
75
159
|
executables: []
|
@@ -77,24 +161,50 @@ extensions: []
|
|
77
161
|
extra_rdoc_files: []
|
78
162
|
files:
|
79
163
|
- lib/ast/builder.rb
|
164
|
+
- lib/ast/host_section_builder.rb
|
165
|
+
- lib/ast/interpreter.rb
|
80
166
|
- lib/ast/lexical_variables_enumerator.rb
|
81
|
-
- lib/ast/method_definition.rb
|
82
167
|
- lib/ast/nodes.rb
|
83
168
|
- lib/ast/printer.rb
|
84
|
-
- lib/ast/
|
169
|
+
- lib/ast/ssa_generator.rb
|
85
170
|
- lib/ast/visitor.rb
|
86
171
|
- lib/config/configuration.rb
|
87
172
|
- lib/config/os_configuration.rb
|
173
|
+
- lib/cpu/cpu_implementation.rb
|
88
174
|
- lib/entity.rb
|
89
175
|
- lib/ikra.rb
|
90
176
|
- lib/parsing.rb
|
177
|
+
- lib/resources/cuda/allocate_device_memory.cpp
|
178
|
+
- lib/resources/cuda/allocate_host_memory.cpp
|
179
|
+
- lib/resources/cuda/allocate_memcpy_environment_to_device.cpp
|
180
|
+
- lib/resources/cuda/ast/assignment.cpp
|
91
181
|
- lib/resources/cuda/block_function_head.cpp
|
182
|
+
- lib/resources/cuda/entry_point.cpp
|
92
183
|
- lib/resources/cuda/env_builder_copy_array.cpp
|
184
|
+
- lib/resources/cuda/free_device_memory.cpp
|
185
|
+
- lib/resources/cuda/free_memory_for_command.cpp
|
93
186
|
- lib/resources/cuda/header.cpp
|
187
|
+
- lib/resources/cuda/header_structs.cpp
|
188
|
+
- lib/resources/cuda/host_section_block_function_head.cpp
|
189
|
+
- lib/resources/cuda/host_section_entry_point.cpp
|
190
|
+
- lib/resources/cuda/host_section_free_device_memory.cpp
|
191
|
+
- lib/resources/cuda/host_section_launch_parallel_section.cpp
|
192
|
+
- lib/resources/cuda/host_section_malloc_memcpy_device_to_host.cpp
|
94
193
|
- lib/resources/cuda/kernel.cpp
|
95
|
-
- lib/resources/cuda/
|
194
|
+
- lib/resources/cuda/launch_kernel.cpp
|
195
|
+
- lib/resources/cuda/memcpy_device_to_host.cpp
|
196
|
+
- lib/resources/cuda/memcpy_device_to_host_expr.cpp
|
197
|
+
- lib/resources/cuda/reduce_body.cpp
|
96
198
|
- lib/resources/cuda/soa_header.cpp
|
97
|
-
- lib/
|
199
|
+
- lib/resources/cuda/stencil_array_reconstruction.cpp
|
200
|
+
- lib/resources/cuda/stencil_body.cpp
|
201
|
+
- lib/resources/cuda/struct_definition.cpp
|
202
|
+
- lib/ruby_core/array.rb
|
203
|
+
- lib/ruby_core/array_command.rb
|
204
|
+
- lib/ruby_core/core.rb
|
205
|
+
- lib/ruby_core/interpreter.rb
|
206
|
+
- lib/ruby_core/math.rb
|
207
|
+
- lib/ruby_core/ruby_integration.rb
|
98
208
|
- lib/sourcify/Gemfile
|
99
209
|
- lib/sourcify/HISTORY.txt
|
100
210
|
- lib/sourcify/LICENSE
|
@@ -277,24 +387,56 @@ files:
|
|
277
387
|
- lib/sourcify/spec/raw_scanner/slash_operator_shared_spec.rb
|
278
388
|
- lib/sourcify/spec/run_build.sh
|
279
389
|
- lib/sourcify/spec/spec_helper.rb
|
390
|
+
- lib/symbolic/host_section.rb
|
391
|
+
- lib/symbolic/input.rb
|
392
|
+
- lib/symbolic/input_visitor.rb
|
280
393
|
- lib/symbolic/symbolic.rb
|
281
394
|
- lib/symbolic/visitor.rb
|
395
|
+
- lib/translator/array_command_struct_builder.rb
|
396
|
+
- lib/translator/ast_translator.rb
|
282
397
|
- lib/translator/block_translator.rb
|
283
|
-
- lib/translator/
|
398
|
+
- lib/translator/commands/array_combine_command.rb
|
399
|
+
- lib/translator/commands/array_identity_command.rb
|
400
|
+
- lib/translator/commands/array_index_command.rb
|
401
|
+
- lib/translator/commands/array_reduce_command.rb
|
402
|
+
- lib/translator/commands/array_stencil_command.rb
|
403
|
+
- lib/translator/commands/array_zip_command.rb
|
404
|
+
- lib/translator/commands/command_translator.rb
|
405
|
+
- lib/translator/cuda_errors.rb
|
406
|
+
- lib/translator/environment_builder.rb
|
407
|
+
- lib/translator/host_section/array_host_section_command.rb
|
408
|
+
- lib/translator/host_section/array_in_host_section_command.rb
|
409
|
+
- lib/translator/host_section/ast_translator.rb
|
410
|
+
- lib/translator/host_section/parallel_section_invocation_visitor.rb
|
411
|
+
- lib/translator/host_section/program_builder.rb
|
412
|
+
- lib/translator/input_translator.rb
|
413
|
+
- lib/translator/kernel_builder.rb
|
414
|
+
- lib/translator/kernel_launcher/for_loop_kernel_launcher.rb
|
415
|
+
- lib/translator/kernel_launcher/kernel_launcher.rb
|
416
|
+
- lib/translator/kernel_launcher/while_loop_kernel_launcher.rb
|
284
417
|
- lib/translator/last_returns_visitor.rb
|
285
|
-
- lib/translator/
|
286
|
-
- lib/translator/
|
418
|
+
- lib/translator/program_builder.rb
|
419
|
+
- lib/translator/program_launcher.rb
|
420
|
+
- lib/translator/struct_type.rb
|
287
421
|
- lib/translator/translator.rb
|
422
|
+
- lib/translator/variable_classifier_visitor.rb
|
288
423
|
- lib/type_aware_array.rb
|
289
|
-
- lib/types/
|
290
|
-
- lib/types/
|
291
|
-
- lib/types/
|
292
|
-
- lib/types/
|
293
|
-
- lib/types/
|
294
|
-
- lib/types/
|
295
|
-
- lib/types/
|
296
|
-
- lib/types/
|
297
|
-
|
424
|
+
- lib/types/inference/ast_inference.rb
|
425
|
+
- lib/types/inference/clear_types_visitor.rb
|
426
|
+
- lib/types/inference/command_inference.rb
|
427
|
+
- lib/types/inference/input_inference.rb
|
428
|
+
- lib/types/inference/object_tracer.rb
|
429
|
+
- lib/types/inference/ruby_extension.rb
|
430
|
+
- lib/types/inference/symbol_table.rb
|
431
|
+
- lib/types/types.rb
|
432
|
+
- lib/types/types/array_command_type.rb
|
433
|
+
- lib/types/types/array_type.rb
|
434
|
+
- lib/types/types/class_type.rb
|
435
|
+
- lib/types/types/primitive_type.rb
|
436
|
+
- lib/types/types/ruby_type.rb
|
437
|
+
- lib/types/types/struct_type.rb
|
438
|
+
- lib/types/types/union_type.rb
|
439
|
+
homepage: https://prg-titech.github.io/ikra-ruby/
|
298
440
|
licenses:
|
299
441
|
- MIT
|
300
442
|
metadata: {}
|