Pawn compiler for SA-MP with bug fixes and new features - runs on Windows, Linux, macOS
#pragma unwritten
(#377)#pragma nodestruct
(#378)__emit
bug fixes and improvements (#421)#if ... #endif
(#427)__addressof
operator (#445)emit
keyword (#459)#pragma option
argument exceeded 31 characters (#462)new str[] = "Hello \
there";
Again gives:
Hello there
Instead of
Hello there
// I'm a comment\
and so was I.
// I'm a comment\
// and so am I
This makes it easy to comment out code that uses line-continuations (such as defines).
native printf(str[], {Float, _}:...);
main()
{
new File:a;
printf("%d", a);
}
Gives:
warning 213: tag mismatch: expected tags "Float", or none ("_"); but found "File"
#pragma deprecated Please\
use\
something\
else
Func() {}
main()
{
Func();
}
Gives:
warning 234: function is deprecated (symbol "Func") Please use something else
Note that unlike in strings (which retain their old behaviour for backwards-compatibility reasons) the \
is replaced by a space.
MACRO5
, but a macro called MACRO
with a value of 5
.#define MACRO\
5
__emit
bugs (#279)tagof
operator (#245, #274)__compat
and debug
constants when set through #pragma option
(#253)#pragma deprecated
is used without a messageswitch
disassembly listings produced by pawndisasm (#236)#pragma
s in compiler output##
operator patch because it broke sscanf macros
emit
operator implementation (#211)##
concatenation operator (#205)-E
flag that turns warnings into errors (#202) (thanks to @Y-Less)#pragma option
(#204) (thanks to @Y-Less)emit
/ __emit
operator (#180, more details in that PR)#emit
and unused functions (#157)#pragma
messages contained extra newline and \a characters (#187)__file
, __date
and __time
constants (#105)Build 1
Beginning with this release compiler version will include a build number instead of a date, so "1" in "3.10.1" means "build 1". It will be incremented with each release.
Changes since previous release:
#emit
(#128, #133)__PawnBuild
constant that is set to the current compiler build number (#132)