nydp 0.1.13.2 → 0.1.14

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: 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