furnace 0.0.2 → 0.0.3

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.
data/furnace.gemspec CHANGED
@@ -8,9 +8,9 @@ Gem::Specification.new do |s|
8
8
  s.authors = ["Peter Zotov"]
9
9
  s.email = ["whitequark@whitequark.org"]
10
10
  s.homepage = "http://github.com/whitequark/furnace"
11
- s.summary = %q{A static Ruby compiler}
12
- s.description = %q{Furnace aims to compile Ruby code into small static } <<
13
- %q{executables by restricting its metaprogramming features.}
11
+ s.summary = %q{A static code analysis framework}
12
+ s.description = %q{Furnace is a static code analysis framework for dynamic languages, } <<
13
+ %q{aimed at efficient type and behavior inference.}
14
14
 
15
15
  s.files = `git ls-files`.split("\n")
16
16
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
data/lib/furnace/ast.rb CHANGED
@@ -1,3 +1,5 @@
1
+ require "furnace/base"
2
+
1
3
  require "furnace/ast/node"
2
4
  require "furnace/ast/symbolic_node"
3
5
  require "furnace/ast/visitor"
@@ -0,0 +1,5 @@
1
+ module Furnace
2
+ end
3
+
4
+ require 'furnace/version'
5
+
data/lib/furnace/cfg.rb CHANGED
@@ -1,5 +1,7 @@
1
1
  require "set"
2
2
 
3
+ require "furnace/base"
4
+
3
5
  require "furnace/cfg/edge"
4
6
  require "furnace/cfg/graph"
5
7
  require "furnace/cfg/node"
@@ -1,30 +1,30 @@
1
- module Furnace
2
- class Graphviz
3
- def initialize
4
- @code = "digraph {\n"
5
- @code << "node [labeljust=l,nojustify=true,fontname=monospace];"
6
- @code << "rankdir=TB;"
1
+ require 'furnace/base'
7
2
 
8
- yield self
3
+ module Furnace::Graphviz
4
+ def initialize
5
+ @code = "digraph {\n"
6
+ @code << "node [labeljust=l,nojustify=true,fontname=monospace];"
7
+ @code << "rankdir=TB;"
9
8
 
10
- @code << "}"
11
- end
9
+ yield self
12
10
 
13
- def node(name, content)
14
- content.gsub!("&", "&amp;")
15
- content.gsub!(">", "&gt;")
16
- content.gsub!("<", "&lt;")
17
- content = content.lines.map { |l| %Q{<tr><td align="left">#{l}</td></tr>} }.join
11
+ @code << "}"
12
+ end
13
+
14
+ def node(name, content)
15
+ content.gsub!("&", "&amp;")
16
+ content.gsub!(">", "&gt;")
17
+ content.gsub!("<", "&lt;")
18
+ content = content.lines.map { |l| %Q{<tr><td align="left">#{l}</td></tr>} }.join
18
19
 
19
- @code << %Q{#{name.inspect} [shape=box,label=<<table border="0">#{content}</table>>];\n}
20
- end
20
+ @code << %Q{#{name.inspect} [shape=box,label=<<table border="0">#{content}</table>>];\n}
21
+ end
21
22
 
22
- def edge(from, to, label="")
23
- @code << %Q{#{from.inspect} -> #{to.inspect} [label=#{label.inspect}];\n}
24
- end
23
+ def edge(from, to, label="")
24
+ @code << %Q{#{from.inspect} -> #{to.inspect} [label=#{label.inspect}];\n}
25
+ end
25
26
 
26
- def to_s
27
- @code
28
- end
27
+ def to_s
28
+ @code
29
29
  end
30
30
  end
@@ -1,3 +1,3 @@
1
1
  module Furnace
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: furnace
3
3
  version: !ruby/object:Gem::Version
4
- hash: 988111682
4
+ hash: 148493004
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 2
10
- version: 0.0.2
9
+ - 3
10
+ version: 0.0.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Peter Zotov
@@ -18,7 +18,7 @@ cert_chain: []
18
18
  date: 2012-01-26 00:00:00 Z
19
19
  dependencies: []
20
20
 
21
- description: Furnace aims to compile Ruby code into small static executables by restricting its metaprogramming features.
21
+ description: Furnace is a static code analysis framework for dynamic languages, aimed at efficient type and behavior inference.
22
22
  email:
23
23
  - whitequark@whitequark.org
24
24
  executables:
@@ -48,6 +48,7 @@ files:
48
48
  - lib/furnace/ast/node.rb
49
49
  - lib/furnace/ast/symbolic_node.rb
50
50
  - lib/furnace/ast/visitor.rb
51
+ - lib/furnace/base.rb
51
52
  - lib/furnace/cfg.rb
52
53
  - lib/furnace/cfg/edge.rb
53
54
  - lib/furnace/cfg/graph.rb
@@ -95,6 +96,6 @@ rubyforge_project:
95
96
  rubygems_version: 1.8.12
96
97
  signing_key:
97
98
  specification_version: 3
98
- summary: A static Ruby compiler
99
+ summary: A static code analysis framework
99
100
  test_files: []
100
101