rubinius-compiler 2.1.1 → 2.2.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5ce7bfe87d566ab6ce14b3394c0f73c684ec7296
4
- data.tar.gz: 2d164dc5242d6c385ea3d0b156c37c77d545b387
3
+ metadata.gz: 8dd9fd0e49db22c941646e4853543e677fb23114
4
+ data.tar.gz: a4c1802c05c7db3f7eed86823149defbdcb54c42
5
5
  SHA512:
6
- metadata.gz: 95d55cdba119ed0403f6f5b8cbfacabbdfe14f17f0a04fcac1edf130335d125a52c7b2829199f35c9a3e9490c901d557a185584816352d0e0f71d88783a240b6
7
- data.tar.gz: 54f4932a5a13faf06119fd393fa5e63b5f625e3a17da25410bd3e37eb14ef57efbe36e3f34c38b5c3d2c0a51afd60f51812e81bcb7fe07799e3347e25a514082
6
+ metadata.gz: 04322de0c555568a219143b19c0d4e202dc5ab975c7cc066242f28e925097eab8afaabb79d676ceaa5fd45bcab311210f75eb4409dcc8ae1d669a466cd5aca11
7
+ data.tar.gz: d0f84e7cca7a0c0835028ad44d14febc074f687816888a47d3dc3ffa37510f8f13749b02da5d20904ea162123695ff87443460d5718f1e78f030b55c4de989c6
@@ -8,4 +8,3 @@ require "rubinius/compiler/opcodes"
8
8
  require "rubinius/compiler/compiled_file"
9
9
  require "rubinius/compiler/evaluator"
10
10
  require "rubinius/compiler/printers"
11
- require "rubinius/compiler/runtime"
@@ -1,6 +1,6 @@
1
1
  # -*- encoding: ascii-8bit -*-
2
2
 
3
- module Rubinius::ToolSets.current::ToolSet
3
+ module CodeTools
4
4
  ##
5
5
  # A decode for the .rbc file format.
6
6
 
@@ -318,6 +318,8 @@ module Rubinius::ToolSets.current::ToolSet
318
318
  str.append marshal(val.post_args)
319
319
  str.append marshal(val.total_args)
320
320
  str.append marshal(val.splat)
321
+ str.append marshal(val.keywords)
322
+ str.append marshal(val.arity)
321
323
  str.append marshal(val.literals)
322
324
  str.append marshal(val.lines)
323
325
  str.append marshal(val.file)
@@ -1,6 +1,6 @@
1
1
  # -*- encoding: us-ascii -*-
2
2
 
3
- module Rubinius::ToolSets.current::ToolSet
3
+ module CodeTools
4
4
 
5
5
  class CompileError < RuntimeError
6
6
  end
@@ -3,7 +3,7 @@
3
3
  ##
4
4
  # Used for the Rubinius::asm Compiler hook.
5
5
 
6
- module Rubinius::ToolSets.current::ToolSet
6
+ module CodeTools
7
7
  module AST
8
8
  class Node
9
9
  end
@@ -298,7 +298,7 @@ module Rubinius::ToolSets.current::ToolSet
298
298
  end
299
299
  end
300
300
 
301
- class ActualArguments < Node
301
+ class Arguments < Node
302
302
  def execute(e)
303
303
  array = @array.map { |x| x.execute(e) }
304
304
  array << @splat.execute if @splat.kind_of? SplatValue
@@ -1,6 +1,6 @@
1
1
  # -*- encoding: us-ascii -*-
2
2
 
3
- module Rubinius::ToolSets.current::ToolSet
3
+ module CodeTools
4
4
  class Generator
5
5
  include GeneratorMethods
6
6
 
@@ -261,6 +261,7 @@ module Rubinius::ToolSets.current::ToolSet
261
261
  @required_args = 0
262
262
  @post_args = 0
263
263
  @total_args = 0
264
+ @arity = 0
264
265
 
265
266
  @detected_args = 0
266
267
  @detected_locals = 0
@@ -268,6 +269,7 @@ module Rubinius::ToolSets.current::ToolSet
268
269
  @splat_index = nil
269
270
  @local_names = nil
270
271
  @block_index = nil
272
+ @keywords = nil
271
273
  @local_count = 0
272
274
 
273
275
  @state = []
@@ -285,7 +287,7 @@ module Rubinius::ToolSets.current::ToolSet
285
287
  :required_args, :post_args, :total_args, :splat_index,
286
288
  :local_count, :local_names, :primitive, :for_block, :for_module_body,
287
289
  :current_block, :detected_args, :detected_locals,
288
- :block_index
290
+ :block_index, :arity, :keywords
289
291
 
290
292
  def execute(node)
291
293
  node.bytecode self
@@ -324,8 +326,10 @@ module Rubinius::ToolSets.current::ToolSet
324
326
  code.total_args = @total_args
325
327
  code.splat = @splat_index
326
328
  code.block_index = @block_index
329
+ code.arity = @arity
327
330
  code.local_count = @local_count
328
331
  code.local_names = @local_names.to_tuple if @local_names
332
+ code.keywords = @keywords.to_tuple if @keywords
329
333
 
330
334
  code.stack_size = max_stack_size
331
335
  code.file = @file
@@ -1,6 +1,6 @@
1
1
  # *** This file is generated by InstructionParser ***
2
2
 
3
- module Rubinius::ToolSets.current::ToolSet
3
+ module CodeTools
4
4
  module GeneratorMethods
5
5
  def noop
6
6
  @stream << 0
@@ -1,6 +1,6 @@
1
1
  # -*- encoding: us-ascii -*-
2
2
 
3
- module Rubinius::ToolSets.current::ToolSet
3
+ module CodeTools
4
4
  class Compiler
5
5
  module LocalVariables
6
6
  def variables
@@ -1,6 +1,6 @@
1
1
  # -*- encoding: us-ascii -*-
2
2
 
3
- module Rubinius::ToolSets.current::ToolSet
3
+ module CodeTools
4
4
  class Compiler
5
5
  class Printer < Stage
6
6
  def initialize
@@ -1,6 +1,6 @@
1
1
  # -*- encoding: us-ascii -*-
2
2
 
3
- module Rubinius::ToolSets.current::ToolSet
3
+ module CodeTools
4
4
  class Compiler
5
5
  Stages = { }
6
6
 
@@ -134,7 +134,7 @@ module Rubinius::ToolSets.current::ToolSet
134
134
  end
135
135
 
136
136
  # AST -> symbolic bytecode
137
- class Generator < Stage
137
+ class Bytecode < Stage
138
138
  stage :bytecode
139
139
  next_stage Encoder
140
140
 
@@ -144,7 +144,7 @@ module Rubinius::ToolSets.current::ToolSet
144
144
  super
145
145
  @variable_scope = nil
146
146
  compiler.generator = self
147
- @processor = ToolSet::Generator
147
+ @processor = Generator
148
148
  end
149
149
 
150
150
  def run
@@ -214,7 +214,7 @@ module Rubinius::ToolSets.current::ToolSet
214
214
  # source file -> AST
215
215
  class FileParser < Parser
216
216
  stage :file
217
- next_stage Generator
217
+ next_stage Bytecode
218
218
 
219
219
  def input(file, line=1)
220
220
  @file = file
@@ -229,7 +229,7 @@ module Rubinius::ToolSets.current::ToolSet
229
229
  # source string -> AST
230
230
  class StringParser < Parser
231
231
  stage :string
232
- next_stage Generator
232
+ next_stage Bytecode
233
233
 
234
234
  def input(string, name="(eval)", line=1)
235
235
  @input = string
@@ -244,7 +244,7 @@ module Rubinius::ToolSets.current::ToolSet
244
244
 
245
245
  class EvalParser < StringParser
246
246
  stage :eval
247
- next_stage Generator
247
+ next_stage Bytecode
248
248
 
249
249
  def should_cache?
250
250
  @output.should_cache?
@@ -1,5 +1,5 @@
1
- module Rubinius::ToolSets.current::ToolSet
1
+ module CodeTools
2
2
  class Compiler
3
- VERSION = "2.1.1"
3
+ VERSION = "2.2.0"
4
4
  end
5
5
  end
@@ -1,10 +1,9 @@
1
1
  # coding: utf-8
2
- require 'rubinius/toolset'
3
2
  require './lib/rubinius/compiler/version'
4
3
 
5
4
  Gem::Specification.new do |spec|
6
5
  spec.name = "rubinius-compiler"
7
- spec.version = Rubinius::ToolSets.current::ToolSet::Compiler::VERSION
6
+ spec.version = CodeTools::Compiler::VERSION
8
7
  spec.authors = ["Brian Shirai"]
9
8
  spec.email = ["brixen@gmail.com"]
10
9
  spec.description = %q{Rubinius bytecode compiler.}
@@ -20,7 +19,6 @@ Gem::Specification.new do |spec|
20
19
  spec.add_development_dependency "bundler", "~> 1.3"
21
20
  spec.add_development_dependency "rake", "~> 10.0"
22
21
  spec.add_development_dependency "mspec", "~> 1.5"
23
- spec.add_development_dependency "rubinius-toolset", "~> 2.2"
24
22
  spec.add_development_dependency "rubinius-processor", "~> 2.0"
25
23
  spec.add_development_dependency "rubinius-ast", "~> 2.0"
26
24
  spec.add_development_dependency "rubinius-bridge", "~> 1.0"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubinius-compiler
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.1
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Shirai
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-28 00:00:00.000000000 Z
11
+ date: 2014-06-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,20 +52,6 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.5'
55
- - !ruby/object:Gem::Dependency
56
- name: rubinius-toolset
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '2.2'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '2.2'
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: rubinius-processor
71
57
  requirement: !ruby/object:Gem::Requirement
@@ -145,7 +131,6 @@ files:
145
131
  - lib/rubinius/compiler/locals.rb
146
132
  - lib/rubinius/compiler/opcodes.rb
147
133
  - lib/rubinius/compiler/printers.rb
148
- - lib/rubinius/compiler/runtime.rb
149
134
  - lib/rubinius/compiler/stages.rb
150
135
  - lib/rubinius/compiler/version.rb
151
136
  - rubinius-compiler.gemspec
@@ -1,72 +0,0 @@
1
- # -*- encoding: us-ascii -*-
2
-
3
- module Rubinius::ToolSets.current::ToolSet
4
- module Compiler::Runtime
5
- def self.matches_when(array, receiver)
6
- array.each { |x| return true if x === receiver }
7
- false
8
- end
9
-
10
- def self.unwrap_block_arg(arg)
11
- if arg.size == 1
12
- elem = arg.at(0)
13
- return elem if elem.kind_of?(Array)
14
- end
15
-
16
- arg
17
- end
18
-
19
- def self.find_constant_for_op_asign_or(name, scope)
20
- name = Rubinius::Type.coerce_to_constant_name name
21
-
22
- current, constant = scope.module, undefined
23
-
24
- while current
25
- if entry = current.constant_table.lookup(name)
26
- constant = entry.constant
27
- constant = constant.call if constant.kind_of?(Autoload)
28
- return constant
29
- end
30
-
31
- current = current.direct_superclass
32
- end
33
-
34
- if instance_of?(Module)
35
- if entry = Object.constant_table.lookup(name)
36
- constant = entry.constant
37
- constant = constant.call if constant.kind_of?(Autoload)
38
- return constant
39
- end
40
- end
41
-
42
- nil
43
- end
44
-
45
- def self.get_flip_flop(scope, index)
46
- scope.flip_flops ||= {}
47
- scope.flip_flops[index]
48
- end
49
-
50
- def self.set_flip_flop(scope, index, value)
51
- scope.flip_flops ||= {}
52
- scope.flip_flops[index] = value
53
- end
54
-
55
- def self.rbx_marshal_constant
56
- name
57
- end
58
-
59
- def self.get_encoding(name)
60
- if defined?(Encoding)
61
- Encoding.find name
62
- else
63
- name
64
- end
65
- end
66
-
67
- def self.pre_exe
68
- yield
69
- end
70
- end
71
- end
72
-