Skip to content

Commit

Permalink
Update 1.12 release notes.
Browse files Browse the repository at this point in the history
  • Loading branch information
dvander committed Nov 30, 2024
1 parent b657378 commit 6cdbb26
Showing 1 changed file with 17 additions and 3 deletions.
20 changes: 17 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -184,15 +184,29 @@ Also as of this release, both the compiler and VM can run on non-x86 platforms

### SourcePawn 1.12

SourcePawn 1.12 is currently in development.
SourcePawn 1.12 was released on November 30, 2024.

This release contains a number of bug fixes and internal improvements. It also greatly improves
error message readability in the style of modern compilers.
This release contains a number of bug fixes and internal improvements. It also
greatly improves error message readability in the style of modern compilers.
The lexer was completely rewritten to make this possible.

Array type checking and initialization has been completely rewritten. The
generated code is simpler and more compile-time errors can be caught. Error
messages around arrays have been greatly improved.

This release contains a number of language changes.
- Natives can now return enum structs and fixed-size arrays.
- Enum structs can be passed to natives.
- Function bodies must now be braced. There is no compatibility mode for this change.
- `INVALID_FUNCTION` is now type `null_t`. The old internal type `nullfunc_t` has been removed.
`INVALID_FUNCTION` and `null` are now equivalent, which means code manually checking for `-1`
will not work. There are three functions added to `IPluginContext` to help native code with
this change: `GetNullFunctionValue()`, `IsNullFunctionId()`, and `GetFunctionByIdOrNull()`.
- Warnings around indentation have been removed.
- Tags have been removed. Old syntax tags must now correspond to declared or builtin types.
- "Fixed" enums have been removed. Enum type checking is the same whether or not the name is capitalized.
- Function aliases have been removed.
- The "using" keyword has been removed and is no longer implemented.
- The `__nullable__` and destructor syntax for handles have been re-introduced.
- Built-in defines and constants are now defined by an in-memory implicit include.
- `#endinput` is no longer necessary. `#include` will no longer double-include.

0 comments on commit 6cdbb26

Please sign in to comment.