HISTORY 23 KB

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