mirror of
https://github.com/mamedev/mame.git
synced 2024-11-16 07:48:32 +01:00
b5475eb38b
Compile Lua as C++. When Lua is compiled as C, it uses setjmp/longjmp for error handling, resulting in failure to unwind intermediate stack frames. Trying to ensure no objects with non-trivial destructors are in scope when raising a Lua error is error-prone. In particular, converting an exception to a Lua error becomes convoluted, and raising a Lua error from a constructor is effectively impossible. Updated Lua to 5.4.4 - this includes a brand-new garbage collector implementation with better performance. The main thing removed is the deprecated bitlib. Updated sol2 to version 3.3.0 - this adds support for Lua 5.4 and fixes a number of issues, including not correctly handling errors when Lua is built as C++. Updated LuaFileSystem to version 1.8.0 - this adds support for symbolic links on Windows, as well as Lua 5.4 compatibility. Updated LuaSQLite3 to version 0.9.5 - this fixes issues in multi-threaded environments, as well as Lua 5.4 compatibility. Fixed double-free after attempting to construct a debugger expression from Lua with an invalid string, and exposed expression error to Lua in a better way. Added warning level print function to Lua. Fixed saving cheats with shift operators in expressions, although this code isn't actually used as there's no cheat editor.
258 lines
7.6 KiB
Text
258 lines
7.6 KiB
Text
2018-June-30
|
|
|
|
Version "0.9.5"
|
|
|
|
Since the "0.9.4-devel" release of this Lua library...
|
|
|
|
Lua 5.4 compatibility (backward compatible with Lua 5.3, 5.2, and Lua 5.1.5).
|
|
|
|
2016-November-13
|
|
|
|
Version "0.9.4"
|
|
|
|
Since the "0.9.3-devel" release of this Lua library...
|
|
|
|
Add functions db:get_ptr() and sqlite3.open_ptr(db_ptr) to pass a db connection between threads.
|
|
Add function db:db_filename(name).
|
|
Update sqlite3_open to sqlite3_open_v2 and add open flags constants.
|
|
Thanks to Wolfgang Oertl!
|
|
|
|
Added second module 'lsqlite3complete' that statically links sqlite.c. Continue to use
|
|
'lsqlite3' for dynamic linking to 'sqlite3.so' or 'sqlite3.dll'.
|
|
|
|
Added Online Backup API
|
|
|
|
Added unit tests for NULs in BLOBs and TEXT columns. (Refute defect report.)
|
|
|
|
Use lua_createtable() in lieu of lua_newtable() when number of table elements is known.
|
|
This will improve performance.
|
|
Thanks to Egil Hjelmeland for the suggestion.
|
|
|
|
2015-January-06
|
|
|
|
Version "0.9.3"
|
|
|
|
Since the "0.9.2-devel" release of this Lua library...
|
|
|
|
Added lversion() function to report library version, "0.9.3".
|
|
|
|
Added db:load_extension() function to support SQLite extension libraries.
|
|
|
|
Added some tests for new funcitons and Lua 5.3 64-bit integers in the database.
|
|
|
|
Fixed longstanding bug: if db is no longer live, it is auto-closed by gc, but there may still
|
|
be live prepared statements. Executing these statements would produce an error. Prepared
|
|
statements now hold a reference to the db to prevent it from being collected while the prepared
|
|
statement is live. Manually closing the db will continue to finalize the statements, as before.
|
|
|
|
Fixed bug in PUSH_INT64 macro for Lua < 5.3 introduced in version 0.9.2-devel.
|
|
|
|
2015-January-04
|
|
|
|
Version "0.9.2-devel"
|
|
|
|
Since the "0.9.1-devel" release of this Lua library...
|
|
|
|
Lua 5.3 compatibility (backward compatible with Lua 5.2 and Lua 5.1.5).
|
|
|
|
Finally uses sqlite3_prepare_v2() to preserve detailed error codes in statement stepping
|
|
|
|
With Lua 5.3, 64-bit integer database values are supported for reading and writing columns;
|
|
all other values, e.g., status and counts, are now also returned as integers. The only use of
|
|
doubles is for values of that type read from or written to columns.
|
|
|
|
Added support for stmt:last_insert_rowid() as requested
|
|
|
|
2013-April-08
|
|
|
|
Version "0.9.1-devel"
|
|
|
|
Since the "0.9-devel" release of this Lua library...
|
|
|
|
Updated examples and tests from Dmitry Pashkevich.
|
|
|
|
2013-March-30
|
|
|
|
Version "0.9-devel"
|
|
|
|
Since the "0.8-devel" release of this Lua library...
|
|
|
|
Updates for Lua 5.2 (backward compatible with Lua 5.1.5).
|
|
|
|
Uses lunitx-0.6-1.rockspec for Lua 5.2 compatible testing.
|
|
|
|
Added sqlite3.update_hook(), sqlite3.commit_hook() and
|
|
sqlite3.rollback_hook() at the suggesiton of Dmitry Pashkevich, who
|
|
also contributed examples and some testing assistance on this release.
|
|
|
|
Converted Makefile to depend on luarocks.
|
|
|
|
2011-January-10
|
|
|
|
Version "0.8-devel"
|
|
|
|
Since the "0.7-devel" release of this Lua library...
|
|
|
|
Added a missing lua_pop in dbvm_bind_names()
|
|
Now dbvm_bind_index() binds a boolean as 1 or 0
|
|
Thanks to Ronny Dierckx
|
|
|
|
Since the "0.6-devel" release of this Lua library...
|
|
|
|
Made db_exec_callback thread safe.
|
|
Thanks to Grant Robinson.
|
|
|
|
Bug fix in dbvm_bind_index error message.
|
|
Thanks to Dirk Feytons.
|
|
|
|
Added a few casts and changed a few comments to ANSI C style.
|
|
Thanks to Corey Stup.
|
|
|
|
Note that Thomas Lauer has a patch referenced on LuaForge
|
|
to make collations thread safe(r). This issue is still
|
|
under investigation: the patch has wide ranging affect
|
|
and to me it appears unsafe wrt GC. The whole issue of
|
|
thread references in callbacks deserves thorough review.
|
|
A new design that places referenced values in the upvalues
|
|
of the callback function (rather than in the registry of
|
|
the function defining thread) would be preferable. It may
|
|
also make sense to keep thread references in a shared
|
|
environment of the library's functions, and/or require
|
|
all callbacks to be defined in the main lua state (so
|
|
they the state is guaranteed to outlive other threads).
|
|
|
|
-=-
|
|
|
|
2007-August-15 e
|
|
|
|
Version "0.6-devel"
|
|
|
|
Since the "0.5-devel" release of this Lua library...
|
|
|
|
Tested with SQLite 3.4.2
|
|
|
|
Added some documentation.
|
|
|
|
Thanks to Thomas Lauer...
|
|
|
|
Moved line 525 ("luaL_checktype(L, 2, LUA_TTABLE);")
|
|
below the declarations to eliminate non-gcc compiler errors.
|
|
|
|
Added create-collation, and associated test case.
|
|
|
|
-=-
|
|
|
|
2006-October-02 e
|
|
|
|
Since the "0.1-devel" release of this Lua library...
|
|
- updated for Lua 5.1
|
|
- provide automatic re-preparation of queries after schema changes
|
|
- made prepared statements with bindings work with for-loops
|
|
- added some compatibility names
|
|
- added many test cases, and ported Mike Roth's tests and examples
|
|
|
|
-=-
|
|
|
|
Below is a header comment from the 2004 "0.1" version of the library...
|
|
|
|
/************************************************************************
|
|
$Id: lsqlite3.c,v 1.3 2004/09/05 17:50:32 tngd Exp $
|
|
|
|
To consider:
|
|
------------
|
|
|
|
EXPERIMENTAL APIs
|
|
|
|
* sqlite3_progress_handler (implemented)
|
|
* sqlite3_commit_hook
|
|
|
|
TODO?
|
|
|
|
* sqlite3_create_collation
|
|
|
|
Changes:
|
|
04-09-2004
|
|
----------
|
|
* changed second return value of db:compile to be the rest of the
|
|
sql statement that was not processed instead of the number of
|
|
characters of sql not processed (situation in case of success).
|
|
* progress callback register function parameter order changed.
|
|
number of opcodes is given before the callback now.
|
|
|
|
29-08-2004 e
|
|
------------
|
|
* added version() (now supported in sqlite 3.0.5)
|
|
* added db:errmsg db:errcode db:total_changes
|
|
* rename vm:get_column to vm:get_value
|
|
* merge in Tiago's v1.11 change in dbvm_tostring
|
|
|
|
23-06-2004 e
|
|
------------
|
|
* heavily revised for SQLite3 C API
|
|
* row values now returned as native type (not always text)
|
|
* added db:nrows (named rows)
|
|
* added vm:bind_blob
|
|
* added vm:get_column
|
|
* removed encode_binary decode_binary (no longer needed or supported)
|
|
* removed version encoding error_string (unsupported in v 3.0.1 -- soon?)
|
|
|
|
09-04-2004
|
|
----------
|
|
* renamed db:rows to db:urows
|
|
* renamed db:prows to db:rows
|
|
|
|
* added vm:get_unames()
|
|
* added vm:get_utypes()
|
|
* added vm:get_uvalues()
|
|
|
|
08-04-2004
|
|
----------
|
|
* changed db:encoding() and db:version() to use sqlite_libencoding() and
|
|
sqlite_libversion()
|
|
|
|
* added vm:columns()
|
|
* added vm:get_named_types()
|
|
* added vm:get_named_values()
|
|
|
|
* added db:prows - like db:rows but returns a table with the column values
|
|
instead of returning multiple columns seperatly on each iteration
|
|
|
|
* added compatibility functions idata,iname,itype,data,type
|
|
|
|
* added luaopen_sqlite_module. allow the library to be loaded without
|
|
setting a global variable. does the same as luaopen_sqlite, but does not
|
|
set the global name "sqlite".
|
|
|
|
* vm:bind now also returns an error string in case of error
|
|
|
|
31-03-2004 - 01-04-2004
|
|
-----------------------
|
|
* changed most of the internals. now using references (luaL_ref) in
|
|
most of the places
|
|
|
|
* make the virtual machine interface seperate from the database
|
|
handle. db:compile now returns a vm handle
|
|
|
|
* added db:rows [for ... in db:rows(...) do ... end]
|
|
|
|
* added db:close_vm
|
|
|
|
* added sqlite.encode_binary and sqlite.decode_binary
|
|
|
|
* attempt to do a strict checking on the return type of the user
|
|
defined functions returned values
|
|
|
|
18-01-2004
|
|
----------
|
|
* add check on sql function callback to ensure there is enough stack
|
|
space to pass column values as parameters
|
|
|
|
03-12-2003
|
|
----------
|
|
* callback functions now have to return boolean values to abort or
|
|
continue operation instead of a zero or non-zero value
|
|
|
|
06-12-2003
|
|
----------
|
|
* make version member of sqlite table a function instead of a string
|
|
************************************************************************/
|