heist 0.3.2 → 0.3.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/History.txt +12 -0
- data/{README.txt → README.rdoc} +131 -148
- data/bin/heist +35 -10
- data/lib/heist.rb +3 -3
- data/lib/heist/builtin/compiled_library.rb +1 -0
- data/lib/heist/builtin/lib/character.scm +74 -0
- data/lib/heist/builtin/lib/list.scm +149 -0
- data/lib/heist/builtin/lib/logic.scm +17 -0
- data/lib/heist/builtin/lib/numeric.scm +184 -0
- data/lib/heist/builtin/lib/string.scm +117 -0
- data/lib/heist/builtin/lib/util.scm +18 -0
- data/lib/heist/builtin/lib/vector.scm +27 -0
- data/lib/{builtin → heist/builtin}/primitives.rb +0 -0
- data/lib/{builtin → heist/builtin}/syntax.scm +52 -52
- data/lib/{parser → heist/parser}/nodes.rb +0 -0
- data/lib/{parser → heist/parser}/ruby.rb +0 -0
- data/lib/{parser → heist/parser}/scheme.rb +0 -0
- data/lib/{parser → heist/parser}/scheme.tt +0 -0
- data/lib/{repl.rb → heist/repl.rb} +0 -0
- data/lib/{runtime → heist/runtime}/binding.rb +5 -0
- data/lib/{runtime → heist/runtime}/callable/continuation.rb +6 -1
- data/lib/{runtime → heist/runtime}/callable/function.rb +0 -0
- data/lib/{runtime → heist/runtime}/callable/macro.rb +1 -1
- data/lib/{runtime → heist/runtime}/callable/macro/expansion.rb +0 -0
- data/lib/{runtime → heist/runtime}/callable/macro/matches.rb +0 -0
- data/lib/{runtime → heist/runtime}/callable/macro/tree.rb +0 -0
- data/lib/{runtime → heist/runtime}/callable/syntax.rb +0 -0
- data/lib/{runtime → heist/runtime}/data/character.rb +0 -0
- data/lib/{runtime → heist/runtime}/data/cons.rb +0 -0
- data/lib/{runtime → heist/runtime}/data/expression.rb +0 -0
- data/lib/{runtime → heist/runtime}/data/identifier.rb +0 -0
- data/lib/heist/runtime/data/value.rb +14 -0
- data/lib/{runtime → heist/runtime}/data/vector.rb +0 -0
- data/lib/{runtime → heist/runtime}/frame.rb +3 -0
- data/lib/{runtime → heist/runtime}/runtime.rb +2 -2
- data/lib/{runtime → heist/runtime}/scope.rb +0 -0
- data/lib/{runtime → heist/runtime}/stack.rb +0 -0
- data/lib/{runtime → heist/runtime}/stackless.rb +0 -0
- data/lib/{stdlib → heist/stdlib}/benchmark.scm +0 -0
- data/lib/{stdlib → heist/stdlib}/birdhouse.scm +0 -0
- data/lib/{trie.rb → heist/trie.rb} +0 -0
- data/spec/heist_spec.rb +88 -0
- data/{test → spec}/helpers/lib.scm +0 -0
- data/{test → spec}/helpers/macro-helpers.scm +0 -0
- data/{test → spec}/helpers/vars.scm +0 -0
- data/{test → spec}/plt-macros.txt +0 -0
- data/{test → spec}/scheme_tests/arithmetic.scm +0 -0
- data/{test → spec}/scheme_tests/benchmarks.scm +0 -0
- data/{test → spec}/scheme_tests/booleans.scm +0 -0
- data/{test → spec}/scheme_tests/closures.scm +0 -0
- data/{test → spec}/scheme_tests/conditionals.scm +0 -0
- data/{test → spec}/scheme_tests/continuations.scm +14 -1
- data/{test → spec}/scheme_tests/define_functions.scm +0 -0
- data/{test → spec}/scheme_tests/define_values.scm +0 -0
- data/{test → spec}/scheme_tests/delay.scm +0 -0
- data/{test → spec}/scheme_tests/equivalence.scm +0 -0
- data/{test → spec}/scheme_tests/file_loading.scm +0 -0
- data/{test → spec}/scheme_tests/functional.scm +3 -0
- data/{test → spec}/scheme_tests/hygienic.scm +0 -0
- data/{test → spec}/scheme_tests/let.scm +0 -0
- data/{test → spec}/scheme_tests/lists.scm +0 -0
- data/{test → spec}/scheme_tests/macros.scm +0 -0
- data/{test → spec}/scheme_tests/numbers.scm +0 -0
- data/{test → spec}/scheme_tests/protection.scm +0 -0
- data/spec/scheme_tests/quoting.scm +14 -0
- data/{test → spec}/scheme_tests/strings.scm +0 -0
- data/{test → spec}/scheme_tests/unhygienic.scm +0 -0
- data/{test → spec}/scheme_tests/vectors.scm +0 -0
- data/spec/spec_helper.rb +4 -0
- metadata +98 -113
- data/Manifest.txt +0 -64
- data/Rakefile +0 -43
- data/lib/bin_spec.rb +0 -25
- data/lib/builtin/library.rb +0 -1
- data/lib/builtin/library.scm +0 -605
- data/test/test_heist.rb +0 -148
@@ -19,7 +19,7 @@ module Heist
|
|
19
19
|
class Runtime
|
20
20
|
|
21
21
|
%w[ data/expression data/identifier data/character
|
22
|
-
data/cons data/vector
|
22
|
+
data/cons data/vector data/value
|
23
23
|
callable/function callable/syntax callable/macro callable/continuation
|
24
24
|
frame stack stackless
|
25
25
|
scope binding
|
@@ -33,7 +33,7 @@ module Heist
|
|
33
33
|
|
34
34
|
attr_accessor :stack, :top_level, :user_scope
|
35
35
|
|
36
|
-
BUILTIN_LIBRARIES = %w[primitives syntax
|
36
|
+
BUILTIN_LIBRARIES = %w[primitives syntax compiled_library]
|
37
37
|
|
38
38
|
# A +Runtime+ is initialized using a set of options. The available
|
39
39
|
# options include the following, all of which are +false+ unless
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/spec/heist_spec.rb
ADDED
@@ -0,0 +1,88 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Heist do
|
4
|
+
let(:options) { {} }
|
5
|
+
|
6
|
+
before do
|
7
|
+
@runtime = Heist::Runtime.new(options)
|
8
|
+
|
9
|
+
@runtime.define 'assert' do |value|
|
10
|
+
value.should be_true
|
11
|
+
end
|
12
|
+
@runtime.define 'assert-equal' do |expected, actual|
|
13
|
+
actual.should == expected
|
14
|
+
end
|
15
|
+
@runtime.syntax 'assert-raise' do |scope, cells|
|
16
|
+
exception = Heist.const_get(cells.car.to_s)
|
17
|
+
lambda { scope.eval(cells.cdr.car) }.should raise_error(exception)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
dir = File.expand_path('../scheme_tests', __FILE__)
|
22
|
+
|
23
|
+
shared_examples_for "Scheme interpreter" do
|
24
|
+
|
25
|
+
tests = Dir.entries(dir).grep(/\.scm$/) -
|
26
|
+
%w[continuations.scm hygienic.scm unhygienic.scm]
|
27
|
+
|
28
|
+
tests.each do |test|
|
29
|
+
it("runs #{test}") { @runtime.run File.join(dir, test) }
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
shared_examples_for "interpreter with continuations" do
|
34
|
+
it "runs continuations.scm" do
|
35
|
+
@runtime.run File.join(dir, "continuations.scm")
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
shared_examples_for "interpreter with hygienic macros" do
|
40
|
+
it "runs hygienic.scm" do
|
41
|
+
@runtime.run File.join(dir, "hygienic.scm")
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
shared_examples_for "interpreter with unhygienic macros" do
|
46
|
+
it "runs unhygienic.scm" do
|
47
|
+
@runtime.run File.join(dir, "unhygienic.scm")
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
describe "with default options" do
|
52
|
+
it_should_behave_like "Scheme interpreter"
|
53
|
+
it_should_behave_like "interpreter with hygienic macros"
|
54
|
+
end
|
55
|
+
|
56
|
+
describe "with unhygienic macros" do
|
57
|
+
let(:options) { {:unhygienic => true} }
|
58
|
+
it_should_behave_like "Scheme interpreter"
|
59
|
+
it_should_behave_like "interpreter with unhygienic macros"
|
60
|
+
|
61
|
+
describe "with continuations" do
|
62
|
+
let(:options) { {:unhygienic => true, :continuations => true} }
|
63
|
+
it_should_behave_like "Scheme interpreter"
|
64
|
+
it_should_behave_like "interpreter with unhygienic macros"
|
65
|
+
it_should_behave_like "interpreter with continuations"
|
66
|
+
end
|
67
|
+
|
68
|
+
describe "with laziness" do
|
69
|
+
let(:options) { {:unhygienic => true, :lazy => true} }
|
70
|
+
it_should_behave_like "Scheme interpreter"
|
71
|
+
it_should_behave_like "interpreter with unhygienic macros"
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
describe "with continuations" do
|
76
|
+
let(:options) { {:continuations => true} }
|
77
|
+
it_should_behave_like "Scheme interpreter"
|
78
|
+
it_should_behave_like "interpreter with hygienic macros"
|
79
|
+
it_should_behave_like "interpreter with continuations"
|
80
|
+
end
|
81
|
+
|
82
|
+
describe "with laziness" do
|
83
|
+
let(:options) { {:lazy => true} }
|
84
|
+
it_should_behave_like "Scheme interpreter"
|
85
|
+
it_should_behave_like "interpreter with hygienic macros"
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -15,7 +15,7 @@
|
|
15
15
|
; calling a stored continuation aborts the current stack
|
16
16
|
(define called #f)
|
17
17
|
(begin
|
18
|
-
(r
|
18
|
+
(r (+ 2 3))
|
19
19
|
(set! called #t))
|
20
20
|
(assert (not called))
|
21
21
|
|
@@ -36,6 +36,19 @@
|
|
36
36
|
(r 3)
|
37
37
|
(assert-equal 6 value)
|
38
38
|
|
39
|
+
; continuations can be called using (apply)
|
40
|
+
(apply r '(7))
|
41
|
+
(assert-equal 10 value)
|
42
|
+
|
43
|
+
; symbols can be passed back to a (set!) call
|
44
|
+
(set! value (call/cc
|
45
|
+
(lambda (k)
|
46
|
+
(set! r k)
|
47
|
+
'foo)))
|
48
|
+
(assert-equal 'foo value)
|
49
|
+
(r 'bar)
|
50
|
+
(assert-equal 'bar value)
|
51
|
+
|
39
52
|
; expressions after the call/cc are re-evaluated
|
40
53
|
(set! y 2)
|
41
54
|
(set! value (+ 1 (call/cc
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,14 @@
|
|
1
|
+
(assert-equal 7 (+ 3 4))
|
2
|
+
(assert-equal (list '+ 3 4) '(+ 3 4))
|
3
|
+
(assert-equal 7 (+ '3 4))
|
4
|
+
(assert-equal (cons 1 8) '(1 . 8))
|
5
|
+
(assert-equal (cons 1 8) `(1 . 8))
|
6
|
+
(assert-equal (list '+ (list '- 7 9) 4) '(+ (- 7 9) 4))
|
7
|
+
(assert-equal (list 7 9 6) `(7 ,(+ 4 5) 6))
|
8
|
+
(assert-equal (list 3 7 6 2 6 9) `(3 7 6 ,@((lambda () '(2 6))) 9))
|
9
|
+
(assert-equal (list 1 2 10) `(1 2 ,(+ 4 6)))
|
10
|
+
(assert-equal (list 3 2 9 8) `(,(/ 9 3) 2 ,@(list 9 8)))
|
11
|
+
(assert-equal (list 1 2 4 9 8 5) `(,@(list 1 2) 4 ,@(list 9 8) 5))
|
12
|
+
(assert-equal (cons 9 (cons 8 (cons 5 7))) `(,@(list 9 8) 5 . 7))
|
13
|
+
(assert-equal (cons 9 (cons 8 24)) `(,@(list 9 8) . ,(* 4 6)))
|
14
|
+
(assert-equal (list 'quote (list)) ''())
|
File without changes
|
File without changes
|
File without changes
|
data/spec/spec_helper.rb
ADDED
metadata
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: heist
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease:
|
5
|
+
version: 0.3.3
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- James Coglan
|
@@ -9,162 +10,146 @@ autorequire:
|
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
12
|
|
12
|
-
date:
|
13
|
-
default_executable:
|
13
|
+
date: 2011-10-24 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: oyster
|
17
|
-
|
18
|
-
|
19
|
-
|
17
|
+
prerelease: false
|
18
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
19
|
+
none: false
|
20
20
|
requirements:
|
21
21
|
- - ">="
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version: "0"
|
24
|
-
version:
|
25
|
-
- !ruby/object:Gem::Dependency
|
26
|
-
name: treetop
|
23
|
+
version: "0.9"
|
27
24
|
type: :runtime
|
28
|
-
|
29
|
-
version_requirements: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: "0"
|
34
|
-
version:
|
25
|
+
version_requirements: *id001
|
35
26
|
- !ruby/object:Gem::Dependency
|
36
|
-
name:
|
37
|
-
|
38
|
-
|
39
|
-
|
27
|
+
name: treetop
|
28
|
+
prerelease: false
|
29
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
30
|
+
none: false
|
40
31
|
requirements:
|
41
32
|
- - ">="
|
42
33
|
- !ruby/object:Gem::Version
|
43
|
-
version: 2
|
44
|
-
|
34
|
+
version: "1.2"
|
35
|
+
type: :runtime
|
36
|
+
version_requirements: *id002
|
45
37
|
- !ruby/object:Gem::Dependency
|
46
|
-
name:
|
47
|
-
|
48
|
-
|
49
|
-
|
38
|
+
name: rspec
|
39
|
+
prerelease: false
|
40
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
50
42
|
requirements:
|
51
43
|
- - ">="
|
52
44
|
- !ruby/object:Gem::Version
|
53
|
-
version: 0
|
54
|
-
version:
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: hoe
|
45
|
+
version: "0"
|
57
46
|
type: :development
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
- - ">="
|
62
|
-
- !ruby/object:Gem::Version
|
63
|
-
version: 2.5.0
|
64
|
-
version:
|
65
|
-
description: ""
|
66
|
-
email:
|
67
|
-
- jcoglan@googlemail.com
|
47
|
+
version_requirements: *id003
|
48
|
+
description:
|
49
|
+
email: jcoglan@gmail.com
|
68
50
|
executables:
|
69
51
|
- heist
|
70
52
|
extensions: []
|
71
53
|
|
72
54
|
extra_rdoc_files:
|
73
|
-
-
|
74
|
-
- Manifest.txt
|
75
|
-
- README.txt
|
55
|
+
- README.rdoc
|
76
56
|
files:
|
77
57
|
- History.txt
|
78
|
-
-
|
79
|
-
- Rakefile
|
80
|
-
- README.txt
|
58
|
+
- README.rdoc
|
81
59
|
- bin/heist
|
82
|
-
- lib/
|
60
|
+
- lib/heist/trie.rb
|
61
|
+
- lib/heist/parser/scheme.tt
|
62
|
+
- lib/heist/parser/scheme.rb
|
63
|
+
- lib/heist/parser/ruby.rb
|
64
|
+
- lib/heist/parser/nodes.rb
|
65
|
+
- lib/heist/runtime/scope.rb
|
66
|
+
- lib/heist/runtime/binding.rb
|
67
|
+
- lib/heist/runtime/data/cons.rb
|
68
|
+
- lib/heist/runtime/data/character.rb
|
69
|
+
- lib/heist/runtime/data/value.rb
|
70
|
+
- lib/heist/runtime/data/expression.rb
|
71
|
+
- lib/heist/runtime/data/vector.rb
|
72
|
+
- lib/heist/runtime/data/identifier.rb
|
73
|
+
- lib/heist/runtime/stackless.rb
|
74
|
+
- lib/heist/runtime/callable/syntax.rb
|
75
|
+
- lib/heist/runtime/callable/continuation.rb
|
76
|
+
- lib/heist/runtime/callable/macro/tree.rb
|
77
|
+
- lib/heist/runtime/callable/macro/expansion.rb
|
78
|
+
- lib/heist/runtime/callable/macro/matches.rb
|
79
|
+
- lib/heist/runtime/callable/function.rb
|
80
|
+
- lib/heist/runtime/callable/macro.rb
|
81
|
+
- lib/heist/runtime/frame.rb
|
82
|
+
- lib/heist/runtime/stack.rb
|
83
|
+
- lib/heist/runtime/runtime.rb
|
84
|
+
- lib/heist/stdlib/birdhouse.scm
|
85
|
+
- lib/heist/stdlib/benchmark.scm
|
86
|
+
- lib/heist/builtin/syntax.scm
|
87
|
+
- lib/heist/builtin/primitives.rb
|
88
|
+
- lib/heist/builtin/lib/character.scm
|
89
|
+
- lib/heist/builtin/lib/list.scm
|
90
|
+
- lib/heist/builtin/lib/string.scm
|
91
|
+
- lib/heist/builtin/lib/util.scm
|
92
|
+
- lib/heist/builtin/lib/logic.scm
|
93
|
+
- lib/heist/builtin/lib/vector.scm
|
94
|
+
- lib/heist/builtin/lib/numeric.scm
|
95
|
+
- lib/heist/builtin/compiled_library.rb
|
96
|
+
- lib/heist/repl.rb
|
83
97
|
- lib/heist.rb
|
84
|
-
-
|
85
|
-
-
|
86
|
-
-
|
87
|
-
-
|
88
|
-
-
|
89
|
-
-
|
90
|
-
-
|
91
|
-
-
|
92
|
-
-
|
93
|
-
-
|
94
|
-
-
|
95
|
-
-
|
96
|
-
-
|
97
|
-
-
|
98
|
-
-
|
99
|
-
-
|
100
|
-
-
|
101
|
-
-
|
102
|
-
-
|
103
|
-
-
|
104
|
-
-
|
105
|
-
-
|
106
|
-
-
|
107
|
-
-
|
108
|
-
-
|
109
|
-
-
|
110
|
-
-
|
111
|
-
-
|
112
|
-
- lib/stdlib/benchmark.scm
|
113
|
-
- lib/stdlib/birdhouse.scm
|
114
|
-
- test/helpers/lib.scm
|
115
|
-
- test/helpers/macro-helpers.scm
|
116
|
-
- test/helpers/vars.scm
|
117
|
-
- test/scheme_tests/arithmetic.scm
|
118
|
-
- test/scheme_tests/benchmarks.scm
|
119
|
-
- test/scheme_tests/booleans.scm
|
120
|
-
- test/scheme_tests/closures.scm
|
121
|
-
- test/scheme_tests/conditionals.scm
|
122
|
-
- test/scheme_tests/continuations.scm
|
123
|
-
- test/scheme_tests/define_functions.scm
|
124
|
-
- test/scheme_tests/define_values.scm
|
125
|
-
- test/scheme_tests/delay.scm
|
126
|
-
- test/scheme_tests/equivalence.scm
|
127
|
-
- test/scheme_tests/file_loading.scm
|
128
|
-
- test/scheme_tests/functional.scm
|
129
|
-
- test/scheme_tests/hygienic.scm
|
130
|
-
- test/scheme_tests/let.scm
|
131
|
-
- test/scheme_tests/lists.scm
|
132
|
-
- test/scheme_tests/macros.scm
|
133
|
-
- test/scheme_tests/numbers.scm
|
134
|
-
- test/scheme_tests/protection.scm
|
135
|
-
- test/scheme_tests/strings.scm
|
136
|
-
- test/scheme_tests/unhygienic.scm
|
137
|
-
- test/scheme_tests/vectors.scm
|
138
|
-
- test/plt-macros.txt
|
139
|
-
- test/test_heist.rb
|
140
|
-
has_rdoc: true
|
98
|
+
- spec/scheme_tests/arithmetic.scm
|
99
|
+
- spec/scheme_tests/conditionals.scm
|
100
|
+
- spec/scheme_tests/quoting.scm
|
101
|
+
- spec/scheme_tests/strings.scm
|
102
|
+
- spec/scheme_tests/file_loading.scm
|
103
|
+
- spec/scheme_tests/delay.scm
|
104
|
+
- spec/scheme_tests/equivalence.scm
|
105
|
+
- spec/scheme_tests/unhygienic.scm
|
106
|
+
- spec/scheme_tests/macros.scm
|
107
|
+
- spec/scheme_tests/booleans.scm
|
108
|
+
- spec/scheme_tests/benchmarks.scm
|
109
|
+
- spec/scheme_tests/closures.scm
|
110
|
+
- spec/scheme_tests/lists.scm
|
111
|
+
- spec/scheme_tests/hygienic.scm
|
112
|
+
- spec/scheme_tests/define_functions.scm
|
113
|
+
- spec/scheme_tests/functional.scm
|
114
|
+
- spec/scheme_tests/define_values.scm
|
115
|
+
- spec/scheme_tests/vectors.scm
|
116
|
+
- spec/scheme_tests/numbers.scm
|
117
|
+
- spec/scheme_tests/let.scm
|
118
|
+
- spec/scheme_tests/protection.scm
|
119
|
+
- spec/scheme_tests/continuations.scm
|
120
|
+
- spec/heist_spec.rb
|
121
|
+
- spec/plt-macros.txt
|
122
|
+
- spec/spec_helper.rb
|
123
|
+
- spec/helpers/macro-helpers.scm
|
124
|
+
- spec/helpers/vars.scm
|
125
|
+
- spec/helpers/lib.scm
|
141
126
|
homepage: http://github.com/jcoglan/heist
|
142
127
|
licenses: []
|
143
128
|
|
144
129
|
post_install_message:
|
145
130
|
rdoc_options:
|
146
131
|
- --main
|
147
|
-
- README.
|
132
|
+
- README.rdoc
|
148
133
|
require_paths:
|
149
134
|
- lib
|
150
135
|
required_ruby_version: !ruby/object:Gem::Requirement
|
136
|
+
none: false
|
151
137
|
requirements:
|
152
138
|
- - ">="
|
153
139
|
- !ruby/object:Gem::Version
|
154
140
|
version: "0"
|
155
|
-
version:
|
156
141
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
142
|
+
none: false
|
157
143
|
requirements:
|
158
144
|
- - ">="
|
159
145
|
- !ruby/object:Gem::Version
|
160
146
|
version: "0"
|
161
|
-
version:
|
162
147
|
requirements: []
|
163
148
|
|
164
|
-
rubyforge_project:
|
165
|
-
rubygems_version: 1.
|
149
|
+
rubyforge_project:
|
150
|
+
rubygems_version: 1.8.5
|
166
151
|
signing_key:
|
167
152
|
specification_version: 3
|
168
|
-
summary:
|
169
|
-
test_files:
|
170
|
-
|
153
|
+
summary: Scheme in as little Ruby as possible
|
154
|
+
test_files: []
|
155
|
+
|