lualike 0.5.2
lualike: ^0.5.2 copied to clipboard
A Lua-like scripting language for Dart, designed to be easy to embed and extend. It provides a simple REPL, supports Lua-like syntax, and allows for seamless integration with Dart code.
0.5.2 #
- Require the Lualike-specific
*_lualike_schema.dartinput suffix, avoiding collisions with Drift and other generated part files such astables.g.dart.
0.5.1 #
- Include
lib/src/build/table_schema_builder.dartin the published package so dependentbuild_runnerbuilders can start correctly.
0.5.0 #
- Centralize runtime bootstrap and library registry setup across AST, IR, and bytecode runtimes.
- Preserve native Dart payloads for byte-oriented and string-library results, while keeping JSON conversion and Lua table conversion explicit.
- Harden IR inlining and bytecode register-budget handling.
- Simplify Lua bytecode test fixtures and array unwrapping coverage.
- Remove FFI integration from the core package; use the external
lualike_ffipackage for native bindings. - Broaden the
artisanalconstraint to>=0.3.0 <0.5.0.
0.4.0 #
- Major runtime release with a Zig-based backend, native FFI, tree-walk
load()/dofile(), and broader stdlib/runtime coverage. - Improved IR/bytecode execution, call-result handling, and table/list interoperability between Dart and Lua, including Lua array tables unwrapping back to Dart
Lists. - Expanded examples, Flutter hooks/build support, and package exports for downstream tooling.
0.3.0 #
- Add
ValueDoc,DocDescriptor,AccessScope,GenericParam,OverloadDoc,OperatorDoc,AliasDoc,EnumDocto core doc model for rich library metadata. LibraryRegistrationContext.define()now acceptsDocDescriptorobjects (FunctionDescriptor,ConstantDescriptor,AliasDescriptor,EnumDescriptor,TableDescriptor) for structured library registration.- Add full LuaLS annotation support across all three renderers: deprecated, async, nodiscard, scope, generic, overload, alias, enum, operator, see, source, version, and type annotations for ValueDoc constants.
- Add
CompositeFileSystemBackendto core lualike for layered filesystem backends. - Consolidate extension dispatch:
unwrap()onObject?,Value.rawObjectgetter, andMap.unwrap(key)that properly handlesLuaStringconversion. - Add
DerivedDocumentedLibrarymixin for composing library metadata. - Expose new doc model types in public API (
package:lualike/lualike.dart). - Document math constants (
pi,huge,maxinteger,mininteger) and_VERSIONviaValueDoc.
0.2.4 #
- Add public
setFileSystemProvider()API to bridgepackage:lualike'sFileSystemProviderinto the built-inIOLib.fileSystemProvider. - Fix
file_lualikeio.open()routing:useFileSystem()now assigns the configuredFileSystemProvidertoIOLib.fileSystemProvidersoio.open()/io.lines()/io.input()/io.output()/io.tmpfile()all delegate to the remote/backend filesystem instead of falling through to localdart:io.
0.2.3 #
- Add
FileSystemBackendabstract class withsetFileSystemBackend/currentFileSystemBackendinjection point for pluggable filesystem metadata backends. - Export
IODevice,FileSystemProvider,FileSystemBackend,file_system_utils.dartfrompackage:lualike/lualike.dart(web-safe; nodart:ioin public signatures).
0.2.2 #
- Add
@TableSchema()/@SchemaField()annotations andtable_schemabuild_runner builder for auto-generatingTableDocconstants from Dart classes. - Add
FieldDocandTableDoctypes tolib/src/stdlib/doc.dart. - Extract
MetadataFormatintometadata_format.dartfor web-safe exports fromdocs.dart. - Add CSS styles for section toggles in
web/docs.html. - Rewrite
example/table_doc_example.dartto use only built-in types. - Add
example/builder_demo/demonstrating all registration mechanisms (annotations, BuiltinFunction, ValueClass, constants, table schemas). - Update README with annotations/builder documentation and example links.
0.2.1 #
- Fix bytecode coroutine yield-through-pcall regression caused by premature
exitProtectedCallin_ProtectedCallSuspension.resume(). - Add
LuaLike.register(Library)convenience shorthand. - Add
LuaLike.fileManagergetter for easy access to virtual file/module API. - Re-export
Librarybase class frompackage:lualike/lualike.dart. - Update README with feature demonstrations, inline docs pattern, and custom I/O backend documentation.
0.2.0 #
- Improve runtime performance with centralized raw slot access, primitive wrapper optimization, reduced value wrapper churn, and eliminated BigInt round-trips in hot arithmetic paths.
- Improve parser throughput with scanner-backed Lua fast paths, direct dispatch for statements and calls, binary format parsing without BigInt, and token/span caching.
- Optimize bytecode VM with cached register writes, local metadata, dead-local cleanup, and reduced coroutine/wrapper overhead.
- Add web-compatible 64-bit byte_data compatibility layer and overhaul web REPL UI.
- Add DevTools profiler with bytecode mode and parser profiling snapshot tooling.
- Add
--all-enginestest flag to cycle AST, IR, and lua-bytecode engines. - Fix IO file tracking to scope per interpreter instead of static global.
- Fix value key hash canonicalization and vararg string key distinctness.
- Fix bytecode coroutine frame resolution for IR and protected call result expansion.
- Fix IR varargs and high arithmetic operand lowering, loop local preservation.
- Fix Lua chunk names with Windows-illegal characters in Uri.file().
- Fix non-finite numeric handling in web platform.
- Fix to-be-closed error messages in pcall context.
- Replace dart_console dependency with artisanal.
- Resolve 20+ pre-existing test failures across AST, bytecode, and browser modes.
- Add stdlib documentation and compiled artifact support docs.
0.1.0 #
- Add a production-ready Lua bytecode engine, including source execution, direct chunk loading, coroutine support, and full stock-suite coverage.
- Expand Lua 5.5 language and runtime compatibility across the parser, interpreter, standard library, and vendored suite coverage.
- Improve parser throughput with scanner-backed Lua fast paths, direct dispatch for statement/call/suffix parsing, faster literal and format-string parsing, and committed profiling snapshots/tooling.
- Improve runtime correctness and performance with substantial GC, coroutine, debug, load, table, and string-path fixes.
- Refresh the web REPL and browser support, including a fallback editor path and browser-safe numeric helper behavior.
- Export and document more of the public embedding surface, including parser utilities, library registration helpers, and refreshed guides/reference docs.
- Run the Lua compatibility suite in both AST and bytecode modes in CI.
0.0.1-alpha.2 #
- refactor BuiltinFunctions to accept intepreter instance
- Introduce Library registry
- No longer depend on a static environment
0.0.1-alpha.1 #
- Initial version.