8 June, 2009 version 3.3.4127 |
-
The entire Pawn toolkit is now licensed under the Apache license, version 2.
The Apache license is a very liberal license (permitting use in commercial
projects), but it contains a patent clause. The previous license (zLib/libpng)
did not have a patent clause.
-
wxQuincy, a minimalistic IDE distributed in the Linux autopackage and TAR files
now comes with source code. The IDE has been enhanced with a multiple-document
interface.
-
The compiler is now a little better at guessing the TAB size in case of mixed
indentation with TABs and spaces. This avoids the warning "loose indentation"
to be reported erroneously.
-
Keep the stack 8-byte aligned in the ARM7 assembler versions of the abstract
machine (some ARM compilers require this).
-
amxFile uses the newest version of minIni.
-
Quincy (Microsoft Windows version) now detects FTDI virtual ports (for remote
debugging); it supports up to 15 user help files and it supports host-specific
help files. Quincy now also has the ability to insert accented characters
(extended ASCII), and a new "repeat star in multi-line comments" option.
-
BUG fix with strings with an escape character followed by a single line
comment (preprocessor parser error).
-
BUG fix in expressions with chained relational operators and constant operands.
-
BUG fix in the optimizer: removed redundant calls to malloc().
-
BUG fix related to passing arrays based on an enumeration to a function.
-
BUG fix in auto-completion in Quincy, related to non-alphabetic characters
('_' and '@').
|
8 April, 2009 version 3.3.4097 |
-
The Pawn compiler can now take a configuration file with specific settings for
an environment. New command line option:
-T. The manual contains
the details.
-
The Linux distribution now comes with a minimalistic IDE, called wxQuincy.
-
Uncrustify replaces
"artistic style" as the code beautifier for Quincy.
-
BUG fix: minor bug correction in missing comma in initialler of 2-dimensional
array.
-
Modifications in Quincy: better detection of read-only paths (or drives), an
option to save the file in a different location without aborting the compile,
a message in the "build log" that signals that a source file was changed since
last build (and thus needs rebuilding), a window to view strings received over
the serial line.
-
Improvements for GraphApp terminal (multi-platform).
|
15 January, 2009 version 3.3.4058 |
-
Function
amx_GetString() would terminate packed ANSI strings
with two trailing zero bytes. In one of the examples as printed in the manual,
this would lead to a buffer overrun.
-
The compiler optimizer applied a wrong limit to parameters when choosing
between packed and unpacked opcodes. This led to a case where the compiler
generated a packed opcode, while the parameter did not fit in that packed
opcode.
-
In
pawndisasm: a few opcodes were given the wrong nmemonic.
-
When the compiler halted on a fatal error occured inside an include file, the
"parent files" were left open.
-
The compiler would no longer build with the PAWN_LIGHT or PAWN_NO_CODEPAGE
options, because a few new sections lacked the respective conditional-compilation
wrappers.
-
A bug was fixed in amx_Clone(). This bug was reported by Luke Salisbury on
the Pawn forum.
-
Re-entry of the compiler might use data from the previous run. This bug,
reported by Soren Hannibal on the Pawn forum, was fixed.
-
Quincy now comes with an improved "search in files" function, by using a
modified version of GNU grep (see the file "grep.txt" for the modifications).
-
Quincy now also supports auto-completion using Ctrl-Space. If multiple words
match, Quincy pops up a balloon. Pressing TAB expands the word up to the first
character where multiple matches differ.
-
Warnings when building with Visual Studio 2008 were removed.
-
Various other bug fixes and improvements.
|
27 October, 2008 version 3.3.4026 |
-
SECURITY FIX ("arbitrary code execution" vulnerability): the CALL.pri and
JUMP.pri instructions were removed, because one could use them to force a
jump out of the virtual sand box of the abstract machine and call arbitrary
code that is carefully laid out in the data section of the script.
-
"
exit" state functions are now also supported (in addition to
"entry" state functions).
-
Trailing commas are now allowed in the initialization data of arrays. For
example, the comma behind the closing brace of the second sub-array in the
following declaration is allowed (but optional). The commas behind the digits
2 and 4 are allowed too (and also optional).
new arr[2][2] = {
{ 1, 2,},
{ 3, 4,},
}
-
The macro substition processor now recognizes the "#" character for
"stringizing" a parameter. For example, if you have the definition
#define log(%1) #%1
Then the expression log(test) will result in "test".
Note that concatenation of literal strings requires an ellipsis in Pawn (which
is different than C/C++). So to combine the parameter with literal strings,
use a syntax like:
#define log(%1) "logging: " ... #%1 ... "\n"
The stringize operator is only available in the replacement text of a macro.
-
Support for the "thousands" separator (a comma) in numbers.
-
When a source file contains indenting with both spaces and tab characters, and
no explicit tab size is given, the compiler now makes an educated guess for
the tab space to use. This reduces warnings about "loose indentation".
-
The handshake of the debugger in a remote-debugging configuration is a little
faster. That is, the debugger finds the remote device/host faster. Remote
debugging is typically used with embedded systems.
-
Better support for ncurses, which is now also the default for Linux (if it
is installed).
-
For the amxProcess module, the dyncall library now replaces the libffi
library, because dyncall comes with ports for Unix/Linux, Macintosh and
Windows (libffi only supported Unix-like systems). The amxProcess module
now also compiles without dyncall, but with reduced functionality.
See http://www.dyncall.org/
for details on dyncall.
-
The "binreloc" module is now optional when compiling pawnrun and pawndbg
under Linux; binreloc is part of the
"autopackage" developer tools.
-
A portable INI file parser in the amxFile extension module (see the
minIni project).
-
Support for code snippets and balloon "info tips" in Quincy, as well as
supporting info-tips in the debugger for the current value of variables.
-
Quincy supports workspaces (light-weight projects). A set of open files and
the currently selected compilation options can be saved in a workspace, for
quickly switching between projects.
-
BUG fix: the ternary operator ("
a ? b : c") had a bug when "b"
and "c" were arrays of different lengths. This bug was reported by Bailopan
on the Pawn forum.
-
BUG fix: amxFile had an error in the file CRC calculation.
-
BUG fix: function
uuencode() in amxString was broken.
-
BUG fix: when basing a one-dimensional array on an enumaration and using the
ellipsis ("
...") in the initialler to initialize the complete array to a
value, the ellipsis would drop out immediately and fail to fill the remainder
with the given value/sequence.
-
BUG fix in amxString:
valstr() failed on large numbers.
-
BUG fix: a string like
"\\" was not accepted by the Pawn compiler (double
backslash at the end of a string). This was fixed before... a regression!
-
BUG fixes in amxpool (minor bugs).
-
BUG fix: indexing an undeclared symbol made the compiler abort with an
"assertion failed" message. This has been corrected.
-
Various BUG fixes and improvements in the Pawn debugger (pawndbg) for working
with Quincy.
-
Various other bug fixes, and many improvements in Quincy.
|
|
See the history.txt in the downloadable archives for a longer history.
|