Skip to content

Conversation

@SuperFola
Copy link
Member

@SuperFola SuperFola commented Oct 10, 2025

Description

Now the bytecode reader output has the file and line number:

Code segment 0 (length: 48)
a.ark
   1   0 0b 00 00 03 PUSH_RETURN_ADDRESS
       1 3c 00 10 00 LOAD_CONST_LOAD_CONST value (String), key (String)
       2 52 00 20 3a CALL_BUILTIN dict, 2
       3 05 00 00 00 STORE a
       4 0b 00 00 0a PUSH_RETURN_ADDRESS
       5 0f 00 00 00 BUILTIN false
       6 0f 00 00 01 BUILTIN true
       7 3c 00 30 02 LOAD_CONST_LOAD_CONST 2 (Number), 1 (Number)
   2   8 3c 00 10 00 LOAD_CONST_LOAD_CONST value (String), key (String)
       9 52 00 60 3a CALL_BUILTIN dict, 6
      10 53 00 10 09 CALL_BUILTIN_WITHOUT_RETURN_ADDRESS print, 1
      11 0a 00 00 00 HALT

# for the following code
(let a (dict "key" "value"))
(let b (dict "key" "value" 1 2 true false))

(print a)

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

@SuperFola SuperFola force-pushed the feat/lines-in-bytecode-reader branch from 1b5b5f7 to 49a38cb Compare October 10, 2025 16:58
@github-actions
Copy link

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/Compiler/BytecodeReader.cpp 297:708 Ark::BytecodeReader::display 4 362 110
Report about files you didn't modify in this PR
Filename Start line:end line Function name Parameters NLOC CCN
src/arkreactor/VM/VM.cpp 493:2020 Ark::VM::safeRun 3 1277 258
src/arkreactor/Compiler/Macros/Processor.cpp 253:637 Ark::internal::MacroProcessor::evaluate 3 354 122
src/arkreactor/Error/Diagnostics.cpp 43:187 Ark::Diagnostics::makeContext 4 105 43
src/arkreactor/Compiler/Lowerer/ASTLowerer.cpp 560:734 Ark::internal::ASTLowerer::handleCalls 4 132 43
src/arkscript/JsonCompiler.cpp 27:260 JsonCompiler::_compile 1 200 36
src/arkreactor/Compiler/NameResolution/NameResolutionPass.cpp 161:265 Ark::internal::NameResolutionPass::visitKeyword 3 83 33
src/arkreactor/Compiler/AST/Parser.cpp 807:898 Ark::internal::Parser::string 1 88 32
src/arkscript/main.cpp 23:323 main 2 255 29
src/arkreactor/Compiler/AST/Node.cpp 179:277 Ark::internal::Node::repr 0 84 28
src/arkreactor/Compiler/Lowerer/ASTLowerer.cpp 138:241 Ark::internal::ASTLowerer::compileExpression 4 85 27
src/arkreactor/Compiler/Macros/Processor.cpp 102:185 Ark::internal::MacroProcessor::processNode 3 61 27
src/arkreactor/Compiler/AST/Node.cpp 279:352 Ark::internal::Node::debugPrint 1 64 24
src/arkreactor/TypeChecker.cpp 110:194 Ark::types::generateError 5 72 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
src/arkreactor/Compiler/Lowerer/ASTLowerer.cpp 267:326 Ark::internal::ASTLowerer::compileListInstruction 3 49 22
src/arkreactor/VM/VM.cpp 2139:2243 Ark::VM::backtrace 3 89 22
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/REPL/Utils.cpp 52:184 Ark::internal::getColorPerKeyword 0 110 19
src/arkreactor/Compiler/NameResolution/StaticScope.cpp 68:109 Ark::internal::NamespaceScope::get 3 32 19
src/arkreactor/VM/Value.cpp 77:140 Ark::Value::toString 1 50 19
src/arkreactor/TypeChecker.cpp 28:108 Ark::types::displayContract 4 70 19
src/arkscript/Formatter.cpp 482:528 Formatter::formatCall 2 42 18
src/arkreactor/Compiler/Macros/Executors/Function.cpp 16:91 Ark::internal::FunctionExecutor::applyMacro 2 55 17
include/Ark/Compiler/AST/Predicates.hpp 132:156 Ark::internal::IsSymbol::operator ( ) 1 24 16
src/arkscript/Formatter.cpp 173:229 Formatter::format 3 53 16
src/arkreactor/Compiler/Macros/Processor.cpp 719:758 Ark::internal::MacroProcessor::isConstEval 1 35 16
src/arkscript/Formatter.cpp 279:320 Formatter::formatFunction 2 35 15
src/arkreactor/Compiler/Lowerer/ASTLowerer.cpp 78:94 Ark::internal::ASTLowerer::nodeProducesOutput 1 13 15
src/arkreactor/Compiler/Macros/Executors/Function.cpp 101:158 Ark::internal::FunctionExecutor::unify 5 50 15
src/arkreactor/Compiler/IntermediateRepresentation/IROptimizer.cpp 12:206 Ark::internal::IROptimizer::IROptimizer 1 170 4
src/arkreactor/Error/Diagnostics.cpp 189:202 Ark::Diagnostics::helper 6 13 2

CppCheck report

Filename Line Type Description
src/arkreactor/Compiler/BytecodeReader.cpp 473 style struct member 'Arg::kind' is never used.
Report files about files you didn't modify in this PR
Filename Line Type Description
include/Ark/VM/VM.inl 253 style Variable 'maybe_value_ptr' can be declared as pointer to const
src/arkreactor/Compiler/NameResolution/ScopeResolver.cpp 134 style Consider using std::find_if algorithm instead of a raw loop.
include/Ark/VM/Future.hpp 50 style Unused private function: 'Future::deleteSelfViaVM'
src/arkreactor/VM/Future.cpp 23 performance Variable 'm_value' is assigned in constructor body. Consider performing initialization in initialization list.
src/arkreactor/VM/State.cpp 190 style Consider using std::any_of, std::all_of, std::none_of algorithm instead of a raw loop.
src/arkreactor/VM/VM.cpp 494 information Limiting ValueFlow analysis in function 'safeRun' since it is too complex. Please specify --check-level=exhaustive to perform full analysis.
src/arkreactor/VM/VM.cpp 372 error Iterators of different containers 'm_execution_contexts.emplace_back(std::make_unique())' and 'm_execution_contexts.front()' are used together.

@SuperFola SuperFola merged commit 9633d71 into dev Oct 10, 2025
25 of 26 checks passed
@SuperFola SuperFola deleted the feat/lines-in-bytecode-reader branch October 10, 2025 17:06
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.

2 participants