Skip to content

@Zeex Zeex released this Feb 8, 2020

  • Back-ported some PAWN 4 natives and features (#287)
  • Fixed empty warnings causing crashes (#369)
  • Improved "indeterminate array size" warning: now it shows the symbol name (#370)
  • Fixed bugs related to const-correctness checks (#372)
  • Fixed issues related to undefined symbol resolution suggestions (#374, #397, #451)
  • Improved assembly listing generation (#375)
  • Added #pragma unwritten (#377)
  • Added #pragma nodestruct (#378)
  • Various __emit bug fixes and improvements (#421)
  • Other minor bug fixes (#423)
  • Minor pawndisasm fixes and cleanup (#424)
  • Added support for unknown preprocessor directives inside #if ... #endif (#427)
  • Added compile-time checks to prevent variable self-assignment (#436)
  • Added __addressof operator (#445)
  • Tags inside unnamed enums are no longer allowed (#454)
  • Removed emit keyword (#459)
  • Fixed a crash when #pragma option argument exceeded 31 characters (#462)
Assets 5

@Zeex Zeex released this Sep 29, 2018 · 121 commits to master since this release

  • Fixed #276
  • Fixed #308
  • Fixed #310
  • Fixed #314
  • Implemented suggestions for mistyped identifiers, more information: #353
Assets 5

@Y-Less Y-Less released this Aug 12, 2018 · 171 commits to master since this release

  • Fix multi-line strings getting extra spaces from leading spaces with continuations. This:
new str[] = "Hello \
    there";

Again gives:

Hello there

Instead of

Hello     there
  • Reverted allowing continuations in single-line comments. This will (again) give an error:
// I'm a comment\
and so was I.
  • Added one exception to the above rule. No error will be given if the following line is also commented:
// I'm a comment\
// and so am I

This makes it easy to comment out code that uses line-continuations (such as defines).

  • Added more information to tag mismatch warnings:
native printf(str[], {Float, _}:...);

main()
{
	new File:a;
	printf("%d", a);
}

Gives:

warning 213: tag mismatch: expected tags "Float", or none ("_"); but found "File"
  • Proper (fixed) continuation handling in pre-processor messages:
#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.

  • Fix continuations in defines. This no longer declares a macro called MACRO5, but a macro called MACRO with a value of 5.
#define MACRO\
5
Assets 5

@Zeex Zeex released this Apr 24, 2018 · 188 commits to master since this release

  • Fixed various __emit bugs (#279)
  • Fixed various bugs related to tagof operator (#245, #274)
  • Fixed various bugs related to destructors (#260)
  • Fixed incorrect values of __compat and debug constants when set through #pragma option (#253)
  • Fixed a bug in argument count check leading to crash when call functions with more than 128 arguments (#298)
  • Fixed crash when #pragma deprecated is used without a message
  • Fixed wrong argument in switch disassembly listings produced by pawndisasm (#236)
  • Fixed a bug in multidimensional array initialization that caused compiler crash in some cases (#220)
  • Fixed formatting of multiline messages from #pragmas in compiler output
  • Added a new warning for meaningless combinations of class specifiers (#246)
  • Added more info to tag mismatch warnings (#265)
  • Made the unused symbol warning show the line where the symbol is declared (#252)
  • Improved code generation for naked functions (#271)
  • Various speed optimization (#255, #269)
  • Changed the Visual C++ runtime version back to 2010 (v100) to make the compiler run on a wider range of Windows systems by default (without installing anything)
  • Switched to another hash table library because of some licensing issues (#240)
Assets 5

@Zeex Zeex released this Jan 1, 2018

Assets 5

@Zeex Zeex released this Dec 31, 2017

  • Improved emit operator implementation (#211)
  • Added ## concatenation operator (#205)
  • Redefinition of labels is not allowed now (#215)
Assets 5

@Zeex Zeex released this Nov 5, 2017

  • HUGE compile speed improvements by @maddinat0r and @Daniel-Cortez (#199)
  • Added -E flag that turns warnings into errors (#202) (thanks to @Y-Less)
  • Added #pragma option (#204) (thanks to @Y-Less)
  • Fixed a bug in line continuation handling that caused whitespace characters to disappear from string literals consisting of multiple lines
Assets 5
Oct 24, 2017
Merge branch 'performance' of https://github.com/maddinat0r/pawn into…
… performance

@Zeex Zeex released this Oct 24, 2017 · 366 commits to master since this release

  • Optimized allocation of large arrays of repeated values
  • Added a new emit / __emit operator (#180, more details in that PR)
  • Returning arrays of unknown size is now a compile time error (#190)
  • Fixed false "variable is assigned to itself" warnings (#78)
  • Fixed muti-dimensional array initialization bugs (#152, #153)
  • Fixed a crash with #emit and unused functions (#157)
  • Fixed generation of documentation for state transitions (#185)
  • Fixed an issue where preprocessor symbols passed as command line arguments would not be recognized (#159)
  • Fixed a bug where user-supplied #pragma messages contained extra newline and \a characters (#187)
  • Fixed extra newlines in assembly listings
  • Fixed Android build errors
  • Added installation instructions for openSUSE/SLES to readme (#174)
  • Added build instructions for Windows, Linux, macOS to readme
Assets 5

@Zeex Zeex released this Feb 4, 2017

  • Added __file, __date and __time constants (#105)
  • Improved fix for global-var-as-argument bug, you will no longer see extra "forcing reparse" warnings
Assets 5
You can’t perform that action at this time.