Jump to content

Recommended Posts

7add69a8c6ee57cbaa2b6d5203fded75.png

SQF-VM

The SQF emulator

A fully working, open-source Virtual Machine for the scripting language of the ArmA Games.

Links

 

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 -?
     
  • What is supported?
    To see what is supported in the specific build you are using, use the non-sqf compliant help__ command.
    The output of that command for version Alpha 0.1.3
    Spoiler
    
    ERRORS might result in crash
    
    NAME:TYPE:PRECEDENCE:USAGE
    BOOL:t:0:(null)
    NOTHING:t:0:(null)
    WHILE:t:0:(null)
    OBJECT:t:0:(null)
    NAMESPACE:t:0:(null)
    SWITCH:t:0:(null)
    GROUP:t:0:(null)
    ANY:t:0:(null)
    NaN:t:0:(null)
    IF:t:0:(null)
    SCALAR:t:0:(null)
    STRING:t:0:(null)
    FOR:t:0:(null)
    CODE:t:0:(null)
    COUNT__:t:0:(null)
    ARRAY:t:0:(null)
    WITH:t:0:(null)
    SIDE:t:0:(null)
    blufor:n:4:blufor
    true:n:4:true
    false:n:4:false
    sideEnemy:n:4:sideEnemy
    civilian:n:4:civilian
    independent:n:4:independent
    resistance:n:4:resistance
    sideUnknown:n:4:sideUnknown
    sideFriendly:n:4:sideFriendly
    east:n:4:east
    sideEmpty:n:4:sideEmpty
    missionNamespace:n:4:missionNamespace
    profileNamespace:n:4:profileNamespace
    sideLogic:n:4:sideLogic
    help__:n:4:help__
    pi:n:4:pi
    opfor:n:4:opfor
    nil:n:4:nil
    productVersion:n:4:productVersion
    diag_tickTime:n:4:diag_tickTime
    parsingNamespace:n:4:parsingNamespace
    objNull:n:4:objNull
    uiNamespace:n:4:uiNamespace
    west:n:4:west
    allGroups:n:4:allGroups
    deg:u:4:deg <SCALAR>
    exp:u:4:exp <SCALAR>
    atan:u:4:atan <SCALAR>
    atg:u:4:atg <SCALAR>
    random:u:4:random <SCALAR>
    isNil:u:4:isNil <STRING> | isNil <CODE>
    private:u:4:private <STRING> | private <ARRAY>
    tan:u:4:tan <SCALAR>
    getPos:u:4:getPos <OBJECT>
    str:u:4:str <ANY>
    deleteVehicle:u:4:deleteVehicle <OBJECT>
    systemChat:u:4:systemChat <STRING>
    call:u:4:call <CODE>
    rad:u:4:rad <SCALAR>
    toArray:u:4:toArray <STRING>
    diag_log:u:4:diag_log <ANY>
    for:u:4:for <STRING>
    acos:u:4:acos <SCALAR>
    !:u:4:! <BOOL>
    createGroup:u:4:createGroup <SIDE>
    ln:u:4:ln <SCALAR>
    round:u:4:round <SCALAR>
    comment:u:4:comment <BOOL>
    case:u:4:case <ANY>
    with:u:4:with <NAMESPACE>
    while:u:4:while <CODE>
    typeName:u:4:typeName <ANY>
    sin:u:4:sin <SCALAR>
    floor:u:4:floor <SCALAR>
    if:u:4:if <BOOL>
    abs:u:4:abs <SCALAR>
    deleteGroup:u:4:deleteGroup <GROUP>
    cos:u:4:cos <SCALAR>
    compile:u:4:compile <STRING>
    units:u:4:units <GROUP>
    help__:u:4:help__ <STRING>
    sqrt:u:4:sqrt <SCALAR>
    switch:u:4:switch <ANY>
    groupId:u:4:groupId <GROUP>
    count:u:4:count <STRING> | count <ARRAY>
    +:u:4:+ <ARRAY> | + <SCALAR> | + <NaN>
    asin:u:4:asin <SCALAR>
    position:u:4:position <OBJECT>
    allVariables:u:4:allVariables <OBJECT> | allVariables <NAMESPACE> | allVariables <GROUP>
    ceil:u:4:ceil <SCALAR>
    typeOf:u:4:typeOf <OBJECT>
    -:u:4:- <SCALAR>
    velocity:u:4:velocity <OBJECT>
    params:u:4:params <ARRAY>
    log:u:4:log <SCALAR>
    default:u:4:default <CODE>
    format:u:4:format <ARRAY>
    toString:u:4:toString <ARRAY>
    hint:u:4:hint <STRING>
    do:b:4:<WHILE> do <CODE> | <FOR> do <CODE> | <WITH> do <CODE>
    ==:b:3:<SCALAR> == <SCALAR> | <OBJECT> == <OBJECT> | <STRING> == <STRING>
    from:b:4:<FOR> from <SCALAR>
    mod:b:7:<SCALAR> mod <SCALAR>
    max:b:6:<SCALAR> max <SCALAR>
    !=:b:3:<SCALAR> != <SCALAR> | <OBJECT> != <OBJECT> | <STRING> != <STRING>
    createUnit:b:4:<GROUP> createUnit <ARRAY
    pushBack:b:4:<ARRAY> pushBack <ANY>
    call:b:4:<ANY> call <CODE>
    ::b:4:<SWITCH> : <CODE>
    or:b:1:<BOOL> or <BOOL> | <BOOL> or <CODE>
    and:b:2:<BOOL> and <BOOL>
    to:b:4:<FOR> to <SCALAR>
    createVehicle:b:4:<STRING> createVehicle <ARRAY>
    <:b:3:<SCALAR> < <SCALAR>
    isEqualType:b:4:<ANY> isEqualType <ANY>
    >:b:3:<SCALAR> > <SCALAR>
    step:b:4:<FOR> step <SCALAR>
    :b:7:<SCALAR> <SCALAR>
    >=:b:3:<SCALAR> >= <SCALAR>
    ||:b:1:<BOOL> || <BOOL> | <BOOL> || <CODE>
    &&:b:2:<BOOL> && <BOOL> | <BOOL> && <CODE>
    select:b:10:<ARRAY> select <SCALAR> | <ARRAY> select <BOOL>
    set:b:4:<ARRAY> set <ANY>
    min:b:6:<SCALAR> min <SCALAR>
    <=:b:3:<SCALAR> <= <SCALAR>
    atan2:b:7:<SCALAR> atan2 <SCALAR>
    *:b:7:<SCALAR> * <SCALAR>
    count:b:4:<CODE> count <ARRAY> | <COUNT> count <STRING>
    +:b:6:<SCALAR> + <SCALAR> | <STRING> + <STRING> | <ARRAY> + <ANY>
    ^:b:9:<SCALAR> ^ <SCALAR>
    setVariable:b:4:<NAMESPACE> setVariable <ARRAY> | <OBJECT> setVariable <ARRAY>
    -:b:6:<SCALAR> - <SCALAR> | <ARRAY> - <ARRAY>
    isEqualTo:b:4:<ANY> isEqualTo <ANY>
    setPos:b:4: <OBJECT> setPos <ARRAY>
    setVelocity:b:4: <OBJECT> setVelocity <ARRAY>
    then:b:4:<IF> then <ARRAY>
    params:b:4:<ANY> params <ARRAY>
    /:b:7:<SCALAR> / <SCALAR>
    getVariable:b:4:<NAMESPACE> getVariable <STRING> | <NAMESPACE> getVariable <ARRAY> | <OBJECT> getVariable <STRING> | <OBJECT> getVariable <ARRAY>
    else:b:5:<CODE> else <CODE>
    forEach:b:4:<CODE> forEach <ARRAY> | <COUNT> forEach <ARRAY>
    doMove:b:4:<OBJECT> doMove <ARRAY> | <ARRAY> doMove <ARRAY>
    

     


     
  • I entered SQF with invalid syntax and the VM is outputting gibberish
    The SQF-VM project is not aiming to do any actual syntax checking.
    The tool expects valid SQF as input and invalid syntax might result in invalid execution stacks.
     
  • I found a bug, what shall i do now?
    First of all: if it is due to invalid syntax not getting reported correctly, nothing.
    After that: Ensure all commands used are actually supported in your SQF-VM version using the help command
    If it is not caused due to invalid syntax or a missing command in the SQF-VM, try to narrow down the problem as much as you can and then head over to the github issues section to report the bug.
    The only exception to the above is a crash! Crashes you always can report :)
     
  • 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 :)

 

Downloads

    All releases can also be found inside of the releases section of the github repository.

 

Changelog

0.1.3-alpha
    Added allGroups nullar
    Added createUnit and units command
    fix
    Added groupId command and fixed stuff related to commits since adding deletevehicle
    added createGroup and deleteGroup
    enhanced examples for isNil
    Added deleteVehicle
    fixxed memory leak on call to deleteInner
    Implemented isNil
    Added params command
    fixed if unary command has binary version and is on righthand side of assignment the binary one would be picked
    altered instruction count note
    now using vm->stack for all errors in *_stack functions
    fixed crash when assigning empty to variable (due to code block ending with assignment)
    fixed crash when assigning empty to variable (due to code block ending with assignment)
    fixed segfault on large print output due to alloca usage
    Added instruction count output to sqf-vm
    fixed order of array-creating commands being inversed
    removed duplicate declaration of arr
    Replaced instruction adding of arrays by array_push calls
    No more tailing zeros
    fixed error on invalid type for toString
    Added toArray and toString
    fixed invalid usage strings
    Merge branch 'master' of https://github.com/X39/sqf-vm.git
    added  execution on channels starting with sqf
    systemChat and hint no longer output (null) on empty strings
    fixed precedence of all commands
    added `systemChat` and `hint`
    added isEqualType
    Merge branch 'master' of https://github.com/X39/sqf-vm.git
    Merge pull request #9 from Dahlgren/bugfix/malloc
    malloc.h does not exist in standard C, use stdlib.h
    Added `<ARRAY> select <BOOL>`
    fixed `help__ "||"` usage fucks up due to | being splitter here
    fixed if unary and nullar exist for same command, nullar gets picked if nothing is on right hand
    Fixed memory leaks & out-of-memory crashes due to strings too large
    stringification of null string wont crash anymore
    Added examples to compile
    Added compile command
    Moved check into correct command
    Added empty string check to help__
    Altered error message
    Now always checking for all commands to prevent binary commands being interpreted as variable
    Fixed stringification of strings and added empty string check to set- and getVariable
    Added empty string check to help__
    Improved debug informations snippet
    Hashing is no longer case sensitive
    fixed examples of `help__` and added
    removed unused variable
    fixed `help__ <STRING>` formatting
    fixed warnings & fixed invalid method usage
    fixed memory leaks
    Added `with` command
    Added AllVariables
    Added proper support for removing variables
    added `nil` command
    fixed example of `<CODE> count <ARRAY>`
    Further style changes to help__
    fixed examples not getting printed
    fixed warnings
    doomed keyboard ...
    Implemented extra info into `help__ <STRING>` and now outputting usage instead of description in `help__`
    fixed order off `<ARRA> - <ARRAY>`
    fixed create_command error
    Added more description to commands
    Added support for `<ARRAY> - <ARRAY>`; `==` and `!=` now properly error out on missmatching types
    fixed missing righthand on typename segfaults
    forgot to add the check if nothing was found
    Added note when nothing was found to `help__` and added header
    Added `help__` unary variant
    Did stuff
    doMove now supports array syntax
    Added objNull
    Added null check to objects
    POBJECT object_create(const char* classname) is exposed again
    Added ccomment placeholder for WITH type in is_equal_to
    fixed is_equal_to for objects
    Added stringify cases for NOTHING and ANY
    More stringify & isEqualTo type compatibility
    added side to stringify
    Added side commands
    Added SQF stupidity that `,` also can be used to terminate instead of `;`
    fix of merge
    merge
    fixed issues i didnt see thx to visual studio not building properly ...
    Altered productname & upped build number
    Upped version
    Added VEHICLE & UNIT inner-objects to OBJECT
    removed bool.h
    Added SIDE type
    Added garbage fix for gcc on debian trash glibc implementation bullshittery
    added return for non-windows machines
    removed unneded variable, renamed variable
    Merge branch 'master' of https://github.com/X39/sqf-vm
    Added missing blank
    Cleaned up warnings
    fixed crash due to uninitialized variable
    Merge branch 'master' of https://github.com/X39/sqf-vm
    Added FAQ
    fixed private <string>
    Added NAN to log -1 and unary +
    Added doMove
0.1.2-alpha
	Added more checks to FOR
	fix
	re-fixed endless attempt to parse empty blocks
	Added Switch case do
	Added ForEach
	fixed parser
	fix
	Moved OBJECT type into its own file
	fixed array parsing
	Fixed array order
	Added productversion
	added missing comparison types to ==, added !=
	Added velocity and setVelocity
	Added getPos, position and setPos
	Added typeOf
	added setVariable & getVariable
	malloc sizeof from pointer to actual struct
	fixed invalid malloc sizeof
	fixed copy-paste error
	Added createVehicle
	Added OBJECT type
	fixed last token getting proper textrange info
	fixed empty string not terminated segfault
	unterminated strings are no longer trimmed by 2 chars
	Added COUNT type to vm types
0.1.1-alpha
	fixed strcmpi undefined
	fixed warnings
	fixed sm_get_value_index function
	Added isEqualTo
	Fixed warnings
	renamed `COUNT` type to `COUNT__`
	renamed `help` command to `help__`
	Fixed issue caused by deallocated commands in code stacks on global variables
	Cleaned up files
	removed comment
	Improved code_type performance
	Added c function to compare two items for equality
	Added set command
	only admins now can execute commands
	Added pushBack command
	<ARRAY> select <ARRAY-SIZE> now properly pushes a nothing to the stack
	Fixed empty value assignment crashing
	Merge branch 'master' of https://github.com/X39/sqf-vm.git
	fixed bot
	replaced test 2k with 0
	fixed index out of range for select; fixed zero divisor
	fixed max length for buffer
	Added decode to string to remove python bullshittery nonsense
	fixed bot
	added missing ')'
	fixed python bot
	removed unneeded vars
	code fix
	more code fixes
	further fix
	fixed error declaration & renamed to orig_error
	Fixed buffer passing
	fixed syntax
	replaced tabs with spaces
	updated python bot
	Moved commands into separate file, added special print function to sqfvm
	fixed format stringifying strings
	removed unneeded variables from cmd_comment
	fixed empty string concat
	Now always including <limits.h>
	Merge branch 'master' of https://github.com/X39/sqf-vm.git
	fixed entry.c for gcc
	Fixed MemoryLeaks
	removed module feedparser
	Added -s param to change the max instructions limit
	fixed command callback ptr of comment function
	added `comment` command
	Added comment support to tokenizer
	Added ^ and % to tokenizer
	Added ^ command
	Added alternative syntax to and & or
	Added mod alias `%`
	Fixed description of atan2, min, max and mod
	fixed mod, max, min and atan2 being registered as unary commands instead of binary
	Added `!` unary command
	Updated help texts
	changed build name
0.1.0-alpha
	-/-

 

  • Like 7

Share this post


Link to post
Share on other sites
50 minutes ago, engima said:

Wow. What can it be used for? Programming Windows applications in SQF?

 

I've been using for testing SQF when not on a PC with arma, someone else suggested it could be used for unit testing and scripts you make too.

Share this post


Link to post
Share on other sites

0.1.1 will be released next monday (04.09.2017) containing fixes for memory leaks, new commands, fixes for existing commands and a new switch to modify the max instructions limit (also included: non-sqf commands will be suffixed by a __ --> `help` will be renamed to `help__`)

0.2.0 will then hopefully be released the week after again on monday (11.09.2017) which then will contain first object stuff

 

 

6 hours ago, engima said:

Wow. What can it be used for? Programming Windows applications in SQF?

in theory, one could do that

just need to add the required commands for interaction with win-api

Share this post


Link to post
Share on other sites

So if I have a script that let's say spawns and removes units at certain distance from the player, can I run that in your VM and monitor what happens (that a unit is really removed as it is supposed to) when the player moves away? I mean, I would need to input the player's behavior, like position and direction and such things, since the script is made to react to it. Can I do that for example by spawning a "player thread".

 

If I have a script that makes an AI unit do something when it detects the player (knowsAbout > 0). Are you emulating such events? Or where have you set the borders? It would be awesome, but is it doable without help from the actual game engine?

Share this post


Link to post
Share on other sites
1 hour ago, engima said:

So if I have a script that let's say spawns and removes units at certain distance from the player, can I run that in your VM and monitor what happens (that a unit is really removed as it is supposed to) when the player moves away? I mean, I would need to input the player's behavior, like position and direction and such things, since the script is made to react to it. Can I do that for example by spawning a "player thread".

 

If I have a script that makes an AI unit do something when it detects the player (knowsAbout > 0). Are you emulating such events? Or where have you set the borders? It would be awesome, but is it doable without help from the actual game engine?

 

you would need to make the AI object know about the player, same with movement (there will be special vm-specific commands for that)

 

right now, spawn is not possible at all btw.

Share this post


Link to post
Share on other sites

Ok, I guess there's a reason you give it version 0.1. :) But it is a very interesting idea! Nice work!

Share this post


Link to post
Share on other sites
6 hours ago, engima said:

Ok, I guess there's a reason you give it version 0.1. :) But it is a very interesting idea! Nice work!

well ... whole project started on August 21st so ... yes :don11:

Share this post


Link to post
Share on other sites

Hi Folks,

 

Intriguing - as someone who tries to write scripts while I travel on my laptop - sans ArmA - this might be really helpful...

 

Great idea - I'll have to take a gander...

 

Thanks...

 

Regards,

Scott 

Share this post


Link to post
Share on other sites

Version Alpha 0.1.1

 

Highlights:

  • Code is now pre-parsed instead of parsing it when code_load instruction is executed
  • DBGINF structure is now holding the code hint directly
  • new command line parameter -s
  • Fixes and more
  • new commands: %, ^, pushBack, set, isEqualTo, !, comment

Full Changelog:

fixed strcmpi undefined
fixed warnings
fixed sm_get_value_index function
Added isEqualTo
Fixed warnings
renamed `COUNT` type to `COUNT__`
renamed `help` command to `help__`
Fixed issue caused by deallocated commands in code stacks on global variables
Cleaned up files
removed comment
Improved code_type performance
Added c function to compare two items for equality
Added set command
only admins now can execute commands
Added pushBack command
<ARRAY> select <ARRAY-SIZE> now properly pushes a nothing to the stack
Fixed empty value assignment crashing
Merge branch 'master' of https://github.com/X39/sqf-vm.git
fixed bot
replaced test 2k with 0
fixed index out of range for select; fixed zero divisor
fixed max length for buffer
Added decode to string to remove python bullshittery nonsense
fixed bot
added missing ')'
fixed python bot
removed unneeded vars
code fix
more code fixes
further fix
fixed error declaration & renamed to orig_error
Fixed buffer passing
fixed syntax
replaced tabs with spaces
updated python bot
Moved commands into separate file, added special print function to sqfvm
fixed format stringifying strings
removed unneeded variables from cmd_comment
fixed empty string concat
Now always including <limits.h>
Merge branch 'master' of https://github.com/X39/sqf-vm.git
fixed entry.c for gcc
Fixed MemoryLeaks
removed module feedparser
Added -s param to change the max instructions limit
fixed command callback ptr of comment function
added `comment` command
Added comment support to tokenizer
Added ^ and % to tokenizer
Added ^ command
Added alternative syntax to and & or
Added mod alias `%`
Fixed description of atan2, min, max and mod
fixed mod, max, min and atan2 being registered as unary commands instead of binary
Added `!` unary command
Updated help texts
changed build name

 

Share this post


Link to post
Share on other sites

next weeks update is on track already

 

new commands in the github (and discord bot) for today: position, getPos, setPos, velocity, setVelocity, createVehicle, getVariable, setVariable

Share this post


Link to post
Share on other sites

https://github.com/X39/sqf-vm/releases/tag/0.1.2-alpha

 

Added more checks to FOR
fix
re-fixed endless attempt to parse empty blocks
Added Switch case do
Added ForEach
fixed parser
fix
Moved OBJECT type into its own file
fixed array parsing
Fixed array order
Added productversion
added missing comparison types to ==, added !=
Added velocity and setVelocity
Added getPos, position and setPos
Added typeOf
added setVariable & getVariable
malloc sizeof from pointer to actual struct
fixed invalid malloc sizeof
fixed copy-paste error
Added createVehicle
Added OBJECT type
fixed last token getting proper textrange info
fixed empty string not terminated segfault
unterminated strings are no longer trimmed by 2 chars
Added COUNT type to vm types

 

next release can be expected to contain sides & groups

Share this post


Link to post
Share on other sites

quick status update on ... well ... the update :dozingoff:

 

Getting progress done but not as much as i hoped ... thats why the update of this week also is delayed till next week (discord bot is as usual up-to-date with latest version available)

 

the range of planned features did not changed

 

 

 

I also will introduce an unary variant of the help__ command that outputs stuff like this (here for the command itself):

<NULLAR> help__
    Description:
        Displays this help text.
    Usage:
    Examples:
        help__ //nil

<UNARY> help__
    Description:
        Outputs information to given command. Expects a <STRING> on righthand. Usage: help__ "command"
    Usage:
    Examples:
        help__ "typeOf"//nil

 

Share this post


Link to post
Share on other sites
3 hours ago, Ilias48rus said:

Why " help__ " and " _help " ?

(hope question not too stupid)

mistake of mine

 

obviously `help__` :3

all those examples are hand-written thus typos etc. might occur

wont be in release though (and edited the post)

  • Like 1

Share this post


Link to post
Share on other sites

next release also will contain the `params` command

Share this post


Link to post
Share on other sites

Release 0.1.3-alpha

also posting (again) the link to the discord of the sqf-vm https://discord.gg/b5qCUCK where the bot variant is available in

0.1.3-alpha
    Added allGroups nullar
    Added createUnit and units command
    fix
    Added groupId command and fixed stuff related to commits since adding deletevehicle
    added createGroup and deleteGroup
    enhanced examples for isNil
    Added deleteVehicle
    fixxed memory leak on call to deleteInner
    Implemented isNil
    Added params command
    fixed if unary command has binary version and is on righthand side of assignment the binary one would be picked
    altered instruction count note
    now using vm->stack for all errors in *_stack functions
    fixed crash when assigning empty to variable (due to code block ending with assignment)
    fixed crash when assigning empty to variable (due to code block ending with assignment)
    fixed segfault on large print output due to alloca usage
    Added instruction count output to sqf-vm
    fixed order of array-creating commands being inversed
    removed duplicate declaration of arr
    Replaced instruction adding of arrays by array_push calls
    No more tailing zeros
    fixed error on invalid type for toString
    Added toArray and toString
    fixed invalid usage strings
    Merge branch 'master' of https://github.com/X39/sqf-vm.git
    added  execution on channels starting with sqf
    systemChat and hint no longer output (null) on empty strings
    fixed precedence of all commands
    added `systemChat` and `hint`
    added isEqualType
    Merge branch 'master' of https://github.com/X39/sqf-vm.git
    Merge pull request #9 from Dahlgren/bugfix/malloc
    malloc.h does not exist in standard C, use stdlib.h
    Added `<ARRAY> select <BOOL>`
    fixed `help__ "||"` usage fucks up due to | being splitter here
    fixed if unary and nullar exist for same command, nullar gets picked if nothing is on right hand
    Fixed memory leaks & out-of-memory crashes due to strings too large
    stringification of null string wont crash anymore
    Added examples to compile
    Added compile command
    Moved check into correct command
    Added empty string check to help__
    Altered error message
    Now always checking for all commands to prevent binary commands being interpreted as variable
    Fixed stringification of strings and added empty string check to set- and getVariable
    Added empty string check to help__
    Improved debug informations snippet
    Hashing is no longer case sensitive
    fixed examples of `help__` and added
    removed unused variable
    fixed `help__ <STRING>` formatting
    fixed warnings & fixed invalid method usage
    fixed memory leaks
    Added `with` command
    Added AllVariables
    Added proper support for removing variables
    added `nil` command
    fixed example of `<CODE> count <ARRAY>`
    Further style changes to help__
    fixed examples not getting printed
    fixed warnings
    doomed keyboard ...
    Implemented extra info into `help__ <STRING>` and now outputting usage instead of description in `help__`
    fixed order off `<ARRA> - <ARRAY>`
    fixed create_command error
    Added more description to commands
    Added support for `<ARRAY> - <ARRAY>`; `==` and `!=` now properly error out on missmatching types
    fixed missing righthand on typename segfaults
    forgot to add the check if nothing was found
    Added note when nothing was found to `help__` and added header
    Added `help__` unary variant
    Did stuff
    doMove now supports array syntax
    Added objNull
    Added null check to objects
    POBJECT object_create(const char* classname) is exposed again
    Added ccomment placeholder for WITH type in is_equal_to
    fixed is_equal_to for objects
    Added stringify cases for NOTHING and ANY
    More stringify & isEqualTo type compatibility
    added side to stringify
    Added side commands
    Added SQF stupidity that `,` also can be used to terminate instead of `;`
    fix of merge
    merge
    fixed issues i didnt see thx to visual studio not building properly ...
    Altered productname & upped build number
    Upped version
    Added VEHICLE & UNIT inner-objects to OBJECT
    removed bool.h
    Added SIDE type
    Added garbage fix for gcc on debian trash glibc implementation bullshittery
    added return for non-windows machines
    removed unneded variable, renamed variable
    Merge branch 'master' of https://github.com/X39/sqf-vm
    Added missing blank
    Cleaned up warnings
    fixed crash due to uninitialized variable
    Merge branch 'master' of https://github.com/X39/sqf-vm
    Added FAQ
    fixed private <string>
    Added NAN to log -1 and unary +
    Added doMove

 

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×