The Squirrel interpreter. See http://www.squirrel-lang.org/

Dependents:   Squirrel

Committer:
jhnwkmn
Date:
Tue Dec 16 10:20:34 2014 +0000
Revision:
0:97a4f8cc534c
Initial import of Squirrel.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jhnwkmn 0:97a4f8cc534c 1 ***version 3.0.6 stable***
jhnwkmn 0:97a4f8cc534c 2 -fixed compiler bug that can cause memory corruption, the bug was introduced in 3.0.5(thx Alex95)
jhnwkmn 0:97a4f8cc534c 3
jhnwkmn 0:97a4f8cc534c 4 ***2014-03-22 ***
jhnwkmn 0:97a4f8cc534c 5 ***version 3.0.5 stable***
jhnwkmn 0:97a4f8cc534c 6 -fixed crash in compiler when trying to write 'base'
jhnwkmn 0:97a4f8cc534c 7 -fixed bug in gc
jhnwkmn 0:97a4f8cc534c 8 -fixed few bugs in the compiler
jhnwkmn 0:97a4f8cc534c 9
jhnwkmn 0:97a4f8cc534c 10 ***2012-11-10 ***
jhnwkmn 0:97a4f8cc534c 11 ***version 3.0.4 stable***
jhnwkmn 0:97a4f8cc534c 12 -sq_deleteslot slot now pops the key in case of failure
jhnwkmn 0:97a4f8cc534c 13 -fixed bug when _get metamethod throws null
jhnwkmn 0:97a4f8cc534c 14 -fixed a bug in rstrip
jhnwkmn 0:97a4f8cc534c 15 -added some error handling
jhnwkmn 0:97a4f8cc534c 16 -minor bugfixes
jhnwkmn 0:97a4f8cc534c 17
jhnwkmn 0:97a4f8cc534c 18 ***2012-06-19 ***
jhnwkmn 0:97a4f8cc534c 19 ***version 3.0.3 stable***
jhnwkmn 0:97a4f8cc534c 20 -improved error messages for _cmp(when a non integer value is returned) (thx Yexo)
jhnwkmn 0:97a4f8cc534c 21 -added class.newmember() built in method (thx Nam)
jhnwkmn 0:97a4f8cc534c 22 -added class.rawnewmember() built in method (thx Nam)
jhnwkmn 0:97a4f8cc534c 23 -added sq_rawnewmember() (thx Nam)
jhnwkmn 0:97a4f8cc534c 24 -added sq_getversion()
jhnwkmn 0:97a4f8cc534c 25 -added sq_typeof()
jhnwkmn 0:97a4f8cc534c 26 -added sq_getclosurename()
jhnwkmn 0:97a4f8cc534c 27 -added file.close() in stdlib
jhnwkmn 0:97a4f8cc534c 28 -documented closure.getinfos() built-in method
jhnwkmn 0:97a4f8cc534c 29 -fixed string iteration doesn't return negative numbers for characters > 127
jhnwkmn 0:97a4f8cc534c 30 -fixed bug in tofloat() when converting a string with scientific notation without a decimal point (thx wr2)
jhnwkmn 0:97a4f8cc534c 31 -fixed potential infinite loop in array.sort() when the _cmp function is inconsistent (thx Yexo)
jhnwkmn 0:97a4f8cc534c 32 -fixed obscure bug in the compiler(thx yishin)
jhnwkmn 0:97a4f8cc534c 33 -fixed some minor bug
jhnwkmn 0:97a4f8cc534c 34
jhnwkmn 0:97a4f8cc534c 35 ***2011-11-28 ***
jhnwkmn 0:97a4f8cc534c 36 ***version 3.0.2 stable***
jhnwkmn 0:97a4f8cc534c 37 -added sq_gethash API
jhnwkmn 0:97a4f8cc534c 38 -now array.sort() is implemented with heapsort
jhnwkmn 0:97a4f8cc534c 39 -now floats in scientific notation also accept numbers with no '.' (eg. 1e+6 or 1e6)
jhnwkmn 0:97a4f8cc534c 40 -fixed some warning
jhnwkmn 0:97a4f8cc534c 41 -fixed some documentation
jhnwkmn 0:97a4f8cc534c 42 -fixed bug in GC
jhnwkmn 0:97a4f8cc534c 43
jhnwkmn 0:97a4f8cc534c 44 ***2011-09-08 ***
jhnwkmn 0:97a4f8cc534c 45 ***version 3.0.1 stable***
jhnwkmn 0:97a4f8cc534c 46 -added # as alternative symbol for "line comment"(mostly useful for shell scripts)
jhnwkmn 0:97a4f8cc534c 47 -added sq_throwobject() to throw an arbitrary object from the C API
jhnwkmn 0:97a4f8cc534c 48 -added alignement flag for userdata types, SQ_ALIGNMENT (thx Shigemasa)
jhnwkmn 0:97a4f8cc534c 49 -added rawset() and rawget() to class and instance default delegate
jhnwkmn 0:97a4f8cc534c 50 -changed bytecode format now ensures matching integer size and float size
jhnwkmn 0:97a4f8cc534c 51 -now inherited classes also inherit userdatasize
jhnwkmn 0:97a4f8cc534c 52 -added SQUIRREL_VERSION_NUMBER in squirrel.h and _versionnumber_ global symbol
jhnwkmn 0:97a4f8cc534c 53 -fixed sq_getmemberhandle
jhnwkmn 0:97a4f8cc534c 54 -fixed sq_getrefcount
jhnwkmn 0:97a4f8cc534c 55 -refactored some sqstdio code
jhnwkmn 0:97a4f8cc534c 56 -refactored some clone code
jhnwkmn 0:97a4f8cc534c 57 -refactored some stuff in the string lib
jhnwkmn 0:97a4f8cc534c 58 -added -s and -fno-exceptions in GCC makefile(better performance when using GCC)
jhnwkmn 0:97a4f8cc534c 59
jhnwkmn 0:97a4f8cc534c 60 ***2011-03-13 ***
jhnwkmn 0:97a4f8cc534c 61 ***version 3.0 stable***
jhnwkmn 0:97a4f8cc534c 62 -added sq_getcallee()
jhnwkmn 0:97a4f8cc534c 63 -sq_getfreevariable() also works for native closures
jhnwkmn 0:97a4f8cc534c 64 -minior optimizations
jhnwkmn 0:97a4f8cc534c 65 -removed several warning when compiling with GCC 4.x
jhnwkmn 0:97a4f8cc534c 66 -fixed some errors in the documentation
jhnwkmn 0:97a4f8cc534c 67 -fixed bug when using SQUSEDOUBLE and 32bits intengers
jhnwkmn 0:97a4f8cc534c 68 -fixed bug when invoking generators with closure.call() (thx huntercool)
jhnwkmn 0:97a4f8cc534c 69
jhnwkmn 0:97a4f8cc534c 70 ***2010-12-19 ***
jhnwkmn 0:97a4f8cc534c 71 ***version 3.0 release candidate 1(RC 1)***
jhnwkmn 0:97a4f8cc534c 72 -improved metamethods error handling
jhnwkmn 0:97a4f8cc534c 73 -added parameter 'isstatic' to _newmember metamethod(thx G.Meyer)
jhnwkmn 0:97a4f8cc534c 74 -added sq_getrefcount() to return number of refences from C++(thx G.Meyer)
jhnwkmn 0:97a4f8cc534c 75
jhnwkmn 0:97a4f8cc534c 76 ***2010-11-07 ***
jhnwkmn 0:97a4f8cc534c 77 ***version 3.0 beta 3***
jhnwkmn 0:97a4f8cc534c 78 -license changed to "MIT license"
jhnwkmn 0:97a4f8cc534c 79 -added sq_resurrectunreachable() and resurrectunreachable()
jhnwkmn 0:97a4f8cc534c 80 -added callee() built in function, returns the current running closure
jhnwkmn 0:97a4f8cc534c 81 -added thread.getstackinfos()
jhnwkmn 0:97a4f8cc534c 82 -added sq_objtouserpointer()
jhnwkmn 0:97a4f8cc534c 83 -added sq_newtableex()
jhnwkmn 0:97a4f8cc534c 84 -various refactoring and optimizations
jhnwkmn 0:97a4f8cc534c 85 -fixed several 64bits issues regarding integer to string conversions
jhnwkmn 0:97a4f8cc534c 86 -fixed some bugs when SQUSEDOUBLE is used in 32bits systems
jhnwkmn 0:97a4f8cc534c 87
jhnwkmn 0:97a4f8cc534c 88 ***2010-08-18 ***
jhnwkmn 0:97a4f8cc534c 89 ***version 3.0 beta 2.1***
jhnwkmn 0:97a4f8cc534c 90 -fixed bug in class constructor
jhnwkmn 0:97a4f8cc534c 91 -fixed bug in compound arith
jhnwkmn 0:97a4f8cc534c 92
jhnwkmn 0:97a4f8cc534c 93 ***2010-08-12 ***
jhnwkmn 0:97a4f8cc534c 94 ***version 3.0 beta 2***
jhnwkmn 0:97a4f8cc534c 95 -class methods can be added or replaced after the class as been instantiated
jhnwkmn 0:97a4f8cc534c 96 -JSON compliant table syntax, this is currently an experimental feature (thx atai)
jhnwkmn 0:97a4f8cc534c 97 -sq_getsize() now returns userdatasize for classes and instances
jhnwkmn 0:97a4f8cc534c 98 -now setroottable() and setconsttable() return the previous value of the respective table
jhnwkmn 0:97a4f8cc534c 99 -fixed bug in compound arith operators when used on a free variable (thx ellon)
jhnwkmn 0:97a4f8cc534c 100 -fixed some x64 minor bugs
jhnwkmn 0:97a4f8cc534c 101 -fixed minor bug in the compiler
jhnwkmn 0:97a4f8cc534c 102 -refactored some VM internals
jhnwkmn 0:97a4f8cc534c 103 -documented sq_getmemberhandle, sq_getbyhandle, sq_setbyhandle to set and get value from classes
jhnwkmn 0:97a4f8cc534c 104
jhnwkmn 0:97a4f8cc534c 105 ***2009-11-15 ***
jhnwkmn 0:97a4f8cc534c 106 ***version 3.0 beta 1***
jhnwkmn 0:97a4f8cc534c 107 -various refactoring and optimizations
jhnwkmn 0:97a4f8cc534c 108 -fixed bug in free variables (thx mokehehe)
jhnwkmn 0:97a4f8cc534c 109 -fixed bug in functions with default parameters (thx ara & Yexo)
jhnwkmn 0:97a4f8cc534c 110 -fixed bug in exception handling
jhnwkmn 0:97a4f8cc534c 111 -improved error propagation in _set and _get metamethods ( and 'throw null' for clean failure)
jhnwkmn 0:97a4f8cc534c 112 -added sq_getmemberhandle, sq_getbyhandle, sq_setbyhandle to set and get value from classes
jhnwkmn 0:97a4f8cc534c 113
jhnwkmn 0:97a4f8cc534c 114 ***2009-06-30 ***
jhnwkmn 0:97a4f8cc534c 115 ***version 3.0 alpha 2***
jhnwkmn 0:97a4f8cc534c 116 -added real free variables(thx Paul Ruizendaal)
jhnwkmn 0:97a4f8cc534c 117 -added refactored function call implementation and compiler(thx Paul Ruizendaal)
jhnwkmn 0:97a4f8cc534c 118 -added sq_getfunctioninfo
jhnwkmn 0:97a4f8cc534c 119 -added compile time flag SQUSEDOUBLE to use double precision floats
jhnwkmn 0:97a4f8cc534c 120 -added global slot _floatsize_ int the base lib to recognize single precision and double precision builds
jhnwkmn 0:97a4f8cc534c 121 -sq_wakeupvm can now resume the vm with an exception
jhnwkmn 0:97a4f8cc534c 122 -added sqstd_format
jhnwkmn 0:97a4f8cc534c 123 -now blobs can be cloned
jhnwkmn 0:97a4f8cc534c 124 -generators can now be instantiated by calling sq_call() or closure.call()
jhnwkmn 0:97a4f8cc534c 125 -fixed debughook bug
jhnwkmn 0:97a4f8cc534c 126 -fixed cooroutine error propagation
jhnwkmn 0:97a4f8cc534c 127
jhnwkmn 0:97a4f8cc534c 128 ***2008-07-23 ***
jhnwkmn 0:97a4f8cc534c 129 ***version 3.0 alpha 1***
jhnwkmn 0:97a4f8cc534c 130 -first branch from 2.x source tree
jhnwkmn 0:97a4f8cc534c 131 -added 'base' keyword
jhnwkmn 0:97a4f8cc534c 132 -removed 'delegate' keyword
jhnwkmn 0:97a4f8cc534c 133 -now compiled scripts are vararg functions
jhnwkmn 0:97a4f8cc534c 134 -added setdelegate() and getdelegate() table builtin methods
jhnwkmn 0:97a4f8cc534c 135 -added <=> 3 ways compare operator
jhnwkmn 0:97a4f8cc534c 136 -added lambda expression @(a,b) a + b
jhnwkmn 0:97a4f8cc534c 137 -added local function statement
jhnwkmn 0:97a4f8cc534c 138 -added array built-in map(),reduce(),apply(),filter() and find()
jhnwkmn 0:97a4f8cc534c 139 -generators hold only a weak reference of the enviroment object
jhnwkmn 0:97a4f8cc534c 140 -removed 'vargv' and 'vargc' keywords
jhnwkmn 0:97a4f8cc534c 141 -now var args are passed as an array called vargv(as a paramter)
jhnwkmn 0:97a4f8cc534c 142 -removed 'parent' keyword
jhnwkmn 0:97a4f8cc534c 143 -added class getbase() built in method
jhnwkmn 0:97a4f8cc534c 144 -instanceof doesn't throw an exception if the left expression is not a class
jhnwkmn 0:97a4f8cc534c 145 -lexical scoping for free variables(free variables are no longer in the second parameter list)
jhnwkmn 0:97a4f8cc534c 146 -sq_setprintfunc accept error func
jhnwkmn 0:97a4f8cc534c 147 -sq_geterrorfunc()
jhnwkmn 0:97a4f8cc534c 148 -added sq_arrayremove() and sq_arrayinsert()
jhnwkmn 0:97a4f8cc534c 149 -error() built in function(works like print but prints using the errorfunc)
jhnwkmn 0:97a4f8cc534c 150 -added native debug hook
jhnwkmn 0:97a4f8cc534c 151
jhnwkmn 0:97a4f8cc534c 152 ***2008-02-17 ***
jhnwkmn 0:97a4f8cc534c 153 ***version 2.2 stable***
jhnwkmn 0:97a4f8cc534c 154 -added _newslot metamethod in classes
jhnwkmn 0:97a4f8cc534c 155 -added enums added constants
jhnwkmn 0:97a4f8cc534c 156 -added sq_pushconsttable, sq_setconsttable
jhnwkmn 0:97a4f8cc534c 157 -added default param
jhnwkmn 0:97a4f8cc534c 158 -added octal literals(thx Dinosaur)
jhnwkmn 0:97a4f8cc534c 159 -fixed debug hook, 'calls' and 'returns' are properly notified in the same number.
jhnwkmn 0:97a4f8cc534c 160 -fixed a coroutine bug
jhnwkmn 0:97a4f8cc534c 161
jhnwkmn 0:97a4f8cc534c 162 ***2007-07-29 ***
jhnwkmn 0:97a4f8cc534c 163 ***version 2.1.2 stable***
jhnwkmn 0:97a4f8cc534c 164 -new behaviour for generators iteration using foreach
jhnwkmn 0:97a4f8cc534c 165 now when a generator is iterated by foreach the value returned by a 'return val' statement
jhnwkmn 0:97a4f8cc534c 166 will terminate the iteration but will not be returned as foreach iteration
jhnwkmn 0:97a4f8cc534c 167 -added sq_setclassudsize()
jhnwkmn 0:97a4f8cc534c 168 -added sq_clear()
jhnwkmn 0:97a4f8cc534c 169 -added table.clear(), array.clear()
jhnwkmn 0:97a4f8cc534c 170 -fixed sq_cmp() (thx jyuill)
jhnwkmn 0:97a4f8cc534c 171 -fixed minor bugs
jhnwkmn 0:97a4f8cc534c 172
jhnwkmn 0:97a4f8cc534c 173 ***2006-08-21 ***
jhnwkmn 0:97a4f8cc534c 174 ***version 2.1.1 stable***
jhnwkmn 0:97a4f8cc534c 175 -vm refactoring
jhnwkmn 0:97a4f8cc534c 176 -optimized internal function memory layout
jhnwkmn 0:97a4f8cc534c 177 -new global symbol _version_ (is the version string)
jhnwkmn 0:97a4f8cc534c 178 -code size optimization for float literals(on 32bits float builts)
jhnwkmn 0:97a4f8cc534c 179 -now the raw ref API(sq_addref etc...) is fully reentrant.
jhnwkmn 0:97a4f8cc534c 180 -fixed a bug in sq_getdelegate() now pushes null if the object doesn't have a delegate(thx MatzeB)
jhnwkmn 0:97a4f8cc534c 181 -improved C reference performances in NO_GARBAGE_COLLECTOR builds
jhnwkmn 0:97a4f8cc534c 182 -sq_getlocal() now enumerates also outer values.
jhnwkmn 0:97a4f8cc534c 183 -fixed regexp library for GCC users.
jhnwkmn 0:97a4f8cc534c 184
jhnwkmn 0:97a4f8cc534c 185 ***2006-03-19 ***
jhnwkmn 0:97a4f8cc534c 186 ***version 2.1 stable***
jhnwkmn 0:97a4f8cc534c 187 -added static class fields, new keyword static
jhnwkmn 0:97a4f8cc534c 188 -added 64bits architecture support
jhnwkmn 0:97a4f8cc534c 189 -added global slot _intsize_ int the base lib to recognize 32bits and 64bits builds
jhnwkmn 0:97a4f8cc534c 190 -added functions with fixed environment, closure.bindenv() built-in function
jhnwkmn 0:97a4f8cc534c 191 -all types except userdata and null implement the tostring() method
jhnwkmn 0:97a4f8cc534c 192 -string concatenation now invokes metamethod _tostring
jhnwkmn 0:97a4f8cc534c 193 -new metamethods for class objects _newmember and _inherited
jhnwkmn 0:97a4f8cc534c 194 -sq_call() sq_resume() sq_wakeupvm() have a new signature
jhnwkmn 0:97a4f8cc534c 195 -new C referencing implementation(scales more with the amount of references)
jhnwkmn 0:97a4f8cc534c 196 -refactored hash table
jhnwkmn 0:97a4f8cc534c 197 -new api functions sq_newslot(),sq_tobool(),sq_getbase(), sq_instanceof(), sq_bindenv()
jhnwkmn 0:97a4f8cc534c 198 -the api func sq_createslot was deprecated but still supported in form of C macro on top of sq_newslot
jhnwkmn 0:97a4f8cc534c 199 -sq_setreleasehook() now also works for classes
jhnwkmn 0:97a4f8cc534c 200 -stream.readstr() and stream.writestr() have been deprecated(this affects file and blob)
jhnwkmn 0:97a4f8cc534c 201 -fixed squirrel.h undeclared api calls
jhnwkmn 0:97a4f8cc534c 202 -fixed few minor bugs
jhnwkmn 0:97a4f8cc534c 203 -SQChar is now defined as wchar_t
jhnwkmn 0:97a4f8cc534c 204 -removed warning when building with -Wall -pedantic for GCC users
jhnwkmn 0:97a4f8cc534c 205 -added new std io function writeclosuretofile()
jhnwkmn 0:97a4f8cc534c 206 -added new std string functions strip(),rstrip(),lstrip() and split()
jhnwkmn 0:97a4f8cc534c 207 -regular expressions operators (+,*) now have more POSIX greedyness behaviour
jhnwkmn 0:97a4f8cc534c 208 -class constructors are now invoked as normal functions
jhnwkmn 0:97a4f8cc534c 209
jhnwkmn 0:97a4f8cc534c 210 ***2005-10-02 ***
jhnwkmn 0:97a4f8cc534c 211 ***version 2.0.5 stable***
jhnwkmn 0:97a4f8cc534c 212 -fixed some 64bits incompatibilities (thx sarge)
jhnwkmn 0:97a4f8cc534c 213 -fixed minor bug in the stdlib format() function (thx Rick)
jhnwkmn 0:97a4f8cc534c 214 -fixed a bug in dofile() that was preventing to compile empty files
jhnwkmn 0:97a4f8cc534c 215 -added new API sq_poptop() & sq_getfreevariable()
jhnwkmn 0:97a4f8cc534c 216 -some performance improvements
jhnwkmn 0:97a4f8cc534c 217
jhnwkmn 0:97a4f8cc534c 218 ***2005-08-14 ***
jhnwkmn 0:97a4f8cc534c 219 ***version 2.0.4 stable***
jhnwkmn 0:97a4f8cc534c 220 -weak references and related API calls
jhnwkmn 0:97a4f8cc534c 221 -added sq_objtobool()
jhnwkmn 0:97a4f8cc534c 222 -class instances memory policies improved(1 mem allocation for the whole instance)
jhnwkmn 0:97a4f8cc534c 223 -typetags are now declared as SQUserPointer instead of unsigned int
jhnwkmn 0:97a4f8cc534c 224 -first pass for 64bits compatibility
jhnwkmn 0:97a4f8cc534c 225 -fixed minor bug in the stdio stream
jhnwkmn 0:97a4f8cc534c 226 -fixed a bug in format()
jhnwkmn 0:97a4f8cc534c 227 -fixed bug in string.tointeger() and string.tofloat()
jhnwkmn 0:97a4f8cc534c 228
jhnwkmn 0:97a4f8cc534c 229 ***2005-06-24 ***
jhnwkmn 0:97a4f8cc534c 230 ***version 2.0.3 stable***
jhnwkmn 0:97a4f8cc534c 231 -dofile() and loadfile() in the iolib now can decode ASCII, UTF8 files UCS2 big-endian and little-endian
jhnwkmn 0:97a4f8cc534c 232 -sq_setparamscheck() : now typemesk can check for null
jhnwkmn 0:97a4f8cc534c 233 -added string escape sequence \xhhhh
jhnwkmn 0:97a4f8cc534c 234 -fixed some C++ standard incompatibilities
jhnwkmn 0:97a4f8cc534c 235
jhnwkmn 0:97a4f8cc534c 236 ***2005-05-15 ***
jhnwkmn 0:97a4f8cc534c 237 ***version 2.0.2 stable***
jhnwkmn 0:97a4f8cc534c 238 -performances improvements (expecially for GCC users)
jhnwkmn 0:97a4f8cc534c 239 -removed all dependencies from C++ exception handling
jhnwkmn 0:97a4f8cc534c 240 -various bugfixes
jhnwkmn 0:97a4f8cc534c 241
jhnwkmn 0:97a4f8cc534c 242 ***2005-04-12 ***
jhnwkmn 0:97a4f8cc534c 243 ***version 2.0.1 stable***
jhnwkmn 0:97a4f8cc534c 244 -various bugfixes
jhnwkmn 0:97a4f8cc534c 245 -sq_setparamscheck() now allows spaces in the typemask
jhnwkmn 0:97a4f8cc534c 246
jhnwkmn 0:97a4f8cc534c 247 ***2005-04-03 ***
jhnwkmn 0:97a4f8cc534c 248 ***version 2.0 stable***
jhnwkmn 0:97a4f8cc534c 249 -added API sq_gettypetag()
jhnwkmn 0:97a4f8cc534c 250 -added built-in function to the bool type(tointeger, tostring etc...)
jhnwkmn 0:97a4f8cc534c 251
jhnwkmn 0:97a4f8cc534c 252 ***2005-02-27 ***
jhnwkmn 0:97a4f8cc534c 253 ***version 2.0 release candidate 1(RC 1)***
jhnwkmn 0:97a4f8cc534c 254 -added API sq_reseterror()
jhnwkmn 0:97a4f8cc534c 255 -modified sq_release()
jhnwkmn 0:97a4f8cc534c 256 -now class instances can be cloned
jhnwkmn 0:97a4f8cc534c 257 -various bufixes
jhnwkmn 0:97a4f8cc534c 258
jhnwkmn 0:97a4f8cc534c 259 ***2005-01-26 ***
jhnwkmn 0:97a4f8cc534c 260 ***version 2.0 beta 1***
jhnwkmn 0:97a4f8cc534c 261 -added bool type
jhnwkmn 0:97a4f8cc534c 262 -class properties can be redefined in a derived class
jhnwkmn 0:97a4f8cc534c 263 -added ops *= /= and %=
jhnwkmn 0:97a4f8cc534c 264 -new syntax for class attributes declaration </ and /> instead of ( and )
jhnwkmn 0:97a4f8cc534c 265 -increased the max number of literals per function from 65535 to 16777215
jhnwkmn 0:97a4f8cc534c 266 -now free variables have proper lexical scoping
jhnwkmn 0:97a4f8cc534c 267 -added API sq_createinstance(), sq_pushbool(), sq_getbool()
jhnwkmn 0:97a4f8cc534c 268 -added built-in function type()
jhnwkmn 0:97a4f8cc534c 269 -added built-in function obj.rawin(key) in table,class and instance
jhnwkmn 0:97a4f8cc534c 270 -sq_rawget() and sq_rawset() now work also on classes and instances
jhnwkmn 0:97a4f8cc534c 271 -the VM no longer uses C++ exception handling (more suitable for embedded devices)
jhnwkmn 0:97a4f8cc534c 272 -various bufixes
jhnwkmn 0:97a4f8cc534c 273
jhnwkmn 0:97a4f8cc534c 274 ***2004-12-21 ***
jhnwkmn 0:97a4f8cc534c 275 ***version 2.0 alpha 2***
jhnwkmn 0:97a4f8cc534c 276 -globals scoping changed, now if :: is omitted the VM automatically falls back on the root table
jhnwkmn 0:97a4f8cc534c 277 -various bufixes
jhnwkmn 0:97a4f8cc534c 278 -added class level attributes
jhnwkmn 0:97a4f8cc534c 279
jhnwkmn 0:97a4f8cc534c 280 ***2004-12-12 ***
jhnwkmn 0:97a4f8cc534c 281 ***version 2.0 alpha 1***
jhnwkmn 0:97a4f8cc534c 282 -codebase branch from version 1.x
jhnwkmn 0:97a4f8cc534c 283 -added classes
jhnwkmn 0:97a4f8cc534c 284 -added functions with variable number of parameters(vargc & vargv and the ...)
jhnwkmn 0:97a4f8cc534c 285 -0 and 0.0 are now considered 'false' by all conditional statements(if,while,for,?,do-while)
jhnwkmn 0:97a4f8cc534c 286 -added new api functions sq_newclass() sq_setinstanceup() sq_getinstanceup() sq_getattributes() sq_setattributes()
jhnwkmn 0:97a4f8cc534c 287 -modified api sq_settypetag()
jhnwkmn 0:97a4f8cc534c 288
jhnwkmn 0:97a4f8cc534c 289 ***2004-11-01 ***
jhnwkmn 0:97a4f8cc534c 290 ***version 1.0 stable***
jhnwkmn 0:97a4f8cc534c 291 -fixed some minor bug
jhnwkmn 0:97a4f8cc534c 292 -improved operator 'delete' performances
jhnwkmn 0:97a4f8cc534c 293 -added scientific notation for float numbers( eg. 2.e16 or 2.e-2)
jhnwkmn 0:97a4f8cc534c 294
jhnwkmn 0:97a4f8cc534c 295 ***2004-08-30 ***
jhnwkmn 0:97a4f8cc534c 296 ***version 1.0 release candidate 2(RC 2)***
jhnwkmn 0:97a4f8cc534c 297 -fixed bug in the vm(thx Pierre Renaux)
jhnwkmn 0:97a4f8cc534c 298 -fixed bug in the optimizer(thx Pierre Renaux)
jhnwkmn 0:97a4f8cc534c 299 -fixed some bug in the documentation(thx JD)
jhnwkmn 0:97a4f8cc534c 300 -added new api functions for raw object handling
jhnwkmn 0:97a4f8cc534c 301 -removed nested multiline comments
jhnwkmn 0:97a4f8cc534c 302 -reduced memory footprint in C references
jhnwkmn 0:97a4f8cc534c 303
jhnwkmn 0:97a4f8cc534c 304 ***2004-08-23 ***
jhnwkmn 0:97a4f8cc534c 305 ***version 1.0 release candidate 1(RC 1)***
jhnwkmn 0:97a4f8cc534c 306 -fixed division by zero
jhnwkmn 0:97a4f8cc534c 307 -the 'in' operator and obj.rawget() do not query the default delegate anymore
jhnwkmn 0:97a4f8cc534c 308 -added function sq_getprintfunc()
jhnwkmn 0:97a4f8cc534c 309 -added new standard library 'auxlib'(implements default error handlers)
jhnwkmn 0:97a4f8cc534c 310
jhnwkmn 0:97a4f8cc534c 311 ***2004-07-12 ***
jhnwkmn 0:97a4f8cc534c 312 ***version 1.0 beta 4***
jhnwkmn 0:97a4f8cc534c 313 -fixed a bug in the integer.tochar() built-in method
jhnwkmn 0:97a4f8cc534c 314 -fixed unary minus operator
jhnwkmn 0:97a4f8cc534c 315 -fixed bug in dofile()
jhnwkmn 0:97a4f8cc534c 316 -fixed inconsistency between != and == operators(on float/integer comparison)
jhnwkmn 0:97a4f8cc534c 317 -added javascript style unsigned right shift operator '>>>'
jhnwkmn 0:97a4f8cc534c 318 -added array(size) constructor built-in function
jhnwkmn 0:97a4f8cc534c 319 -array.resize(size,[fill]) built-in function accepts an optional 'fill' value
jhnwkmn 0:97a4f8cc534c 320 -improved debug API, added sq_getclosureinfo() and sq_setnativeclosurename()
jhnwkmn 0:97a4f8cc534c 321
jhnwkmn 0:97a4f8cc534c 322 ***2004-05-23 ***
jhnwkmn 0:97a4f8cc534c 323 ***version 1.0 beta 3***
jhnwkmn 0:97a4f8cc534c 324 -minor vm bug fixes
jhnwkmn 0:97a4f8cc534c 325 -string allocation is now faster
jhnwkmn 0:97a4f8cc534c 326 -tables and array memory usage is now less conservative(they shrink)
jhnwkmn 0:97a4f8cc534c 327 -added regular expression routines in the standard library
jhnwkmn 0:97a4f8cc534c 328 -The 'c' expression now accepts only 1 character(thx irbrian)
jhnwkmn 0:97a4f8cc534c 329 -multiline strings <[ ]> have been substituted with C# style verbatim strings (eg. @"string")
jhnwkmn 0:97a4f8cc534c 330 -added new keyword 'parent' for accessing the delegate of tables and unserdata
jhnwkmn 0:97a4f8cc534c 331 -The metamethod '_clone' has been renamed '_cloned'
jhnwkmn 0:97a4f8cc534c 332 -the _delslot metamethod's behaviour and prototype have been changed
jhnwkmn 0:97a4f8cc534c 333 -new default function in the integer and float object 'tochar()'
jhnwkmn 0:97a4f8cc534c 334 -the built-in function chcode2string has been removed
jhnwkmn 0:97a4f8cc534c 335 -the default method [table].getdelegate() has been removed
jhnwkmn 0:97a4f8cc534c 336 -new api sq_rawdeleteslot()
jhnwkmn 0:97a4f8cc534c 337 -new table built-in method rawdelete(key)
jhnwkmn 0:97a4f8cc534c 338 -the dynamic mudule loading has been removed from the standard distribution
jhnwkmn 0:97a4f8cc534c 339 -some optimizations in the VM
jhnwkmn 0:97a4f8cc534c 340
jhnwkmn 0:97a4f8cc534c 341 ***2004-04-21 ***
jhnwkmn 0:97a4f8cc534c 342 ***version 1.0 beta 2***
jhnwkmn 0:97a4f8cc534c 343 -minor compiler/parser bug fixes
jhnwkmn 0:97a4f8cc534c 344 -sq_newclosure has a different prototype, the "paramscheck" of paramter has been moved to the new function sq_setparamscheck()
jhnwkmn 0:97a4f8cc534c 345 -sq_setparamscheck allows to add automatic parameters type checking in native closures
jhnwkmn 0:97a4f8cc534c 346 -sq_compile() lost the lineinfo parameter
jhnwkmn 0:97a4f8cc534c 347 -new api sq_enabledebuginfo() globally sets compiler's debug info generation
jhnwkmn 0:97a4f8cc534c 348 -added consistency check on bytecode serialization
jhnwkmn 0:97a4f8cc534c 349 -fixed += operator, now works on strings like +
jhnwkmn 0:97a4f8cc534c 350 -added global slot in the base lib _charsize_ to recognize unicode builds from ascii builds runtime
jhnwkmn 0:97a4f8cc534c 351 -added registry table
jhnwkmn 0:97a4f8cc534c 352 -new api call sq_pushregistrytable()
jhnwkmn 0:97a4f8cc534c 353 -added type tag to the userdata type sq_settypetag()
jhnwkmn 0:97a4f8cc534c 354 -sq_getuserdata now queries the userdata typetag
jhnwkmn 0:97a4f8cc534c 355 -the built in function collect_garbage() as been renamed collectgarbage() for consistency reasons
jhnwkmn 0:97a4f8cc534c 356 -new standard libraries(sqlibs are now obsolete)
jhnwkmn 0:97a4f8cc534c 357
jhnwkmn 0:97a4f8cc534c 358 ***2004-02-20 ***
jhnwkmn 0:97a4f8cc534c 359 ***version 1.0 beta 1***
jhnwkmn 0:97a4f8cc534c 360 -fixed a bug in the compiler (thanks Martin Kofler)
jhnwkmn 0:97a4f8cc534c 361 -fixed bug in the switch case statement
jhnwkmn 0:97a4f8cc534c 362 -fixed the _unm metamethod
jhnwkmn 0:97a4f8cc534c 363 -fixed minor bugs in the API
jhnwkmn 0:97a4f8cc534c 364 -fixed automatic stack resizing
jhnwkmn 0:97a4f8cc534c 365 -first beta version
jhnwkmn 0:97a4f8cc534c 366 first pass code clean up in the VM and base lib
jhnwkmn 0:97a4f8cc534c 367 first pass code coverege test has been done on VM and built-in lib
jhnwkmn 0:97a4f8cc534c 368 -new VM creation API sq_open() sq_close() (sq_newvm and sq_releasevm are now obsolete)
jhnwkmn 0:97a4f8cc534c 369 -new api allows to specifiy a "print" function to output text(sq_printfunc)
jhnwkmn 0:97a4f8cc534c 370 -added some small optimizations
jhnwkmn 0:97a4f8cc534c 371 -new cooperative multi-threading capabilities in the base library(coroutines), VMs are now a built in type("thread")
jhnwkmn 0:97a4f8cc534c 372 -new built in functions have been added for manipulating the new "thread" type
jhnwkmn 0:97a4f8cc534c 373 -friend virtual machines share the same root table, error handler and debug hook by default
jhnwkmn 0:97a4f8cc534c 374 -new compile time options
jhnwkmn 0:97a4f8cc534c 375
jhnwkmn 0:97a4f8cc534c 376 ***2004-01-19 ***
jhnwkmn 0:97a4f8cc534c 377 ***version 0.9 alpha***
jhnwkmn 0:97a4f8cc534c 378 -fixed a garbage collection bug
jhnwkmn 0:97a4f8cc534c 379 -fixed some API bugs(thanks to Joshua Jensen)
jhnwkmn 0:97a4f8cc534c 380 -fixed tail calls (in the version 0.8 the tail call optimization was erroneously disabled)
jhnwkmn 0:97a4f8cc534c 381 -new function parameters semantic, now passing a wrong number of parameters generates an exception
jhnwkmn 0:97a4f8cc534c 382 -native closures have now a built in parameter number checking
jhnwkmn 0:97a4f8cc534c 383 -sq_rawget and sq_rawset now work also on arrays
jhnwkmn 0:97a4f8cc534c 384 -sq_getsize now woks also on userdata
jhnwkmn 0:97a4f8cc534c 385 -the userdata release hook prototype is changed(now passes the size of the userdata)
jhnwkmn 0:97a4f8cc534c 386 -the lexer reader function now returns an integer instead of a char that allows better error checking on the input(thx Joshua Jensen)
jhnwkmn 0:97a4f8cc534c 387 -faster compiler
jhnwkmn 0:97a4f8cc534c 388 -try/catch blocks do not cause any runtime memory allocation anymore
jhnwkmn 0:97a4f8cc534c 389
jhnwkmn 0:97a4f8cc534c 390 ***2003-12-06 ***
jhnwkmn 0:97a4f8cc534c 391 ***version 0.8 alpha***
jhnwkmn 0:97a4f8cc534c 392 -fixed a bug that was preventing to have callable userdata throught the metamethod _call
jhnwkmn 0:97a4f8cc534c 393 -fixed a garbage collection bug
jhnwkmn 0:97a4f8cc534c 394 -fixed == operator now can compare correctly different types
jhnwkmn 0:97a4f8cc534c 395 -new built in method getstackinfos(level)
jhnwkmn 0:97a4f8cc534c 396 -improved line informations precision for the debug hook
jhnwkmn 0:97a4f8cc534c 397 -new api call sq_compilebuffer()
jhnwkmn 0:97a4f8cc534c 398 -new built-in api function compilestring()
jhnwkmn 0:97a4f8cc534c 399 -new syntactic sugar for function declarations inside tables
jhnwkmn 0:97a4f8cc534c 400 -the debug API has been finalized
jhnwkmn 0:97a4f8cc534c 401
jhnwkmn 0:97a4f8cc534c 402 ***2003-11-17 ***
jhnwkmn 0:97a4f8cc534c 403 ***version 0.7 alpha***
jhnwkmn 0:97a4f8cc534c 404 -fixed critical bug SQInteger the tail call system
jhnwkmn 0:97a4f8cc534c 405 -fixed bug in the continue statement code generation
jhnwkmn 0:97a4f8cc534c 406 -fixed func call param issue(thanks to Rewoonenco Andrew)
jhnwkmn 0:97a4f8cc534c 407 -added _delslot metamethod(thanks to Rewoonenco Andrew)
jhnwkmn 0:97a4f8cc534c 408 -new multiline string expression ( delimited by <[ and ]> )
jhnwkmn 0:97a4f8cc534c 409 -normal strings ("") do not allow embedded new line anymore
jhnwkmn 0:97a4f8cc534c 410 -reduced vm memory footprint(C refs are shared between friend VMs)
jhnwkmn 0:97a4f8cc534c 411 -new api method sq_deleteslot()
jhnwkmn 0:97a4f8cc534c 412 -new debug hook event 'r' is triggered when a function returns
jhnwkmn 0:97a4f8cc534c 413
jhnwkmn 0:97a4f8cc534c 414 ***2003-11-04 ***
jhnwkmn 0:97a4f8cc534c 415 ***version 0.6 alpha***
jhnwkmn 0:97a4f8cc534c 416 -fixed switch statement(was executing the default case after a break)
jhnwkmn 0:97a4f8cc534c 417 -sq_call() doesn't pop the closure (just the params)
jhnwkmn 0:97a4f8cc534c 418 -the vm execution can be suspended from the C API anytime (micro-threads)
jhnwkmn 0:97a4f8cc534c 419 -new api calls sq_suspendvm() sq_wakeupvm() sq_getvmstate() and sq_reservestack()
jhnwkmn 0:97a4f8cc534c 420
jhnwkmn 0:97a4f8cc534c 421 ***2003-10-13 ***
jhnwkmn 0:97a4f8cc534c 422 ***version 0.5 alpha***
jhnwkmn 0:97a4f8cc534c 423 -fixed some minor bug
jhnwkmn 0:97a4f8cc534c 424 -tested with non ASCII identifiers in unicode mode(I've tried chinese chars)
jhnwkmn 0:97a4f8cc534c 425 -added built-in function string.find()
jhnwkmn 0:97a4f8cc534c 426 -the built-in function array.sort() optionally accepts a cmp(a,b) function
jhnwkmn 0:97a4f8cc534c 427 -the debug hook function now has a new prototype debug_hook(event_type,sourcefile,line,functionname)
jhnwkmn 0:97a4f8cc534c 428 -fixed some debug info imprecision
jhnwkmn 0:97a4f8cc534c 429
jhnwkmn 0:97a4f8cc534c 430 ***2003-10-01 ***
jhnwkmn 0:97a4f8cc534c 431 ***version 0.4 alpha***
jhnwkmn 0:97a4f8cc534c 432 -faster VM
jhnwkmn 0:97a4f8cc534c 433 -sq_call will pop arguments and closure also in case of failure
jhnwkmn 0:97a4f8cc534c 434 -fixed a bug in sq_remove
jhnwkmn 0:97a4f8cc534c 435 -now the VM detects delegation cycles(and throws an exception)
jhnwkmn 0:97a4f8cc534c 436 -new operators ++ and --
jhnwkmn 0:97a4f8cc534c 437 -new operator ',' comma operator
jhnwkmn 0:97a4f8cc534c 438 -fixed some expression precedence issue
jhnwkmn 0:97a4f8cc534c 439 -fixed bug in sq_arraypop
jhnwkmn 0:97a4f8cc534c 440
jhnwkmn 0:97a4f8cc534c 441 ***2003-09-15 ***
jhnwkmn 0:97a4f8cc534c 442 ***version 0.3 alpha***
jhnwkmn 0:97a4f8cc534c 443 -fixed a bug in array::insert()
jhnwkmn 0:97a4f8cc534c 444 -optional Unicode core(define SQUNICODE or _UNICODE on Win32)
jhnwkmn 0:97a4f8cc534c 445 -sq_compiler uses a new reader function SQLEXREADFUNC
jhnwkmn 0:97a4f8cc534c 446 -the debug hook passes 'l' instead of 'line' for line callbacks
jhnwkmn 0:97a4f8cc534c 447 and 'c' instead of 'call' for call callbacks
jhnwkmn 0:97a4f8cc534c 448 -new array.extend() bulit-in function
jhnwkmn 0:97a4f8cc534c 449 -new API sq_clone()
jhnwkmn 0:97a4f8cc534c 450
jhnwkmn 0:97a4f8cc534c 451 ***2003-09-10 ***
jhnwkmn 0:97a4f8cc534c 452 ***version 0.2 pre-alpha***
jhnwkmn 0:97a4f8cc534c 453 -new completely reentrant VM (sq_open and sq_close are now obsolete)
jhnwkmn 0:97a4f8cc534c 454 -sq_newvm() has a new prototype
jhnwkmn 0:97a4f8cc534c 455 -allocators are now global and linked in the VM
jhnwkmn 0:97a4f8cc534c 456 -_newslot meta method added
jhnwkmn 0:97a4f8cc534c 457 -rawset creates a slot if doesn't exists
jhnwkmn 0:97a4f8cc534c 458 -the compiler error callback pass the vm handle(thanks Pierre Renaux)
jhnwkmn 0:97a4f8cc534c 459 -sq_setforeignptr() sq_getforeingptr() are now public
jhnwkmn 0:97a4f8cc534c 460 -sq_resume() now is possible to resume generators from C
jhnwkmn 0:97a4f8cc534c 461 -sq_getlasterror() retrieve the last thrown error
jhnwkmn 0:97a4f8cc534c 462 -improved docs
jhnwkmn 0:97a4f8cc534c 463
jhnwkmn 0:97a4f8cc534c 464 ***2003-09-06 ***
jhnwkmn 0:97a4f8cc534c 465 ***version 0.1 pre-alpha***
jhnwkmn 0:97a4f8cc534c 466 first release