nydp 0.1.13.2 → 0.1.14

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c7374115cdd9df0c64b65aaf6321b23f5eac50ef
4
- data.tar.gz: 9d108fd6697da14be302dec3da20926de83ff6a2
3
+ metadata.gz: 4934e2de2e4ae2558056bd67df1bfb85e8285d80
4
+ data.tar.gz: 591950ecbf8f0d76ef6e7afd79a48138bb7164b4
5
5
  SHA512:
6
- metadata.gz: 46702e5f71b4cb0335773567020bb223839b5f50702583af33d6469fcfda6fe6a130b00d5b69cc9bf40cd344b8fb6a7b1ae628bfb539488dc0060711bef9d0af
7
- data.tar.gz: 05028cdc5301c4670c053b95aead31e179784915c35096153e124e3d3d2405392767189dcbb4d15f8960599cc8ef2bbdb23be242bd9d2ff924173e5f66d13a97
6
+ metadata.gz: e3efdac8cdb5dfdc6cf6908e2d4950430769d888af64252a2153c05e06d25dff99a47be81d48e36478a1716327d2544ad78f76bff7a9a7f7e717b3ba564a4dda
7
+ data.tar.gz: 13cb1296116e684380b86b0f887b13ca2b22aef929ce933429ad74f5d49d40f151cd5095ecb96eb934e57d0c94755f3f9cc55eb9377f9b8dc749dd98f3d89cca
@@ -1,18 +1,17 @@
1
1
 
2
- (assign mac-expand (fn (names macfn name body)
2
+ (assign mac-expand (fn (names macfn expr)
3
3
  (cond macfn
4
4
  (pre-compile-with names
5
- (apply macfn body))
6
- (cons name body))))
5
+ (apply macfn (cdr expr)))
6
+ expr)))
7
7
 
8
8
  (assign macs (hash))
9
9
 
10
10
  (assign pre-compile-expr
11
- (fn (names name body)
11
+ (fn (names expr)
12
12
  (mac-expand names
13
- (hash-get names name)
14
- name
15
- body)))
13
+ (hash-get names (car expr))
14
+ expr)))
16
15
 
17
16
  (assign pre-compile-each
18
17
  (fn (names args)
@@ -35,9 +34,7 @@
35
34
  (cond (eq? (car arg) 'quote)
36
35
  arg
37
36
  (pre-compile-each names
38
- (pre-compile-expr names
39
- (car arg)
40
- (cdr arg))))
37
+ (pre-compile-expr names arg)))
41
38
  arg)))
42
39
 
43
40
  (assign pre-compile-debug
@@ -34,13 +34,36 @@
34
34
  (bm-complicated-0 * 3 (bm-complicated-0 + 3 6))
35
35
  (bm-complicated-0 - 10 (bm-complicated-0 - 13 8))))
36
36
 
37
+ (def bm-pre-compile-test ()
38
+ (for i 1 10
39
+ (pre-compile (dox-src rbs))))
40
+
41
+ (def bm-hash-fill
42
+ (let h {}
43
+ (=h.aa 1) (=h.ab 2) (=h.ac 3) (=h.ba 4) (=h.bb 5) (=h.bc 6)
44
+ (=h.ca 1) (=h.cb 2) (=h.cc 3) (=h.ca 4) (=h.cb 5) (=h.cc 6)
45
+ (=h.da 1) (=h.db 2) (=h.dc 3) (=h.da 4) (=h.db 5) (=h.dc 6)
46
+ (=h.aa 1) (=h.ab 2) (=h.ac 3) (=h.ba 4) (=h.bb 5) (=h.bc 6)
47
+ (=h.ca 1) (=h.cb 2) (=h.cc 3) (=h.ca 4) (=h.cb 5) (=h.cc 6)
48
+ (=h.da 1) (=h.db 2) (=h.dc 3) (=h.da 4) (=h.db 5) (=h.dc 6)
49
+ (list (list h.aa h.ab h.ac h.ba h.bb h.bc)
50
+ (list h.aa h.ab h.ac h.ba h.bb h.bc)
51
+ (list h.ca h.cb h.cc h.ca h.cb h.cc)
52
+ (list h.da h.db h.dc h.da h.db h.dc)
53
+ (list h.aa h.ab h.ac h.ba h.bb h.bc)
54
+ (list h.ca h.cb h.cc h.ca h.cb h.cc)
55
+ (list h.da h.db h.dc h.da h.db h.dc)
56
+ (list h.da h.ab h.ac h.ba h.bb h.bc))))
57
+
37
58
  (def rbs (name)
38
59
  (let summary nil
39
- (push (bm "pythag " bm-pythag 10 10) summary)
40
- (push (bm "recursive " bm-complicated 10 20000) summary)
41
- (push (bm "0 arg times" bm-0-arg-times-call 5 40000) summary)
42
- (push (bm "1 arg times" bm-1-arg-times-call 5 40000) summary)
43
- (push (bm "2 arg times" bm-2-arg-times-call 5 40000) summary)
44
- (push (bm "3 arg times" bm-3-arg-times-call 5 40000) summary)
45
- (push (bm "4 arg times" bm-4-arg-times-call 5 40000) summary)
60
+ ;; (push (bm "pythag " bm-pythag 5 10) summary)
61
+ ;; (push (bm "recursive " bm-complicated 5 1000) summary)
62
+ ;; (push (bm "0 arg times" bm-0-arg-times-call 5 1000) summary)
63
+ ;; (push (bm "1 arg times" bm-1-arg-times-call 5 1000) summary)
64
+ ;; (push (bm "2 arg times" bm-2-arg-times-call 5 1000) summary)
65
+ ;; (push (bm "3 arg times" bm-3-arg-times-call 5 1000) summary)
66
+ ;; (push (bm "4 arg times" bm-4-arg-times-call 5 1000) summary)
67
+ ;; (push (bm "pre-compile" bm-pre-compile-test 10 10000) summary)
68
+ (push (bm "hashing" bm-hash-fill 10 200000) summary)
46
69
  (each s summary (p name " " s))))
@@ -3,4 +3,6 @@
3
3
  ("quote" (to-string '(quote a)) "'a" )
4
4
  ("quasiquote" (to-string '(quasiquote a)) "`a" )
5
5
  ("unquote-splicing" (to-string '(unquote-splicing a)) ",@a" )
6
+ ("brace-list" (to-string '(brace-list a)) "{ a }" )
7
+ ("brace-list" (to-string '(brace-list a b)) "{ a b }" )
6
8
  ("brace-list" (to-string '(brace-list a b c d)) "{ a b c d }" ))
@@ -5,7 +5,7 @@ module Nydp
5
5
  end
6
6
 
7
7
  def execute vm
8
- @name.assign vm.peek_arg, vm.peek_context
8
+ @name.assign vm.peek_arg, vm.current_context
9
9
  end
10
10
 
11
11
  def to_s
@@ -36,7 +36,8 @@ module Nydp
36
36
  def inspect; to_s ; end
37
37
 
38
38
  def execute vm
39
- vm.push_instructions @instructions, vm.peek_context
39
+ vm.instructions.push @instructions
40
+ vm.contexts.push vm.current_context
40
41
  end
41
42
  end
42
43
  end
@@ -21,7 +21,8 @@ class Nydp::Builtin::Ensuring
21
21
  fn_tricky = args.cdr.car
22
22
 
23
23
  protection_instructions = Nydp::Pair.from_list [InvokeProtection.new(fn_ensure), Nydp::PopArg]
24
- vm.push_instructions protection_instructions, vm.peek_context
24
+ vm.instructions.push protection_instructions
25
+ vm.contexts.push vm.current_context
25
26
 
26
27
  fn_tricky.invoke vm, Nydp.NIL
27
28
  end
@@ -33,7 +33,8 @@ class Nydp::Builtin::HandleError
33
33
  fn_tricky = args.cdr.car
34
34
 
35
35
  catcher_instructions = Nydp::Pair.from_list [CatchError.new(fn_handle, vm.args.size)]
36
- vm.push_instructions catcher_instructions, vm.peek_context
36
+ vm.instructions.push catcher_instructions
37
+ vm.contexts.push vm.current_context
37
38
 
38
39
  fn_tricky.invoke vm, Nydp.NIL
39
40
  end
@@ -8,9 +8,9 @@ module Nydp
8
8
  end
9
9
 
10
10
  def execute vm
11
- arg = vm.pop_arg
12
- truth = !Nydp.NIL.is?(arg)
13
- vm.push_instructions (truth ? when_true : when_false), vm.peek_context
11
+ truth = !Nydp.NIL.is?(vm.args.pop)
12
+ vm.instructions.push (truth ? when_true : when_false)
13
+ vm.contexts.push vm.current_context
14
14
  end
15
15
 
16
16
  def inspect
@@ -31,8 +31,10 @@ module Nydp
31
31
  end
32
32
 
33
33
  def execute vm
34
- vm.push_instructions conditional, vm.peek_context
35
- vm.push_instructions condition, vm.peek_context
34
+ vm.instructions.push conditional
35
+ vm.contexts.push vm.current_context
36
+ vm.instructions.push condition
37
+ vm.contexts.push vm.current_context
36
38
  end
37
39
 
38
40
  def inspect
@@ -30,7 +30,7 @@ module Nydp
30
30
 
31
31
  class Invocation_1 < Invocation::Base
32
32
  def execute vm
33
- f = vm.pop_arg
33
+ f = vm.args.pop
34
34
  f.invoke_1 vm
35
35
  rescue Exception => e
36
36
  handle e, f, Nydp.NIL
@@ -39,8 +39,9 @@ module Nydp
39
39
 
40
40
  class Invocation_2 < Invocation::Base
41
41
  def execute vm
42
- arg = vm.pop_arg
43
- f = vm.pop_arg
42
+ arg = vm.args.pop
43
+ f = vm.args.pop
44
+
44
45
  f.invoke_2 vm, arg
45
46
  rescue Exception => e
46
47
  handle e, f, cons(arg)
@@ -49,9 +50,9 @@ module Nydp
49
50
 
50
51
  class Invocation_3 < Invocation::Base
51
52
  def execute vm
52
- arg_1 = vm.pop_arg
53
- arg_0 = vm.pop_arg
54
- f = vm.pop_arg
53
+ arg_1 = vm.args.pop
54
+ arg_0 = vm.args.pop
55
+ f = vm.args.pop
55
56
  f.invoke_3 vm, arg_0, arg_1
56
57
  rescue Exception => e
57
58
  handle e, f, cons(arg_0, cons(arg_1))
@@ -60,10 +61,10 @@ module Nydp
60
61
 
61
62
  class Invocation_4 < Invocation::Base
62
63
  def execute vm
63
- arg_2 = vm.pop_arg
64
- arg_1 = vm.pop_arg
65
- arg_0 = vm.pop_arg
66
- f = vm.pop_arg
64
+ arg_2 = vm.args.pop
65
+ arg_1 = vm.args.pop
66
+ arg_0 = vm.args.pop
67
+ f = vm.args.pop
67
68
  f.invoke_4 vm, arg_0, arg_1, arg_2
68
69
  rescue Exception => e
69
70
  handle e, f, cons(arg_0, cons(arg_1, cons(arg_2)))
@@ -87,6 +88,7 @@ module Nydp
87
88
 
88
89
  class FunctionInvocation
89
90
  extend Helper
91
+ attr_accessor :function_instruction, :argument_instructions
90
92
 
91
93
  def self.build expression, bindings
92
94
  compiled = Compiler.compile_each(expression, bindings)
@@ -110,8 +112,10 @@ module Nydp
110
112
  end
111
113
 
112
114
  def execute vm
113
- vm.push_instructions @function_instruction, vm.peek_context
114
- vm.push_instructions @argument_instructions, vm.peek_context
115
+ vm.instructions.push function_instruction
116
+ vm.contexts .push vm.current_context
117
+ vm.instructions.push argument_instructions
118
+ vm.contexts .push vm.current_context
115
119
  end
116
120
 
117
121
  def inspect ; @source.inspect ; end
@@ -4,7 +4,7 @@ require 'nydp/closure'
4
4
 
5
5
  module Nydp
6
6
  class PopArg
7
- def self.execute vm ; vm.pop_arg ; end
7
+ def self.execute vm ; vm.args.pop ; end
8
8
  def self.to_s ; "" ; end
9
9
  def self.inspect ; "#pop_arg" ; end
10
10
  end
@@ -16,31 +16,36 @@ module Nydp
16
16
  attr_accessor :arg_names, :body, :context_builder
17
17
 
18
18
  def invoke_1 vm, parent_context
19
- vm.push_instructions self.body, LexicalContext.new(parent_context)
19
+ vm.instructions.push self.body
20
+ vm.contexts.push LexicalContext.new(parent_context)
20
21
  end
21
22
 
22
23
  def invoke_2 vm, parent_context, arg
23
24
  lc = LexicalContext.new parent_context
24
25
  set_args_1 lc, arg
25
- vm.push_instructions self.body, lc
26
+ vm.instructions.push self.body
27
+ vm.contexts.push lc
26
28
  end
27
29
 
28
30
  def invoke_3 vm, parent_context, arg_0, arg_1
29
31
  lc = LexicalContext.new parent_context
30
32
  set_args_2 lc, arg_0, arg_1
31
- vm.push_instructions self.body, lc
33
+ vm.instructions.push self.body
34
+ vm.contexts.push lc
32
35
  end
33
36
 
34
37
  def invoke_4 vm, parent_context, arg_0, arg_1, arg_2
35
38
  lc = LexicalContext.new parent_context
36
39
  set_args_3 lc, arg_0, arg_1, arg_2
37
- vm.push_instructions self.body, lc
40
+ vm.instructions.push self.body
41
+ vm.contexts.push lc
38
42
  end
39
43
 
40
44
  def invoke vm, parent_context, arg_values
41
45
  lc = LexicalContext.new parent_context
42
46
  set_args lc, arg_values
43
- vm.push_instructions self.body, lc
47
+ vm.instructions.push self.body
48
+ vm.contexts.push lc
44
49
  end
45
50
 
46
51
  def setup_context context, names, values
@@ -85,7 +90,7 @@ module Nydp
85
90
  end
86
91
 
87
92
  def execute vm
88
- vm.push_arg Closure.new(self, vm.peek_context)
93
+ vm.push_arg Closure.new(self, vm.current_context)
89
94
  end
90
95
 
91
96
  def nydp_type ; "fn" ; end
@@ -8,10 +8,6 @@ class Nydp::Pair
8
8
  @car, @cdr = car, cdr
9
9
  end
10
10
 
11
- def self.mk a, b
12
- new a, b
13
- end
14
-
15
11
  def nydp_type ; :pair ; end
16
12
  def caar ; car.car ; end
17
13
  def cadr ; cdr.car ; end
@@ -35,7 +31,7 @@ class Nydp::Pair
35
31
  if n >= list.size
36
32
  last
37
33
  else
38
- mk list[n], from_list(list, last, n+1)
34
+ new list[n], from_list(list, last, n+1)
39
35
  end
40
36
  end
41
37
 
@@ -76,7 +72,7 @@ class Nydp::Pair
76
72
  "'#{cdr.to_s}"
77
73
  end
78
74
  elsif car.is_a?(Nydp::Symbol) && car.is?(:"brace-list")
79
- if Nydp.NIL.is? cdr.cdr
75
+ if Nydp.NIL.is? cdr
80
76
  "{}"
81
77
  else
82
78
  "{ #{cdr.to_s_rest} }"
@@ -1,11 +1,13 @@
1
1
  class Nydp::Symbol
2
2
  EMPTY = :""
3
3
  attr_accessor :name
4
+ attr_reader :hash
4
5
 
5
6
  def initialize name
6
7
  @name = name.to_sym
7
8
  @inspection = name.to_s
8
9
  @inspection = "|#{name}|" if untidy(@inspection)
10
+ @hash = name.hash
9
11
  end
10
12
 
11
13
  def untidy str
@@ -37,7 +39,6 @@ class Nydp::Symbol
37
39
  def to_s ; name.to_s ; end
38
40
  def to_sym ; name ; end
39
41
  def to_ruby ; to_sym ; end
40
- def hash ; name.hash ; end
41
42
  def eql? other ; self == other ; end
42
43
  def is? nm ; self.name == nm.to_sym ; end
43
44
  def > other ; self.name > other.name ; end
@@ -11,7 +11,7 @@ module Nydp
11
11
  end
12
12
 
13
13
  def execute vm
14
- vm.push_arg expression.value vm.peek_context
14
+ vm.push_arg expression.value vm.current_context
15
15
  end
16
16
 
17
17
  def assign value, context=nil
@@ -1,3 +1,3 @@
1
1
  module Nydp
2
- VERSION = "0.1.13.2"
2
+ VERSION = "0.1.14"
3
3
  end
@@ -30,7 +30,7 @@ module Nydp
30
30
  end
31
31
  end
32
32
  raise_unhandled_error
33
- pop_arg
33
+ args.pop
34
34
  end
35
35
 
36
36
  def raise_unhandled_error
@@ -58,28 +58,21 @@ module Nydp
58
58
  end
59
59
 
60
60
  while protecti.length > 0
61
- push_instructions protecti.pop, protectc.pop
61
+ instructions.push protecti.pop
62
+ contexts.push protectc.pop
62
63
  end
63
64
  end
64
65
 
65
- def peek_context ; current_context ; end
66
- def pop_context ; contexts.pop ; end
67
66
  def push_arg a ; args.push a ; end
68
67
  def args! ; args.empty? ? (raise "illegal operation: no args") : args ; end
69
68
  def peek_arg ; args!.last ; end
70
- def pop_arg ; args!.pop ; end
71
-
72
- def push_instructions ii, ctx
73
- instructions.push ii
74
- contexts.push ctx
75
- end
76
69
 
77
70
  def pop_args count, tail=Nydp.NIL
78
71
  case count
79
72
  when 0
80
73
  tail
81
74
  else
82
- pop_args(count - 1, cons(pop_arg, tail))
75
+ pop_args(count - 1, cons(args.pop, tail))
83
76
  end
84
77
  end
85
78
 
@@ -18,7 +18,7 @@ describe Nydp::Date do
18
18
  it "creates a new date" do
19
19
  df = Nydp::Builtin::Date.new
20
20
  df.invoke vm, pair_list([2015, 11, 18])
21
- nd = vm.pop_arg
21
+ nd = vm.args.pop
22
22
  expect(nd).to be_a Nydp::Date
23
23
  expect(nd.ruby_date).to eq Date.parse("2015-11-18")
24
24
  end
@@ -40,7 +40,7 @@ describe Nydp::Date do
40
40
  minus = Nydp::Builtin::Minus.new
41
41
 
42
42
  minus.invoke vm, pair_list([d1, d0])
43
- diff = vm.pop_arg
43
+ diff = vm.args.pop
44
44
 
45
45
  expect(d0).to be_a Nydp::Date
46
46
  expect(diff).to eq 6
@@ -52,7 +52,7 @@ describe Nydp::Date do
52
52
 
53
53
  f.invoke vm, pair_list([d1, d0])
54
54
 
55
- expect(vm.pop_arg).to eq Nydp.T
55
+ expect(vm.args.pop).to eq Nydp.T
56
56
  end
57
57
 
58
58
  it "compares with nil" do
@@ -60,7 +60,7 @@ describe Nydp::Date do
60
60
 
61
61
  f.invoke vm, pair_list([d1, Nydp.NIL])
62
62
 
63
- expect(vm.pop_arg).to eq Nydp.NIL
63
+ expect(vm.args.pop).to eq Nydp.NIL
64
64
  end
65
65
 
66
66
  it "works with builtin greater-than when false" do
@@ -68,7 +68,7 @@ describe Nydp::Date do
68
68
 
69
69
  f.invoke vm, pair_list([d0, d1])
70
70
 
71
- expect(vm.pop_arg).to eq Nydp.NIL
71
+ expect(vm.args.pop).to eq Nydp.NIL
72
72
  end
73
73
  end
74
74
 
@@ -78,7 +78,7 @@ describe Nydp::Date do
78
78
 
79
79
  f.invoke vm, pair_list([d0, d1])
80
80
 
81
- expect(vm.pop_arg).to eq Nydp.T
81
+ expect(vm.args.pop).to eq Nydp.T
82
82
  end
83
83
 
84
84
  it "works with builtin less-than when false" do
@@ -86,7 +86,7 @@ describe Nydp::Date do
86
86
 
87
87
  f.invoke vm, pair_list([d1, d0])
88
88
 
89
- expect(vm.pop_arg).to eq Nydp.NIL
89
+ expect(vm.args.pop).to eq Nydp.NIL
90
90
  end
91
91
 
92
92
  it "compares with nil" do
@@ -94,7 +94,7 @@ describe Nydp::Date do
94
94
 
95
95
  f.invoke vm, pair_list([d1, Nydp.NIL])
96
96
 
97
- expect(vm.pop_arg).to eq Nydp.NIL
97
+ expect(vm.args.pop).to eq Nydp.NIL
98
98
  end
99
99
  end
100
100
 
@@ -102,7 +102,7 @@ describe Nydp::Date do
102
102
  plus = Nydp::Builtin::Plus.new
103
103
 
104
104
  plus.invoke vm, pair_list([d0, 5])
105
- sum = vm.pop_arg
105
+ sum = vm.args.pop
106
106
 
107
107
  expect(d0) .to be_a Nydp::Date
108
108
  expect(sum).to be_a Nydp::Date
@@ -17,7 +17,7 @@ describe Nydp::Hash do
17
17
  expect(ahash[:keysym].class).to eq String
18
18
  expect(ahash.keys). to eq [:keysym]
19
19
 
20
- expect(vm.pop_arg).to eq v
20
+ expect(vm.args.pop).to eq v
21
21
  end
22
22
  end
23
23
 
@@ -29,7 +29,7 @@ describe Nydp::Hash do
29
29
 
30
30
  Nydp::Builtin::HashGet.new(ns).invoke vm, pair_list(args)
31
31
 
32
- expect(vm.pop_arg).to eq Nydp::StringAtom.new("avalue")
32
+ expect(vm.args.pop).to eq Nydp::StringAtom.new("avalue")
33
33
  end
34
34
 
35
35
  it "converts ruby nil to nydp value" do
@@ -38,7 +38,7 @@ describe Nydp::Hash do
38
38
 
39
39
  Nydp::Builtin::HashGet.new(ns).invoke vm, pair_list(args)
40
40
 
41
- expect(vm.pop_arg).to eq Nydp.NIL
41
+ expect(vm.args.pop).to eq Nydp.NIL
42
42
  end
43
43
 
44
44
  it "converts ruby true to nydp value" do
@@ -48,7 +48,7 @@ describe Nydp::Hash do
48
48
 
49
49
  Nydp::Builtin::HashGet.new(ns).invoke vm, pair_list(args)
50
50
 
51
- expect(vm.pop_arg).to eq Nydp.T
51
+ expect(vm.args.pop).to eq Nydp.T
52
52
  end
53
53
  end
54
54
 
@@ -60,7 +60,7 @@ describe Nydp::Hash do
60
60
 
61
61
  Nydp::Builtin::HashKeyPresent.new(ns).invoke vm, pair_list(args)
62
62
 
63
- expect(vm.pop_arg).to eq Nydp.T
63
+ expect(vm.args.pop).to eq Nydp.T
64
64
  end
65
65
 
66
66
  it "returns nil when key is absent" do
@@ -69,7 +69,7 @@ describe Nydp::Hash do
69
69
 
70
70
  Nydp::Builtin::HashKeyPresent.new(ns).invoke vm, pair_list(args)
71
71
 
72
- expect(vm.pop_arg).to eq Nydp.NIL
72
+ expect(vm.args.pop).to eq Nydp.NIL
73
73
  end
74
74
  end
75
75
 
@@ -81,7 +81,7 @@ describe Nydp::Hash do
81
81
 
82
82
  Nydp::Builtin::HashKeys.new(ns).invoke vm, pair_list(args)
83
83
 
84
- expect(vm.pop_arg).to eq pair_list [sym("k0"), sym("k1")]
84
+ expect(vm.args.pop).to eq pair_list [sym("k0"), sym("k1")]
85
85
  end
86
86
  end
87
87
  end
@@ -12,7 +12,7 @@ describe Nydp::Hash do
12
12
  args = [ ahash, k ]
13
13
 
14
14
  Nydp::Builtin::HashGet.new(ns).invoke vm, pair_list(args)
15
- expect(vm.pop_arg).to eq 123
15
+ expect(vm.args.pop).to eq 123
16
16
  end
17
17
 
18
18
  it "converts ruby value to nydp value" do
@@ -20,7 +20,7 @@ describe Nydp::Hash do
20
20
  args = [ ahash, k ]
21
21
 
22
22
  Nydp::Builtin::HashGet.new(ns).invoke vm, pair_list(args)
23
- expect(vm.pop_arg).to eq Nydp::StringAtom.new("hello there")
23
+ expect(vm.args.pop).to eq Nydp::StringAtom.new("hello there")
24
24
  end
25
25
 
26
26
  it "converts string keys to method names" do
@@ -28,7 +28,7 @@ describe Nydp::Hash do
28
28
  args = [ ahash, k ]
29
29
 
30
30
  Nydp::Builtin::HashGet.new(ns).invoke vm, pair_list(args)
31
- expect(vm.pop_arg).to eq Nydp::StringAtom.new("hello there")
31
+ expect(vm.args.pop).to eq Nydp::StringAtom.new("hello there")
32
32
  end
33
33
 
34
34
  it "returns nil for unavailable methods" do
@@ -36,7 +36,7 @@ describe Nydp::Hash do
36
36
  args = [ ahash, k ]
37
37
 
38
38
  Nydp::Builtin::HashGet.new(ns).invoke vm, pair_list(args)
39
- expect(vm.pop_arg).to eq Nydp.NIL
39
+ expect(vm.args.pop).to eq Nydp.NIL
40
40
  end
41
41
  end
42
42
  end
@@ -63,7 +63,7 @@ describe Nydp::Hash do
63
63
  describe "new hash" do
64
64
  it "returns a new Nydp hash" do
65
65
  Nydp::Builtin::Hash.new.invoke vm, Nydp.NIL
66
- h = vm.pop_arg
66
+ h = vm.args.pop
67
67
  expect(h).to be_a Nydp::Hash
68
68
  end
69
69
  end
@@ -78,7 +78,7 @@ describe Nydp::Hash do
78
78
 
79
79
  expect(h.keys). to eq [k]
80
80
  expect(h[k]). to eq v
81
- expect(vm.pop_arg).to eq v
81
+ expect(vm.args.pop).to eq v
82
82
  end
83
83
  end
84
84
 
@@ -91,7 +91,7 @@ describe Nydp::Hash do
91
91
 
92
92
  args = Nydp::Pair.from_list([h, k])
93
93
  Nydp::Builtin::HashGet.new(ns).invoke vm, args
94
- expect(vm.pop_arg).to eq v
94
+ expect(vm.args.pop).to eq v
95
95
  end
96
96
  end
97
97
 
@@ -104,7 +104,7 @@ describe Nydp::Hash do
104
104
 
105
105
  Nydp::Builtin::HashKeyPresent.new(ns).invoke vm, pair_list([h, k])
106
106
 
107
- expect(vm.pop_arg).to eq Nydp.T
107
+ expect(vm.args.pop).to eq Nydp.T
108
108
  end
109
109
 
110
110
  it "returns nil when key is absent" do
@@ -113,7 +113,7 @@ describe Nydp::Hash do
113
113
 
114
114
  Nydp::Builtin::HashKeyPresent.new(ns).invoke vm, pair_list([h, k])
115
115
 
116
- expect(vm.pop_arg).to eq Nydp.NIL
116
+ expect(vm.args.pop).to eq Nydp.NIL
117
117
  end
118
118
  end
119
119
 
@@ -125,7 +125,7 @@ describe Nydp::Hash do
125
125
 
126
126
  args = Nydp::Pair.from_list([h])
127
127
  Nydp::Builtin::HashKeys.new(ns).invoke vm, args
128
- expect(vm.pop_arg).to eq pair_list [sym("k0"), sym("k1")]
128
+ expect(vm.args.pop).to eq pair_list [sym("k0"), sym("k1")]
129
129
  end
130
130
  end
131
131
  end
@@ -141,7 +141,7 @@ describe Nydp::Hash do
141
141
  Nydp::Builtin::HashSet.new.invoke vm, args
142
142
 
143
143
  expect(ahash). to eq Nydp.NIL
144
- expect(vm.pop_arg).to eq v
144
+ expect(vm.args.pop).to eq v
145
145
  end
146
146
  end
147
147
 
@@ -152,7 +152,7 @@ describe Nydp::Hash do
152
152
 
153
153
  Nydp::Builtin::HashGet.new(ns).invoke vm, pair_list(args)
154
154
 
155
- expect(vm.pop_arg).to eq Nydp.NIL
155
+ expect(vm.args.pop).to eq Nydp.NIL
156
156
  end
157
157
  end
158
158
  end
@@ -55,7 +55,7 @@ describe Nydp::Pair do
55
55
  end
56
56
 
57
57
  it "should create a new pair" do
58
- p = Nydp::Pair.mk :a, :b
58
+ p = Nydp::Pair.new :a, :b
59
59
  expect(p.car).to eq :a
60
60
  expect(p.cdr).to eq :b
61
61
  end
@@ -32,7 +32,7 @@ describe Nydp::StringAtom do
32
32
 
33
33
  f.invoke vm, pair_list([foo, bar])
34
34
 
35
- expect(vm.pop_arg).to eq Nydp.T
35
+ expect(vm.args.pop).to eq Nydp.T
36
36
  end
37
37
 
38
38
  it "works with builtin greater-than when false" do
@@ -40,7 +40,7 @@ describe Nydp::StringAtom do
40
40
 
41
41
  f.invoke vm, pair_list([bar, foo])
42
42
 
43
- expect(vm.pop_arg).to eq Nydp.NIL
43
+ expect(vm.args.pop).to eq Nydp.NIL
44
44
  end
45
45
 
46
46
  it "works with builtin less-than when true" do
@@ -48,7 +48,7 @@ describe Nydp::StringAtom do
48
48
 
49
49
  f.invoke vm, pair_list([bar, foo])
50
50
 
51
- expect(vm.pop_arg).to eq Nydp.T
51
+ expect(vm.args.pop).to eq Nydp.T
52
52
  end
53
53
 
54
54
  it "works with builtin less-than when false" do
@@ -56,6 +56,6 @@ describe Nydp::StringAtom do
56
56
 
57
57
  f.invoke vm, pair_list([foo, bar])
58
58
 
59
- expect(vm.pop_arg).to eq Nydp.NIL
59
+ expect(vm.args.pop).to eq Nydp.NIL
60
60
  end
61
61
  end
@@ -47,7 +47,7 @@ describe Nydp::Symbol do
47
47
 
48
48
  f.invoke vm, pair_list([foo, bar])
49
49
 
50
- expect(vm.pop_arg).to eq Nydp.T
50
+ expect(vm.args.pop).to eq Nydp.T
51
51
  end
52
52
 
53
53
  it "works with builtin greater-than when false" do
@@ -55,7 +55,7 @@ describe Nydp::Symbol do
55
55
 
56
56
  f.invoke vm, pair_list([bar, foo])
57
57
 
58
- expect(vm.pop_arg).to eq Nydp.NIL
58
+ expect(vm.args.pop).to eq Nydp.NIL
59
59
  end
60
60
 
61
61
  it "works with builtin less-than when true" do
@@ -63,7 +63,7 @@ describe Nydp::Symbol do
63
63
 
64
64
  f.invoke vm, pair_list([bar, foo])
65
65
 
66
- expect(vm.pop_arg).to eq Nydp.T
66
+ expect(vm.args.pop).to eq Nydp.T
67
67
  end
68
68
 
69
69
  it "works with builtin less-than when false" do
@@ -71,7 +71,7 @@ describe Nydp::Symbol do
71
71
 
72
72
  f.invoke vm, pair_list([foo, bar])
73
73
 
74
- expect(vm.pop_arg).to eq Nydp.NIL
74
+ expect(vm.args.pop).to eq Nydp.NIL
75
75
  end
76
76
 
77
77
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nydp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.13.2
4
+ version: 0.1.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Conan Dalton
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-17 00:00:00.000000000 Z
11
+ date: 2016-04-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler