Skip to content

Conversation

@SuperFola
Copy link
Member

@SuperFola SuperFola commented Jan 12, 2026

Description

Closes # (issue)

Checklist

  • I have read the Contributor guide
  • My code follows the style guidelines of this project
  • I have commented my code, particularly in hard-to-understand areas
  • I have updated the documentation if needed (on https://github.com/ArkScript-lang/website, content/docs/)
  • I have added tests that prove my fix/feature is working
  • New and existing tests pass locally with my changes

@github-actions
Copy link

github-actions bot commented Jan 12, 2026

Static analysis report

Lizard report

Listing only functions with cyclomatic complexity >= 15 or NLOC >= 100 or parameters >= 6.

Filename Start line:end line Function name Parameters NLOC CCN
src/arkreactor/VM/VM.cpp 530:2202 Ark::VM::safeRun 3 1399 279
src/arkreactor/Compiler/Lowerer/ASTLowerer.cpp 597:774 Ark::internal::ASTLowerer::handleCalls 4 135 49
src/arkscript/main.cpp 23:327 main 2 259 29
src/arkreactor/Compiler/Lowerer/ASTLowerer.cpp 156:259 Ark::internal::ASTLowerer::compileExpression 4 85 27
src/arkreactor/Compiler/Lowerer/ASTLowerer.cpp 293:352 Ark::internal::ASTLowerer::compileListInstruction 3 49 22
src/arkreactor/VM/Value/Value.cpp 77:142 Ark::Value::toString 2 52 20
src/arkreactor/VM/VM.cpp 2355:2448 Ark::VM::backtrace 3 80 19
src/arkreactor/Compiler/Macros/Executors/Function.cpp 16:89 Ark::internal::FunctionExecutor::applyMacro 2 56 17
src/arkreactor/Compiler/Lowerer/ASTLowerer.cpp 393:471 Ark::internal::ASTLowerer::compileFunction 3 56 16
src/arkreactor/Compiler/Lowerer/ASTLowerer.cpp 96:112 Ark::internal::ASTLowerer::nodeProducesOutput 1 13 15
src/arkreactor/Compiler/Macros/Executors/Function.cpp 99:156 Ark::internal::FunctionExecutor::unify 5 50 15
src/arkreactor/VM/Debugger.cpp 145:205 Ark::internal::Debugger::prompt 2 54 15
Report about files you didn't modify in this PR
Filename Start line:end line Function name Parameters NLOC CCN
src/arkreactor/Compiler/Macros/Processor.cpp 253:637 Ark::internal::MacroProcessor::evaluate 3 354 122
src/arkreactor/Compiler/BytecodeReader.cpp 297:717 Ark::BytecodeReader::display 4 371 113
src/arkreactor/Error/Diagnostics.cpp 45:192 Ark::Diagnostics::makeContext 4 109 44
src/arkscript/JsonCompiler.cpp 27:276 JsonCompiler::_compile 1 214 38
src/arkreactor/Compiler/NameResolution/NameResolutionPass.cpp 161:266 Ark::internal::NameResolutionPass::visitKeyword 3 85 35
src/arkreactor/Compiler/AST/Parser.cpp 840:931 Ark::internal::Parser::string 1 88 32
src/arkreactor/Compiler/AST/Node.cpp 179:285 Ark::internal::Node::repr 0 90 30
src/arkreactor/Compiler/Macros/Processor.cpp 102:185 Ark::internal::MacroProcessor::processNode 3 61 27
src/arkreactor/Compiler/AST/Node.cpp 287:368 Ark::internal::Node::debugPrint 1 70 26
src/arkreactor/TypeChecker.cpp 149:236 Ark::types::generateError 6 75 25
src/arkreactor/TypeChecker.cpp 32:147 Ark::types::displayContract 6 102 24
src/arkreactor/Compiler/NameResolution/NameResolutionPass.cpp 55:159 Ark::internal::NameResolutionPass::visit 2 83 23
src/arkreactor/Compiler/AST/Parser.cpp 288:416 Ark::internal::Parser::import_ 1 98 23
include/utf8.hpp 138:184 utf8::isValid 1 44 21
src/arkreactor/Compiler/AST/Optimizer.cpp 33:83 Ark::internal::Optimizer::countAndPruneDeadCode 1 42 20
src/arkscript/Formatter.cpp 503:562 Formatter::formatCall 2 51 19
src/arkreactor/Compiler/NameResolution/StaticScope.cpp 68:109 Ark::internal::NamespaceScope::get 3 32 19
src/arkscript/Formatter.cpp 188:250 Formatter::format 3 59 18
src/arkreactor/Compiler/Macros/Processor.cpp 719:760 Ark::internal::MacroProcessor::isConstEval 1 37 18
include/Ark/Compiler/AST/Predicates.hpp 132:156 Ark::internal::IsSymbol::operator ( ) 1 24 16
src/arkscript/Formatter.cpp 300:341 Formatter::formatFunction 2 35 16
src/arkreactor/Compiler/IntermediateRepresentation/IROptimizer.cpp 22:265 Ark::internal::IROptimizer::IROptimizer 1 224 14
src/arkreactor/Error/Diagnostics.cpp 194:209 Ark::Diagnostics::helper 6 15 2

CppCheck report

Filename Line Type Description
src/arkreactor/VM/VM.cpp 404 error Iterators of different containers 'm_execution_contexts.emplace_back(std::make_unique())' and 'm_execution_contexts.front()' are used together.
include/Ark/VM/Value/Future.hpp 50 style Unused private function: 'Future::deleteSelfViaVM'
src/arkreactor/VM/Value/Future.cpp 23 performance Variable 'm_value' is assigned in constructor body. Consider performing initialization in initialization list.
Report files about files you didn't modify in this PR
Filename Line Type Description
include/Ark/VM/VM.inl 255 style Variable 'maybe_value_ptr' can be declared as pointer to const
src/arkreactor/Builtins/Bytecode.cpp 23 style Parameter 'vm' can be declared as pointer to const
src/arkreactor/Builtins/IO.cpp 165 style Consider using std::transform algorithm instead of a raw loop.
src/arkreactor/Compiler/BytecodeReader.cpp 477 style struct member 'Arg::kind' is never used.
src/arkreactor/Compiler/IntermediateRepresentation/IROptimizer.cpp 254 style Consider using std::transform algorithm instead of a raw loop.
src/arkreactor/Compiler/IntermediateRepresentation/IROptimizer.cpp 261 style Consider using std::transform algorithm instead of a raw loop.
src/arkreactor/Compiler/NameResolution/ScopeResolver.cpp 134 style Consider using std::find_if algorithm instead of a raw loop.

@coveralls
Copy link

coveralls commented Jan 13, 2026

Coverage Status

coverage: 93.417% (+0.7%) from 92.743%
when pulling d599a70 on feat/debugger
into ada0e06 on dev.

@github-actions
Copy link

github-actions bot commented Jan 13, 2026

Fuzzing report

/usr/local/bin/afl-whatsup status check tool for afl-fuzz by Michal Zalewski

Summary stats

    Fuzzers alive : 0
   Dead or remote : 1 (included in stats)
   Total run time : 5 minutes, 0 seconds
      Total execs : 35 thousands
 Cumulative speed : 118 execs/sec
    Pending items : 149 faves, 1266 total
 Coverage reached : 11.96%
    Crashes saved : 0
      Hangs saved : 0

Cycles without finds : 0
Time without finds : 0

[+] Captured 42845 tuples (map size 234373, highest value 255, total values 454887914) in '/dev/null'.
[+] A coverage of 42845 edges were achieved out of 234432 existing (18.28%) with 1276 input files.

@SuperFola SuperFola force-pushed the feat/debugger branch 2 times, most recently from 93ba83c to 84ac575 Compare January 15, 2026 19:07
@codspeed-hq
Copy link

codspeed-hq bot commented Jan 15, 2026

CodSpeed Performance Report

Merging this PR will improve performance by 1.51%

Comparing feat/debugger (d599a70) with dev (ada0e06)

Summary

⚡ 3 improved benchmarks
✅ 15 untouched benchmarks

Performance Changes

Benchmark BASE HEAD Efficiency
create_closure 4.7 ms 4.7 ms +1.04%
fibonacci 29 ms 28.7 ms +1.17%
ackermann 331.1 ms 326.2 ms +1.51%

@SuperFola
Copy link
Member Author

Seems like we got free performance improvements thanks to a compiler upgrade, because I certainly didn't update malloc/new implementation.

@SuperFola SuperFola marked this pull request as ready for review January 18, 2026 22:44
@SuperFola SuperFola merged commit 83e35d6 into dev Jan 19, 2026
27 checks passed
@SuperFola SuperFola deleted the feat/debugger branch January 19, 2026 17:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants