2008-07-13 "SQUIRREL2_1_1_sqplus_snapshot_20080713" * Released as a snapshot 2008-07-06 kawachi * Removed testSqPlus2 2008-06-26 arst@users.sf.net * SquirrelVM.cpp / SqPlusSetup.h - Added a new define SQPLUS_SQUIRRELVM_WITH_SYSTEMLIB (Juggernaut, http://squirrel-lang.org/forums/2585/ShowThread.aspx#2585) - Added a new function: SQClassDefBase::scriptVar(const SQChar* name, int ival, SQBool static_var=SQFalse) It allows for creating either static or ordinary Squirrel class members from C++ source code. Versions for int/double/const SQChar*. - SquirrelObject::GetBase() - retrieve base class. (Juggernaut, http://squirrel-lang.org/forums/2585/ShowThread.aspx#2585) 2008-06-14 Kazei * Fixed memory leak in overloadConstructor (http://squirrel-lang.org/forums/thread/2516.aspx) 2008-05-10 Neimod * Fixed for typesafe scripting (http://squirrel-lang.org/forums/thread/2478.aspx) 2008-05-08 arst@users.sf.net * sqplus.h/.cpp - SQ_USE_CLASS_INHERITANCE_SIMPLE is a new way of handling class inheritence in SqPlus, relying on a template scheme (see ClassTypeBase and ClassType). It doesn't use any memory per instance and should be a bit faster than previous scheme. SqClassDef has been given a second template argument to account for this: struct SQClassDef ... - The name of the class (in SqClassDef) can be filled in by SqPlus now, if Squirrel class name is same as C++ class name: SQClasDef("Troll", "Creature").func(...) => SQClasDef().func(...) - Code to handle class types (names, copy funcs, ID tag, ...) has been collected in ClassTypeBase and ClassType. - A new macro to specify that classes should not be copied with default C++ method: DECLARE_NONCOPY_TYPE(ClassThatCannotBeCopied). - Reworked body of repetetive template functions, Moved to SqPlusCallTemplates.h. Can be included with different qualifiers (const, cdecl). - Support for cdecl member functions (MSVC specific) through: SQPLUS_ENABLE_CDECL_MEMBER_FUNCTIONS cdecl functions are compatible across compilers, while thiscall is not. - Generic Push/Pop/Match handlers: SQPLUS_USE_GENERIC_HANDLERS By default, Push/Get/Match handlers are for a single type. This adds a fallback level, so that `hierarchy wide' handlers can be used (define for base class and let all derived classes use just that). - For functions that return a pointer to a temporarary (such as returning a SQDefCharBuf, a template mapper class: Temporary::type was added. It can hold a temporary value while finishing a SquirrelFunction call (before returning to C++). - Suppressing horrible warnings from Visual C++ about sprintf and related functions (_CRT_SECURE_NO_DEPRECATE). * SquirrelVM.h/.cpp - Changed SquirrelVM and SquirrelVMSys to make them hold a reference on a SQVM so that ownership can be shared in a defined way. - SquirrelVMSys can be used as before to swap the `active' VM. Now it holds a ref to a VM so that a VM is closed automatically when switched out and there are no refs to any longer. (To hold a VM ref in the application, simply use an instance of SquirrelVMSys). - NOTE: A VM created through sq_open() comes out with a reference count of 1. A VM created with sq_newthread() arrives with a ref count of 0. SquirrelVM will compensate for this. - Possibility to store a `sandbox VM'. This VM is not allowed to access functions / classes bound with SqPlus and so can run more untrusted scripts. - Hopefully these changes will not break current apps. (Note: creating and keeping correct refs on SQVM involved some difficulties (with ref- counting and garbage collected Squirrel). The scheme provided here is (I hope) a working solution.) * SquirrelObject.h/.cpp - Added: operator = (HSQOBJECT) - From forum: (http://squirrel-lang.org/forums/thread/2506.aspx) (suggested by auron0) - Added: operator == (const SquirrelObject& o) - Added: CompareUserPointer(const SquirrelObject& o) * SqPlusUTF8.h / .cpp - New files for converting strings in arguments (UTF8 <-> wchar_t) - Fix for conversion of UTF8 sequence of length 3+ bytes 2008-02-17 PallavNawani * BindVariable of std::string (http://squirrel-lang.org/forums/2370/ShowThread.aspx) 2007-10-14 "SQUIRREL2_1_1_sqplus_snapshot_20071014" * Fixed const member function overloading by Tegan (http://squirrel-lang.org/forums/thread/2160.aspx) * Updates for missing inline in DECLARE_INSTANCE_TYPE_NAME (http://squirrel-lang.org/forums/thread/2156.aspx) * Fixed resolution in function overloading (http://squirrel-lang.org/forums/thread/2179.aspx) * Added support for operator overloading suggested by Tegan (http://squirrel-lang.org/forums/thread/2160.aspx) 2007-09-27 "SQUIRREL2_1_1_sqplus_snapshot_20070927" * Added ats's extensions : http://squirrel-lang.org/forums/1/2153/ShowThread.aspx - GCC_INLINE_WORKAROUND (problems with inline functions with gcc) - Set/get for short/char members - Get for const SQChar* - DECLARE_ENUM_TYPE - Allows enums to be used as arguments - Support for more customized Push handlers - SQPLUS_DISABLE_COPY_INSTANCES (disabling automatic use of copy constructors) - Support for automatically generate TypeMasks (a template solution) on function registration 2007-08-25 "SQUIRREL2_1_1_sqplus_snapshot_20070825" * Added m0pey's smart pointer support : http://squirrel-lang.org/forums/thread/1982.aspx 2007-01-07 "SQUIRREL2_1_1_sqplus_snapshot_20070701" * Fixed `returning a pointer of a derived class' problem with gcc (http://squirrel-lang.org/forums/thread/1875.aspx) based on http://wiki.squirrel-lang.org/default.aspx/SquirrelWiki/SqPlusNativeCreatedInstancesWithCorrectAncestry.html 2007-06/02 "SQUIRREL2_1_1_sqplus_snapshot_20070602" * Fix by Sebastien Frippiat: http://squirrel-lang.org/forums/thread/507.aspx 2007-05-27 "SQUIRREL2_1_1_sqplus_snapshot_20070527" * Added sqplus/SqPlusOverload.h for function overloading. See testSqPlus2unit/test_FunctionOverloading.cpp. 2007-03-04 "SQUIRREL2_1_1_sqplus_snapshot_20070304" * Fixed compilation problem on g++-3.4.4 (cygwin): http://squirrel-lang.org/forums/thread/1753.aspx 2007-02-25 "SQUIRREL2_1_1_sqplus_snapshot_20070225" * Fix by Kamaitati: http://squirrel-lang.org/forums/thread/1748.aspx * Modified sqplu.h (SquirrelObject::Set<>()) for gcc * Added testSqPlus2unit directory for unit testing 2006-10-09- "SQUIRREL2_1_1_sqplus_25" * Fixed SqPlusConst.h: http://squirrel-lang.org/forums/thread/1314.aspx, changed SquirrelObject Get/Set to default to pass-by-reference, where pass-by-copy requires extra parameter 2006-10-08 "SQUIRREL2_1_1_sqplus_24" * Added SQClassDefNoConstructor<>: http://wiki.squirrel-lang.org/default.aspx/SquirrelWiki/SqPlusWithoutAutoDefaultConstructor.html (allows binding abstract base classes/pure-virtual-interfaces) * Added "Squirrel Set/Get objects" http://wiki.squirrel-lang.org/default.aspx/SquirrelWiki/SqPlusGetSetObjects.html 2006-09-30 "SQUIRREL2_1_1_sqplus_23" * Fixed return type for sq_std_string Get() 2006-08-21 "SQUIRREL2_1_0_sqplus_22" * Merged in Squirrel 2.1.1 Stable 2006-08-20 "SQUIRREL2_1_0_sqplus_21" * Changed code order to be compatible with GCC 4.1.x. * Added jflanglois' suggestion for std::basic_string 2006-06-27 "SQUIRREL2_1_0_sqplus_20" * Added Katsuaki Kawachi's GetInstance()/Match() changes (http://www.squirrel-lang.org/forums/962/ShowPost.aspx) 2006-02-06 "SQUIRREL2_1_0_sqplus_19" * Added VS7.1 make/project files with 71 suffix: can be used alongside VS8 without directory changes * Added optional debug string argument to SquirrelVM::CompileBuffer() 2006-05-28 "SQUIRREL2_1_0_sqplus_18" * Added Kamaitati's changes: bug fix, C++ style inheritance support, null instance argument support 2006-04-25 "SQUIRREL2_1_0_sqplus_17" * Changed SquirrelObject::GetInstanceUP() to return NULL and clear internal error state on invalid instance type request * Added SquirrelObject::GetTypeName(const "SQChar" * key), SquirrelObject::GetTypeName("INT" key) and SquirrelObject::GetTypeName(). * Added SQ_SUPPORT_INSTANCE_TYPE_INFO compile time option * Added missing template arguments (7 argument case) * Source changes to support VS7.1 and VS8 compilation (standard and UNICODE builds) * Added Code::Blocks project files 2006-03-26 "SQUIRREL2_1_0_sqplus_11" * Updated make/build files to VS8 (http://msdn.microsoft.com/vstudio/) * Source changes for VS8 compilation 2006-03-19 "SQUIRREL2_1_0_sqplus_10" * Updated to Squirrel 2.1 2006-02-27 "SQUIRREL2_0_5_sqplus_9" * Added Ben's changes to implement DECLARE_INSTANCE_TYPE_NAME (http://www.squirrel-lang.org/forums/635/ShowPost.aspx) 2005-12-22 "SQUIRREL2_0_5_sqplus_8" * Added GetVMSys() and SetVMSys() to better support multiple VM's 2005-11-21 "SQUIRREL2_0_5_sqplus_7" * Added modular support for const member functions. Defining SQPLUS_CONST_OPT before including sqplus.h enables the added functionality * SqPlus tested on Mac OS-X 2005-11-03 "SQUIRREL2_0_5_sqplus_6" * Fixed inheritance issue: tables added to classes are not newly created upon instantiation- they must be cloned during construction (language design) * Reworked projects build settings to better allow building all projects types: Debug, Release, Debug - Unicode, Release - Unicode 2005-11-01 "SQUIRREL2_0_5_sqplus_5" * Added Unicode support 2005-10-23 "SQUIRREL2_0_5_sqplus_4" * Added gcc support: - Added simple GNU Makefiles for gcc - Minor code changes for gcc compilation - Tested on RH Linux gcc 3.2.3, Cygwin gcc 3.4.4, and gcc on Sony PSP (http://www.squirrel-lang.org/forums/420/ShowPost.aspx#420) * Added ClassDef::enumInt() for registering enums as ints (to replace ClassDef::constant((int)myEnum)) 2005-10-14 "SQUIRREL2_0_5_sqplus_3" * Added support for SquirrelObject as a function argument and return value. Tables and arrays can be directly accessed without using the stack. This also makes it possible to return tables, arrays, classes, and closures for later use at runtime, saving look-up overhead * Added GetRet() for SquirrelFunction<> to ensure proper stack behavior * Added additional error return info to help with debugging * Removed unused code