The Squirrel interpreter. See http://www.squirrel-lang.org/
HISTORY@0:97a4f8cc534c, 2014-12-16 (annotated)
- Committer:
- jhnwkmn
- Date:
- Tue Dec 16 10:20:34 2014 +0000
- Revision:
- 0:97a4f8cc534c
Initial import of Squirrel.
Who changed what in which revision?
User | Revision | Line number | New 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 |