sardonyx 0.1.6 → 0.1.7
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/bin/sdx +1 -1
- data/lib/sdx/vm/datatypes.rb +2 -2
- data/lib/sdx/vm/vm.rb +3 -6
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: '023920f36be61ea604ad6c69e66b71c2f9f9c0696b0a5679e129d7b284e1345e'
|
|
4
|
+
data.tar.gz: 88f14b9b1aa7a253f564c8e40e9e1ad4589b62cc6ef1ead28a4bc08461017db6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: eb029ebb6e35edfa9daf634b6553c69d4adf109af83916341b1809b00e3abbd1bc07eb31175ad94c95742f367c2e5cc06d1fc0e61ce74d4329022895e189c077
|
|
7
|
+
data.tar.gz: c955957d5e26dd5559941c4a24f14ab8d0ba5a39f82c94fd891a3afd6f24be09362bbf83f11b61bc552c277fb52e2ced701e9c6cd3facae9955750d1b5b98f9e
|
data/bin/sdx
CHANGED
data/lib/sdx/vm/datatypes.rb
CHANGED
|
@@ -36,7 +36,7 @@ class NativeFn < DataType
|
|
|
36
36
|
def initialize(arity, val)
|
|
37
37
|
@internal = val
|
|
38
38
|
@fields = {
|
|
39
|
-
"__call" => (NativeFnInternal.new (
|
|
39
|
+
"__call" => (NativeFnInternal.new (lambda do |args, scope|
|
|
40
40
|
args.reverse!
|
|
41
41
|
@internal.call *args
|
|
42
42
|
end)),
|
|
@@ -358,7 +358,7 @@ class Function < DataType
|
|
|
358
358
|
@internal = body
|
|
359
359
|
|
|
360
360
|
@fields = {
|
|
361
|
-
"__call" => (NativeFnInternal.new (
|
|
361
|
+
"__call" => (NativeFnInternal.new (lambda do |args, scope|
|
|
362
362
|
call args, scope
|
|
363
363
|
end)),
|
|
364
364
|
"__arity" => (Int.new args.size)
|
data/lib/sdx/vm/vm.rb
CHANGED
|
@@ -35,12 +35,12 @@ class VM
|
|
|
35
35
|
when Function
|
|
36
36
|
return val.value.fields["__call"].call args.map { |x| to_var x }, val.scope
|
|
37
37
|
else
|
|
38
|
-
return val.value.fields["__call"].call
|
|
38
|
+
return val.value.fields["__call"].call args, val.scope
|
|
39
39
|
end
|
|
40
40
|
elsif val.respond_to? :fields
|
|
41
41
|
return val.fields["__call"].call *args
|
|
42
42
|
else
|
|
43
|
-
return (to_var val).value.call
|
|
43
|
+
return (to_var val).value.call args
|
|
44
44
|
end
|
|
45
45
|
end
|
|
46
46
|
|
|
@@ -356,16 +356,13 @@ class VM
|
|
|
356
356
|
end
|
|
357
357
|
args << this
|
|
358
358
|
end
|
|
359
|
-
f = Proc.new do |args, scope|
|
|
360
|
-
call val, args, scope
|
|
361
|
-
end
|
|
362
359
|
scope = nil
|
|
363
360
|
begin
|
|
364
361
|
scope = val.scope
|
|
365
362
|
rescue
|
|
366
363
|
scope = @global
|
|
367
364
|
end
|
|
368
|
-
ret =
|
|
365
|
+
ret = call val, *args
|
|
369
366
|
if ret
|
|
370
367
|
push_to_stack ret
|
|
371
368
|
end
|