| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439 |
- -----------------------------------------------------------
- GameMonkey Script Change Log
- Newer entries are at the bottom.
- Dates are DD-Mon-YYYY eg. 15 Apr 2013
- Note that very minor changes like a renamed variable or
- modified comment may not appear in this list.
- -----------------------------------------------------------
- 11 Jul 2022
- o Fix parser for 64bit ints. Thanks bavoha.
- 12 Sep 2019
- o Update docs to clarify GM requires C++ not C to build and use.
- 10 Oct 2018
- o Fix foreach, 64bit related. Thanks bavoha.
- 22 Dec 2017
- o Fix some type casts.
- o Integrate some changes from DrEvil's gmscripex.
- o Add VS2013 native visualizer debug expansion script based on DrEvil's VS2010 version.
- o Update changelog to be more readable with recent entries first and unambiguous dates.
- 22 Nov 2017
- o Updated code and some projects to build with MSVC 2017.
- o Removed older projects and solutions for GME at least.
- o Fixed code to support 32 and 64 bit gmint, gmfloat types.
- GM files and binds, GME and GML updated and tested only.
- 13 Jul 2015
- o Fix 64bit related. Thanks palota.
- 19 May 2014
- o Fix EndOn bug reported by Korrion
- 18 May 2013
- o Reordered GC descruction sequence to avoid Write Barrier mis-fire.
- 09 Jun 2012
- o Add back ++,-- pre inc, dec operators (Experimental, code restored from v0.9)
- 12 May 2012
- o Fixed Fork stack growth bug. Thanks funkbot.
- 10 Feb 2012
- o Added experimental project gmddotnet (gmDebuggerNet) which is gmd ported to C# .Net from C++ MFC.
- This was simply an experiment, this example debugger is as identically terrible as the original version.
- 13 Jan 2012
- o Improved syntactical sugar for functions. Thanks HenryTran.
- 7 Oct 2011
- o Fixed GC (Another attempt)
- 4 Oct 2011
- o Fixed GC tricolor invariance wasn't preserved with local object transfer of ownership.
- 3 Oct 2011
- o Fixed GC root scan to ignore persistent objects.
- 2 Oct 2011
- o Fixed GC root scan. (PS. Failed attempt)
- o Increased GMTHREAD_MAXBYTESIZE to allow samples to run in 64bit
- o Fixed gmTable 64bit gmVariable equality test.
- o Fixed byte code generator. 64bit was mixing 32 and 64 bit patched addresses.
- 29 Jun 2011
- o Add 64bit MSVC build configurations for GME
- 17 Jun 2011
- o Fixed gmMachine::GetTypeId(), invalid string returned. Thanks Tiok.
- o Changed project and workspaces from MSVC 8 (2005) to MSVC 10 (2010 SP1)
- To compile the Windows based examples & utils, you will need at least 'MS Visual C++ 2010 Express SP1' freely downloadable from Microsoft.
- To run the Windows examples you will need VC10 compatible runtimes installed, The '.Net Framework' redistributables or 'Windows Update' will provide these.
- (Left VC6 and VC8 projects and workspaces in for now. Debugger still relies on MFC which is not supported by 2005 Express edition.)
- o Changed #define in MSVC platform file to _M_X64 which is correct 64bit build macro. Also renamed another misspelled macro.
- 16 Aug 2010
- o Added syntactical sugar for functions. 'function <name>(<parms>){<statements>}' Thanks 39ster.
- 09 Jul 2010
- o Updated code base for 64bit address target. (64bit builds of current binaries not made or tested yet.)
- o Updated system lib for 64bit Win OS compatibility.
- 27 May 2010
- o Improved Minimal example. Not all errors were logged. Also enabled debug mode. Thanks xaxa.
- 15 Mar 2010
- o Fix GC auto calibration. Thanks DrEvil.
- 04 Feb 2010
- o Changed new to GM_NEW in gmCodeGen.cpp for consistency. Thanks Sunray.
- 25 Jan 2010
- o Remove orphaned code in gmBlock dated 25/10/04 "Changed behaviour of Block() to yeild if blocked on 'null'."
- o Changed block on null behavior to cause script thread exception.
- o Fix signal behavior so multiple signals cannot accumulate on a blocked thread. Thanks DrEvil.
- o Changing gm version format from vMajor.Minor.BetaLetter to vMajor.Minor.Build. Probably won't change coded version to store past Minor unless process is automated. Probably won't use 4 components as each can be multi digit.
- 05 Jun 2009
- o Fix and improve format() Thanks DrEvil.
- o Add some more gmVariable accessors (similar to gm_ex)
- 06 May 2009
- o Add experimental endon() allowing a thread to be killed when signalled. Enabled with GM_USE_ENDON in gmConfig.h. Thanks Downgraded.
- o Fixed (hopefully) endon() kills threads correctly and gets along with other blocks and signals.
- 02 May 2009
- o Fixed getind in gmThread.cpp where usertypes influenced the operator chosen to process. Thanks DrEvil.
- 23 Apr 2009
- o Add gmMachine::GetTypeId() to retrieve type id from string name. Thanks Downgraded.
- o Updated version number, oops.
- 12 Apr 2009
- o Add experimental foreach support for user types. Configured as GM_USER_FOREACH in gmConfig.h. Thanks Downgraded.
- 11 Apr 2009
- o Add GM_CHECK_THIS_* macros to gmThread.h. Thanks Downgraded.
- o Add experimental and optional fork instruction. Configured as GM_USE_FORK in gmConfig.h. Thanks HiVision.
- 01 Feb 2008
- o Change gmScanner.l so parser checks for End Of File, to prevent endless loop.
- 11 Nov 2007
- o Modified all GM_*_PARAM() and added overloads for all gmThread:Param*(), to check if invalid type was present.
- o Modified threadKill() to ignore threads with invalid Id instead of killing current thread.
- 22 Oct 2007
- o Added gmMachine::BindLibToFunction() Just a call through to existing gmLibHooks.
- o Changed gmGCRoot<>::Set() to handle null.
- o Removed a_filename from gmMachine::ExecuteFunction() since it wasn't used and could confuse users.
- 16 Jun 2007
- o Fix bug relating to thread stack resize gmThread::Touch(). Thanks DrEvil.
- o Build .EXEs with VC2005 SP1, static linked VC runtimes except for Debugger which uses MFC.
- Get vcredist_x86.exe from http://www.microsoft.com/downloads/details.aspx?familyid=200B2FD9-AE1A-4A14-984D-389C36F85647&displaylang=en or search for "Microsoft Visual C++ 2005 SP1 Redistributable Package" if needed.
- 03 May 2007
- o Added Experimental user type op_bool test for conditions. Thanks Kaz.
- o Modified killed threads. Callback from killed state before recycle/delete.
- o Added const to more functions in gmThread.
- 20 Mar 2007
- o Modified GC auto calibrate to allow no shrink.
- o Moved GC related settings to gmConfig.h.
- o Added gmMachine::GetAutoMemoryUsage().
- o Changed GME initial memory setting.
- o Added example Vector3 non operator Add for efficiency comparison.
- 21 Feb 2007
- o Fixed atan2 binding. Thanks 'blackstormy'.
- 21 Jan 2007
- o Added operators implemented from script. Thanks Seth 'Nightmare'.
- o Added another GC stats related function.
- o Rearranged pragmas and includes in config headers so order could influence subsequent files.
- o Added 'typename' to some template declarations in gmGCRootUtil.
- 20 Jan 2007
- o Improved GC stats to reduce false warnings about bad GC config.
- 17 Jan 2007
- o Fixed bug where GC was not correctly handling persistent strings. Thanks Kaz.
- 04 Jan 2007
- o Modified gmKillThread() to behave as its comment describes.
- 05 Dec 2006
- o Fixed setdot misspelled as getdot in gmOperators.cpp and gmMachineLib.cpp.
- 26 Oct 2006
- o Added user data to function registering. This can be useful when binding C/C++ functions, particularly when registering MANY script functions to ONE C function that redirects to MANY C/C++ member functions.
- 18 Oct 2006
- o Changed new gmVariable helpers to be const.
- 26 Sep 2006
- o Added #define _USE_32BIT_TIME_T so system binding 32 bit time functions work with MSVC 8 runtimes.
- 15 Sep 2006
- o Added #define-able nullify in gmVariable ctor. Disabled by default.
- 13 Sep 2006
- o Added a bunch of accessor functions to gmVariable and gmTable for convenience.
- 01 Aug 2006
- o Added gmVariable::IsNull().
- 24 Jul 2006
- o Added two gmMachine function registration wrappers to provide alternate interface.
- o Added %u to bound function 'format' to support unsigned ints.
- 19 Jun 2006
- o Changed gmMachine::AddCPPOwnedGMObject() and RemoveCPPOwnedGMObject() to ignore NULL ptrs rather than ASSERT on them, for caller convenience.
- 03 Jun 2006
- o Added optional divide by zero check in operators to create GM exception rather than OS exception, as per DrEvil's suggestion.
- 20 May 2006
- o Added config #define GMMACHINE_REMOVECOMPILER to allow compiler to be removed from gmMachine. Saves some KBs as well as disables compilation.
- 22 Apr 2006
- o Changed gmThread so that final stack frame including 'this' is still valid when MC_THREAD_DESTROY occurs.
- 17 Apr 2006
- o Added more info on binding functions to GameMonkeyScriptReference.pdf
- 16 Apr 2006
- o Changed AsString() default for reference types to display pointer in hex instead of decimal.
- 05 Apr 2006
- o Fixed bug where local (shared) strings waiting for finalization were reused. Made them revive properly.
- o Removed old write barrier from gmTable, leaving new correct code only.
- 02 Apr 2006
- o Fixed gmMachine anomaly where, when a new thread is created just before yielding, and the yield occured in the last running thread, the new thread was skipped until the next execution cycle.
- 15 Mar 2006
- o Changed GC to start in 'off' state.
- 10 Mar 2006
- o Removed CrimsonEdit syntax highlighting for binary numbers as it did not behave as expected.
- 08 Mar 2006
- o Changed doString and (system.)DoFile bindings to take optional 'this' as parameter
- o Added gmThread Param() with default gmVariable param.
- 21 Jan 2006
- o Changed gmMachine, all non-public members are now protected instead of private to allow derived access.
- o Changed project and workspaces from MSVC 6 to MSVC 8 (2005)
- To compile the Windows based examples & utils, you will need at least 'MS Visual C++ 2005 Express' and the 'Platform SDK', both freely downloadable from Microsoft.
- To run the Windows examples you will need VC8 compatible runtimes installed, The '.Net Framework 2.0' redistributables or 'Windows Update' will provide these.
- (Left VC6 projects and workspaces in for now. Debugger still relies on MFC which is not supported by 2005 Express edition.)
- 11 Jan 2006
- o Fixed bug in gmMachine::RemoveCPPOwnedGMObject(). Was not calling WriteBarrier.
- o Added gmMachine::IsCPPOwnedGMObject().
- o Added gmMachine::GetTypeTable() (as per DrEvil's mod).
- o Modified gmMachine::RegisterLib(), Allow append/modify existing table (as per Oli's mod).
- o Removed gmCallScript. (Had been depricated for a long time.)
- o Added experimental gmGCRoot to \binds. Current implementation uses STL, but allows custom containers.
- 14 Nov 2005
- o Removed gmShutdownVector3Lib() from Vector3 binds example.
- 30 Oct 2005
- o Changed location of thread create event so 'this' should be available for query.
- 29 Sep 2005
- o Fixed bug in gmTableObject. GC WriteBarrier was not being called with setting values to null. Old values, reassigned elsewhere could be lost.
- 05 Aug 2005
- o Fixed bug in GameObject example, String operator= not always used.
- 10 May 2005
- o Fixed/Changed friend declaration used by gmTableObject and gmFunctionObject non-public constructors, to work with MSVC 6, 2003, 2005. Handling of friend template functions was different and broken.
- o Added optional UserBreak callback to allow external code to break thread execution. Eg. to exit endless loop when user pressed CTRL-BREAK.
- 09 May 2005
- o Changed some #defines in gmThread.h gmIncGC.cpp/.h prefixed with GM_ to reduce potential conflict with other code.
- 04 May 2005
- o Added GM_FLOAT_OR_INT_PARAM and GM_CHECK_FLOAT_OR_INT_PARAM to gmThread.h to help with numerical parameters.
- 21 Apr 2005
- o Minor changes for compatability with MSVS 2005. gmMathLib, gmStringLib, platform header.
- 16 Apr 2005
- o Changed gmObject derived class constructors to be non-public. This forces creation by gmMachine.
- o Minor change to gmListDouble to make some compiler happy.
- 14 Apr 2005
- o Added syntax highlighting to debugger. (Actually added back old files I found, that were meant for an IDE never finished.)
- o Added line numbering to debugger. A quick hack, but maybe useful.
- 09 Apr 2005
- o Removed Windows specific hack from gmDebugger.cpp and moved it to the example Windows debugger files.
- o Added gmCall::AddParam() for generic gmVariable params.
- 21 Mar 2005
- o Added ability for gmMachine to handle cpp owned gmObjects and handle GC for them.
- o Changed gmMachine::Presize() (and related functions) to take named params instead of int array for clarity and future expansion.
- o Modified gmMemFixedSet to have more smaller memory sizes.
- 10 Feb 2005
- o Modified gmCall to improve access to return variables.
- 04 Feb 2005
- o Added explicit gmVariable() constructors for gmTableObject and gmFunctionObject completing the default set.
- 03 Feb 2005
- o Added (experimental) new table creation syntax. eg. t = {1,2,3,}; same as t = table(1,2,3); for simplified config files.
- 30 Jan 2005
- o Added newline to end of gmDebugger.cpp. Will have to watch for this in future to keep gcc happy.
- 24 Jan 2005
- o Fixed more compiler warnings.
- 01 Jan 2005
- o gmfrontend.bat strips CR chars from flex and bison script files before generating compiler files. This should help Linux & Unix builds.
- 27 Dec 2004
- o Replaced GC related 'workLeftToDo' variable names with 'workLeftToGo' so a simple 'todo' search won't find these.
- o Implemented file.Seek() as it was not implemented.
- 11 Dec 2004
- o Added gmCall. gmCallScript is now deprecated.
- 10 Dec 2004
- o Added #include <errno.h> to flex.skl for Linux compile.
- o Fixed bug in GML. Code used obsolete non 32bit byte code.
- 07 Dec 2004
- o Removed platform specific #defines and checks from gmConfig.h
- 11 Nov 2004
- o Fixed commented #define in gmParser.y.
- o Fixed bug in gmCallScript.h. If C called C bound function via script, thread was not exited correctly.
- o Added gmCallScript::BeginFunction() Generic function call, and AddParamTable().
- 02 Nov 2004
- o Added new line to end of files to remove warnings on some compilers.
- o Fixed some non-commented comments on preprocessor commands to remove warnings on some compilers.
- o Changed some includes to later standard: cassert, new, to remove warnings on some compilers.
- o Moved non gm header includes into gmConfig.h with comments. External includes now only in gmConfig.h and gmConfig_p.h.
- o Renamed platform\win32 to win32msvc. Added platform\win32gcc. Adjusted paths in projects to reflect this change.
- 27 Oct 2004
- o Changed malloc,free,realloc to new,delete equivalents in bison.simple and flex.skl files.
- o Aligned memory addresses in gmCodeTree, gmLog.
- o Added ToDoList.txt to the \docs folder. Removed readme.txt from src\gm folder.
- 25 Oct 2004
- o Changed behaviour of Block() to yeild if blocked on 'null'.
- o Made functions in gmThread const.
- o Added memory presizing functions to allocators and gmMachine.
- 24 Oct 2004
- o Remove gmArrayComplex and replaced with gmArraySimple to reduce code as it was not necessary.
- o Removed 'no effect' variables that had been there to remove warning 'unreferenced parameter'.
- o Wrapped new with GM_NEW and GM_PLACEMENT_NEW for simpler replacement eg. debug new.
- o Changed multi char constatns 'abcd' to macro version for better compiler compatability.
- o Aligned memory for allocator in gmLibHooks.cpp for PS2. Added alignment size #define.
- o Moved #include "assert.h" from gm into gm_Configp.h for better compatability.
- o Other minor changes for compiler compatability or reduction of compiler warnings.
- 10 Oct 2004
- o Fixed bugs in gmCodeGen.cpp. Removed remaining array resize bugs.
- 23 Aug 2004
- o Fixed gmMachine::Init(). Global table not initialized after ResetAndFreeMemory().
- 18 Jun 2004
- o Removed reseting of error log from gmMachine and gmThread. Allowed memory limit on log. Updated examples.
- 21 Apr 2004
- o Improved gmThread::Param(), returns reference to gmVariable instead of instance.
- 01 Apr 2004
- o Fixed gmRandomFloat to use RAND_MAX instead of 65535. Effects some platforms as these were not equivalent.
- 11 Mar 2004
- o Fixed excess memory bug in gmCodeGen.cpp as result of previous bug fix.
- o Improved VM GC logic so garbage collector auto sizes soft and hard limits better, but realize logic is still poor as long as only soft limit is exceeded.
- 09 Mar 2004
- o Modified gmMachine::CollectGarbage() AND binding sysCollectGarbage() to take a optional parameter to perform force full collection.
- o Improved VM GC logic so garbage collector will always free memory when it has the chance after a collect cycle.
- o Added sysSetDesiredMemoryUsageAuto() binding to enable auto adjust of memory limits (used to be flag in old set memory limit functions).
- 06 Mar 2004
- o Generate code target to big/little endian regardless of source platform.
- 03 Mar 2004
- o Fixed bug in gmCodeGen.cpp The array container could resize causing pointers to become invalid. List is now used to hold function pointers.
- 26 Feb 2004
- o Changed strtol to strtoul in gmParser.y to convert hex and binary numbers to unsigned ints causing them to not be truncated. They will appear as full signed ints rather than be clipped to 0-2b range.
- 21 Feb 2004
- o Added paranoid check code to Incremental GC.
- o Fixed serious bug in gmTable with IncGC that caused deleted 'values' to go through write barrier.
- o Added Sleep(0) to WIN32 build of GME to improve windows performance which otherwise suffers from unyielding threads.
- 20 Feb 2004
- o gmMachine::Get/SetDesiredByteMemoryUsage() removed and replaced with Get/SetDesiredByteMemoryUsageHard() and Get/SetDesiredByteMemoryUsageSoft().
- o Changed behaviour of gmMachine::SetDesiredByteMemoryUsage***(). No longer sets auto-memory to false, also does not have auto-memory parameter.
- o New incremental garbage collection logic to govern the inc GC system.
- o New GC stats functions: TODO
- o Set gmConfig.h to use incremental GC by default. Was using atomic GC.
- o Renamed machine bound function threadIds() to threadAllIds() to make it more different from threadId() and more consistent with other naming.
- 07 Feb 2004
- o Remove GM_ASSERT from macro GM_CHECK_FLOAT_PARAM. Was probably left in from some previous debugging.
- 25 Jan 2004
- o Added GameObject example code.
- 23 Jan 2004
- o Modified copyright message to be 'GameMonkey Script' as that is the full name.
- 18 Jan 2004
- o Fixed bug in string operator not. Incorrectly returned true instead of false.
- 16 Jan 2004
- o Added Minimal code to use GM example.
- 10 Jan 2004
- o Added threadKillAll() binding to allow termination of all threads.
- o Added threadIds() binding to allow access to all threads.
- o Modified BomberRun.gm to allow exit from main menu.
- 09 Jan 2004
- o Added constant folding for ints and floats
- o Added +=, -=, *=, /= etc. Some more optimisation is required on this to avoid reavaluation of complex l-value.
- 08 Jan 2004
- o Fixed filename case mismatch between filenames and #includes for Unix and other platform.
- o Renamed and modifed gmNetwork to NetClient and NetServer as they are not gm files.
- o Modified GMD project to show gmDebugger in gm file set and use Win32 #defs for windows specific parts.
- o Removed memory display from snake.gm
- o Added sample script descriptions file.
- o Removed GM_MAX() and GM_MIN() macros and replaced with template versions in gmUtil
- o Added gmLog2ge function as faster version of gmHighestBit, and changed gmArraySimple and gmArrayComplex to suit.
- o Fixed buffer overrun bug with gmVariable::AsString function.
- o Removed all warning level 4 warnings bar the warnings generated from flex and bison files.
- o Added GM_VERSION #define to gmMachine.h. first version @ "1.1". added gmVersion script binding.
- o Changed some #ifdef DEBUG to #ifdef GM_DEBUG_BUILD
- 02 Jan 2004
- o Updated script reference doc with system functions, compiler string concat and other.
- 22 Dec 2003
- o Package 1.0 ready for public release.
|