Releases: BrettMayson/HEMTT
Version 1.13.2
New Book Domain
The book now has a new domain, https://hemtt.dev/! The github.io domain will continue to work.
Linux & MacOS Installer
There is now an installer script for Linux & MacOS! This script will download the latest version of HEMTT and install it to your system. It can be ran again to update your install.
curl -sSf https://hemtt.dev/install.sh | bash
HEMTT will now officially support MacOS, both Intel and Apple Silicon.
Added
- Installer for Linux & MacOS by @BrettMayson in #800
- preprocessor: warn on mismatched casing by @BrettMayson in #775
- project: improve version check errors by @BrettMayson in #795
- sqf: Add lint for vars that are ALL_CAPS and not a macro by @PabstMirror in #793
- sqf: comparison to static bool by @BrettMayson in #797
- sqf: in vehicle check should use objectParent by @BrettMayson in #796
- sqf: invalid comparisons by @BrettMayson in #801
- sqf: optimize _this call by @BrettMayson in #802
Fixed
- config: cfgpatches checks are now case insensitive by @BrettMayson in #792
- launch: fix Linux when using native steam by @BrettMayson in #799
- sqf: fix suggestions for eventhandler casing by @BrettMayson in #794
- pbo: preserve Vers header when reading PBOs by @BrettMayson in #798
Full Changelog: v1.13.1...v1.13.2
Version 1.13.1
Added
- book: add
hemtt book
command to open in browser by @BrettMayson in #791 - book: added sqf to summary and sorted content alphabetically by @R3voA3 in #778
- book: Add SQF page for
hemtt utils sqf
command(s) by @DartRuffian in #767 - preprocessor: 2.18 built in macros by @BrettMayson in #788
- project: check for BOM by @BrettMayson in #789
- sqf: Add lint for format args support to
formatText
by @PabstMirror in #766 - sqf: enable optimizer by default by @BrettMayson in #786
- sqf: Lint for
if ! else
by @PabstMirror in #768 - sqf: optimze param copies, getvar, vector by @PabstMirror in #764
Fixed
- common: don't filter errors that are partially from includes by @BrettMayson in #790
- config: class with inheritance need braces by @BrettMayson in #769
- launch: fix the new options when using extends by @BrettMayson in #759
- preprocessor: improve errors by @BrettMayson in #787
- sqf: Compile relative arma file paths by @PabstMirror in #761
- sqf: Don't allow trailing commas in arrays by @PabstMirror in #776
- sqf: Fix sqfc byte offset by @PabstMirror in #771
- utils: don't try to write ci annotations by @BrettMayson in #772
SQF Optimizer
HEMTT's SQF Optimizer is now enabled by default! The --expopti
flag is removed.
New Contributors
- @DartRuffian made their first contribution in #767
Full Changelog: v1.13.0...v1.13.1
Version 1.13.0
Added
- common: lint configuration in #747, #751
- common: some diag messages now include clickable links on supported terminals
- launch: add more config options in #752
- launch: link to workshop page for missing mods by @Crowdedlight in #741
- sqf: banned and broken commands in #753
- sqf: check
format
string and args by @PabstMirror in #745 - sqf: check command casing in #732, #757
- sqf: Optimizer by @PabstMirror in #743
- sqf: use hemtt's compiler in #750
Fixed
- common: cleanup for clippy by @PabstMirror in #744
- common: config rewrite in #738
- launch: clean up dead links in #737
- preprocessor: fix
//
inside single quote strings by @PabstMirror in #740 - sqf: fix serilizing empty code by @PabstMirror in #756, #736
- workspace: fix span extraction with length of 1 by @PabstMirror in #748
New Config Files
lints.toml
and launch.toml
can help keep your project.toml
clean
SQF Compiler
HEMTT's SQF compiler is default starting with 1.13.0! This will result in faster compilation times and more accurate error line numbers.
In case of any issues found, or just preference, you can still use ArmaScriptCompiler with the --asc
flag.
Lint Configuration
HEMTT's internal handling of lints has been completely rewritten, allowing for control of what lints are enabled, their severity, and options for each lint where applicable.
See what lints are available and how to configure them!
SQF Optimizer
@PabstMirror has started work on an SQF optimizer! It has been included in 1.13.0, but is disabled by default. To assist us in testing, you can use --expopti
to enable it. Please report any findings or issues you may have with it in #hemtt or on GitHub.
New Contributors
- @Crowdedlight made their first contribution in #741
Full Changelog: v1.12.5...v1.13.0
Version 1.12.5
Added
- Book: Added link to HEMTT VSCode extension by @R3voA3 in #719
- Book: Update Installation by @R3voA3 in #718
- CLI:
hemtt -v
shows version in #731 - CLI: Suggest
winget upgrade hemtt
if HEMTT is installed via winget - Launch: Add
--no-rap
flag to dev/launch by @PabstMirror in #722 - Launch: Add
--no-filepatching
flag to disable file patching in #716
Fixed
- CLI: Fix crash with no subcommand in #731
- Config: Show EOF errors and fix seg fault by @PabstMirror in #733
- Hooks: Fix runtime errors not failing builds in #730
- Hooks: File system operations not allowed on const variables in #730
- Preprocessor: Fix recursion on argument variables in #729
- Preprocessor: Fix
PE24
not displaying its code in error messages - Signing: Fix PBOs with only a config in #734
Full Changelog: v1.12.4...v1.12.5
Contribute
There are several areas that would be great for learning or practising Rust skills, or contribute in other ways to help HEMTT become an even better tool for people to use! Join us on Discord or check out the open issues to find ways you can help HEMTT.
Version 1.12.4
What's Changed
- book: Update DLC support for RF by @OverlordZorn in #710
- binarize: specify binarize folder with env in #714
- config: Check if any classes are duplicated by @PabstMirror in #712
Full Changelog: v1.12.3...v1.12.4
HEMTT SQFC Testing
HEMTT's SQFC compiler is ready for testing, this release, 1.12.4, removes the debug files that were being included in PBOs. If your mod runs RC or dev builds, please give it a try by using --expsqfc
and reporting if there are any bugs, or if everything is working great!
HEMTT 1.13.0 would be nice to have out in August with HEMTT SQFC compiler as default, unlocking faster builds and the ability for HEMTT to add SQF optimizations.
Version 1.12.3
What's Changed
- check: specify pdrive requirement
- sqf: basic event handlers support. checks for existence, correct command, and version requirements
- config: duplicate external error
- launch: Reaction Forces CDLC support
Full Changelog: v1.12.2...v1.12.3
Version 1.12.2
What's Changed
- SQF: custom command support in #697
Read about it in The HEMTT Book - new: fixes the crash in the
hemtt new
command
VSCode Extension
Updated to 0.2.12
- Will show errors and warnings from config files in the editor
- Custom command support
Full Changelog: v1.12.1...v1.12.2
Version 1.12.1
What's Changed
- Analyze: Skip SAA1 suggestion if consts used in
isNil
check by @PabstMirror in #694 - Book: updates & fixes by @R3voA3 in #684, #685, #687, #688, #689, #693
- New: don't write ci annotations in #695
- Preprocessor: fix #if parsing of tokens in #696
- Workspace: insensitive strip prefix on linux in #683
New Contributors
Full Changelog: v1.12.0...v1.12.1
Version 1.12.0
Launch - Extending & Multiple Configs
- Specify multiple configs to customize your launch
hemtt launch default ace ws
- Specify configs that extend others
P Drive - or Not!
- Projects can specify that they require a P Drive
- No P Drive? No problem! It will use your Arma 3 installation from Steam!
What's Changed
- Binarize: link all addons when using --just in #666
- Binarize: p3d missing textures & materials in #667
- Launch: extend configs in #668
- SQF: smarter suggestions, also won't make suggestions unless they are proven safe
- SQF: fixes missing {} and [] in some suggestions
- SQF: suggestions preserver original string, "" vs ''
- CI - Replace deprecated actions-rs and update actions by @jonpas in #672
Full Changelog: v1.11.2...v1.12.0
Version 1.11.2
Added
- Hooks: Directory commands #655
- Launch: Mission Support by @mharis001 in #649
- Rapify: Warn on .cpp files that aren't config.cpp
Fixed
- Value: Fix slow command execution on Windows
- Binarize: Fix not running on 1.11.1
Performance Improvements
The hemtt value
command was running very slow on Windows, 10+ seconds on some projects, compared to the Linux command running in under 500ms. This led to some investigation which extended beyond just the hemtt value
command. As a result of this, after several performance focused changes, including upstream to a library in use by HEMTT, HEMTT is now significantly faster.
hemtt check
on ACE's current master branch has gone from 6.163s to 1.23s on my test machine (AMD Ryzen 9 7950X running with 8 cores 2 threads in a Linux VM). A fifth the time!
Additionally, HEMTT will also use a decent amount of less RAM.
New Contributors
- @mharis001 made their first contribution in #649
Full Changelog: v1.11.1...v1.11.2