Skip to content

clean up check_sexp_syntax and improve caching - #7735

Merged
Goober5000 merged 1 commit into
scp-fs2open:masterfrom
Goober5000:cleanup/sexp_syntax_checking
Aug 30, 2026
Merged

Goober5000 merged 1 commit into
scp-fs2open:masterfrom
Goober5000:cleanup/sexp_syntax_checking

Conversation

@Goober5000

@Goober5000 Goober5000 commented Aug 23, 2026

Copy link
Copy Markdown
Contributor
  • Clean up check_sexp_syntax to use eval_ship (and incidentally eval_wing and eval_prop) rather than the old lookups.
  • Disable SEXP node caching while FRED is running. Also use smart pointers and fix a cache memory leak.

In draft as it depends on #7734

@Goober5000 Goober5000 added this to the Release 26.2 milestone Aug 23, 2026
@Goober5000 Goober5000 added cleanup A modification or rewrite of code to make it more understandable or easier to maintain. sexps A feature or issue related to SEXPs labels Aug 23, 2026
@Goober5000
Goober5000 force-pushed the cleanup/sexp_syntax_checking branch 5 times, most recently from a81ba38 to f759019 Compare August 24, 2026 02:25
@Goober5000 Goober5000 added the fix A fix for bugs, not-a-bugs, and/or regressions. label Aug 24, 2026
- Clean up `check_sexp_syntax` to use `eval_ship` (and incidentally `eval_wing` and `eval_prop`) rather than the old lookups.
- Disable SEXP node caching while FRED is running.  Also use smart pointers and fix a cache memory leak.
@Goober5000
Goober5000 force-pushed the cleanup/sexp_syntax_checking branch from f759019 to 8718952 Compare August 27, 2026 18:21
@Goober5000
Goober5000 marked this pull request as ready for review August 27, 2026 18:21
@Goober5000
Goober5000 merged commit e4ea11b into scp-fs2open:master Aug 30, 2026
18 checks passed
@Goober5000
Goober5000 deleted the cleanup/sexp_syntax_checking branch August 30, 2026 23:58
MjnMixael added a commit to ofp-fs2open/fs2open.github.com that referenced this pull request Sep 8, 2026
Takes 16 upstream commits. One conflict, both hunks in check_sexp_syntax
where SCP's cleanup (scp-fs2open#7735) rewrote the prop cases OFP had extended:

- OPF_PROP: adopted upstream's cached eval_prop() in place of
  prop_name_lookup(), inverted to keep OFP's fall-through so the
  "parsed but not yet spawned" check still runs before returning invalid.
- OPF_SHIP_PROP: kept OFP's arrival/spawn-list check, which upstream has
  no equivalent of.

Notable upstream change absorbed without incident: MAX_SHIP_CLASSES is gone
(scp-fs2open#7746). Nothing in OFP still referenced it -- last week's rewrite of
TeamLoadoutDialogState off the fixed arrays had already removed the only
uses, and team_data itself is unchanged this round. The loadout UI refactor
(scp-fs2open#7739) stayed inside missionui/ and doesn't reach the editor.

Upstream's flagset 64-bit round-trip fix (ba7aa70) lands here too; note
ofp/checkpoint-system carries its own independent version of that same fix,
which will need dropping on that branch's next rebase.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cleanup A modification or rewrite of code to make it more understandable or easier to maintain. fix A fix for bugs, not-a-bugs, and/or regressions. sexps A feature or issue related to SEXPs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants