Skip to content

Commit 78b0e5a

Browse files
committed
Minor changes. Trying to fix performance issue
1 parent c62cac8 commit 78b0e5a

File tree

2 files changed

+56
-16
lines changed

2 files changed

+56
-16
lines changed

librapid/bindings/generators/argument.py

+29-13
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ def __init__(self, *args, **kwargs):
2121
- default
2222
- const
2323
- ref
24-
- move
24+
# - move
2525
- pointer
2626
- noConvert
2727
- returnPolicy
@@ -33,11 +33,11 @@ def __init__(self, *args, **kwargs):
3333
self.name = kwargs.get("name", None)
3434
self.type = kwargs.get("type", None)
3535
self.default = kwargs.get("default", None)
36-
self.const = kwargs.get("const", True)
37-
self.ref = kwargs.get("ref", True)
38-
self.move = kwargs.get("move", False)
39-
self.pointer = kwargs.get("pointer", False)
40-
self.noConvert = kwargs.get("noConvert", False)
36+
self.const = kwargs.get("const", None)
37+
self.ref = kwargs.get("ref", None)
38+
# self.move = kwargs.get("move", None)
39+
self.pointer = kwargs.get("pointer", None)
40+
self.noConvert = kwargs.get("noConvert", None)
4141

4242
for i in range(len(args)):
4343
if i == 0 and self.name is None:
@@ -50,11 +50,11 @@ def __init__(self, *args, **kwargs):
5050
self.const = args[i]
5151
elif i == 4 and self.ref is None:
5252
self.ref = args[i]
53-
elif i == 5 and self.move is None:
54-
self.move = args[i]
55-
elif i == 6 and self.pointer is None:
53+
# elif i == 5 and self.move is None:
54+
# self.move = args[i]
55+
elif i == 5 and self.pointer is None:
5656
self.pointer = args[i]
57-
elif i == 7 and self.noConvert is None:
57+
elif i == 6 and self.noConvert is None:
5858
self.noConvert = args[i]
5959
else:
6060
raise ValueError("Too many arguments")
@@ -65,8 +65,23 @@ def __init__(self, *args, **kwargs):
6565
if self.type is None:
6666
raise ValueError("Argument must have a type")
6767

68-
if self.move and self.ref:
69-
raise ValueError("Argument cannot be both a move and a reference")
68+
if self.const is None:
69+
self.const = False
70+
71+
if self.ref is None:
72+
self.ref = False
73+
74+
# if self.move is None:
75+
# self.move = False
76+
77+
if self.pointer is None:
78+
self.pointer = False
79+
80+
if self.noConvert is None:
81+
self.noConvert = False
82+
83+
# if self.move and self.ref:
84+
# raise ValueError("Argument cannot be both a move and a reference")
7085

7186
self.isArgs = self.name == "*args"
7287
self.isKwargs = self.name == "**kwargs"
@@ -78,7 +93,8 @@ def param(self):
7893
return f"py::kwargs kwargs"
7994
else:
8095
isPrimitiveType = isPrimitive(self.type)
81-
return f"{'const ' if self.const and not isPrimitiveType else ''}{self.type} {'&' if self.ref and not isPrimitiveType else ''}{'&&' if self.move else ''}{'*' if self.pointer else ''}{self.name}"
96+
# return f"{'const ' if self.const and not isPrimitiveType and not self.move else ''}{self.type} {'&' if self.ref and not isPrimitiveType else ''}{'&&' if self.move else ''}{'*' if self.pointer else ''}{self.name}"
97+
return f"{'const ' if self.const and not isPrimitiveType else ''}{self.type} {'&' if self.ref and not isPrimitiveType else ''}{'*' if self.pointer else ''}{self.name}"
8298

8399
def declaration(self):
84100
if self.default is None:

librapid/bindings/generators/arrayGenerator.py

+27-3
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,33 @@ def generateFunctionsForArray(config):
3737
function.Function(
3838
name="__init__",
3939
args=[]
40-
)
41-
]
40+
),
41+
42+
# Copy constructor
43+
function.Function(
44+
name="__init__",
45+
args=[
46+
argument.Argument(
47+
name="other",
48+
type=generateCppArrayType(config),
49+
const=True,
50+
ref=True
51+
)
52+
]
53+
),
54+
55+
# # Move constructor
56+
# function.Function(
57+
# name="__init__",
58+
# args=[
59+
# argument.Argument(
60+
# name="other",
61+
# type=generateCppArrayType(config),
62+
# move=True
63+
# )
64+
# ]
65+
# )
66+
],
4267

4368
# Static fromData (n dimensions)
4469
for n in range(1, 9):
@@ -390,7 +415,6 @@ def writeArray(root, config):
390415
# Run clang-format if possible
391416
try:
392417
import subprocess
393-
394418
subprocess.run(["clang-format", "-i", fileType.path])
395419
except Exception as e:
396420
print("Unable to run clang-format:", e)

0 commit comments

Comments
 (0)