Skip to content

SQFvm/runtime

Repository files navigation

SQF-VM

SQF-VM is a fully working and open-source Virtual Machine for the scripting language of the ArmA Games.

GitHub issues GitHub forks GitHub license GitHub stars Github All Releases Build Status Discord

Cloning

When cloning this repository, you have to do a recursive clone by doing the following: git clone https://github.com/SQFvm/vm.git --recursive.

If you already have cloned without the --recursive, you have to perform git submodule init followed by git submodule update in order to get all dependencies cloned.

FAQ

How to use this thing?

To start using the SQF-VM, you just have to double click the executable.

What can it be used for (examples)?

Most obvious example is: you are using a laptop while traveling and wanna test some SQF code. More advanced users might even use this for unit-testing their code.

Are there command line parameters available to eg. use this for unit-testing?

Yes, there are. To get all, start the tool via command line and the parameter -?

How to use the debug interface?

There is documentation available on the github page inside of Documentation/Debugger.

What is supported?

To check what currently is supported and what is not, you can use the help__ "name" command. If it outputs proper descriptions, the command is fully supported. If it does not, then the command is not yet implemented sadly.

I found a bug, what shall i do now?

Try to narrow down the problem as much as you can and then head over to the github issues section to report the bug.

I got a question that is not answered in here, what to do?

Ask your question in this thread or in the discord channel and i might add it to this list :)

Links

Website (Download) Discord Invite

Issue / Pull Request Template

A template on how to make Pull Requests can be found here

For Issues please use this template.

Wiki / Documentation

WIP, for now please refer to the Discord.

Diagnostics build flags

Macro Name Prefix stdout Description
DF__SQF_RUNTIME__ASSEMBLY_DEBUG_ON_EXECUTE \x1B[94m[ASSEMBLY ASSERT]\033[0m Enables enhanced debug output to console that allows diagnosing issues related to the execution.
DF__SQF_FILEIO__ALL_FILES \x1B[94m[FILEIO-ALLFILES]\033[0m Outputs the files located of the allFiles ARRAY operation.
DF__SQF_PREPROC__TRACE_MACRO_RESOLVE \x1B[94m[PREPROCESSOR-RS]\033[0m Outputs every step during resolution of macro chains.
DF__SQF_PREPROC__TRACE_MACRO_PARSE \x1B[94m[PP-DEFINE-PARSE]\033[0m Outputs additional info during macro-parsing.
DF__SQF_CONFIG__REPORT_PROGRESS_BY_LINE \x1B[94m[CNF-PARSE-PROGR]\033[0m Counts the lines in a config-to-parse and reports progress according to it to stdout.
DF__SQF_RUNTIME__VALUE_SCOPE_DEBUG \x1B[94m[VALUE-SCOPE-DBG]\033[0m Every variable-change,-get,-set is logged to console.
DF__CLI_PRINT_INPUT_ARGS \x1B[95m[CLI-INARG-PRINT]\033[0m Tells the CLI to print out the arguments received.
DF__CLI_PRINT_TCLAP_ARGUMENTS \x1B[95m[CLI-TCLAP-CNTNT]\033[0m Tells the CLI to print out the parsed arguments available.