xnd 0.2.0dev6 → 0.2.0dev7
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/README.md +2 -0
- data/Rakefile +1 -1
- data/ext/ruby_xnd/GPATH +0 -0
- data/ext/ruby_xnd/GRTAGS +0 -0
- data/ext/ruby_xnd/GTAGS +0 -0
- data/ext/ruby_xnd/extconf.rb +8 -5
- data/ext/ruby_xnd/gc_guard.c +53 -2
- data/ext/ruby_xnd/gc_guard.h +8 -2
- data/ext/ruby_xnd/include/overflow.h +147 -0
- data/ext/ruby_xnd/include/ruby_xnd.h +62 -0
- data/ext/ruby_xnd/include/xnd.h +590 -0
- data/ext/ruby_xnd/lib/libxnd.a +0 -0
- data/ext/ruby_xnd/lib/libxnd.so +1 -0
- data/ext/ruby_xnd/lib/libxnd.so.0 +1 -0
- data/ext/ruby_xnd/lib/libxnd.so.0.2.0dev3 +0 -0
- data/ext/ruby_xnd/ruby_xnd.c +556 -47
- data/ext/ruby_xnd/ruby_xnd.h +2 -1
- data/ext/ruby_xnd/xnd/Makefile +80 -0
- data/ext/ruby_xnd/xnd/config.h +26 -0
- data/ext/ruby_xnd/xnd/config.h.in +3 -0
- data/ext/ruby_xnd/xnd/config.log +421 -0
- data/ext/ruby_xnd/xnd/config.status +1023 -0
- data/ext/ruby_xnd/xnd/configure +376 -8
- data/ext/ruby_xnd/xnd/configure.ac +48 -7
- data/ext/ruby_xnd/xnd/doc/xnd/index.rst +3 -1
- data/ext/ruby_xnd/xnd/doc/xnd/{types.rst → xnd.rst} +3 -18
- data/ext/ruby_xnd/xnd/libxnd/Makefile +142 -0
- data/ext/ruby_xnd/xnd/libxnd/Makefile.in +43 -3
- data/ext/ruby_xnd/xnd/libxnd/Makefile.vc +19 -3
- data/ext/ruby_xnd/xnd/libxnd/bitmaps.c +42 -3
- data/ext/ruby_xnd/xnd/libxnd/bitmaps.o +0 -0
- data/ext/ruby_xnd/xnd/libxnd/bounds.c +366 -0
- data/ext/ruby_xnd/xnd/libxnd/bounds.o +0 -0
- data/ext/ruby_xnd/xnd/libxnd/contrib.h +98 -0
- data/ext/ruby_xnd/xnd/libxnd/contrib/bfloat16.h +213 -0
- data/ext/ruby_xnd/xnd/libxnd/copy.c +155 -4
- data/ext/ruby_xnd/xnd/libxnd/copy.o +0 -0
- data/ext/ruby_xnd/xnd/libxnd/cuda/cuda_memory.cu +121 -0
- data/ext/ruby_xnd/xnd/libxnd/cuda/cuda_memory.h +58 -0
- data/ext/ruby_xnd/xnd/libxnd/equal.c +195 -7
- data/ext/ruby_xnd/xnd/libxnd/equal.o +0 -0
- data/ext/ruby_xnd/xnd/libxnd/inline.h +32 -0
- data/ext/ruby_xnd/xnd/libxnd/libxnd.a +0 -0
- data/ext/ruby_xnd/xnd/libxnd/libxnd.so +1 -0
- data/ext/ruby_xnd/xnd/libxnd/libxnd.so.0 +1 -0
- data/ext/ruby_xnd/xnd/libxnd/libxnd.so.0.2.0dev3 +0 -0
- data/ext/ruby_xnd/xnd/libxnd/shape.c +207 -0
- data/ext/ruby_xnd/xnd/libxnd/shape.o +0 -0
- data/ext/ruby_xnd/xnd/libxnd/split.c +2 -2
- data/ext/ruby_xnd/xnd/libxnd/split.o +0 -0
- data/ext/ruby_xnd/xnd/libxnd/tests/Makefile +39 -0
- data/ext/ruby_xnd/xnd/libxnd/xnd.c +613 -91
- data/ext/ruby_xnd/xnd/libxnd/xnd.h +145 -4
- data/ext/ruby_xnd/xnd/libxnd/xnd.o +0 -0
- data/ext/ruby_xnd/xnd/python/test_xnd.py +1125 -50
- data/ext/ruby_xnd/xnd/python/xnd/__init__.py +609 -124
- data/ext/ruby_xnd/xnd/python/xnd/_version.py +1 -0
- data/ext/ruby_xnd/xnd/python/xnd/_xnd.c +1652 -101
- data/ext/ruby_xnd/xnd/python/xnd/libxnd.a +0 -0
- data/ext/ruby_xnd/xnd/python/xnd/libxnd.so +1 -0
- data/ext/ruby_xnd/xnd/python/xnd/libxnd.so.0 +1 -0
- data/ext/ruby_xnd/xnd/python/xnd/libxnd.so.0.2.0dev3 +0 -0
- data/ext/ruby_xnd/xnd/python/xnd/pyxnd.h +1 -1
- data/ext/ruby_xnd/xnd/python/xnd/util.h +25 -0
- data/ext/ruby_xnd/xnd/python/xnd/xnd.h +590 -0
- data/ext/ruby_xnd/xnd/python/xnd_randvalue.py +106 -6
- data/ext/ruby_xnd/xnd/python/xnd_support.py +4 -0
- data/ext/ruby_xnd/xnd/setup.py +46 -4
- data/lib/ruby_xnd.so +0 -0
- data/lib/xnd.rb +39 -3
- data/lib/xnd/version.rb +2 -2
- data/xnd.gemspec +2 -1
- metadata +58 -5
@@ -33,9 +33,10 @@
|
|
33
33
|
# Python NDarray and functions for generating test cases.
|
34
34
|
|
35
35
|
from itertools import accumulate, count, product
|
36
|
-
from random import randrange
|
36
|
+
from random import randrange, shuffle
|
37
37
|
from collections import namedtuple
|
38
38
|
from xnd_support import R
|
39
|
+
from ndtypes import ndt
|
39
40
|
|
40
41
|
|
41
42
|
# ======================================================================
|
@@ -59,6 +60,32 @@ EMPTY_TEST_CASES = [
|
|
59
60
|
]
|
60
61
|
|
61
62
|
|
63
|
+
# ======================================================================
|
64
|
+
# Max type for exact conversions
|
65
|
+
# ======================================================================
|
66
|
+
|
67
|
+
maxtype = {
|
68
|
+
ndt("int8"): ndt("int64"),
|
69
|
+
ndt("int16"): ndt("int64"),
|
70
|
+
ndt("int32"): ndt("int64"),
|
71
|
+
ndt("int64"): ndt("int64"),
|
72
|
+
|
73
|
+
ndt("uint8"): ndt("uint64"),
|
74
|
+
ndt("uint16"): ndt("uint64"),
|
75
|
+
ndt("uint32"): ndt("uint64"),
|
76
|
+
ndt("uint64"): ndt("uint64"),
|
77
|
+
|
78
|
+
ndt("bfloat16"): ndt("float64"),
|
79
|
+
ndt("float16"): ndt("float64"),
|
80
|
+
ndt("float32"): ndt("float64"),
|
81
|
+
ndt("float64"): ndt("float64"),
|
82
|
+
|
83
|
+
ndt("complex32"): ndt("complex128"),
|
84
|
+
ndt("complex64"): ndt("complex128"),
|
85
|
+
ndt("complex128"): ndt("complex128"),
|
86
|
+
}
|
87
|
+
|
88
|
+
|
62
89
|
# ======================================================================
|
63
90
|
# Typed values
|
64
91
|
# ======================================================================
|
@@ -207,6 +234,22 @@ DTYPE_EMPTY_TEST_CASES = [
|
|
207
234
|
(R['x': 0, 'y': 2 * [3 * [4 * [5 * [None]]]]], "{x: int64, y: 2 * 3 * Some(4 * 5 * ?float64)}"),
|
208
235
|
(R['x': 0, 'y': 2 * [3 * [4 * [5 * [None]]]]], "{x: int64, y: 2 * 3 * ref(4 * 5 * ?float64)}"),
|
209
236
|
|
237
|
+
# Unions
|
238
|
+
(('X', 0), "[X of int64]"),
|
239
|
+
(('X', 0), "[X of int8 | Y of int64]"),
|
240
|
+
(('X', 0), "[X of int8 | Y of {a: complex128, b: string}]"),
|
241
|
+
|
242
|
+
# Optional unions
|
243
|
+
(None, "?[X of complex64]"),
|
244
|
+
(None, "?[X of int8]"),
|
245
|
+
(None, "?[X of int8 | Y of int64]"),
|
246
|
+
(None, "?[X of uint16 | Y of {z: complex64}]"),
|
247
|
+
(None, "?[X of uint16 | Y of {z: complex64, pack=1}]"),
|
248
|
+
(None, "?[X of 0 * bytes]"),
|
249
|
+
(None, "?[X of 0 * bytes | Y of 0 * string]"),
|
250
|
+
(None, "?[X of 1 * bytes | Y of {y: 2 * complex128, z: 3 * string}]"),
|
251
|
+
(None, "?[X of 1 * bytes | Y of 2 * {a: complex128, b: 10 * 2 * string, z: 3 * string}]"),
|
252
|
+
|
210
253
|
# Primitive types
|
211
254
|
(False, "bool"),
|
212
255
|
(0, "bool"),
|
@@ -863,6 +906,13 @@ EQUAL_TEST_CASES = [
|
|
863
906
|
# Definition of generalized slicing and indexing
|
864
907
|
# ======================================================================
|
865
908
|
|
909
|
+
def have_none(lst):
|
910
|
+
if isinstance(lst, (list, tuple)):
|
911
|
+
return any(have_none(item) for item in lst)
|
912
|
+
if isinstance(lst, dict):
|
913
|
+
return any(have_none(item) for item in lst.values())
|
914
|
+
return lst is None
|
915
|
+
|
866
916
|
def maxlevel(lst):
|
867
917
|
"""Return maximum nesting depth"""
|
868
918
|
maxlev = 0
|
@@ -889,17 +939,22 @@ def getitem(lst, indices):
|
|
889
939
|
if isinstance(i, int):
|
890
940
|
return getitem(item, indices)
|
891
941
|
|
942
|
+
# Empty slice: check if all subsequent indices are in range for the
|
943
|
+
# full slice, raise IndexError otherwise. This is NumPy's behavior.
|
892
944
|
if not item:
|
893
|
-
|
894
|
-
|
895
|
-
|
945
|
+
if lst:
|
946
|
+
_ = getitem(lst, (slice(None),) + indices)
|
947
|
+
elif any(isinstance(k, int) for k in indices):
|
948
|
+
raise IndexError
|
896
949
|
return []
|
897
950
|
|
898
951
|
return [getitem(x, indices) for x in item]
|
899
952
|
|
900
953
|
class NDArray(list):
|
901
954
|
"""A simple wrapper for using generalized slicing/indexing on a list."""
|
902
|
-
def __init__(self, value):
|
955
|
+
def __init__(self, value, dtype=None):
|
956
|
+
if dtype is not None and dtype != "int64":
|
957
|
+
raise ValueError("the only supported dtype is 'int64'")
|
903
958
|
list.__init__(self, value)
|
904
959
|
self.maxlevel = maxlevel(value)
|
905
960
|
|
@@ -1006,6 +1061,14 @@ def rslice(ndim):
|
|
1006
1061
|
step = None if randrange(5) == 4 else step
|
1007
1062
|
return slice(start, stop, step)
|
1008
1063
|
|
1064
|
+
def rslice_neg(ndim):
|
1065
|
+
start = randrange(-ndim-1, ndim+1)
|
1066
|
+
stop = randrange(-ndim-1, ndim+1)
|
1067
|
+
step = 0
|
1068
|
+
while step == 0:
|
1069
|
+
step = randrange(-ndim-1, ndim+1)
|
1070
|
+
return slice(start, stop, step)
|
1071
|
+
|
1009
1072
|
def multislice(ndim):
|
1010
1073
|
return tuple(rslice(ndim) for _ in range(randrange(1, ndim+1)))
|
1011
1074
|
|
@@ -1041,14 +1104,26 @@ def mixed_index(max_ndim):
|
|
1041
1104
|
indices = []
|
1042
1105
|
for i in range(1, ndim+1):
|
1043
1106
|
if randrange(2):
|
1044
|
-
indices.append(randrange(max_ndim))
|
1107
|
+
indices.append(randrange(-max_ndim, max_ndim))
|
1045
1108
|
else:
|
1046
1109
|
indices.append(rslice(ndim))
|
1047
1110
|
return tuple(indices)
|
1048
1111
|
|
1112
|
+
def mixed_index_neg(max_ndim):
|
1113
|
+
ndim = randrange(1, max_ndim+1)
|
1114
|
+
indices = []
|
1115
|
+
for i in range(1, ndim+1):
|
1116
|
+
if randrange(2):
|
1117
|
+
indices.append(randrange(-max_ndim, max_ndim))
|
1118
|
+
else:
|
1119
|
+
indices.append(rslice_neg(ndim))
|
1120
|
+
return tuple(indices)
|
1121
|
+
|
1049
1122
|
def mixed_indices(max_ndim):
|
1050
1123
|
for i in range(5):
|
1051
1124
|
yield mixed_index(max_ndim)
|
1125
|
+
for i in range(5):
|
1126
|
+
yield mixed_index_neg(max_ndim)
|
1052
1127
|
|
1053
1128
|
def itos(indices):
|
1054
1129
|
return ", ".join(str(i) if isinstance(i, int) else "%s:%s:%s" %
|
@@ -1099,6 +1174,7 @@ def column(i, r, q, m, ms):
|
|
1099
1174
|
schedule(step(i, r, q), ms)) + \
|
1100
1175
|
column(i+1, r, q, m, ms)
|
1101
1176
|
|
1177
|
+
|
1102
1178
|
# ======================================================================
|
1103
1179
|
# Split an xnd object into N subtrees
|
1104
1180
|
# ======================================================================
|
@@ -1119,3 +1195,27 @@ def split_xnd(x, n, max_outer=None):
|
|
1119
1195
|
return [x[i] for i in indices_list]
|
1120
1196
|
|
1121
1197
|
|
1198
|
+
# ======================================================================
|
1199
|
+
# Random reshape
|
1200
|
+
# ======================================================================
|
1201
|
+
|
1202
|
+
def prod(lst):
|
1203
|
+
p = 1
|
1204
|
+
for v in lst:
|
1205
|
+
p *= v
|
1206
|
+
return p
|
1207
|
+
|
1208
|
+
def randshape(shape):
|
1209
|
+
if not shape:
|
1210
|
+
return []
|
1211
|
+
s = list(shape)
|
1212
|
+
shuffle(s)
|
1213
|
+
N = len(s)
|
1214
|
+
result = []
|
1215
|
+
while N > 0:
|
1216
|
+
n = randrange(1, N+1)
|
1217
|
+
t = s[:n]
|
1218
|
+
s = s[n:]
|
1219
|
+
result.append(prod(t))
|
1220
|
+
N -= n
|
1221
|
+
return result
|
@@ -90,6 +90,10 @@ def assertEqualWithEx(self, func, x, y):
|
|
90
90
|
|
91
91
|
if xerr is None is yerr:
|
92
92
|
self.assertEqual(xres, yres, msg="x: %s y: %s" % (x.type, y))
|
93
|
+
elif xerr is TypeError and yerr is None and isinstance(y, tuple) and len(y) == 2:
|
94
|
+
# Tagged unions like ('Int', 0) have len() in the Python representation
|
95
|
+
# but are scalars in xnd.
|
96
|
+
pass
|
93
97
|
else:
|
94
98
|
self.assertEqual(xerr, yerr, msg="x: %s y: %s" % (x.type, y))
|
95
99
|
|
data/ext/ruby_xnd/xnd/setup.py
CHANGED
@@ -42,6 +42,7 @@ from glob import glob
|
|
42
42
|
import platform
|
43
43
|
import subprocess
|
44
44
|
import shutil
|
45
|
+
import argparse
|
45
46
|
import warnings
|
46
47
|
|
47
48
|
try:
|
@@ -82,6 +83,15 @@ Links
|
|
82
83
|
|
83
84
|
warnings.simplefilter("ignore", UserWarning)
|
84
85
|
|
86
|
+
|
87
|
+
# Pre-parse and remove the '-j' argument from sys.argv.
|
88
|
+
parser = argparse.ArgumentParser()
|
89
|
+
parser.add_argument('-j', default=None)
|
90
|
+
values, rest = parser.parse_known_args()
|
91
|
+
PARALLEL = values.j
|
92
|
+
sys.argv = sys.argv[:1] + rest
|
93
|
+
|
94
|
+
|
85
95
|
if sys.platform == "darwin":
|
86
96
|
LIBNAME = "libxnd.dylib"
|
87
97
|
LIBSONAME = "libxnd.0.dylib"
|
@@ -209,6 +219,27 @@ elif len(sys.argv) == 2:
|
|
209
219
|
else:
|
210
220
|
pass
|
211
221
|
|
222
|
+
def configure(configure_includes, configure_libs):
|
223
|
+
os.chmod("./configure", 0x1ed) # pip removes execute permissions.
|
224
|
+
make = "make -j%d" % int(PARALLEL) if PARALLEL else "make"
|
225
|
+
os.system("./configure --with-includes='%s' --with-libs='%s' && %s" %
|
226
|
+
(configure_includes, configure_libs, make))
|
227
|
+
|
228
|
+
def get_config_vars():
|
229
|
+
f = open("config.h")
|
230
|
+
config_vars = {}
|
231
|
+
for line in f:
|
232
|
+
if line.startswith("#define"):
|
233
|
+
l = line.split()
|
234
|
+
try:
|
235
|
+
config_vars[l[1]] = int(l[2])
|
236
|
+
except ValueError:
|
237
|
+
pass
|
238
|
+
elif line.startswith("/* #undef"):
|
239
|
+
l = line.split()
|
240
|
+
config_vars[l[2]] = 0
|
241
|
+
f.close()
|
242
|
+
return config_vars
|
212
243
|
|
213
244
|
def xnd_ext():
|
214
245
|
include_dirs = ["libxnd", "ndtypes/python/ndtypes"] + INCLUDES
|
@@ -235,6 +266,11 @@ def xnd_ext():
|
|
235
266
|
os.chdir("..")
|
236
267
|
|
237
268
|
else:
|
269
|
+
if BUILD_ALL:
|
270
|
+
configure(CONFIGURE_INCLUDES, CONFIGURE_LIBS)
|
271
|
+
|
272
|
+
config_vars = get_config_vars()
|
273
|
+
|
238
274
|
extra_compile_args = ["-Wextra", "-Wno-missing-field-initializers", "-std=c11"]
|
239
275
|
if sys.platform == "darwin":
|
240
276
|
libraries = ["ndtypes", "xnd"]
|
@@ -245,10 +281,16 @@ def xnd_ext():
|
|
245
281
|
extra_link_args = []
|
246
282
|
runtime_library_dirs = ["$ORIGIN"]
|
247
283
|
|
248
|
-
if
|
249
|
-
|
250
|
-
|
251
|
-
|
284
|
+
if config_vars["HAVE_CUDA"]:
|
285
|
+
libraries += ["cudart"]
|
286
|
+
|
287
|
+
for d in [
|
288
|
+
"/usr/cuda/lib",
|
289
|
+
"/usr/cuda/lib64",
|
290
|
+
"/usr/local/cuda/lib/",
|
291
|
+
"/usr/local/cuda/lib64"]:
|
292
|
+
if os.path.isdir(d):
|
293
|
+
library_dirs.append(d)
|
252
294
|
|
253
295
|
return Extension (
|
254
296
|
"xnd._xnd",
|
data/lib/ruby_xnd.so
ADDED
Binary file
|
data/lib/xnd.rb
CHANGED
@@ -87,6 +87,14 @@ class XND < RubyXND
|
|
87
87
|
@data.map!(&block)
|
88
88
|
end
|
89
89
|
|
90
|
+
def == other
|
91
|
+
if other.is_a?(XND::T)
|
92
|
+
@data == other.data
|
93
|
+
else
|
94
|
+
@data == other
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
90
98
|
def [] *index
|
91
99
|
@data[index]
|
92
100
|
end
|
@@ -277,8 +285,22 @@ class XND < RubyXND
|
|
277
285
|
end
|
278
286
|
end
|
279
287
|
end
|
288
|
+
|
289
|
+
class << self
|
290
|
+
def empty type, device: nil
|
291
|
+
if device
|
292
|
+
name, no = device.split ":"
|
293
|
+
no = (no == "managed" ? -1 : no.to_i)
|
294
|
+
device = [name, no]
|
295
|
+
end
|
296
|
+
|
297
|
+
RubyXND.empty type, device
|
298
|
+
end
|
299
|
+
end
|
300
|
+
|
280
301
|
|
281
|
-
def initialize data, type: nil, dtype: nil, levels: nil, typedef: nil,
|
302
|
+
def initialize data, type: nil, dtype: nil, levels: nil, typedef: nil,
|
303
|
+
dtypedef: nil, device: nil
|
282
304
|
if [type, dtype, levels, typedef, dtypedef].count(nil) < 2
|
283
305
|
raise ArgumentError, "the 'type', 'dtype', 'levels' and 'typedef' arguments are "
|
284
306
|
"mutually exclusive."
|
@@ -307,8 +329,22 @@ class XND < RubyXND
|
|
307
329
|
data = TypeInference.convert_xnd_t_to_ruby_array data
|
308
330
|
end
|
309
331
|
|
310
|
-
|
332
|
+
if device
|
333
|
+
name, no = device.split ":"
|
334
|
+
no = (no == "managed" ? -1 : no.to_i)
|
335
|
+
device = [name, no]
|
336
|
+
end
|
337
|
+
|
338
|
+
super(type, data, device)
|
339
|
+
end
|
340
|
+
|
341
|
+
def reshape shape, order: nil
|
342
|
+
_reshape(shape, order)
|
343
|
+
end
|
344
|
+
|
345
|
+
def transpose permute: nil
|
346
|
+
_transpose(permute)
|
311
347
|
end
|
312
348
|
|
313
349
|
alias :to_a :value
|
314
|
-
end
|
350
|
+
end # class XND
|
data/lib/xnd/version.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
class RubyXND
|
2
2
|
# VERSION number should be the version of libxnd this is built against.
|
3
|
-
VERSION = "0.2.
|
3
|
+
VERSION = "0.2.0dev7"
|
4
4
|
# Working commit in xnd repo
|
5
|
-
COMMIT =
|
5
|
+
COMMIT = '6f305cd40d90b4f3fc2fe51ae144b433d186a6cc'
|
6
6
|
end
|
data/xnd.gemspec
CHANGED
@@ -40,9 +40,10 @@ Gem::Specification.new do |spec|
|
|
40
40
|
|
41
41
|
spec.add_development_dependency 'minitest', '~> 5.11'
|
42
42
|
spec.add_development_dependency 'minitest-hooks'
|
43
|
+
spec.add_development_dependency 'minitest-fail-fast'
|
43
44
|
spec.add_development_dependency 'rake-compiler'
|
44
45
|
spec.add_development_dependency 'pry'
|
45
46
|
spec.add_development_dependency 'pry-byebug'
|
46
47
|
|
47
|
-
spec.add_runtime_dependency 'ndtypes', '>= 0.2.
|
48
|
+
spec.add_runtime_dependency 'ndtypes', '>= 0.2.0dev6'
|
48
49
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xnd
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.0dev7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sameer Deshmukh
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-08-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: minitest-fail-fast
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: rake-compiler
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -86,14 +100,14 @@ dependencies:
|
|
86
100
|
requirements:
|
87
101
|
- - ">="
|
88
102
|
- !ruby/object:Gem::Version
|
89
|
-
version: 0.2.
|
103
|
+
version: 0.2.0dev6
|
90
104
|
type: :runtime
|
91
105
|
prerelease: false
|
92
106
|
version_requirements: !ruby/object:Gem::Requirement
|
93
107
|
requirements:
|
94
108
|
- - ">="
|
95
109
|
- !ruby/object:Gem::Version
|
96
|
-
version: 0.2.
|
110
|
+
version: 0.2.0dev6
|
97
111
|
description: 'XND is a library for typed data arrays in Ruby. It is a wrapper over
|
98
112
|
the libxnd C library.
|
99
113
|
|
@@ -110,11 +124,21 @@ files:
|
|
110
124
|
- History.md
|
111
125
|
- README.md
|
112
126
|
- Rakefile
|
127
|
+
- ext/ruby_xnd/GPATH
|
128
|
+
- ext/ruby_xnd/GRTAGS
|
129
|
+
- ext/ruby_xnd/GTAGS
|
113
130
|
- ext/ruby_xnd/extconf.rb
|
114
131
|
- ext/ruby_xnd/float_pack_unpack.c
|
115
132
|
- ext/ruby_xnd/float_pack_unpack.h
|
116
133
|
- ext/ruby_xnd/gc_guard.c
|
117
134
|
- ext/ruby_xnd/gc_guard.h
|
135
|
+
- ext/ruby_xnd/include/overflow.h
|
136
|
+
- ext/ruby_xnd/include/ruby_xnd.h
|
137
|
+
- ext/ruby_xnd/include/xnd.h
|
138
|
+
- ext/ruby_xnd/lib/libxnd.a
|
139
|
+
- ext/ruby_xnd/lib/libxnd.so
|
140
|
+
- ext/ruby_xnd/lib/libxnd.so.0
|
141
|
+
- ext/ruby_xnd/lib/libxnd.so.0.2.0dev3
|
118
142
|
- ext/ruby_xnd/memory_block_object.c
|
119
143
|
- ext/ruby_xnd/memory_block_object.h
|
120
144
|
- ext/ruby_xnd/ruby_xnd.c
|
@@ -126,10 +150,14 @@ files:
|
|
126
150
|
- ext/ruby_xnd/xnd/INSTALL.txt
|
127
151
|
- ext/ruby_xnd/xnd/LICENSE.txt
|
128
152
|
- ext/ruby_xnd/xnd/MANIFEST.in
|
153
|
+
- ext/ruby_xnd/xnd/Makefile
|
129
154
|
- ext/ruby_xnd/xnd/Makefile.in
|
130
155
|
- ext/ruby_xnd/xnd/README.rst
|
131
156
|
- ext/ruby_xnd/xnd/config.guess
|
157
|
+
- ext/ruby_xnd/xnd/config.h
|
132
158
|
- ext/ruby_xnd/xnd/config.h.in
|
159
|
+
- ext/ruby_xnd/xnd/config.log
|
160
|
+
- ext/ruby_xnd/xnd/config.status
|
133
161
|
- ext/ruby_xnd/xnd/config.sub
|
134
162
|
- ext/ruby_xnd/xnd/configure
|
135
163
|
- ext/ruby_xnd/xnd/configure.ac
|
@@ -145,17 +173,34 @@ files:
|
|
145
173
|
- ext/ruby_xnd/xnd/doc/xnd/buffer-protocol.rst
|
146
174
|
- ext/ruby_xnd/xnd/doc/xnd/index.rst
|
147
175
|
- ext/ruby_xnd/xnd/doc/xnd/quickstart.rst
|
148
|
-
- ext/ruby_xnd/xnd/doc/xnd/
|
176
|
+
- ext/ruby_xnd/xnd/doc/xnd/xnd.rst
|
149
177
|
- ext/ruby_xnd/xnd/install-sh
|
178
|
+
- ext/ruby_xnd/xnd/libxnd/Makefile
|
150
179
|
- ext/ruby_xnd/xnd/libxnd/Makefile.in
|
151
180
|
- ext/ruby_xnd/xnd/libxnd/Makefile.vc
|
152
181
|
- ext/ruby_xnd/xnd/libxnd/bitmaps.c
|
182
|
+
- ext/ruby_xnd/xnd/libxnd/bitmaps.o
|
183
|
+
- ext/ruby_xnd/xnd/libxnd/bounds.c
|
184
|
+
- ext/ruby_xnd/xnd/libxnd/bounds.o
|
153
185
|
- ext/ruby_xnd/xnd/libxnd/contrib.h
|
186
|
+
- ext/ruby_xnd/xnd/libxnd/contrib/bfloat16.h
|
154
187
|
- ext/ruby_xnd/xnd/libxnd/copy.c
|
188
|
+
- ext/ruby_xnd/xnd/libxnd/copy.o
|
189
|
+
- ext/ruby_xnd/xnd/libxnd/cuda/cuda_memory.cu
|
190
|
+
- ext/ruby_xnd/xnd/libxnd/cuda/cuda_memory.h
|
155
191
|
- ext/ruby_xnd/xnd/libxnd/equal.c
|
192
|
+
- ext/ruby_xnd/xnd/libxnd/equal.o
|
156
193
|
- ext/ruby_xnd/xnd/libxnd/inline.h
|
194
|
+
- ext/ruby_xnd/xnd/libxnd/libxnd.a
|
195
|
+
- ext/ruby_xnd/xnd/libxnd/libxnd.so
|
196
|
+
- ext/ruby_xnd/xnd/libxnd/libxnd.so.0
|
197
|
+
- ext/ruby_xnd/xnd/libxnd/libxnd.so.0.2.0dev3
|
157
198
|
- ext/ruby_xnd/xnd/libxnd/overflow.h
|
199
|
+
- ext/ruby_xnd/xnd/libxnd/shape.c
|
200
|
+
- ext/ruby_xnd/xnd/libxnd/shape.o
|
158
201
|
- ext/ruby_xnd/xnd/libxnd/split.c
|
202
|
+
- ext/ruby_xnd/xnd/libxnd/split.o
|
203
|
+
- ext/ruby_xnd/xnd/libxnd/tests/Makefile
|
159
204
|
- ext/ruby_xnd/xnd/libxnd/tests/Makefile.in
|
160
205
|
- ext/ruby_xnd/xnd/libxnd/tests/Makefile.vc
|
161
206
|
- ext/ruby_xnd/xnd/libxnd/tests/README.txt
|
@@ -164,13 +209,20 @@ files:
|
|
164
209
|
- ext/ruby_xnd/xnd/libxnd/tests/test_fixed.c
|
165
210
|
- ext/ruby_xnd/xnd/libxnd/xnd.c
|
166
211
|
- ext/ruby_xnd/xnd/libxnd/xnd.h
|
212
|
+
- ext/ruby_xnd/xnd/libxnd/xnd.o
|
167
213
|
- ext/ruby_xnd/xnd/python/test_xnd.py
|
168
214
|
- ext/ruby_xnd/xnd/python/xnd/__init__.py
|
215
|
+
- ext/ruby_xnd/xnd/python/xnd/_version.py
|
169
216
|
- ext/ruby_xnd/xnd/python/xnd/_xnd.c
|
170
217
|
- ext/ruby_xnd/xnd/python/xnd/contrib/pretty.py
|
171
218
|
- ext/ruby_xnd/xnd/python/xnd/docstrings.h
|
219
|
+
- ext/ruby_xnd/xnd/python/xnd/libxnd.a
|
220
|
+
- ext/ruby_xnd/xnd/python/xnd/libxnd.so
|
221
|
+
- ext/ruby_xnd/xnd/python/xnd/libxnd.so.0
|
222
|
+
- ext/ruby_xnd/xnd/python/xnd/libxnd.so.0.2.0dev3
|
172
223
|
- ext/ruby_xnd/xnd/python/xnd/pyxnd.h
|
173
224
|
- ext/ruby_xnd/xnd/python/xnd/util.h
|
225
|
+
- ext/ruby_xnd/xnd/python/xnd/xnd.h
|
174
226
|
- ext/ruby_xnd/xnd/python/xnd_randvalue.py
|
175
227
|
- ext/ruby_xnd/xnd/python/xnd_support.py
|
176
228
|
- ext/ruby_xnd/xnd/setup.py
|
@@ -181,6 +233,7 @@ files:
|
|
181
233
|
- ext/ruby_xnd/xnd/vcbuild/vcbuild64.bat
|
182
234
|
- ext/ruby_xnd/xnd/vcbuild/vcclean.bat
|
183
235
|
- ext/ruby_xnd/xnd/vcbuild/vcdistclean.bat
|
236
|
+
- lib/ruby_xnd.so
|
184
237
|
- lib/xnd.rb
|
185
238
|
- lib/xnd/version.rb
|
186
239
|
- xnd.gemspec
|