ytl 0.0.4 → 0.0.5

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/test/breaktest.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  def test0
2
2
  begin
3
- return
3
+ return false
4
4
  ensure
5
5
  p "BAR0"
6
6
  end
@@ -17,7 +17,7 @@ end
17
17
  def test2
18
18
  [1, 2, 3].each do |n|
19
19
  p n
20
- return
20
+ return false
21
21
  end
22
22
  p "bar2"
23
23
  end
@@ -26,7 +26,7 @@ def test3
26
26
  begin
27
27
  [1, 2, 3].each do |n|
28
28
  p n
29
- return
29
+ return false
30
30
  end
31
31
  p "foo3"
32
32
  ensure
@@ -47,13 +47,13 @@ def test4
47
47
  end
48
48
 
49
49
 
50
- test0
50
+ p test0
51
51
 
52
- test1
53
- test2
52
+ p test1
53
+ p test2
54
54
 
55
- test3
56
- test4
55
+ p test3
56
+ p test4
57
57
 
58
58
  =begin
59
59
  # Not support yet
@@ -82,3 +82,17 @@ def test6
82
82
  end
83
83
  end
84
84
  =end
85
+
86
+ def test7
87
+ [1, 2, 3].each do |m|
88
+ [4, 5, 6].each do |n|
89
+ p m
90
+ p n
91
+ return false if n + m == 7
92
+ end
93
+ p "bar7-1"
94
+ end
95
+ p "bar7-2"
96
+ end
97
+
98
+ p test7
data/test/exttest.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  # Please Execute
2
2
  # ruby -I lib lib/ytl.rb -r runtime/type.rb test/exttest.rb
3
+ =begin
3
4
  module YTL
4
5
  class Memory
5
6
  end
@@ -16,6 +17,9 @@ end
16
17
  def id(x)
17
18
  x
18
19
  end
20
+ =end
21
+ include YTLJit
22
+ include YTLJit::AsmType
19
23
 
20
24
  c = YTLJit::Runtime::Arena.new
21
25
  a = YTL::Memory.instance
@@ -23,13 +27,23 @@ a = YTL::Memory.instance
23
27
  b = c.address
24
28
  p b
25
29
  p c
26
- p YTLJit::AsmType::VALUE
27
- p YTLJit::AsmType::RBasic[:klass]
28
- p YTLJit::AsmType::RString[:as][:heap][:len]
29
- p YTLJit::AsmType::RString[:basic][:flags]
30
+ n = [1.9]
31
+ foo = (n[0]).__id__ * 2
32
+ p n
33
+ p a[foo, RFloat[:float_value]]
34
+ a[foo, AsmType::RFloat[:float_value]] = 2.0
35
+ p n
36
+ p a[foo, RFloat[:float_value]]
37
+ a[b, RFloat[:float_value]] = 3.14
38
+ p VALUE
39
+ p RBasic[:klass]
40
+ p RString[:as][:heap][:len]
41
+ p RString[:basic][:flags]
42
+ p RFloat[:float_value]
30
43
  p a[b, :machine_word]
44
+ #p a[0x106667b8, RString[:as][:heap][:ptr]]
31
45
  p a[b, :float]
32
- #p a[0x106667b8, YTLJit::AsmType::RString[:as][:heap][:ptr]]
33
- p a[b, YTLJit::AsmType::RString[:basic][:flags]]
34
- p a[b, YTLJit::AsmType::RString[:as][:heap][:len]]
46
+ p a[b, RString[:basic][:flags]]
47
+ p a[b, RString[:as][:heap][:len]]
48
+ p a[b, RFloat[:float_value]]
35
49
  p a[b, :machine_word]
data/test/foo.rb ADDED
@@ -0,0 +1,14 @@
1
+ #=begin
2
+ a = (1..3).collect {|rr| rr}
3
+ p a
4
+ b = (1..3).collect {|rr| rr.to_f}
5
+ p b
6
+ a = (1..3).collect {|rr| rr}
7
+ p a
8
+ =begin
9
+ #=end
10
+ a = [1, 2, 3].collect {|rr| rr}
11
+ p a
12
+ a = [1, 2, 3].collect {|rr| rr.to_f}
13
+ p a
14
+ =end
data/test/macrotest.rb CHANGED
@@ -8,16 +8,18 @@ class Module
8
8
  end
9
9
 
10
10
  class Foo
11
+ myattr :foo, :bar
12
+ def initialize
13
+ @foo = 1
14
+ @bar = 3
15
+ end
11
16
  def myattr(x)
12
17
  p x
13
18
  end
14
19
  end
15
20
 
16
- myattr :foo, :bar
17
21
  Foo.new.myattr("abc")
18
-
19
- # Can't psss this test yet
20
- =begin
22
+ p Foo.new.bar
21
23
 
22
24
  def fact(x)
23
25
  if x == 0 then
@@ -28,8 +30,9 @@ def fact(x)
28
30
  end
29
31
 
30
32
  def fact_inline(x)
31
- eval fact(x)
33
+ eval "\" a = #{fact(x)} \""
32
34
  end
33
35
 
36
+ y= 5
34
37
  p fact_inline(5)
35
- =end
38
+
data/test/simple.rb ADDED
@@ -0,0 +1,6 @@
1
+ def foo(x)
2
+ yield x
3
+ end
4
+
5
+ k = 1
6
+ foo(k) {|a| a}
data/test/th_nested.rb ADDED
@@ -0,0 +1,31 @@
1
+ class Foo
2
+ def initialize
3
+ @res = 0
4
+ end
5
+
6
+ attr_accessor :res
7
+
8
+ def foo
9
+ th = nil
10
+ th2 = YTLJit::Runtime::Thread.new do
11
+ th = YTLJit::Runtime::Thread.new do
12
+ @res = 2
13
+ end
14
+ @res = 1
15
+ end
16
+ while th == nil
17
+ end
18
+ th.join
19
+ p @res
20
+ th2.join
21
+ p @res
22
+ end
23
+
24
+ def self_merge(cself, pself)
25
+ pself.res = pself.res + cself.res
26
+ pself
27
+ end
28
+ end
29
+
30
+ Foo.new.foo
31
+
data/test/threadfib.rb ADDED
@@ -0,0 +1,37 @@
1
+ # ytl -r runtime/thread.rb threadtest.rb
2
+ def fib(x)
3
+ if x < 2 then
4
+ 1
5
+ else
6
+ fib(x - 1) + fib(x -2)
7
+ end
8
+ end
9
+
10
+ class MultiFib
11
+ def initialize
12
+ @res = 32 # 32 is dummy (not 0 to detect bug)
13
+ end
14
+ attr_accessor :res
15
+
16
+ def compute(n)
17
+ th = YTLJit::Runtime::Thread.new do
18
+ @res = fib(n - 1)
19
+ end
20
+
21
+ @res = fib(n - 2)
22
+
23
+ th.join
24
+ @res
25
+ end
26
+
27
+ def self_merge(cself, pself)
28
+ pself.res = pself.res + cself.res
29
+ pself
30
+ end
31
+ end
32
+
33
+ mfib = MultiFib.new
34
+ print "computing fib 2 threads fib(40) \n"
35
+ p mfib.compute(40)
36
+ print "single fib(40)\n"
37
+ p fib(40)
@@ -0,0 +1,41 @@
1
+ # ytl -r runtime/thread.rb threadtest.rb
2
+ p "start"
3
+ def fib(x)
4
+ if x < 2 then
5
+ 1
6
+ else
7
+ fib(x - 1) + fib(x -2)
8
+ end
9
+ end
10
+
11
+ class Foo
12
+ def initialize
13
+ @res = 0
14
+ end
15
+
16
+ attr :res
17
+
18
+ def foo
19
+ YTLJit::Runtime::Thread.new do |arg|
20
+ @res = fib(30)
21
+ end
22
+ end
23
+
24
+ # Merge method whose return value is self object of joined thread
25
+ #=begin
26
+ def self_merge(cself, pself)
27
+ cself
28
+ end
29
+ #=end
30
+
31
+ end
32
+
33
+ p self
34
+ foo = Foo.new
35
+ th = foo.foo
36
+ p "computing fib 2 threads"
37
+ p fib(30)
38
+ p th
39
+
40
+ th.join
41
+ p foo.res
@@ -0,0 +1,7 @@
1
+ def foo(a, b = 1, *c, &d)
2
+ p [a, b]
3
+ end
4
+
5
+ foo(*[1, 2])
6
+ foo(*[1, 2, 4])
7
+ foo(*[1, 2, 4, 8])
metadata CHANGED
@@ -1,12 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ytl
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 0
8
- - 4
9
- version: 0.0.4
4
+ prerelease:
5
+ version: 0.0.5
10
6
  platform: ruby
11
7
  authors:
12
8
  - Hideki Miura
@@ -14,8 +10,7 @@ autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
12
 
17
- date: 2011-08-14 00:00:00 +09:00
18
- default_executable:
13
+ date: 2012-01-20 00:00:00 Z
19
14
  dependencies:
20
15
  - !ruby/object:Gem::Dependency
21
16
  name: ytljit
@@ -25,10 +20,6 @@ dependencies:
25
20
  requirements:
26
21
  - - ">="
27
22
  - !ruby/object:Gem::Version
28
- segments:
29
- - 0
30
- - 0
31
- - 7
32
23
  version: 0.0.7
33
24
  type: :runtime
34
25
  version_requirements: *id001
@@ -45,8 +36,11 @@ files:
45
36
  - lib/ytl/accmem.rb
46
37
  - lib/ytl/importobj.rb
47
38
  - lib/ytl/macro.rb
39
+ - lib/ytl/thread.rb
48
40
  - runtime/prelude.rb
41
+ - runtime/thread.rb
49
42
  - runtime/type.rb
43
+ - test/bar.rb
50
44
  - test/basictest.rb
51
45
  - test/breaktest.rb
52
46
  - test/classtest.rb
@@ -55,14 +49,19 @@ files:
55
49
  - test/execytl.rb
56
50
  - test/exttest.rb
57
51
  - test/floattest.rb
52
+ - test/foo.rb
58
53
  - test/hashtest.rb
59
54
  - test/ivtest.rb
60
55
  - test/looptest.rb
61
56
  - test/macrotest.rb
57
+ - test/simple.rb
58
+ - test/threadfib.rb
59
+ - test/threadtest.rb
60
+ - test/th_nested.rb
62
61
  - test/tmp.rb
62
+ - test/varargtest.rb
63
63
  - bin/ytl
64
64
  - README
65
- has_rdoc: true
66
65
  homepage:
67
66
  licenses: []
68
67
 
@@ -76,25 +75,22 @@ required_ruby_version: !ruby/object:Gem::Requirement
76
75
  requirements:
77
76
  - - ">="
78
77
  - !ruby/object:Gem::Version
79
- segments:
80
- - 0
81
78
  version: "0"
82
79
  required_rubygems_version: !ruby/object:Gem::Requirement
83
80
  none: false
84
81
  requirements:
85
82
  - - ">="
86
83
  - !ruby/object:Gem::Version
87
- segments:
88
- - 0
89
84
  version: "0"
90
85
  requirements: []
91
86
 
92
87
  rubyforge_project:
93
- rubygems_version: 1.3.7
88
+ rubygems_version: 1.8.11
94
89
  signing_key:
95
90
  specification_version: 3
96
91
  summary: Very tiny subset of YARV to native code translator
97
92
  test_files:
93
+ - test/bar.rb
98
94
  - test/basictest.rb
99
95
  - test/breaktest.rb
100
96
  - test/classtest.rb
@@ -103,8 +99,14 @@ test_files:
103
99
  - test/execytl.rb
104
100
  - test/exttest.rb
105
101
  - test/floattest.rb
102
+ - test/foo.rb
106
103
  - test/hashtest.rb
107
104
  - test/ivtest.rb
108
105
  - test/looptest.rb
109
106
  - test/macrotest.rb
107
+ - test/simple.rb
108
+ - test/threadfib.rb
109
+ - test/threadtest.rb
110
+ - test/th_nested.rb
110
111
  - test/tmp.rb
112
+ - test/varargtest.rb