dart_eval 0.5.6
dart_eval: ^0.5.6 copied to clipboard
A flexible Dart bytecode compiler and interpreter written in Dart, enabling code push for AOT Dart apps.
0.5.6 #
- (Breaking) Use DartTypes.list instead of RuntimeTypes.listType in bridge class definitions.
- Support for Iterable and for-each
- Support for collection
for
- Fixes to branching logic
- Improved generic type inference
- Fix return value boxing in arrow functions
- Allow arrow function entrypoints in
eval()
- Remove dcli to eliminate many extraneous dependencies
- Improved documentation
0.5.4 #
- Bindings for most String methods (thanks to @maks)
- Support for super constructor params
- Support for plugins in the
eval()
method - Deprecated compilerSettings and runtimeSettings in
eval()
in favor of plugins - Support for nullable type annotations in argument lists
- Removed the
nullable
param from KnownMethodArg in favor of the newnullable
param in TypeRef - Improved many error messages to display filename and a code snippet
- Error messages about type assignments now disambuigate between types if they have the same name
0.5.3 #
- Support for class getters and setters
- Automatic default constructor when none is specified
- Fix prefixed imports causing other types to be unresolvable
0.5.2 #
- Allow null to be boxed
- Fix Maps without explicit type parameters
- Other bug fixes
0.5.1 #
- Propagate expected types from variable declarations and argument lists to the expressions they contain.
- Allow specifying doubles with int literals when the expected type is known
- Fix static bridge method return types being null
0.5.0 #
Note: EVC bytecode generated with this version may not be compatible with previous versions.
- Web support for both compiler and runtime
- Incremental parsing for faster recompilation
- New plugin system for bridge libraries to enable reusing a Compiler instance
- Support for tear-offs (top-level functions and methods within the current class only)
- Improve async/await
- Reduce size of generated bytecode
0.4.7 #
- Add bindings for the dart:math Point class
- Add Duration.zero and some other Duration static getters
- Support unary minus on ints and doubles
- Support for optional positional parameters on bridge classes
0.4.6 #
- Support for bridged static getters
- Support for top-level and class arrow functions
0.4.5 #
- Support for arrow function expressions
0.4.4 #
- CLI: allow invoking without
dart pub global run
0.4.3 #
- CLI: Improved ease of use and documentation
- CLI: Added support for JSON bindings
- Type arguments are now applied when extending a bridge class that declares a generic type parameter
BridgeTypeRef.ref
is now supported in limited cases for referencing generic class type parameters- Support for bridged getters
- Support for string interpolation
- The
eval()
method now lets you specify an output file path and does not automatically output a file if left unspecified - Fix broken sample in README (thanks @g123k)
0.4.2 #
- Fix analyzer version constraint
0.4.1 #
- Fix a potential crash when resolving common base types.
- Support for calling methods on a bridge class's supertype without having to declare the method on the subtype's declaration.
- Documentation improvements
0.4.0 #
- (Breaking) You must now specify the
bridge
orwrap
parameter in aBridgeClassDef
- (Breaking) You must now specify
isBridge: true
when registering a bridge class constructor withruntime.registerBridgeFunc()
- Support for bridged (only) enums
- Support for variable captures inside closures
- Support for implicit class field accesses including
this
andsuper
in closures - Bridge declarations are now merged with a Dart source file of the same URI, if one exists
- Basic support for top-level variables and static fields
- Support for bool literals and logical and/or
- Support
String.substring()
(thanks to @maks) - Now using continuous integration (thanks to @maks)
- Various bug fixes and code cleanups
0.3.0 #
- (Breaking) Modified public API for defining bridge classes. See Pub example.
- (Breaking) Relative import URIs may no longer work (it's unclear whether they worked before). Support will be re-added in a future release.
- (Deprecated)
Runtime.executeNamed()
is deprecated. UseRuntime.executeLib()
instead. - Compiler now uses graphs to compose libraries from imports, exports, and parts, and should now mostly follow the Dart spec.
- Partial support for
show
andhide
on imports and exports - Support defining
extends
,implements
, andwith
on bridge classes - Support for adding files to the compiler before compiling, for use in bridge libraries to enable exports.
- Add recursion guard for type resolution
0.2.0 #
- Partial support for anonymous functions and the Dart runtime type system
- New serializable interop descriptor classes to allow for code push in the future
- Runtime overrides
- Implement collection
if
for Lists - Support for
async
/await
via continuations, as well asFuture.then()
- Basic CLI
0.1.0 #
- Rebuilt from the ground up around the new DBC bytecode compiler
- Public API changes: see readme
- Massive performance improvements, up to 350x
- Support for the Dart type system (compile-time checks only)
- Refactor class system to support
super
- New simpler Bridge interop that also allows const classes
0.0.4 #
- Add support for
if
, basicfor
, number comparison operators, and postfix++
- Fix
+
,-
,*
, and/
operators - Improve performance significantly
0.0.3 #
- Make the Pub analyzer happy
- Add some Dartdoc comments
0.0.2 #
- Fix scoping
- Add support for List and Map types
0.0.1 #
- Create parser and interpreter
- Add interop