Olde ECL Tracking issue
Bench results (OLD = 57e0528, NEW = d780f5d), 23.1GB free on SSD
./update-dumps.py --anm --game 095:18 --noverify
OLD 1 OLD 2 NEW 1 NEW 2
anm-compile 72.209 72.112 73.333 73.357
anm-decompile 127.906 128.097 128.076 128.371
Not the best benchmark because it includes the time of copying uncompressed bitmaps (which often won't be the case for users), but the difference seems "measurable."
Original issue contents

.....yeah. I guess I've been putting ECL off for long enough, huh?
Details
Olde ECL Tracking issue
cmp/jmpoffsetofandtimeofcompilationoffsetofandtimeofdecompilationgoto label @ timeof(label)should probably be allowed (does not parse currently)ifdecompilationexpr_compiletests can be writtenexpr_compiletestsdifficultylabel in a difficulty switch tends to end up outside of a decompiled blockcargo test --test=integration_suite -- --ignored)$REG[-10009] = 240 / 6;(10 & ($I2 + 3))should produce an error with two spans, "$I2 is not const" and "const required because no instruction exists for&"--xand++x. (EoSD opcodes 18, 19)allow high-levelSignatures to have params that expect const argsARG_in PCB. Important becauseARG_{A,B,R,S}may be modified by code that usesRAND_RANGERANDvariables behave differently for int and float so_f($RAND)compiling into%RANDis not coolif (--X > 0) goto label;Subprefix. This goes in hand with the decision not to validate raw sub indices during compilation.breakast::StmtGotoan enumT(_)offsetof(label)in a time argument or vice versa. I've made this mistake numerous times myself...--no-diff-switchesconditional call syntax. Or not. Not is definitely an option.FandUdifficulty flags by looking at things that depend on them{"-F"}evaluating to having no ENHL flags seems like a bad footgun...scriptand give them an SclScriptenumBench results (OLD = 57e0528, NEW = d780f5d), 23.1GB free on SSD
Not the best benchmark because it includes the time of copying uncompressed bitmaps (which often won't be the case for users), but the difference seems "measurable."
Original issue contents
.....yeah. I guess I've been putting ECL off for long enough, huh?
Details