Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update SourcePawn. #2068

Merged
merged 1 commit into from
Nov 3, 2023
Merged

Update SourcePawn. #2068

merged 1 commit into from
Nov 3, 2023

Conversation

dvander
Copy link
Member

@dvander dvander commented Oct 20, 2023

This brings in a few breaking changes.

One, INVALID_FUNCTION is now 0 instead of -1. This is long overdue. Plugins should transparently work except in two cases:

  1. Third-party extensions that have a hardcoded test for -1 will no longer work. A new API has been provided for this, GetFunctionByIdOrNull.
  2. If a plugin "framework" uses INVALID_FUNCTION anywhere in its exported API, then all plugins using that framework need to be recompiled together, so they agree on the value of INVALID_FUNCTION.

Hopefully the damage here is minimal. The core plugin version has been bumped to 7 to try and limit conflicts.

Second, braceless functions are no longer supported. There wasn't really any way around this and it's better to bite the bullet now. This affects source compatibility, but not binary compatibility.

Third, the "using" keyword is no longer implemented. SourceMod now has a
Handle methodmap again. Plugins compiled against this new methodmap will
require a "Handle.~Handle" native, which 1.12 now provides.

This brings in a few breaking changes.

One, INVALID_FUNCTION is now 0 instead of -1. This is long overdue.
Plugins should transparently work except in two cases:

  1. Third-party extensions that have a hardcoded test for -1 will no
     longer work. A new API has been provided for this,
     GetFunctionByIdOrNull.
  2. If a plugin "framework" uses INVALID_FUNCTION anywhere in its
     exported API, then all plugins using that framework need to be
     recompiled together, so they agree on the value of
     INVALID_FUNCTION.

Hopefully the damage here is minimal. The core plugin version has been
bumped to 7 to try and limit conflicts.

Second, braceless functions are no longer supported. There wasn't really
any way around this and it's better to bite the bullet now. This affects
source compatibility, but not binary compatibility.

Third, the "using" keyword is no longer implemented. SourceMod now has a
Handle methodmap again. Plugins compiled against this new methodmap will
require a "Handle.~Handle" native, which 1.12 now provides.
@dvander dvander merged commit 060c832 into master Nov 3, 2023
@dvander dvander deleted the update-sp branch November 3, 2023 04:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant