codegreen 0.2.1__tar.gz → 0.3.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {codegreen-0.2.1 → codegreen-0.3.0}/CMakeLists.txt +74 -58
- {codegreen-0.2.1/codegreen.egg-info → codegreen-0.3.0}/PKG-INFO +22 -11
- {codegreen-0.2.1 → codegreen-0.3.0}/README.md +20 -10
- {codegreen-0.2.1 → codegreen-0.3.0}/codegreen/__init__.py +1 -1
- {codegreen-0.2.1 → codegreen-0.3.0}/codegreen/cli/cli.py +221 -44
- {codegreen-0.2.1 → codegreen-0.3.0/codegreen.egg-info}/PKG-INFO +22 -11
- {codegreen-0.2.1 → codegreen-0.3.0}/pyproject.toml +3 -1
- codegreen-0.3.0/setup.py +125 -0
- codegreen-0.2.1/setup.py +0 -105
- {codegreen-0.2.1 → codegreen-0.3.0}/LICENSE +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/MANIFEST.in +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/benchmark/__init__.py +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/benchmark/__main__.py +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/benchmark/compilers.py +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/benchmark/config.py +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/benchmark/harness.py +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/benchmark/profilers.py +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/benchmark/results.py +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/benchmark/suites/__init__.py +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/benchmark/suites/base.py +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/benchmark/suites/benchmarksgame.py +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/benchmark/suites/perfopt.py +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/benchmark/validation/__init__.py +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/benchmark/validation/analysis.py +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/benchmark/validation/experiments.py +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/benchmark/validation/reporting.py +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/codegreen/analysis/__init__.py +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/codegreen/analysis/_ts_java.py +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/codegreen/analysis/cfg/__init__.py +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/codegreen/analysis/cfg/builder.py +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/codegreen/analysis/cfg/callgraph.py +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/codegreen/analysis/cfg/dataflow.py +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/codegreen/analysis/cfg/energy_flow.py +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/codegreen/analysis/cfg/features.py +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/codegreen/analysis/cfg/pdg.py +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/codegreen/analysis/cfg/types.py +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/codegreen/analysis/cfg/visualization.py +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/codegreen/analyzer/__init__.py +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/codegreen/analyzer/plot.py +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/codegreen/cli/__init__.py +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/codegreen/cli/entrypoint.py +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/codegreen/config.json +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/codegreen/instrumentation/__init__.py +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/codegreen/instrumentation/ast_processor.py +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/codegreen/instrumentation/bridge_analyze.py +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/codegreen/instrumentation/bridge_instrument.py +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/codegreen/instrumentation/config.py +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/codegreen/instrumentation/configs/TEMPLATE.json +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/codegreen/instrumentation/configs/c.json +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/codegreen/instrumentation/configs/cpp.json +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/codegreen/instrumentation/configs/java.json +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/codegreen/instrumentation/configs/javascript.json +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/codegreen/instrumentation/configs/python.json +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/codegreen/instrumentation/engine.py +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/codegreen/instrumentation/language_configs.py +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/codegreen/instrumentation/language_engine.py +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/codegreen/instrumentation/language_runtimes/c/codegreen_runtime.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/codegreen/instrumentation/language_runtimes/cpp/codegreen/runtime.hpp +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/codegreen/instrumentation/language_runtimes/java/codegreen/runtime/CodeGreenRuntime.java +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/codegreen/instrumentation/language_runtimes/java/codegreen/runtime/CodeGreenStandaloneRuntime.java +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/codegreen/instrumentation/language_runtimes/python/codegreen_runtime.py +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/codegreen/utils/__init__.py +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/codegreen/utils/binary.py +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/codegreen/utils/platform.py +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/codegreen.egg-info/SOURCES.txt +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/codegreen.egg-info/dependency_links.txt +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/codegreen.egg-info/entry_points.txt +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/codegreen.egg-info/not-zip-safe +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/codegreen.egg-info/requires.txt +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/codegreen.egg-info/top_level.txt +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/requirements.txt +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/setup.cfg +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/tests/test_instrumentation.py +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/Programming-Language-Benchmarks/bench/algorithm/binarytrees/2.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/Programming-Language-Benchmarks/bench/algorithm/helloworld/1.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/Programming-Language-Benchmarks/bench/algorithm/knucleotide/1.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/Programming-Language-Benchmarks/bench/algorithm/mandelbrot/1-ffi.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/Programming-Language-Benchmarks/bench/algorithm/mandelbrot/1-mffi.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/Programming-Language-Benchmarks/bench/algorithm/nbody/2.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/Programming-Language-Benchmarks/bench/algorithm/nbody/5.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/Programming-Language-Benchmarks/bench/algorithm/nbody/8-i.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/Programming-Language-Benchmarks/bench/algorithm/nsieve/1.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/Programming-Language-Benchmarks/bench/algorithm/spectral-norm/3.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/Programming-Language-Benchmarks/bench/algorithm/spectral-norm/4.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/Programming-Language-Benchmarks/bench/algorithm/spectral-norm/5-im.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/Programming-Language-Benchmarks/bench/algorithm/spectral-norm/6-im.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/nvim-treesitter/tests/indent/c/aligned_indent.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/nvim-treesitter/tests/indent/c/array.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/nvim-treesitter/tests/indent/c/comment.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/nvim-treesitter/tests/indent/c/compound_lit.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/nvim-treesitter/tests/indent/c/cond.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/nvim-treesitter/tests/indent/c/enum.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/nvim-treesitter/tests/indent/c/expr.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/nvim-treesitter/tests/indent/c/func.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/nvim-treesitter/tests/indent/c/if_else.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/nvim-treesitter/tests/indent/c/issue-1568.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/nvim-treesitter/tests/indent/c/issue-2086.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/nvim-treesitter/tests/indent/c/issue-4079.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/nvim-treesitter/tests/indent/c/issue-4117.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/nvim-treesitter/tests/indent/c/issue-4525.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/nvim-treesitter/tests/indent/c/label.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/nvim-treesitter/tests/indent/c/loop.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/nvim-treesitter/tests/indent/c/no_braces.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/nvim-treesitter/tests/indent/c/preproc_cond.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/nvim-treesitter/tests/indent/c/preproc_func.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/nvim-treesitter/tests/indent/c/string.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/nvim-treesitter/tests/indent/c/struct.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/nvim-treesitter/tests/indent/c/switch.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/nvim-treesitter/tests/indent/c/ternary.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/nvim-treesitter/tests/indent/c/unfinished_comment.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/nvim-treesitter/tests/query/highlights/c/enums-as-constants.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/crates/cli/src/templates/PARSER_NAME.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/crates/cli/src/templates/py-binding.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/crates/generate/src/templates/alloc.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/crates/generate/src/templates/array.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/crates/highlight/include/tree_sitter/highlight.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/crates/tags/include/tree_sitter/tags.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/lib/CMakeLists.txt +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/lib/binding_web/lib/tree-sitter.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/lib/include/tree_sitter/api.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/lib/src/alloc.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/lib/src/alloc.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/lib/src/array.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/lib/src/atomic.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/lib/src/clock.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/lib/src/error_costs.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/lib/src/get_changed_ranges.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/lib/src/get_changed_ranges.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/lib/src/host.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/lib/src/language.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/lib/src/language.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/lib/src/length.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/lib/src/lexer.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/lib/src/lexer.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/lib/src/lib.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/lib/src/node.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/lib/src/parser.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/lib/src/parser.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/lib/src/point.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/lib/src/portable/endian.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/lib/src/query.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/lib/src/reduce_action.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/lib/src/reusable_node.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/lib/src/stack.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/lib/src/stack.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/lib/src/subtree.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/lib/src/subtree.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/lib/src/tree.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/lib/src/tree.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/lib/src/tree_cursor.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/lib/src/tree_cursor.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/lib/src/ts_assert.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/lib/src/unicode/ptypes.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/lib/src/unicode/umachine.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/lib/src/unicode/urename.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/lib/src/unicode/utf.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/lib/src/unicode/utf16.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/lib/src/unicode/utf8.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/lib/src/unicode.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/lib/src/wasm/stdlib.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/lib/src/wasm/wasm-stdlib.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/lib/src/wasm_store.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/lib/src/wasm_store.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/test/fixtures/test_grammars/depends_on_column/scanner.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/test/fixtures/test_grammars/epsilon_external_extra_tokens/scanner.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/test/fixtures/test_grammars/epsilon_external_tokens/scanner.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/test/fixtures/test_grammars/external_and_internal_anonymous_tokens/scanner.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/test/fixtures/test_grammars/external_and_internal_tokens/scanner.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/test/fixtures/test_grammars/external_extra_tokens/scanner.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/test/fixtures/test_grammars/external_tokens/scanner.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/test/fixtures/test_grammars/external_unicode_column_alignment/scanner.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/test/fixtures/test_grammars/get_col_eof/scanner.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/test/fixtures/test_grammars/get_col_should_hang_not_crash/scanner.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/test/fixtures/test_grammars/inverted_external_token/scanner.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter/test/fixtures/test_grammars/uses_current_column/scanner.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter-c/CMakeLists.txt +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter-c/bindings/c/tree_sitter/tree-sitter-c.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter-c/bindings/python/tree_sitter_c/binding.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter-c/bindings/swift/TreeSitterC/c.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter-c/examples/cluster.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter-c/examples/malloc.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter-c/examples/parser.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter-c/src/parser.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter-c/src/tree_sitter/alloc.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter-c/src/tree_sitter/array.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter-c/src/tree_sitter/parser.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter-c/test/highlight/keywords.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter-c/test/highlight/names.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter-cpp/CMakeLists.txt +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter-cpp/bindings/c/tree-sitter-cpp.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter-cpp/bindings/python/tree_sitter_cpp/binding.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter-cpp/bindings/swift/TreeSitterCPP/cpp.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter-cpp/examples/marker-index.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter-cpp/src/parser.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter-cpp/src/scanner.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter-cpp/src/tree_sitter/alloc.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter-cpp/src/tree_sitter/array.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter-cpp/src/tree_sitter/parser.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter-java/CMakeLists.txt +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter-java/bindings/c/tree-sitter-java.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter-java/bindings/python/tree_sitter_java/binding.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter-java/bindings/swift/TreeSitterJava/java.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter-java/src/parser.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter-java/src/tree_sitter/alloc.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter-java/src/tree_sitter/array.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter-java/src/tree_sitter/parser.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter-python/CMakeLists.txt +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter-python/bindings/c/tree-sitter-python.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter-python/bindings/python/tree_sitter_python/binding.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter-python/bindings/swift/TreeSitterPython/python.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter-python/src/parser.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter-python/src/scanner.c +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter-python/src/tree_sitter/alloc.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter-python/src/tree_sitter/array.h +0 -0
- {codegreen-0.2.1 → codegreen-0.3.0}/third_party/tree-sitter-python/src/tree_sitter/parser.h +0 -0
|
@@ -16,7 +16,7 @@ set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
|
|
|
16
16
|
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
|
|
17
17
|
|
|
18
18
|
# Find required packages
|
|
19
|
-
find_package(PkgConfig
|
|
19
|
+
find_package(PkgConfig)
|
|
20
20
|
find_package(Threads REQUIRED)
|
|
21
21
|
|
|
22
22
|
# Optional GPU library support
|
|
@@ -47,10 +47,16 @@ else()
|
|
|
47
47
|
set(HAVE_ROCM_SMI OFF)
|
|
48
48
|
endif()
|
|
49
49
|
|
|
50
|
-
#
|
|
51
|
-
|
|
52
|
-
pkg_check_modules(
|
|
53
|
-
pkg_check_modules(
|
|
50
|
+
# System libraries (required for legacy core on Linux, not for NEMB-only macOS builds)
|
|
51
|
+
if(NOT APPLE)
|
|
52
|
+
pkg_check_modules(JSONCPP REQUIRED jsoncpp)
|
|
53
|
+
pkg_check_modules(CURL REQUIRED libcurl)
|
|
54
|
+
pkg_check_modules(SQLITE3 REQUIRED sqlite3)
|
|
55
|
+
else()
|
|
56
|
+
pkg_check_modules(JSONCPP jsoncpp)
|
|
57
|
+
pkg_check_modules(CURL libcurl)
|
|
58
|
+
pkg_check_modules(SQLITE3 sqlite3)
|
|
59
|
+
endif()
|
|
54
60
|
|
|
55
61
|
# Global include directories
|
|
56
62
|
include_directories(${CMAKE_SOURCE_DIR}/codegreen/measurement/include)
|
|
@@ -114,37 +120,33 @@ endif()
|
|
|
114
120
|
# Instrumentation is now Python-based, no C++ build needed
|
|
115
121
|
# add_subdirectory(codegreen/instrumentation)
|
|
116
122
|
|
|
117
|
-
# Main executable
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
add_dependencies(codegreen sync_instrumentation)
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
${CMAKE_SOURCE_DIR}/codegreen/instrumentation/include
|
|
137
|
-
${JSONCPP_INCLUDE_DIRS}
|
|
138
|
-
${CURL_INCLUDE_DIRS}
|
|
139
|
-
)
|
|
140
|
-
|
|
141
|
-
# Compiler-specific options
|
|
142
|
-
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
|
|
143
|
-
target_compile_options(codegreen PRIVATE
|
|
144
|
-
-Wall -Wextra -Wno-unused-parameter
|
|
145
|
-
$<$<CONFIG:Debug>:-g -O0>
|
|
146
|
-
$<$<CONFIG:Release>:-O3 -DNDEBUG>
|
|
123
|
+
# Main executable (requires jsoncpp/curl/sqlite -- Linux only)
|
|
124
|
+
# On macOS, only codegreen-nemb is built; the Python CLI handles everything.
|
|
125
|
+
if(NOT APPLE)
|
|
126
|
+
add_executable(codegreen
|
|
127
|
+
codegreen/measurement/main.cpp
|
|
128
|
+
)
|
|
129
|
+
add_dependencies(codegreen sync_instrumentation)
|
|
130
|
+
target_link_libraries(codegreen PRIVATE
|
|
131
|
+
codegreen-core
|
|
132
|
+
codegreen-nemb
|
|
133
|
+
${JSONCPP_LIBRARIES}
|
|
134
|
+
${CURL_LIBRARIES}
|
|
135
|
+
Threads::Threads
|
|
136
|
+
)
|
|
137
|
+
target_include_directories(codegreen PRIVATE
|
|
138
|
+
${CMAKE_SOURCE_DIR}/codegreen/measurement/include
|
|
139
|
+
${CMAKE_SOURCE_DIR}/codegreen/instrumentation/include
|
|
140
|
+
${JSONCPP_INCLUDE_DIRS}
|
|
141
|
+
${CURL_INCLUDE_DIRS}
|
|
147
142
|
)
|
|
143
|
+
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
|
|
144
|
+
target_compile_options(codegreen PRIVATE
|
|
145
|
+
-Wall -Wextra -Wno-unused-parameter
|
|
146
|
+
$<$<CONFIG:Debug>:-g -O0>
|
|
147
|
+
$<$<CONFIG:Release>:-O3 -DNDEBUG>
|
|
148
|
+
)
|
|
149
|
+
endif()
|
|
148
150
|
endif()
|
|
149
151
|
|
|
150
152
|
# Copy runtime modules to build directory with dependency tracking
|
|
@@ -236,30 +238,44 @@ if(EXISTS "${CMAKE_SOURCE_DIR}/config/codegreen.json")
|
|
|
236
238
|
)
|
|
237
239
|
endif()
|
|
238
240
|
|
|
239
|
-
# Installation
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
241
|
+
# Installation (binary only on Linux where codegreen-core is built)
|
|
242
|
+
if(NOT APPLE)
|
|
243
|
+
install(TARGETS codegreen
|
|
244
|
+
RUNTIME DESTINATION bin
|
|
245
|
+
COMPONENT runtime
|
|
246
|
+
)
|
|
247
|
+
endif()
|
|
244
248
|
|
|
245
|
-
#
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
249
|
+
# Dev-install: copy NEMB library + instrumentation files for local development
|
|
250
|
+
if(APPLE)
|
|
251
|
+
add_custom_target(dev-install ALL
|
|
252
|
+
DEPENDS codegreen-nemb
|
|
253
|
+
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_SOURCE_DIR}/lib
|
|
254
|
+
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/lib/libcodegreen-nemb.dylib ${CMAKE_SOURCE_DIR}/lib/
|
|
255
|
+
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_SOURCE_DIR}/bin/python/instrumentation
|
|
256
|
+
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/codegreen/instrumentation/language_runtimes ${CMAKE_SOURCE_DIR}/bin/python/instrumentation/language_runtimes
|
|
257
|
+
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/codegreen/instrumentation/configs ${CMAKE_SOURCE_DIR}/bin/python/instrumentation/configs
|
|
258
|
+
COMMENT "Dev-install: NEMB dylib + instrumentation (macOS)"
|
|
259
|
+
)
|
|
260
|
+
else()
|
|
261
|
+
add_custom_target(dev-install ALL
|
|
262
|
+
DEPENDS codegreen
|
|
263
|
+
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_SOURCE_DIR}/bin
|
|
264
|
+
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/codegreen ${CMAKE_SOURCE_DIR}/bin/
|
|
265
|
+
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_SOURCE_DIR}/lib
|
|
266
|
+
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/lib/libcodegreen-nemb.so ${CMAKE_SOURCE_DIR}/lib/
|
|
267
|
+
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/lib/libcodegreen-core.a ${CMAKE_SOURCE_DIR}/lib/
|
|
268
|
+
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_SOURCE_DIR}/bin/python/instrumentation
|
|
269
|
+
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/codegreen/instrumentation/bridge_analyze.py ${CMAKE_SOURCE_DIR}/bin/python/instrumentation/
|
|
270
|
+
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/codegreen/instrumentation/bridge_instrument.py ${CMAKE_SOURCE_DIR}/bin/python/instrumentation/
|
|
271
|
+
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/codegreen/instrumentation/language_engine.py ${CMAKE_SOURCE_DIR}/bin/python/instrumentation/
|
|
272
|
+
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/codegreen/instrumentation/ast_processor.py ${CMAKE_SOURCE_DIR}/bin/python/instrumentation/
|
|
273
|
+
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/codegreen/instrumentation/language_configs.py ${CMAKE_SOURCE_DIR}/bin/python/instrumentation/
|
|
274
|
+
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/codegreen/instrumentation/language_runtimes ${CMAKE_SOURCE_DIR}/bin/python/instrumentation/language_runtimes
|
|
275
|
+
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/codegreen/instrumentation/configs ${CMAKE_SOURCE_DIR}/bin/python/instrumentation/configs
|
|
276
|
+
COMMENT "Dev-install: binary + NEMB + instrumentation (Linux)"
|
|
277
|
+
)
|
|
278
|
+
endif()
|
|
263
279
|
|
|
264
280
|
# Install runtime modules
|
|
265
281
|
install(FILES ${CMAKE_SOURCE_DIR}/codegreen/instrumentation/language_runtimes/python/codegreen_runtime.py
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: codegreen
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.0
|
|
4
4
|
Summary: Energy-aware software development tool for measuring and optimizing code energy consumption
|
|
5
5
|
Author-email: Saurabhsingh Rajput <saurabh@dal.ca>
|
|
6
6
|
Maintainer-email: Saurabhsingh Rajput <saurabh@dal.ca>
|
|
@@ -399,6 +399,7 @@ Classifier: Programming Language :: Python :: 3.12
|
|
|
399
399
|
Classifier: Programming Language :: Python :: 3.13
|
|
400
400
|
Classifier: Programming Language :: C++
|
|
401
401
|
Classifier: Operating System :: POSIX :: Linux
|
|
402
|
+
Classifier: Operating System :: MacOS :: MacOS X
|
|
402
403
|
Classifier: Environment :: Console
|
|
403
404
|
Requires-Python: >=3.8
|
|
404
405
|
Description-Content-Type: text/markdown
|
|
@@ -447,7 +448,7 @@ CodeGreen is a comprehensive tool for fine-grained energy profiling and optimiza
|
|
|
447
448
|
pip install codegreen
|
|
448
449
|
```
|
|
449
450
|
|
|
450
|
-
|
|
451
|
+
Pre-built wheels available for Linux x86_64 and macOS ARM64 (Apple Silicon). Includes the native NEMB energy measurement backend.
|
|
451
452
|
|
|
452
453
|
### From source (recommended for development)
|
|
453
454
|
|
|
@@ -456,18 +457,28 @@ git clone https://github.com/SMART-Dal/codegreen.git
|
|
|
456
457
|
cd codegreen
|
|
457
458
|
./install.sh
|
|
458
459
|
|
|
459
|
-
#
|
|
460
|
+
# Linux: RAPL sensor access (one-time, requires sudo):
|
|
460
461
|
sudo ./install.sh # or: sudo codegreen init-sensors
|
|
461
|
-
|
|
462
|
+
|
|
463
|
+
# macOS: energy measurement requires sudo (IOReport access):
|
|
464
|
+
sudo codegreen run -- python script.py
|
|
462
465
|
```
|
|
463
466
|
|
|
467
|
+
### Platform support
|
|
468
|
+
|
|
469
|
+
| Platform | pip install | Energy measurement | Backend |
|
|
470
|
+
|----------|------------|-------------------|---------|
|
|
471
|
+
| Linux x86_64 (Intel/AMD) | Pre-built wheel | Full | RAPL via NEMB |
|
|
472
|
+
| macOS ARM64 (Apple Silicon) | Pre-built wheel | Full | IOReport + kpc via NEMB |
|
|
473
|
+
| macOS Intel | From source | Full | IOReport via NEMB |
|
|
474
|
+
| Other | From source | Time-only | Fallback |
|
|
475
|
+
|
|
464
476
|
### Requirements
|
|
465
477
|
|
|
466
|
-
- Linux (kernel 5.0+, Ubuntu 20.04+, Debian 11+, Fedora 35+, MacOS)
|
|
467
478
|
- Python 3.9+
|
|
468
|
-
-
|
|
469
|
-
-
|
|
470
|
-
-
|
|
479
|
+
- Linux: kernel 5.0+, Intel/AMD CPU with RAPL support
|
|
480
|
+
- macOS: Apple Silicon (M1-M5) or Intel, sudo for energy measurement
|
|
481
|
+
- Source builds: CMake 3.16+, C++17 compiler
|
|
471
482
|
|
|
472
483
|
## Usage
|
|
473
484
|
|
|
@@ -510,7 +521,7 @@ JSON (default for `--json`), CSV, Markdown table, and text summary. The JSON out
|
|
|
510
521
|
|
|
511
522
|
## Language support
|
|
512
523
|
|
|
513
|
-
Adding a new language requires only a JSON config file in `
|
|
524
|
+
Adding a new language requires only a JSON config file in `codegreen/instrumentation/configs/` plus the tree-sitter grammar. No Python code changes needed.
|
|
514
525
|
|
|
515
526
|
Currently supported: Python, C, C++, JavaScript, Java.
|
|
516
527
|
|
|
@@ -529,7 +540,7 @@ bash scripts/generate_comparison_artifacts.sh docs/benchmarks/
|
|
|
529
540
|
|
|
530
541
|
## Energy Flow Graph (EFG)
|
|
531
542
|
|
|
532
|
-
CodeGreen includes an Energy Flow Graph module (`
|
|
543
|
+
CodeGreen includes an Energy Flow Graph module (`codegreen/analysis/cfg/`) that builds energy-annotated control flow graphs from source code:
|
|
533
544
|
|
|
534
545
|
```python
|
|
535
546
|
from codegreen.analysis.cfg.builder import build_per_method_cfgs
|
|
@@ -544,7 +555,7 @@ Features: Ball & Larus branch heuristics, SCC-based hot path computation, three-
|
|
|
544
555
|
|
|
545
556
|
## Architecture
|
|
546
557
|
|
|
547
|
-
- **C++ NEMB backend**:
|
|
558
|
+
- **C++ NEMB backend**: platform-aware energy measurement (RAPL on Linux, IOReport on macOS), sub-microsecond timestamping, background polling with lock-free ring buffers
|
|
548
559
|
- **Python instrumentation**: tree-sitter AST analysis, config-driven checkpoint insertion
|
|
549
560
|
- **Energy Flow Graph**: CFG + energy annotation for path-dependent analysis
|
|
550
561
|
- **Benchmark harness**: multi-suite support (benchmarksgame, PerfOpt), statistical analysis with t-distribution CI, IQR outlier detection, profiler comparison
|
|
@@ -17,7 +17,7 @@ CodeGreen is a comprehensive tool for fine-grained energy profiling and optimiza
|
|
|
17
17
|
pip install codegreen
|
|
18
18
|
```
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
Pre-built wheels available for Linux x86_64 and macOS ARM64 (Apple Silicon). Includes the native NEMB energy measurement backend.
|
|
21
21
|
|
|
22
22
|
### From source (recommended for development)
|
|
23
23
|
|
|
@@ -26,18 +26,28 @@ git clone https://github.com/SMART-Dal/codegreen.git
|
|
|
26
26
|
cd codegreen
|
|
27
27
|
./install.sh
|
|
28
28
|
|
|
29
|
-
#
|
|
29
|
+
# Linux: RAPL sensor access (one-time, requires sudo):
|
|
30
30
|
sudo ./install.sh # or: sudo codegreen init-sensors
|
|
31
|
-
|
|
31
|
+
|
|
32
|
+
# macOS: energy measurement requires sudo (IOReport access):
|
|
33
|
+
sudo codegreen run -- python script.py
|
|
32
34
|
```
|
|
33
35
|
|
|
36
|
+
### Platform support
|
|
37
|
+
|
|
38
|
+
| Platform | pip install | Energy measurement | Backend |
|
|
39
|
+
|----------|------------|-------------------|---------|
|
|
40
|
+
| Linux x86_64 (Intel/AMD) | Pre-built wheel | Full | RAPL via NEMB |
|
|
41
|
+
| macOS ARM64 (Apple Silicon) | Pre-built wheel | Full | IOReport + kpc via NEMB |
|
|
42
|
+
| macOS Intel | From source | Full | IOReport via NEMB |
|
|
43
|
+
| Other | From source | Time-only | Fallback |
|
|
44
|
+
|
|
34
45
|
### Requirements
|
|
35
46
|
|
|
36
|
-
- Linux (kernel 5.0+, Ubuntu 20.04+, Debian 11+, Fedora 35+, MacOS)
|
|
37
47
|
- Python 3.9+
|
|
38
|
-
-
|
|
39
|
-
-
|
|
40
|
-
-
|
|
48
|
+
- Linux: kernel 5.0+, Intel/AMD CPU with RAPL support
|
|
49
|
+
- macOS: Apple Silicon (M1-M5) or Intel, sudo for energy measurement
|
|
50
|
+
- Source builds: CMake 3.16+, C++17 compiler
|
|
41
51
|
|
|
42
52
|
## Usage
|
|
43
53
|
|
|
@@ -80,7 +90,7 @@ JSON (default for `--json`), CSV, Markdown table, and text summary. The JSON out
|
|
|
80
90
|
|
|
81
91
|
## Language support
|
|
82
92
|
|
|
83
|
-
Adding a new language requires only a JSON config file in `
|
|
93
|
+
Adding a new language requires only a JSON config file in `codegreen/instrumentation/configs/` plus the tree-sitter grammar. No Python code changes needed.
|
|
84
94
|
|
|
85
95
|
Currently supported: Python, C, C++, JavaScript, Java.
|
|
86
96
|
|
|
@@ -99,7 +109,7 @@ bash scripts/generate_comparison_artifacts.sh docs/benchmarks/
|
|
|
99
109
|
|
|
100
110
|
## Energy Flow Graph (EFG)
|
|
101
111
|
|
|
102
|
-
CodeGreen includes an Energy Flow Graph module (`
|
|
112
|
+
CodeGreen includes an Energy Flow Graph module (`codegreen/analysis/cfg/`) that builds energy-annotated control flow graphs from source code:
|
|
103
113
|
|
|
104
114
|
```python
|
|
105
115
|
from codegreen.analysis.cfg.builder import build_per_method_cfgs
|
|
@@ -114,7 +124,7 @@ Features: Ball & Larus branch heuristics, SCC-based hot path computation, three-
|
|
|
114
124
|
|
|
115
125
|
## Architecture
|
|
116
126
|
|
|
117
|
-
- **C++ NEMB backend**:
|
|
127
|
+
- **C++ NEMB backend**: platform-aware energy measurement (RAPL on Linux, IOReport on macOS), sub-microsecond timestamping, background polling with lock-free ring buffers
|
|
118
128
|
- **Python instrumentation**: tree-sitter AST analysis, config-driven checkpoint insertion
|
|
119
129
|
- **Energy Flow Graph**: CFG + energy annotation for path-dependent analysis
|
|
120
130
|
- **Benchmark harness**: multi-suite support (benchmarksgame, PerfOpt), statistical analysis with t-distribution CI, IQR outlier detection, profiler comparison
|
|
@@ -5,7 +5,7 @@ A comprehensive energy measurement and code optimization tool for developers
|
|
|
5
5
|
and researchers who need precise, fine-grained energy consumption analysis.
|
|
6
6
|
"""
|
|
7
7
|
|
|
8
|
-
__version__ = "0.
|
|
8
|
+
__version__ = "0.3.0"
|
|
9
9
|
__author__ = "Saurabhsingh Rajput"
|
|
10
10
|
__email__ = "saurabh@dal.ca"
|
|
11
11
|
__description__ = "Energy-aware software development tool"
|