nydp 0.2.5 → 0.2.6
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 +4 -4
- data/lib/lisp/core-060-benchmarking.nydp +92 -94
- data/lib/nydp.rb +1 -0
- data/lib/nydp/cond.rb +8 -9
- data/lib/nydp/function_invocation.rb +106 -10
- data/lib/nydp/literal.rb +0 -4
- data/lib/nydp/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ab2e8ff02992658d66f96d3744cf872ece5e0c6c
|
4
|
+
data.tar.gz: ca9cb9b175abd201e722d7f6a60a334d164bb442
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 31f1534694189aaec724cf8f49c1de8a98c07c50d2a94fef0737d331f8f11b054d860c64fed579365f4715cb8c6b8f3dce8de896e243ebf577aa8dc826e72d03
|
7
|
+
data.tar.gz: e93101eeae01cbed4c07a051de5ff7bba66b9962e92636c349c934cb7f788e6c322b3c00a64c348bdbe027c64ae67e80e67b5eac44148d851d8e37f34669e966
|
@@ -1,104 +1,104 @@
|
|
1
|
-
(def bm-cond ()
|
2
|
-
|
1
|
+
;; (def bm-cond ()
|
2
|
+
;; (if (< 3 5) "less" "more"))
|
3
3
|
|
4
|
-
(def bm-cond-lex (var)
|
5
|
-
|
4
|
+
;; (def bm-cond-lex (var)
|
5
|
+
;; (if var "present" "absent"))
|
6
6
|
|
7
|
-
(def bm-cond-sym ()
|
8
|
-
|
7
|
+
;; (def bm-cond-sym ()
|
8
|
+
;; (if bm-cond-sym-value "present" "absent"))
|
9
9
|
|
10
|
-
(def bm-cond-3 ()
|
11
|
-
|
12
|
-
|
10
|
+
;; (def bm-cond-3 ()
|
11
|
+
;; (bm-cond-lex 1)
|
12
|
+
;; (bm-cond-lex nil))
|
13
13
|
|
14
|
-
(def bm-cond-4 ()
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
14
|
+
;; (def bm-cond-4 ()
|
15
|
+
;; (assign bm-cond-sym-value 1)
|
16
|
+
;; (bm-cond-sym)
|
17
|
+
;; (assign bm-cond-sym-value nil)
|
18
|
+
;; (bm-cond-sym))
|
19
19
|
|
20
|
-
(def bm-cond-LEX-LEX-LIT (a b)
|
21
|
-
|
20
|
+
;; (def bm-cond-LEX-LEX-LIT (a b)
|
21
|
+
;; (if a b nil))
|
22
22
|
|
23
|
-
(def bm-cond-LEX-CND-LIT (a)
|
24
|
-
|
23
|
+
;; (def bm-cond-LEX-CND-LIT (a)
|
24
|
+
;; (if a (if (< a 3) "yes" "no") "other"))
|
25
25
|
|
26
|
-
(def bm-cond-6 ()
|
27
|
-
|
26
|
+
;; (def bm-cond-6 ()
|
27
|
+
;; (if (< 3 5) (+ 3 5) (- 3 5)))
|
28
28
|
|
29
|
-
(def bm-cond-7 ()
|
30
|
-
|
31
|
-
|
32
|
-
|
29
|
+
;; (def bm-cond-7 ()
|
30
|
+
;; (bm-cond-LEX-CND-LIT nil)
|
31
|
+
;; (bm-cond-LEX-CND-LIT 1)
|
32
|
+
;; (bm-cond-LEX-CND-LIT 5))
|
33
33
|
|
34
|
-
(def bm-cond-5 ()
|
35
|
-
|
36
|
-
|
34
|
+
;; (def bm-cond-5 ()
|
35
|
+
;; (bm-cond-LEX-LEX-LIT 1 2)
|
36
|
+
;; (bm-cond-LEX-LEX-LIT nil 3))
|
37
37
|
|
38
|
-
(def bm-cond-OR (x)
|
39
|
-
|
38
|
+
;; (def bm-cond-OR (x)
|
39
|
+
;; (if x x "no"))
|
40
40
|
|
41
|
-
(def bm-cond-OR2 (x y z)
|
42
|
-
|
41
|
+
;; (def bm-cond-OR2 (x y z)
|
42
|
+
;; (if x x (if y y z)))
|
43
43
|
|
44
|
-
(def bm-cond-8 ()
|
45
|
-
|
46
|
-
|
44
|
+
;; (def bm-cond-8 ()
|
45
|
+
;; (bm-cond-OR 1)
|
46
|
+
;; (bm-cond-OR nil))
|
47
47
|
|
48
|
-
(def bm-cond-OR-LEX-LEX (x y)
|
49
|
-
|
48
|
+
;; (def bm-cond-OR-LEX-LEX (x y)
|
49
|
+
;; (if x x y))
|
50
50
|
|
51
|
-
(def bm-cond-9 ()
|
52
|
-
|
53
|
-
|
51
|
+
;; (def bm-cond-9 ()
|
52
|
+
;; (bm-cond-OR-LEX-LEX 1)
|
53
|
+
;; (bm-cond-OR-LEX-LEX nil))
|
54
54
|
|
55
|
-
(def bm-cond-10 ()
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
55
|
+
;; (def bm-cond-10 ()
|
56
|
+
;; (bm-cond-OR2 1 2 3)
|
57
|
+
;; (bm-cond-OR2 nil 2 3)
|
58
|
+
;; (bm-cond-OR2 nil nil 3)
|
59
|
+
;; (bm-cond-OR2 nil nil nil))
|
60
60
|
|
61
|
-
(def bm-cond-lex-lit-lit ()
|
62
|
-
|
63
|
-
|
61
|
+
;; (def bm-cond-lex-lit-lit ()
|
62
|
+
;; (no nil)
|
63
|
+
;; (no 1))
|
64
64
|
|
65
|
-
(def bm-faster-do ()
|
66
|
-
|
67
|
-
|
65
|
+
;; (def bm-faster-do ()
|
66
|
+
;; (each x '(0 1 2 3 4 5 6 7 8 9) ;; each uses 'do internally
|
67
|
+
;; x))
|
68
68
|
|
69
|
-
(def bm-pythag ()
|
70
|
-
|
71
|
-
|
72
|
-
|
69
|
+
;; (def bm-pythag ()
|
70
|
+
;; (for i 1 50
|
71
|
+
;; (for j 1 50
|
72
|
+
;; (sqrt (+ (* i i) (* j j))))))
|
73
73
|
|
74
|
-
(def bm-len-str ()
|
75
|
-
|
74
|
+
;; (def bm-len-str ()
|
75
|
+
;; (len "abcd"))
|
76
76
|
|
77
|
-
(def bm-len-pair ()
|
78
|
-
|
77
|
+
;; (def bm-len-pair ()
|
78
|
+
;; (len '(a b c d)))
|
79
79
|
|
80
|
-
(def bm-len-hash ()
|
81
|
-
|
80
|
+
;; (def bm-len-hash ()
|
81
|
+
;; (len {a 1}))
|
82
82
|
|
83
|
-
(def bm-len-fn ()
|
84
|
-
|
83
|
+
;; (def bm-len-fn ()
|
84
|
+
;; (len list))
|
85
85
|
|
86
|
-
(def bm-repeat (f n)
|
87
|
-
|
86
|
+
;; (def bm-repeat (f n)
|
87
|
+
;; (for b 1 n (f)))
|
88
88
|
|
89
|
-
(def bm (desc f repeats iterations)
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
89
|
+
;; (def bm (desc f repeats iterations)
|
90
|
+
;; (p "\n================================================")
|
91
|
+
;; (p "Benchmark: ~desc - ~repeats runs of ~iterations iterations each")
|
92
|
+
;; (let times 0
|
93
|
+
;; (for reps 1 repeats
|
94
|
+
;; (let started (time)
|
95
|
+
;; (bm-repeat f iterations)
|
96
|
+
;; (let elapsed (- (time) started)
|
97
|
+
;; (assign times (+ elapsed times))
|
98
|
+
;; (p " took: ~elapsed ms, ~(/ elapsed iterations) ms per iteration"))))
|
99
|
+
;; (p "total ~(just times), average ~(/ times repeats) per run")
|
100
|
+
;; (p "================================================\n")
|
101
|
+
;; "~desc : total ~(just times), average ~(/ times repeats) per run"))
|
102
102
|
|
103
103
|
;; (assign a 1)
|
104
104
|
;; (assign b 1)
|
@@ -162,22 +162,17 @@
|
|
162
162
|
;; (for i 1 10
|
163
163
|
;; (pre-compile (dox-src rbs))))
|
164
164
|
|
165
|
-
;; (def bm-
|
166
|
-
;;
|
167
|
-
|
168
|
-
;;
|
169
|
-
;;
|
170
|
-
;; (=h.aa
|
171
|
-
;; (=h.ca
|
172
|
-
;; (=h.da
|
173
|
-
;; (
|
174
|
-
;;
|
175
|
-
;;
|
176
|
-
;; (list h.da h.db h.dc h.da h.db h.dc)
|
177
|
-
;; (list h.aa h.ab h.ac h.ba h.bb h.bc)
|
178
|
-
;; (list h.ca h.cb h.cc h.ca h.cb h.cc)
|
179
|
-
;; (list h.da h.db h.dc h.da h.db h.dc)
|
180
|
-
;; (list h.da h.ab h.ac h.ba h.bb h.bc))))
|
165
|
+
;; (def bm-sym-lex-lex-lex () (with (a 1 b 2 c 3) (+ a b c)))
|
166
|
+
;; (def bm-sym-lex-lit-lex () (with (a 1 c 3) (+ a 2 c)))
|
167
|
+
|
168
|
+
;; (def bm-hash-fill ()
|
169
|
+
;; (with (h {} v1 1 v2 2 v3 3 v4 4 v5 5 v6 6)
|
170
|
+
;; (= h.aa v1) (= h.ab v2) (= h.ac v3) (= h.ba v4) (= h.bb v5) (= h.bc v6)
|
171
|
+
;; (= h.ca v1) (= h.cb v2) (= h.cc v3) (= h.ca v4) (= h.cb v5) (= h.cc v6)
|
172
|
+
;; (= h.da v1) (= h.db v2) (= h.dc v3) (= h.da v4) (= h.db v5) (= h.dc v6)
|
173
|
+
;; (= h.aa v1) (= h.ab v2) (= h.ac v3) (= h.ba v4) (= h.bb v5) (= h.bc v6)
|
174
|
+
;; (= h.ca v1) (= h.cb v2) (= h.cc v3) (= h.ca v4) (= h.cb v5) (= h.cc v6)
|
175
|
+
;; (= h.da v1) (= h.db v2) (= h.dc v3) (= h.da v4) (= h.db v5) (= h.dc v6)))
|
181
176
|
|
182
177
|
(def rbs (name)
|
183
178
|
(let summary nil
|
@@ -186,7 +181,10 @@
|
|
186
181
|
;; (push (bm "cond with OR " bm-cond-lex-lit-lit 10 100000) summary)
|
187
182
|
;; (push (bm "optimise DO forms " bm-faster-do 10 10000) summary)
|
188
183
|
;; (push (bm "length of string " bm-len-str 10 40000) summary)
|
189
|
-
(push (bm "length of pair " bm-len-pair
|
184
|
+
;; (push (bm "length of pair " bm-len-pair 10 10000) summary)
|
185
|
+
;; (push (bm "sig opt 1" bm-sym-lex-lex-lex 10 100000) summary)
|
186
|
+
;; (push (bm "sig opt 2" bm-sym-lex-lit-lex 10 100000) summary)
|
187
|
+
;; (push (bm "hashing" bm-hash-fill 10 5000) summary)
|
190
188
|
;; (push (bm "length of hash " bm-len-hash 10 15000) summary)
|
191
189
|
;; (push (bm "length of uncountable " bm-len-fn 10 50000) summary)
|
192
190
|
;; (push (bm "cond " bm-cond-3 10 50000) summary)
|
data/lib/nydp.rb
CHANGED
data/lib/nydp/cond.rb
CHANGED
@@ -147,32 +147,31 @@ module Nydp
|
|
147
147
|
|
148
148
|
class Cond_LEX_LIT_LIT < CondBase # (def no (arg) (cond arg nil t))
|
149
149
|
def execute vm
|
150
|
-
|
151
|
-
vm.push_arg(
|
150
|
+
falsity = Nydp::NIL.is?(@condition.value vm.current_context)
|
151
|
+
vm.push_arg(falsity ? @when_false : @when_true)
|
152
152
|
end
|
153
153
|
end
|
154
154
|
|
155
155
|
class Cond_LEX_LEX_LIT < CondBase
|
156
156
|
def execute vm
|
157
|
-
|
158
|
-
vm.push_arg(
|
157
|
+
falsity = Nydp::NIL.is?(@condition.value vm.current_context)
|
158
|
+
vm.push_arg(falsity ? @when_false : (@when_true.value vm.current_context))
|
159
159
|
end
|
160
160
|
end
|
161
161
|
|
162
162
|
class Cond_LEX_CND_LIT < CondBase
|
163
163
|
def execute vm
|
164
|
-
if
|
165
|
-
@when_true.execute vm
|
166
|
-
else
|
164
|
+
if Nydp::NIL.is?(@condition.value vm.current_context)
|
167
165
|
vm.push_arg @when_false
|
166
|
+
else
|
167
|
+
@when_true.execute vm
|
168
168
|
end
|
169
169
|
end
|
170
170
|
end
|
171
171
|
|
172
172
|
class Cond_SYM < CondBase
|
173
173
|
def execute vm
|
174
|
-
|
175
|
-
vm.instructions.push (truth ? @when_true : @when_false)
|
174
|
+
vm.instructions.push (Nydp::NIL.is?(@condition.value) ? @when_false : @when_true)
|
176
175
|
vm.contexts.push vm.current_context
|
177
176
|
end
|
178
177
|
end
|
@@ -3,10 +3,19 @@ module Nydp
|
|
3
3
|
end
|
4
4
|
|
5
5
|
module Invocation
|
6
|
+
@@sig_counts = Hash.new { |h,k| h[k] = 0}
|
7
|
+
|
8
|
+
# def self.sig name ; @@sig_counts[name] += 1 ; end
|
9
|
+
|
10
|
+
# def self.whazzup
|
11
|
+
# puts @@sig_counts.to_a.sort_by { |c| c[1] }.map { |c| "#{c[1]}\t#{c[0]}"}
|
12
|
+
# end
|
13
|
+
|
6
14
|
class Base
|
7
15
|
include Helper
|
8
|
-
def initialize source_expression
|
16
|
+
def initialize source_expression, sig=nil
|
9
17
|
@source_expression = source_expression
|
18
|
+
@sig = sig
|
10
19
|
end
|
11
20
|
|
12
21
|
def handle e, f, invoker, *args
|
@@ -33,6 +42,7 @@ module Nydp
|
|
33
42
|
|
34
43
|
class Invocation_1 < Invocation::Base
|
35
44
|
def execute vm
|
45
|
+
# Invocation.sig @sig
|
36
46
|
f = vm.args.pop
|
37
47
|
f.invoke_1 vm
|
38
48
|
rescue StandardError => e
|
@@ -42,6 +52,7 @@ module Nydp
|
|
42
52
|
|
43
53
|
class Invocation_2 < Invocation::Base
|
44
54
|
def execute vm
|
55
|
+
# Invocation.sig @sig
|
45
56
|
arg = vm.args.pop
|
46
57
|
f = vm.args.pop
|
47
58
|
f.invoke_2 vm, arg
|
@@ -52,6 +63,7 @@ module Nydp
|
|
52
63
|
|
53
64
|
class Invocation_3 < Invocation::Base
|
54
65
|
def execute vm
|
66
|
+
# Invocation.sig @sig
|
55
67
|
arg_1 = vm.args.pop
|
56
68
|
arg_0 = vm.args.pop
|
57
69
|
f = vm.args.pop
|
@@ -63,6 +75,7 @@ module Nydp
|
|
63
75
|
|
64
76
|
class Invocation_4 < Invocation::Base
|
65
77
|
def execute vm
|
78
|
+
# Invocation.sig @sig
|
66
79
|
arg_2 = vm.args.pop
|
67
80
|
arg_1 = vm.args.pop
|
68
81
|
arg_0 = vm.args.pop
|
@@ -80,6 +93,7 @@ module Nydp
|
|
80
93
|
end
|
81
94
|
|
82
95
|
def execute vm
|
96
|
+
# Invocation.sig @sig
|
83
97
|
args = vm.pop_args @arg_count
|
84
98
|
args.car.invoke vm, args.cdr
|
85
99
|
rescue StandardError => e
|
@@ -98,6 +112,7 @@ module Nydp
|
|
98
112
|
end
|
99
113
|
|
100
114
|
def execute vm
|
115
|
+
# Invocation.sig self.class.name
|
101
116
|
@sym.value(vm.current_context).invoke_1 vm
|
102
117
|
rescue StandardError => e
|
103
118
|
handle e, @sym.value(vm.current_context), :invoke_1
|
@@ -112,6 +127,7 @@ module Nydp
|
|
112
127
|
end
|
113
128
|
|
114
129
|
def execute vm
|
130
|
+
# Invocation.sig self.class.name
|
115
131
|
@sym.value.invoke_1 vm
|
116
132
|
rescue StandardError => e
|
117
133
|
handle e, @sym.value, :invoke_1
|
@@ -127,6 +143,7 @@ module Nydp
|
|
127
143
|
end
|
128
144
|
|
129
145
|
def execute vm
|
146
|
+
# Invocation.sig self.class.name
|
130
147
|
fn = @lex0.value(vm.current_context)
|
131
148
|
a0 = @lex1.value(vm.current_context)
|
132
149
|
fn.invoke_2 vm, a0
|
@@ -144,11 +161,27 @@ module Nydp
|
|
144
161
|
end
|
145
162
|
|
146
163
|
def execute vm
|
147
|
-
|
164
|
+
# Invocation.sig self.class.name
|
148
165
|
a0 = @lex.value(vm.current_context)
|
149
|
-
|
166
|
+
@sym.value.invoke_2 vm, a0
|
150
167
|
rescue StandardError => e
|
151
|
-
handle e,
|
168
|
+
handle e, @sym.value, :invoke_2, a0
|
169
|
+
end
|
170
|
+
end
|
171
|
+
|
172
|
+
class Invocation_SYM_LIT < Invocation::Base
|
173
|
+
SIGS << self.name
|
174
|
+
def initialize expr, src
|
175
|
+
super src
|
176
|
+
@sym = expr.car
|
177
|
+
@lit = expr.cdr.car.expression
|
178
|
+
end
|
179
|
+
|
180
|
+
def execute vm
|
181
|
+
# Invocation.sig self.class.name
|
182
|
+
@sym.value.invoke_2 vm, @lit
|
183
|
+
rescue StandardError => e
|
184
|
+
handle e, @sym.value, :invoke_2, @lit
|
152
185
|
end
|
153
186
|
end
|
154
187
|
|
@@ -162,6 +195,7 @@ module Nydp
|
|
162
195
|
end
|
163
196
|
|
164
197
|
def execute vm
|
198
|
+
# Invocation.sig self.class.name
|
165
199
|
fn = @lex_0.value(vm.current_context)
|
166
200
|
a0 = @lex_1.value(vm.current_context)
|
167
201
|
a1 = @lex_2.value(vm.current_context)
|
@@ -181,12 +215,71 @@ module Nydp
|
|
181
215
|
end
|
182
216
|
|
183
217
|
def execute vm
|
184
|
-
|
218
|
+
# Invocation.sig self.class.name
|
185
219
|
a0 = @lex_0.value(vm.current_context)
|
186
220
|
a1 = @lex_1.value(vm.current_context)
|
187
|
-
|
221
|
+
@sym.value.invoke_3 vm, a0, a1
|
188
222
|
rescue StandardError => e
|
189
|
-
handle e,
|
223
|
+
handle e, @sym.value, :invoke_3, a0, a1
|
224
|
+
end
|
225
|
+
end
|
226
|
+
|
227
|
+
class Invocation_SYM_LEX_LEX_LEX < Invocation::Base
|
228
|
+
SIGS << self.name
|
229
|
+
def initialize expr, src
|
230
|
+
super src
|
231
|
+
@sym = expr.car
|
232
|
+
@lex_0 = expr.cdr.car
|
233
|
+
@lex_1 = expr.cdr.cdr.car
|
234
|
+
@lex_2 = expr.cdr.cdr.cdr.car
|
235
|
+
end
|
236
|
+
|
237
|
+
def execute vm
|
238
|
+
# Invocation.sig self.class.name
|
239
|
+
a0 = @lex_0.value(vm.current_context)
|
240
|
+
a1 = @lex_1.value(vm.current_context)
|
241
|
+
a2 = @lex_2.value(vm.current_context)
|
242
|
+
@sym.value.invoke_4 vm, a0, a1, a2
|
243
|
+
rescue StandardError => e
|
244
|
+
handle e, @sym.value, :invoke_4, a0, a1, a2
|
245
|
+
end
|
246
|
+
end
|
247
|
+
|
248
|
+
class Invocation_SYM_LEX_LIT_LEX < Invocation::Base
|
249
|
+
SIGS << self.name
|
250
|
+
def initialize expr, src
|
251
|
+
super src
|
252
|
+
@sym = expr.car
|
253
|
+
@lex_0 = expr.cdr.car
|
254
|
+
@lit_1 = expr.cdr.cdr.car.expression
|
255
|
+
@lex_2 = expr.cdr.cdr.cdr.car
|
256
|
+
end
|
257
|
+
|
258
|
+
def execute vm
|
259
|
+
# Invocation.sig self.class.name
|
260
|
+
a0 = @lex_0.value(vm.current_context)
|
261
|
+
a2 = @lex_2.value(vm.current_context)
|
262
|
+
@sym.value.invoke_4 vm, a0, @lit_1, a2
|
263
|
+
rescue StandardError => e
|
264
|
+
handle e, @sym.value, :invoke_4, a0, @lit_1, a2
|
265
|
+
end
|
266
|
+
end
|
267
|
+
|
268
|
+
class Invocation_SYM_LIT_LEX < Invocation::Base
|
269
|
+
SIGS << self.name
|
270
|
+
def initialize expr, src
|
271
|
+
super src
|
272
|
+
@sym = expr.car
|
273
|
+
@lit_0 = expr.cdr.car.expression
|
274
|
+
@lex_1 = expr.cdr.cdr.car
|
275
|
+
end
|
276
|
+
|
277
|
+
def execute vm
|
278
|
+
# Invocation.sig self.class.name
|
279
|
+
a1 = @lex_1.value(vm.current_context)
|
280
|
+
@sym.value.invoke_3 vm, @lit_0, a1
|
281
|
+
rescue StandardError => e
|
282
|
+
handle e, @sym.value, :invoke_3, @lit_0, a1
|
190
283
|
end
|
191
284
|
end
|
192
285
|
end
|
@@ -194,7 +287,6 @@ module Nydp
|
|
194
287
|
class FunctionInvocation
|
195
288
|
extend Helper
|
196
289
|
attr_accessor :function_instruction, :argument_instructions
|
197
|
-
@@put = nil
|
198
290
|
|
199
291
|
def self.build expression, bindings
|
200
292
|
compiled = Compiler.compile_each(expression, bindings)
|
@@ -202,6 +294,8 @@ module Nydp
|
|
202
294
|
|
203
295
|
cname = "Invocation_#{invocation_sig}"
|
204
296
|
|
297
|
+
# puts expression.inspect if cname == "Invocation_SYM_LEX_LIT_LEX"
|
298
|
+
|
205
299
|
exists = Invocation::SIGS.include? "Nydp::Invocation::#{cname}"
|
206
300
|
if exists
|
207
301
|
return Nydp::Invocation.const_get(cname).new(compiled, expression)
|
@@ -219,14 +313,16 @@ module Nydp
|
|
219
313
|
else
|
220
314
|
Invocation::Invocation_N.new(expression.size, expression)
|
221
315
|
end
|
222
|
-
new invocation, compiled, expression
|
316
|
+
new invocation, compiled, expression, cname
|
223
317
|
end
|
224
318
|
|
225
|
-
def initialize function_instruction, argument_instructions, source
|
319
|
+
def initialize function_instruction, argument_instructions, source, sig=nil
|
226
320
|
@function_instruction, @argument_instructions, @source = function_instruction, argument_instructions, source
|
321
|
+
@sig = sig
|
227
322
|
end
|
228
323
|
|
229
324
|
def execute vm
|
325
|
+
## Invocation.sig @sig
|
230
326
|
vm.instructions.push function_instruction
|
231
327
|
vm.contexts .push vm.current_context
|
232
328
|
vm.instructions.push argument_instructions
|
data/lib/nydp/literal.rb
CHANGED
data/lib/nydp/version.rb
CHANGED
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.2.
|
4
|
+
version: 0.2.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Conan Dalton
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-05-
|
11
|
+
date: 2017-05-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|