diff --git a/.vscodeignore b/.vscodeignore index 16fb8d7..7c6e527 100644 --- a/.vscodeignore +++ b/.vscodeignore @@ -11,3 +11,4 @@ vsc-extension-quickstart.md **/*.map **/*.ts node_modules/** +scripts/** diff --git a/CHANGELOG.md b/CHANGELOG.md index 010912b..038878c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,26 @@ # Change Log +## Pre-Release (1.3.1) + +- Allow offline editing of SDFGs (adding / deleting elements etc.) +- Add auto-opening SDFG and instrumentation report preference to the extension + settings +- Allow exporting of SDFG transformations to JSON files +- Integrate the new local view for close-up memory reuse analysis +- Improved error reporting from the DaCe daemon +- Various bugfixes and improvements + +## 1.2 + +### 1.2.0 + +- Allow loading of custom transformations +- Enable specializing SDFGs through the SDFG Analysis panel +- Make the built-in minimap toggleable +- Adopt a pre-release system +- Support workspace trust +- Various bugfixes and improvements + ## 1.1 ### 1.1.0 @@ -94,7 +115,7 @@ - Provide interactive instrumentation of SDFGs. - Provide visualization of instrumentation reports on SDFGs. - - If a runtime report is generated, prompt the user to display it ontop of the + - If a runtime report is generated, prompt the user to display it ontop of the currently active SDFG. - Provide running of SDFGs. - Run SDFGs normally, or run with profiling - this runs N times and reports diff --git a/backend/dace_vscode/arith_ops.py b/backend/dace_vscode/arith_ops.py index faf56c7..b50b900 100644 --- a/backend/dace_vscode/arith_ops.py +++ b/backend/dace_vscode/arith_ops.py @@ -10,7 +10,11 @@ from dace import nodes, dtypes import sympy -from dace_vscode.utils import get_uuid, load_sdfg_from_json +from dace_vscode.utils import ( + get_uuid, + load_sdfg_from_json, + get_exception_message, +) def symeval(val, symbols): @@ -211,10 +215,26 @@ def get_arith_ops(sdfg_json): return loaded['error'] sdfg = loaded['sdfg'] - propagation.propagate_memlets_sdfg(sdfg) - - arith_map = {} - create_arith_ops_map(sdfg, arith_map, {}) - return { - 'arithOpsMap': arith_map, - } + try: + propagation.propagate_memlets_sdfg(sdfg) + except Exception as e: + return { + 'error': { + 'message': 'Failed to propagate memlets through SDFG', + 'details': get_exception_message(e), + }, + } + + try: + arith_map = {} + create_arith_ops_map(sdfg, arith_map, {}) + return { + 'arithOpsMap': arith_map, + } + except Exception as e: + return { + 'error': { + 'message': 'Failed to count arithmetic operations', + 'details': get_exception_message(e), + }, + } diff --git a/backend/dace_vscode/editing.py b/backend/dace_vscode/editing.py deleted file mode 100644 index db41fff..0000000 --- a/backend/dace_vscode/editing.py +++ /dev/null @@ -1,157 +0,0 @@ -# Copyright 2020-2022 ETH Zurich and the DaCe-VSCode authors. -# All rights reserved. - -from dace import ( - nodes, SDFG, SDFGState, InterstateEdge, Memlet, dtypes -) -from dace_vscode.utils import ( - load_sdfg_from_json, - find_graph_element_by_uuid, - get_uuid, - disable_save_metadata, - restore_save_metadata, -) -import pydoc - - -def remove_sdfg_elements(sdfg_json, uuids): - from dace.sdfg.graph import Edge - - old_meta = disable_save_metadata() - - loaded = load_sdfg_from_json(sdfg_json) - if loaded['error'] is not None: - return loaded['error'] - sdfg = loaded['sdfg'] - - elements = [] - for uuid in uuids: - elements.append(find_graph_element_by_uuid(sdfg, uuid)) - - for element_ret in elements: - element = element_ret['element'] - parent = element_ret['parent'] - - if parent is not None and element is not None: - if isinstance(element, Edge): - parent.remove_edge(element) - else: - parent.remove_node(element) - else: - return { - 'error': { - 'message': 'Failed to delete element', - 'details': 'Element or parent not found', - }, - } - - new_sdfg = sdfg.to_json() - restore_save_metadata(old_meta) - - return { - 'sdfg': new_sdfg, - } - - -def insert_sdfg_element(sdfg_str, type, parent_uuid, edge_a_uuid): - sdfg_answer = load_sdfg_from_json(sdfg_str) - sdfg = sdfg_answer['sdfg'] - uuid = 'error' - ret = find_graph_element_by_uuid(sdfg, parent_uuid) - parent = ret['element'] - - libname = None - if type is not None and isinstance(type, str): - split_type = type.split('|') - if len(split_type) == 2: - type = split_type[0] - libname = split_type[1] - - if type == 'SDFGState': - if parent is None: - parent = sdfg - elif isinstance(parent, nodes.NestedSDFG): - parent = parent.sdfg - state = parent.add_state() - uuid = [get_uuid(state)] - elif type == 'AccessNode': - arrays = list(parent.parent.arrays.keys()) - if len(arrays) == 0: - parent.parent.add_array('tmp', [1], dtype=dtypes.float64) - arrays = list(parent.parent.arrays.keys()) - node = parent.add_access(arrays[0]) - uuid = [get_uuid(node, parent)] - elif type == 'Map': - map_entry, map_exit = parent.add_map('map', dict(i='0:1')) - uuid = [get_uuid(map_entry, parent), get_uuid(map_exit, parent)] - elif type == 'Consume': - consume_entry, consume_exit = parent.add_consume('consume', ('i', '1')) - uuid = [get_uuid(consume_entry, parent), get_uuid(consume_exit, parent)] - elif type == 'Tasklet': - tasklet = parent.add_tasklet( - name='placeholder', - inputs={'in'}, - outputs={'out'}, - code='') - uuid = [get_uuid(tasklet, parent)] - elif type == 'NestedSDFG': - sub_sdfg = SDFG('nested_sdfg') - sub_sdfg.add_array('in', [1], dtypes.float32) - sub_sdfg.add_array('out', [1], dtypes.float32) - - nsdfg = parent.add_nested_sdfg(sub_sdfg, sdfg, {'in'}, {'out'}) - uuid = [get_uuid(nsdfg, parent)] - elif type == 'LibraryNode': - if libname is None: - return { - 'error': { - 'message': 'Failed to add library node', - 'details': 'Must provide a valid library node type', - }, - } - libnode_class = pydoc.locate(libname) - libnode = libnode_class() - parent.add_node(libnode) - uuid = [get_uuid(libnode, parent)] - elif type == 'Edge': - edge_start_ret = find_graph_element_by_uuid(sdfg, edge_a_uuid) - edge_start = edge_start_ret['element'] - edge_parent = edge_start_ret['parent'] - if edge_start is not None: - if edge_parent is None: - edge_parent = sdfg - - if isinstance(edge_parent, SDFGState): - if not (isinstance(edge_start, nodes.Node) and - isinstance(parent, nodes.Node)): - return { - 'error': { - 'message': 'Failed to add edge', - 'details': 'Must connect two nodes or two states', - }, - } - memlet = Memlet() - edge_parent.add_edge(edge_start, None, parent, None, memlet) - elif isinstance(edge_parent, SDFG): - if not (isinstance(edge_start, SDFGState) and - isinstance(parent, SDFGState)): - return { - 'error': { - 'message': 'Failed to add edge', - 'details': 'Must connect two nodes or two states', - }, - } - isedge = InterstateEdge() - edge_parent.add_edge(edge_start, parent, isedge) - uuid = ['NONE'] - else: - raise ValueError('No edge starting point provided') - - old_meta = disable_save_metadata() - new_sdfg_str = sdfg.to_json() - restore_save_metadata(old_meta) - - return { - 'sdfg': new_sdfg_str, - 'uuid': uuid, - } diff --git a/backend/dace_vscode/transformations.py b/backend/dace_vscode/transformations.py index 0c6d90c..517e83f 100644 --- a/backend/dace_vscode/transformations.py +++ b/backend/dace_vscode/transformations.py @@ -35,27 +35,36 @@ def expand_library_node(json_in): except KeyError: sdfg_id, state_id, node_id = None, None, None - if sdfg_id is None: - sdfg.expand_library_nodes() - else: - context_sdfg = sdfg.sdfg_list[sdfg_id] - state = context_sdfg.node(state_id) - node = state.node(node_id) - if isinstance(node, nodes.LibraryNode): - node.expand(context_sdfg, state) + try: + if sdfg_id is None: + sdfg.expand_library_nodes() else: - return { - 'error': { - 'message': 'Failed to expand library node', - 'details': 'The provided node is not a valid library node', - }, - } + context_sdfg = sdfg.sdfg_list[sdfg_id] + state = context_sdfg.node(state_id) + node = state.node(node_id) + if isinstance(node, nodes.LibraryNode): + node.expand(context_sdfg, state) + else: + return { + 'error': { + 'message': 'Failed to expand library node', + 'details': + 'The provided node is not a valid library node', + }, + } - new_sdfg = sdfg.to_json() - utils.restore_save_metadata(old_meta) - return { - 'sdfg': new_sdfg, - } + new_sdfg = sdfg.to_json() + utils.restore_save_metadata(old_meta) + return { + 'sdfg': new_sdfg, + } + except Exception as e: + return { + 'error': { + 'message': 'Failed to expand library node', + 'details': utils.get_exception_message(e), + }, + } def reapply_history_until(sdfg_json, index): @@ -77,9 +86,11 @@ def reapply_history_until(sdfg_json, index): history = sdfg.transformation_hist for i in range(index + 1): - transformation = history[i] - transformation._sdfg = original_sdfg.sdfg_list[transformation.sdfg_id] try: + transformation = history[i] + transformation._sdfg = original_sdfg.sdfg_list[ + transformation.sdfg_id + ] if isinstance(transformation, SubgraphTransformation): transformation._sdfg.append_transformation(transformation) transformation.apply( @@ -92,10 +103,20 @@ def reapply_history_until(sdfg_json, index): except Exception as e: print(traceback.format_exc(), file=sys.stderr) sys.stderr.flush() + hist_nr = i + 1 + hist_nr_string = str(hist_nr) + if (hist_nr - 1) % 10 == 0 and (hist_nr) != 11: + hist_nr_string += 'st' + elif (hist_nr - 2) % 10 == 0 and hist_nr != 12: + hist_nr_string += 'nd' + else: + hist_nr_string += 'th' return { 'error': { - 'message': - 'Failed to play back the transformation history', + 'message': ( + 'Failed to play back the transformation history, ' + + 'failed at ' + hist_nr_string + ' history point' + ), 'details': utils.get_exception_message(e), }, } @@ -152,17 +173,25 @@ def apply_transformation(sdfg_json, transformation_json): def add_custom_transformations(filepaths): - for xf_path in filepaths: - if not xf_path in sys.modules: - xf_module_spec = importlib.util.spec_from_file_location( - xf_path, xf_path - ) - xf_module = importlib.util.module_from_spec(xf_module_spec) - sys.modules[xf_path] = xf_module - xf_module_spec.loader.exec_module(xf_module) - return { - 'done': True, - } + try: + for xf_path in filepaths: + if not xf_path in sys.modules: + xf_module_spec = importlib.util.spec_from_file_location( + xf_path, xf_path + ) + xf_module = importlib.util.module_from_spec(xf_module_spec) + sys.modules[xf_path] = xf_module + xf_module_spec.loader.exec_module(xf_module) + return { + 'done': True, + } + except Exception as e: + return { + 'error': { + 'message': 'Failed to load custom transformation(s)', + 'details': utils.get_exception_message(e), + }, + } def get_transformations(sdfg_json, selected_elements, permissive): @@ -178,79 +207,91 @@ def get_transformations(sdfg_json, selected_elements, permissive): return loaded['error'] sdfg = loaded['sdfg'] - optimizer = SDFGOptimizer(sdfg) try: - matches = optimizer.get_pattern_matches(permissive=permissive) - except TypeError: - # Compatibility with versions older than 0.12 - matches = optimizer.get_pattern_matches(strict=not permissive) + optimizer = SDFGOptimizer(sdfg) + try: + matches = optimizer.get_pattern_matches(permissive=permissive) + except TypeError: + # Compatibility with versions older than 0.12 + matches = optimizer.get_pattern_matches(strict=not permissive) - transformations = [] - docstrings = {} - for transformation in matches: - transformations.append(transformation.to_json()) - docstrings[type(transformation).__name__] = transformation.__doc__ + transformations = [] + docstrings = {} + for transformation in matches: + transformations.append(transformation.to_json()) + docstrings[type(transformation).__name__] = transformation.__doc__ - selected_states = [ - utils.sdfg_find_state_from_element(sdfg, n) for n in selected_elements - if n['type'] == 'state' - ] - selected_nodes = [ - utils.sdfg_find_node_from_element(sdfg, n) for n in selected_elements - if n['type'] == 'node' - ] - selected_sdfg_ids = list(set(elem['sdfgId'] for elem in selected_elements)) - selected_sdfg = sdfg - if len(selected_sdfg_ids) > 1: - return { - 'transformations': transformations, - 'docstrings': docstrings, - 'warnings': 'More than one SDFG selected, ignoring subgraph', - } - elif len(selected_sdfg_ids) == 1: - selected_sdfg = sdfg.sdfg_list[selected_sdfg_ids[0]] - - subgraph = None - if len(selected_states) > 0: - subgraph = SubgraphView(selected_sdfg, selected_states) - else: - violated = False - state = None - for node in selected_nodes: - if state is None: - state = node.state - elif state != node.state: - violated = True - break - if not violated and state is not None: - subgraph = SubgraphView(state, selected_nodes) + selected_states = [ + utils.sdfg_find_state_from_element(sdfg, n) + for n in selected_elements + if n['type'] == 'state' + ] + selected_nodes = [ + utils.sdfg_find_node_from_element(sdfg, n) + for n in selected_elements + if n['type'] == 'node' + ] + selected_sdfg_ids = list( + set(elem['sdfgId'] for elem in selected_elements) + ) + selected_sdfg = sdfg + if len(selected_sdfg_ids) > 1: + return { + 'transformations': transformations, + 'docstrings': docstrings, + 'warnings': 'More than one SDFG selected, ignoring subgraph', + } + elif len(selected_sdfg_ids) == 1: + selected_sdfg = sdfg.sdfg_list[selected_sdfg_ids[0]] - if subgraph is not None: - if hasattr(SubgraphTransformation, 'extensions'): - # Compatibility with versions older than 0.12 - extensions = SubgraphTransformation.extensions() + subgraph = None + if len(selected_states) > 0: + subgraph = SubgraphView(selected_sdfg, selected_states) else: - extensions = SubgraphTransformation.subclasses_recursive() + violated = False + state = None + for node in selected_nodes: + if state is None: + state = node.state + elif state != node.state: + violated = True + break + if not violated and state is not None: + subgraph = SubgraphView(state, selected_nodes) - for xform in extensions: - # Subgraph transformations are single-state. - if len(selected_states) > 0: - continue - xform_obj = None - try: - xform_obj = xform() - xform_obj.setup_match(subgraph) - except: - # If the above method throws an exception, it might be because - # an older version of dace (<= 0.13.1) is being used - attempt - # to construct subgraph transformations using the old API. - xform_obj = xform(subgraph) - if xform_obj.can_be_applied(selected_sdfg, subgraph): - transformations.append(xform_obj.to_json()) - docstrings[xform.__name__] = xform_obj.__doc__ + if subgraph is not None: + if hasattr(SubgraphTransformation, 'extensions'): + # Compatibility with versions older than 0.12 + extensions = SubgraphTransformation.extensions() + else: + extensions = SubgraphTransformation.subclasses_recursive() - utils.restore_save_metadata(old_meta) - return { - 'transformations': transformations, - 'docstrings': docstrings, - } + for xform in extensions: + # Subgraph transformations are single-state. + if len(selected_states) > 0: + continue + xform_obj = None + try: + xform_obj = xform() + xform_obj.setup_match(subgraph) + except: + # If the above method throws an exception, it might be because + # an older version of dace (<= 0.13.1) is being used - attempt + # to construct subgraph transformations using the old API. + xform_obj = xform(subgraph) + if xform_obj.can_be_applied(selected_sdfg, subgraph): + transformations.append(xform_obj.to_json()) + docstrings[xform.__name__] = xform_obj.__doc__ + + utils.restore_save_metadata(old_meta) + return { + 'transformations': transformations, + 'docstrings': docstrings, + } + except Exception as e: + return { + 'error': { + 'message': 'Failed to load transformations', + 'details': utils.get_exception_message(e), + }, + } diff --git a/backend/run_dace.py b/backend/run_dace.py index 89adf3b..3ebde79 100644 --- a/backend/run_dace.py +++ b/backend/run_dace.py @@ -3,7 +3,6 @@ ##################################################################### # Before importing anything, try to take the ".env" file into account -import json import os import re import sys @@ -54,12 +53,13 @@ load_sdfg_from_file, disable_save_metadata, restore_save_metadata, + get_exception_message, ) -from dace_vscode import transformations, editing, arith_ops +from dace_vscode import transformations, arith_ops meta_dict = {} -def get_property_metdata(force_regenerate=False): +def get_property_metadata(force_regenerate=False): """ Generate a dictionary of class properties and their metadata. This iterates over all classes registered as serializable in DaCe's serialization module, checks whether there are properties present @@ -270,15 +270,32 @@ def compile_sdfg(path, suppress_instrumentation=False): return loaded['error'] sdfg = loaded['sdfg'] - if suppress_instrumentation: - _sdfg_remove_instrumentations(sdfg) + try: + if suppress_instrumentation: + _sdfg_remove_instrumentations(sdfg) + except Exception as e: + return { + 'error': { + 'message': ('Failed to remove instrumentation from SDFG ' + + 'for compiling'), + 'details': get_exception_message(e), + }, + } - compiled_sdfg: CompiledSDFG = sdfg.compile() + try: + compiled_sdfg: CompiledSDFG = sdfg.compile() - restore_save_metadata(old_meta) - return { - 'filename': compiled_sdfg.filename, - } + restore_save_metadata(old_meta) + return { + 'filename': compiled_sdfg.filename, + } + except Exception as e: + return { + 'error': { + 'message': 'Failed to compile SDFG', + 'details': get_exception_message(e), + }, + } def specialize_sdfg(path, symbol_map, remove_undef=True): @@ -289,25 +306,34 @@ def specialize_sdfg(path, symbol_map, remove_undef=True): return loaded['error'] sdfg: dace.sdfg.SDFG = loaded['sdfg'] - sdfg.specialize(symbol_map) + try: + cleaned_map = { k: int(v) for k, v in symbol_map.items() } + sdfg.specialize(cleaned_map) - # Remove any constants that are not defined anymore in the symbol map, if - # the remove_undef flag is set. - if remove_undef: - delkeys = set() - for key in sdfg.constants_prop: - if (key not in symbol_map or symbol_map[key] is None or - symbol_map[key] == 0): - delkeys.add(key) - for key in delkeys: - del sdfg.constants_prop[key] + # Remove any constants that are not defined anymore in the symbol map, + # if the remove_undef flag is set. + if remove_undef: + delkeys = set() + for key in sdfg.constants_prop: + if (key not in symbol_map or symbol_map[key] is None or + symbol_map[key] == 0): + delkeys.add(key) + for key in delkeys: + del sdfg.constants_prop[key] - ret_sdfg = sdfg.to_json() + ret_sdfg = sdfg.to_json() - restore_save_metadata(old_meta) - return { - 'sdfg': ret_sdfg, - } + restore_save_metadata(old_meta) + return { + 'sdfg': ret_sdfg, + } + except Exception as e: + return { + 'error': { + 'message': 'Failed to specialize SDFG', + 'details': get_exception_message(e), + }, + } def run_daemon(port): @@ -390,23 +416,9 @@ def _specialize_sdfg(): request_json = request.get_json() return specialize_sdfg(request_json['path'], request_json['symbol_map']) - @daemon.route('/insert_sdfg_element', methods=['POST']) - def _insert_sdfg_element(): - request_json = request.get_json() - return editing.insert_sdfg_element(request_json['sdfg'], - request_json['type'], - request_json['parent'], - request_json['edge_a']) - - @daemon.route('/remove_sdfg_elements', methods=['POST']) - def _remove_sdfg_elements(): - request_json = request.get_json() - return editing.remove_sdfg_elements(request_json['sdfg'], - request_json['uuids']) - @daemon.route('/get_metadata', methods=['GET']) def _get_metadata(): - return get_property_metdata() + return get_property_metadata() daemon.run(port=port) diff --git a/media/components/sdfv/index.html b/media/components/sdfv/index.html index bae6fdf..2fc684c 100644 --- a/media/components/sdfv/index.html +++ b/media/components/sdfv/index.html @@ -58,7 +58,7 @@
-
+
@@ -67,7 +67,7 @@
-
+
diff --git a/package-lock.json b/package-lock.json index 3c6691b..3534126 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,15 +1,15 @@ { "name": "sdfv", - "version": "1.3.0", + "version": "1.3.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "sdfv", - "version": "1.3.0", + "version": "1.3.1", "dependencies": { "@popperjs/core": "^2.10.1", - "@spcl/sdfv": "^1.0.0", + "@spcl/sdfv": "^1.0.29-beta.12", "@types/dagre": "^0.7.46", "@types/jquery": "^3.5.6", "bootstrap": "^5.0.2", @@ -45,7 +45,7 @@ "sass-loader": "^12.1.0", "style-loader": "^3.2.1", "ts-loader": "^9.2.6", - "typescript": "^3.9.9", + "typescript": "^4.7.0", "vscode-test": "^1.5.2", "webpack": "^5.73.0", "webpack-cli": "^4.10.0" @@ -55,33 +55,33 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", "dev": true, "dependencies": { - "@babel/highlight": "^7.16.7" + "@babel/highlight": "^7.18.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", + "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.12.tgz", - "integrity": "sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-validator-identifier": "^7.18.6", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -161,9 +161,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.3.tgz", - "integrity": "sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz", + "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==", "dependencies": { "regenerator-runtime": "^0.13.4" }, @@ -221,12 +221,12 @@ "dev": true }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", - "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", "dev": true, "dependencies": { - "@jridgewell/set-array": "^1.0.0", + "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", "@jridgewell/trace-mapping": "^0.3.9" }, @@ -235,18 +235,18 @@ } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", - "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", "dev": true, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/set-array": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz", - "integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", "dev": true, "engines": { "node": ">=6.0.0" @@ -263,15 +263,15 @@ } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.13", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz", - "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==", + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz", - "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==", + "version": "0.3.14", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", + "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", @@ -313,6 +313,367 @@ "node": ">= 8" } }, + "node_modules/@pixi/accessibility": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/accessibility/-/accessibility-6.1.3.tgz", + "integrity": "sha512-JK6rtqfC2/rnJt1xLPznH2lNH0Jx9f2Py7uh50VM1sqoYrkyAAegenbOdyEzgB35Q4oQji3aBkTsWn2mrwXp/g==", + "peerDependencies": { + "@pixi/core": "6.1.3", + "@pixi/display": "6.1.3", + "@pixi/utils": "6.1.3" + } + }, + "node_modules/@pixi/app": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/app/-/app-6.1.3.tgz", + "integrity": "sha512-gryDVXuzErRIgY5G2CRQH6fZM7Pk3m1CFEInXEKa4rmVzfwRz+3OeU0YNSnD9atPAS5C2TaAzE4yOSHH2+wESQ==", + "peerDependencies": { + "@pixi/core": "6.1.3", + "@pixi/display": "6.1.3" + } + }, + "node_modules/@pixi/compressed-textures": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/compressed-textures/-/compressed-textures-6.1.3.tgz", + "integrity": "sha512-FO2B7GhDMlZA0fnpH2PvNOh6ZlRxQoJnNlpjzNw+x1nvF9h3+V6dbFoG9oBC5zAisTfacdfoo1TdT789Oh+kTg==", + "peerDependencies": { + "@pixi/constants": "6.1.3", + "@pixi/core": "6.1.3", + "@pixi/loaders": "6.1.3", + "@pixi/utils": "6.1.3" + } + }, + "node_modules/@pixi/constants": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/constants/-/constants-6.1.3.tgz", + "integrity": "sha512-Qvz/SIxw+dQ6P9niOEdILWX2DQ5FnGA0XZNFLW/3amekzad/+WqHobL+Mg5S6A4/a9mXTnqjyB0BqhhtLfpFkA==" + }, + "node_modules/@pixi/core": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/core/-/core-6.1.3.tgz", + "integrity": "sha512-UQsR1Q7c+Zcvtu6HrYMidvoyF/j9n3b4WXPh3ojuNV6+ZIvps3rznoZYaIx6foEJNhj7HM9fMObsimGP+FB36A==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/pixijs" + }, + "peerDependencies": { + "@pixi/constants": "6.1.3", + "@pixi/math": "6.1.3", + "@pixi/runner": "6.1.3", + "@pixi/settings": "6.1.3", + "@pixi/ticker": "6.1.3", + "@pixi/utils": "6.1.3" + } + }, + "node_modules/@pixi/display": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/display/-/display-6.1.3.tgz", + "integrity": "sha512-8/GdapJVKfl6PUkxX/Et5zB1aXny+uy353cQX886KJ6dGle82fQAYjIn7I6Xm+JiZWOhWo0N6KE9cjotO0rroA==", + "peerDependencies": { + "@pixi/math": "6.1.3", + "@pixi/settings": "6.1.3", + "@pixi/utils": "6.1.3" + } + }, + "node_modules/@pixi/extract": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/extract/-/extract-6.1.3.tgz", + "integrity": "sha512-yZOsXc9Lh+U59ayl+DoWDPmndrOJj5ft2nzENMAvz2rVEOHQjWxH73qCSP6Wa5VsoINyJLMmV4MTbI+U0SH7GA==", + "peerDependencies": { + "@pixi/core": "6.1.3", + "@pixi/math": "6.1.3", + "@pixi/utils": "6.1.3" + } + }, + "node_modules/@pixi/filter-alpha": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/filter-alpha/-/filter-alpha-6.1.3.tgz", + "integrity": "sha512-eubgEO/qlxQbuPXgwxTZxTBTWjA0EQbrs7TyPqyBK2Wj0eEvimaVQ8u4eiqfMFJCZLnuWDCAPJpP9bMHxBXXpQ==", + "peerDependencies": { + "@pixi/core": "6.1.3" + } + }, + "node_modules/@pixi/filter-blur": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/filter-blur/-/filter-blur-6.1.3.tgz", + "integrity": "sha512-uo8FHpV+qm4SuXcDnWqZWrznHmLJ3b8ibgLAgi/e8VmwrFiC+EqGa4n4V8J+xtR5P/iA3lT5pRgWw09/xHN3dQ==", + "peerDependencies": { + "@pixi/core": "6.1.3", + "@pixi/settings": "6.1.3" + } + }, + "node_modules/@pixi/filter-color-matrix": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/filter-color-matrix/-/filter-color-matrix-6.1.3.tgz", + "integrity": "sha512-d1pyxmVrGDOrO5pINe+fTspj1NNxiIp2IZ+FGgT7e17xnxjXTvtk4n4KqXAZFS1NCoStImDAV5j+b8Lysdg5jQ==", + "peerDependencies": { + "@pixi/core": "6.1.3" + } + }, + "node_modules/@pixi/filter-displacement": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/filter-displacement/-/filter-displacement-6.1.3.tgz", + "integrity": "sha512-tIXK8vXzb2unMxGmu4gjdlOwddnkHA0IJXFTOF25a5h36v/AHqWwWG4h5G775oPu37UuhuYjeD/j229t0Q9QNQ==", + "peerDependencies": { + "@pixi/core": "6.1.3", + "@pixi/math": "6.1.3" + } + }, + "node_modules/@pixi/filter-fxaa": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/filter-fxaa/-/filter-fxaa-6.1.3.tgz", + "integrity": "sha512-yhKVxX5vFKQz3lxfqAGg4XoajFyIRR8XzWqEHgAsPMFRnIIQIbF25bMRygZj12P61z3vxwqAM/2bn7S46Ii1zQ==", + "peerDependencies": { + "@pixi/core": "6.1.3" + } + }, + "node_modules/@pixi/filter-noise": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/filter-noise/-/filter-noise-6.1.3.tgz", + "integrity": "sha512-oVRtcJwbN6VnAnvXZuLEZ0c12JUzporao5AziXgRAUjTMA3bFVE0/7Dx193Kx/l6UAasmzhWQctuv6NMxy5Efw==", + "peerDependencies": { + "@pixi/core": "6.1.3" + } + }, + "node_modules/@pixi/graphics": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/graphics/-/graphics-6.1.3.tgz", + "integrity": "sha512-e5O47yECRp5WXWIvKhLDQKpiak7CfIqJzuTuQIyE7jXp8QiJNw+aoWNlJEd4ksKbsDkP3EE39CxlmiaBpxNL3w==", + "peerDependencies": { + "@pixi/constants": "6.1.3", + "@pixi/core": "6.1.3", + "@pixi/display": "6.1.3", + "@pixi/math": "6.1.3", + "@pixi/sprite": "6.1.3", + "@pixi/utils": "6.1.3" + } + }, + "node_modules/@pixi/interaction": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/interaction/-/interaction-6.1.3.tgz", + "integrity": "sha512-ju3fE/KnO6KZChnZzZAdY6bfjlSh7/igZcVcd/MZRkAdNozx4QoN5sYmwrcvTvA5llMYaThSIRWgIHQiSlbOfQ==", + "peerDependencies": { + "@pixi/core": "6.1.3", + "@pixi/display": "6.1.3", + "@pixi/math": "6.1.3", + "@pixi/ticker": "6.1.3", + "@pixi/utils": "6.1.3" + } + }, + "node_modules/@pixi/loaders": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/loaders/-/loaders-6.1.3.tgz", + "integrity": "sha512-qOvy72bsVGzCmWyoofm6dm1l//hd+bJneidngplwsovpqnnyMfuewCpQjeLRL6rLqcHR40V1+Qo4iJ+ElMdVZQ==", + "peerDependencies": { + "@pixi/constants": "6.1.3", + "@pixi/core": "6.1.3", + "@pixi/utils": "6.1.3" + } + }, + "node_modules/@pixi/math": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/math/-/math-6.1.3.tgz", + "integrity": "sha512-1bLZeHpG38Bz6TESwxayNbL7tztOd7gpZDXS5OiBB9n8SFZeKlWfRQ/aJrvjoBz2qsZf9gGeVKsHpC/FJz0qnA==" + }, + "node_modules/@pixi/mesh": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/mesh/-/mesh-6.1.3.tgz", + "integrity": "sha512-TF9eKNQdowozVOr4G05+Auku2EK8XwDXKYVvMYvt6Tsn2DLSrRhWl7xYyj4EuTjW/4eaP/c2QqY18cEMoMtJiQ==", + "peerDependencies": { + "@pixi/constants": "6.1.3", + "@pixi/core": "6.1.3", + "@pixi/display": "6.1.3", + "@pixi/math": "6.1.3", + "@pixi/settings": "6.1.3", + "@pixi/utils": "6.1.3" + } + }, + "node_modules/@pixi/mesh-extras": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/mesh-extras/-/mesh-extras-6.1.3.tgz", + "integrity": "sha512-HuTV8SkTQZDU1bmHmJWRo+4Hiz89oCuOonE3ckfqsoAoULfImgU72qqNIq7Vxmnu3kXoXAwV+fvOl49OzWl4+w==", + "peerDependencies": { + "@pixi/constants": "6.1.3", + "@pixi/core": "6.1.3", + "@pixi/math": "6.1.3", + "@pixi/mesh": "6.1.3", + "@pixi/utils": "6.1.3" + } + }, + "node_modules/@pixi/mixin-cache-as-bitmap": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/mixin-cache-as-bitmap/-/mixin-cache-as-bitmap-6.1.3.tgz", + "integrity": "sha512-mEa0kn3Mou3KhbAUpaGnvmPz/ifI/41af1N6kVcTz1V8cu4BI/f74xLv5pKkQtp+xzWlquGo/2z9urkrRFD6qA==", + "peerDependencies": { + "@pixi/core": "6.1.3", + "@pixi/display": "6.1.3", + "@pixi/math": "6.1.3", + "@pixi/settings": "6.1.3", + "@pixi/sprite": "6.1.3", + "@pixi/utils": "6.1.3" + } + }, + "node_modules/@pixi/mixin-get-child-by-name": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/mixin-get-child-by-name/-/mixin-get-child-by-name-6.1.3.tgz", + "integrity": "sha512-HHrnA1MtsMSyW0lOnBlklHp7j3JGYHIyick4b8F8p8eKqOFiAVdLzf4tmX/fKF4zs6i7DuYKE8G9Z7vpAhyrFg==", + "peerDependencies": { + "@pixi/display": "6.1.3" + } + }, + "node_modules/@pixi/mixin-get-global-position": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/mixin-get-global-position/-/mixin-get-global-position-6.1.3.tgz", + "integrity": "sha512-XqhEyViMlGOS+p2LKW2tFjQy4ghbARKriwgY10MGvNApHHZbUDL3VKM1EmR6F2Xj8PPmycWRw/0oBu148O2KhQ==", + "peerDependencies": { + "@pixi/display": "6.1.3", + "@pixi/math": "6.1.3" + } + }, + "node_modules/@pixi/particle-container": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/particle-container/-/particle-container-6.1.3.tgz", + "integrity": "sha512-pZqRRL5Yx2Yy30cdjsNEXRpTfl1WEf640ZLVHX2+fcKcWftPJaIXQZR+0aLvijyWF3VA4O/r/8IxhYgiMkqAUQ==", + "peerDependencies": { + "@pixi/constants": "6.1.3", + "@pixi/core": "6.1.3", + "@pixi/display": "6.1.3", + "@pixi/math": "6.1.3", + "@pixi/utils": "6.1.3" + } + }, + "node_modules/@pixi/polyfill": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/polyfill/-/polyfill-6.1.3.tgz", + "integrity": "sha512-e+g2sHK/ORKDOrhJ86zZgdMSkQNzKdkaMw/UUFZ5wEUJgltoqF7H0zwNVPPO/1m7hfrN02PBMinYtXM+qFdY/A==", + "dependencies": { + "object-assign": "^4.1.1", + "promise-polyfill": "^8.2.0" + } + }, + "node_modules/@pixi/prepare": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/prepare/-/prepare-6.1.3.tgz", + "integrity": "sha512-zjv81fPJjdQyWGCbA9Ij04GfwJUYA3j6/vFyJFaDKVMqEWzNDJwu40G00P23BXh3F5dYL638EXvyLYDQavjseg==", + "peerDependencies": { + "@pixi/core": "6.1.3", + "@pixi/display": "6.1.3", + "@pixi/graphics": "6.1.3", + "@pixi/settings": "6.1.3", + "@pixi/text": "6.1.3", + "@pixi/ticker": "6.1.3" + } + }, + "node_modules/@pixi/runner": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/runner/-/runner-6.1.3.tgz", + "integrity": "sha512-hJw7O9enlei7Cp5/j2REKuUjvyyC4BGqmVycmt01jTYyphRYMNQgyF+OjwrL7nidZMXnCVzfNKWi8e5+c4wssg==" + }, + "node_modules/@pixi/settings": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/settings/-/settings-6.1.3.tgz", + "integrity": "sha512-laKwS4/R+bTQokKIeMeMO4orvSNTMWUpNRXJbDq7N29bCrA5pT6BW+LNZ+4gJs4TFK/s9bmP/xU5BlPVKHRoyg==", + "dependencies": { + "ismobilejs": "^1.1.0" + } + }, + "node_modules/@pixi/sprite": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/sprite/-/sprite-6.1.3.tgz", + "integrity": "sha512-TzvqeRV+bbxFbucR74c28wcDsCbXic+5dONM+fy31ejAIraKbigzKbgHxH6opgLEMMh5APzmJPlwntYdEUGSXQ==", + "peerDependencies": { + "@pixi/constants": "6.1.3", + "@pixi/core": "6.1.3", + "@pixi/display": "6.1.3", + "@pixi/math": "6.1.3", + "@pixi/settings": "6.1.3", + "@pixi/utils": "6.1.3" + } + }, + "node_modules/@pixi/sprite-animated": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/sprite-animated/-/sprite-animated-6.1.3.tgz", + "integrity": "sha512-COrFkmcMPxyv3zGRJJrNB2nOdaeDEOYTkbxUcNxMSJ7eT3O3PUX5XEvfOW7bl2zHkt8XraIQ66uwWychqGHx7Q==", + "peerDependencies": { + "@pixi/core": "6.1.3", + "@pixi/sprite": "6.1.3", + "@pixi/ticker": "6.1.3" + } + }, + "node_modules/@pixi/sprite-tiling": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/sprite-tiling/-/sprite-tiling-6.1.3.tgz", + "integrity": "sha512-om+RrModhNFljb8C1fhpGKtgt5k5AW9gCjFfeBPN+5pVdVjtc/luyO2Cbubpeow9YQldrUZri9it63GBo07Cfw==", + "peerDependencies": { + "@pixi/constants": "6.1.3", + "@pixi/core": "6.1.3", + "@pixi/display": "6.1.3", + "@pixi/math": "6.1.3", + "@pixi/sprite": "6.1.3", + "@pixi/utils": "6.1.3" + } + }, + "node_modules/@pixi/spritesheet": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/spritesheet/-/spritesheet-6.1.3.tgz", + "integrity": "sha512-QUqAYUzn/+0JlzrLo7ASIFzJSteGZuNMxKwyFL29JtttUIjdJlXe3+jrfUMAu6gewYd9HVYkXJ0ODhH8PH6KpA==", + "peerDependencies": { + "@pixi/core": "6.1.3", + "@pixi/loaders": "6.1.3", + "@pixi/math": "6.1.3", + "@pixi/utils": "6.1.3" + } + }, + "node_modules/@pixi/text": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/text/-/text-6.1.3.tgz", + "integrity": "sha512-R0D3cbwwLbQOfobja4NGhq0bF7biCfNE3PXsOmTEsWOroVJqUexIob5XZXoT9Avy3B8nlrB2Hyl5imIQx60jFw==", + "peerDependencies": { + "@pixi/core": "6.1.3", + "@pixi/math": "6.1.3", + "@pixi/settings": "6.1.3", + "@pixi/sprite": "6.1.3", + "@pixi/utils": "6.1.3" + } + }, + "node_modules/@pixi/text-bitmap": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/text-bitmap/-/text-bitmap-6.1.3.tgz", + "integrity": "sha512-x46qOVoosl67dBrG3mgd2eQx3A9NTxWUnzgRpk5vsNfLLNRu6XlM+YoscRMuHT5sLEEBLewjcVxzAAkrSW45eQ==", + "peerDependencies": { + "@pixi/core": "6.1.3", + "@pixi/display": "6.1.3", + "@pixi/loaders": "6.1.3", + "@pixi/math": "6.1.3", + "@pixi/mesh": "6.1.3", + "@pixi/settings": "6.1.3", + "@pixi/text": "6.1.3", + "@pixi/utils": "6.1.3" + } + }, + "node_modules/@pixi/ticker": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/ticker/-/ticker-6.1.3.tgz", + "integrity": "sha512-ZSuhe5HrmkDoqSIZjETUGYCQr/EbtDQGngq0LQLAgblyhAJbi4p/B3uf2XGfRNZ7Tdxdl0j81BmUqBEu2+DeoA==", + "peerDependencies": { + "@pixi/settings": "6.1.3" + } + }, + "node_modules/@pixi/utils": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/utils/-/utils-6.1.3.tgz", + "integrity": "sha512-05mm9TBbpYorYO3ALC4CVgR5K6sA/0uhnwE/Zl4ZhNJZN699LrIr0OWFQhxhySeGUPMDaizeEZpn2rhx+CYYpg==", + "dependencies": { + "@types/earcut": "^2.1.0", + "earcut": "^2.2.2", + "eventemitter3": "^3.1.0", + "url": "^0.11.0" + }, + "peerDependencies": { + "@pixi/constants": "6.1.3", + "@pixi/settings": "6.1.3" + } + }, "node_modules/@popperjs/core": { "version": "2.11.5", "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.5.tgz", @@ -323,20 +684,30 @@ } }, "node_modules/@spcl/sdfv": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/@spcl/sdfv/-/sdfv-1.0.28.tgz", - "integrity": "sha512-pMHrfD50qblH1Lw6gqTgBXwhF33tIv+BRmGTUCrF3+gHRH2MjhV38gqf+NFkI3gZmofLnATEG38ZdM36sJY3ow==", + "version": "1.0.29-beta.12", + "resolved": "https://registry.npmjs.org/@spcl/sdfv/-/sdfv-1.0.29-beta.12.tgz", + "integrity": "sha512-YhmKVJ4BRG3TUewWweTB6VqrVdlp/3N9lF0Q1JGA7Vc7LtdfhrmoLu0H4x36PneQvdrO/+N0tY3WGTmUMEe+tA==", + "hasInstallScript": true, "dependencies": { "@babel/runtime": "^7.17.2", "@types/mathjs": "^6.0.11", "assert": "^2.0.0", "browserify-zlib": "^0.2.0", "buffer": "^6.0.3", + "chart.js": "^3.8.0", + "chartjs-plugin-annotation": "^1.4.0", + "coffeequate": "^1.3.0", "dagre": "^0.8.5", "jquery": "^3.6.0", "mathjs": "^10.0.0", + "patch-package": "^6.4.7", + "pixi-viewport": "4.24", + "pixi.js": "6.1.3", "process": "^0.11.10", "stream-browserify": "^3.0.0" + }, + "engines": { + "node": ">=18.4.0" } }, "node_modules/@tootallnate/once": { @@ -353,10 +724,15 @@ "resolved": "https://registry.npmjs.org/@types/dagre/-/dagre-0.7.47.tgz", "integrity": "sha512-oX+3aRf7L6Cqq1MvbWmmD7FpAU/T8URwFFuHBagAiyHILn3i+RNZ35/tvyq28de+lZGY3W19BxJ7FeITQDO7aA==" }, + "node_modules/@types/earcut": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@types/earcut/-/earcut-2.1.1.tgz", + "integrity": "sha512-w8oigUCDjElRHRRrMvn/spybSMyX8MTkKA5Dv+tS1IE/TgmNZPqUYtvYBXGY8cieSE66gm+szeK+bnbxC2xHTQ==" + }, "node_modules/@types/eslint": { - "version": "8.4.3", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.3.tgz", - "integrity": "sha512-YP1S7YJRMPs+7KZKDb9G63n8YejIwW9BALq7a5j2+H4yl6iOv9CB29edho+cuFRrvmJbbaH2yiVChKLJVysDGw==", + "version": "8.4.5", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.5.tgz", + "integrity": "sha512-dhsC09y1gpJWnK+Ff4SGvCuSnk9DaU0BJZSzOwa6GVSg65XtTugLBITDAAzRU5duGBoXBHpdR/9jHGxJjNflJQ==", "dev": true, "dependencies": { "@types/estree": "*", @@ -364,9 +740,9 @@ } }, "node_modules/@types/eslint-scope": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", - "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", "dev": true, "dependencies": { "@types/eslint": "*", @@ -450,20 +826,20 @@ "integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==" }, "node_modules/@types/vscode": { - "version": "1.68.0", - "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.68.0.tgz", - "integrity": "sha512-duBwEK5ta/eBBMJMQ7ECMEsMvlE3XJdRGh3xoS1uOO4jl2Z4LPBl5vx8WvBP10ERAgDRmIt/FaSD4RHyBGbChw==", + "version": "1.69.0", + "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.69.0.tgz", + "integrity": "sha512-RlzDAnGqUoo9wS6d4tthNyAdZLxOIddLiX3djMoWk29jFfSA1yJbIwr0epBYqqYarWB6s2Z+4VaZCQ80Jaa3kA==", "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.29.0.tgz", - "integrity": "sha512-kgTsISt9pM53yRFQmLZ4npj99yGl3x3Pl7z4eA66OuTzAGC4bQB5H5fuLwPnqTKU3yyrrg4MIhjF17UYnL4c0w==", + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.31.0.tgz", + "integrity": "sha512-VKW4JPHzG5yhYQrQ1AzXgVgX8ZAJEvCz0QI6mLRX4tf7rnFfh5D8SKm0Pq6w5PyNfAWJk6sv313+nEt3ohWMBQ==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.29.0", - "@typescript-eslint/type-utils": "5.29.0", - "@typescript-eslint/utils": "5.29.0", + "@typescript-eslint/scope-manager": "5.31.0", + "@typescript-eslint/type-utils": "5.31.0", + "@typescript-eslint/utils": "5.31.0", "debug": "^4.3.4", "functional-red-black-tree": "^1.0.1", "ignore": "^5.2.0", @@ -489,14 +865,14 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.29.0.tgz", - "integrity": "sha512-ruKWTv+x0OOxbzIw9nW5oWlUopvP/IQDjB5ZqmTglLIoDTctLlAJpAQFpNPJP/ZI7hTT9sARBosEfaKbcFuECw==", + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.31.0.tgz", + "integrity": "sha512-UStjQiZ9OFTFReTrN+iGrC6O/ko9LVDhreEK5S3edmXgR396JGq7CoX2TWIptqt/ESzU2iRKXAHfSF2WJFcWHw==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.29.0", - "@typescript-eslint/types": "5.29.0", - "@typescript-eslint/typescript-estree": "5.29.0", + "@typescript-eslint/scope-manager": "5.31.0", + "@typescript-eslint/types": "5.31.0", + "@typescript-eslint/typescript-estree": "5.31.0", "debug": "^4.3.4" }, "engines": { @@ -516,13 +892,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.29.0.tgz", - "integrity": "sha512-etbXUT0FygFi2ihcxDZjz21LtC+Eps9V2xVx09zFoN44RRHPrkMflidGMI+2dUs821zR1tDS6Oc9IXxIjOUZwA==", + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.31.0.tgz", + "integrity": "sha512-8jfEzBYDBG88rcXFxajdVavGxb5/XKXyvWgvD8Qix3EEJLCFIdVloJw+r9ww0wbyNLOTYyBsR+4ALNGdlalLLg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.29.0", - "@typescript-eslint/visitor-keys": "5.29.0" + "@typescript-eslint/types": "5.31.0", + "@typescript-eslint/visitor-keys": "5.31.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -533,12 +909,12 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.29.0.tgz", - "integrity": "sha512-JK6bAaaiJozbox3K220VRfCzLa9n0ib/J+FHIwnaV3Enw/TO267qe0pM1b1QrrEuy6xun374XEAsRlA86JJnyg==", + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.31.0.tgz", + "integrity": "sha512-7ZYqFbvEvYXFn9ax02GsPcEOmuWNg+14HIf4q+oUuLnMbpJ6eHAivCg7tZMVwzrIuzX3QCeAOqKoyMZCv5xe+w==", "dev": true, "dependencies": { - "@typescript-eslint/utils": "5.29.0", + "@typescript-eslint/utils": "5.31.0", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -559,9 +935,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.29.0.tgz", - "integrity": "sha512-X99VbqvAXOMdVyfFmksMy3u8p8yoRGITgU1joBJPzeYa0rhdf5ok9S56/itRoUSh99fiDoMtarSIJXo7H/SnOg==", + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.31.0.tgz", + "integrity": "sha512-/f/rMaEseux+I4wmR6mfpM2wvtNZb1p9hAV77hWfuKc3pmaANp5dLAZSiE3/8oXTYTt3uV9KW5yZKJsMievp6g==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -572,13 +948,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.29.0.tgz", - "integrity": "sha512-mQvSUJ/JjGBdvo+1LwC+GY2XmSYjK1nAaVw2emp/E61wEVYEyibRHCqm1I1vEKbXCpUKuW4G7u9ZCaZhJbLoNQ==", + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.31.0.tgz", + "integrity": "sha512-3S625TMcARX71wBc2qubHaoUwMEn+l9TCsaIzYI/ET31Xm2c9YQ+zhGgpydjorwQO9pLfR/6peTzS/0G3J/hDw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.29.0", - "@typescript-eslint/visitor-keys": "5.29.0", + "@typescript-eslint/types": "5.31.0", + "@typescript-eslint/visitor-keys": "5.31.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -599,15 +975,15 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.29.0.tgz", - "integrity": "sha512-3Eos6uP1nyLOBayc/VUdKZikV90HahXE5Dx9L5YlSd/7ylQPXhLk1BYb29SDgnBnTp+jmSZUU0QxUiyHgW4p7A==", + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.31.0.tgz", + "integrity": "sha512-kcVPdQS6VIpVTQ7QnGNKMFtdJdvnStkqS5LeALr4rcwx11G6OWb2HB17NMPnlRHvaZP38hL9iK8DdE9Fne7NYg==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.29.0", - "@typescript-eslint/types": "5.29.0", - "@typescript-eslint/typescript-estree": "5.29.0", + "@typescript-eslint/scope-manager": "5.31.0", + "@typescript-eslint/types": "5.31.0", + "@typescript-eslint/typescript-estree": "5.31.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" }, @@ -623,12 +999,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.29.0.tgz", - "integrity": "sha512-Hpb/mCWsjILvikMQoZIE3voc9wtQcS0A9FUw3h8bhr9UxBdtI/tw1ZDZUOXHXLOVMedKCH5NxyzATwnU78bWCQ==", + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.31.0.tgz", + "integrity": "sha512-ZK0jVxSjS4gnPirpVjXHz7mgdOsZUHzNYSfTw2yPa3agfbt9YfqaBiBZFSSxeBWnpWkzCxTfUpnzA3Vily/CSg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.29.0", + "@typescript-eslint/types": "5.31.0", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -833,10 +1209,15 @@ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "dev": true }, + "node_modules/@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==" + }, "node_modules/acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -1077,8 +1458,7 @@ "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "node_modules/base64-js": { "version": "1.5.1", @@ -1146,22 +1526,27 @@ "dev": true }, "node_modules/bootstrap": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.1.3.tgz", - "integrity": "sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/bootstrap" - }, + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.2.0.tgz", + "integrity": "sha512-qlnS9GL6YZE6Wnef46GxGv1UpGGzAwO0aPL1yOjzDIJpeApeMvqV24iL+pjr2kU4dduoBA9fINKWKgMToobx9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/twbs" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + } + ], "peerDependencies": { - "@popperjs/core": "^2.10.2" + "@popperjs/core": "^2.11.5" } }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -1171,7 +1556,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, "dependencies": { "fill-range": "^7.0.1" }, @@ -1194,9 +1578,9 @@ } }, "node_modules/browserslist": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.0.tgz", - "integrity": "sha512-UQxE0DIhRB5z/zDz9iA03BOfxaN2+GQdBYH/2WrSIWEUrnpzTPJbhqt+umq6r3acaPRTW1FNTkrcp0PXgtFkvA==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", + "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", "dev": true, "funding": [ { @@ -1209,10 +1593,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001358", - "electron-to-chromium": "^1.4.164", - "node-releases": "^2.0.5", - "update-browserslist-db": "^1.0.0" + "caniuse-lite": "^1.0.30001370", + "electron-to-chromium": "^1.4.202", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.5" }, "bin": { "browserslist": "cli.js" @@ -1299,9 +1683,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001358", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001358.tgz", - "integrity": "sha512-hvp8PSRymk85R20bsDra7ZTCpSVGN/PAz9pSAjPSjKC+rNmnUk5vCRgJwiTT/O4feQ/yu/drvZYpKxxhbFuChw==", + "version": "1.0.30001370", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001370.tgz", + "integrity": "sha512-3PDmaP56wz/qz7G508xzjx8C+MC2qEm4SYhSEzC9IBROo+dGXFWRuaXkWti0A9tuI00g+toiriVqxtWMgl350g==", "dev": true, "funding": [ { @@ -1342,6 +1726,19 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/chart.js": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.8.2.tgz", + "integrity": "sha512-7rqSlHWMUKFyBDOJvmFGW2lxULtcwaPLegDjX/Nu5j6QybY+GCiQkEY+6cqHw62S5tcwXMD8Y+H5OBGoR7d+ZQ==" + }, + "node_modules/chartjs-plugin-annotation": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/chartjs-plugin-annotation/-/chartjs-plugin-annotation-1.4.0.tgz", + "integrity": "sha512-OC0eGoVvdxTtGGi8mV3Dr+G1YmMhtYYQWqGMb2uWcgcnyiBslaRKPofKwAYWPbh7ABnmQNsNDQLIKPH+XiaZLA==", + "peerDependencies": { + "chart.js": "^3.1.0" + } + }, "node_modules/chokidar": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", @@ -1384,6 +1781,11 @@ "node": ">=6.0" } }, + "node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" + }, "node_modules/cliui": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", @@ -1444,6 +1846,11 @@ "node": ">=6" } }, + "node_modules/coffeequate": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/coffeequate/-/coffeequate-1.3.0.tgz", + "integrity": "sha512-xm5YwemNnxIWUxkMPO6gbsbBN0aeU8UU41T2hD6GQKGzB6y0lSL5VZ6pW66R3PZvsh2RDtnJ8JUEqkxO7IJ0Zg==" + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -1489,8 +1896,7 @@ "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "node_modules/copy-webpack-plugin": { "version": "11.0.0", @@ -1754,10 +2160,15 @@ "safe-buffer": "~5.1.0" } }, + "node_modules/earcut": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz", + "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==" + }, "node_modules/electron-to-chromium": { - "version": "1.4.167", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.167.tgz", - "integrity": "sha512-lPHuHXBwpkr4RcfaZBKm6TKOWG/1N9mVggUpP4fY3l1JIUU2x4fkM8928smYdZ5lF+6KCTAxo1aK9JmqT+X71Q==", + "version": "1.4.202", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.202.tgz", + "integrity": "sha512-JYsK2ex9lmQD27kj19fhXYxzFJ/phLAkLKHv49A5UY6kMRV2xED3qMMLg/voW/+0AR6wMiI+VxlmK9NDtdxlPA==", "dev": true }, "node_modules/emoji-regex": { @@ -1776,9 +2187,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz", - "integrity": "sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow==", + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", + "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", "dev": true, "dependencies": { "graceful-fs": "^4.2.4", @@ -1922,9 +2333,9 @@ } }, "node_modules/eslint": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.18.0.tgz", - "integrity": "sha512-As1EfFMVk7Xc6/CvhssHUjsAQSkpfXvUGMFC3ce8JDe6WvqCgRrLOBQbVpsBFr1X1V+RACOadnzVvcUS5ni2bA==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.20.0.tgz", + "integrity": "sha512-d4ixhz5SKCa1D6SCPrivP7yYVi7nyD6A4vs6HIAul9ujBzcEmZVM3/0NN/yu5nKhmO1wjp5xQ46iRfmDGlOviA==", "dev": true, "dependencies": { "@eslint/eslintrc": "^1.3.0", @@ -2131,6 +2542,11 @@ "node": ">=0.10.0" } }, + "node_modules/eventemitter3": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" + }, "node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", @@ -2187,10 +2603,13 @@ "dev": true }, "node_modules/fastest-levenshtein": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", - "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", - "dev": true + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.14.tgz", + "integrity": "sha512-tFfWHjnuUfKE186Tfgr+jtaFc0mZTApEgKDOeyN+FwOqRkO/zK/3h1AiRd8u8CY53owL3CUmGr/oI9p/RdyLTA==", + "dev": true, + "engines": { + "node": ">= 4.9.1" + } }, "node_modules/fastq": { "version": "1.13.0", @@ -2255,7 +2674,6 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, "dependencies": { "to-regex-range": "^5.0.1" }, @@ -2275,6 +2693,14 @@ "node": ">=6" } }, + "node_modules/find-yarn-workspace-root": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz", + "integrity": "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==", + "dependencies": { + "micromatch": "^4.0.2" + } + }, "node_modules/flat": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz", @@ -2301,9 +2727,9 @@ } }, "node_modules/flatted": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.6.tgz", + "integrity": "sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==", "dev": true }, "node_modules/for-each": { @@ -2326,11 +2752,23 @@ "url": "https://www.patreon.com/infusion" } }, + "node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "node_modules/fsevents": { "version": "2.1.3", @@ -2451,7 +2889,6 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -2486,9 +2923,9 @@ "dev": true }, "node_modules/globals": { - "version": "13.15.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", - "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -2523,8 +2960,7 @@ "node_modules/graceful-fs": { "version": "4.2.10", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" }, "node_modules/graphlib": { "version": "2.1.8", @@ -2737,7 +3173,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -2863,6 +3298,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, "node_modules/is-core-module": { "version": "2.9.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", @@ -2889,6 +3335,20 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -2963,7 +3423,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, "engines": { "node": ">=0.12.0" } @@ -3077,6 +3536,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -3086,8 +3556,12 @@ "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/ismobilejs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ismobilejs/-/ismobilejs-1.1.1.tgz", + "integrity": "sha512-VaFW53yt8QO61k2WJui0dHf4SlL8lxBofUuUmwBo0ljPk0Drz2TiuDW4jo3wDcv41qy/SxrJ+VAzJ/qYqsmzRw==" }, "node_modules/isobject": { "version": "3.0.1", @@ -3193,6 +3667,14 @@ "node": ">=6" } }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, "node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -3202,6 +3684,14 @@ "node": ">=0.10.0" } }, + "node_modules/klaw-sync": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz", + "integrity": "sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==", + "dependencies": { + "graceful-fs": "^4.1.11" + } + }, "node_modules/klona": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", @@ -3379,16 +3869,16 @@ } }, "node_modules/material-icons": { - "version": "1.11.2", - "resolved": "https://registry.npmjs.org/material-icons/-/material-icons-1.11.2.tgz", - "integrity": "sha512-maKSVQNQEHrHXjKTPTwH0141hR2bC8fFUaX4bJzzwVRs7jY+9A+jx0kH/lpgEGIPoYR8gho4iLDvWN3mBRL53A==" + "version": "1.11.7", + "resolved": "https://registry.npmjs.org/material-icons/-/material-icons-1.11.7.tgz", + "integrity": "sha512-M/cp6HvT9IWNKffU4NZ41+DQe5d9O1rxfBn5/hYf12RxLC09khMDWruDHOCzLbAub7SgNrAmxVNDpEmubxHUbg==" }, "node_modules/mathjs": { - "version": "10.6.1", - "resolved": "https://registry.npmjs.org/mathjs/-/mathjs-10.6.1.tgz", - "integrity": "sha512-8iZp6uUKKBoCFoUHze9ydsrSji9/IOEzMhwURyoQXaLL1+ILEZnraw4KzZnUBt/XN6lPJPV+7JO94oil3AmosQ==", + "version": "10.6.4", + "resolved": "https://registry.npmjs.org/mathjs/-/mathjs-10.6.4.tgz", + "integrity": "sha512-omQyvRE1jIy+3k2qsqkWASOcd45aZguXZDckr3HtnTYyXk5+2xpVfC3kATgbO2Srjxlqww3TVdhD0oUdZ/hiFA==", "dependencies": { - "@babel/runtime": "^7.18.3", + "@babel/runtime": "^7.18.6", "complex.js": "^2.1.1", "decimal.js": "^10.3.1", "escape-latex": "^1.2.0", @@ -3424,7 +3914,6 @@ "version": "4.0.5", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, "dependencies": { "braces": "^3.0.2", "picomatch": "^2.3.1" @@ -3458,7 +3947,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -3469,8 +3957,7 @@ "node_modules/minimist": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "node_modules/mkdirp": { "version": "0.5.5", @@ -3680,6 +4167,11 @@ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + }, "node_modules/node-environment-flags": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", @@ -3700,9 +4192,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", - "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", "dev": true }, "node_modules/normalize-path": { @@ -3723,6 +4215,14 @@ "node": ">=0.10.0" } }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/object-inspect": { "version": "1.12.2", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", @@ -3791,11 +4291,25 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, "dependencies": { "wrappy": "1" } }, + "node_modules/open": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "dependencies": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/optionator": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", @@ -3813,6 +4327,14 @@ "node": ">= 0.8.0" } }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -3884,6 +4406,176 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/patch-package": { + "version": "6.4.7", + "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-6.4.7.tgz", + "integrity": "sha512-S0vh/ZEafZ17hbhgqdnpunKDfzHQibQizx9g8yEf5dcVk3KOflOfdufRXQX8CSEkyOQwuM/bNz1GwKvFj54kaQ==", + "dependencies": { + "@yarnpkg/lockfile": "^1.1.0", + "chalk": "^2.4.2", + "cross-spawn": "^6.0.5", + "find-yarn-workspace-root": "^2.0.0", + "fs-extra": "^7.0.1", + "is-ci": "^2.0.0", + "klaw-sync": "^6.0.0", + "minimist": "^1.2.0", + "open": "^7.4.2", + "rimraf": "^2.6.3", + "semver": "^5.6.0", + "slash": "^2.0.0", + "tmp": "^0.0.33" + }, + "bin": { + "patch-package": "index.js" + }, + "engines": { + "npm": ">5" + } + }, + "node_modules/patch-package/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/patch-package/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/patch-package/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/patch-package/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/patch-package/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/patch-package/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/patch-package/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/patch-package/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/patch-package/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/patch-package/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/patch-package/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/patch-package/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/patch-package/node_modules/slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/patch-package/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/patch-package/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, "node_modules/path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", @@ -3897,7 +4589,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -3926,6 +4617,11 @@ "node": ">=8" } }, + "node_modules/penner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/penner/-/penner-0.1.3.tgz", + "integrity": "sha512-UzkaC2L6d9J1VzJAFH0TQwuKE/rerpTZkgW6aPLVeu/LdjWn6rnuY9lXcVN1AE9tZVfHrsJ2gZOBsRjpQECNHA==" + }, "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", @@ -3936,7 +4632,6 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, "engines": { "node": ">=8.6" }, @@ -3944,6 +4639,63 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pixi-viewport": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/pixi-viewport/-/pixi-viewport-4.24.0.tgz", + "integrity": "sha512-KNTW/SAtEkEZ2JOCQEsQtDbE4NoNDUH2vxfmXE7os67qvF16CF+RDc422z4I1MdZWTNF/7XG+I9PaOGGY+gCNQ==", + "dependencies": { + "penner": "^0.1.3" + }, + "peerDependencies": { + "pixi.js": ">=4.6.0" + } + }, + "node_modules/pixi.js": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/pixi.js/-/pixi.js-6.1.3.tgz", + "integrity": "sha512-h8Y/YVgP4CSPoUQvXaQvQf5GyQxi0b1NtVD38bZQsrX4CQ3r85jBU+zPyHN0fAcvhCB+nNvdD2sEwhhqkNsuSw==", + "dependencies": { + "@pixi/accessibility": "6.1.3", + "@pixi/app": "6.1.3", + "@pixi/compressed-textures": "6.1.3", + "@pixi/constants": "6.1.3", + "@pixi/core": "6.1.3", + "@pixi/display": "6.1.3", + "@pixi/extract": "6.1.3", + "@pixi/filter-alpha": "6.1.3", + "@pixi/filter-blur": "6.1.3", + "@pixi/filter-color-matrix": "6.1.3", + "@pixi/filter-displacement": "6.1.3", + "@pixi/filter-fxaa": "6.1.3", + "@pixi/filter-noise": "6.1.3", + "@pixi/graphics": "6.1.3", + "@pixi/interaction": "6.1.3", + "@pixi/loaders": "6.1.3", + "@pixi/math": "6.1.3", + "@pixi/mesh": "6.1.3", + "@pixi/mesh-extras": "6.1.3", + "@pixi/mixin-cache-as-bitmap": "6.1.3", + "@pixi/mixin-get-child-by-name": "6.1.3", + "@pixi/mixin-get-global-position": "6.1.3", + "@pixi/particle-container": "6.1.3", + "@pixi/polyfill": "6.1.3", + "@pixi/prepare": "6.1.3", + "@pixi/runner": "6.1.3", + "@pixi/settings": "6.1.3", + "@pixi/sprite": "6.1.3", + "@pixi/sprite-animated": "6.1.3", + "@pixi/sprite-tiling": "6.1.3", + "@pixi/spritesheet": "6.1.3", + "@pixi/text": "6.1.3", + "@pixi/text-bitmap": "6.1.3", + "@pixi/ticker": "6.1.3", + "@pixi/utils": "6.1.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/pixijs" + } + }, "node_modules/pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", @@ -4149,6 +4901,11 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, + "node_modules/promise-polyfill": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.2.3.tgz", + "integrity": "sha512-Og0+jCRQetV84U8wVjMNccfGCnMQ9mGs9Hv78QFe+pSDD3gWTpz0y+1QCuxy5d/vBFuZ3iwP2eycAkvqIMPmWg==" + }, "node_modules/punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", @@ -4158,6 +4915,15 @@ "node": ">=6" } }, + "node_modules/querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==", + "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", + "engines": { + "node": ">=0.4.x" + } + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -4396,9 +5162,9 @@ ] }, "node_modules/sass": { - "version": "1.53.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.53.0.tgz", - "integrity": "sha512-zb/oMirbKhUgRQ0/GFz8TSAwRq2IlR29vOUJZOx0l8sV+CkHUfHa4u5nqrG+1VceZp7Jfj59SVW9ogdhTvJDcQ==", + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.54.0.tgz", + "integrity": "sha512-C4zp79GCXZfK0yoHZg+GxF818/aclhp9F48XBu/+bm9vXEVAYov9iU3FBVRMq3Hx3OA4jfKL+p2K9180mEh0xQ==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -4869,11 +5635,21 @@ "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, "dependencies": { "is-number": "^7.0.0" }, @@ -4963,9 +5739,9 @@ } }, "node_modules/typescript": { - "version": "3.9.10", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", - "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", + "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -4989,6 +5765,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "engines": { + "node": ">= 4.0.0" + } + }, "node_modules/unzipper": { "version": "0.10.11", "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.11.tgz", @@ -5038,9 +5822,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.3.tgz", - "integrity": "sha512-ufSazemeh9Gty0qiWtoRpJ9F5Q5W3xdIPm1UZQqYQv/q0Nyb9EMHUB2lu+O9x1re9WsorpMAUu4Y6Lxcs5n+XQ==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz", + "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==", "dev": true, "funding": [ { @@ -5072,6 +5856,20 @@ "punycode": "^2.1.0" } }, + "node_modules/url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==", + "dependencies": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "node_modules/url/node_modules/punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==" + }, "node_modules/util": { "version": "0.12.4", "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", @@ -5153,9 +5951,9 @@ } }, "node_modules/webpack": { - "version": "5.73.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.73.0.tgz", - "integrity": "sha512-svjudQRPPa0YiOYa2lM/Gacw0r6PvxptHj4FuEKQ2kX05ZLkjbVc5MnPs6its5j7IZljnIqSVo/OsY2X0IpHGA==", + "version": "5.74.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", + "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.3", @@ -5163,11 +5961,11 @@ "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/wasm-edit": "1.11.1", "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.4.1", + "acorn": "^8.7.1", "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.9.3", + "enhanced-resolve": "^5.10.0", "es-module-lexer": "^0.9.0", "eslint-scope": "5.1.1", "events": "^3.2.0", @@ -5180,7 +5978,7 @@ "schema-utils": "^3.1.0", "tapable": "^2.1.1", "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.3.1", + "watchpack": "^2.4.0", "webpack-sources": "^3.2.3" }, "bin": { @@ -5453,8 +6251,7 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "node_modules/y18n": { "version": "4.0.3", @@ -5557,27 +6354,27 @@ }, "dependencies": { "@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", "dev": true, "requires": { - "@babel/highlight": "^7.16.7" + "@babel/highlight": "^7.18.6" } }, "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", + "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", "dev": true }, "@babel/highlight": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.12.tgz", - "integrity": "sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-validator-identifier": "^7.18.6", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -5641,9 +6438,9 @@ } }, "@babel/runtime": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.3.tgz", - "integrity": "sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz", + "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -5689,26 +6486,26 @@ "dev": true }, "@jridgewell/gen-mapping": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", - "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", "dev": true, "requires": { - "@jridgewell/set-array": "^1.0.0", + "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", "@jridgewell/trace-mapping": "^0.3.9" } }, "@jridgewell/resolve-uri": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", - "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", "dev": true }, "@jridgewell/set-array": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz", - "integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", "dev": true }, "@jridgewell/source-map": { @@ -5722,15 +6519,15 @@ } }, "@jridgewell/sourcemap-codec": { - "version": "1.4.13", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz", - "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==", + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", "dev": true }, "@jridgewell/trace-mapping": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz", - "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==", + "version": "0.3.14", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", + "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", "dev": true, "requires": { "@jridgewell/resolve-uri": "^3.0.3", @@ -5763,24 +6560,247 @@ "fastq": "^1.6.0" } }, + "@pixi/accessibility": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/accessibility/-/accessibility-6.1.3.tgz", + "integrity": "sha512-JK6rtqfC2/rnJt1xLPznH2lNH0Jx9f2Py7uh50VM1sqoYrkyAAegenbOdyEzgB35Q4oQji3aBkTsWn2mrwXp/g==", + "requires": {} + }, + "@pixi/app": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/app/-/app-6.1.3.tgz", + "integrity": "sha512-gryDVXuzErRIgY5G2CRQH6fZM7Pk3m1CFEInXEKa4rmVzfwRz+3OeU0YNSnD9atPAS5C2TaAzE4yOSHH2+wESQ==", + "requires": {} + }, + "@pixi/compressed-textures": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/compressed-textures/-/compressed-textures-6.1.3.tgz", + "integrity": "sha512-FO2B7GhDMlZA0fnpH2PvNOh6ZlRxQoJnNlpjzNw+x1nvF9h3+V6dbFoG9oBC5zAisTfacdfoo1TdT789Oh+kTg==", + "requires": {} + }, + "@pixi/constants": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/constants/-/constants-6.1.3.tgz", + "integrity": "sha512-Qvz/SIxw+dQ6P9niOEdILWX2DQ5FnGA0XZNFLW/3amekzad/+WqHobL+Mg5S6A4/a9mXTnqjyB0BqhhtLfpFkA==" + }, + "@pixi/core": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/core/-/core-6.1.3.tgz", + "integrity": "sha512-UQsR1Q7c+Zcvtu6HrYMidvoyF/j9n3b4WXPh3ojuNV6+ZIvps3rznoZYaIx6foEJNhj7HM9fMObsimGP+FB36A==", + "requires": {} + }, + "@pixi/display": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/display/-/display-6.1.3.tgz", + "integrity": "sha512-8/GdapJVKfl6PUkxX/Et5zB1aXny+uy353cQX886KJ6dGle82fQAYjIn7I6Xm+JiZWOhWo0N6KE9cjotO0rroA==", + "requires": {} + }, + "@pixi/extract": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/extract/-/extract-6.1.3.tgz", + "integrity": "sha512-yZOsXc9Lh+U59ayl+DoWDPmndrOJj5ft2nzENMAvz2rVEOHQjWxH73qCSP6Wa5VsoINyJLMmV4MTbI+U0SH7GA==", + "requires": {} + }, + "@pixi/filter-alpha": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/filter-alpha/-/filter-alpha-6.1.3.tgz", + "integrity": "sha512-eubgEO/qlxQbuPXgwxTZxTBTWjA0EQbrs7TyPqyBK2Wj0eEvimaVQ8u4eiqfMFJCZLnuWDCAPJpP9bMHxBXXpQ==", + "requires": {} + }, + "@pixi/filter-blur": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/filter-blur/-/filter-blur-6.1.3.tgz", + "integrity": "sha512-uo8FHpV+qm4SuXcDnWqZWrznHmLJ3b8ibgLAgi/e8VmwrFiC+EqGa4n4V8J+xtR5P/iA3lT5pRgWw09/xHN3dQ==", + "requires": {} + }, + "@pixi/filter-color-matrix": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/filter-color-matrix/-/filter-color-matrix-6.1.3.tgz", + "integrity": "sha512-d1pyxmVrGDOrO5pINe+fTspj1NNxiIp2IZ+FGgT7e17xnxjXTvtk4n4KqXAZFS1NCoStImDAV5j+b8Lysdg5jQ==", + "requires": {} + }, + "@pixi/filter-displacement": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/filter-displacement/-/filter-displacement-6.1.3.tgz", + "integrity": "sha512-tIXK8vXzb2unMxGmu4gjdlOwddnkHA0IJXFTOF25a5h36v/AHqWwWG4h5G775oPu37UuhuYjeD/j229t0Q9QNQ==", + "requires": {} + }, + "@pixi/filter-fxaa": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/filter-fxaa/-/filter-fxaa-6.1.3.tgz", + "integrity": "sha512-yhKVxX5vFKQz3lxfqAGg4XoajFyIRR8XzWqEHgAsPMFRnIIQIbF25bMRygZj12P61z3vxwqAM/2bn7S46Ii1zQ==", + "requires": {} + }, + "@pixi/filter-noise": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/filter-noise/-/filter-noise-6.1.3.tgz", + "integrity": "sha512-oVRtcJwbN6VnAnvXZuLEZ0c12JUzporao5AziXgRAUjTMA3bFVE0/7Dx193Kx/l6UAasmzhWQctuv6NMxy5Efw==", + "requires": {} + }, + "@pixi/graphics": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/graphics/-/graphics-6.1.3.tgz", + "integrity": "sha512-e5O47yECRp5WXWIvKhLDQKpiak7CfIqJzuTuQIyE7jXp8QiJNw+aoWNlJEd4ksKbsDkP3EE39CxlmiaBpxNL3w==", + "requires": {} + }, + "@pixi/interaction": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/interaction/-/interaction-6.1.3.tgz", + "integrity": "sha512-ju3fE/KnO6KZChnZzZAdY6bfjlSh7/igZcVcd/MZRkAdNozx4QoN5sYmwrcvTvA5llMYaThSIRWgIHQiSlbOfQ==", + "requires": {} + }, + "@pixi/loaders": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/loaders/-/loaders-6.1.3.tgz", + "integrity": "sha512-qOvy72bsVGzCmWyoofm6dm1l//hd+bJneidngplwsovpqnnyMfuewCpQjeLRL6rLqcHR40V1+Qo4iJ+ElMdVZQ==", + "requires": {} + }, + "@pixi/math": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/math/-/math-6.1.3.tgz", + "integrity": "sha512-1bLZeHpG38Bz6TESwxayNbL7tztOd7gpZDXS5OiBB9n8SFZeKlWfRQ/aJrvjoBz2qsZf9gGeVKsHpC/FJz0qnA==" + }, + "@pixi/mesh": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/mesh/-/mesh-6.1.3.tgz", + "integrity": "sha512-TF9eKNQdowozVOr4G05+Auku2EK8XwDXKYVvMYvt6Tsn2DLSrRhWl7xYyj4EuTjW/4eaP/c2QqY18cEMoMtJiQ==", + "requires": {} + }, + "@pixi/mesh-extras": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/mesh-extras/-/mesh-extras-6.1.3.tgz", + "integrity": "sha512-HuTV8SkTQZDU1bmHmJWRo+4Hiz89oCuOonE3ckfqsoAoULfImgU72qqNIq7Vxmnu3kXoXAwV+fvOl49OzWl4+w==", + "requires": {} + }, + "@pixi/mixin-cache-as-bitmap": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/mixin-cache-as-bitmap/-/mixin-cache-as-bitmap-6.1.3.tgz", + "integrity": "sha512-mEa0kn3Mou3KhbAUpaGnvmPz/ifI/41af1N6kVcTz1V8cu4BI/f74xLv5pKkQtp+xzWlquGo/2z9urkrRFD6qA==", + "requires": {} + }, + "@pixi/mixin-get-child-by-name": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/mixin-get-child-by-name/-/mixin-get-child-by-name-6.1.3.tgz", + "integrity": "sha512-HHrnA1MtsMSyW0lOnBlklHp7j3JGYHIyick4b8F8p8eKqOFiAVdLzf4tmX/fKF4zs6i7DuYKE8G9Z7vpAhyrFg==", + "requires": {} + }, + "@pixi/mixin-get-global-position": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/mixin-get-global-position/-/mixin-get-global-position-6.1.3.tgz", + "integrity": "sha512-XqhEyViMlGOS+p2LKW2tFjQy4ghbARKriwgY10MGvNApHHZbUDL3VKM1EmR6F2Xj8PPmycWRw/0oBu148O2KhQ==", + "requires": {} + }, + "@pixi/particle-container": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/particle-container/-/particle-container-6.1.3.tgz", + "integrity": "sha512-pZqRRL5Yx2Yy30cdjsNEXRpTfl1WEf640ZLVHX2+fcKcWftPJaIXQZR+0aLvijyWF3VA4O/r/8IxhYgiMkqAUQ==", + "requires": {} + }, + "@pixi/polyfill": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/polyfill/-/polyfill-6.1.3.tgz", + "integrity": "sha512-e+g2sHK/ORKDOrhJ86zZgdMSkQNzKdkaMw/UUFZ5wEUJgltoqF7H0zwNVPPO/1m7hfrN02PBMinYtXM+qFdY/A==", + "requires": { + "object-assign": "^4.1.1", + "promise-polyfill": "^8.2.0" + } + }, + "@pixi/prepare": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/prepare/-/prepare-6.1.3.tgz", + "integrity": "sha512-zjv81fPJjdQyWGCbA9Ij04GfwJUYA3j6/vFyJFaDKVMqEWzNDJwu40G00P23BXh3F5dYL638EXvyLYDQavjseg==", + "requires": {} + }, + "@pixi/runner": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/runner/-/runner-6.1.3.tgz", + "integrity": "sha512-hJw7O9enlei7Cp5/j2REKuUjvyyC4BGqmVycmt01jTYyphRYMNQgyF+OjwrL7nidZMXnCVzfNKWi8e5+c4wssg==" + }, + "@pixi/settings": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/settings/-/settings-6.1.3.tgz", + "integrity": "sha512-laKwS4/R+bTQokKIeMeMO4orvSNTMWUpNRXJbDq7N29bCrA5pT6BW+LNZ+4gJs4TFK/s9bmP/xU5BlPVKHRoyg==", + "requires": { + "ismobilejs": "^1.1.0" + } + }, + "@pixi/sprite": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/sprite/-/sprite-6.1.3.tgz", + "integrity": "sha512-TzvqeRV+bbxFbucR74c28wcDsCbXic+5dONM+fy31ejAIraKbigzKbgHxH6opgLEMMh5APzmJPlwntYdEUGSXQ==", + "requires": {} + }, + "@pixi/sprite-animated": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/sprite-animated/-/sprite-animated-6.1.3.tgz", + "integrity": "sha512-COrFkmcMPxyv3zGRJJrNB2nOdaeDEOYTkbxUcNxMSJ7eT3O3PUX5XEvfOW7bl2zHkt8XraIQ66uwWychqGHx7Q==", + "requires": {} + }, + "@pixi/sprite-tiling": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/sprite-tiling/-/sprite-tiling-6.1.3.tgz", + "integrity": "sha512-om+RrModhNFljb8C1fhpGKtgt5k5AW9gCjFfeBPN+5pVdVjtc/luyO2Cbubpeow9YQldrUZri9it63GBo07Cfw==", + "requires": {} + }, + "@pixi/spritesheet": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/spritesheet/-/spritesheet-6.1.3.tgz", + "integrity": "sha512-QUqAYUzn/+0JlzrLo7ASIFzJSteGZuNMxKwyFL29JtttUIjdJlXe3+jrfUMAu6gewYd9HVYkXJ0ODhH8PH6KpA==", + "requires": {} + }, + "@pixi/text": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/text/-/text-6.1.3.tgz", + "integrity": "sha512-R0D3cbwwLbQOfobja4NGhq0bF7biCfNE3PXsOmTEsWOroVJqUexIob5XZXoT9Avy3B8nlrB2Hyl5imIQx60jFw==", + "requires": {} + }, + "@pixi/text-bitmap": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/text-bitmap/-/text-bitmap-6.1.3.tgz", + "integrity": "sha512-x46qOVoosl67dBrG3mgd2eQx3A9NTxWUnzgRpk5vsNfLLNRu6XlM+YoscRMuHT5sLEEBLewjcVxzAAkrSW45eQ==", + "requires": {} + }, + "@pixi/ticker": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/ticker/-/ticker-6.1.3.tgz", + "integrity": "sha512-ZSuhe5HrmkDoqSIZjETUGYCQr/EbtDQGngq0LQLAgblyhAJbi4p/B3uf2XGfRNZ7Tdxdl0j81BmUqBEu2+DeoA==", + "requires": {} + }, + "@pixi/utils": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@pixi/utils/-/utils-6.1.3.tgz", + "integrity": "sha512-05mm9TBbpYorYO3ALC4CVgR5K6sA/0uhnwE/Zl4ZhNJZN699LrIr0OWFQhxhySeGUPMDaizeEZpn2rhx+CYYpg==", + "requires": { + "@types/earcut": "^2.1.0", + "earcut": "^2.2.2", + "eventemitter3": "^3.1.0", + "url": "^0.11.0" + } + }, "@popperjs/core": { "version": "2.11.5", "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.5.tgz", "integrity": "sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==" }, "@spcl/sdfv": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/@spcl/sdfv/-/sdfv-1.0.28.tgz", - "integrity": "sha512-pMHrfD50qblH1Lw6gqTgBXwhF33tIv+BRmGTUCrF3+gHRH2MjhV38gqf+NFkI3gZmofLnATEG38ZdM36sJY3ow==", + "version": "1.0.29-beta.12", + "resolved": "https://registry.npmjs.org/@spcl/sdfv/-/sdfv-1.0.29-beta.12.tgz", + "integrity": "sha512-YhmKVJ4BRG3TUewWweTB6VqrVdlp/3N9lF0Q1JGA7Vc7LtdfhrmoLu0H4x36PneQvdrO/+N0tY3WGTmUMEe+tA==", "requires": { "@babel/runtime": "^7.17.2", "@types/mathjs": "^6.0.11", "assert": "^2.0.0", "browserify-zlib": "^0.2.0", "buffer": "^6.0.3", + "chart.js": "^3.8.0", + "chartjs-plugin-annotation": "^1.4.0", + "coffeequate": "^1.3.0", "dagre": "^0.8.5", "jquery": "^3.6.0", "mathjs": "^10.0.0", + "patch-package": "^6.4.7", + "pixi-viewport": "4.24", + "pixi.js": "6.1.3", "process": "^0.11.10", "stream-browserify": "^3.0.0" } @@ -5796,10 +6816,15 @@ "resolved": "https://registry.npmjs.org/@types/dagre/-/dagre-0.7.47.tgz", "integrity": "sha512-oX+3aRf7L6Cqq1MvbWmmD7FpAU/T8URwFFuHBagAiyHILn3i+RNZ35/tvyq28de+lZGY3W19BxJ7FeITQDO7aA==" }, + "@types/earcut": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@types/earcut/-/earcut-2.1.1.tgz", + "integrity": "sha512-w8oigUCDjElRHRRrMvn/spybSMyX8MTkKA5Dv+tS1IE/TgmNZPqUYtvYBXGY8cieSE66gm+szeK+bnbxC2xHTQ==" + }, "@types/eslint": { - "version": "8.4.3", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.3.tgz", - "integrity": "sha512-YP1S7YJRMPs+7KZKDb9G63n8YejIwW9BALq7a5j2+H4yl6iOv9CB29edho+cuFRrvmJbbaH2yiVChKLJVysDGw==", + "version": "8.4.5", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.5.tgz", + "integrity": "sha512-dhsC09y1gpJWnK+Ff4SGvCuSnk9DaU0BJZSzOwa6GVSg65XtTugLBITDAAzRU5duGBoXBHpdR/9jHGxJjNflJQ==", "dev": true, "requires": { "@types/estree": "*", @@ -5807,9 +6832,9 @@ } }, "@types/eslint-scope": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", - "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", "dev": true, "requires": { "@types/eslint": "*", @@ -5893,20 +6918,20 @@ "integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==" }, "@types/vscode": { - "version": "1.68.0", - "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.68.0.tgz", - "integrity": "sha512-duBwEK5ta/eBBMJMQ7ECMEsMvlE3XJdRGh3xoS1uOO4jl2Z4LPBl5vx8WvBP10ERAgDRmIt/FaSD4RHyBGbChw==", + "version": "1.69.0", + "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.69.0.tgz", + "integrity": "sha512-RlzDAnGqUoo9wS6d4tthNyAdZLxOIddLiX3djMoWk29jFfSA1yJbIwr0epBYqqYarWB6s2Z+4VaZCQ80Jaa3kA==", "dev": true }, "@typescript-eslint/eslint-plugin": { - "version": "5.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.29.0.tgz", - "integrity": "sha512-kgTsISt9pM53yRFQmLZ4npj99yGl3x3Pl7z4eA66OuTzAGC4bQB5H5fuLwPnqTKU3yyrrg4MIhjF17UYnL4c0w==", + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.31.0.tgz", + "integrity": "sha512-VKW4JPHzG5yhYQrQ1AzXgVgX8ZAJEvCz0QI6mLRX4tf7rnFfh5D8SKm0Pq6w5PyNfAWJk6sv313+nEt3ohWMBQ==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.29.0", - "@typescript-eslint/type-utils": "5.29.0", - "@typescript-eslint/utils": "5.29.0", + "@typescript-eslint/scope-manager": "5.31.0", + "@typescript-eslint/type-utils": "5.31.0", + "@typescript-eslint/utils": "5.31.0", "debug": "^4.3.4", "functional-red-black-tree": "^1.0.1", "ignore": "^5.2.0", @@ -5916,52 +6941,52 @@ } }, "@typescript-eslint/parser": { - "version": "5.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.29.0.tgz", - "integrity": "sha512-ruKWTv+x0OOxbzIw9nW5oWlUopvP/IQDjB5ZqmTglLIoDTctLlAJpAQFpNPJP/ZI7hTT9sARBosEfaKbcFuECw==", + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.31.0.tgz", + "integrity": "sha512-UStjQiZ9OFTFReTrN+iGrC6O/ko9LVDhreEK5S3edmXgR396JGq7CoX2TWIptqt/ESzU2iRKXAHfSF2WJFcWHw==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.29.0", - "@typescript-eslint/types": "5.29.0", - "@typescript-eslint/typescript-estree": "5.29.0", + "@typescript-eslint/scope-manager": "5.31.0", + "@typescript-eslint/types": "5.31.0", + "@typescript-eslint/typescript-estree": "5.31.0", "debug": "^4.3.4" } }, "@typescript-eslint/scope-manager": { - "version": "5.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.29.0.tgz", - "integrity": "sha512-etbXUT0FygFi2ihcxDZjz21LtC+Eps9V2xVx09zFoN44RRHPrkMflidGMI+2dUs821zR1tDS6Oc9IXxIjOUZwA==", + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.31.0.tgz", + "integrity": "sha512-8jfEzBYDBG88rcXFxajdVavGxb5/XKXyvWgvD8Qix3EEJLCFIdVloJw+r9ww0wbyNLOTYyBsR+4ALNGdlalLLg==", "dev": true, "requires": { - "@typescript-eslint/types": "5.29.0", - "@typescript-eslint/visitor-keys": "5.29.0" + "@typescript-eslint/types": "5.31.0", + "@typescript-eslint/visitor-keys": "5.31.0" } }, "@typescript-eslint/type-utils": { - "version": "5.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.29.0.tgz", - "integrity": "sha512-JK6bAaaiJozbox3K220VRfCzLa9n0ib/J+FHIwnaV3Enw/TO267qe0pM1b1QrrEuy6xun374XEAsRlA86JJnyg==", + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.31.0.tgz", + "integrity": "sha512-7ZYqFbvEvYXFn9ax02GsPcEOmuWNg+14HIf4q+oUuLnMbpJ6eHAivCg7tZMVwzrIuzX3QCeAOqKoyMZCv5xe+w==", "dev": true, "requires": { - "@typescript-eslint/utils": "5.29.0", + "@typescript-eslint/utils": "5.31.0", "debug": "^4.3.4", "tsutils": "^3.21.0" } }, "@typescript-eslint/types": { - "version": "5.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.29.0.tgz", - "integrity": "sha512-X99VbqvAXOMdVyfFmksMy3u8p8yoRGITgU1joBJPzeYa0rhdf5ok9S56/itRoUSh99fiDoMtarSIJXo7H/SnOg==", + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.31.0.tgz", + "integrity": "sha512-/f/rMaEseux+I4wmR6mfpM2wvtNZb1p9hAV77hWfuKc3pmaANp5dLAZSiE3/8oXTYTt3uV9KW5yZKJsMievp6g==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.29.0.tgz", - "integrity": "sha512-mQvSUJ/JjGBdvo+1LwC+GY2XmSYjK1nAaVw2emp/E61wEVYEyibRHCqm1I1vEKbXCpUKuW4G7u9ZCaZhJbLoNQ==", + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.31.0.tgz", + "integrity": "sha512-3S625TMcARX71wBc2qubHaoUwMEn+l9TCsaIzYI/ET31Xm2c9YQ+zhGgpydjorwQO9pLfR/6peTzS/0G3J/hDw==", "dev": true, "requires": { - "@typescript-eslint/types": "5.29.0", - "@typescript-eslint/visitor-keys": "5.29.0", + "@typescript-eslint/types": "5.31.0", + "@typescript-eslint/visitor-keys": "5.31.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -5970,26 +6995,26 @@ } }, "@typescript-eslint/utils": { - "version": "5.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.29.0.tgz", - "integrity": "sha512-3Eos6uP1nyLOBayc/VUdKZikV90HahXE5Dx9L5YlSd/7ylQPXhLk1BYb29SDgnBnTp+jmSZUU0QxUiyHgW4p7A==", + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.31.0.tgz", + "integrity": "sha512-kcVPdQS6VIpVTQ7QnGNKMFtdJdvnStkqS5LeALr4rcwx11G6OWb2HB17NMPnlRHvaZP38hL9iK8DdE9Fne7NYg==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.29.0", - "@typescript-eslint/types": "5.29.0", - "@typescript-eslint/typescript-estree": "5.29.0", + "@typescript-eslint/scope-manager": "5.31.0", + "@typescript-eslint/types": "5.31.0", + "@typescript-eslint/typescript-estree": "5.31.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" } }, "@typescript-eslint/visitor-keys": { - "version": "5.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.29.0.tgz", - "integrity": "sha512-Hpb/mCWsjILvikMQoZIE3voc9wtQcS0A9FUw3h8bhr9UxBdtI/tw1ZDZUOXHXLOVMedKCH5NxyzATwnU78bWCQ==", + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.31.0.tgz", + "integrity": "sha512-ZK0jVxSjS4gnPirpVjXHz7mgdOsZUHzNYSfTw2yPa3agfbt9YfqaBiBZFSSxeBWnpWkzCxTfUpnzA3Vily/CSg==", "dev": true, "requires": { - "@typescript-eslint/types": "5.29.0", + "@typescript-eslint/types": "5.31.0", "eslint-visitor-keys": "^3.3.0" } }, @@ -6174,10 +7199,15 @@ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "dev": true }, + "@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==" + }, "acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", "dev": true }, "acorn-import-assertions": { @@ -6340,8 +7370,7 @@ "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "base64-js": { "version": "1.5.1", @@ -6383,16 +7412,15 @@ "dev": true }, "bootstrap": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.1.3.tgz", - "integrity": "sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.2.0.tgz", + "integrity": "sha512-qlnS9GL6YZE6Wnef46GxGv1UpGGzAwO0aPL1yOjzDIJpeApeMvqV24iL+pjr2kU4dduoBA9fINKWKgMToobx9A==", "requires": {} }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -6402,7 +7430,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, "requires": { "fill-range": "^7.0.1" } @@ -6422,15 +7449,15 @@ } }, "browserslist": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.0.tgz", - "integrity": "sha512-UQxE0DIhRB5z/zDz9iA03BOfxaN2+GQdBYH/2WrSIWEUrnpzTPJbhqt+umq6r3acaPRTW1FNTkrcp0PXgtFkvA==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", + "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001358", - "electron-to-chromium": "^1.4.164", - "node-releases": "^2.0.5", - "update-browserslist-db": "^1.0.0" + "caniuse-lite": "^1.0.30001370", + "electron-to-chromium": "^1.4.202", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.5" } }, "buffer": { @@ -6482,9 +7509,9 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30001358", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001358.tgz", - "integrity": "sha512-hvp8PSRymk85R20bsDra7ZTCpSVGN/PAz9pSAjPSjKC+rNmnUk5vCRgJwiTT/O4feQ/yu/drvZYpKxxhbFuChw==", + "version": "1.0.30001370", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001370.tgz", + "integrity": "sha512-3PDmaP56wz/qz7G508xzjx8C+MC2qEm4SYhSEzC9IBROo+dGXFWRuaXkWti0A9tuI00g+toiriVqxtWMgl350g==", "dev": true }, "chainsaw": { @@ -6506,6 +7533,17 @@ "supports-color": "^7.1.0" } }, + "chart.js": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.8.2.tgz", + "integrity": "sha512-7rqSlHWMUKFyBDOJvmFGW2lxULtcwaPLegDjX/Nu5j6QybY+GCiQkEY+6cqHw62S5tcwXMD8Y+H5OBGoR7d+ZQ==" + }, + "chartjs-plugin-annotation": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/chartjs-plugin-annotation/-/chartjs-plugin-annotation-1.4.0.tgz", + "integrity": "sha512-OC0eGoVvdxTtGGi8mV3Dr+G1YmMhtYYQWqGMb2uWcgcnyiBslaRKPofKwAYWPbh7ABnmQNsNDQLIKPH+XiaZLA==", + "requires": {} + }, "chokidar": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", @@ -6539,6 +7577,11 @@ "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", "dev": true }, + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" + }, "cliui": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", @@ -6589,6 +7632,11 @@ "shallow-clone": "^3.0.0" } }, + "coffeequate": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/coffeequate/-/coffeequate-1.3.0.tgz", + "integrity": "sha512-xm5YwemNnxIWUxkMPO6gbsbBN0aeU8UU41T2hD6GQKGzB6y0lSL5VZ6pW66R3PZvsh2RDtnJ8JUEqkxO7IJ0Zg==" + }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -6624,8 +7672,7 @@ "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "copy-webpack-plugin": { "version": "11.0.0", @@ -6823,10 +7870,15 @@ } } }, + "earcut": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz", + "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==" + }, "electron-to-chromium": { - "version": "1.4.167", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.167.tgz", - "integrity": "sha512-lPHuHXBwpkr4RcfaZBKm6TKOWG/1N9mVggUpP4fY3l1JIUU2x4fkM8928smYdZ5lF+6KCTAxo1aK9JmqT+X71Q==", + "version": "1.4.202", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.202.tgz", + "integrity": "sha512-JYsK2ex9lmQD27kj19fhXYxzFJ/phLAkLKHv49A5UY6kMRV2xED3qMMLg/voW/+0AR6wMiI+VxlmK9NDtdxlPA==", "dev": true }, "emoji-regex": { @@ -6842,9 +7894,9 @@ "dev": true }, "enhanced-resolve": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz", - "integrity": "sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow==", + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", + "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", "dev": true, "requires": { "graceful-fs": "^4.2.4", @@ -6954,9 +8006,9 @@ "dev": true }, "eslint": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.18.0.tgz", - "integrity": "sha512-As1EfFMVk7Xc6/CvhssHUjsAQSkpfXvUGMFC3ce8JDe6WvqCgRrLOBQbVpsBFr1X1V+RACOadnzVvcUS5ni2bA==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.20.0.tgz", + "integrity": "sha512-d4ixhz5SKCa1D6SCPrivP7yYVi7nyD6A4vs6HIAul9ujBzcEmZVM3/0NN/yu5nKhmO1wjp5xQ46iRfmDGlOviA==", "dev": true, "requires": { "@eslint/eslintrc": "^1.3.0", @@ -7110,6 +8162,11 @@ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, + "eventemitter3": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" + }, "events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", @@ -7159,9 +8216,9 @@ "dev": true }, "fastest-levenshtein": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", - "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.14.tgz", + "integrity": "sha512-tFfWHjnuUfKE186Tfgr+jtaFc0mZTApEgKDOeyN+FwOqRkO/zK/3h1AiRd8u8CY53owL3CUmGr/oI9p/RdyLTA==", "dev": true }, "fastq": { @@ -7209,7 +8266,6 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, "requires": { "to-regex-range": "^5.0.1" } @@ -7223,6 +8279,14 @@ "locate-path": "^3.0.0" } }, + "find-yarn-workspace-root": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz", + "integrity": "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==", + "requires": { + "micromatch": "^4.0.2" + } + }, "flat": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz", @@ -7243,9 +8307,9 @@ } }, "flatted": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.6.tgz", + "integrity": "sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==", "dev": true }, "for-each": { @@ -7261,11 +8325,20 @@ "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==" }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "fsevents": { "version": "2.1.3", @@ -7353,7 +8426,6 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -7379,9 +8451,9 @@ "dev": true }, "globals": { - "version": "13.15.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", - "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -7404,8 +8476,7 @@ "graceful-fs": { "version": "4.2.10", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" }, "graphlib": { "version": "2.1.8", @@ -7542,7 +8613,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -7621,6 +8691,14 @@ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "requires": { + "ci-info": "^2.0.0" + } + }, "is-core-module": { "version": "2.9.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", @@ -7638,6 +8716,11 @@ "has-tostringtag": "^1.0.0" } }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" + }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -7684,8 +8767,7 @@ "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, "is-number-object": { "version": "1.0.7", @@ -7757,6 +8839,14 @@ "call-bind": "^1.0.2" } }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "requires": { + "is-docker": "^2.0.0" + } + }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -7766,8 +8856,12 @@ "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "ismobilejs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ismobilejs/-/ismobilejs-1.1.1.tgz", + "integrity": "sha512-VaFW53yt8QO61k2WJui0dHf4SlL8lxBofUuUmwBo0ljPk0Drz2TiuDW4jo3wDcv41qy/SxrJ+VAzJ/qYqsmzRw==" }, "isobject": { "version": "3.0.1", @@ -7854,12 +8948,28 @@ "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", "dev": true }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "requires": { + "graceful-fs": "^4.1.6" + } + }, "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true }, + "klaw-sync": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz", + "integrity": "sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==", + "requires": { + "graceful-fs": "^4.1.11" + } + }, "klona": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", @@ -8003,16 +9113,16 @@ } }, "material-icons": { - "version": "1.11.2", - "resolved": "https://registry.npmjs.org/material-icons/-/material-icons-1.11.2.tgz", - "integrity": "sha512-maKSVQNQEHrHXjKTPTwH0141hR2bC8fFUaX4bJzzwVRs7jY+9A+jx0kH/lpgEGIPoYR8gho4iLDvWN3mBRL53A==" + "version": "1.11.7", + "resolved": "https://registry.npmjs.org/material-icons/-/material-icons-1.11.7.tgz", + "integrity": "sha512-M/cp6HvT9IWNKffU4NZ41+DQe5d9O1rxfBn5/hYf12RxLC09khMDWruDHOCzLbAub7SgNrAmxVNDpEmubxHUbg==" }, "mathjs": { - "version": "10.6.1", - "resolved": "https://registry.npmjs.org/mathjs/-/mathjs-10.6.1.tgz", - "integrity": "sha512-8iZp6uUKKBoCFoUHze9ydsrSji9/IOEzMhwURyoQXaLL1+ILEZnraw4KzZnUBt/XN6lPJPV+7JO94oil3AmosQ==", + "version": "10.6.4", + "resolved": "https://registry.npmjs.org/mathjs/-/mathjs-10.6.4.tgz", + "integrity": "sha512-omQyvRE1jIy+3k2qsqkWASOcd45aZguXZDckr3HtnTYyXk5+2xpVfC3kATgbO2Srjxlqww3TVdhD0oUdZ/hiFA==", "requires": { - "@babel/runtime": "^7.18.3", + "@babel/runtime": "^7.18.6", "complex.js": "^2.1.1", "decimal.js": "^10.3.1", "escape-latex": "^1.2.0", @@ -8039,7 +9149,6 @@ "version": "4.0.5", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, "requires": { "braces": "^3.0.2", "picomatch": "^2.3.1" @@ -8064,7 +9173,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, "requires": { "brace-expansion": "^1.1.7" } @@ -8072,8 +9180,7 @@ "minimist": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "mkdirp": { "version": "0.5.5", @@ -8240,6 +9347,11 @@ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + }, "node-environment-flags": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", @@ -8259,9 +9371,9 @@ } }, "node-releases": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", - "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", "dev": true }, "normalize-path": { @@ -8276,6 +9388,11 @@ "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", "dev": true }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + }, "object-inspect": { "version": "1.12.2", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", @@ -8323,11 +9440,19 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, "requires": { "wrappy": "1" } }, + "open": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "requires": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + } + }, "optionator": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", @@ -8342,6 +9467,11 @@ "word-wrap": "^1.2.3" } }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==" + }, "p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -8392,6 +9522,133 @@ "lines-and-columns": "^1.1.6" } }, + "patch-package": { + "version": "6.4.7", + "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-6.4.7.tgz", + "integrity": "sha512-S0vh/ZEafZ17hbhgqdnpunKDfzHQibQizx9g8yEf5dcVk3KOflOfdufRXQX8CSEkyOQwuM/bNz1GwKvFj54kaQ==", + "requires": { + "@yarnpkg/lockfile": "^1.1.0", + "chalk": "^2.4.2", + "cross-spawn": "^6.0.5", + "find-yarn-workspace-root": "^2.0.0", + "fs-extra": "^7.0.1", + "is-ci": "^2.0.0", + "klaw-sync": "^6.0.0", + "minimist": "^1.2.0", + "open": "^7.4.2", + "rimraf": "^2.6.3", + "semver": "^5.6.0", + "slash": "^2.0.0", + "tmp": "^0.0.33" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==" + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==" + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + } + } + }, "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", @@ -8401,8 +9658,7 @@ "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" }, "path-key": { "version": "3.1.1", @@ -8422,6 +9678,11 @@ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true }, + "penner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/penner/-/penner-0.1.3.tgz", + "integrity": "sha512-UzkaC2L6d9J1VzJAFH0TQwuKE/rerpTZkgW6aPLVeu/LdjWn6rnuY9lXcVN1AE9tZVfHrsJ2gZOBsRjpQECNHA==" + }, "picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", @@ -8431,8 +9692,57 @@ "picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "pixi-viewport": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/pixi-viewport/-/pixi-viewport-4.24.0.tgz", + "integrity": "sha512-KNTW/SAtEkEZ2JOCQEsQtDbE4NoNDUH2vxfmXE7os67qvF16CF+RDc422z4I1MdZWTNF/7XG+I9PaOGGY+gCNQ==", + "requires": { + "penner": "^0.1.3" + } + }, + "pixi.js": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/pixi.js/-/pixi.js-6.1.3.tgz", + "integrity": "sha512-h8Y/YVgP4CSPoUQvXaQvQf5GyQxi0b1NtVD38bZQsrX4CQ3r85jBU+zPyHN0fAcvhCB+nNvdD2sEwhhqkNsuSw==", + "requires": { + "@pixi/accessibility": "6.1.3", + "@pixi/app": "6.1.3", + "@pixi/compressed-textures": "6.1.3", + "@pixi/constants": "6.1.3", + "@pixi/core": "6.1.3", + "@pixi/display": "6.1.3", + "@pixi/extract": "6.1.3", + "@pixi/filter-alpha": "6.1.3", + "@pixi/filter-blur": "6.1.3", + "@pixi/filter-color-matrix": "6.1.3", + "@pixi/filter-displacement": "6.1.3", + "@pixi/filter-fxaa": "6.1.3", + "@pixi/filter-noise": "6.1.3", + "@pixi/graphics": "6.1.3", + "@pixi/interaction": "6.1.3", + "@pixi/loaders": "6.1.3", + "@pixi/math": "6.1.3", + "@pixi/mesh": "6.1.3", + "@pixi/mesh-extras": "6.1.3", + "@pixi/mixin-cache-as-bitmap": "6.1.3", + "@pixi/mixin-get-child-by-name": "6.1.3", + "@pixi/mixin-get-global-position": "6.1.3", + "@pixi/particle-container": "6.1.3", + "@pixi/polyfill": "6.1.3", + "@pixi/prepare": "6.1.3", + "@pixi/runner": "6.1.3", + "@pixi/settings": "6.1.3", + "@pixi/sprite": "6.1.3", + "@pixi/sprite-animated": "6.1.3", + "@pixi/sprite-tiling": "6.1.3", + "@pixi/spritesheet": "6.1.3", + "@pixi/text": "6.1.3", + "@pixi/text-bitmap": "6.1.3", + "@pixi/ticker": "6.1.3", + "@pixi/utils": "6.1.3" + } }, "pkg-dir": { "version": "4.2.0", @@ -8570,12 +9880,22 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, + "promise-polyfill": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.2.3.tgz", + "integrity": "sha512-Og0+jCRQetV84U8wVjMNccfGCnMQ9mGs9Hv78QFe+pSDD3gWTpz0y+1QCuxy5d/vBFuZ3iwP2eycAkvqIMPmWg==" + }, "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==" + }, "queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -8722,9 +10042,9 @@ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, "sass": { - "version": "1.53.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.53.0.tgz", - "integrity": "sha512-zb/oMirbKhUgRQ0/GFz8TSAwRq2IlR29vOUJZOx0l8sV+CkHUfHa4u5nqrG+1VceZp7Jfj59SVW9ogdhTvJDcQ==", + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.54.0.tgz", + "integrity": "sha512-C4zp79GCXZfK0yoHZg+GxF818/aclhp9F48XBu/+bm9vXEVAYov9iU3FBVRMq3Hx3OA4jfKL+p2K9180mEh0xQ==", "dev": true, "requires": { "chokidar": ">=3.0.0 <4.0.0", @@ -9047,11 +10367,18 @@ "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "requires": { + "os-tmpdir": "~1.0.2" + } + }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, "requires": { "is-number": "^7.0.0" } @@ -9110,9 +10437,9 @@ "integrity": "sha512-bctQIOqx2iVbWGDGPWwIm18QScpu2XRmkC19D8rQGFsjKSgteq/o1hTZvIG/wuDq8fanpBDrLkLq+aEN/6y5XQ==" }, "typescript": { - "version": "3.9.10", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", - "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", + "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", "dev": true }, "unbox-primitive": { @@ -9126,6 +10453,11 @@ "which-boxed-primitive": "^1.0.2" } }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + }, "unzipper": { "version": "0.10.11", "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.11.tgz", @@ -9177,9 +10509,9 @@ } }, "update-browserslist-db": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.3.tgz", - "integrity": "sha512-ufSazemeh9Gty0qiWtoRpJ9F5Q5W3xdIPm1UZQqYQv/q0Nyb9EMHUB2lu+O9x1re9WsorpMAUu4Y6Lxcs5n+XQ==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz", + "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==", "dev": true, "requires": { "escalade": "^3.1.1", @@ -9195,6 +10527,22 @@ "punycode": "^2.1.0" } }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==", + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==" + } + } + }, "util": { "version": "0.12.4", "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", @@ -9263,9 +10611,9 @@ } }, "webpack": { - "version": "5.73.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.73.0.tgz", - "integrity": "sha512-svjudQRPPa0YiOYa2lM/Gacw0r6PvxptHj4FuEKQ2kX05ZLkjbVc5MnPs6its5j7IZljnIqSVo/OsY2X0IpHGA==", + "version": "5.74.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", + "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", "dev": true, "requires": { "@types/eslint-scope": "^3.7.3", @@ -9273,11 +10621,11 @@ "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/wasm-edit": "1.11.1", "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.4.1", + "acorn": "^8.7.1", "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.9.3", + "enhanced-resolve": "^5.10.0", "es-module-lexer": "^0.9.0", "eslint-scope": "5.1.1", "events": "^3.2.0", @@ -9290,7 +10638,7 @@ "schema-utils": "^3.1.0", "tapable": "^2.1.1", "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.3.1", + "watchpack": "^2.4.0", "webpack-sources": "^3.2.3" }, "dependencies": { @@ -9478,8 +10826,7 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "y18n": { "version": "4.0.3", diff --git a/package.json b/package.json index eb87ee1..c4a06eb 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "sdfv", "displayName": "DaCe SDFG Editor", "description": "Transform and optimize data-centric programs with a click of a button", - "version": "1.3.0", + "version": "1.3.1", "engines": { "vscode": "^1.68.0" }, @@ -167,7 +167,7 @@ "properties": { "dace.sdfv.layout": { "type": "string", - "default": "horizontal", + "default": "vertical", "enum": [ "horizontal", "vertical" @@ -186,6 +186,34 @@ "type": "string", "default": "", "description": "Python interpreter path to use for the DaCe backend. Leave blank to use your default Python interpreter." + }, + "dace.general.autoOpenSdfgs": { + "type": "string", + "default": "Ask", + "enum": [ + "Always", + "Ask", + "Never" + ], + "enumDescriptions": [ + "Automatically open any newly generated SDFG", + "Ask when a new SDFG is generated, whether or not it should be opened", + "Never automatically open newly generated SDFGs, and don't ask" + ] + }, + "dace.general.autoOpenInstrumentationReports": { + "type": "string", + "default": "Ask", + "enum": [ + "Always", + "Ask", + "Never" + ], + "enumDescriptions": [ + "Automatically load all newly generated instrumentation reports", + "Ask when a new instrumentation report is generated, whether or not it should be loaded", + "Never automatically load newly generated instrumentation reports, and don't ask" + ] } } } @@ -603,14 +631,14 @@ "sass-loader": "^12.1.0", "style-loader": "^3.2.1", "ts-loader": "^9.2.6", - "typescript": "^3.9.9", + "typescript": "^4.7.0", "vscode-test": "^1.5.2", "webpack": "^5.73.0", "webpack-cli": "^4.10.0" }, "dependencies": { "@popperjs/core": "^2.10.1", - "@spcl/sdfv": "^1.0.0", + "@spcl/sdfv": "^1.0.29-beta.12", "@types/dagre": "^0.7.46", "@types/jquery": "^3.5.6", "bootstrap": "^5.0.2", diff --git a/scripts/generate_meta_dict.sh b/scripts/generate_meta_dict.sh new file mode 100644 index 0000000..43b0bca --- /dev/null +++ b/scripts/generate_meta_dict.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash + +read -r -d '' PYCMD << EOPYCMD +from backend.run_dace import get_property_metadata; +import json; +metadata = get_property_metadata(force_regenerate=True); +f = open('src/utils/sdfg_meta_dict.json', 'w'); +f.write(json.dumps(metadata['metaDict'], indent=2)); +f.close(); +EOPYCMD + +echo 'Generating metadata dictionary...' +python -c "$PYCMD" +echo 'Generated' diff --git a/src/dace_interface.ts b/src/dace_interface.ts index aad23eb..9fd7095 100644 --- a/src/dace_interface.ts +++ b/src/dace_interface.ts @@ -1,22 +1,22 @@ // Copyright 2020-2022 ETH Zurich and the DaCe-VSCode authors. // All rights reserved. -import * as os from 'os'; -import * as vscode from 'vscode'; import { request } from 'http'; import * as net from 'net'; +import * as os from 'os'; +import * as vscode from 'vscode'; -import { DaCeVSCode } from './extension'; -import { SdfgViewerProvider } from './components/sdfg_viewer'; import { - MessageReceiverInterface, + MessageReceiverInterface } from './components/messaging/message_receiver_interface'; -import { TransformationListProvider } from './components/transformation_list'; +import { OptimizationPanel } from './components/optimization_panel'; +import { SdfgViewerProvider } from './components/sdfg_viewer'; import { - TransformationHistoryProvider, + TransformationHistoryProvider } from './components/transformation_history'; -import { OptimizationPanel } from './components/optimization_panel'; -import { executeTrusted, showUntrustedWorkspaceWarning, walkDirectory } from './utils/utils'; +import { TransformationListProvider } from './components/transformation_list'; +import { DaCeVSCode } from './extension'; +import { showUntrustedWorkspaceWarning, walkDirectory } from './utils/utils'; enum InteractionMode { PREVIEW, @@ -51,6 +51,10 @@ export class DaCeInterface if (message.transformation !== undefined) this.previewTransformation(message.transformation); break; + case 'export_transformation_to_file': + if (message.transformation !== undefined) + this.exportTransformation(message.transformation); + break; case 'load_transformations': if (message.sdfg !== undefined && message.selectedElements !== undefined) @@ -68,16 +72,6 @@ export class DaCeInterface case 'get_flops': this.getFlops(); break; - case 'insert_node': - this.insertSDFGElement( - message.sdfg, message.addType, message.parent, - message.edgeA, origin - ); - break; - case 'remove_nodes': - if (message.sdfg && message.uuids) - this.removeGraphElements(message.sdfg, message.uuids); - break; case 'query_sdfg_metadata': this.querySdfgMetadata(); break; @@ -210,16 +204,17 @@ export class DaCeInterface public genericErrorHandler(message: string, details?: string) { this.hideSpinner(); console.error(message); + let text = message; if (details) { console.error(details); - vscode.window.showErrorMessage( - message + ' (' + details + ')' - ); - } else { - vscode.window.showErrorMessage( - message - ); + text += ' (' + details + ')'; } + vscode.window.showErrorMessage( + text, 'Show Trace' + ).then((val: 'Show Trace' | undefined) => { + if (val === 'Show Trace') + this.daemonTerminal?.show(); + }); } private getRunDaceScriptUri(): vscode.Uri | undefined { @@ -239,6 +234,7 @@ export class DaCeInterface this.daemonTerminal = vscode.window.createTerminal({ hideFromUser: false, name: 'SDFG Optimizer', + isTransient: true, }); const scriptUri = this.getRunDaceScriptUri(); @@ -613,7 +609,8 @@ export class DaCeInterface this.hideSpinner(); this.writeToActiveDocument(data.sdfg); }, - () => { + async (error: any): Promise => { + this.genericErrorHandler(error.message, error.details); this.hideSpinner(); }, true @@ -622,14 +619,14 @@ export class DaCeInterface }); } - public applyTransformation(transformation: any) { + public applyTransformation(transformation: any): void { this.sendApplyTransformationRequest(transformation, (data: any) => { this.hideSpinner(); this.writeToActiveDocument(data.sdfg); }); } - public previewTransformation(transformation: any) { + public previewTransformation(transformation: any): void { this.sendApplyTransformationRequest( transformation, (data: any) => { @@ -640,7 +637,43 @@ export class DaCeInterface ); } - public writeToActiveDocument(json: any) { + /** + * Given a transformation, export it to a JSON file. + * This allows saving a transformation as matched to a specific subgraph or + * pattern to a JSON file. This file can be loaded / deserialized through + * DaCe's standard deserializer elsewhere, to obtain the same transformation + * matched to the same subgraph, to be directly applied. This allows + * transformations to be shared or used outside the interface in custom + * scripts. + * @param transformation Transformation to export, in JSON format. + */ + public exportTransformation(transformation: any): void { + vscode.window.showSaveDialog({ + filters: { + 'JSON': ['json'], + }, + title: 'Export Transformation', + }).then(uri => { + if (uri) + vscode.workspace.fs.writeFile( + uri, + new TextEncoder().encode(JSON.stringify(transformation)) + ).then( + () => { + vscode.window.showInformationMessage( + 'Successfully saved transformation to file.' + ); + }, + () => { + vscode.window.showErrorMessage( + 'Failed to save transformation to file.' + ); + } + ); + }); + } + + public writeToActiveDocument(json: any): void { const activeEditor = DaCeVSCode.getInstance().getActiveEditor(); if (activeEditor) { const sdfvInstance = SdfgViewerProvider.getInstance(); @@ -842,7 +875,7 @@ export class DaCeInterface }); } - async function clearSpinner(error: any): Promise { + async function clearSpinner(): Promise { SdfgViewerProvider.getInstance()?.handleMessage({ type: 'get_applicable_transformations_callback', transformations: undefined, @@ -857,49 +890,10 @@ export class DaCeInterface permissive: false, }, callback, - clearSpinner, - ); - } - - public insertSDFGElement( - sdfg: string, type: string, parent: string, edge_a: string, - origin: vscode.Webview - ): void { - function callback(data: any) { - origin.postMessage({ - type: 'added_node', - sdfg: data.sdfg, - uuid: data.uuid, - }); - } - - if (!edge_a) - edge_a = 'NONE'; - - this.sendPostRequest( - '/insert_sdfg_element', - { - 'sdfg': JSON.parse(sdfg), - 'type': type, - 'parent': parent, - 'edge_a': edge_a, - }, - callback - ); - } - - public removeGraphElements(sdfg: string, uuids: string): void { - function callback(data: any) { - DaCeInterface.getInstance().writeToActiveDocument(data.sdfg); - } - - this.sendPostRequest( - '/remove_sdfg_elements', - { - 'sdfg': JSON.parse(sdfg), - 'uuids': uuids, + async (error: any): Promise => { + this.genericErrorHandler(error.message, error.details); + clearSpinner(); }, - callback ); } diff --git a/src/extension.ts b/src/extension.ts index 8d597d9..b81f8ba 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -144,54 +144,50 @@ export class DaCeVSCode { vscode.Uri.file(this.activeSdfgFileName).fsPath) continue; - let autoOpen = this.context?.workspaceState.get( - 'SDFV_auto_open_generated_sdfg' - ); - - if (autoOpen !== undefined) { - if (autoOpen) - this.openGeneratedSdfg( - targetUri, - sourcePath, - path, - argv - ); + const autoOpen = + vscode.workspace.getConfiguration('dace.general'); + const configKey = 'autoOpenSdfgs'; + + const autoOpenPref = autoOpen?.get(configKey); + if (autoOpenPref === 'Always') { + this.openGeneratedSdfg( + targetUri, + sourcePath, + path, + argv + ); + continue; + } else if (autoOpenPref === 'Never') { continue; + } else { + vscode.window.showInformationMessage( + 'An SDFG with the name ' + name + + ' was generated, do you want to show it?', + 'Always', + 'Yes', + 'No', + 'Never' + ).then((opt) => { + switch (opt) { + case 'Always': + autoOpen.update(configKey, 'Always'); + // Fall through. + case 'Yes': + this.openGeneratedSdfg( + targetUri, + sourcePath, + path, + argv + ); + break; + case 'Never': + autoOpen.update(configKey, 'Never'); + // Fall through. + case 'No': + break; + } + }); } - - vscode.window.showInformationMessage( - 'An SDFG with the name ' + name + - ' was generated, do you want to show it?', - 'Always', - 'Yes', - 'No', - 'Never' - ).then((opt) => { - switch (opt) { - case 'Always': - this.context?.workspaceState.update( - 'SDFV_auto_open_generated_sdfg', - true - ); - // Fall through. - case 'Yes': - this.openGeneratedSdfg( - targetUri, - sourcePath, - path, - argv - ); - break; - case 'Never': - this.context?.workspaceState.update( - 'SDFV_auto_open_generated_sdfg', - false - ); - // Fall through. - case 'No': - break; - } - }); } } return true; @@ -347,45 +343,42 @@ export class DaCeVSCode { ); perfReportWatcher.onDidCreate((url) => { vscode.workspace.fs.readFile(url).then((data) => { - let report = JSON.parse(data.toString()); + const report = JSON.parse(data.toString()); - let autoOpen = this.context?.workspaceState.get( - 'SDFV_auto_open_instrumentation_report' - ); + const autoOpen = + vscode.workspace.getConfiguration('dace.general'); + const configKey = 'autoOpenInstrumentationReports'; - if (autoOpen !== undefined) { - if (autoOpen) - this.openInstrumentationReport(url, report); + const autoOpenPref = autoOpen?.get(configKey); + if (autoOpenPref === 'Always') { + this.openInstrumentationReport(url, report); return; + } else if (autoOpenPref === 'Never') { + return; + } else { + vscode.window.showInformationMessage( + 'A report file was just generated, do you want to ' + + 'load it?', + 'Always', + 'Yes', + 'No', + 'Never' + ).then((opt) => { + switch (opt) { + case 'Always': + autoOpen.update(configKey, 'Always'); + // Fall through. + case 'Yes': + this.openInstrumentationReport(url, report); + break; + case 'Never': + autoOpen.update(configKey, 'Never'); + // Fall through. + case 'No': + break; + } + }); } - - vscode.window.showInformationMessage( - 'A report file was just generated, do you want to load it?', - 'Always', - 'Yes', - 'No', - 'Never' - ).then((opt) => { - switch (opt) { - case 'Always': - this.context?.workspaceState.update( - 'SDFV_auto_open_instrumentation_report', - true - ); - // Fall through. - case 'Yes': - this.openInstrumentationReport(url, report); - break; - case 'Never': - this.context?.workspaceState.update( - 'SDFV_auto_open_instrumentation_report', - false - ); - // Fall through. - case 'No': - break; - } - }); }); }); diff --git a/src/types.d.ts b/src/types.d.ts index d3ec365..7cb4d24 100644 --- a/src/types.d.ts +++ b/src/types.d.ts @@ -6,4 +6,4 @@ export type Range = { end: number | string | string[] | undefined | null, tile: number | string | string[] | undefined | null, step: number | string | string[] | undefined | null, -}; \ No newline at end of file +}; diff --git a/src/utils/sdfg_meta_dict.json b/src/utils/sdfg_meta_dict.json index 175f0ed..6daebc8 100644 --- a/src/utils/sdfg_meta_dict.json +++ b/src/utils/sdfg_meta_dict.json @@ -1 +1,7869 @@ -{"__reverse_type_lookup__": {"typeclass": {"metatype": "typeclass", "desc": "", "category": "General", "default": "int32", "base_types": ["bool", "bool_", "int8", "int16", "int32", "int64", "uint8", "uint16", "uint32", "uint64", "float16", "float32", "float64", "complex64", "complex128"], "compound_types": {"vector": {"elements": {"type": "int", "default": 0}, "dtype": {"type": "typeclass", "default": "bool"}}, "pointer": {"dtype": {"type": "typeclass", "default": "bool"}}, "opaque": {"dtype": {"type": "typeclass", "default": "bool"}}, "struct": {"name": {"type": "str", "default": ""}, "data": {"type": "dict", "default": {}, "value_type": "typeclass"}, "length": {"type": "dict", "default": {}, "value_type": "int"}, "bytes": {"type": "int", "default": 0}}, "callback": {"arguments": {"type": "list", "element_type": "typeclass", "default": []}, "returntypes": {"type": "list", "element_type": "typeclass", "default": []}}}}, "tuple": {"metatype": "tuple", "desc": "", "category": "General", "default": []}, "bool": {"metatype": "bool", "desc": "", "category": "General", "default": false}, "StorageType": {"metatype": "StorageType", "desc": "Storage location", "category": "General", "default": "Default", "choices": ["Default", "Register", "CPU_Pinned", "CPU_Heap", "CPU_ThreadLocal", "GPU_Global", "GPU_Shared", "FPGA_Global", "FPGA_Local", "FPGA_Registers", "FPGA_ShiftRegister", "SVE_Register"]}, "AllocationLifetime": {"metatype": "AllocationLifetime", "desc": "Data allocation span", "category": "General", "default": "Scope", "choices": ["Scope", "State", "SDFG", "Global", "Persistent"]}, "dict": {"metatype": "dict", "desc": "Full storage location identifier (e.g., rank, GPU ID)", "category": "General", "default": {}, "key_type": "str", "value_type": "str"}, "DebugInfo": {"metatype": "DebugInfo", "desc": "", "category": "General", "default": {"type": "DebugInfo", "start_line": 0, "end_line": 0, "start_column": 0, "end_column": 0, "filename": null}}, "SymbolicProperty": {"metatype": "SymbolicProperty", "desc": "The total allocated size of the array. Can be used for padding.", "category": "General", "default": 0}, "int": {"metatype": "int", "desc": "Allocation alignment in bytes (0 uses compiler-default)", "category": "General", "default": 0}, "list": {"metatype": "list", "desc": "", "category": "General", "default": [], "element_type": "pystr_to_symbolic"}, "SubsetProperty": {"metatype": "SubsetProperty", "desc": "Subset of elements to move from the data attached to this edge.", "category": "General", "default": null}, "DataProperty": {"metatype": "DataProperty", "desc": "Data descriptor attached to this memlet", "category": "General", "default": null}, "LambdaProperty": {"metatype": "LambdaProperty", "desc": "If set, defines a write-conflict resolution lambda function. The syntax of the lambda function receives two elements: `current` value and `new` value, and returns the value after resolution", "category": "General", "default": null}, "DataInstrumentationType": {"metatype": "DataInstrumentationType", "desc": "Instrument data contents at this access", "category": "General", "default": "No_Instrumentation", "choices": ["No_Instrumentation", "Save", "Restore"]}, "str": {"metatype": "str", "desc": "Name of the CodeNode", "category": "General", "default": ""}, "set": {"metatype": "set", "desc": "Environments required by CMake to build and run this code node.", "category": "General", "default": []}, "CodeBlock": {"metatype": "CodeBlock", "desc": "Tasklet code", "category": "General", "default": {"string_data": "", "language": "Python"}}, "InstrumentationType": {"metatype": "InstrumentationType", "desc": "Measure execution statistics with given method", "category": "General", "default": "No_Instrumentation", "choices": ["No_Instrumentation", "Timer", "PAPI_Counters", "GPU_Events", "FPGA"]}, "SDFGReferenceProperty": {"metatype": "SDFGReferenceProperty", "desc": "The SDFG", "category": "General", "default": null}, "ScheduleType": {"metatype": "ScheduleType", "desc": "SDFG schedule", "category": "General", "default": "Default", "choices": ["Default", "Sequential", "MPI", "CPU_Multicore", "Unrolled", "SVE_Map", "GPU_Default", "GPU_Device", "GPU_ThreadBlock", "GPU_ThreadBlock_Dynamic", "GPU_Persistent", "FPGA_Device"]}, "Range": {"metatype": "Range", "desc": "Ranges of map parameters", "category": "General", "default": {"type": "Range", "ranges": []}, "indirected": true}, "OMPScheduleType": {"metatype": "OMPScheduleType", "desc": "OpenMP schedule {static, dynamic, guided}", "category": "General", "default": "Default", "indirected": true, "choices": ["Default", "Static", "Dynamic", "Guided"]}, "LibraryImplementationProperty": {"metatype": "LibraryImplementationProperty", "desc": "Which implementation this library node will expand into.Must match a key in the list of possible implementations.", "category": "General", "default": null}, "OptionalSDFGReferenceProperty": {"metatype": "OptionalSDFGReferenceProperty", "desc": "", "category": "General", "default": null}, "Property": {"metatype": "Property", "desc": "A scalar which will be multiplied with A @ B before adding C", "category": "General", "default": 1}, "TilingType": {"metatype": "TilingType", "desc": "normal: the outerloop increments with tile_size, ceilrange: uses ceiling(N/tile_size) in outer range, number_of_tiles: tiles the map into the number of provided tiles, provide the number of tiles over tile_size", "category": "General", "default": "Normal", "choices": ["Normal", "CeilRange", "NumberOfTiles"]}, "DeviceType": {"category": "General", "metatype": "DeviceType", "choices": ["CPU", "GPU", "FPGA"]}, "Language": {"category": "General", "metatype": "Language", "choices": ["Python", "CPP", "OpenCL", "SystemVerilog", "MLIR"]}, "ReductionType": {"category": "General", "metatype": "ReductionType", "choices": ["Custom", "Min", "Max", "Sum", "Product", "Logical_And", "Bitwise_And", "Logical_Or", "Bitwise_Or", "Logical_Xor", "Bitwise_Xor", "Min_Location", "Max_Location", "Exchange", "Sub", "Div"]}, "Typeclasses": {"category": "General", "metatype": "Typeclasses", "choices": ["bool", "bool_", "int8", "int16", "int32", "int64", "uint8", "uint16", "uint32", "uint64", "float16", "float32", "float64", "complex64", "complex128"]}}, "__libs__": {"MatMul": "dace.libraries.blas.nodes.matmul.MatMul", "Dot": "dace.libraries.blas.nodes.dot.Dot", "Gemv": "dace.libraries.blas.nodes.gemv.Gemv", "Gemm": "dace.libraries.blas.nodes.gemm.Gemm", "Ger": "dace.libraries.blas.nodes.ger.Ger", "BatchedMatMul": "dace.libraries.blas.nodes.batched_matmul.BatchedMatMul", "Transpose": "dace.libraries.blas.nodes.transpose.Transpose", "Axpy": "dace.libraries.blas.nodes.axpy.Axpy", "CodeLibraryNode": "dace.libraries.standard.nodes.code.CodeLibraryNode", "Gearbox": "dace.libraries.standard.nodes.gearbox.Gearbox", "Reduce": "dace.libraries.standard.nodes.reduce.Reduce"}, "__data_container_types__": {"Scalar": "Scalar", "Array": "Array", "Stream": "Stream", "View": "View", "Reference": "Reference"}, "Data": {"dtype": {"metatype": "typeclass", "desc": "", "category": "General", "default": "int32", "base_types": ["bool", "bool_", "int8", "int16", "int32", "int64", "uint8", "uint16", "uint32", "uint64", "float16", "float32", "float64", "complex64", "complex128"], "compound_types": {"vector": {"elements": {"type": "str", "default": "0"}, "dtype": {"type": "typeclass", "default": "bool"}}, "pointer": {"dtype": {"type": "typeclass", "default": "bool"}}, "opaque": {"ctype": {"type": "str", "default": ""}}, "struct": {"name": {"type": "str", "default": ""}, "data": {"type": "dict", "default": {}, "value_type": "typeclass"}, "length": {"type": "dict", "default": {}, "value_type": "int"}, "bytes": {"type": "int", "default": 0}}, "callback": {"arguments": {"type": "list", "element_type": "typeclass", "default": []}, "returntypes": {"type": "list", "element_type": "typeclass", "default": []}}}}, "shape": {"metatype": "tuple", "desc": "", "category": "General", "default": []}, "transient": {"metatype": "bool", "desc": "", "category": "General", "default": false}, "storage": {"metatype": "StorageType", "desc": "Storage location", "category": "General", "default": "Default", "choices": ["Default", "Register", "CPU_Pinned", "CPU_Heap", "CPU_ThreadLocal", "GPU_Global", "GPU_Shared", "FPGA_Global", "FPGA_Local", "FPGA_Registers", "FPGA_ShiftRegister", "SVE_Register"]}, "lifetime": {"metatype": "AllocationLifetime", "desc": "Data allocation span", "category": "General", "default": "Scope", "choices": ["Scope", "State", "SDFG", "Global", "Persistent"]}, "location": {"metatype": "dict", "desc": "Full storage location identifier (e.g., rank, GPU ID)", "category": "General", "default": {}, "key_type": "str", "value_type": "str"}, "debuginfo": {"metatype": "DebugInfo", "desc": "", "category": "General", "default": {"type": "DebugInfo", "start_line": 0, "end_line": 0, "start_column": 0, "end_column": 0, "filename": null}}}, "Scalar": {"allow_conflicts": {"metatype": "bool", "desc": "", "category": "General", "default": false}, "dtype": {"metatype": "typeclass", "desc": "", "category": "General", "default": "int32", "base_types": ["bool", "bool_", "int8", "int16", "int32", "int64", "uint8", "uint16", "uint32", "uint64", "float16", "float32", "float64", "complex64", "complex128"], "compound_types": {"vector": {"elements": {"type": "int", "default": 0}, "dtype": {"type": "typeclass", "default": "bool"}}, "pointer": {"dtype": {"type": "typeclass", "default": "bool"}}, "opaque": {"dtype": {"type": "typeclass", "default": "bool"}}, "struct": {"name": {"type": "str", "default": ""}, "data": {"type": "dict", "default": {}, "value_type": "typeclass"}, "length": {"type": "dict", "default": {}, "value_type": "int"}, "bytes": {"type": "int", "default": 0}}, "callback": {"arguments": {"type": "list", "element_type": "typeclass", "default": []}, "returntypes": {"type": "list", "element_type": "typeclass", "default": []}}}}, "shape": {"metatype": "tuple", "desc": "", "category": "General", "default": []}, "transient": {"metatype": "bool", "desc": "", "category": "General", "default": false}, "storage": {"metatype": "StorageType", "desc": "Storage location", "category": "General", "default": "Default", "choices": ["Default", "Register", "CPU_Pinned", "CPU_Heap", "CPU_ThreadLocal", "GPU_Global", "GPU_Shared", "FPGA_Global", "FPGA_Local", "FPGA_Registers", "FPGA_ShiftRegister", "SVE_Register"]}, "lifetime": {"metatype": "AllocationLifetime", "desc": "Data allocation span", "category": "General", "default": "Scope", "choices": ["Scope", "State", "SDFG", "Global", "Persistent"]}, "location": {"metatype": "dict", "desc": "Full storage location identifier (e.g., rank, GPU ID)", "category": "General", "default": {}, "key_type": "str", "value_type": "str"}, "debuginfo": {"metatype": "DebugInfo", "desc": "", "category": "General", "default": {"type": "DebugInfo", "start_line": 0, "end_line": 0, "start_column": 0, "end_column": 0, "filename": null}}}, "Array": {"allow_conflicts": {"metatype": "bool", "desc": "If enabled, allows more than one memlet to write to the same memory location without conflict resolution.", "category": "General", "default": false}, "strides": {"metatype": "tuple", "desc": "For each dimension, the number of elements to skip in order to obtain the next element in that dimension.", "category": "General", "default": []}, "total_size": {"metatype": "SymbolicProperty", "desc": "The total allocated size of the array. Can be used for padding.", "category": "General", "default": 0}, "offset": {"metatype": "tuple", "desc": "Initial offset to translate all indices by.", "category": "General", "default": []}, "may_alias": {"metatype": "bool", "desc": "This pointer may alias with other pointers in the same function", "category": "General", "default": false}, "alignment": {"metatype": "int", "desc": "Allocation alignment in bytes (0 uses compiler-default)", "category": "General", "default": 0}, "start_offset": {"metatype": "int", "desc": "Allocation offset elements for manual alignment (pre-padding)", "category": "General", "default": 0}, "dtype": {"metatype": "typeclass", "desc": "", "category": "General", "default": "int32", "base_types": ["bool", "bool_", "int8", "int16", "int32", "int64", "uint8", "uint16", "uint32", "uint64", "float16", "float32", "float64", "complex64", "complex128"], "compound_types": {"vector": {"elements": {"type": "int", "default": 0}, "dtype": {"type": "typeclass", "default": "bool"}}, "pointer": {"dtype": {"type": "typeclass", "default": "bool"}}, "opaque": {"dtype": {"type": "typeclass", "default": "bool"}}, "struct": {"name": {"type": "str", "default": ""}, "data": {"type": "dict", "default": {}, "value_type": "typeclass"}, "length": {"type": "dict", "default": {}, "value_type": "int"}, "bytes": {"type": "int", "default": 0}}, "callback": {"arguments": {"type": "list", "element_type": "typeclass", "default": []}, "returntypes": {"type": "list", "element_type": "typeclass", "default": []}}}}, "shape": {"metatype": "tuple", "desc": "", "category": "General", "default": []}, "transient": {"metatype": "bool", "desc": "", "category": "General", "default": false}, "storage": {"metatype": "StorageType", "desc": "Storage location", "category": "General", "default": "Default", "choices": ["Default", "Register", "CPU_Pinned", "CPU_Heap", "CPU_ThreadLocal", "GPU_Global", "GPU_Shared", "FPGA_Global", "FPGA_Local", "FPGA_Registers", "FPGA_ShiftRegister", "SVE_Register"]}, "lifetime": {"metatype": "AllocationLifetime", "desc": "Data allocation span", "category": "General", "default": "Scope", "choices": ["Scope", "State", "SDFG", "Global", "Persistent"]}, "location": {"metatype": "dict", "desc": "Full storage location identifier (e.g., rank, GPU ID)", "category": "General", "default": {}, "key_type": "str", "value_type": "str"}, "debuginfo": {"metatype": "DebugInfo", "desc": "", "category": "General", "default": {"type": "DebugInfo", "start_line": 0, "end_line": 0, "start_column": 0, "end_column": 0, "filename": null}}}, "Stream": {"offset": {"metatype": "list", "desc": "", "category": "General", "default": [], "element_type": "pystr_to_symbolic"}, "buffer_size": {"metatype": "SymbolicProperty", "desc": "Size of internal buffer.", "category": "General", "default": 0}, "dtype": {"metatype": "typeclass", "desc": "", "category": "General", "default": "int32", "base_types": ["bool", "bool_", "int8", "int16", "int32", "int64", "uint8", "uint16", "uint32", "uint64", "float16", "float32", "float64", "complex64", "complex128"], "compound_types": {"vector": {"elements": {"type": "int", "default": 0}, "dtype": {"type": "typeclass", "default": "bool"}}, "pointer": {"dtype": {"type": "typeclass", "default": "bool"}}, "opaque": {"dtype": {"type": "typeclass", "default": "bool"}}, "struct": {"name": {"type": "str", "default": ""}, "data": {"type": "dict", "default": {}, "value_type": "typeclass"}, "length": {"type": "dict", "default": {}, "value_type": "int"}, "bytes": {"type": "int", "default": 0}}, "callback": {"arguments": {"type": "list", "element_type": "typeclass", "default": []}, "returntypes": {"type": "list", "element_type": "typeclass", "default": []}}}}, "shape": {"metatype": "tuple", "desc": "", "category": "General", "default": []}, "transient": {"metatype": "bool", "desc": "", "category": "General", "default": false}, "storage": {"metatype": "StorageType", "desc": "Storage location", "category": "General", "default": "Default", "choices": ["Default", "Register", "CPU_Pinned", "CPU_Heap", "CPU_ThreadLocal", "GPU_Global", "GPU_Shared", "FPGA_Global", "FPGA_Local", "FPGA_Registers", "FPGA_ShiftRegister", "SVE_Register"]}, "lifetime": {"metatype": "AllocationLifetime", "desc": "Data allocation span", "category": "General", "default": "Scope", "choices": ["Scope", "State", "SDFG", "Global", "Persistent"]}, "location": {"metatype": "dict", "desc": "Full storage location identifier (e.g., rank, GPU ID)", "category": "General", "default": {}, "key_type": "str", "value_type": "str"}, "debuginfo": {"metatype": "DebugInfo", "desc": "", "category": "General", "default": {"type": "DebugInfo", "start_line": 0, "end_line": 0, "start_column": 0, "end_column": 0, "filename": null}}}, "View": {"allow_conflicts": {"metatype": "bool", "desc": "If enabled, allows more than one memlet to write to the same memory location without conflict resolution.", "category": "General", "default": false}, "strides": {"metatype": "tuple", "desc": "For each dimension, the number of elements to skip in order to obtain the next element in that dimension.", "category": "General", "default": []}, "total_size": {"metatype": "SymbolicProperty", "desc": "The total allocated size of the array. Can be used for padding.", "category": "General", "default": 0}, "offset": {"metatype": "tuple", "desc": "Initial offset to translate all indices by.", "category": "General", "default": []}, "may_alias": {"metatype": "bool", "desc": "This pointer may alias with other pointers in the same function", "category": "General", "default": false}, "alignment": {"metatype": "int", "desc": "Allocation alignment in bytes (0 uses compiler-default)", "category": "General", "default": 0}, "start_offset": {"metatype": "int", "desc": "Allocation offset elements for manual alignment (pre-padding)", "category": "General", "default": 0}, "dtype": {"metatype": "typeclass", "desc": "", "category": "General", "default": "int32", "base_types": ["bool", "bool_", "int8", "int16", "int32", "int64", "uint8", "uint16", "uint32", "uint64", "float16", "float32", "float64", "complex64", "complex128"], "compound_types": {"vector": {"elements": {"type": "int", "default": 0}, "dtype": {"type": "typeclass", "default": "bool"}}, "pointer": {"dtype": {"type": "typeclass", "default": "bool"}}, "opaque": {"dtype": {"type": "typeclass", "default": "bool"}}, "struct": {"name": {"type": "str", "default": ""}, "data": {"type": "dict", "default": {}, "value_type": "typeclass"}, "length": {"type": "dict", "default": {}, "value_type": "int"}, "bytes": {"type": "int", "default": 0}}, "callback": {"arguments": {"type": "list", "element_type": "typeclass", "default": []}, "returntypes": {"type": "list", "element_type": "typeclass", "default": []}}}}, "shape": {"metatype": "tuple", "desc": "", "category": "General", "default": []}, "transient": {"metatype": "bool", "desc": "", "category": "General", "default": false}, "storage": {"metatype": "StorageType", "desc": "Storage location", "category": "General", "default": "Default", "choices": ["Default", "Register", "CPU_Pinned", "CPU_Heap", "CPU_ThreadLocal", "GPU_Global", "GPU_Shared", "FPGA_Global", "FPGA_Local", "FPGA_Registers", "FPGA_ShiftRegister", "SVE_Register"]}, "lifetime": {"metatype": "AllocationLifetime", "desc": "Data allocation span", "category": "General", "default": "Scope", "choices": ["Scope", "State", "SDFG", "Global", "Persistent"]}, "location": {"metatype": "dict", "desc": "Full storage location identifier (e.g., rank, GPU ID)", "category": "General", "default": {}, "key_type": "str", "value_type": "str"}, "debuginfo": {"metatype": "DebugInfo", "desc": "", "category": "General", "default": {"type": "DebugInfo", "start_line": 0, "end_line": 0, "start_column": 0, "end_column": 0, "filename": null}}}, "Reference": {"allow_conflicts": {"metatype": "bool", "desc": "If enabled, allows more than one memlet to write to the same memory location without conflict resolution.", "category": "General", "default": false}, "strides": {"metatype": "tuple", "desc": "For each dimension, the number of elements to skip in order to obtain the next element in that dimension.", "category": "General", "default": []}, "total_size": {"metatype": "SymbolicProperty", "desc": "The total allocated size of the array. Can be used for padding.", "category": "General", "default": 0}, "offset": {"metatype": "tuple", "desc": "Initial offset to translate all indices by.", "category": "General", "default": []}, "may_alias": {"metatype": "bool", "desc": "This pointer may alias with other pointers in the same function", "category": "General", "default": false}, "alignment": {"metatype": "int", "desc": "Allocation alignment in bytes (0 uses compiler-default)", "category": "General", "default": 0}, "start_offset": {"metatype": "int", "desc": "Allocation offset elements for manual alignment (pre-padding)", "category": "General", "default": 0}, "dtype": {"metatype": "typeclass", "desc": "", "category": "General", "default": "int32", "base_types": ["bool", "bool_", "int8", "int16", "int32", "int64", "uint8", "uint16", "uint32", "uint64", "float16", "float32", "float64", "complex64", "complex128"], "compound_types": {"vector": {"elements": {"type": "int", "default": 0}, "dtype": {"type": "typeclass", "default": "bool"}}, "pointer": {"dtype": {"type": "typeclass", "default": "bool"}}, "opaque": {"dtype": {"type": "typeclass", "default": "bool"}}, "struct": {"name": {"type": "str", "default": ""}, "data": {"type": "dict", "default": {}, "value_type": "typeclass"}, "length": {"type": "dict", "default": {}, "value_type": "int"}, "bytes": {"type": "int", "default": 0}}, "callback": {"arguments": {"type": "list", "element_type": "typeclass", "default": []}, "returntypes": {"type": "list", "element_type": "typeclass", "default": []}}}}, "shape": {"metatype": "tuple", "desc": "", "category": "General", "default": []}, "transient": {"metatype": "bool", "desc": "", "category": "General", "default": false}, "storage": {"metatype": "StorageType", "desc": "Storage location", "category": "General", "default": "Default", "choices": ["Default", "Register", "CPU_Pinned", "CPU_Heap", "CPU_ThreadLocal", "GPU_Global", "GPU_Shared", "FPGA_Global", "FPGA_Local", "FPGA_Registers", "FPGA_ShiftRegister", "SVE_Register"]}, "lifetime": {"metatype": "AllocationLifetime", "desc": "Data allocation span", "category": "General", "default": "Scope", "choices": ["Scope", "State", "SDFG", "Global", "Persistent"]}, "location": {"metatype": "dict", "desc": "Full storage location identifier (e.g., rank, GPU ID)", "category": "General", "default": {}, "key_type": "str", "value_type": "str"}, "debuginfo": {"metatype": "DebugInfo", "desc": "", "category": "General", "default": {"type": "DebugInfo", "start_line": 0, "end_line": 0, "start_column": 0, "end_column": 0, "filename": null}}}, "Memlet": {"volume": {"metatype": "SymbolicProperty", "desc": "The exact number of elements moved using this memlet, or the maximum number if dynamic=True (with 0 as unbounded)", "category": "General", "default": 0}, "dynamic": {"metatype": "bool", "desc": "Is the number of elements moved determined at runtime (e.g., data dependent)", "category": "General", "default": false}, "subset": {"metatype": "SubsetProperty", "desc": "Subset of elements to move from the data attached to this edge.", "category": "General", "default": null}, "other_subset": {"metatype": "SubsetProperty", "desc": "Subset of elements after reindexing to the data not attached to this edge (e.g., for offsets and reshaping).", "category": "General", "default": null}, "data": {"metatype": "DataProperty", "desc": "Data descriptor attached to this memlet", "category": "General", "default": null}, "wcr": {"metatype": "LambdaProperty", "desc": "If set, defines a write-conflict resolution lambda function. The syntax of the lambda function receives two elements: `current` value and `new` value, and returns the value after resolution", "category": "General", "default": null}, "debuginfo": {"metatype": "DebugInfo", "desc": "Line information to track source and generated code", "category": "General", "default": {"type": "DebugInfo", "start_line": 0, "end_line": 0, "start_column": 0, "end_column": 0, "filename": null}}, "wcr_nonatomic": {"metatype": "bool", "desc": "If True, always generates non-conflicting (non-atomic) writes in resulting code", "category": "General", "default": false}, "allow_oob": {"metatype": "bool", "desc": "Bypass out-of-bounds validation", "category": "General", "default": false}}, "Node": {"in_connectors": {"metatype": "dict", "desc": "A set of input connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}, "out_connectors": {"metatype": "dict", "desc": "A set of output connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}}, "AccessNode": {"setzero": {"metatype": "bool", "desc": "Initialize to zero", "category": "General", "default": false}, "debuginfo": {"metatype": "DebugInfo", "desc": "", "category": "General", "default": {"type": "DebugInfo", "start_line": 0, "end_line": 0, "start_column": 0, "end_column": 0, "filename": null}}, "data": {"metatype": "DataProperty", "desc": "Data (array, stream, scalar) to access", "category": "General", "default": null}, "instrument": {"metatype": "DataInstrumentationType", "desc": "Instrument data contents at this access", "category": "General", "default": "No_Instrumentation", "choices": ["No_Instrumentation", "Save", "Restore"]}, "in_connectors": {"metatype": "dict", "desc": "A set of input connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}, "out_connectors": {"metatype": "dict", "desc": "A set of output connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}}, "CodeNode": {"label": {"metatype": "str", "desc": "Name of the CodeNode", "category": "General", "default": ""}, "location": {"metatype": "dict", "desc": "Full storage location identifier (e.g., rank, GPU ID)", "category": "General", "default": {}, "key_type": "str", "value_type": "pystr_to_symbolic"}, "environments": {"metatype": "set", "desc": "Environments required by CMake to build and run this code node.", "category": "General", "default": []}, "in_connectors": {"metatype": "dict", "desc": "A set of input connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}, "out_connectors": {"metatype": "dict", "desc": "A set of output connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}}, "Tasklet": {"code": {"metatype": "CodeBlock", "desc": "Tasklet code", "category": "General", "default": {"string_data": "", "language": "Python"}}, "state_fields": {"metatype": "list", "desc": "Fields that are added to the global state", "category": "General", "default": [], "element_type": "str"}, "code_global": {"metatype": "CodeBlock", "desc": "Global scope code needed for tasklet execution", "category": "General", "default": {"string_data": "", "language": "CPP"}}, "code_init": {"metatype": "CodeBlock", "desc": "Extra code that is called on DaCe runtime initialization", "category": "General", "default": {"string_data": "", "language": "CPP"}}, "code_exit": {"metatype": "CodeBlock", "desc": "Extra code that is called on DaCe runtime cleanup", "category": "General", "default": {"string_data": "", "language": "CPP"}}, "debuginfo": {"metatype": "DebugInfo", "desc": "", "category": "General", "default": {"type": "DebugInfo", "start_line": 0, "end_line": 0, "start_column": 0, "end_column": 0, "filename": null}}, "instrument": {"metatype": "InstrumentationType", "desc": "Measure execution statistics with given method", "category": "General", "default": "No_Instrumentation", "choices": ["No_Instrumentation", "Timer", "PAPI_Counters", "GPU_Events", "FPGA"]}, "label": {"metatype": "str", "desc": "Name of the CodeNode", "category": "General", "default": ""}, "location": {"metatype": "dict", "desc": "Full storage location identifier (e.g., rank, GPU ID)", "category": "General", "default": {}, "key_type": "str", "value_type": "pystr_to_symbolic"}, "environments": {"metatype": "set", "desc": "Environments required by CMake to build and run this code node.", "category": "General", "default": []}, "in_connectors": {"metatype": "dict", "desc": "A set of input connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}, "out_connectors": {"metatype": "dict", "desc": "A set of output connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}}, "RTLTasklet": {"ip_cores": {"metatype": "dict", "desc": "A set of IP cores used by the tasklet.", "category": "General", "default": {}, "key_type": "str", "value_type": "dict"}, "code": {"metatype": "CodeBlock", "desc": "Tasklet code", "category": "General", "default": {"string_data": "", "language": "Python"}}, "state_fields": {"metatype": "list", "desc": "Fields that are added to the global state", "category": "General", "default": [], "element_type": "str"}, "code_global": {"metatype": "CodeBlock", "desc": "Global scope code needed for tasklet execution", "category": "General", "default": {"string_data": "", "language": "CPP"}}, "code_init": {"metatype": "CodeBlock", "desc": "Extra code that is called on DaCe runtime initialization", "category": "General", "default": {"string_data": "", "language": "CPP"}}, "code_exit": {"metatype": "CodeBlock", "desc": "Extra code that is called on DaCe runtime cleanup", "category": "General", "default": {"string_data": "", "language": "CPP"}}, "debuginfo": {"metatype": "DebugInfo", "desc": "", "category": "General", "default": {"type": "DebugInfo", "start_line": 0, "end_line": 0, "start_column": 0, "end_column": 0, "filename": null}}, "instrument": {"metatype": "InstrumentationType", "desc": "Measure execution statistics with given method", "category": "General", "default": "No_Instrumentation", "choices": ["No_Instrumentation", "Timer", "PAPI_Counters", "GPU_Events", "FPGA"]}, "label": {"metatype": "str", "desc": "Name of the CodeNode", "category": "General", "default": ""}, "location": {"metatype": "dict", "desc": "Full storage location identifier (e.g., rank, GPU ID)", "category": "General", "default": {}, "key_type": "str", "value_type": "pystr_to_symbolic"}, "environments": {"metatype": "set", "desc": "Environments required by CMake to build and run this code node.", "category": "General", "default": []}, "in_connectors": {"metatype": "dict", "desc": "A set of input connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}, "out_connectors": {"metatype": "dict", "desc": "A set of output connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}}, "NestedSDFG": {"sdfg": {"metatype": "SDFGReferenceProperty", "desc": "The SDFG", "category": "General", "default": null}, "schedule": {"metatype": "ScheduleType", "desc": "SDFG schedule", "category": "General", "default": "Default", "choices": ["Default", "Sequential", "MPI", "CPU_Multicore", "Unrolled", "SVE_Map", "GPU_Default", "GPU_Device", "GPU_ThreadBlock", "GPU_ThreadBlock_Dynamic", "GPU_Persistent", "FPGA_Device"]}, "symbol_mapping": {"metatype": "dict", "desc": "Mapping between internal symbols and their values, expressed as symbolic expressions", "category": "General", "default": {}, "key_type": "str", "value_type": "pystr_to_symbolic"}, "debuginfo": {"metatype": "DebugInfo", "desc": "", "category": "General", "default": {"type": "DebugInfo", "start_line": 0, "end_line": 0, "start_column": 0, "end_column": 0, "filename": null}}, "is_collapsed": {"metatype": "bool", "desc": "Show this node/scope/state as collapsed", "category": "General", "default": false}, "instrument": {"metatype": "InstrumentationType", "desc": "Measure execution statistics with given method", "category": "General", "default": "No_Instrumentation", "choices": ["No_Instrumentation", "Timer", "PAPI_Counters", "GPU_Events", "FPGA"]}, "no_inline": {"metatype": "bool", "desc": "If True, this nested SDFG will not be inlined during simplification", "category": "General", "default": false}, "unique_name": {"metatype": "str", "desc": "Unique name of the SDFG", "category": "General", "default": ""}, "label": {"metatype": "str", "desc": "Name of the CodeNode", "category": "General", "default": ""}, "location": {"metatype": "dict", "desc": "Full storage location identifier (e.g., rank, GPU ID)", "category": "General", "default": {}, "key_type": "str", "value_type": "pystr_to_symbolic"}, "environments": {"metatype": "set", "desc": "Environments required by CMake to build and run this code node.", "category": "General", "default": []}, "in_connectors": {"metatype": "dict", "desc": "A set of input connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}, "out_connectors": {"metatype": "dict", "desc": "A set of output connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}}, "MapEntry": {"label": {"metatype": "str", "desc": "Label of the map", "category": "General", "default": "", "indirected": true}, "params": {"metatype": "list", "desc": "Mapped parameters", "category": "General", "default": [], "indirected": true, "element_type": "str"}, "range": {"metatype": "Range", "desc": "Ranges of map parameters", "category": "General", "default": {"type": "Range", "ranges": []}, "indirected": true}, "schedule": {"metatype": "ScheduleType", "desc": "Map schedule", "category": "General", "default": "Default", "indirected": true, "choices": ["Default", "Sequential", "MPI", "CPU_Multicore", "Unrolled", "SVE_Map", "GPU_Default", "GPU_Device", "GPU_ThreadBlock", "GPU_ThreadBlock_Dynamic", "GPU_Persistent", "FPGA_Device"]}, "unroll": {"metatype": "bool", "desc": "Map unrolling", "category": "General", "default": false, "indirected": true}, "collapse": {"metatype": "int", "desc": "How many dimensions to collapse into the parallel range", "category": "General", "default": 1, "indirected": true}, "debuginfo": {"metatype": "DebugInfo", "desc": "", "category": "General", "default": {"type": "DebugInfo", "start_line": 0, "end_line": 0, "start_column": 0, "end_column": 0, "filename": null}, "indirected": true}, "is_collapsed": {"metatype": "bool", "desc": "Show this node/scope/state as collapsed", "category": "General", "default": false, "indirected": true}, "instrument": {"metatype": "InstrumentationType", "desc": "Measure execution statistics with given method", "category": "General", "default": "No_Instrumentation", "indirected": true, "choices": ["No_Instrumentation", "Timer", "PAPI_Counters", "GPU_Events", "FPGA"]}, "omp_num_threads": {"metatype": "int", "desc": "Number of OpenMP threads executing the Map", "category": "General", "default": 0, "indirected": true}, "omp_schedule": {"metatype": "OMPScheduleType", "desc": "OpenMP schedule {static, dynamic, guided}", "category": "General", "default": "Default", "indirected": true, "choices": ["Default", "Static", "Dynamic", "Guided"]}, "omp_chunk_size": {"metatype": "int", "desc": "OpenMP schedule chunk size", "category": "General", "default": 0, "indirected": true}, "in_connectors": {"metatype": "dict", "desc": "A set of input connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}, "out_connectors": {"metatype": "dict", "desc": "A set of output connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}}, "MapExit": {"in_connectors": {"metatype": "dict", "desc": "A set of input connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}, "out_connectors": {"metatype": "dict", "desc": "A set of output connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}}, "Map": {"label": {"metatype": "str", "desc": "Label of the map", "category": "General", "default": ""}, "params": {"metatype": "list", "desc": "Mapped parameters", "category": "General", "default": [], "element_type": "str"}, "range": {"metatype": "Range", "desc": "Ranges of map parameters", "category": "General", "default": {"type": "Range", "ranges": []}}, "schedule": {"metatype": "ScheduleType", "desc": "Map schedule", "category": "General", "default": "Default", "choices": ["Default", "Sequential", "MPI", "CPU_Multicore", "Unrolled", "SVE_Map", "GPU_Default", "GPU_Device", "GPU_ThreadBlock", "GPU_ThreadBlock_Dynamic", "GPU_Persistent", "FPGA_Device"]}, "unroll": {"metatype": "bool", "desc": "Map unrolling", "category": "General", "default": false}, "collapse": {"metatype": "int", "desc": "How many dimensions to collapse into the parallel range", "category": "General", "default": 1}, "debuginfo": {"metatype": "DebugInfo", "desc": "", "category": "General", "default": {"type": "DebugInfo", "start_line": 0, "end_line": 0, "start_column": 0, "end_column": 0, "filename": null}}, "is_collapsed": {"metatype": "bool", "desc": "Show this node/scope/state as collapsed", "category": "General", "default": false}, "instrument": {"metatype": "InstrumentationType", "desc": "Measure execution statistics with given method", "category": "General", "default": "No_Instrumentation", "choices": ["No_Instrumentation", "Timer", "PAPI_Counters", "GPU_Events", "FPGA"]}, "omp_num_threads": {"metatype": "int", "desc": "Number of OpenMP threads executing the Map", "category": "General", "default": 0}, "omp_schedule": {"metatype": "OMPScheduleType", "desc": "OpenMP schedule {static, dynamic, guided}", "category": "General", "default": "Default", "choices": ["Default", "Static", "Dynamic", "Guided"]}, "omp_chunk_size": {"metatype": "int", "desc": "OpenMP schedule chunk size", "category": "General", "default": 0}}, "ConsumeEntry": {"label": {"metatype": "str", "desc": "Name of the consume node", "category": "General", "default": "", "indirected": true}, "pe_index": {"metatype": "str", "desc": "Processing element identifier", "category": "General", "default": "", "indirected": true}, "num_pes": {"metatype": "SymbolicProperty", "desc": "Number of processing elements", "category": "General", "default": 1, "indirected": true}, "condition": {"metatype": "CodeBlock", "desc": "Quiescence condition", "category": "General", "default": null, "indirected": true}, "schedule": {"metatype": "ScheduleType", "desc": "Consume schedule", "category": "General", "default": "Default", "indirected": true, "choices": ["Default", "Sequential", "MPI", "CPU_Multicore", "Unrolled", "SVE_Map", "GPU_Default", "GPU_Device", "GPU_ThreadBlock", "GPU_ThreadBlock_Dynamic", "GPU_Persistent", "FPGA_Device"]}, "chunksize": {"metatype": "int", "desc": "Maximal size of elements to consume at a time", "category": "General", "default": 1, "indirected": true}, "debuginfo": {"metatype": "DebugInfo", "desc": "", "category": "General", "default": {"type": "DebugInfo", "start_line": 0, "end_line": 0, "start_column": 0, "end_column": 0, "filename": null}, "indirected": true}, "is_collapsed": {"metatype": "bool", "desc": "Show this node/scope/state as collapsed", "category": "General", "default": false, "indirected": true}, "instrument": {"metatype": "InstrumentationType", "desc": "Measure execution statistics with given method", "category": "General", "default": "No_Instrumentation", "indirected": true, "choices": ["No_Instrumentation", "Timer", "PAPI_Counters", "GPU_Events", "FPGA"]}, "in_connectors": {"metatype": "dict", "desc": "A set of input connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}, "out_connectors": {"metatype": "dict", "desc": "A set of output connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}}, "ConsumeExit": {"in_connectors": {"metatype": "dict", "desc": "A set of input connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}, "out_connectors": {"metatype": "dict", "desc": "A set of output connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}}, "Consume": {"label": {"metatype": "str", "desc": "Name of the consume node", "category": "General", "default": ""}, "pe_index": {"metatype": "str", "desc": "Processing element identifier", "category": "General", "default": ""}, "num_pes": {"metatype": "SymbolicProperty", "desc": "Number of processing elements", "category": "General", "default": 1}, "condition": {"metatype": "CodeBlock", "desc": "Quiescence condition", "category": "General", "default": null}, "schedule": {"metatype": "ScheduleType", "desc": "Consume schedule", "category": "General", "default": "Default", "choices": ["Default", "Sequential", "MPI", "CPU_Multicore", "Unrolled", "SVE_Map", "GPU_Default", "GPU_Device", "GPU_ThreadBlock", "GPU_ThreadBlock_Dynamic", "GPU_Persistent", "FPGA_Device"]}, "chunksize": {"metatype": "int", "desc": "Maximal size of elements to consume at a time", "category": "General", "default": 1}, "debuginfo": {"metatype": "DebugInfo", "desc": "", "category": "General", "default": {"type": "DebugInfo", "start_line": 0, "end_line": 0, "start_column": 0, "end_column": 0, "filename": null}}, "is_collapsed": {"metatype": "bool", "desc": "Show this node/scope/state as collapsed", "category": "General", "default": false}, "instrument": {"metatype": "InstrumentationType", "desc": "Measure execution statistics with given method", "category": "General", "default": "No_Instrumentation", "choices": ["No_Instrumentation", "Timer", "PAPI_Counters", "GPU_Events", "FPGA"]}}, "PipelineEntry": {"init_size": {"metatype": "SymbolicProperty", "desc": "Number of initialization iterations.", "category": "General", "default": 0, "indirected": true}, "init_overlap": {"metatype": "bool", "desc": "Whether to increment regular map indices during initialization.", "category": "General", "default": true, "indirected": true}, "drain_size": {"metatype": "SymbolicProperty", "desc": "Number of drain iterations.", "category": "General", "default": 1, "indirected": true}, "drain_overlap": {"metatype": "bool", "desc": "Whether to increment regular map indices during pipeline drain.", "category": "General", "default": true, "indirected": true}, "additional_iterators": {"metatype": "dict", "desc": "Additional iterators, managed by the user inside the scope.", "category": "General", "default": {}, "indirected": true}, "label": {"metatype": "str", "desc": "Label of the map", "category": "General", "default": "", "indirected": true}, "params": {"metatype": "list", "desc": "Mapped parameters", "category": "General", "default": [], "indirected": true, "element_type": "str"}, "range": {"metatype": "Range", "desc": "Ranges of map parameters", "category": "General", "default": {"type": "Range", "ranges": []}, "indirected": true}, "schedule": {"metatype": "ScheduleType", "desc": "Map schedule", "category": "General", "default": "Default", "indirected": true, "choices": ["Default", "Sequential", "MPI", "CPU_Multicore", "Unrolled", "SVE_Map", "GPU_Default", "GPU_Device", "GPU_ThreadBlock", "GPU_ThreadBlock_Dynamic", "GPU_Persistent", "FPGA_Device"]}, "unroll": {"metatype": "bool", "desc": "Map unrolling", "category": "General", "default": false, "indirected": true}, "collapse": {"metatype": "int", "desc": "How many dimensions to collapse into the parallel range", "category": "General", "default": 1, "indirected": true}, "debuginfo": {"metatype": "DebugInfo", "desc": "", "category": "General", "default": {"type": "DebugInfo", "start_line": 0, "end_line": 0, "start_column": 0, "end_column": 0, "filename": null}, "indirected": true}, "is_collapsed": {"metatype": "bool", "desc": "Show this node/scope/state as collapsed", "category": "General", "default": false, "indirected": true}, "instrument": {"metatype": "InstrumentationType", "desc": "Measure execution statistics with given method", "category": "General", "default": "No_Instrumentation", "indirected": true, "choices": ["No_Instrumentation", "Timer", "PAPI_Counters", "GPU_Events", "FPGA"]}, "omp_num_threads": {"metatype": "int", "desc": "Number of OpenMP threads executing the Map", "category": "General", "default": 0, "indirected": true}, "omp_schedule": {"metatype": "OMPScheduleType", "desc": "OpenMP schedule {static, dynamic, guided}", "category": "General", "default": "Default", "indirected": true, "choices": ["Default", "Static", "Dynamic", "Guided"]}, "omp_chunk_size": {"metatype": "int", "desc": "OpenMP schedule chunk size", "category": "General", "default": 0, "indirected": true}, "in_connectors": {"metatype": "dict", "desc": "A set of input connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}, "out_connectors": {"metatype": "dict", "desc": "A set of output connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}}, "PipelineExit": {"in_connectors": {"metatype": "dict", "desc": "A set of input connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}, "out_connectors": {"metatype": "dict", "desc": "A set of output connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}}, "Pipeline": {"init_size": {"metatype": "SymbolicProperty", "desc": "Number of initialization iterations.", "category": "General", "default": 0}, "init_overlap": {"metatype": "bool", "desc": "Whether to increment regular map indices during initialization.", "category": "General", "default": true}, "drain_size": {"metatype": "SymbolicProperty", "desc": "Number of drain iterations.", "category": "General", "default": 1}, "drain_overlap": {"metatype": "bool", "desc": "Whether to increment regular map indices during pipeline drain.", "category": "General", "default": true}, "additional_iterators": {"metatype": "dict", "desc": "Additional iterators, managed by the user inside the scope.", "category": "General", "default": {}}, "label": {"metatype": "str", "desc": "Label of the map", "category": "General", "default": ""}, "params": {"metatype": "list", "desc": "Mapped parameters", "category": "General", "default": [], "element_type": "str"}, "range": {"metatype": "Range", "desc": "Ranges of map parameters", "category": "General", "default": {"type": "Range", "ranges": []}}, "schedule": {"metatype": "ScheduleType", "desc": "Map schedule", "category": "General", "default": "Default", "choices": ["Default", "Sequential", "MPI", "CPU_Multicore", "Unrolled", "SVE_Map", "GPU_Default", "GPU_Device", "GPU_ThreadBlock", "GPU_ThreadBlock_Dynamic", "GPU_Persistent", "FPGA_Device"]}, "unroll": {"metatype": "bool", "desc": "Map unrolling", "category": "General", "default": false}, "collapse": {"metatype": "int", "desc": "How many dimensions to collapse into the parallel range", "category": "General", "default": 1}, "debuginfo": {"metatype": "DebugInfo", "desc": "", "category": "General", "default": {"type": "DebugInfo", "start_line": 0, "end_line": 0, "start_column": 0, "end_column": 0, "filename": null}}, "is_collapsed": {"metatype": "bool", "desc": "Show this node/scope/state as collapsed", "category": "General", "default": false}, "instrument": {"metatype": "InstrumentationType", "desc": "Measure execution statistics with given method", "category": "General", "default": "No_Instrumentation", "choices": ["No_Instrumentation", "Timer", "PAPI_Counters", "GPU_Events", "FPGA"]}, "omp_num_threads": {"metatype": "int", "desc": "Number of OpenMP threads executing the Map", "category": "General", "default": 0}, "omp_schedule": {"metatype": "OMPScheduleType", "desc": "OpenMP schedule {static, dynamic, guided}", "category": "General", "default": "Default", "choices": ["Default", "Static", "Dynamic", "Guided"]}, "omp_chunk_size": {"metatype": "int", "desc": "OpenMP schedule chunk size", "category": "General", "default": 0}}, "LibraryNode": {"name": {"metatype": "str", "desc": "Name of node", "category": "General", "default": ""}, "implementation": {"metatype": "LibraryImplementationProperty", "desc": "Which implementation this library node will expand into.Must match a key in the list of possible implementations.", "category": "General", "default": null}, "schedule": {"metatype": "ScheduleType", "desc": "If set, determines the default device mapping of the node upon expansion, if expanded to a nested SDFG.", "category": "General", "default": "Default", "choices": ["Default", "Sequential", "MPI", "CPU_Multicore", "Unrolled", "SVE_Map", "GPU_Default", "GPU_Device", "GPU_ThreadBlock", "GPU_ThreadBlock_Dynamic", "GPU_Persistent", "FPGA_Device"]}, "debuginfo": {"metatype": "DebugInfo", "desc": "", "category": "General", "default": {"type": "DebugInfo", "start_line": 0, "end_line": 0, "start_column": 0, "end_column": 0, "filename": null}}, "label": {"metatype": "str", "desc": "Name of the CodeNode", "category": "General", "default": ""}, "location": {"metatype": "dict", "desc": "Full storage location identifier (e.g., rank, GPU ID)", "category": "General", "default": {}, "key_type": "str", "value_type": "pystr_to_symbolic"}, "environments": {"metatype": "set", "desc": "Environments required by CMake to build and run this code node.", "category": "General", "default": []}, "in_connectors": {"metatype": "dict", "desc": "A set of input connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}, "out_connectors": {"metatype": "dict", "desc": "A set of output connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}}, "SDFGState": {"is_collapsed": {"metatype": "bool", "desc": "Show this node/scope/state as collapsed", "category": "General", "default": false}, "nosync": {"metatype": "bool", "desc": "Do not synchronize at the end of the state", "category": "General", "default": false}, "instrument": {"metatype": "InstrumentationType", "desc": "Measure execution statistics with given method", "category": "General", "default": "No_Instrumentation", "choices": ["No_Instrumentation", "Timer", "PAPI_Counters", "GPU_Events", "FPGA"]}, "executions": {"metatype": "SymbolicProperty", "desc": "The number of times this state gets executed (0 stands for unbounded)", "category": "General", "default": 0}, "dynamic_executions": {"metatype": "bool", "desc": "The number of executions of this state is dynamic", "category": "General", "default": true}, "ranges": {"metatype": "dict", "desc": "Variable ranges, typically within loops", "category": "General", "default": {}, "key_type": "symbol", "value_type": "Range"}, "location": {"metatype": "dict", "desc": "Full storage location identifier (e.g., rank, GPU ID)", "category": "General", "default": {}, "key_type": "str", "value_type": "pystr_to_symbolic"}}, "ProcessGrid": {"name": {"metatype": "str", "desc": "The process-grid's name.", "category": "General", "default": ""}, "is_subgrid": {"metatype": "bool", "desc": "If true, spanws sub-grids out of the parent process-grid.", "category": "General", "default": false}, "shape": {"metatype": "tuple", "desc": "The process-grid's shape.", "category": "General", "default": []}, "parent_grid": {"metatype": "str", "desc": "Name of the parent process-grid (mandatory if `is_subgrid` is true, otherwise ignored).", "category": "General", "default": null}, "color": {"metatype": "list", "desc": "The i-th entry specifies whether the i-th dimension is kept in the sub-grid or is dropped (mandatory if `is_subgrid` is true, otherwise ignored).", "category": "General", "default": null, "element_type": "int"}, "exact_grid": {"metatype": "SymbolicProperty", "desc": "If set then, out of all the sub-grids created, only the one that contains the rank with id `exact_grid` will be utilized for collective communication (optional if `is_subgrid` is true, otherwise ignored).", "category": "General", "default": null}, "root": {"metatype": "SymbolicProperty", "desc": "The root rank for collective communication.", "category": "General", "default": 0}}, "SubArray": {"name": {"metatype": "str", "desc": "The type's name.", "category": "General", "default": ""}, "dtype": {"metatype": "typeclass", "desc": "", "category": "General", "default": "int32", "base_types": ["bool", "bool_", "int8", "int16", "int32", "int64", "uint8", "uint16", "uint32", "uint64", "float16", "float32", "float64", "complex64", "complex128"], "compound_types": {"vector": {"elements": {"type": "int", "default": 0}, "dtype": {"type": "typeclass", "default": "bool"}}, "pointer": {"dtype": {"type": "typeclass", "default": "bool"}}, "opaque": {"dtype": {"type": "typeclass", "default": "bool"}}, "struct": {"name": {"type": "str", "default": ""}, "data": {"type": "dict", "default": {}, "value_type": "typeclass"}, "length": {"type": "dict", "default": {}, "value_type": "int"}, "bytes": {"type": "int", "default": 0}}, "callback": {"arguments": {"type": "list", "element_type": "typeclass", "default": []}, "returntypes": {"type": "list", "element_type": "typeclass", "default": []}}}}, "shape": {"metatype": "tuple", "desc": "The array's shape.", "category": "General", "default": []}, "subshape": {"metatype": "tuple", "desc": "The sub-array's shape.", "category": "General", "default": []}, "pgrid": {"metatype": "str", "desc": "Name of the process-grid where the data are distributed.", "category": "General", "default": null}, "correspondence": {"metatype": "list", "desc": "Correspondence of the array's indices to the process grid's indices.", "category": "General", "default": null, "element_type": "int"}}, "RedistrArray": {"name": {"metatype": "str", "desc": "The redistribution's name.", "category": "General", "default": ""}, "array_a": {"metatype": "str", "desc": "Sub-array that will be redistributed.", "category": "General", "default": null}, "array_b": {"metatype": "str", "desc": "Output sub-array.", "category": "General", "default": null}}, "LogicalGroup": {"nodes": {"metatype": "list", "desc": "Nodes in this group given by [State, Node] id tuples", "category": "General", "default": [], "element_type": "tuple"}, "states": {"metatype": "list", "desc": "States in this group given by their ids", "category": "General", "default": [], "element_type": "int"}, "name": {"metatype": "str", "desc": "Logical group name", "category": "General", "default": ""}, "color": {"metatype": "str", "desc": "Color for the group, given as a hexadecimal string", "category": "General", "default": ""}}, "InterstateEdge": {"assignments": {"metatype": "dict", "desc": "Assignments to perform upon transition (e.g., 'x=x+1; y = 0')", "category": "General", "default": {}}, "condition": {"metatype": "CodeBlock", "desc": "Transition condition", "category": "General", "default": {"string_data": "1", "language": "Python"}}}, "SDFG": {"arg_names": {"metatype": "list", "desc": "Ordered argument names (used for calling conventions).", "category": "General", "default": [], "element_type": "str"}, "constants_prop": {"metatype": "dict", "desc": "Compile-time constants", "category": "General", "default": {}}, "_arrays": {"metatype": "dict", "desc": "Data descriptors for this SDFG", "category": "General", "default": {}}, "symbols": {"metatype": "dict", "desc": "Global symbols for this SDFG", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}, "instrument": {"metatype": "InstrumentationType", "desc": "Measure execution statistics with given method", "category": "General", "default": "No_Instrumentation", "choices": ["No_Instrumentation", "Timer", "PAPI_Counters", "GPU_Events", "FPGA"]}, "global_code": {"metatype": "dict", "desc": "Code generated in a global scope on the output files.", "category": "General", "default": {}, "key_type": "str", "value_type": "CodeBlock"}, "init_code": {"metatype": "dict", "desc": "Code generated in the `__dace_init` function.", "category": "General", "default": {}, "key_type": "str", "value_type": "CodeBlock"}, "exit_code": {"metatype": "dict", "desc": "Code generated in the `__dace_exit` function.", "category": "General", "default": {}, "key_type": "str", "value_type": "CodeBlock"}, "orig_sdfg": {"metatype": "OptionalSDFGReferenceProperty", "desc": "", "category": "General", "default": null}, "transformation_hist": {"metatype": "list", "desc": "", "category": "General", "default": []}, "logical_groups": {"metatype": "list", "desc": "Logical groupings of nodes and edges", "category": "General", "default": [], "element_type": "LogicalGroup"}, "openmp_sections": {"metatype": "bool", "desc": "Whether to generate OpenMP sections in code", "category": "General", "default": true}, "debuginfo": {"metatype": "DebugInfo", "desc": "", "category": "General", "default": {"type": "DebugInfo", "start_line": 0, "end_line": 0, "start_column": 0, "end_column": 0, "filename": null}}, "_pgrids": {"metatype": "dict", "desc": "Process-grid descriptors for this SDFG", "category": "General", "default": {}, "key_type": "str", "value_type": "ProcessGrid"}, "_subarrays": {"metatype": "dict", "desc": "Sub-array descriptors for this SDFG", "category": "General", "default": {}, "key_type": "str", "value_type": "SubArray"}, "_rdistrarrays": {"metatype": "dict", "desc": "Sub-array redistribution descriptors for this SDFG", "category": "General", "default": {}, "key_type": "str", "value_type": "RedistrArray"}, "callback_mapping": {"metatype": "dict", "desc": "Mapping between callback name and its original callback (for when the same callback is used with a different signature)", "category": "General", "default": {}, "key_type": "str", "value_type": "str"}}, "PatternTransformation": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "SingleStateTransformation": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "MultiStateTransformation": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "ExpandTransformation": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "SubgraphTransformation": {"sdfg_id": {"metatype": "int", "desc": "ID of SDFG to transform", "category": "General", "default": 0}, "state_id": {"metatype": "int", "desc": "ID of state to transform subgraph within, or -1 to transform the SDFG", "category": "General", "default": 0}, "subgraph": {"metatype": "set", "desc": "Subgraph in transformation instance", "category": "General", "default": []}}, "SpecializeMatMul": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "dace.libraries.blas.nodes.matmul.MatMul": {"name": {"metatype": "str", "desc": "Name of node", "category": "General", "default": ""}, "implementation": {"metatype": "LibraryImplementationProperty", "desc": "Which implementation this library node will expand into.Must match a key in the list of possible implementations.", "category": "General", "default": null, "choices": ["specialize"]}, "schedule": {"metatype": "ScheduleType", "desc": "If set, determines the default device mapping of the node upon expansion, if expanded to a nested SDFG.", "category": "General", "default": "Default", "choices": ["Default", "Sequential", "MPI", "CPU_Multicore", "Unrolled", "SVE_Map", "GPU_Default", "GPU_Device", "GPU_ThreadBlock", "GPU_ThreadBlock_Dynamic", "GPU_Persistent", "FPGA_Device"]}, "debuginfo": {"metatype": "DebugInfo", "desc": "", "category": "General", "default": {"type": "DebugInfo", "start_line": 0, "end_line": 0, "start_column": 0, "end_column": 0, "filename": null}}, "label": {"metatype": "str", "desc": "Name of the CodeNode", "category": "General", "default": ""}, "location": {"metatype": "dict", "desc": "Full storage location identifier (e.g., rank, GPU ID)", "category": "General", "default": {}, "key_type": "str", "value_type": "pystr_to_symbolic"}, "environments": {"metatype": "set", "desc": "Environments required by CMake to build and run this code node.", "category": "General", "default": []}, "in_connectors": {"metatype": "dict", "desc": "A set of input connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}, "out_connectors": {"metatype": "dict", "desc": "A set of output connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}}, "OpenBLAS": {}, "IntelMKL": {}, "cuBLAS": {}, "ExpandDotPure": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "ExpandDotOpenBLAS": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "ExpandDotMKL": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "ExpandDotCuBLAS": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "ExpandDotFpgaPartialSums": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "ExpandDotFpgaAccumulate": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "dace.libraries.blas.nodes.dot.Dot": {"n": {"metatype": "SymbolicProperty", "desc": "", "category": "General", "default": null}, "accumulator_type": {"metatype": "typeclass", "desc": "Accumulator or intermediate storage type", "category": "General", "default": null, "base_types": ["bool", "bool_", "int8", "int16", "int32", "int64", "uint8", "uint16", "uint32", "uint64", "float16", "float32", "float64", "complex64", "complex128"], "compound_types": {"vector": {"elements": {"type": "int", "default": 0}, "dtype": {"type": "typeclass", "default": "bool"}}, "pointer": {"dtype": {"type": "typeclass", "default": "bool"}}, "opaque": {"dtype": {"type": "typeclass", "default": "bool"}}, "struct": {"name": {"type": "str", "default": ""}, "data": {"type": "dict", "default": {}, "value_type": "typeclass"}, "length": {"type": "dict", "default": {}, "value_type": "int"}, "bytes": {"type": "int", "default": 0}}, "callback": {"arguments": {"type": "list", "element_type": "typeclass", "default": []}, "returntypes": {"type": "list", "element_type": "typeclass", "default": []}}}}, "name": {"metatype": "str", "desc": "Name of node", "category": "General", "default": ""}, "implementation": {"metatype": "LibraryImplementationProperty", "desc": "Which implementation this library node will expand into.Must match a key in the list of possible implementations.", "category": "General", "default": null, "choices": ["pure", "OpenBLAS", "MKL", "cuBLAS", "FPGA_PartialSums", "FPGA_Accumulate"]}, "schedule": {"metatype": "ScheduleType", "desc": "If set, determines the default device mapping of the node upon expansion, if expanded to a nested SDFG.", "category": "General", "default": "Default", "choices": ["Default", "Sequential", "MPI", "CPU_Multicore", "Unrolled", "SVE_Map", "GPU_Default", "GPU_Device", "GPU_ThreadBlock", "GPU_ThreadBlock_Dynamic", "GPU_Persistent", "FPGA_Device"]}, "debuginfo": {"metatype": "DebugInfo", "desc": "", "category": "General", "default": {"type": "DebugInfo", "start_line": 0, "end_line": 0, "start_column": 0, "end_column": 0, "filename": null}}, "label": {"metatype": "str", "desc": "Name of the CodeNode", "category": "General", "default": ""}, "location": {"metatype": "dict", "desc": "Full storage location identifier (e.g., rank, GPU ID)", "category": "General", "default": {}, "key_type": "str", "value_type": "pystr_to_symbolic"}, "environments": {"metatype": "set", "desc": "Environments required by CMake to build and run this code node.", "category": "General", "default": []}, "in_connectors": {"metatype": "dict", "desc": "A set of input connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}, "out_connectors": {"metatype": "dict", "desc": "A set of output connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}}, "ExpandGemvPure": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "ExpandGemvFpgaAccumulate": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "ExpandGemvFpgaTilesByColumn": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "ExpandGemvCuBLAS": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "ExpandGemvOpenBLAS": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "ExpandGemvMKL": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "ExpandGemvPBLAS": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "dace.libraries.blas.nodes.gemv.Gemv": {"alpha": {"metatype": "SymbolicProperty", "desc": "", "category": "General", "default": 1}, "beta": {"metatype": "SymbolicProperty", "desc": "", "category": "General", "default": 0}, "transA": {"metatype": "bool", "desc": "Whether to transpose A before multiplying", "category": "General", "default": false}, "n": {"metatype": "SymbolicProperty", "desc": "", "category": "General", "default": null}, "m": {"metatype": "SymbolicProperty", "desc": "", "category": "General", "default": null}, "name": {"metatype": "str", "desc": "Name of node", "category": "General", "default": ""}, "implementation": {"metatype": "LibraryImplementationProperty", "desc": "Which implementation this library node will expand into.Must match a key in the list of possible implementations.", "category": "General", "default": null, "choices": ["pure", "OpenBLAS", "MKL", "cuBLAS", "FPGA_Accumulate", "FPGA_TilesByColumn", "PBLAS"]}, "schedule": {"metatype": "ScheduleType", "desc": "If set, determines the default device mapping of the node upon expansion, if expanded to a nested SDFG.", "category": "General", "default": "Default", "choices": ["Default", "Sequential", "MPI", "CPU_Multicore", "Unrolled", "SVE_Map", "GPU_Default", "GPU_Device", "GPU_ThreadBlock", "GPU_ThreadBlock_Dynamic", "GPU_Persistent", "FPGA_Device"]}, "debuginfo": {"metatype": "DebugInfo", "desc": "", "category": "General", "default": {"type": "DebugInfo", "start_line": 0, "end_line": 0, "start_column": 0, "end_column": 0, "filename": null}}, "label": {"metatype": "str", "desc": "Name of the CodeNode", "category": "General", "default": ""}, "location": {"metatype": "dict", "desc": "Full storage location identifier (e.g., rank, GPU ID)", "category": "General", "default": {}, "key_type": "str", "value_type": "pystr_to_symbolic"}, "environments": {"metatype": "set", "desc": "Environments required by CMake to build and run this code node.", "category": "General", "default": []}, "in_connectors": {"metatype": "dict", "desc": "A set of input connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}, "out_connectors": {"metatype": "dict", "desc": "A set of output connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}}, "ExpandGemmPure": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "ExpandGemmOpenBLAS": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "ExpandGemmMKL": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "ExpandGemmCuBLAS": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "ExpandGemmPBLAS": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "dace.libraries.blas.nodes.gemm.Gemm": {"transA": {"metatype": "bool", "desc": "Whether to transpose A before multiplying", "category": "General", "default": false}, "transB": {"metatype": "bool", "desc": "Whether to transpose B before multiplying", "category": "General", "default": false}, "alpha": {"metatype": "Property", "desc": "A scalar which will be multiplied with A @ B before adding C", "category": "General", "default": 1}, "beta": {"metatype": "Property", "desc": "A scalar which will be multiplied with C before adding C", "category": "General", "default": 0}, "cin": {"metatype": "bool", "desc": "Whether to have a _cin connector when beta != 0", "category": "General", "default": true}, "algorithm": {"metatype": "str", "desc": "If applicable, chooses the vendor-provided implementation (algorithm) for the multiplication", "category": "General", "default": null}, "accumulator_type": {"metatype": "typeclass", "desc": "Accumulator or intermediate storage type used in multiplication", "category": "General", "default": null, "base_types": ["bool", "bool_", "int8", "int16", "int32", "int64", "uint8", "uint16", "uint32", "uint64", "float16", "float32", "float64", "complex64", "complex128"], "compound_types": {"vector": {"elements": {"type": "int", "default": 0}, "dtype": {"type": "typeclass", "default": "bool"}}, "pointer": {"dtype": {"type": "typeclass", "default": "bool"}}, "opaque": {"dtype": {"type": "typeclass", "default": "bool"}}, "struct": {"name": {"type": "str", "default": ""}, "data": {"type": "dict", "default": {}, "value_type": "typeclass"}, "length": {"type": "dict", "default": {}, "value_type": "int"}, "bytes": {"type": "int", "default": 0}}, "callback": {"arguments": {"type": "list", "element_type": "typeclass", "default": []}, "returntypes": {"type": "list", "element_type": "typeclass", "default": []}}}}, "compute_type": {"metatype": "str", "desc": "If applicable, overrides computation type (CUBLAS-specific, see ``cublasComputeType_t``)", "category": "General", "default": null}, "name": {"metatype": "str", "desc": "Name of node", "category": "General", "default": ""}, "implementation": {"metatype": "LibraryImplementationProperty", "desc": "Which implementation this library node will expand into.Must match a key in the list of possible implementations.", "category": "General", "default": null, "choices": ["pure", "MKL", "OpenBLAS", "cuBLAS", "PBLAS", "FPGA1DSystolic"]}, "schedule": {"metatype": "ScheduleType", "desc": "If set, determines the default device mapping of the node upon expansion, if expanded to a nested SDFG.", "category": "General", "default": "Default", "choices": ["Default", "Sequential", "MPI", "CPU_Multicore", "Unrolled", "SVE_Map", "GPU_Default", "GPU_Device", "GPU_ThreadBlock", "GPU_ThreadBlock_Dynamic", "GPU_Persistent", "FPGA_Device"]}, "debuginfo": {"metatype": "DebugInfo", "desc": "", "category": "General", "default": {"type": "DebugInfo", "start_line": 0, "end_line": 0, "start_column": 0, "end_column": 0, "filename": null}}, "label": {"metatype": "str", "desc": "Name of the CodeNode", "category": "General", "default": ""}, "location": {"metatype": "dict", "desc": "Full storage location identifier (e.g., rank, GPU ID)", "category": "General", "default": {}, "key_type": "str", "value_type": "pystr_to_symbolic"}, "environments": {"metatype": "set", "desc": "Environments required by CMake to build and run this code node.", "category": "General", "default": []}, "in_connectors": {"metatype": "dict", "desc": "A set of input connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}, "out_connectors": {"metatype": "dict", "desc": "A set of output connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}}, "ExpandGerPure": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "ExpandGerFpga": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "dace.libraries.blas.nodes.ger.Ger": {"n_tile_size": {"metatype": "SymbolicProperty", "desc": "", "category": "General", "default": 1}, "m_tile_size": {"metatype": "SymbolicProperty", "desc": "", "category": "General", "default": 1}, "n": {"metatype": "SymbolicProperty", "desc": "", "category": "General", "default": "n"}, "m": {"metatype": "SymbolicProperty", "desc": "", "category": "General", "default": "m"}, "alpha": {"metatype": "SymbolicProperty", "desc": "A scalar which will be multiplied with the outer product x*yT before adding matrix A", "category": "General", "default": 1}, "name": {"metatype": "str", "desc": "Name of node", "category": "General", "default": ""}, "implementation": {"metatype": "LibraryImplementationProperty", "desc": "Which implementation this library node will expand into.Must match a key in the list of possible implementations.", "category": "General", "default": null, "choices": ["pure", "FPGA"]}, "schedule": {"metatype": "ScheduleType", "desc": "If set, determines the default device mapping of the node upon expansion, if expanded to a nested SDFG.", "category": "General", "default": "Default", "choices": ["Default", "Sequential", "MPI", "CPU_Multicore", "Unrolled", "SVE_Map", "GPU_Default", "GPU_Device", "GPU_ThreadBlock", "GPU_ThreadBlock_Dynamic", "GPU_Persistent", "FPGA_Device"]}, "debuginfo": {"metatype": "DebugInfo", "desc": "", "category": "General", "default": {"type": "DebugInfo", "start_line": 0, "end_line": 0, "start_column": 0, "end_column": 0, "filename": null}}, "label": {"metatype": "str", "desc": "Name of the CodeNode", "category": "General", "default": ""}, "location": {"metatype": "dict", "desc": "Full storage location identifier (e.g., rank, GPU ID)", "category": "General", "default": {}, "key_type": "str", "value_type": "pystr_to_symbolic"}, "environments": {"metatype": "set", "desc": "Environments required by CMake to build and run this code node.", "category": "General", "default": []}, "in_connectors": {"metatype": "dict", "desc": "A set of input connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}, "out_connectors": {"metatype": "dict", "desc": "A set of output connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}}, "ExpandBatchedMatMulPure": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "ExpandBatchedMatMulMKL": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "ExpandBatchedMatMulOpenBLAS": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "ExpandBatchedMatMulCuBLAS": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "dace.libraries.blas.nodes.batched_matmul.BatchedMatMul": {"transA": {"metatype": "bool", "desc": "Whether to transpose A before multiplying", "category": "General", "default": false}, "transB": {"metatype": "bool", "desc": "Whether to transpose B before multiplying", "category": "General", "default": false}, "alpha": {"metatype": "Property", "desc": "A scalar which will be multiplied with A @ B before adding C", "category": "General", "default": 1}, "beta": {"metatype": "Property", "desc": "A scalar which will be multiplied with C before adding C", "category": "General", "default": 0}, "algorithm": {"metatype": "str", "desc": "If applicable, chooses the vendor-provided implementation (algorithm) for the multiplication", "category": "General", "default": null}, "accumulator_type": {"metatype": "typeclass", "desc": "Accumulator or intermediate storage type used in multiplication", "category": "General", "default": null, "base_types": ["bool", "bool_", "int8", "int16", "int32", "int64", "uint8", "uint16", "uint32", "uint64", "float16", "float32", "float64", "complex64", "complex128"], "compound_types": {"vector": {"elements": {"type": "int", "default": 0}, "dtype": {"type": "typeclass", "default": "bool"}}, "pointer": {"dtype": {"type": "typeclass", "default": "bool"}}, "opaque": {"dtype": {"type": "typeclass", "default": "bool"}}, "struct": {"name": {"type": "str", "default": ""}, "data": {"type": "dict", "default": {}, "value_type": "typeclass"}, "length": {"type": "dict", "default": {}, "value_type": "int"}, "bytes": {"type": "int", "default": 0}}, "callback": {"arguments": {"type": "list", "element_type": "typeclass", "default": []}, "returntypes": {"type": "list", "element_type": "typeclass", "default": []}}}}, "compute_type": {"metatype": "str", "desc": "If applicable, overrides computation type (CUBLAS-specific, see ``cublasComputeType_t``)", "category": "General", "default": null}, "name": {"metatype": "str", "desc": "Name of node", "category": "General", "default": ""}, "implementation": {"metatype": "LibraryImplementationProperty", "desc": "Which implementation this library node will expand into.Must match a key in the list of possible implementations.", "category": "General", "default": null, "choices": ["pure", "MKL", "OpenBLAS", "cuBLAS"]}, "schedule": {"metatype": "ScheduleType", "desc": "If set, determines the default device mapping of the node upon expansion, if expanded to a nested SDFG.", "category": "General", "default": "Default", "choices": ["Default", "Sequential", "MPI", "CPU_Multicore", "Unrolled", "SVE_Map", "GPU_Default", "GPU_Device", "GPU_ThreadBlock", "GPU_ThreadBlock_Dynamic", "GPU_Persistent", "FPGA_Device"]}, "debuginfo": {"metatype": "DebugInfo", "desc": "", "category": "General", "default": {"type": "DebugInfo", "start_line": 0, "end_line": 0, "start_column": 0, "end_column": 0, "filename": null}}, "label": {"metatype": "str", "desc": "Name of the CodeNode", "category": "General", "default": ""}, "location": {"metatype": "dict", "desc": "Full storage location identifier (e.g., rank, GPU ID)", "category": "General", "default": {}, "key_type": "str", "value_type": "pystr_to_symbolic"}, "environments": {"metatype": "set", "desc": "Environments required by CMake to build and run this code node.", "category": "General", "default": []}, "in_connectors": {"metatype": "dict", "desc": "A set of input connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}, "out_connectors": {"metatype": "dict", "desc": "A set of output connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}}, "ExpandTransposePure": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "ExpandTransposeMKL": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "ExpandTransposeOpenBLAS": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "ExpandTransposeCuBLAS": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "dace.libraries.blas.nodes.transpose.Transpose": {"dtype": {"metatype": "typeclass", "desc": "", "category": "General", "default": null}, "name": {"metatype": "str", "desc": "Name of node", "category": "General", "default": ""}, "implementation": {"metatype": "LibraryImplementationProperty", "desc": "Which implementation this library node will expand into.Must match a key in the list of possible implementations.", "category": "General", "default": null, "choices": ["pure", "MKL", "OpenBLAS", "cuBLAS"]}, "schedule": {"metatype": "ScheduleType", "desc": "If set, determines the default device mapping of the node upon expansion, if expanded to a nested SDFG.", "category": "General", "default": "Default", "choices": ["Default", "Sequential", "MPI", "CPU_Multicore", "Unrolled", "SVE_Map", "GPU_Default", "GPU_Device", "GPU_ThreadBlock", "GPU_ThreadBlock_Dynamic", "GPU_Persistent", "FPGA_Device"]}, "debuginfo": {"metatype": "DebugInfo", "desc": "", "category": "General", "default": {"type": "DebugInfo", "start_line": 0, "end_line": 0, "start_column": 0, "end_column": 0, "filename": null}}, "label": {"metatype": "str", "desc": "Name of the CodeNode", "category": "General", "default": ""}, "location": {"metatype": "dict", "desc": "Full storage location identifier (e.g., rank, GPU ID)", "category": "General", "default": {}, "key_type": "str", "value_type": "pystr_to_symbolic"}, "environments": {"metatype": "set", "desc": "Environments required by CMake to build and run this code node.", "category": "General", "default": []}, "in_connectors": {"metatype": "dict", "desc": "A set of input connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}, "out_connectors": {"metatype": "dict", "desc": "A set of output connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}}, "ExpandAxpyVectorized": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "ExpandAxpyFpga": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "dace.libraries.blas.nodes.axpy.Axpy": {"a": {"metatype": "SymbolicProperty", "desc": "", "category": "General", "default": "a"}, "n": {"metatype": "SymbolicProperty", "desc": "", "category": "General", "default": "n"}, "name": {"metatype": "str", "desc": "Name of node", "category": "General", "default": ""}, "implementation": {"metatype": "LibraryImplementationProperty", "desc": "Which implementation this library node will expand into.Must match a key in the list of possible implementations.", "category": "General", "default": null, "choices": ["pure", "fpga"]}, "schedule": {"metatype": "ScheduleType", "desc": "If set, determines the default device mapping of the node upon expansion, if expanded to a nested SDFG.", "category": "General", "default": "Default", "choices": ["Default", "Sequential", "MPI", "CPU_Multicore", "Unrolled", "SVE_Map", "GPU_Default", "GPU_Device", "GPU_ThreadBlock", "GPU_ThreadBlock_Dynamic", "GPU_Persistent", "FPGA_Device"]}, "debuginfo": {"metatype": "DebugInfo", "desc": "", "category": "General", "default": {"type": "DebugInfo", "start_line": 0, "end_line": 0, "start_column": 0, "end_column": 0, "filename": null}}, "label": {"metatype": "str", "desc": "Name of the CodeNode", "category": "General", "default": ""}, "location": {"metatype": "dict", "desc": "Full storage location identifier (e.g., rank, GPU ID)", "category": "General", "default": {}, "key_type": "str", "value_type": "pystr_to_symbolic"}, "environments": {"metatype": "set", "desc": "Environments required by CMake to build and run this code node.", "category": "General", "default": []}, "in_connectors": {"metatype": "dict", "desc": "A set of input connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}, "out_connectors": {"metatype": "dict", "desc": "A set of output connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}}, "dace.libraries.standard.nodes.code.CodeLibraryNode": {"inputdict": {"metatype": "dict", "desc": "", "category": "General", "default": {}}, "outputdict": {"metatype": "dict", "desc": "", "category": "General", "default": {}}, "name": {"metatype": "str", "desc": "Name of node", "category": "General", "default": ""}, "implementation": {"metatype": "LibraryImplementationProperty", "desc": "Which implementation this library node will expand into.Must match a key in the list of possible implementations.", "category": "General", "default": null, "choices": ["default"]}, "schedule": {"metatype": "ScheduleType", "desc": "If set, determines the default device mapping of the node upon expansion, if expanded to a nested SDFG.", "category": "General", "default": "Default", "choices": ["Default", "Sequential", "MPI", "CPU_Multicore", "Unrolled", "SVE_Map", "GPU_Default", "GPU_Device", "GPU_ThreadBlock", "GPU_ThreadBlock_Dynamic", "GPU_Persistent", "FPGA_Device"]}, "debuginfo": {"metatype": "DebugInfo", "desc": "", "category": "General", "default": {"type": "DebugInfo", "start_line": 0, "end_line": 0, "start_column": 0, "end_column": 0, "filename": null}}, "label": {"metatype": "str", "desc": "Name of the CodeNode", "category": "General", "default": ""}, "location": {"metatype": "dict", "desc": "Full storage location identifier (e.g., rank, GPU ID)", "category": "General", "default": {}, "key_type": "str", "value_type": "pystr_to_symbolic"}, "environments": {"metatype": "set", "desc": "Environments required by CMake to build and run this code node.", "category": "General", "default": []}, "in_connectors": {"metatype": "dict", "desc": "A set of input connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}, "out_connectors": {"metatype": "dict", "desc": "A set of output connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}}, "Expansion": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "ExpandGearbox": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "dace.libraries.standard.nodes.gearbox.Gearbox": {"size": {"metatype": "SymbolicProperty", "desc": "Number of wide vectors to convert to/from narrow vectors.", "category": "General", "default": 0}, "name": {"metatype": "str", "desc": "Name of node", "category": "General", "default": ""}, "implementation": {"metatype": "LibraryImplementationProperty", "desc": "Which implementation this library node will expand into.Must match a key in the list of possible implementations.", "category": "General", "default": null, "choices": ["pure"]}, "schedule": {"metatype": "ScheduleType", "desc": "If set, determines the default device mapping of the node upon expansion, if expanded to a nested SDFG.", "category": "General", "default": "Default", "choices": ["Default", "Sequential", "MPI", "CPU_Multicore", "Unrolled", "SVE_Map", "GPU_Default", "GPU_Device", "GPU_ThreadBlock", "GPU_ThreadBlock_Dynamic", "GPU_Persistent", "FPGA_Device"]}, "debuginfo": {"metatype": "DebugInfo", "desc": "", "category": "General", "default": {"type": "DebugInfo", "start_line": 0, "end_line": 0, "start_column": 0, "end_column": 0, "filename": null}}, "label": {"metatype": "str", "desc": "Name of the CodeNode", "category": "General", "default": ""}, "location": {"metatype": "dict", "desc": "Full storage location identifier (e.g., rank, GPU ID)", "category": "General", "default": {}, "key_type": "str", "value_type": "pystr_to_symbolic"}, "environments": {"metatype": "set", "desc": "Environments required by CMake to build and run this code node.", "category": "General", "default": []}, "in_connectors": {"metatype": "dict", "desc": "A set of input connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}, "out_connectors": {"metatype": "dict", "desc": "A set of output connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}}, "CUDA": {}, "ExpandReducePure": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "ExpandReducePureSequentialDim": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "ExpandReduceOpenMP": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "ExpandReduceCUDADevice": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "ExpandReduceCUDABlock": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "ExpandReduceCUDABlockAll": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "ExpandReduceFPGAPartialReduction": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "dace.libraries.standard.nodes.reduce.Reduce": {"axes": {"metatype": "list", "desc": "", "category": "General", "default": null, "element_type": "int"}, "wcr": {"metatype": "LambdaProperty", "desc": "", "category": "General", "default": "(lambda a, b: a)"}, "identity": {"metatype": "Property", "desc": "", "category": "General", "default": null}, "name": {"metatype": "str", "desc": "Name of node", "category": "General", "default": ""}, "implementation": {"metatype": "LibraryImplementationProperty", "desc": "Which implementation this library node will expand into.Must match a key in the list of possible implementations.", "category": "General", "default": null, "choices": ["pure", "pure-seq", "OpenMP", "CUDA (device)", "CUDA (block)", "CUDA (block allreduce)", "FPGAPartialReduction"]}, "schedule": {"metatype": "ScheduleType", "desc": "If set, determines the default device mapping of the node upon expansion, if expanded to a nested SDFG.", "category": "General", "default": "Default", "choices": ["Default", "Sequential", "MPI", "CPU_Multicore", "Unrolled", "SVE_Map", "GPU_Default", "GPU_Device", "GPU_ThreadBlock", "GPU_ThreadBlock_Dynamic", "GPU_Persistent", "FPGA_Device"]}, "debuginfo": {"metatype": "DebugInfo", "desc": "", "category": "General", "default": {"type": "DebugInfo", "start_line": 0, "end_line": 0, "start_column": 0, "end_column": 0, "filename": null}}, "label": {"metatype": "str", "desc": "Name of the CodeNode", "category": "General", "default": ""}, "location": {"metatype": "dict", "desc": "Full storage location identifier (e.g., rank, GPU ID)", "category": "General", "default": {}, "key_type": "str", "value_type": "pystr_to_symbolic"}, "environments": {"metatype": "set", "desc": "Environments required by CMake to build and run this code node.", "category": "General", "default": []}, "in_connectors": {"metatype": "dict", "desc": "A set of input connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}, "out_connectors": {"metatype": "dict", "desc": "A set of output connectors for this node.", "category": "General", "default": {}, "key_type": "str", "value_type": "typeclass"}}, "MapCollapse": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "MapReduceFusion": {"no_init": {"metatype": "bool", "desc": "If enabled, does not create initialization states for reduce nodes with identity", "category": "General", "default": false}, "sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "MapDimShuffle": {"parameters": {"metatype": "tuple", "desc": "Desired order of map parameters", "category": "General", "default": []}, "sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "TrivialMapElimination": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "TrivialMapRangeElimination": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "StripMining": {"dim_idx": {"metatype": "int", "desc": "Index of dimension to be strip-mined", "category": "General", "default": -1}, "new_dim_prefix": {"metatype": "str", "desc": "Prefix for new dimension name", "category": "General", "default": "tile"}, "tile_size": {"metatype": "SymbolicProperty", "desc": "Tile size of strip-mined dimension, or number of tiles if tiling_type=number_of_tiles", "category": "General", "default": 64}, "tile_stride": {"metatype": "SymbolicProperty", "desc": "Stride between two tiles of the strip-mined dimension. If zero, it is set equal to the tile size.", "category": "General", "default": 0}, "tile_offset": {"metatype": "SymbolicProperty", "desc": "Tile stride offset (negative)", "category": "General", "default": 0}, "divides_evenly": {"metatype": "bool", "desc": "Tile size divides dimension range evenly?", "category": "General", "default": false}, "strided": {"metatype": "bool", "desc": "Continuous (false) or strided (true) elements in tile", "category": "General", "default": false}, "tiling_type": {"metatype": "TilingType", "desc": "normal: the outerloop increments with tile_size, ceilrange: uses ceiling(N/tile_size) in outer range, number_of_tiles: tiles the map into the number of provided tiles, provide the number of tiles over tile_size", "category": "General", "default": "Normal", "choices": ["Normal", "CeilRange", "NumberOfTiles"]}, "skew": {"metatype": "bool", "desc": "If True, offsets inner tile back such that it starts with zero", "category": "General", "default": false}, "sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "MapTiling": {"prefix": {"metatype": "str", "desc": "Prefix for new range symbols", "category": "General", "default": "tile"}, "tile_sizes": {"metatype": "tuple", "desc": "Tile size per dimension", "category": "General", "default": ["128", "128", "128"]}, "strides": {"metatype": "tuple", "desc": "Tile stride (enables overlapping tiles). If empty, matches tile", "category": "General", "default": []}, "tile_offset": {"metatype": "tuple", "desc": "Negative Stride offset per dimension", "category": "General", "default": null}, "divides_evenly": {"metatype": "bool", "desc": "Tile size divides dimension length evenly", "category": "General", "default": false}, "tile_trivial": {"metatype": "bool", "desc": "Tiles even if tile_size is 1", "category": "General", "default": false}, "sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "MapTilingWithOverlap": {"lower_overlap": {"metatype": "tuple", "desc": "Lower overlap per dimension", "category": "General", "default": []}, "upper_overlap": {"metatype": "tuple", "desc": "Upper overlap per dimension", "category": "General", "default": []}, "prefix": {"metatype": "str", "desc": "Prefix for new range symbols", "category": "General", "default": "tile"}, "tile_sizes": {"metatype": "tuple", "desc": "Tile size per dimension", "category": "General", "default": ["128", "128", "128"]}, "strides": {"metatype": "tuple", "desc": "Tile stride (enables overlapping tiles). If empty, matches tile", "category": "General", "default": []}, "tile_offset": {"metatype": "tuple", "desc": "Negative Stride offset per dimension", "category": "General", "default": null}, "divides_evenly": {"metatype": "bool", "desc": "Tile size divides dimension length evenly", "category": "General", "default": false}, "tile_trivial": {"metatype": "bool", "desc": "Tiles even if tile_size is 1", "category": "General", "default": false}, "sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "BufferTiling": {"tile_sizes": {"metatype": "tuple", "desc": "Tile size per dimension", "category": "General", "default": ["128", "128", "128"]}, "sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "Vectorization": {"vector_len": {"metatype": "int", "desc": "Vector length", "category": "General", "default": 4}, "propagate_parent": {"metatype": "bool", "desc": "Propagate vector length through parent SDFGs", "category": "General", "default": false}, "strided_map": {"metatype": "bool", "desc": "Use strided map range (jump by vector length) instead of modifying memlets", "category": "General", "default": true}, "preamble": {"metatype": "bool", "desc": "Force creation or skipping a preamble map without vectors", "category": "General", "default": null}, "postamble": {"metatype": "bool", "desc": "Force creation or skipping a postamble map without vectors", "category": "General", "default": null}, "sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "StreamTransient": {"with_buffer": {"metatype": "bool", "desc": "Use an intermediate buffer for accumulation", "category": "General", "default": true}, "sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "AccumulateTransient": {"array": {"metatype": "str", "desc": "Array to create local storage for (if empty, first available)", "category": "General", "default": null}, "identity": {"metatype": "SymbolicProperty", "desc": "Identity value to set", "category": "General", "default": null}, "sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "LocalStorage": {"array": {"metatype": "str", "desc": "Array to create local storage for (if empty, first available)", "category": "General", "default": null}, "prefix": {"metatype": "str", "desc": "Prefix for new data node", "category": "General", "default": "trans_"}, "create_array": {"metatype": "bool", "desc": "if false, it does not create a new array.", "category": "General", "default": true}, "sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "InLocalStorage": {"array": {"metatype": "str", "desc": "Array to create local storage for (if empty, first available)", "category": "General", "default": null}, "prefix": {"metatype": "str", "desc": "Prefix for new data node", "category": "General", "default": "trans_"}, "create_array": {"metatype": "bool", "desc": "if false, it does not create a new array.", "category": "General", "default": true}, "sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "OutLocalStorage": {"array": {"metatype": "str", "desc": "Array to create local storage for (if empty, first available)", "category": "General", "default": null}, "prefix": {"metatype": "str", "desc": "Prefix for new data node", "category": "General", "default": "trans_"}, "create_array": {"metatype": "bool", "desc": "if false, it does not create a new array.", "category": "General", "default": true}, "sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "StreamingMemory": {"buffer_size": {"metatype": "int", "desc": "Set buffer size for the newly-created stream", "category": "General", "default": 1}, "storage": {"metatype": "StorageType", "desc": "Set storage type for the newly-created stream", "category": "General", "default": "Default", "choices": ["Default", "Register", "CPU_Pinned", "CPU_Heap", "CPU_ThreadLocal", "GPU_Global", "GPU_Shared", "FPGA_Global", "FPGA_Local", "FPGA_Registers", "FPGA_ShiftRegister", "SVE_Register"]}, "use_memory_buffering": {"metatype": "bool", "desc": "Set if memory buffering should be used.", "category": "General", "default": false}, "memory_buffering_target_bytes": {"metatype": "int", "desc": "Set bytes read/written from memory if memory buffering is enabled.", "category": "General", "default": 64}, "sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "StreamingComposition": {"buffer_size": {"metatype": "int", "desc": "Set buffer size for the newly-created stream", "category": "General", "default": 1}, "storage": {"metatype": "StorageType", "desc": "Set storage type for the newly-created stream", "category": "General", "default": "Default", "choices": ["Default", "Register", "CPU_Pinned", "CPU_Heap", "CPU_ThreadLocal", "GPU_Global", "GPU_Shared", "FPGA_Global", "FPGA_Local", "FPGA_Registers", "FPGA_ShiftRegister", "SVE_Register"]}, "sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "ReduceExpansion": {"debug": {"metatype": "bool", "desc": "Debug Info", "category": "General", "default": false}, "create_in_transient": {"metatype": "bool", "desc": "Create local in-transientin registers", "category": "General", "default": false}, "create_out_transient": {"metatype": "bool", "desc": "Create local out-transientin registers", "category": "General", "default": false}, "reduce_implementation": {"metatype": "str", "desc": "Reduce implementation of inner reduce. If specified,overrides any existing implementations", "category": "General", "default": null}, "sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "PruneConnectors": {"remove_unused_containers": {"metatype": "bool", "desc": "If True, remove unused containers from parent SDFG.", "category": "General", "default": false}, "sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "TrivialTaskletElimination": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "CopyToDevice": {"storage": {"metatype": "StorageType", "desc": "Nested SDFG storage", "category": "General", "default": "Default", "choices": ["Default", "Register", "CPU_Pinned", "CPU_Heap", "CPU_ThreadLocal", "GPU_Global", "GPU_Shared", "FPGA_Global", "FPGA_Local", "FPGA_Registers", "FPGA_ShiftRegister", "SVE_Register"]}, "sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "GPUTransformMap": {"fullcopy": {"metatype": "bool", "desc": "Copy whole arrays rather than used subset", "category": "General", "default": false}, "toplevel_trans": {"metatype": "bool", "desc": "Make all GPU transients top-level", "category": "General", "default": false}, "register_trans": {"metatype": "bool", "desc": "Make all transients inside GPU maps registers", "category": "General", "default": false}, "sequential_innermaps": {"metatype": "bool", "desc": "Make all internal maps Sequential", "category": "General", "default": false}, "sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "GPUTransformLocalStorage": {"fullcopy": {"metatype": "bool", "desc": "Copy whole arrays rather than used subset", "category": "General", "default": false}, "nested_seq": {"metatype": "bool", "desc": "Makes nested code semantically-equivalent to single-core code,transforming nested maps and memory into sequential and local memory respectively.", "category": "General", "default": true}, "sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "MPITransformMap": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "WarpTiling": {"warp_size": {"metatype": "int", "desc": "Hardware warp size", "category": "General", "default": 32}, "replicate_maps": {"metatype": "bool", "desc": "Replicate tiled maps that lead to multiple other tiled maps", "category": "General", "default": true}, "sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "BankSplit": {"split_array_info": {"metatype": "Property", "desc": "Describes how many times this array is split in each dimension, where the k-th number describes how many times dimension k is split. If the k-th number is 1 this means that the array is not split in the k-th dimension at all. If None, then the transform will split the first dimension exactly shape[0] times.", "category": "General", "default": null}, "default_to_storage": {"metatype": "StorageType", "desc": "The storage type of involved arrays will be set to the value of this property if they have Default storage type. ", "category": "General", "default": "CPU_Heap"}, "sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "MatrixProductTranspose": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "GPUPersistentKernel": {"validate": {"metatype": "bool", "desc": "Validate the sdfg and the nested sdfg", "category": "General", "default": true}, "include_in_assignment": {"metatype": "bool", "desc": "Wether to include global variable assignments of the edge going into the kernel inside the kernel or have it happen on the outside. If the assignment is needed in the kernel, it needs to be included.", "category": "General", "default": true}, "kernel_prefix": {"metatype": "str", "desc": "Name of the kernel. If no value is given the kerenl will be refrenced as `kernel`, if a value is given the kernel will be named `_kernel`. This is useful if multiple kernels are created.", "category": "General", "default": ""}, "sdfg_id": {"metatype": "int", "desc": "ID of SDFG to transform", "category": "General", "default": 0}, "state_id": {"metatype": "int", "desc": "ID of state to transform subgraph within, or -1 to transform the SDFG", "category": "General", "default": 0}, "subgraph": {"metatype": "set", "desc": "Subgraph in transformation instance", "category": "General", "default": []}}, "MultiExpansion": {"debug": {"metatype": "bool", "desc": "Debug Mode", "category": "General", "default": false}, "sequential_innermaps": {"metatype": "bool", "desc": "Make all inner maps that arecreated during expansion sequential", "category": "General", "default": false}, "check_contiguity": {"metatype": "bool", "desc": "Don't allow expansion if last (contiguous)dimension is partially split", "category": "General", "default": false}, "permutation_only": {"metatype": "bool", "desc": "Only allow permutations without inner splits", "category": "General", "default": false}, "allow_offset": {"metatype": "bool", "desc": "Offset ranges to zero", "category": "General", "default": true}, "sdfg_id": {"metatype": "int", "desc": "ID of SDFG to transform", "category": "General", "default": 0}, "state_id": {"metatype": "int", "desc": "ID of state to transform subgraph within, or -1 to transform the SDFG", "category": "General", "default": 0}, "subgraph": {"metatype": "set", "desc": "Subgraph in transformation instance", "category": "General", "default": []}}, "SubgraphFusion": {"debug": {"metatype": "bool", "desc": "Show debug info", "category": "General", "default": false}, "transient_allocation": {"metatype": "StorageType", "desc": "Storage Location to push transients to that are fully contained within the subgraph.", "category": "General", "default": "Default", "choices": ["Default", "Register", "CPU_Pinned", "CPU_Heap", "CPU_ThreadLocal", "GPU_Global", "GPU_Shared", "FPGA_Global", "FPGA_Local", "FPGA_Registers", "FPGA_ShiftRegister", "SVE_Register"]}, "schedule_innermaps": {"metatype": "ScheduleType", "desc": "Schedule of inner maps. If none, keeps schedule.", "category": "General", "default": null}, "consolidate": {"metatype": "bool", "desc": "Consolidate edges that enter and exit the fused map.", "category": "General", "default": false}, "propagate": {"metatype": "bool", "desc": "Propagate memlets of edges that enter and exit the fused map.Disable if this causes problems (e.g., if memlet propagation doesnot work correctly).", "category": "General", "default": true}, "disjoint_subsets": {"metatype": "bool", "desc": "Check for disjoint subsets in can_be_applied. If multipleaccess nodes pointing to the same data appear within a subgraphto be fused, this check confirms that their access sets areindependent per iteration space to avoid race conditions.", "category": "General", "default": true}, "keep_global": {"metatype": "list", "desc": "A list of array names to treat as non-transients and not compress", "category": "General", "default": [], "element_type": "str"}, "sdfg_id": {"metatype": "int", "desc": "ID of SDFG to transform", "category": "General", "default": 0}, "state_id": {"metatype": "int", "desc": "ID of state to transform subgraph within, or -1 to transform the SDFG", "category": "General", "default": 0}, "subgraph": {"metatype": "set", "desc": "Subgraph in transformation instance", "category": "General", "default": []}}, "FPGATransformSDFG": {"promote_global_trans": {"metatype": "bool", "desc": "If True, transient arrays that are fully internal are pulled out so that they can be allocated on the host.", "category": "General", "default": true}, "sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "GPUTransformSDFG": {"toplevel_trans": {"metatype": "bool", "desc": "Make all GPU transients top-level", "category": "General", "default": true}, "register_trans": {"metatype": "bool", "desc": "Make all transients inside GPU maps registers", "category": "General", "default": true}, "sequential_innermaps": {"metatype": "bool", "desc": "Make all internal maps Sequential", "category": "General", "default": true}, "skip_scalar_tasklets": {"metatype": "bool", "desc": "If True, does not transform tasklets that manipulate (Default-stored) scalars", "category": "General", "default": true}, "simplify": {"metatype": "bool", "desc": "Reapply simplification after modifying graph", "category": "General", "default": true}, "exclude_copyin": {"metatype": "str", "desc": "Exclude these arrays from being copied into the device (comma-separated)", "category": "General", "default": ""}, "exclude_tasklets": {"metatype": "str", "desc": "Exclude these tasklets from being processed as CPU tasklets (comma-separated)", "category": "General", "default": ""}, "exclude_copyout": {"metatype": "str", "desc": "Exclude these arrays from being copied out of the device (comma-separated)", "category": "General", "default": ""}, "sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "InlineSDFG": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "InlineTransients": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "RefineNestedAccess": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "NestSDFG": {"promote_global_trans": {"metatype": "bool", "desc": "Promotes transients to be allocated once", "category": "General", "default": false}, "sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "LoopUnroll": {"count": {"metatype": "int", "desc": "Number of iterations to unroll, or zero for all iterations (loop must be constant-sized for 0)", "category": "General", "default": 0}, "sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "LoopPeeling": {"begin": {"metatype": "bool", "desc": "If True, peels loop from beginning (first `count` iterations), otherwise peels last `count` iterations.", "category": "General", "default": true}, "count": {"metatype": "int", "desc": "Number of iterations to unroll, or zero for all iterations (loop must be constant-sized for 0)", "category": "General", "default": 0}, "sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "LoopToMap": {"itervar": {"metatype": "str", "desc": "The name of the iteration variable (optional).", "category": "General", "default": null}, "sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "InlineMultistateSDFG": {"sdfg_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "state_id": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}, "_subgraph": {"metatype": "dict", "desc": "", "category": "(Debug)", "default": {}, "key_type": "int", "value_type": "int"}, "expr_index": {"metatype": "int", "desc": "", "category": "(Debug)", "default": 0}}, "StencilTiling": {"debug": {"metatype": "bool", "desc": "Debug mode", "category": "General", "default": false}, "prefix": {"metatype": "str", "desc": "Prefix for new inner tiled range symbols", "category": "General", "default": "stencil"}, "strides": {"metatype": "tuple", "desc": "Tile stride", "category": "General", "default": ["1"]}, "schedule": {"metatype": "ScheduleType", "desc": "Dace.Dtypes.ScheduleType of Inner Maps", "category": "General", "default": "Default"}, "unroll_loops": {"metatype": "bool", "desc": "Unroll Inner Loops if they have Size > 1", "category": "General", "default": false}, "sdfg_id": {"metatype": "int", "desc": "ID of SDFG to transform", "category": "General", "default": 0}, "state_id": {"metatype": "int", "desc": "ID of state to transform subgraph within, or -1 to transform the SDFG", "category": "General", "default": 0}, "subgraph": {"metatype": "set", "desc": "Subgraph in transformation instance", "category": "General", "default": []}}, "CompositeFusion": {"debug": {"metatype": "bool", "desc": "Debug mode", "category": "General", "default": false}, "allow_expansion": {"metatype": "bool", "desc": "Allow MultiExpansion first", "category": "General", "default": true}, "allow_tiling": {"metatype": "bool", "desc": "Allow StencilTiling (after MultiExpansion)", "category": "General", "default": false}, "transient_allocation": {"metatype": "StorageType", "desc": "Storage Location to push transients to that are fully contained within the subgraph.", "category": "General", "default": "Default", "choices": ["Default", "Register", "CPU_Pinned", "CPU_Heap", "CPU_ThreadLocal", "GPU_Global", "GPU_Shared", "FPGA_Global", "FPGA_Local", "FPGA_Registers", "FPGA_ShiftRegister", "SVE_Register"]}, "schedule_innermaps": {"metatype": "ScheduleType", "desc": "Schedule of inner fused maps", "category": "General", "default": null}, "stencil_unroll_loops": {"metatype": "bool", "desc": "Unroll inner stencil loops if they have size > 1", "category": "General", "default": false}, "stencil_strides": {"metatype": "tuple", "desc": "Stencil tile stride", "category": "General", "default": ["1"]}, "expansion_split": {"metatype": "bool", "desc": "Allow MultiExpansion to split up maps, if enabled", "category": "General", "default": true}, "sdfg_id": {"metatype": "int", "desc": "ID of SDFG to transform", "category": "General", "default": 0}, "state_id": {"metatype": "int", "desc": "ID of state to transform subgraph within, or -1 to transform the SDFG", "category": "General", "default": 0}, "subgraph": {"metatype": "set", "desc": "Subgraph in transformation instance", "category": "General", "default": []}}} +{ + "__reverse_type_lookup__": { + "typeclass": { + "metatype": "typeclass", + "desc": "", + "category": "General", + "default": "int32", + "base_types": [ + "bool", + "bool_", + "int8", + "int16", + "int32", + "int64", + "uint8", + "uint16", + "uint32", + "uint64", + "float16", + "float32", + "float64", + "complex64", + "complex128" + ], + "compound_types": { + "vector": { + "elements": { + "type": "str", + "default": "0" + }, + "dtype": { + "type": "typeclass", + "default": "bool" + } + }, + "pointer": { + "dtype": { + "type": "typeclass", + "default": "bool" + } + }, + "opaque": { + "ctype": { + "type": "str", + "default": "" + } + }, + "struct": { + "name": { + "type": "str", + "default": "" + }, + "data": { + "type": "dict", + "default": {}, + "value_type": "typeclass" + }, + "length": { + "type": "dict", + "default": {}, + "value_type": "int" + }, + "bytes": { + "type": "int", + "default": 0 + } + }, + "callback": { + "arguments": { + "type": "list", + "element_type": "typeclass", + "default": [] + }, + "returntypes": { + "type": "list", + "element_type": "typeclass", + "default": [] + } + } + } + }, + "tuple": { + "metatype": "tuple", + "desc": "", + "category": "General", + "default": [] + }, + "bool": { + "metatype": "bool", + "desc": "", + "category": "General", + "default": false + }, + "StorageType": { + "metatype": "StorageType", + "desc": "Storage location", + "category": "General", + "default": "Default", + "choices": [ + "Default", + "Register", + "CPU_Pinned", + "CPU_Heap", + "CPU_ThreadLocal", + "GPU_Global", + "GPU_Shared", + "FPGA_Global", + "FPGA_Local", + "FPGA_Registers", + "FPGA_ShiftRegister", + "SVE_Register", + "Snitch_TCDM", + "Snitch_L2", + "Snitch_SSR" + ] + }, + "AllocationLifetime": { + "metatype": "AllocationLifetime", + "desc": "Data allocation span", + "category": "General", + "default": "Scope", + "choices": [ + "Scope", + "State", + "SDFG", + "Global", + "Persistent" + ] + }, + "dict": { + "metatype": "dict", + "desc": "Full storage location identifier (e.g., rank, GPU ID)", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "str" + }, + "DebugInfo": { + "metatype": "DebugInfo", + "desc": "", + "category": "General", + "default": { + "type": "DebugInfo", + "start_line": 0, + "end_line": 0, + "start_column": 0, + "end_column": 0, + "filename": null + } + }, + "SymbolicProperty": { + "metatype": "SymbolicProperty", + "desc": "The total allocated size of the array. Can be used for padding.", + "category": "General", + "default": 0 + }, + "int": { + "metatype": "int", + "desc": "Allocation alignment in bytes (0 uses compiler-default)", + "category": "General", + "default": 0 + }, + "list": { + "metatype": "list", + "desc": "", + "category": "General", + "default": [], + "element_type": "pystr_to_symbolic" + }, + "SubsetProperty": { + "metatype": "SubsetProperty", + "desc": "Subset of elements to move from the data attached to this edge.", + "category": "General", + "default": null + }, + "DataProperty": { + "metatype": "DataProperty", + "desc": "Data descriptor attached to this memlet", + "category": "General", + "default": null + }, + "LambdaProperty": { + "metatype": "LambdaProperty", + "desc": "If set, defines a write-conflict resolution lambda function. The syntax of the lambda function receives two elements: `current` value and `new` value, and returns the value after resolution", + "category": "General", + "default": null + }, + "DataInstrumentationType": { + "metatype": "DataInstrumentationType", + "desc": "Instrument data contents at this access", + "category": "General", + "default": "No_Instrumentation", + "choices": [ + "No_Instrumentation", + "Save", + "Restore" + ] + }, + "str": { + "metatype": "str", + "desc": "Name of the CodeNode", + "category": "General", + "default": "" + }, + "set": { + "metatype": "set", + "desc": "Environments required by CMake to build and run this code node.", + "category": "General", + "default": [] + }, + "CodeBlock": { + "metatype": "CodeBlock", + "desc": "Tasklet code", + "category": "General", + "default": { + "string_data": "", + "language": "Python" + } + }, + "InstrumentationType": { + "metatype": "InstrumentationType", + "desc": "Measure execution statistics with given method", + "category": "General", + "default": "No_Instrumentation", + "choices": [ + "No_Instrumentation", + "Timer", + "PAPI_Counters", + "GPU_Events", + "FPGA" + ] + }, + "SDFGReferenceProperty": { + "metatype": "SDFGReferenceProperty", + "desc": "The SDFG", + "category": "General", + "default": null + }, + "ScheduleType": { + "metatype": "ScheduleType", + "desc": "SDFG schedule", + "category": "General", + "default": "Default", + "choices": [ + "Default", + "Sequential", + "MPI", + "CPU_Multicore", + "Unrolled", + "SVE_Map", + "GPU_Default", + "GPU_Device", + "GPU_ThreadBlock", + "GPU_ThreadBlock_Dynamic", + "GPU_Persistent", + "FPGA_Device", + "Snitch", + "Snitch_Multicore" + ] + }, + "Range": { + "metatype": "Range", + "desc": "Ranges of map parameters", + "category": "General", + "default": { + "type": "Range", + "ranges": [] + }, + "indirected": true + }, + "OMPScheduleType": { + "metatype": "OMPScheduleType", + "desc": "OpenMP schedule {static, dynamic, guided}", + "category": "General", + "default": "Default", + "indirected": true, + "choices": [ + "Default", + "Static", + "Dynamic", + "Guided" + ] + }, + "LibraryImplementationProperty": { + "metatype": "LibraryImplementationProperty", + "desc": "Which implementation this library node will expand into.Must match a key in the list of possible implementations.", + "category": "General", + "default": null + }, + "OptionalSDFGReferenceProperty": { + "metatype": "OptionalSDFGReferenceProperty", + "desc": "", + "category": "General", + "default": null + }, + "Property": { + "metatype": "Property", + "desc": "A scalar which will be multiplied with A @ B before adding C", + "category": "General", + "default": 1 + }, + "TilingType": { + "metatype": "TilingType", + "desc": "normal: the outerloop increments with tile_size, ceilrange: uses ceiling(N/tile_size) in outer range, number_of_tiles: tiles the map into the number of provided tiles, provide the number of tiles over tile_size", + "category": "General", + "default": "Normal", + "choices": [ + "Normal", + "CeilRange", + "NumberOfTiles" + ] + }, + "DeviceType": { + "category": "General", + "metatype": "DeviceType", + "choices": [ + "CPU", + "GPU", + "FPGA", + "Snitch" + ] + }, + "Language": { + "category": "General", + "metatype": "Language", + "choices": [ + "Python", + "CPP", + "OpenCL", + "SystemVerilog", + "MLIR" + ] + }, + "ReductionType": { + "category": "General", + "metatype": "ReductionType", + "choices": [ + "Custom", + "Min", + "Max", + "Sum", + "Product", + "Logical_And", + "Bitwise_And", + "Logical_Or", + "Bitwise_Or", + "Logical_Xor", + "Bitwise_Xor", + "Min_Location", + "Max_Location", + "Exchange", + "Sub", + "Div" + ] + }, + "Typeclasses": { + "category": "General", + "metatype": "Typeclasses", + "choices": [ + "bool", + "bool_", + "int8", + "int16", + "int32", + "int64", + "uint8", + "uint16", + "uint32", + "uint64", + "float16", + "float32", + "float64", + "complex64", + "complex128" + ] + } + }, + "__libs__": { + "MatMul": "dace.libraries.blas.nodes.matmul.MatMul", + "Dot": "dace.libraries.blas.nodes.dot.Dot", + "Gemv": "dace.libraries.blas.nodes.gemv.Gemv", + "Gemm": "dace.libraries.blas.nodes.gemm.Gemm", + "Ger": "dace.libraries.blas.nodes.ger.Ger", + "BatchedMatMul": "dace.libraries.blas.nodes.batched_matmul.BatchedMatMul", + "Transpose": "dace.libraries.blas.nodes.transpose.Transpose", + "Axpy": "dace.libraries.blas.nodes.axpy.Axpy", + "CodeLibraryNode": "dace.libraries.standard.nodes.code.CodeLibraryNode", + "Gearbox": "dace.libraries.standard.nodes.gearbox.Gearbox", + "Reduce": "dace.libraries.standard.nodes.reduce.Reduce" + }, + "__data_container_types__": { + "Scalar": "Scalar", + "Array": "Array", + "Stream": "Stream", + "View": "View", + "Reference": "Reference" + }, + "Data": { + "dtype": { + "metatype": "typeclass", + "desc": "", + "category": "General", + "default": "int32", + "base_types": [ + "bool", + "bool_", + "int8", + "int16", + "int32", + "int64", + "uint8", + "uint16", + "uint32", + "uint64", + "float16", + "float32", + "float64", + "complex64", + "complex128" + ], + "compound_types": { + "vector": { + "elements": { + "type": "str", + "default": "0" + }, + "dtype": { + "type": "typeclass", + "default": "bool" + } + }, + "pointer": { + "dtype": { + "type": "typeclass", + "default": "bool" + } + }, + "opaque": { + "ctype": { + "type": "str", + "default": "" + } + }, + "struct": { + "name": { + "type": "str", + "default": "" + }, + "data": { + "type": "dict", + "default": {}, + "value_type": "typeclass" + }, + "length": { + "type": "dict", + "default": {}, + "value_type": "int" + }, + "bytes": { + "type": "int", + "default": 0 + } + }, + "callback": { + "arguments": { + "type": "list", + "element_type": "typeclass", + "default": [] + }, + "returntypes": { + "type": "list", + "element_type": "typeclass", + "default": [] + } + } + } + }, + "shape": { + "metatype": "tuple", + "desc": "", + "category": "General", + "default": [] + }, + "transient": { + "metatype": "bool", + "desc": "", + "category": "General", + "default": false + }, + "storage": { + "metatype": "StorageType", + "desc": "Storage location", + "category": "General", + "default": "Default", + "choices": [ + "Default", + "Register", + "CPU_Pinned", + "CPU_Heap", + "CPU_ThreadLocal", + "GPU_Global", + "GPU_Shared", + "FPGA_Global", + "FPGA_Local", + "FPGA_Registers", + "FPGA_ShiftRegister", + "SVE_Register", + "Snitch_TCDM", + "Snitch_L2", + "Snitch_SSR" + ] + }, + "lifetime": { + "metatype": "AllocationLifetime", + "desc": "Data allocation span", + "category": "General", + "default": "Scope", + "choices": [ + "Scope", + "State", + "SDFG", + "Global", + "Persistent" + ] + }, + "location": { + "metatype": "dict", + "desc": "Full storage location identifier (e.g., rank, GPU ID)", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "str" + }, + "debuginfo": { + "metatype": "DebugInfo", + "desc": "", + "category": "General", + "default": { + "type": "DebugInfo", + "start_line": 0, + "end_line": 0, + "start_column": 0, + "end_column": 0, + "filename": null + } + } + }, + "Scalar": { + "allow_conflicts": { + "metatype": "bool", + "desc": "", + "category": "General", + "default": false + }, + "dtype": { + "metatype": "typeclass", + "desc": "", + "category": "General", + "default": "int32", + "base_types": [ + "bool", + "bool_", + "int8", + "int16", + "int32", + "int64", + "uint8", + "uint16", + "uint32", + "uint64", + "float16", + "float32", + "float64", + "complex64", + "complex128" + ], + "compound_types": { + "vector": { + "elements": { + "type": "str", + "default": "0" + }, + "dtype": { + "type": "typeclass", + "default": "bool" + } + }, + "pointer": { + "dtype": { + "type": "typeclass", + "default": "bool" + } + }, + "opaque": { + "ctype": { + "type": "str", + "default": "" + } + }, + "struct": { + "name": { + "type": "str", + "default": "" + }, + "data": { + "type": "dict", + "default": {}, + "value_type": "typeclass" + }, + "length": { + "type": "dict", + "default": {}, + "value_type": "int" + }, + "bytes": { + "type": "int", + "default": 0 + } + }, + "callback": { + "arguments": { + "type": "list", + "element_type": "typeclass", + "default": [] + }, + "returntypes": { + "type": "list", + "element_type": "typeclass", + "default": [] + } + } + } + }, + "shape": { + "metatype": "tuple", + "desc": "", + "category": "General", + "default": [] + }, + "transient": { + "metatype": "bool", + "desc": "", + "category": "General", + "default": false + }, + "storage": { + "metatype": "StorageType", + "desc": "Storage location", + "category": "General", + "default": "Default", + "choices": [ + "Default", + "Register", + "CPU_Pinned", + "CPU_Heap", + "CPU_ThreadLocal", + "GPU_Global", + "GPU_Shared", + "FPGA_Global", + "FPGA_Local", + "FPGA_Registers", + "FPGA_ShiftRegister", + "SVE_Register", + "Snitch_TCDM", + "Snitch_L2", + "Snitch_SSR" + ] + }, + "lifetime": { + "metatype": "AllocationLifetime", + "desc": "Data allocation span", + "category": "General", + "default": "Scope", + "choices": [ + "Scope", + "State", + "SDFG", + "Global", + "Persistent" + ] + }, + "location": { + "metatype": "dict", + "desc": "Full storage location identifier (e.g., rank, GPU ID)", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "str" + }, + "debuginfo": { + "metatype": "DebugInfo", + "desc": "", + "category": "General", + "default": { + "type": "DebugInfo", + "start_line": 0, + "end_line": 0, + "start_column": 0, + "end_column": 0, + "filename": null + } + } + }, + "Array": { + "allow_conflicts": { + "metatype": "bool", + "desc": "If enabled, allows more than one memlet to write to the same memory location without conflict resolution.", + "category": "General", + "default": false + }, + "strides": { + "metatype": "tuple", + "desc": "For each dimension, the number of elements to skip in order to obtain the next element in that dimension.", + "category": "General", + "default": [] + }, + "total_size": { + "metatype": "SymbolicProperty", + "desc": "The total allocated size of the array. Can be used for padding.", + "category": "General", + "default": 0 + }, + "offset": { + "metatype": "tuple", + "desc": "Initial offset to translate all indices by.", + "category": "General", + "default": [] + }, + "may_alias": { + "metatype": "bool", + "desc": "This pointer may alias with other pointers in the same function", + "category": "General", + "default": false + }, + "alignment": { + "metatype": "int", + "desc": "Allocation alignment in bytes (0 uses compiler-default)", + "category": "General", + "default": 0 + }, + "start_offset": { + "metatype": "int", + "desc": "Allocation offset elements for manual alignment (pre-padding)", + "category": "General", + "default": 0 + }, + "dtype": { + "metatype": "typeclass", + "desc": "", + "category": "General", + "default": "int32", + "base_types": [ + "bool", + "bool_", + "int8", + "int16", + "int32", + "int64", + "uint8", + "uint16", + "uint32", + "uint64", + "float16", + "float32", + "float64", + "complex64", + "complex128" + ], + "compound_types": { + "vector": { + "elements": { + "type": "str", + "default": "0" + }, + "dtype": { + "type": "typeclass", + "default": "bool" + } + }, + "pointer": { + "dtype": { + "type": "typeclass", + "default": "bool" + } + }, + "opaque": { + "ctype": { + "type": "str", + "default": "" + } + }, + "struct": { + "name": { + "type": "str", + "default": "" + }, + "data": { + "type": "dict", + "default": {}, + "value_type": "typeclass" + }, + "length": { + "type": "dict", + "default": {}, + "value_type": "int" + }, + "bytes": { + "type": "int", + "default": 0 + } + }, + "callback": { + "arguments": { + "type": "list", + "element_type": "typeclass", + "default": [] + }, + "returntypes": { + "type": "list", + "element_type": "typeclass", + "default": [] + } + } + } + }, + "shape": { + "metatype": "tuple", + "desc": "", + "category": "General", + "default": [] + }, + "transient": { + "metatype": "bool", + "desc": "", + "category": "General", + "default": false + }, + "storage": { + "metatype": "StorageType", + "desc": "Storage location", + "category": "General", + "default": "Default", + "choices": [ + "Default", + "Register", + "CPU_Pinned", + "CPU_Heap", + "CPU_ThreadLocal", + "GPU_Global", + "GPU_Shared", + "FPGA_Global", + "FPGA_Local", + "FPGA_Registers", + "FPGA_ShiftRegister", + "SVE_Register", + "Snitch_TCDM", + "Snitch_L2", + "Snitch_SSR" + ] + }, + "lifetime": { + "metatype": "AllocationLifetime", + "desc": "Data allocation span", + "category": "General", + "default": "Scope", + "choices": [ + "Scope", + "State", + "SDFG", + "Global", + "Persistent" + ] + }, + "location": { + "metatype": "dict", + "desc": "Full storage location identifier (e.g., rank, GPU ID)", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "str" + }, + "debuginfo": { + "metatype": "DebugInfo", + "desc": "", + "category": "General", + "default": { + "type": "DebugInfo", + "start_line": 0, + "end_line": 0, + "start_column": 0, + "end_column": 0, + "filename": null + } + } + }, + "Stream": { + "offset": { + "metatype": "list", + "desc": "", + "category": "General", + "default": [], + "element_type": "pystr_to_symbolic" + }, + "buffer_size": { + "metatype": "SymbolicProperty", + "desc": "Size of internal buffer.", + "category": "General", + "default": 0 + }, + "dtype": { + "metatype": "typeclass", + "desc": "", + "category": "General", + "default": "int32", + "base_types": [ + "bool", + "bool_", + "int8", + "int16", + "int32", + "int64", + "uint8", + "uint16", + "uint32", + "uint64", + "float16", + "float32", + "float64", + "complex64", + "complex128" + ], + "compound_types": { + "vector": { + "elements": { + "type": "str", + "default": "0" + }, + "dtype": { + "type": "typeclass", + "default": "bool" + } + }, + "pointer": { + "dtype": { + "type": "typeclass", + "default": "bool" + } + }, + "opaque": { + "ctype": { + "type": "str", + "default": "" + } + }, + "struct": { + "name": { + "type": "str", + "default": "" + }, + "data": { + "type": "dict", + "default": {}, + "value_type": "typeclass" + }, + "length": { + "type": "dict", + "default": {}, + "value_type": "int" + }, + "bytes": { + "type": "int", + "default": 0 + } + }, + "callback": { + "arguments": { + "type": "list", + "element_type": "typeclass", + "default": [] + }, + "returntypes": { + "type": "list", + "element_type": "typeclass", + "default": [] + } + } + } + }, + "shape": { + "metatype": "tuple", + "desc": "", + "category": "General", + "default": [] + }, + "transient": { + "metatype": "bool", + "desc": "", + "category": "General", + "default": false + }, + "storage": { + "metatype": "StorageType", + "desc": "Storage location", + "category": "General", + "default": "Default", + "choices": [ + "Default", + "Register", + "CPU_Pinned", + "CPU_Heap", + "CPU_ThreadLocal", + "GPU_Global", + "GPU_Shared", + "FPGA_Global", + "FPGA_Local", + "FPGA_Registers", + "FPGA_ShiftRegister", + "SVE_Register", + "Snitch_TCDM", + "Snitch_L2", + "Snitch_SSR" + ] + }, + "lifetime": { + "metatype": "AllocationLifetime", + "desc": "Data allocation span", + "category": "General", + "default": "Scope", + "choices": [ + "Scope", + "State", + "SDFG", + "Global", + "Persistent" + ] + }, + "location": { + "metatype": "dict", + "desc": "Full storage location identifier (e.g., rank, GPU ID)", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "str" + }, + "debuginfo": { + "metatype": "DebugInfo", + "desc": "", + "category": "General", + "default": { + "type": "DebugInfo", + "start_line": 0, + "end_line": 0, + "start_column": 0, + "end_column": 0, + "filename": null + } + } + }, + "View": { + "allow_conflicts": { + "metatype": "bool", + "desc": "If enabled, allows more than one memlet to write to the same memory location without conflict resolution.", + "category": "General", + "default": false + }, + "strides": { + "metatype": "tuple", + "desc": "For each dimension, the number of elements to skip in order to obtain the next element in that dimension.", + "category": "General", + "default": [] + }, + "total_size": { + "metatype": "SymbolicProperty", + "desc": "The total allocated size of the array. Can be used for padding.", + "category": "General", + "default": 0 + }, + "offset": { + "metatype": "tuple", + "desc": "Initial offset to translate all indices by.", + "category": "General", + "default": [] + }, + "may_alias": { + "metatype": "bool", + "desc": "This pointer may alias with other pointers in the same function", + "category": "General", + "default": false + }, + "alignment": { + "metatype": "int", + "desc": "Allocation alignment in bytes (0 uses compiler-default)", + "category": "General", + "default": 0 + }, + "start_offset": { + "metatype": "int", + "desc": "Allocation offset elements for manual alignment (pre-padding)", + "category": "General", + "default": 0 + }, + "dtype": { + "metatype": "typeclass", + "desc": "", + "category": "General", + "default": "int32", + "base_types": [ + "bool", + "bool_", + "int8", + "int16", + "int32", + "int64", + "uint8", + "uint16", + "uint32", + "uint64", + "float16", + "float32", + "float64", + "complex64", + "complex128" + ], + "compound_types": { + "vector": { + "elements": { + "type": "str", + "default": "0" + }, + "dtype": { + "type": "typeclass", + "default": "bool" + } + }, + "pointer": { + "dtype": { + "type": "typeclass", + "default": "bool" + } + }, + "opaque": { + "ctype": { + "type": "str", + "default": "" + } + }, + "struct": { + "name": { + "type": "str", + "default": "" + }, + "data": { + "type": "dict", + "default": {}, + "value_type": "typeclass" + }, + "length": { + "type": "dict", + "default": {}, + "value_type": "int" + }, + "bytes": { + "type": "int", + "default": 0 + } + }, + "callback": { + "arguments": { + "type": "list", + "element_type": "typeclass", + "default": [] + }, + "returntypes": { + "type": "list", + "element_type": "typeclass", + "default": [] + } + } + } + }, + "shape": { + "metatype": "tuple", + "desc": "", + "category": "General", + "default": [] + }, + "transient": { + "metatype": "bool", + "desc": "", + "category": "General", + "default": false + }, + "storage": { + "metatype": "StorageType", + "desc": "Storage location", + "category": "General", + "default": "Default", + "choices": [ + "Default", + "Register", + "CPU_Pinned", + "CPU_Heap", + "CPU_ThreadLocal", + "GPU_Global", + "GPU_Shared", + "FPGA_Global", + "FPGA_Local", + "FPGA_Registers", + "FPGA_ShiftRegister", + "SVE_Register", + "Snitch_TCDM", + "Snitch_L2", + "Snitch_SSR" + ] + }, + "lifetime": { + "metatype": "AllocationLifetime", + "desc": "Data allocation span", + "category": "General", + "default": "Scope", + "choices": [ + "Scope", + "State", + "SDFG", + "Global", + "Persistent" + ] + }, + "location": { + "metatype": "dict", + "desc": "Full storage location identifier (e.g., rank, GPU ID)", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "str" + }, + "debuginfo": { + "metatype": "DebugInfo", + "desc": "", + "category": "General", + "default": { + "type": "DebugInfo", + "start_line": 0, + "end_line": 0, + "start_column": 0, + "end_column": 0, + "filename": null + } + } + }, + "Reference": { + "allow_conflicts": { + "metatype": "bool", + "desc": "If enabled, allows more than one memlet to write to the same memory location without conflict resolution.", + "category": "General", + "default": false + }, + "strides": { + "metatype": "tuple", + "desc": "For each dimension, the number of elements to skip in order to obtain the next element in that dimension.", + "category": "General", + "default": [] + }, + "total_size": { + "metatype": "SymbolicProperty", + "desc": "The total allocated size of the array. Can be used for padding.", + "category": "General", + "default": 0 + }, + "offset": { + "metatype": "tuple", + "desc": "Initial offset to translate all indices by.", + "category": "General", + "default": [] + }, + "may_alias": { + "metatype": "bool", + "desc": "This pointer may alias with other pointers in the same function", + "category": "General", + "default": false + }, + "alignment": { + "metatype": "int", + "desc": "Allocation alignment in bytes (0 uses compiler-default)", + "category": "General", + "default": 0 + }, + "start_offset": { + "metatype": "int", + "desc": "Allocation offset elements for manual alignment (pre-padding)", + "category": "General", + "default": 0 + }, + "dtype": { + "metatype": "typeclass", + "desc": "", + "category": "General", + "default": "int32", + "base_types": [ + "bool", + "bool_", + "int8", + "int16", + "int32", + "int64", + "uint8", + "uint16", + "uint32", + "uint64", + "float16", + "float32", + "float64", + "complex64", + "complex128" + ], + "compound_types": { + "vector": { + "elements": { + "type": "str", + "default": "0" + }, + "dtype": { + "type": "typeclass", + "default": "bool" + } + }, + "pointer": { + "dtype": { + "type": "typeclass", + "default": "bool" + } + }, + "opaque": { + "ctype": { + "type": "str", + "default": "" + } + }, + "struct": { + "name": { + "type": "str", + "default": "" + }, + "data": { + "type": "dict", + "default": {}, + "value_type": "typeclass" + }, + "length": { + "type": "dict", + "default": {}, + "value_type": "int" + }, + "bytes": { + "type": "int", + "default": 0 + } + }, + "callback": { + "arguments": { + "type": "list", + "element_type": "typeclass", + "default": [] + }, + "returntypes": { + "type": "list", + "element_type": "typeclass", + "default": [] + } + } + } + }, + "shape": { + "metatype": "tuple", + "desc": "", + "category": "General", + "default": [] + }, + "transient": { + "metatype": "bool", + "desc": "", + "category": "General", + "default": false + }, + "storage": { + "metatype": "StorageType", + "desc": "Storage location", + "category": "General", + "default": "Default", + "choices": [ + "Default", + "Register", + "CPU_Pinned", + "CPU_Heap", + "CPU_ThreadLocal", + "GPU_Global", + "GPU_Shared", + "FPGA_Global", + "FPGA_Local", + "FPGA_Registers", + "FPGA_ShiftRegister", + "SVE_Register", + "Snitch_TCDM", + "Snitch_L2", + "Snitch_SSR" + ] + }, + "lifetime": { + "metatype": "AllocationLifetime", + "desc": "Data allocation span", + "category": "General", + "default": "Scope", + "choices": [ + "Scope", + "State", + "SDFG", + "Global", + "Persistent" + ] + }, + "location": { + "metatype": "dict", + "desc": "Full storage location identifier (e.g., rank, GPU ID)", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "str" + }, + "debuginfo": { + "metatype": "DebugInfo", + "desc": "", + "category": "General", + "default": { + "type": "DebugInfo", + "start_line": 0, + "end_line": 0, + "start_column": 0, + "end_column": 0, + "filename": null + } + } + }, + "Memlet": { + "volume": { + "metatype": "SymbolicProperty", + "desc": "The exact number of elements moved using this memlet, or the maximum number if dynamic=True (with 0 as unbounded)", + "category": "General", + "default": 0 + }, + "dynamic": { + "metatype": "bool", + "desc": "Is the number of elements moved determined at runtime (e.g., data dependent)", + "category": "General", + "default": false + }, + "subset": { + "metatype": "SubsetProperty", + "desc": "Subset of elements to move from the data attached to this edge.", + "category": "General", + "default": null + }, + "other_subset": { + "metatype": "SubsetProperty", + "desc": "Subset of elements after reindexing to the data not attached to this edge (e.g., for offsets and reshaping).", + "category": "General", + "default": null + }, + "data": { + "metatype": "DataProperty", + "desc": "Data descriptor attached to this memlet", + "category": "General", + "default": null + }, + "wcr": { + "metatype": "LambdaProperty", + "desc": "If set, defines a write-conflict resolution lambda function. The syntax of the lambda function receives two elements: `current` value and `new` value, and returns the value after resolution", + "category": "General", + "default": null + }, + "debuginfo": { + "metatype": "DebugInfo", + "desc": "Line information to track source and generated code", + "category": "General", + "default": { + "type": "DebugInfo", + "start_line": 0, + "end_line": 0, + "start_column": 0, + "end_column": 0, + "filename": null + } + }, + "wcr_nonatomic": { + "metatype": "bool", + "desc": "If True, always generates non-conflicting (non-atomic) writes in resulting code", + "category": "General", + "default": false + }, + "allow_oob": { + "metatype": "bool", + "desc": "Bypass out-of-bounds validation", + "category": "General", + "default": false + } + }, + "Node": { + "in_connectors": { + "metatype": "dict", + "desc": "A set of input connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + }, + "out_connectors": { + "metatype": "dict", + "desc": "A set of output connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + } + }, + "AccessNode": { + "setzero": { + "metatype": "bool", + "desc": "Initialize to zero", + "category": "General", + "default": false + }, + "debuginfo": { + "metatype": "DebugInfo", + "desc": "", + "category": "General", + "default": { + "type": "DebugInfo", + "start_line": 0, + "end_line": 0, + "start_column": 0, + "end_column": 0, + "filename": null + } + }, + "data": { + "metatype": "DataProperty", + "desc": "Data (array, stream, scalar) to access", + "category": "General", + "default": null + }, + "instrument": { + "metatype": "DataInstrumentationType", + "desc": "Instrument data contents at this access", + "category": "General", + "default": "No_Instrumentation", + "choices": [ + "No_Instrumentation", + "Save", + "Restore" + ] + }, + "in_connectors": { + "metatype": "dict", + "desc": "A set of input connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + }, + "out_connectors": { + "metatype": "dict", + "desc": "A set of output connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + } + }, + "CodeNode": { + "label": { + "metatype": "str", + "desc": "Name of the CodeNode", + "category": "General", + "default": "" + }, + "location": { + "metatype": "dict", + "desc": "Full storage location identifier (e.g., rank, GPU ID)", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "pystr_to_symbolic" + }, + "environments": { + "metatype": "set", + "desc": "Environments required by CMake to build and run this code node.", + "category": "General", + "default": [] + }, + "in_connectors": { + "metatype": "dict", + "desc": "A set of input connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + }, + "out_connectors": { + "metatype": "dict", + "desc": "A set of output connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + } + }, + "Tasklet": { + "code": { + "metatype": "CodeBlock", + "desc": "Tasklet code", + "category": "General", + "default": { + "string_data": "", + "language": "Python" + } + }, + "state_fields": { + "metatype": "list", + "desc": "Fields that are added to the global state", + "category": "General", + "default": [], + "element_type": "str" + }, + "code_global": { + "metatype": "CodeBlock", + "desc": "Global scope code needed for tasklet execution", + "category": "General", + "default": { + "string_data": "", + "language": "CPP" + } + }, + "code_init": { + "metatype": "CodeBlock", + "desc": "Extra code that is called on DaCe runtime initialization", + "category": "General", + "default": { + "string_data": "", + "language": "CPP" + } + }, + "code_exit": { + "metatype": "CodeBlock", + "desc": "Extra code that is called on DaCe runtime cleanup", + "category": "General", + "default": { + "string_data": "", + "language": "CPP" + } + }, + "debuginfo": { + "metatype": "DebugInfo", + "desc": "", + "category": "General", + "default": { + "type": "DebugInfo", + "start_line": 0, + "end_line": 0, + "start_column": 0, + "end_column": 0, + "filename": null + } + }, + "instrument": { + "metatype": "InstrumentationType", + "desc": "Measure execution statistics with given method", + "category": "General", + "default": "No_Instrumentation", + "choices": [ + "No_Instrumentation", + "Timer", + "PAPI_Counters", + "GPU_Events", + "FPGA" + ] + }, + "side_effects": { + "metatype": "bool", + "desc": "If True, this tasklet calls a function that may have additional side effects on the system state (e.g., callback). Defaults to None, which lets the framework make assumptions based on the tasklet contents", + "category": "General", + "default": null + }, + "label": { + "metatype": "str", + "desc": "Name of the CodeNode", + "category": "General", + "default": "" + }, + "location": { + "metatype": "dict", + "desc": "Full storage location identifier (e.g., rank, GPU ID)", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "pystr_to_symbolic" + }, + "environments": { + "metatype": "set", + "desc": "Environments required by CMake to build and run this code node.", + "category": "General", + "default": [] + }, + "in_connectors": { + "metatype": "dict", + "desc": "A set of input connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + }, + "out_connectors": { + "metatype": "dict", + "desc": "A set of output connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + } + }, + "RTLTasklet": { + "ip_cores": { + "metatype": "dict", + "desc": "A set of IP cores used by the tasklet.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "dict" + }, + "code": { + "metatype": "CodeBlock", + "desc": "Tasklet code", + "category": "General", + "default": { + "string_data": "", + "language": "Python" + } + }, + "state_fields": { + "metatype": "list", + "desc": "Fields that are added to the global state", + "category": "General", + "default": [], + "element_type": "str" + }, + "code_global": { + "metatype": "CodeBlock", + "desc": "Global scope code needed for tasklet execution", + "category": "General", + "default": { + "string_data": "", + "language": "CPP" + } + }, + "code_init": { + "metatype": "CodeBlock", + "desc": "Extra code that is called on DaCe runtime initialization", + "category": "General", + "default": { + "string_data": "", + "language": "CPP" + } + }, + "code_exit": { + "metatype": "CodeBlock", + "desc": "Extra code that is called on DaCe runtime cleanup", + "category": "General", + "default": { + "string_data": "", + "language": "CPP" + } + }, + "debuginfo": { + "metatype": "DebugInfo", + "desc": "", + "category": "General", + "default": { + "type": "DebugInfo", + "start_line": 0, + "end_line": 0, + "start_column": 0, + "end_column": 0, + "filename": null + } + }, + "instrument": { + "metatype": "InstrumentationType", + "desc": "Measure execution statistics with given method", + "category": "General", + "default": "No_Instrumentation", + "choices": [ + "No_Instrumentation", + "Timer", + "PAPI_Counters", + "GPU_Events", + "FPGA" + ] + }, + "side_effects": { + "metatype": "bool", + "desc": "If True, this tasklet calls a function that may have additional side effects on the system state (e.g., callback). Defaults to None, which lets the framework make assumptions based on the tasklet contents", + "category": "General", + "default": null + }, + "label": { + "metatype": "str", + "desc": "Name of the CodeNode", + "category": "General", + "default": "" + }, + "location": { + "metatype": "dict", + "desc": "Full storage location identifier (e.g., rank, GPU ID)", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "pystr_to_symbolic" + }, + "environments": { + "metatype": "set", + "desc": "Environments required by CMake to build and run this code node.", + "category": "General", + "default": [] + }, + "in_connectors": { + "metatype": "dict", + "desc": "A set of input connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + }, + "out_connectors": { + "metatype": "dict", + "desc": "A set of output connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + } + }, + "NestedSDFG": { + "sdfg": { + "metatype": "SDFGReferenceProperty", + "desc": "The SDFG", + "category": "General", + "default": null + }, + "schedule": { + "metatype": "ScheduleType", + "desc": "SDFG schedule", + "category": "General", + "default": "Default", + "choices": [ + "Default", + "Sequential", + "MPI", + "CPU_Multicore", + "Unrolled", + "SVE_Map", + "GPU_Default", + "GPU_Device", + "GPU_ThreadBlock", + "GPU_ThreadBlock_Dynamic", + "GPU_Persistent", + "FPGA_Device", + "Snitch", + "Snitch_Multicore" + ] + }, + "symbol_mapping": { + "metatype": "dict", + "desc": "Mapping between internal symbols and their values, expressed as symbolic expressions", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "pystr_to_symbolic" + }, + "debuginfo": { + "metatype": "DebugInfo", + "desc": "", + "category": "General", + "default": { + "type": "DebugInfo", + "start_line": 0, + "end_line": 0, + "start_column": 0, + "end_column": 0, + "filename": null + } + }, + "is_collapsed": { + "metatype": "bool", + "desc": "Show this node/scope/state as collapsed", + "category": "General", + "default": false + }, + "instrument": { + "metatype": "InstrumentationType", + "desc": "Measure execution statistics with given method", + "category": "General", + "default": "No_Instrumentation", + "choices": [ + "No_Instrumentation", + "Timer", + "PAPI_Counters", + "GPU_Events", + "FPGA" + ] + }, + "no_inline": { + "metatype": "bool", + "desc": "If True, this nested SDFG will not be inlined during simplification", + "category": "General", + "default": false + }, + "unique_name": { + "metatype": "str", + "desc": "Unique name of the SDFG", + "category": "General", + "default": "" + }, + "label": { + "metatype": "str", + "desc": "Name of the CodeNode", + "category": "General", + "default": "" + }, + "location": { + "metatype": "dict", + "desc": "Full storage location identifier (e.g., rank, GPU ID)", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "pystr_to_symbolic" + }, + "environments": { + "metatype": "set", + "desc": "Environments required by CMake to build and run this code node.", + "category": "General", + "default": [] + }, + "in_connectors": { + "metatype": "dict", + "desc": "A set of input connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + }, + "out_connectors": { + "metatype": "dict", + "desc": "A set of output connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + } + }, + "MapEntry": { + "label": { + "metatype": "str", + "desc": "Label of the map", + "category": "General", + "default": "", + "indirected": true + }, + "params": { + "metatype": "list", + "desc": "Mapped parameters", + "category": "General", + "default": [], + "indirected": true, + "element_type": "str" + }, + "range": { + "metatype": "Range", + "desc": "Ranges of map parameters", + "category": "General", + "default": { + "type": "Range", + "ranges": [] + }, + "indirected": true + }, + "schedule": { + "metatype": "ScheduleType", + "desc": "Map schedule", + "category": "General", + "default": "Default", + "indirected": true, + "choices": [ + "Default", + "Sequential", + "MPI", + "CPU_Multicore", + "Unrolled", + "SVE_Map", + "GPU_Default", + "GPU_Device", + "GPU_ThreadBlock", + "GPU_ThreadBlock_Dynamic", + "GPU_Persistent", + "FPGA_Device", + "Snitch", + "Snitch_Multicore" + ] + }, + "unroll": { + "metatype": "bool", + "desc": "Map unrolling", + "category": "General", + "default": false, + "indirected": true + }, + "collapse": { + "metatype": "int", + "desc": "How many dimensions to collapse into the parallel range", + "category": "General", + "default": 1, + "indirected": true + }, + "debuginfo": { + "metatype": "DebugInfo", + "desc": "", + "category": "General", + "default": { + "type": "DebugInfo", + "start_line": 0, + "end_line": 0, + "start_column": 0, + "end_column": 0, + "filename": null + }, + "indirected": true + }, + "is_collapsed": { + "metatype": "bool", + "desc": "Show this node/scope/state as collapsed", + "category": "General", + "default": false, + "indirected": true + }, + "instrument": { + "metatype": "InstrumentationType", + "desc": "Measure execution statistics with given method", + "category": "General", + "default": "No_Instrumentation", + "indirected": true, + "choices": [ + "No_Instrumentation", + "Timer", + "PAPI_Counters", + "GPU_Events", + "FPGA" + ] + }, + "omp_num_threads": { + "metatype": "int", + "desc": "Number of OpenMP threads executing the Map", + "category": "General", + "default": 0, + "indirected": true + }, + "omp_schedule": { + "metatype": "OMPScheduleType", + "desc": "OpenMP schedule {static, dynamic, guided}", + "category": "General", + "default": "Default", + "indirected": true, + "choices": [ + "Default", + "Static", + "Dynamic", + "Guided" + ] + }, + "omp_chunk_size": { + "metatype": "int", + "desc": "OpenMP schedule chunk size", + "category": "General", + "default": 0, + "indirected": true + }, + "in_connectors": { + "metatype": "dict", + "desc": "A set of input connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + }, + "out_connectors": { + "metatype": "dict", + "desc": "A set of output connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + } + }, + "MapExit": { + "in_connectors": { + "metatype": "dict", + "desc": "A set of input connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + }, + "out_connectors": { + "metatype": "dict", + "desc": "A set of output connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + } + }, + "Map": { + "label": { + "metatype": "str", + "desc": "Label of the map", + "category": "General", + "default": "" + }, + "params": { + "metatype": "list", + "desc": "Mapped parameters", + "category": "General", + "default": [], + "element_type": "str" + }, + "range": { + "metatype": "Range", + "desc": "Ranges of map parameters", + "category": "General", + "default": { + "type": "Range", + "ranges": [] + } + }, + "schedule": { + "metatype": "ScheduleType", + "desc": "Map schedule", + "category": "General", + "default": "Default", + "choices": [ + "Default", + "Sequential", + "MPI", + "CPU_Multicore", + "Unrolled", + "SVE_Map", + "GPU_Default", + "GPU_Device", + "GPU_ThreadBlock", + "GPU_ThreadBlock_Dynamic", + "GPU_Persistent", + "FPGA_Device", + "Snitch", + "Snitch_Multicore" + ] + }, + "unroll": { + "metatype": "bool", + "desc": "Map unrolling", + "category": "General", + "default": false + }, + "collapse": { + "metatype": "int", + "desc": "How many dimensions to collapse into the parallel range", + "category": "General", + "default": 1 + }, + "debuginfo": { + "metatype": "DebugInfo", + "desc": "", + "category": "General", + "default": { + "type": "DebugInfo", + "start_line": 0, + "end_line": 0, + "start_column": 0, + "end_column": 0, + "filename": null + } + }, + "is_collapsed": { + "metatype": "bool", + "desc": "Show this node/scope/state as collapsed", + "category": "General", + "default": false + }, + "instrument": { + "metatype": "InstrumentationType", + "desc": "Measure execution statistics with given method", + "category": "General", + "default": "No_Instrumentation", + "choices": [ + "No_Instrumentation", + "Timer", + "PAPI_Counters", + "GPU_Events", + "FPGA" + ] + }, + "omp_num_threads": { + "metatype": "int", + "desc": "Number of OpenMP threads executing the Map", + "category": "General", + "default": 0 + }, + "omp_schedule": { + "metatype": "OMPScheduleType", + "desc": "OpenMP schedule {static, dynamic, guided}", + "category": "General", + "default": "Default", + "choices": [ + "Default", + "Static", + "Dynamic", + "Guided" + ] + }, + "omp_chunk_size": { + "metatype": "int", + "desc": "OpenMP schedule chunk size", + "category": "General", + "default": 0 + } + }, + "ConsumeEntry": { + "label": { + "metatype": "str", + "desc": "Name of the consume node", + "category": "General", + "default": "", + "indirected": true + }, + "pe_index": { + "metatype": "str", + "desc": "Processing element identifier", + "category": "General", + "default": "", + "indirected": true + }, + "num_pes": { + "metatype": "SymbolicProperty", + "desc": "Number of processing elements", + "category": "General", + "default": 1, + "indirected": true + }, + "condition": { + "metatype": "CodeBlock", + "desc": "Quiescence condition", + "category": "General", + "default": null, + "indirected": true + }, + "schedule": { + "metatype": "ScheduleType", + "desc": "Consume schedule", + "category": "General", + "default": "Default", + "indirected": true, + "choices": [ + "Default", + "Sequential", + "MPI", + "CPU_Multicore", + "Unrolled", + "SVE_Map", + "GPU_Default", + "GPU_Device", + "GPU_ThreadBlock", + "GPU_ThreadBlock_Dynamic", + "GPU_Persistent", + "FPGA_Device", + "Snitch", + "Snitch_Multicore" + ] + }, + "chunksize": { + "metatype": "int", + "desc": "Maximal size of elements to consume at a time", + "category": "General", + "default": 1, + "indirected": true + }, + "debuginfo": { + "metatype": "DebugInfo", + "desc": "", + "category": "General", + "default": { + "type": "DebugInfo", + "start_line": 0, + "end_line": 0, + "start_column": 0, + "end_column": 0, + "filename": null + }, + "indirected": true + }, + "is_collapsed": { + "metatype": "bool", + "desc": "Show this node/scope/state as collapsed", + "category": "General", + "default": false, + "indirected": true + }, + "instrument": { + "metatype": "InstrumentationType", + "desc": "Measure execution statistics with given method", + "category": "General", + "default": "No_Instrumentation", + "indirected": true, + "choices": [ + "No_Instrumentation", + "Timer", + "PAPI_Counters", + "GPU_Events", + "FPGA" + ] + }, + "in_connectors": { + "metatype": "dict", + "desc": "A set of input connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + }, + "out_connectors": { + "metatype": "dict", + "desc": "A set of output connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + } + }, + "ConsumeExit": { + "in_connectors": { + "metatype": "dict", + "desc": "A set of input connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + }, + "out_connectors": { + "metatype": "dict", + "desc": "A set of output connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + } + }, + "Consume": { + "label": { + "metatype": "str", + "desc": "Name of the consume node", + "category": "General", + "default": "" + }, + "pe_index": { + "metatype": "str", + "desc": "Processing element identifier", + "category": "General", + "default": "" + }, + "num_pes": { + "metatype": "SymbolicProperty", + "desc": "Number of processing elements", + "category": "General", + "default": 1 + }, + "condition": { + "metatype": "CodeBlock", + "desc": "Quiescence condition", + "category": "General", + "default": null + }, + "schedule": { + "metatype": "ScheduleType", + "desc": "Consume schedule", + "category": "General", + "default": "Default", + "choices": [ + "Default", + "Sequential", + "MPI", + "CPU_Multicore", + "Unrolled", + "SVE_Map", + "GPU_Default", + "GPU_Device", + "GPU_ThreadBlock", + "GPU_ThreadBlock_Dynamic", + "GPU_Persistent", + "FPGA_Device", + "Snitch", + "Snitch_Multicore" + ] + }, + "chunksize": { + "metatype": "int", + "desc": "Maximal size of elements to consume at a time", + "category": "General", + "default": 1 + }, + "debuginfo": { + "metatype": "DebugInfo", + "desc": "", + "category": "General", + "default": { + "type": "DebugInfo", + "start_line": 0, + "end_line": 0, + "start_column": 0, + "end_column": 0, + "filename": null + } + }, + "is_collapsed": { + "metatype": "bool", + "desc": "Show this node/scope/state as collapsed", + "category": "General", + "default": false + }, + "instrument": { + "metatype": "InstrumentationType", + "desc": "Measure execution statistics with given method", + "category": "General", + "default": "No_Instrumentation", + "choices": [ + "No_Instrumentation", + "Timer", + "PAPI_Counters", + "GPU_Events", + "FPGA" + ] + } + }, + "PipelineEntry": { + "init_size": { + "metatype": "SymbolicProperty", + "desc": "Number of initialization iterations.", + "category": "General", + "default": 0, + "indirected": true + }, + "init_overlap": { + "metatype": "bool", + "desc": "Whether to increment regular map indices during initialization.", + "category": "General", + "default": true, + "indirected": true + }, + "drain_size": { + "metatype": "SymbolicProperty", + "desc": "Number of drain iterations.", + "category": "General", + "default": 1, + "indirected": true + }, + "drain_overlap": { + "metatype": "bool", + "desc": "Whether to increment regular map indices during pipeline drain.", + "category": "General", + "default": true, + "indirected": true + }, + "additional_iterators": { + "metatype": "dict", + "desc": "Additional iterators, managed by the user inside the scope.", + "category": "General", + "default": {}, + "indirected": true + }, + "label": { + "metatype": "str", + "desc": "Label of the map", + "category": "General", + "default": "", + "indirected": true + }, + "params": { + "metatype": "list", + "desc": "Mapped parameters", + "category": "General", + "default": [], + "indirected": true, + "element_type": "str" + }, + "range": { + "metatype": "Range", + "desc": "Ranges of map parameters", + "category": "General", + "default": { + "type": "Range", + "ranges": [] + }, + "indirected": true + }, + "schedule": { + "metatype": "ScheduleType", + "desc": "Map schedule", + "category": "General", + "default": "Default", + "indirected": true, + "choices": [ + "Default", + "Sequential", + "MPI", + "CPU_Multicore", + "Unrolled", + "SVE_Map", + "GPU_Default", + "GPU_Device", + "GPU_ThreadBlock", + "GPU_ThreadBlock_Dynamic", + "GPU_Persistent", + "FPGA_Device", + "Snitch", + "Snitch_Multicore" + ] + }, + "unroll": { + "metatype": "bool", + "desc": "Map unrolling", + "category": "General", + "default": false, + "indirected": true + }, + "collapse": { + "metatype": "int", + "desc": "How many dimensions to collapse into the parallel range", + "category": "General", + "default": 1, + "indirected": true + }, + "debuginfo": { + "metatype": "DebugInfo", + "desc": "", + "category": "General", + "default": { + "type": "DebugInfo", + "start_line": 0, + "end_line": 0, + "start_column": 0, + "end_column": 0, + "filename": null + }, + "indirected": true + }, + "is_collapsed": { + "metatype": "bool", + "desc": "Show this node/scope/state as collapsed", + "category": "General", + "default": false, + "indirected": true + }, + "instrument": { + "metatype": "InstrumentationType", + "desc": "Measure execution statistics with given method", + "category": "General", + "default": "No_Instrumentation", + "indirected": true, + "choices": [ + "No_Instrumentation", + "Timer", + "PAPI_Counters", + "GPU_Events", + "FPGA" + ] + }, + "omp_num_threads": { + "metatype": "int", + "desc": "Number of OpenMP threads executing the Map", + "category": "General", + "default": 0, + "indirected": true + }, + "omp_schedule": { + "metatype": "OMPScheduleType", + "desc": "OpenMP schedule {static, dynamic, guided}", + "category": "General", + "default": "Default", + "indirected": true, + "choices": [ + "Default", + "Static", + "Dynamic", + "Guided" + ] + }, + "omp_chunk_size": { + "metatype": "int", + "desc": "OpenMP schedule chunk size", + "category": "General", + "default": 0, + "indirected": true + }, + "in_connectors": { + "metatype": "dict", + "desc": "A set of input connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + }, + "out_connectors": { + "metatype": "dict", + "desc": "A set of output connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + } + }, + "PipelineExit": { + "in_connectors": { + "metatype": "dict", + "desc": "A set of input connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + }, + "out_connectors": { + "metatype": "dict", + "desc": "A set of output connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + } + }, + "Pipeline": { + "init_size": { + "metatype": "SymbolicProperty", + "desc": "Number of initialization iterations.", + "category": "General", + "default": 0 + }, + "init_overlap": { + "metatype": "bool", + "desc": "Whether to increment regular map indices during initialization.", + "category": "General", + "default": true + }, + "drain_size": { + "metatype": "SymbolicProperty", + "desc": "Number of drain iterations.", + "category": "General", + "default": 1 + }, + "drain_overlap": { + "metatype": "bool", + "desc": "Whether to increment regular map indices during pipeline drain.", + "category": "General", + "default": true + }, + "additional_iterators": { + "metatype": "dict", + "desc": "Additional iterators, managed by the user inside the scope.", + "category": "General", + "default": {} + }, + "label": { + "metatype": "str", + "desc": "Label of the map", + "category": "General", + "default": "" + }, + "params": { + "metatype": "list", + "desc": "Mapped parameters", + "category": "General", + "default": [], + "element_type": "str" + }, + "range": { + "metatype": "Range", + "desc": "Ranges of map parameters", + "category": "General", + "default": { + "type": "Range", + "ranges": [] + } + }, + "schedule": { + "metatype": "ScheduleType", + "desc": "Map schedule", + "category": "General", + "default": "Default", + "choices": [ + "Default", + "Sequential", + "MPI", + "CPU_Multicore", + "Unrolled", + "SVE_Map", + "GPU_Default", + "GPU_Device", + "GPU_ThreadBlock", + "GPU_ThreadBlock_Dynamic", + "GPU_Persistent", + "FPGA_Device", + "Snitch", + "Snitch_Multicore" + ] + }, + "unroll": { + "metatype": "bool", + "desc": "Map unrolling", + "category": "General", + "default": false + }, + "collapse": { + "metatype": "int", + "desc": "How many dimensions to collapse into the parallel range", + "category": "General", + "default": 1 + }, + "debuginfo": { + "metatype": "DebugInfo", + "desc": "", + "category": "General", + "default": { + "type": "DebugInfo", + "start_line": 0, + "end_line": 0, + "start_column": 0, + "end_column": 0, + "filename": null + } + }, + "is_collapsed": { + "metatype": "bool", + "desc": "Show this node/scope/state as collapsed", + "category": "General", + "default": false + }, + "instrument": { + "metatype": "InstrumentationType", + "desc": "Measure execution statistics with given method", + "category": "General", + "default": "No_Instrumentation", + "choices": [ + "No_Instrumentation", + "Timer", + "PAPI_Counters", + "GPU_Events", + "FPGA" + ] + }, + "omp_num_threads": { + "metatype": "int", + "desc": "Number of OpenMP threads executing the Map", + "category": "General", + "default": 0 + }, + "omp_schedule": { + "metatype": "OMPScheduleType", + "desc": "OpenMP schedule {static, dynamic, guided}", + "category": "General", + "default": "Default", + "choices": [ + "Default", + "Static", + "Dynamic", + "Guided" + ] + }, + "omp_chunk_size": { + "metatype": "int", + "desc": "OpenMP schedule chunk size", + "category": "General", + "default": 0 + } + }, + "LibraryNode": { + "name": { + "metatype": "str", + "desc": "Name of node", + "category": "General", + "default": "" + }, + "implementation": { + "metatype": "LibraryImplementationProperty", + "desc": "Which implementation this library node will expand into.Must match a key in the list of possible implementations.", + "category": "General", + "default": null + }, + "schedule": { + "metatype": "ScheduleType", + "desc": "If set, determines the default device mapping of the node upon expansion, if expanded to a nested SDFG.", + "category": "General", + "default": "Default", + "choices": [ + "Default", + "Sequential", + "MPI", + "CPU_Multicore", + "Unrolled", + "SVE_Map", + "GPU_Default", + "GPU_Device", + "GPU_ThreadBlock", + "GPU_ThreadBlock_Dynamic", + "GPU_Persistent", + "FPGA_Device", + "Snitch", + "Snitch_Multicore" + ] + }, + "debuginfo": { + "metatype": "DebugInfo", + "desc": "", + "category": "General", + "default": { + "type": "DebugInfo", + "start_line": 0, + "end_line": 0, + "start_column": 0, + "end_column": 0, + "filename": null + } + }, + "label": { + "metatype": "str", + "desc": "Name of the CodeNode", + "category": "General", + "default": "" + }, + "location": { + "metatype": "dict", + "desc": "Full storage location identifier (e.g., rank, GPU ID)", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "pystr_to_symbolic" + }, + "environments": { + "metatype": "set", + "desc": "Environments required by CMake to build and run this code node.", + "category": "General", + "default": [] + }, + "in_connectors": { + "metatype": "dict", + "desc": "A set of input connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + }, + "out_connectors": { + "metatype": "dict", + "desc": "A set of output connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + } + }, + "SDFGState": { + "is_collapsed": { + "metatype": "bool", + "desc": "Show this node/scope/state as collapsed", + "category": "General", + "default": false + }, + "nosync": { + "metatype": "bool", + "desc": "Do not synchronize at the end of the state", + "category": "General", + "default": false + }, + "instrument": { + "metatype": "InstrumentationType", + "desc": "Measure execution statistics with given method", + "category": "General", + "default": "No_Instrumentation", + "choices": [ + "No_Instrumentation", + "Timer", + "PAPI_Counters", + "GPU_Events", + "FPGA" + ] + }, + "executions": { + "metatype": "SymbolicProperty", + "desc": "The number of times this state gets executed (0 stands for unbounded)", + "category": "General", + "default": 0 + }, + "dynamic_executions": { + "metatype": "bool", + "desc": "The number of executions of this state is dynamic", + "category": "General", + "default": true + }, + "ranges": { + "metatype": "dict", + "desc": "Variable ranges, typically within loops", + "category": "General", + "default": {}, + "key_type": "symbol", + "value_type": "Range" + }, + "location": { + "metatype": "dict", + "desc": "Full storage location identifier (e.g., rank, GPU ID)", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "pystr_to_symbolic" + } + }, + "ProcessGrid": { + "name": { + "metatype": "str", + "desc": "The process-grid's name.", + "category": "General", + "default": "" + }, + "is_subgrid": { + "metatype": "bool", + "desc": "If true, spanws sub-grids out of the parent process-grid.", + "category": "General", + "default": false + }, + "shape": { + "metatype": "tuple", + "desc": "The process-grid's shape.", + "category": "General", + "default": [] + }, + "parent_grid": { + "metatype": "str", + "desc": "Name of the parent process-grid (mandatory if `is_subgrid` is true, otherwise ignored).", + "category": "General", + "default": null + }, + "color": { + "metatype": "list", + "desc": "The i-th entry specifies whether the i-th dimension is kept in the sub-grid or is dropped (mandatory if `is_subgrid` is true, otherwise ignored).", + "category": "General", + "default": null, + "element_type": "int" + }, + "exact_grid": { + "metatype": "SymbolicProperty", + "desc": "If set then, out of all the sub-grids created, only the one that contains the rank with id `exact_grid` will be utilized for collective communication (optional if `is_subgrid` is true, otherwise ignored).", + "category": "General", + "default": null + }, + "root": { + "metatype": "SymbolicProperty", + "desc": "The root rank for collective communication.", + "category": "General", + "default": 0 + } + }, + "SubArray": { + "name": { + "metatype": "str", + "desc": "The type's name.", + "category": "General", + "default": "" + }, + "dtype": { + "metatype": "typeclass", + "desc": "", + "category": "General", + "default": "int32", + "base_types": [ + "bool", + "bool_", + "int8", + "int16", + "int32", + "int64", + "uint8", + "uint16", + "uint32", + "uint64", + "float16", + "float32", + "float64", + "complex64", + "complex128" + ], + "compound_types": { + "vector": { + "elements": { + "type": "str", + "default": "0" + }, + "dtype": { + "type": "typeclass", + "default": "bool" + } + }, + "pointer": { + "dtype": { + "type": "typeclass", + "default": "bool" + } + }, + "opaque": { + "ctype": { + "type": "str", + "default": "" + } + }, + "struct": { + "name": { + "type": "str", + "default": "" + }, + "data": { + "type": "dict", + "default": {}, + "value_type": "typeclass" + }, + "length": { + "type": "dict", + "default": {}, + "value_type": "int" + }, + "bytes": { + "type": "int", + "default": 0 + } + }, + "callback": { + "arguments": { + "type": "list", + "element_type": "typeclass", + "default": [] + }, + "returntypes": { + "type": "list", + "element_type": "typeclass", + "default": [] + } + } + } + }, + "shape": { + "metatype": "tuple", + "desc": "The array's shape.", + "category": "General", + "default": [] + }, + "subshape": { + "metatype": "tuple", + "desc": "The sub-array's shape.", + "category": "General", + "default": [] + }, + "pgrid": { + "metatype": "str", + "desc": "Name of the process-grid where the data are distributed.", + "category": "General", + "default": null + }, + "correspondence": { + "metatype": "list", + "desc": "Correspondence of the array's indices to the process grid's indices.", + "category": "General", + "default": null, + "element_type": "int" + } + }, + "RedistrArray": { + "name": { + "metatype": "str", + "desc": "The redistribution's name.", + "category": "General", + "default": "" + }, + "array_a": { + "metatype": "str", + "desc": "Sub-array that will be redistributed.", + "category": "General", + "default": null + }, + "array_b": { + "metatype": "str", + "desc": "Output sub-array.", + "category": "General", + "default": null + } + }, + "LogicalGroup": { + "nodes": { + "metatype": "list", + "desc": "Nodes in this group given by [State, Node] id tuples", + "category": "General", + "default": [], + "element_type": "tuple" + }, + "states": { + "metatype": "list", + "desc": "States in this group given by their ids", + "category": "General", + "default": [], + "element_type": "int" + }, + "name": { + "metatype": "str", + "desc": "Logical group name", + "category": "General", + "default": "" + }, + "color": { + "metatype": "str", + "desc": "Color for the group, given as a hexadecimal string", + "category": "General", + "default": "" + } + }, + "InterstateEdge": { + "assignments": { + "metatype": "dict", + "desc": "Assignments to perform upon transition (e.g., 'x=x+1; y = 0')", + "category": "General", + "default": {} + }, + "condition": { + "metatype": "CodeBlock", + "desc": "Transition condition", + "category": "General", + "default": { + "string_data": "1", + "language": "Python" + } + } + }, + "SDFG": { + "arg_names": { + "metatype": "list", + "desc": "Ordered argument names (used for calling conventions).", + "category": "General", + "default": [], + "element_type": "str" + }, + "constants_prop": { + "metatype": "dict", + "desc": "Compile-time constants", + "category": "General", + "default": {} + }, + "_arrays": { + "metatype": "dict", + "desc": "Data descriptors for this SDFG", + "category": "General", + "default": {} + }, + "symbols": { + "metatype": "dict", + "desc": "Global symbols for this SDFG", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + }, + "instrument": { + "metatype": "InstrumentationType", + "desc": "Measure execution statistics with given method", + "category": "General", + "default": "No_Instrumentation", + "choices": [ + "No_Instrumentation", + "Timer", + "PAPI_Counters", + "GPU_Events", + "FPGA" + ] + }, + "global_code": { + "metatype": "dict", + "desc": "Code generated in a global scope on the output files.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "CodeBlock" + }, + "init_code": { + "metatype": "dict", + "desc": "Code generated in the `__dace_init` function.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "CodeBlock" + }, + "exit_code": { + "metatype": "dict", + "desc": "Code generated in the `__dace_exit` function.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "CodeBlock" + }, + "orig_sdfg": { + "metatype": "OptionalSDFGReferenceProperty", + "desc": "", + "category": "General", + "default": null + }, + "transformation_hist": { + "metatype": "list", + "desc": "", + "category": "General", + "default": [] + }, + "logical_groups": { + "metatype": "list", + "desc": "Logical groupings of nodes and edges", + "category": "General", + "default": [], + "element_type": "LogicalGroup" + }, + "openmp_sections": { + "metatype": "bool", + "desc": "Whether to generate OpenMP sections in code", + "category": "General", + "default": true + }, + "debuginfo": { + "metatype": "DebugInfo", + "desc": "", + "category": "General", + "default": { + "type": "DebugInfo", + "start_line": 0, + "end_line": 0, + "start_column": 0, + "end_column": 0, + "filename": null + } + }, + "_pgrids": { + "metatype": "dict", + "desc": "Process-grid descriptors for this SDFG", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "ProcessGrid" + }, + "_subarrays": { + "metatype": "dict", + "desc": "Sub-array descriptors for this SDFG", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "SubArray" + }, + "_rdistrarrays": { + "metatype": "dict", + "desc": "Sub-array redistribution descriptors for this SDFG", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "RedistrArray" + }, + "callback_mapping": { + "metatype": "dict", + "desc": "Mapping between callback name and its original callback (for when the same callback is used with a different signature)", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "str" + } + }, + "PatternTransformation": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "SingleStateTransformation": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "MultiStateTransformation": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "ExpandTransformation": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "SubgraphTransformation": { + "sdfg_id": { + "metatype": "int", + "desc": "ID of SDFG to transform", + "category": "General", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "ID of state to transform subgraph within, or -1 to transform the SDFG", + "category": "General", + "default": 0 + }, + "subgraph": { + "metatype": "set", + "desc": "Subgraph in transformation instance", + "category": "General", + "default": [] + } + }, + "SpecializeMatMul": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "dace.libraries.blas.nodes.matmul.MatMul": { + "name": { + "metatype": "str", + "desc": "Name of node", + "category": "General", + "default": "" + }, + "implementation": { + "metatype": "LibraryImplementationProperty", + "desc": "Which implementation this library node will expand into.Must match a key in the list of possible implementations.", + "category": "General", + "default": null, + "choices": [ + "specialize" + ] + }, + "schedule": { + "metatype": "ScheduleType", + "desc": "If set, determines the default device mapping of the node upon expansion, if expanded to a nested SDFG.", + "category": "General", + "default": "Default", + "choices": [ + "Default", + "Sequential", + "MPI", + "CPU_Multicore", + "Unrolled", + "SVE_Map", + "GPU_Default", + "GPU_Device", + "GPU_ThreadBlock", + "GPU_ThreadBlock_Dynamic", + "GPU_Persistent", + "FPGA_Device", + "Snitch", + "Snitch_Multicore" + ] + }, + "debuginfo": { + "metatype": "DebugInfo", + "desc": "", + "category": "General", + "default": { + "type": "DebugInfo", + "start_line": 0, + "end_line": 0, + "start_column": 0, + "end_column": 0, + "filename": null + } + }, + "label": { + "metatype": "str", + "desc": "Name of the CodeNode", + "category": "General", + "default": "" + }, + "location": { + "metatype": "dict", + "desc": "Full storage location identifier (e.g., rank, GPU ID)", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "pystr_to_symbolic" + }, + "environments": { + "metatype": "set", + "desc": "Environments required by CMake to build and run this code node.", + "category": "General", + "default": [] + }, + "in_connectors": { + "metatype": "dict", + "desc": "A set of input connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + }, + "out_connectors": { + "metatype": "dict", + "desc": "A set of output connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + } + }, + "OpenBLAS": {}, + "IntelMKL": {}, + "cuBLAS": {}, + "ExpandDotPure": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "ExpandDotOpenBLAS": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "ExpandDotMKL": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "ExpandDotCuBLAS": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "ExpandDotFpgaPartialSums": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "ExpandDotFpgaAccumulate": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "dace.libraries.blas.nodes.dot.Dot": { + "n": { + "metatype": "SymbolicProperty", + "desc": "", + "category": "General", + "default": null + }, + "accumulator_type": { + "metatype": "typeclass", + "desc": "Accumulator or intermediate storage type", + "category": "General", + "default": null, + "base_types": [ + "bool", + "bool_", + "int8", + "int16", + "int32", + "int64", + "uint8", + "uint16", + "uint32", + "uint64", + "float16", + "float32", + "float64", + "complex64", + "complex128" + ], + "compound_types": { + "vector": { + "elements": { + "type": "str", + "default": "0" + }, + "dtype": { + "type": "typeclass", + "default": "bool" + } + }, + "pointer": { + "dtype": { + "type": "typeclass", + "default": "bool" + } + }, + "opaque": { + "ctype": { + "type": "str", + "default": "" + } + }, + "struct": { + "name": { + "type": "str", + "default": "" + }, + "data": { + "type": "dict", + "default": {}, + "value_type": "typeclass" + }, + "length": { + "type": "dict", + "default": {}, + "value_type": "int" + }, + "bytes": { + "type": "int", + "default": 0 + } + }, + "callback": { + "arguments": { + "type": "list", + "element_type": "typeclass", + "default": [] + }, + "returntypes": { + "type": "list", + "element_type": "typeclass", + "default": [] + } + } + } + }, + "name": { + "metatype": "str", + "desc": "Name of node", + "category": "General", + "default": "" + }, + "implementation": { + "metatype": "LibraryImplementationProperty", + "desc": "Which implementation this library node will expand into.Must match a key in the list of possible implementations.", + "category": "General", + "default": null, + "choices": [ + "pure", + "OpenBLAS", + "MKL", + "cuBLAS", + "FPGA_PartialSums", + "FPGA_Accumulate" + ] + }, + "schedule": { + "metatype": "ScheduleType", + "desc": "If set, determines the default device mapping of the node upon expansion, if expanded to a nested SDFG.", + "category": "General", + "default": "Default", + "choices": [ + "Default", + "Sequential", + "MPI", + "CPU_Multicore", + "Unrolled", + "SVE_Map", + "GPU_Default", + "GPU_Device", + "GPU_ThreadBlock", + "GPU_ThreadBlock_Dynamic", + "GPU_Persistent", + "FPGA_Device", + "Snitch", + "Snitch_Multicore" + ] + }, + "debuginfo": { + "metatype": "DebugInfo", + "desc": "", + "category": "General", + "default": { + "type": "DebugInfo", + "start_line": 0, + "end_line": 0, + "start_column": 0, + "end_column": 0, + "filename": null + } + }, + "label": { + "metatype": "str", + "desc": "Name of the CodeNode", + "category": "General", + "default": "" + }, + "location": { + "metatype": "dict", + "desc": "Full storage location identifier (e.g., rank, GPU ID)", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "pystr_to_symbolic" + }, + "environments": { + "metatype": "set", + "desc": "Environments required by CMake to build and run this code node.", + "category": "General", + "default": [] + }, + "in_connectors": { + "metatype": "dict", + "desc": "A set of input connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + }, + "out_connectors": { + "metatype": "dict", + "desc": "A set of output connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + } + }, + "ExpandGemvPure": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "ExpandGemvFpgaAccumulate": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "ExpandGemvFpgaTilesByColumn": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "ExpandGemvCuBLAS": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "ExpandGemvOpenBLAS": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "ExpandGemvMKL": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "ExpandGemvPBLAS": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "dace.libraries.blas.nodes.gemv.Gemv": { + "alpha": { + "metatype": "SymbolicProperty", + "desc": "", + "category": "General", + "default": 1 + }, + "beta": { + "metatype": "SymbolicProperty", + "desc": "", + "category": "General", + "default": 0 + }, + "transA": { + "metatype": "bool", + "desc": "Whether to transpose A before multiplying", + "category": "General", + "default": false + }, + "n": { + "metatype": "SymbolicProperty", + "desc": "", + "category": "General", + "default": null + }, + "m": { + "metatype": "SymbolicProperty", + "desc": "", + "category": "General", + "default": null + }, + "name": { + "metatype": "str", + "desc": "Name of node", + "category": "General", + "default": "" + }, + "implementation": { + "metatype": "LibraryImplementationProperty", + "desc": "Which implementation this library node will expand into.Must match a key in the list of possible implementations.", + "category": "General", + "default": null, + "choices": [ + "pure", + "OpenBLAS", + "MKL", + "cuBLAS", + "FPGA_Accumulate", + "FPGA_TilesByColumn", + "PBLAS" + ] + }, + "schedule": { + "metatype": "ScheduleType", + "desc": "If set, determines the default device mapping of the node upon expansion, if expanded to a nested SDFG.", + "category": "General", + "default": "Default", + "choices": [ + "Default", + "Sequential", + "MPI", + "CPU_Multicore", + "Unrolled", + "SVE_Map", + "GPU_Default", + "GPU_Device", + "GPU_ThreadBlock", + "GPU_ThreadBlock_Dynamic", + "GPU_Persistent", + "FPGA_Device", + "Snitch", + "Snitch_Multicore" + ] + }, + "debuginfo": { + "metatype": "DebugInfo", + "desc": "", + "category": "General", + "default": { + "type": "DebugInfo", + "start_line": 0, + "end_line": 0, + "start_column": 0, + "end_column": 0, + "filename": null + } + }, + "label": { + "metatype": "str", + "desc": "Name of the CodeNode", + "category": "General", + "default": "" + }, + "location": { + "metatype": "dict", + "desc": "Full storage location identifier (e.g., rank, GPU ID)", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "pystr_to_symbolic" + }, + "environments": { + "metatype": "set", + "desc": "Environments required by CMake to build and run this code node.", + "category": "General", + "default": [] + }, + "in_connectors": { + "metatype": "dict", + "desc": "A set of input connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + }, + "out_connectors": { + "metatype": "dict", + "desc": "A set of output connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + } + }, + "ExpandGemmPure": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "ExpandGemmOpenBLAS": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "ExpandGemmMKL": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "ExpandGemmCuBLAS": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "ExpandGemmPBLAS": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "dace.libraries.blas.nodes.gemm.Gemm": { + "transA": { + "metatype": "bool", + "desc": "Whether to transpose A before multiplying", + "category": "General", + "default": false + }, + "transB": { + "metatype": "bool", + "desc": "Whether to transpose B before multiplying", + "category": "General", + "default": false + }, + "alpha": { + "metatype": "Property", + "desc": "A scalar which will be multiplied with A @ B before adding C", + "category": "General", + "default": 1 + }, + "beta": { + "metatype": "Property", + "desc": "A scalar which will be multiplied with C before adding C", + "category": "General", + "default": 0 + }, + "cin": { + "metatype": "bool", + "desc": "Whether to have a _cin connector when beta != 0", + "category": "General", + "default": true + }, + "algorithm": { + "metatype": "str", + "desc": "If applicable, chooses the vendor-provided implementation (algorithm) for the multiplication", + "category": "General", + "default": null + }, + "accumulator_type": { + "metatype": "typeclass", + "desc": "Accumulator or intermediate storage type used in multiplication", + "category": "General", + "default": null, + "base_types": [ + "bool", + "bool_", + "int8", + "int16", + "int32", + "int64", + "uint8", + "uint16", + "uint32", + "uint64", + "float16", + "float32", + "float64", + "complex64", + "complex128" + ], + "compound_types": { + "vector": { + "elements": { + "type": "str", + "default": "0" + }, + "dtype": { + "type": "typeclass", + "default": "bool" + } + }, + "pointer": { + "dtype": { + "type": "typeclass", + "default": "bool" + } + }, + "opaque": { + "ctype": { + "type": "str", + "default": "" + } + }, + "struct": { + "name": { + "type": "str", + "default": "" + }, + "data": { + "type": "dict", + "default": {}, + "value_type": "typeclass" + }, + "length": { + "type": "dict", + "default": {}, + "value_type": "int" + }, + "bytes": { + "type": "int", + "default": 0 + } + }, + "callback": { + "arguments": { + "type": "list", + "element_type": "typeclass", + "default": [] + }, + "returntypes": { + "type": "list", + "element_type": "typeclass", + "default": [] + } + } + } + }, + "compute_type": { + "metatype": "str", + "desc": "If applicable, overrides computation type (CUBLAS-specific, see ``cublasComputeType_t``)", + "category": "General", + "default": null + }, + "name": { + "metatype": "str", + "desc": "Name of node", + "category": "General", + "default": "" + }, + "implementation": { + "metatype": "LibraryImplementationProperty", + "desc": "Which implementation this library node will expand into.Must match a key in the list of possible implementations.", + "category": "General", + "default": null, + "choices": [ + "pure", + "MKL", + "OpenBLAS", + "cuBLAS", + "PBLAS", + "FPGA1DSystolic" + ] + }, + "schedule": { + "metatype": "ScheduleType", + "desc": "If set, determines the default device mapping of the node upon expansion, if expanded to a nested SDFG.", + "category": "General", + "default": "Default", + "choices": [ + "Default", + "Sequential", + "MPI", + "CPU_Multicore", + "Unrolled", + "SVE_Map", + "GPU_Default", + "GPU_Device", + "GPU_ThreadBlock", + "GPU_ThreadBlock_Dynamic", + "GPU_Persistent", + "FPGA_Device", + "Snitch", + "Snitch_Multicore" + ] + }, + "debuginfo": { + "metatype": "DebugInfo", + "desc": "", + "category": "General", + "default": { + "type": "DebugInfo", + "start_line": 0, + "end_line": 0, + "start_column": 0, + "end_column": 0, + "filename": null + } + }, + "label": { + "metatype": "str", + "desc": "Name of the CodeNode", + "category": "General", + "default": "" + }, + "location": { + "metatype": "dict", + "desc": "Full storage location identifier (e.g., rank, GPU ID)", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "pystr_to_symbolic" + }, + "environments": { + "metatype": "set", + "desc": "Environments required by CMake to build and run this code node.", + "category": "General", + "default": [] + }, + "in_connectors": { + "metatype": "dict", + "desc": "A set of input connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + }, + "out_connectors": { + "metatype": "dict", + "desc": "A set of output connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + } + }, + "ExpandGerPure": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "ExpandGerFpga": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "dace.libraries.blas.nodes.ger.Ger": { + "n_tile_size": { + "metatype": "SymbolicProperty", + "desc": "", + "category": "General", + "default": 1 + }, + "m_tile_size": { + "metatype": "SymbolicProperty", + "desc": "", + "category": "General", + "default": 1 + }, + "n": { + "metatype": "SymbolicProperty", + "desc": "", + "category": "General", + "default": "n" + }, + "m": { + "metatype": "SymbolicProperty", + "desc": "", + "category": "General", + "default": "m" + }, + "alpha": { + "metatype": "SymbolicProperty", + "desc": "A scalar which will be multiplied with the outer product x*yT before adding matrix A", + "category": "General", + "default": 1 + }, + "name": { + "metatype": "str", + "desc": "Name of node", + "category": "General", + "default": "" + }, + "implementation": { + "metatype": "LibraryImplementationProperty", + "desc": "Which implementation this library node will expand into.Must match a key in the list of possible implementations.", + "category": "General", + "default": null, + "choices": [ + "pure", + "FPGA" + ] + }, + "schedule": { + "metatype": "ScheduleType", + "desc": "If set, determines the default device mapping of the node upon expansion, if expanded to a nested SDFG.", + "category": "General", + "default": "Default", + "choices": [ + "Default", + "Sequential", + "MPI", + "CPU_Multicore", + "Unrolled", + "SVE_Map", + "GPU_Default", + "GPU_Device", + "GPU_ThreadBlock", + "GPU_ThreadBlock_Dynamic", + "GPU_Persistent", + "FPGA_Device", + "Snitch", + "Snitch_Multicore" + ] + }, + "debuginfo": { + "metatype": "DebugInfo", + "desc": "", + "category": "General", + "default": { + "type": "DebugInfo", + "start_line": 0, + "end_line": 0, + "start_column": 0, + "end_column": 0, + "filename": null + } + }, + "label": { + "metatype": "str", + "desc": "Name of the CodeNode", + "category": "General", + "default": "" + }, + "location": { + "metatype": "dict", + "desc": "Full storage location identifier (e.g., rank, GPU ID)", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "pystr_to_symbolic" + }, + "environments": { + "metatype": "set", + "desc": "Environments required by CMake to build and run this code node.", + "category": "General", + "default": [] + }, + "in_connectors": { + "metatype": "dict", + "desc": "A set of input connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + }, + "out_connectors": { + "metatype": "dict", + "desc": "A set of output connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + } + }, + "ExpandBatchedMatMulPure": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "ExpandBatchedMatMulMKL": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "ExpandBatchedMatMulOpenBLAS": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "ExpandBatchedMatMulCuBLAS": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "dace.libraries.blas.nodes.batched_matmul.BatchedMatMul": { + "transA": { + "metatype": "bool", + "desc": "Whether to transpose A before multiplying", + "category": "General", + "default": false + }, + "transB": { + "metatype": "bool", + "desc": "Whether to transpose B before multiplying", + "category": "General", + "default": false + }, + "alpha": { + "metatype": "Property", + "desc": "A scalar which will be multiplied with A @ B before adding C", + "category": "General", + "default": 1 + }, + "beta": { + "metatype": "Property", + "desc": "A scalar which will be multiplied with C before adding C", + "category": "General", + "default": 0 + }, + "algorithm": { + "metatype": "str", + "desc": "If applicable, chooses the vendor-provided implementation (algorithm) for the multiplication", + "category": "General", + "default": null + }, + "accumulator_type": { + "metatype": "typeclass", + "desc": "Accumulator or intermediate storage type used in multiplication", + "category": "General", + "default": null, + "base_types": [ + "bool", + "bool_", + "int8", + "int16", + "int32", + "int64", + "uint8", + "uint16", + "uint32", + "uint64", + "float16", + "float32", + "float64", + "complex64", + "complex128" + ], + "compound_types": { + "vector": { + "elements": { + "type": "str", + "default": "0" + }, + "dtype": { + "type": "typeclass", + "default": "bool" + } + }, + "pointer": { + "dtype": { + "type": "typeclass", + "default": "bool" + } + }, + "opaque": { + "ctype": { + "type": "str", + "default": "" + } + }, + "struct": { + "name": { + "type": "str", + "default": "" + }, + "data": { + "type": "dict", + "default": {}, + "value_type": "typeclass" + }, + "length": { + "type": "dict", + "default": {}, + "value_type": "int" + }, + "bytes": { + "type": "int", + "default": 0 + } + }, + "callback": { + "arguments": { + "type": "list", + "element_type": "typeclass", + "default": [] + }, + "returntypes": { + "type": "list", + "element_type": "typeclass", + "default": [] + } + } + } + }, + "compute_type": { + "metatype": "str", + "desc": "If applicable, overrides computation type (CUBLAS-specific, see ``cublasComputeType_t``)", + "category": "General", + "default": null + }, + "name": { + "metatype": "str", + "desc": "Name of node", + "category": "General", + "default": "" + }, + "implementation": { + "metatype": "LibraryImplementationProperty", + "desc": "Which implementation this library node will expand into.Must match a key in the list of possible implementations.", + "category": "General", + "default": null, + "choices": [ + "pure", + "MKL", + "OpenBLAS", + "cuBLAS" + ] + }, + "schedule": { + "metatype": "ScheduleType", + "desc": "If set, determines the default device mapping of the node upon expansion, if expanded to a nested SDFG.", + "category": "General", + "default": "Default", + "choices": [ + "Default", + "Sequential", + "MPI", + "CPU_Multicore", + "Unrolled", + "SVE_Map", + "GPU_Default", + "GPU_Device", + "GPU_ThreadBlock", + "GPU_ThreadBlock_Dynamic", + "GPU_Persistent", + "FPGA_Device", + "Snitch", + "Snitch_Multicore" + ] + }, + "debuginfo": { + "metatype": "DebugInfo", + "desc": "", + "category": "General", + "default": { + "type": "DebugInfo", + "start_line": 0, + "end_line": 0, + "start_column": 0, + "end_column": 0, + "filename": null + } + }, + "label": { + "metatype": "str", + "desc": "Name of the CodeNode", + "category": "General", + "default": "" + }, + "location": { + "metatype": "dict", + "desc": "Full storage location identifier (e.g., rank, GPU ID)", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "pystr_to_symbolic" + }, + "environments": { + "metatype": "set", + "desc": "Environments required by CMake to build and run this code node.", + "category": "General", + "default": [] + }, + "in_connectors": { + "metatype": "dict", + "desc": "A set of input connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + }, + "out_connectors": { + "metatype": "dict", + "desc": "A set of output connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + } + }, + "ExpandTransposePure": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "ExpandTransposeMKL": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "ExpandTransposeOpenBLAS": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "ExpandTransposeCuBLAS": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "dace.libraries.blas.nodes.transpose.Transpose": { + "dtype": { + "metatype": "typeclass", + "desc": "", + "category": "General", + "default": null + }, + "name": { + "metatype": "str", + "desc": "Name of node", + "category": "General", + "default": "" + }, + "implementation": { + "metatype": "LibraryImplementationProperty", + "desc": "Which implementation this library node will expand into.Must match a key in the list of possible implementations.", + "category": "General", + "default": null, + "choices": [ + "pure", + "MKL", + "OpenBLAS", + "cuBLAS" + ] + }, + "schedule": { + "metatype": "ScheduleType", + "desc": "If set, determines the default device mapping of the node upon expansion, if expanded to a nested SDFG.", + "category": "General", + "default": "Default", + "choices": [ + "Default", + "Sequential", + "MPI", + "CPU_Multicore", + "Unrolled", + "SVE_Map", + "GPU_Default", + "GPU_Device", + "GPU_ThreadBlock", + "GPU_ThreadBlock_Dynamic", + "GPU_Persistent", + "FPGA_Device", + "Snitch", + "Snitch_Multicore" + ] + }, + "debuginfo": { + "metatype": "DebugInfo", + "desc": "", + "category": "General", + "default": { + "type": "DebugInfo", + "start_line": 0, + "end_line": 0, + "start_column": 0, + "end_column": 0, + "filename": null + } + }, + "label": { + "metatype": "str", + "desc": "Name of the CodeNode", + "category": "General", + "default": "" + }, + "location": { + "metatype": "dict", + "desc": "Full storage location identifier (e.g., rank, GPU ID)", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "pystr_to_symbolic" + }, + "environments": { + "metatype": "set", + "desc": "Environments required by CMake to build and run this code node.", + "category": "General", + "default": [] + }, + "in_connectors": { + "metatype": "dict", + "desc": "A set of input connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + }, + "out_connectors": { + "metatype": "dict", + "desc": "A set of output connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + } + }, + "ExpandAxpyVectorized": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "ExpandAxpyFpga": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "dace.libraries.blas.nodes.axpy.Axpy": { + "a": { + "metatype": "SymbolicProperty", + "desc": "", + "category": "General", + "default": "a" + }, + "n": { + "metatype": "SymbolicProperty", + "desc": "", + "category": "General", + "default": "n" + }, + "name": { + "metatype": "str", + "desc": "Name of node", + "category": "General", + "default": "" + }, + "implementation": { + "metatype": "LibraryImplementationProperty", + "desc": "Which implementation this library node will expand into.Must match a key in the list of possible implementations.", + "category": "General", + "default": null, + "choices": [ + "pure", + "fpga" + ] + }, + "schedule": { + "metatype": "ScheduleType", + "desc": "If set, determines the default device mapping of the node upon expansion, if expanded to a nested SDFG.", + "category": "General", + "default": "Default", + "choices": [ + "Default", + "Sequential", + "MPI", + "CPU_Multicore", + "Unrolled", + "SVE_Map", + "GPU_Default", + "GPU_Device", + "GPU_ThreadBlock", + "GPU_ThreadBlock_Dynamic", + "GPU_Persistent", + "FPGA_Device", + "Snitch", + "Snitch_Multicore" + ] + }, + "debuginfo": { + "metatype": "DebugInfo", + "desc": "", + "category": "General", + "default": { + "type": "DebugInfo", + "start_line": 0, + "end_line": 0, + "start_column": 0, + "end_column": 0, + "filename": null + } + }, + "label": { + "metatype": "str", + "desc": "Name of the CodeNode", + "category": "General", + "default": "" + }, + "location": { + "metatype": "dict", + "desc": "Full storage location identifier (e.g., rank, GPU ID)", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "pystr_to_symbolic" + }, + "environments": { + "metatype": "set", + "desc": "Environments required by CMake to build and run this code node.", + "category": "General", + "default": [] + }, + "in_connectors": { + "metatype": "dict", + "desc": "A set of input connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + }, + "out_connectors": { + "metatype": "dict", + "desc": "A set of output connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + } + }, + "dace.libraries.standard.nodes.code.CodeLibraryNode": { + "inputdict": { + "metatype": "dict", + "desc": "", + "category": "General", + "default": {} + }, + "outputdict": { + "metatype": "dict", + "desc": "", + "category": "General", + "default": {} + }, + "name": { + "metatype": "str", + "desc": "Name of node", + "category": "General", + "default": "" + }, + "implementation": { + "metatype": "LibraryImplementationProperty", + "desc": "Which implementation this library node will expand into.Must match a key in the list of possible implementations.", + "category": "General", + "default": null, + "choices": [ + "default" + ] + }, + "schedule": { + "metatype": "ScheduleType", + "desc": "If set, determines the default device mapping of the node upon expansion, if expanded to a nested SDFG.", + "category": "General", + "default": "Default", + "choices": [ + "Default", + "Sequential", + "MPI", + "CPU_Multicore", + "Unrolled", + "SVE_Map", + "GPU_Default", + "GPU_Device", + "GPU_ThreadBlock", + "GPU_ThreadBlock_Dynamic", + "GPU_Persistent", + "FPGA_Device", + "Snitch", + "Snitch_Multicore" + ] + }, + "debuginfo": { + "metatype": "DebugInfo", + "desc": "", + "category": "General", + "default": { + "type": "DebugInfo", + "start_line": 0, + "end_line": 0, + "start_column": 0, + "end_column": 0, + "filename": null + } + }, + "label": { + "metatype": "str", + "desc": "Name of the CodeNode", + "category": "General", + "default": "" + }, + "location": { + "metatype": "dict", + "desc": "Full storage location identifier (e.g., rank, GPU ID)", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "pystr_to_symbolic" + }, + "environments": { + "metatype": "set", + "desc": "Environments required by CMake to build and run this code node.", + "category": "General", + "default": [] + }, + "in_connectors": { + "metatype": "dict", + "desc": "A set of input connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + }, + "out_connectors": { + "metatype": "dict", + "desc": "A set of output connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + } + }, + "Expansion": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "ExpandGearbox": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "dace.libraries.standard.nodes.gearbox.Gearbox": { + "size": { + "metatype": "SymbolicProperty", + "desc": "Number of wide vectors to convert to/from narrow vectors.", + "category": "General", + "default": 0 + }, + "name": { + "metatype": "str", + "desc": "Name of node", + "category": "General", + "default": "" + }, + "implementation": { + "metatype": "LibraryImplementationProperty", + "desc": "Which implementation this library node will expand into.Must match a key in the list of possible implementations.", + "category": "General", + "default": null, + "choices": [ + "pure" + ] + }, + "schedule": { + "metatype": "ScheduleType", + "desc": "If set, determines the default device mapping of the node upon expansion, if expanded to a nested SDFG.", + "category": "General", + "default": "Default", + "choices": [ + "Default", + "Sequential", + "MPI", + "CPU_Multicore", + "Unrolled", + "SVE_Map", + "GPU_Default", + "GPU_Device", + "GPU_ThreadBlock", + "GPU_ThreadBlock_Dynamic", + "GPU_Persistent", + "FPGA_Device", + "Snitch", + "Snitch_Multicore" + ] + }, + "debuginfo": { + "metatype": "DebugInfo", + "desc": "", + "category": "General", + "default": { + "type": "DebugInfo", + "start_line": 0, + "end_line": 0, + "start_column": 0, + "end_column": 0, + "filename": null + } + }, + "label": { + "metatype": "str", + "desc": "Name of the CodeNode", + "category": "General", + "default": "" + }, + "location": { + "metatype": "dict", + "desc": "Full storage location identifier (e.g., rank, GPU ID)", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "pystr_to_symbolic" + }, + "environments": { + "metatype": "set", + "desc": "Environments required by CMake to build and run this code node.", + "category": "General", + "default": [] + }, + "in_connectors": { + "metatype": "dict", + "desc": "A set of input connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + }, + "out_connectors": { + "metatype": "dict", + "desc": "A set of output connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + } + }, + "CUDA": {}, + "ExpandReducePure": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "ExpandReducePureSequentialDim": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "ExpandReduceOpenMP": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "ExpandReduceCUDADevice": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "ExpandReduceCUDABlock": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "ExpandReduceCUDABlockAll": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "ExpandReduceFPGAPartialReduction": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "dace.libraries.standard.nodes.reduce.Reduce": { + "axes": { + "metatype": "list", + "desc": "", + "category": "General", + "default": null, + "element_type": "int" + }, + "wcr": { + "metatype": "LambdaProperty", + "desc": "", + "category": "General", + "default": "(lambda a, b: a)" + }, + "identity": { + "metatype": "Property", + "desc": "", + "category": "General", + "default": null + }, + "name": { + "metatype": "str", + "desc": "Name of node", + "category": "General", + "default": "" + }, + "implementation": { + "metatype": "LibraryImplementationProperty", + "desc": "Which implementation this library node will expand into.Must match a key in the list of possible implementations.", + "category": "General", + "default": null, + "choices": [ + "pure", + "pure-seq", + "OpenMP", + "CUDA (device)", + "CUDA (block)", + "CUDA (block allreduce)", + "FPGAPartialReduction" + ] + }, + "schedule": { + "metatype": "ScheduleType", + "desc": "If set, determines the default device mapping of the node upon expansion, if expanded to a nested SDFG.", + "category": "General", + "default": "Default", + "choices": [ + "Default", + "Sequential", + "MPI", + "CPU_Multicore", + "Unrolled", + "SVE_Map", + "GPU_Default", + "GPU_Device", + "GPU_ThreadBlock", + "GPU_ThreadBlock_Dynamic", + "GPU_Persistent", + "FPGA_Device", + "Snitch", + "Snitch_Multicore" + ] + }, + "debuginfo": { + "metatype": "DebugInfo", + "desc": "", + "category": "General", + "default": { + "type": "DebugInfo", + "start_line": 0, + "end_line": 0, + "start_column": 0, + "end_column": 0, + "filename": null + } + }, + "label": { + "metatype": "str", + "desc": "Name of the CodeNode", + "category": "General", + "default": "" + }, + "location": { + "metatype": "dict", + "desc": "Full storage location identifier (e.g., rank, GPU ID)", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "pystr_to_symbolic" + }, + "environments": { + "metatype": "set", + "desc": "Environments required by CMake to build and run this code node.", + "category": "General", + "default": [] + }, + "in_connectors": { + "metatype": "dict", + "desc": "A set of input connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + }, + "out_connectors": { + "metatype": "dict", + "desc": "A set of output connectors for this node.", + "category": "General", + "default": {}, + "key_type": "str", + "value_type": "typeclass" + } + }, + "MapCollapse": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "MapReduceFusion": { + "no_init": { + "metatype": "bool", + "desc": "If enabled, does not create initialization states for reduce nodes with identity", + "category": "General", + "default": false + }, + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "MapDimShuffle": { + "parameters": { + "metatype": "tuple", + "desc": "Desired order of map parameters", + "category": "General", + "default": [] + }, + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "TrivialMapElimination": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "TrivialMapRangeElimination": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "StripMining": { + "dim_idx": { + "metatype": "int", + "desc": "Index of dimension to be strip-mined", + "category": "General", + "default": -1 + }, + "new_dim_prefix": { + "metatype": "str", + "desc": "Prefix for new dimension name", + "category": "General", + "default": "tile" + }, + "tile_size": { + "metatype": "SymbolicProperty", + "desc": "Tile size of strip-mined dimension, or number of tiles if tiling_type=number_of_tiles", + "category": "General", + "default": 64 + }, + "tile_stride": { + "metatype": "SymbolicProperty", + "desc": "Stride between two tiles of the strip-mined dimension. If zero, it is set equal to the tile size.", + "category": "General", + "default": 0 + }, + "tile_offset": { + "metatype": "SymbolicProperty", + "desc": "Tile stride offset (negative)", + "category": "General", + "default": 0 + }, + "divides_evenly": { + "metatype": "bool", + "desc": "Tile size divides dimension range evenly?", + "category": "General", + "default": false + }, + "strided": { + "metatype": "bool", + "desc": "Continuous (false) or strided (true) elements in tile", + "category": "General", + "default": false + }, + "tiling_type": { + "metatype": "TilingType", + "desc": "normal: the outerloop increments with tile_size, ceilrange: uses ceiling(N/tile_size) in outer range, number_of_tiles: tiles the map into the number of provided tiles, provide the number of tiles over tile_size", + "category": "General", + "default": "Normal", + "choices": [ + "Normal", + "CeilRange", + "NumberOfTiles" + ] + }, + "skew": { + "metatype": "bool", + "desc": "If True, offsets inner tile back such that it starts with zero", + "category": "General", + "default": false + }, + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "MapTiling": { + "prefix": { + "metatype": "str", + "desc": "Prefix for new range symbols", + "category": "General", + "default": "tile" + }, + "tile_sizes": { + "metatype": "tuple", + "desc": "Tile size per dimension", + "category": "General", + "default": [ + "128", + "128", + "128" + ] + }, + "strides": { + "metatype": "tuple", + "desc": "Tile stride (enables overlapping tiles). If empty, matches tile", + "category": "General", + "default": [] + }, + "tile_offset": { + "metatype": "tuple", + "desc": "Negative Stride offset per dimension", + "category": "General", + "default": null + }, + "divides_evenly": { + "metatype": "bool", + "desc": "Tile size divides dimension length evenly", + "category": "General", + "default": false + }, + "tile_trivial": { + "metatype": "bool", + "desc": "Tiles even if tile_size is 1", + "category": "General", + "default": false + }, + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "MapTilingWithOverlap": { + "lower_overlap": { + "metatype": "tuple", + "desc": "Lower overlap per dimension", + "category": "General", + "default": [] + }, + "upper_overlap": { + "metatype": "tuple", + "desc": "Upper overlap per dimension", + "category": "General", + "default": [] + }, + "prefix": { + "metatype": "str", + "desc": "Prefix for new range symbols", + "category": "General", + "default": "tile" + }, + "tile_sizes": { + "metatype": "tuple", + "desc": "Tile size per dimension", + "category": "General", + "default": [ + "128", + "128", + "128" + ] + }, + "strides": { + "metatype": "tuple", + "desc": "Tile stride (enables overlapping tiles). If empty, matches tile", + "category": "General", + "default": [] + }, + "tile_offset": { + "metatype": "tuple", + "desc": "Negative Stride offset per dimension", + "category": "General", + "default": null + }, + "divides_evenly": { + "metatype": "bool", + "desc": "Tile size divides dimension length evenly", + "category": "General", + "default": false + }, + "tile_trivial": { + "metatype": "bool", + "desc": "Tiles even if tile_size is 1", + "category": "General", + "default": false + }, + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "BufferTiling": { + "tile_sizes": { + "metatype": "tuple", + "desc": "Tile size per dimension", + "category": "General", + "default": [ + "128", + "128", + "128" + ] + }, + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "Vectorization": { + "vector_len": { + "metatype": "int", + "desc": "Vector length", + "category": "General", + "default": 4 + }, + "propagate_parent": { + "metatype": "bool", + "desc": "Propagate vector length through parent SDFGs", + "category": "General", + "default": false + }, + "strided_map": { + "metatype": "bool", + "desc": "Use strided map range (jump by vector length) instead of modifying memlets", + "category": "General", + "default": true + }, + "preamble": { + "metatype": "bool", + "desc": "Force creation or skipping a preamble map without vectors", + "category": "General", + "default": null + }, + "postamble": { + "metatype": "bool", + "desc": "Force creation or skipping a postamble map without vectors", + "category": "General", + "default": null + }, + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "StreamTransient": { + "with_buffer": { + "metatype": "bool", + "desc": "Use an intermediate buffer for accumulation", + "category": "General", + "default": true + }, + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "AccumulateTransient": { + "array": { + "metatype": "str", + "desc": "Array to create local storage for (if empty, first available)", + "category": "General", + "default": null + }, + "identity": { + "metatype": "SymbolicProperty", + "desc": "Identity value to set", + "category": "General", + "default": null + }, + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "LocalStorage": { + "array": { + "metatype": "str", + "desc": "Array to create local storage for (if empty, first available)", + "category": "General", + "default": null + }, + "prefix": { + "metatype": "str", + "desc": "Prefix for new data node", + "category": "General", + "default": "trans_" + }, + "create_array": { + "metatype": "bool", + "desc": "if false, it does not create a new array.", + "category": "General", + "default": true + }, + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "InLocalStorage": { + "array": { + "metatype": "str", + "desc": "Array to create local storage for (if empty, first available)", + "category": "General", + "default": null + }, + "prefix": { + "metatype": "str", + "desc": "Prefix for new data node", + "category": "General", + "default": "trans_" + }, + "create_array": { + "metatype": "bool", + "desc": "if false, it does not create a new array.", + "category": "General", + "default": true + }, + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "OutLocalStorage": { + "array": { + "metatype": "str", + "desc": "Array to create local storage for (if empty, first available)", + "category": "General", + "default": null + }, + "prefix": { + "metatype": "str", + "desc": "Prefix for new data node", + "category": "General", + "default": "trans_" + }, + "create_array": { + "metatype": "bool", + "desc": "if false, it does not create a new array.", + "category": "General", + "default": true + }, + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "StreamingMemory": { + "buffer_size": { + "metatype": "int", + "desc": "Set buffer size for the newly-created stream", + "category": "General", + "default": 1 + }, + "storage": { + "metatype": "StorageType", + "desc": "Set storage type for the newly-created stream", + "category": "General", + "default": "Default", + "choices": [ + "Default", + "Register", + "CPU_Pinned", + "CPU_Heap", + "CPU_ThreadLocal", + "GPU_Global", + "GPU_Shared", + "FPGA_Global", + "FPGA_Local", + "FPGA_Registers", + "FPGA_ShiftRegister", + "SVE_Register", + "Snitch_TCDM", + "Snitch_L2", + "Snitch_SSR" + ] + }, + "use_memory_buffering": { + "metatype": "bool", + "desc": "Set if memory buffering should be used.", + "category": "General", + "default": false + }, + "memory_buffering_target_bytes": { + "metatype": "int", + "desc": "Set bytes read/written from memory if memory buffering is enabled.", + "category": "General", + "default": 64 + }, + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "StreamingComposition": { + "buffer_size": { + "metatype": "int", + "desc": "Set buffer size for the newly-created stream", + "category": "General", + "default": 1 + }, + "storage": { + "metatype": "StorageType", + "desc": "Set storage type for the newly-created stream", + "category": "General", + "default": "Default", + "choices": [ + "Default", + "Register", + "CPU_Pinned", + "CPU_Heap", + "CPU_ThreadLocal", + "GPU_Global", + "GPU_Shared", + "FPGA_Global", + "FPGA_Local", + "FPGA_Registers", + "FPGA_ShiftRegister", + "SVE_Register", + "Snitch_TCDM", + "Snitch_L2", + "Snitch_SSR" + ] + }, + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "ReduceExpansion": { + "debug": { + "metatype": "bool", + "desc": "Debug Info", + "category": "General", + "default": false + }, + "create_in_transient": { + "metatype": "bool", + "desc": "Create local in-transientin registers", + "category": "General", + "default": false + }, + "create_out_transient": { + "metatype": "bool", + "desc": "Create local out-transientin registers", + "category": "General", + "default": false + }, + "reduce_implementation": { + "metatype": "str", + "desc": "Reduce implementation of inner reduce. If specified,overrides any existing implementations", + "category": "General", + "default": null + }, + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "PruneConnectors": { + "remove_unused_containers": { + "metatype": "bool", + "desc": "If True, remove unused containers from parent SDFG.", + "category": "General", + "default": false + }, + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "TrivialTaskletElimination": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "CopyToDevice": { + "storage": { + "metatype": "StorageType", + "desc": "Nested SDFG storage", + "category": "General", + "default": "Default", + "choices": [ + "Default", + "Register", + "CPU_Pinned", + "CPU_Heap", + "CPU_ThreadLocal", + "GPU_Global", + "GPU_Shared", + "FPGA_Global", + "FPGA_Local", + "FPGA_Registers", + "FPGA_ShiftRegister", + "SVE_Register", + "Snitch_TCDM", + "Snitch_L2", + "Snitch_SSR" + ] + }, + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "GPUTransformMap": { + "fullcopy": { + "metatype": "bool", + "desc": "Copy whole arrays rather than used subset", + "category": "General", + "default": false + }, + "toplevel_trans": { + "metatype": "bool", + "desc": "Make all GPU transients top-level", + "category": "General", + "default": false + }, + "register_trans": { + "metatype": "bool", + "desc": "Make all transients inside GPU maps registers", + "category": "General", + "default": false + }, + "sequential_innermaps": { + "metatype": "bool", + "desc": "Make all internal maps Sequential", + "category": "General", + "default": false + }, + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "GPUTransformLocalStorage": { + "fullcopy": { + "metatype": "bool", + "desc": "Copy whole arrays rather than used subset", + "category": "General", + "default": false + }, + "nested_seq": { + "metatype": "bool", + "desc": "Makes nested code semantically-equivalent to single-core code,transforming nested maps and memory into sequential and local memory respectively.", + "category": "General", + "default": true + }, + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "MPITransformMap": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "WarpTiling": { + "warp_size": { + "metatype": "int", + "desc": "Hardware warp size", + "category": "General", + "default": 32 + }, + "replicate_maps": { + "metatype": "bool", + "desc": "Replicate tiled maps that lead to multiple other tiled maps", + "category": "General", + "default": true + }, + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "BankSplit": { + "split_array_info": { + "metatype": "Property", + "desc": "Describes how many times this array is split in each dimension, where the k-th number describes how many times dimension k is split. If the k-th number is 1 this means that the array is not split in the k-th dimension at all. If None, then the transform will split the first dimension exactly shape[0] times.", + "category": "General", + "default": null + }, + "default_to_storage": { + "metatype": "StorageType", + "desc": "The storage type of involved arrays will be set to the value of this property if they have Default storage type. ", + "category": "General", + "default": "CPU_Heap" + }, + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "MatrixProductTranspose": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "GPUPersistentKernel": { + "validate": { + "metatype": "bool", + "desc": "Validate the sdfg and the nested sdfg", + "category": "General", + "default": true + }, + "include_in_assignment": { + "metatype": "bool", + "desc": "Wether to include global variable assignments of the edge going into the kernel inside the kernel or have it happen on the outside. If the assignment is needed in the kernel, it needs to be included.", + "category": "General", + "default": true + }, + "kernel_prefix": { + "metatype": "str", + "desc": "Name of the kernel. If no value is given the kerenl will be refrenced as `kernel`, if a value is given the kernel will be named `_kernel`. This is useful if multiple kernels are created.", + "category": "General", + "default": "" + }, + "sdfg_id": { + "metatype": "int", + "desc": "ID of SDFG to transform", + "category": "General", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "ID of state to transform subgraph within, or -1 to transform the SDFG", + "category": "General", + "default": 0 + }, + "subgraph": { + "metatype": "set", + "desc": "Subgraph in transformation instance", + "category": "General", + "default": [] + } + }, + "MultiExpansion": { + "debug": { + "metatype": "bool", + "desc": "Debug Mode", + "category": "General", + "default": false + }, + "sequential_innermaps": { + "metatype": "bool", + "desc": "Make all inner maps that arecreated during expansion sequential", + "category": "General", + "default": false + }, + "check_contiguity": { + "metatype": "bool", + "desc": "Don't allow expansion if last (contiguous)dimension is partially split", + "category": "General", + "default": false + }, + "permutation_only": { + "metatype": "bool", + "desc": "Only allow permutations without inner splits", + "category": "General", + "default": false + }, + "allow_offset": { + "metatype": "bool", + "desc": "Offset ranges to zero", + "category": "General", + "default": true + }, + "sdfg_id": { + "metatype": "int", + "desc": "ID of SDFG to transform", + "category": "General", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "ID of state to transform subgraph within, or -1 to transform the SDFG", + "category": "General", + "default": 0 + }, + "subgraph": { + "metatype": "set", + "desc": "Subgraph in transformation instance", + "category": "General", + "default": [] + } + }, + "SubgraphFusion": { + "debug": { + "metatype": "bool", + "desc": "Show debug info", + "category": "General", + "default": false + }, + "transient_allocation": { + "metatype": "StorageType", + "desc": "Storage Location to push transients to that are fully contained within the subgraph.", + "category": "General", + "default": "Default", + "choices": [ + "Default", + "Register", + "CPU_Pinned", + "CPU_Heap", + "CPU_ThreadLocal", + "GPU_Global", + "GPU_Shared", + "FPGA_Global", + "FPGA_Local", + "FPGA_Registers", + "FPGA_ShiftRegister", + "SVE_Register", + "Snitch_TCDM", + "Snitch_L2", + "Snitch_SSR" + ] + }, + "schedule_innermaps": { + "metatype": "ScheduleType", + "desc": "Schedule of inner maps. If none, keeps schedule.", + "category": "General", + "default": null + }, + "consolidate": { + "metatype": "bool", + "desc": "Consolidate edges that enter and exit the fused map.", + "category": "General", + "default": false + }, + "propagate": { + "metatype": "bool", + "desc": "Propagate memlets of edges that enter and exit the fused map.Disable if this causes problems (e.g., if memlet propagation doesnot work correctly).", + "category": "General", + "default": true + }, + "disjoint_subsets": { + "metatype": "bool", + "desc": "Check for disjoint subsets in can_be_applied. If multipleaccess nodes pointing to the same data appear within a subgraphto be fused, this check confirms that their access sets areindependent per iteration space to avoid race conditions.", + "category": "General", + "default": true + }, + "keep_global": { + "metatype": "list", + "desc": "A list of array names to treat as non-transients and not compress", + "category": "General", + "default": [], + "element_type": "str" + }, + "sdfg_id": { + "metatype": "int", + "desc": "ID of SDFG to transform", + "category": "General", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "ID of state to transform subgraph within, or -1 to transform the SDFG", + "category": "General", + "default": 0 + }, + "subgraph": { + "metatype": "set", + "desc": "Subgraph in transformation instance", + "category": "General", + "default": [] + } + }, + "FPGATransformSDFG": { + "promote_global_trans": { + "metatype": "bool", + "desc": "If True, transient arrays that are fully internal are pulled out so that they can be allocated on the host.", + "category": "General", + "default": true + }, + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "GPUTransformSDFG": { + "toplevel_trans": { + "metatype": "bool", + "desc": "Make all GPU transients top-level", + "category": "General", + "default": true + }, + "register_trans": { + "metatype": "bool", + "desc": "Make all transients inside GPU maps registers", + "category": "General", + "default": true + }, + "sequential_innermaps": { + "metatype": "bool", + "desc": "Make all internal maps Sequential", + "category": "General", + "default": true + }, + "skip_scalar_tasklets": { + "metatype": "bool", + "desc": "If True, does not transform tasklets that manipulate (Default-stored) scalars", + "category": "General", + "default": true + }, + "simplify": { + "metatype": "bool", + "desc": "Reapply simplification after modifying graph", + "category": "General", + "default": true + }, + "exclude_copyin": { + "metatype": "str", + "desc": "Exclude these arrays from being copied into the device (comma-separated)", + "category": "General", + "default": "" + }, + "exclude_tasklets": { + "metatype": "str", + "desc": "Exclude these tasklets from being processed as CPU tasklets (comma-separated)", + "category": "General", + "default": "" + }, + "exclude_copyout": { + "metatype": "str", + "desc": "Exclude these arrays from being copied out of the device (comma-separated)", + "category": "General", + "default": "" + }, + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "InlineSDFG": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "InlineTransients": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "RefineNestedAccess": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "NestSDFG": { + "promote_global_trans": { + "metatype": "bool", + "desc": "Promotes transients to be allocated once", + "category": "General", + "default": false + }, + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "LoopUnroll": { + "count": { + "metatype": "int", + "desc": "Number of iterations to unroll, or zero for all iterations (loop must be constant-sized for 0)", + "category": "General", + "default": 0 + }, + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "LoopPeeling": { + "begin": { + "metatype": "bool", + "desc": "If True, peels loop from beginning (first `count` iterations), otherwise peels last `count` iterations.", + "category": "General", + "default": true + }, + "count": { + "metatype": "int", + "desc": "Number of iterations to unroll, or zero for all iterations (loop must be constant-sized for 0)", + "category": "General", + "default": 0 + }, + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "LoopToMap": { + "itervar": { + "metatype": "str", + "desc": "The name of the iteration variable (optional).", + "category": "General", + "default": null + }, + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "InlineMultistateSDFG": { + "sdfg_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + }, + "_subgraph": { + "metatype": "dict", + "desc": "", + "category": "(Debug)", + "default": {}, + "key_type": "int", + "value_type": "int" + }, + "expr_index": { + "metatype": "int", + "desc": "", + "category": "(Debug)", + "default": 0 + } + }, + "StencilTiling": { + "debug": { + "metatype": "bool", + "desc": "Debug mode", + "category": "General", + "default": false + }, + "prefix": { + "metatype": "str", + "desc": "Prefix for new inner tiled range symbols", + "category": "General", + "default": "stencil" + }, + "strides": { + "metatype": "tuple", + "desc": "Tile stride", + "category": "General", + "default": [ + "1" + ] + }, + "schedule": { + "metatype": "ScheduleType", + "desc": "Dace.Dtypes.ScheduleType of Inner Maps", + "category": "General", + "default": "Default" + }, + "unroll_loops": { + "metatype": "bool", + "desc": "Unroll Inner Loops if they have Size > 1", + "category": "General", + "default": false + }, + "sdfg_id": { + "metatype": "int", + "desc": "ID of SDFG to transform", + "category": "General", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "ID of state to transform subgraph within, or -1 to transform the SDFG", + "category": "General", + "default": 0 + }, + "subgraph": { + "metatype": "set", + "desc": "Subgraph in transformation instance", + "category": "General", + "default": [] + } + }, + "CompositeFusion": { + "debug": { + "metatype": "bool", + "desc": "Debug mode", + "category": "General", + "default": false + }, + "allow_expansion": { + "metatype": "bool", + "desc": "Allow MultiExpansion first", + "category": "General", + "default": true + }, + "allow_tiling": { + "metatype": "bool", + "desc": "Allow StencilTiling (after MultiExpansion)", + "category": "General", + "default": false + }, + "transient_allocation": { + "metatype": "StorageType", + "desc": "Storage Location to push transients to that are fully contained within the subgraph.", + "category": "General", + "default": "Default", + "choices": [ + "Default", + "Register", + "CPU_Pinned", + "CPU_Heap", + "CPU_ThreadLocal", + "GPU_Global", + "GPU_Shared", + "FPGA_Global", + "FPGA_Local", + "FPGA_Registers", + "FPGA_ShiftRegister", + "SVE_Register", + "Snitch_TCDM", + "Snitch_L2", + "Snitch_SSR" + ] + }, + "schedule_innermaps": { + "metatype": "ScheduleType", + "desc": "Schedule of inner fused maps", + "category": "General", + "default": null + }, + "stencil_unroll_loops": { + "metatype": "bool", + "desc": "Unroll inner stencil loops if they have size > 1", + "category": "General", + "default": false + }, + "stencil_strides": { + "metatype": "tuple", + "desc": "Stencil tile stride", + "category": "General", + "default": [ + "1" + ] + }, + "expansion_split": { + "metatype": "bool", + "desc": "Allow MultiExpansion to split up maps, if enabled", + "category": "General", + "default": true + }, + "sdfg_id": { + "metatype": "int", + "desc": "ID of SDFG to transform", + "category": "General", + "default": 0 + }, + "state_id": { + "metatype": "int", + "desc": "ID of state to transform subgraph within, or -1 to transform the SDFG", + "category": "General", + "default": 0 + }, + "subgraph": { + "metatype": "set", + "desc": "Subgraph in transformation instance", + "category": "General", + "default": [] + } + } +} \ No newline at end of file diff --git a/src/webclients/components/sdfv/renderer/vscode_renderer.ts b/src/webclients/components/sdfv/renderer/vscode_renderer.ts index ece041e..043bc99 100644 --- a/src/webclients/components/sdfv/renderer/vscode_renderer.ts +++ b/src/webclients/components/sdfv/renderer/vscode_renderer.ts @@ -10,9 +10,15 @@ import { get_uuid_graph_element, find_graph_element_by_uuid, SDFGElement, + set_positioning_info, + SDFGElementType, + JsonSDFGState, + memlet_tree_complete, } from '@spcl/sdfv/out'; import { createSingleUseModal, + findJsonSDFGElementByUUID, + findMaximumSdfgId, unGraphiphySdfg, vscodeWriteGraph, } from '../utils/helpers'; @@ -55,6 +61,20 @@ export class VSCodeRenderer extends SDFGRenderer { super.destroy(); } + public set_sdfg(new_sdfg: JsonSDFG, layout?: boolean | undefined): void { + super.set_sdfg(new_sdfg, layout); + + // TODO(later): This is a fix for broken memlet trees when the graph + // is changed / edited (including when the collapse state changes). + // This is only necessary because these type of events send changes to + // the underlying document, which in turn updates the webview with the + // same contents to ensure the two representations are kept in sync. + // This needs to be handled better, i.e. _without_ requiring this + // two-sided update, which causes slowdowns when the graph is edited. + this.all_memlet_trees_sdfg = memlet_tree_complete(this.sdfg); + this.update_fast_memlet_lookup(); + } + private constructor( sdfv: VSCodeSDFV, sdfg: JsonSDFG, @@ -103,22 +123,299 @@ export class VSCodeRenderer extends SDFGRenderer { ); } + public async localViewSelection(): Promise { + await super.localViewSelection(); + // Hide the info button so the local view controls cannot be disabled + // by accident. + $('#info-clear-btn').hide(); + } + + public exitLocalView(): void { + VSCodeSDFV.getInstance().refreshSdfg(); + } + public sendNewSdfgToVscode(): void { vscodeWriteGraph(this.sdfg); } public addNodeToGraph( - addType: string, parent: any, edgeA: any = undefined + addType: SDFGElementType, parentUUID: string, lib: string | null = null, + edgeStartUUID: string | null = null, + edgeStartConn: string | null = null, edgeDstConn: string | null = null ): void { - let g = this.sdfg; - unGraphiphySdfg(g); - vscode.postMessage({ - type: 'dace.insert_node', - sdfg: JSON.stringify(g), - addType: addType, - parent: parent, - edgeA: edgeA, - }); + const meta = VSCodeSDFV.getInstance().getMetaDict()[addType]; + + const rootSdfg = VSCodeRenderer.getInstance()?.get_sdfg(); + if (!rootSdfg) + return; + + let addRoot = undefined; + if (addType === SDFGElementType.Edge && edgeStartUUID) { + const [startElem, startElemSdfg] = + findJsonSDFGElementByUUID(rootSdfg, edgeStartUUID); + const [endElem, endElemSdfg] = + findJsonSDFGElementByUUID(rootSdfg, parentUUID); + let element = undefined; + if (startElemSdfg === endElemSdfg && startElem && + endElem && startElem.type === endElem.type) { + if (startElem.type === SDFGElementType.SDFGState) { + element = { + type: 'Edge', + src: (startElem as any).id.toString(), + dst: (endElem as any).id.toString(), + attributes: { + data: { + type: 'InterstateEdge', + attributes: {}, + label: '', + } + }, + }; + const iseMeta = + VSCodeSDFV.getInstance().getMetaDict()[ + 'InterstateEdge' + ]; + for (const key in iseMeta) { + const attrs: any = + element.attributes.data.attributes; + if (attrs[key] === undefined) { + const val = iseMeta[key]; + attrs[key] = val['default']; + } + } + addRoot = startElemSdfg; + } else { + const parentIdParts = parentUUID.split('/'); + const parentStateId = + parentIdParts[0] + '/' + parentIdParts[1]; + const [parentState, _] = findJsonSDFGElementByUUID( + rootSdfg, parentStateId + ); + if (parentState) { + element = { + type: 'MultiConnectorEdge', + src: (startElem as any).id.toString(), + dst: (endElem as any).id.toString(), + src_connector: edgeStartConn, + dst_connector: edgeDstConn, + attributes: { + data: { + type: 'Memlet', + attributes: {}, + } + }, + }; + const mceMeta = + VSCodeSDFV.getInstance().getMetaDict()['Memlet']; + for (const key in mceMeta) { + const attrs: any = + element.attributes.data.attributes; + if (attrs[key] === undefined) { + const val = mceMeta[key]; + attrs[key] = val['default']; + } + } + addRoot = parentState; + } + } + } else { + element = undefined; + } + + if (element && addRoot && addRoot.hasOwnProperty('edges')) { + (addRoot as any).edges.push(element); + this.add_position = null; + this.add_edge_start = null; + vscodeWriteGraph(rootSdfg); + } + } else { + const [parentElem, parentSdfg] = findJsonSDFGElementByUUID( + rootSdfg, parentUUID + ); + + let parent = parentElem as any; + if (parentElem === undefined) + parent = rootSdfg; + + if (parent && parent.hasOwnProperty('nodes')) { + let maxId = -1; + for (const el of parent.nodes) + maxId = Math.max(maxId, el.id); + let element: any = { + id: maxId + 1, + type: addType, + attributes: {}, + }; + let exitElem: any = undefined; + switch (addType) { + case SDFGElementType.SDFGState: + element.collapsed = false; + element.edges = []; + element.nodes = []; + element.scope_dict = {}; + element.label = 'New State'; + break; + case SDFGElementType.AccessNode: + { + const arrays = parentSdfg?.attributes?._arrays ? + Object.keys(parentSdfg.attributes._arrays) : []; + const data = arrays ? arrays[0].toString() : 'NULL'; + element.attributes.data = data; + element.label = data; + } + break; + case SDFGElementType.Tasklet: + element.label = 'New Tasklet'; + break; + case SDFGElementType.NestedSDFG: + { + const maxSdfgId = findMaximumSdfgId(rootSdfg); + const nSdfgState: JsonSDFGState = { + collapsed: false, + edges: [], + nodes: [], + scope_dict: {}, + label: 'New State', + id: 0, + attributes: {}, + type: SDFGElementType.SDFGState + }; + const stateMeta = + VSCodeSDFV.getInstance().getMetaDict()[ + SDFGElementType.SDFGState + ]; + for (const key in stateMeta) { + if (nSdfgState.attributes[key] === undefined) { + const val = stateMeta[key]; + nSdfgState.attributes[key] = val['default']; + } + } + const nSdfg: JsonSDFG = { + attributes: { + name: 'NewSDFG', + }, + nodes: [nSdfgState], + edges: [], + start_state: 0, + type: 'SDFG', + error: undefined, + sdfg_list_id: maxSdfgId + 1, + }; + const sdfgMeta = + VSCodeSDFV.getInstance().getMetaDict()['SDFG']; + for (const key in sdfgMeta) { + if (nSdfg.attributes[key] === undefined) { + const val = sdfgMeta[key]; + nSdfg.attributes[key] = val['default']; + } + } + element.label = 'New Nested SDFG'; + element.attributes.sdfg = nSdfg; + } + break; + case SDFGElementType.MapEntry: + { + element.label = 'New Map'; + element.scope_entry = null; + element.scope_exit = element.id + 1; + exitElem = { + attributes: {}, + id: element.id + 1, + label: element.label, + type: SDFGElementType.MapExit, + scope_entry: element.id, + scope_exit: element.id + 1, + }; + const exitMeta = + VSCodeSDFV.getInstance().getMetaDict()[ + 'MapExit' + ]; + for (const key in exitMeta) { + if (exitElem.attributes[key] === undefined) { + const val = exitMeta[key]; + exitElem.attributes[key] = val['default']; + } + } + } + break; + case SDFGElementType.ConsumeEntry: + { + element.label = 'New Consume'; + element.scope_entry = null; + element.scope_exit = element.id + 1; + exitElem = { + attributes: {}, + id: element.id + 1, + label: element.label, + type: SDFGElementType.ConsumeExit, + scope_entry: element.id, + scope_exit: element.id + 1, + }; + const exitMeta = + VSCodeSDFV.getInstance().getMetaDict()[ + 'ConsumeExit' + ]; + for (const key in exitMeta) { + if (exitElem.attributes[key] === undefined) { + const val = exitMeta[key]; + exitElem.attributes[key] = val['default']; + } + } + } + break; + case SDFGElementType.LibraryNode: + if (lib) { + const libParts = lib.split('.'); + const libName = libParts[libParts.length - 1]; + element.label = libName; + element.classpath = lib; + } else { + element = undefined; + } + break; + default: + element = undefined; + break; + } + + if (element && parent?.nodes !== undefined) { + for (const key in meta) { + if (element.attributes[key] === undefined) { + const val = meta[key]; + element.attributes[key] = val['default']; + } + } + + if (addType.endsWith('Entry') && parent.scope_dict && + exitElem) { + parent.scope_dict[element.id] = [exitElem.id]; + const parentScope = parent.scope_dict['-1']; + if (parentScope) + parentScope.push(element.id); + else + parent.scope_dict['-1'] = [element.id]; + } else if (addType !== SDFGElementType.SDFGState && + parent.scope_dict) { + element.scope_entry = null; + element.scope_exit = null; + const parentScope = parent.scope_dict['-1']; + if (parentScope) + parentScope.push(element.id); + else + parent.scope_dict['-1'] = [element.id]; + } + + parent.nodes.push(element); + if (exitElem) + parent.nodes.push(exitElem); + + set_positioning_info(element, this.add_position); + this.add_position = null; + + vscodeWriteGraph(rootSdfg); + } + } + } } public removeGraphNodes(nodes: SDFGElement[]): void { @@ -206,11 +503,6 @@ export class VSCodeRenderer extends SDFGRenderer { } public showSelectLibraryNodeDialog(callback: CallableFunction): void { - if (!VSCodeSDFV.getInstance().getDaemonConnected()) { - this.showNoDaemonDialog(); - return; - } - const sdfgMetaDict = VSCodeSDFV.getInstance().getMetaDict(); const modalRet = createSingleUseModal( diff --git a/src/webclients/components/sdfv/transformation/transformation.ts b/src/webclients/components/sdfv/transformation/transformation.ts index c2661b4..8a10e23 100644 --- a/src/webclients/components/sdfv/transformation/transformation.ts +++ b/src/webclients/components/sdfv/transformation/transformation.ts @@ -75,7 +75,7 @@ export function getApplicableTransformations(): void { /** * Asynchronouly sort the list of transformations in the timing thread. - * + * * @param {*} callback Callback to call when sorting has been completed. */ export async function sortTransformations( @@ -252,9 +252,9 @@ export function clearSelectedTransformation(): void { /** * For a given transformation, show its details pane in the information area. - * + * * This pane allows the further interaction with the transformation. - * + * * @param {*} xform The transformation to display. */ export function showTransformationDetails(xform: any): void { @@ -341,6 +341,18 @@ export function showTransformationDetails(xform: any): void { 'text': 'Apply', })).appendTo(xformButtonContainer); + $('
', { + class: 'button', + click: () => { + vscode.postMessage({ + type: 'dace.export_transformation_to_file', + transformation: xform, + }); + }, + }).append($('', { + text: 'Export To File', + })).appendTo(xformButtonContainer); + generateAttributesTable(undefined, xform, infoContents); $('#info-clear-btn').show(); diff --git a/src/webclients/components/sdfv/utils/attributes_table.ts b/src/webclients/components/sdfv/utils/attributes_table.ts index a6657d6..f40c01e 100644 --- a/src/webclients/components/sdfv/utils/attributes_table.ts +++ b/src/webclients/components/sdfv/utils/attributes_table.ts @@ -857,7 +857,8 @@ export function attributeTablePutEntry( xform: any | undefined, root: JQuery, editableKey: boolean, updateOnChange: boolean, addDeleteButton: boolean, keyChangeHandlerOverride?: (prop: KeyProperty) => void, - valueChangeHandlerOverride?: (prop: Property) => void + valueChangeHandlerOverride?: (prop: Property) => void, + invertedSpacing: boolean = false ): PropertyEntry { let keyProp: KeyProperty | undefined = undefined; let valProp: Property[] | undefined = undefined; @@ -892,7 +893,7 @@ export function attributeTablePutEntry( let keyCell = undefined; if (editableKey) { keyCell = $('
', { - 'class': 'col-3 attr-table-cell', + 'class': 'attr-table-cell ' + (invertedSpacing ? 'col-9' : 'col-3'), }).appendTo(row); const keyInput = $('', { 'type': 'text', @@ -903,7 +904,9 @@ export function attributeTablePutEntry( keyProp = new KeyProperty(elem, xform, target, key, keyInput); } else { keyCell = $('
', { - 'class': 'col-3 attr-table-heading attr-table-cell', + 'class': 'attr-table-heading attr-table-cell ' + ( + invertedSpacing ? 'col-9' : 'col-3' + ), 'text': key, }).appendTo(row); } @@ -921,7 +924,7 @@ export function attributeTablePutEntry( } const valueCell = $('
', { - 'class': 'col-9 attr-table-cell', + 'class': 'attr-table-cell ' + (invertedSpacing ? 'col-3' : 'col-9'), }).appendTo(row); if (key === 'constants_prop') { @@ -1364,7 +1367,7 @@ export function appendDataDescriptorTable( if (wholeSdfg) vscodeWriteGraph(wholeSdfg); } - } + }, undefined, true ); if (res.deleteBtn) diff --git a/src/webclients/components/sdfv/utils/helpers.ts b/src/webclients/components/sdfv/utils/helpers.ts index b76c5dc..4c1371e 100644 --- a/src/webclients/components/sdfv/utils/helpers.ts +++ b/src/webclients/components/sdfv/utils/helpers.ts @@ -8,9 +8,12 @@ import { find_graph_element_by_uuid, get_uuid_graph_element, JsonSDFG, + JsonSDFGEdge, JsonSDFGNode, + JsonSDFGState, ScopeNode, SDFGElement, + SDFGElementType, sdfg_range_elem_to_string, } from '@spcl/sdfv/out'; import { VSCodeRenderer } from '../renderer/vscode_renderer'; @@ -18,6 +21,77 @@ import { VSCodeSDFV } from '../vscode_sdfv'; declare const vscode: any; +export function findMaximumSdfgId(sdfg: JsonSDFG): number { + let maxId = sdfg.sdfg_list_id; + for (const node of sdfg.nodes) { + if (node.type === SDFGElementType.SDFGState) + for (const n of node.nodes) { + if (n.type === SDFGElementType.NestedSDFG) + maxId = Math.max( + findMaximumSdfgId(n.attributes.sdfg), maxId + ); + } + } + return maxId; +} + +export function findSdfgById(sdfg: JsonSDFG, id: number): JsonSDFG | undefined { + if (sdfg.sdfg_list_id === id) + return sdfg; + + for (const node of sdfg.nodes) { + if (node.type === SDFGElementType.SDFGState) + for (const n of node.nodes) { + if (n.type === SDFGElementType.NestedSDFG) { + const ret = findSdfgById(n.attributes.sdfg, id); + if (ret) + return ret; + } + } + } + return undefined; +} + +export function findJsonSDFGElementByUUID( + rootSdfg: JsonSDFG, uuid: string +): [ + JsonSDFG | JsonSDFGState | JsonSDFGNode | JsonSDFGEdge | undefined, + JsonSDFG +] { + const parts = uuid?.split('/'); + if (!parts || parts.length < 2 || parts.length > 4) + return [undefined, rootSdfg]; + + const sdfgId = parseInt(parts[0]); + if (sdfgId >= 0 && rootSdfg) { + const sdfg = findSdfgById(rootSdfg, sdfgId); + const stateId = parseInt(parts[1]); + if (stateId >= 0 && sdfg?.nodes) { + const state = sdfg.nodes[stateId]; + if (state) { + if (parts.length > 2) { + const nodeId = parseInt(parts[2]); + if (nodeId >= 0) { + return [state.nodes[nodeId], sdfg]; + } else if (parts.length === 4) { + const edgeId = parseInt(parts[3]); + if (edgeId >= 0) + return [state.edges[edgeId], sdfg]; + } + } + + return [state, sdfg]; + } + } else if (parts.length === 4 && sdfg?.edges) { + const edgeId = parseInt(parts[3]); + if (edgeId > 0) + return [sdfg.edges[edgeId], sdfg]; + } + return [sdfg, rootSdfg]; + } + return [undefined, rootSdfg]; +} + /** * Perform an action for each element in an array given by their uuids. */ @@ -259,7 +333,7 @@ export function unGraphiphySdfg(g: JsonSDFG): void { if (v.attributes.layout) delete v.attributes.layout; - if (v.type === 'NestedSDFG') + if (v.type === SDFGElementType.NestedSDFG) unGraphiphySdfg(v.attributes.sdfg); }); }); diff --git a/src/webclients/components/sdfv/vscode_sdfv.ts b/src/webclients/components/sdfv/vscode_sdfv.ts index 1b6a24a..e22fc44 100644 --- a/src/webclients/components/sdfv/vscode_sdfv.ts +++ b/src/webclients/components/sdfv/vscode_sdfv.ts @@ -45,6 +45,7 @@ import { SDFGElement, SDFGNode, SDFGRenderer, + SDFGRendererEvent, SDFV, State, StaticFlopsOverlay, @@ -73,6 +74,7 @@ import { vscodeWriteGraph, } from './utils/helpers'; import Split from 'split.js'; +import { LViewRenderer } from '@spcl/sdfv/out/local_view/lview_renderer'; declare const vscode: any; declare const SPLIT_DIRECTION: 'vertical' | 'horizontal'; @@ -560,10 +562,8 @@ export class VSCodeSDFV extends SDFV { preventRefreshes: boolean = false ): void { const parsedSdfg = parse_sdfg(sdfgString); - let renderer = VSCodeRenderer.getInstance(); - - if (renderer) { - renderer.set_sdfg(parsedSdfg); + if (this.renderer) { + this.renderer.set_sdfg(parsedSdfg); } else { const contentsElem = document.getElementById('contents'); if (contentsElem === null) { @@ -572,7 +572,7 @@ export class VSCodeSDFV extends SDFV { } if (parsedSdfg !== null) - renderer = VSCodeRenderer.init( + this.renderer = VSCodeRenderer.init( parsedSdfg, contentsElem, this.onMouseEvent, null, VSCodeSDFV.DEBUG_DRAW, null, null ); @@ -586,23 +586,23 @@ export class VSCodeSDFV extends SDFV { getApplicableTransformations(); } - const graph = renderer.get_graph(); + const graph = this.renderer.get_graph(); if (graph) - this.outline(renderer, graph); + this.outline(this.renderer, graph); refreshAnalysisPane(); refreshBreakpoints(); - const selectedElements = renderer.get_selected_elements(); + const selectedElements = this.renderer.get_selected_elements(); if (selectedElements && selectedElements.length === 1) reselectRendererElement(selectedElements[0]); else if (!selectedElements || selectedElements.length === 0) this.fillInfo( - new SDFG(renderer.get_sdfg()) + new SDFG(this.renderer.get_sdfg()) ); vscode.postMessage({ type: 'sdfv.process_queued_messages', - sdfgName: renderer.get_sdfg().attributes.name, + sdfgName: this.renderer.get_sdfg().attributes.name, }); } @@ -787,6 +787,22 @@ export class VSCodeSDFV extends SDFV { this.selectedTransformation = selectedTransformation; } + public set_renderer(renderer: SDFGRenderer | null): void { + if (renderer) { + this.localViewRenderer?.destroy(); + this.localViewRenderer = null; + } + this.renderer = renderer; + } + + public setLocalViewRenderer(localViewRenderer: LViewRenderer | null): void { + if (localViewRenderer) { + this.renderer?.destroy(); + this.renderer = null; + } + this.localViewRenderer = localViewRenderer; + } + } export function vscodeHandleEvent(event: string, data: any): void { @@ -795,14 +811,16 @@ export function vscodeHandleEvent(event: string, data: any): void { if (data && data.nodes) VSCodeRenderer.getInstance()?.removeGraphNodes(data.nodes); break; - case 'add_graph_node': + case SDFGRendererEvent.ADD_ELEMENT: if (data && data.type !== undefined && data.parent !== undefined && - data.edgeA !== undefined) + data.lib !== undefined && data.edgeA !== undefined) VSCodeRenderer.getInstance()?.addNodeToGraph( - data.type, data.parent, data.edgeA + data.type, data.parent, data.lib, data.edgeA, + data.edgeAConn ? data.edgeAConn : null, + data.conn ? data.conn : null ); break; - case 'libnode_select': + case SDFGRendererEvent.QUERY_LIBNODE: if (data && data.callback) VSCodeRenderer.getInstance()?.showSelectLibraryNodeDialog( data.callback