apollovm 0.0.47 apollovm: ^0.0.47 copied to clipboard
ApolloVM, a Multilingual portable VM (native, JS/Web, Flutter) for Dart, Java, JavaScript with on-the-fly Wasm compilation.
0.0.47 #
- Improve variable type resolution while compiling to Wasm.
0.0.46 #
- Improve type resolution of
ASTTypeVar
. - Optimize some
async
methods.
0.0.45 #
-
ASTBranchIfElseBlock
andASTBranchIfElseIfsElseBlock
:blockElse
: optional.
-
ASTParametersDeclaration
:- Added
allParameters
.
- Added
-
ASTTypeInt
andASTTypeDouble
:- Added
bits
- Added
ASTTypeInt.instance32
andASTTypeInt.instance64
. - Added
ASTTypeDouble.instance32
andASTTypeDouble.instance64
.
- Added
-
ASTValueNum
:- Added field
negative
.
- Added field
-
ApolloGeneratorWasm
:- Changed to 64 bits.
Wasm
: split inWasm32
andWasm64
with improved opcodes.- Allow operations with different types (auto casting).
- Handle
unreachable
end of function cases. - Implemented:
generateASTValue
,generateASTValueDouble
,generateASTValueInt
.generateASTExpressionVariableAssignment
,generateASTStatementExpression
generateASTBranchIfBlock
,generateASTBranchIfElseBlock
,generateASTBranchIfElseIfsElseBlock
.generateASTStatementReturnWithExpression
,generateASTStatementReturn
,generateASTStatementReturnValue
.
-
ApolloParserWasm
:- Identify if an
ASTTypeInt
orASTTypeDouble
type is a32
or64
bits.
- Identify if an
-
ApolloRunnerWasm
:- Use the parsed Wasm functions (AST) to normalize the parameters before calling the Wasm function.
-
WasmModule
:- Added
resolveReturnedValue
.- Browser implementation: when the function returns a
f64
, the JSbigint
needs to be converted to a DartBigInt
.
- Browser implementation: when the function returns a
- Added
-
New
WasmModuleExecutionError
.
0.0.44 #
pubspec.yaml
: update description.
0.0.43 #
ApolloRunner
:getFunctionCodeUnit
: fix returned codeUnit whenallowClassMethod = true
.
0.0.42 #
-
New
SourceCodeUnit
andBinaryCodeUnit
.CodeUnit
now isabstract
:- Renamed field
source
tocode
.
- Renamed field
-
Using
SourceCodeUnit
instead ofCodeUnit
when necessary. -
ApolloParser
renamed toApolloCodeParser
:- Allows binary code parsing (not only strings).
- New
ApolloSourceCodeParser
.
-
ApolloRunner
:- Added
getFunctionCodeUnit
.
- Added
-
Using
Leb128
from packagedata_serializer
. -
BytesOutput
now extendsBytesEmitter
(fromdata_serializer
). -
ApolloGeneratorWasm
:generateASTExpressionOperation
: allow operations with different types (auto casting fromint
todouble
).
-
New
WasmRuntime
andWasmModule
.- Implementation:
WasmRuntimeBrowser
.
- Implementation:
-
New
WasmModuleLoadError
. -
WasmContext
:- Added stack status to help code generation.
-
data_serializer: ^1.0.11
-
wasm_interop: ^2.0.1
-
crypto: ^3.0.3
-
path: ^1.8.3
0.0.42+alpha #
- Renamed
ApolloLanguageRunner
toApolloRunner
. - Organize runners implementation files.
0.0.41 #
README.md
: added Wasm example.- Minor fixes.
0.0.40 #
-
New
ApolloGeneratorWasm
.- Basic support to compile the AST tree to Wasm.
-
New
BytesOutput
for binary code generation. -
data_serializer: ^1.0.10
0.0.39 #
ApolloVMNullPointerException
andApolloVMCastException
now extendsApolloVMRuntimeError
.- AST implementation:
- Changes some
StateError
while executing toApolloVMRuntimeError
.
- Changes some
- New abstract
ApolloCodeUnitStorage
:- Implementations:
ApolloSourceCodeStorage
,ApolloSourceCodeStorageMemory
.ApolloBinaryCodeStorage
,ApolloBinaryCodeStorageMemory
.ApolloGenericCodeStorageMemory
.
- Implementations:
ApolloGenerator
now defines the output type.- New
GeneratedOutput
.
0.0.38 #
pubspec.yaml
:- Added issue_tracker
- Added topics.
- Added screenshots.
README.md
:- Added
Codecov
badge and link.
- Added
0.0.37 #
- Update
pubspec.yaml
description. README.md
: added TODO list.
0.0.36 #
ApolloCodeGenerator
:generateASTValueStringExpression
: try to preserve single quotes in concatenations sequence.
- Java 11:
- Added support for
ArrayList
andHashMap
literals.
- Added support for
0.0.35 #
ASTRoot
:- Added
getClassWithMethod
.
- Added
CodeNamespace
:- Added
getCodeUnitWithClassMethod
.
- Added
ApolloLanguageRunner
:executeFunction
: added parameterallowClassMethod
.
- Added
ASTExpressionListLiteral
andASTExpressionMapLiteral
:- Support in
dart
andjava
grammar.
- Support in
0.0.34 #
ApolloVM
:loadCodeUnit
now throws aSyntaxError
with extended details.
ParseResult
:- Added fields
codeUnit
,errorPosition
anderrorLineAndColumn
. - Added getters
errorLine
anderrorMessageExtended
- Added fields
- Added
ASTExpressionNegation
:- Added support for
dart
andjava11
.
- Added support for
0.0.33 #
ASTNode
implementations:- Implement
toString
with a pseudo-code version of the node to facilitate debugging.
- Implement
- Fixed parsing of comments in Dart and Java 11.
0.0.32 #
-
Dart CI: update and optimize jobs.
-
sdk: '>=3.0.0 <4.0.0'
-
swiss_knife: ^3.1.5
-
async_extension: ^1.2.5
-
petitparser: ^6.0.1
-
collection: ^1.18.0
-
args: ^2.4.2
-
lints: ^2.1.1
-
test: ^1.24.6
-
xml: ^6.4.2
-
path: ^1.8.3
0.0.31 #
- Improved GitHub CI:
- Added browser tests.
- Optimize imports.
- Clean code and new lints adjusts.
- sdk: '>=2.15.0 <3.0.0'
- swiss_knife: ^3.1.1
- async_extension: ^1.0.9
- petitparser: ^5.0.0
- collection: ^1.16.0
- args: ^2.3.1
- lints: ^2.0.0
- dependency_validator: ^3.2.2
- test: ^1.21.4
- pubspec: ^2.3.0
- xml: ^6.1.0
- path: ^1.8.2
0.0.30 #
- Using
async_extension
to optimize async calls.- Removed internal extensions with similar functionality.
- Migrated from
pedantic
tolints
. - Fixed missing await in
ASTExpressionVariableAssignment
. - lints: ^1.0.1
- swiss_knife: ^3.0.8
- async_extension: ^1.0.6
- petitparser: ^4.2.0
0.0.29 #
- Improve
ApolloVMCore
:- Implementing portable
int
class fordart
andjava11
:parse
,parseInt
.
- Implementing portable
- Code generation:
- Correctly normalize
int
andInteger
fordart
andjava11
.
- Correctly normalize
- Improve
async
optimization.
0.0.28 #
- Implement static class accessor, to allow calls to static functions.
- Initial version of
ApolloVMCore
:- Implementing portable
String
class fordart
andjava11
:- Mapping:
contains
,toUpperCase
,toLowerCase
,valueOf
.
- Mapping:
- Implementing portable
- Fixed class field code generation for
dart
andjava11
. async
optimization:- Avoid instantiation of
Future
, usingFutureOrExtension
andListFutureOrExtension
:resolve
,resolveMapped
andresolveAllMapped
.
- Avoid instantiation of
- Improved languages tests, to also executed regenerated code.
0.0.27 #
- Runner:
- Strong types.
var
types can be resolved.ASTTypedNode
: nodes can be typed, and resolution is performed and cached while running.
- Optimize resolution of functions.
- Strong types.
- Grammar:
- Dart & Java:
var
types to be resolved at runtime.
- Dart & Java:
0.0.26 #
- Generator:
- Dart & Java:
- Improve String concatenation with variables.
- Dart & Java:
0.0.25 #
- Grammar:
- Dart & Java:
- Added
for
loop statement:ASTStatementForLoop
.
- Added
- Dart & Java:
- Adjust
README.md
.
0.0.24 #
ApolloVM
:parseLanguageFromFilePathExtension
ApolloLanguageRunner
:tryExecuteFunction
tryExecuteClassFunction
- Executable:
apollovm
- args: ^2.0.0
- pubspec: ^2.0.1
- path: ^1.8.0
0.0.23 #
- Improve tests, to tests definitions directory of XML files.
0.0.22 #
caseInsensitive
option for:- setField, getField, getFunctionWithName, getFunction,getClass
0.0.21 #
- Better handling of function signature and how to pass positional and named parameters.
0.0.20 #
- Added
ASTClass.getFieldsMap
. ASTEntryPointBlock.execute
with extra parametersclassInstanceObject
andclassInstanceFields
.- Change signature of
dartRunner.executeFunction
andjavaRunner.executeClassMethod
.- Now they use named parameters for
positionalParameters
andnamedParameters
.
- Now they use named parameters for
0.0.19 #
- Grammar:
- Java & Dart:
- Parse boolean literal.
- Java & Dart:
- Improve API documentation.
0.0.18 #
- API Documentation.
0.0.17 #
- Fix call of function using
dynamic
type in parameter value. - Code Generator:
- Better formatting for classes and methods.
- Grammar:
- Dart:
- Fix parsing of function with multiple parameters.
- Java:
- Class fields.
- Fix parsing of function with multiple parameters.
- Return statements ;
- Dart:
0.0.16 #
- Grammars:
- Dart & Java11:
- Fix parsing of multiple parameters.
- Dart & Java11:
- Runner:
- Fix division with double and int.
- Code Generator:
- Dart & Java11:
- Fix variable assigment duplicated ';'.
- Dart:
- Improve string template regeneration, specially when parsed code comes from Java.
- Dart & Java11:
- Improved example.
0.0.15 #
ASTBlock
: addedfunctionsNames
.ASTClass
: addedfields
andfieldsNames
.ApolloLanguageRunner
: addedgetClass
.
0.0.14 #
- AST:
ASTClassFunctionDeclaration
: To ensure that any class function is parsed from a class block and also ensure that is running from a class block.
- Generator:
- Dart:
- Fix non class function: due static modifier.
- Java:
- Will throw an exception if the generation of a function without a class is attempted.
- Dart:
- Runner:
- Fix class object instance context.
0.0.13 #
- Grammar & Runner:
- Dart & Java:
- Class fields.
- Class object instance fields at runtime.
- Dart & Java:
- Code Generator:
- Dart & Java:
- Fix return statement with value/expression ;
- Java:
- Better/shorter code for String concatenation.
- Dart & Java:
0.0.12 #
- Grammars & Code Generators & Runner:
- Dart & Java11:
- Better definition of static methods.
- Class object instance.
- Dart & Java11:
0.0.11 #
- Renamed:
ASTCodeBlock
->ASTBlock
.ASTCodeRoot
->ASTRoot
.ASTCodeClass
->ASTClass
.
- Added support to
async
calls inASTNode
execution.- Any part of an
ASTNode
can have anasync
resolution. This allows the mapping of external functions that returns aFuture
or other languages that acceptsasync
at any point.
- Any part of an
- Better mapping of external functions:
- Better Identification of number of parameters of mapped functions.
- Now an
ASTRoot
or anASTClass
are initialized:- Class/Root statements are executed once, and a context for each Class/Root is held during VM execution.
0.0.10 #
- Refactor:
- Split
apollovm_ast.dart
into multipleast/apollovm_ast_*.dart
files.
- Split
0.0.9 #
- Code Generators:
- Fix
else
branch indentation.
- Fix
0.0.8 #
- Fix package description.
- Renamed Java8 to Java11:
- Java 11 is closer to Dart 2 than Java 8.
- Grammars & Code Generators:
- Dart & Java11:
- Support
if
,else if
andelse
branches.
- Support
- Dart & Java11:
0.0.7 #
- Added type
ASTTypeBool
and valueASTValueBool
. - Added
ApolloVMNullPointerException
. - Grammars & Code Generators:
- Dart & Java8:
- Support to expression comparison operators
==
,!=
,>
,<
,>=
,<=
.
- Support to expression comparison operators
- Dart & Java8:
- Upgrade: petitparser: ^4.1.0
0.0.6 #
- Grammars:
- Dart:
- Added support for string templates:
- including variable access:
$x
. - including expressions:
${ x * 2 }
. - Not implemented for multiline string yet.
- including variable access:
- Added support for string templates:
- Java8:
- Support for string concatenation.
- Dart:
- Code Generators:
- Java8:
- Translate string templates to Java String concatenations.
- Java8:
0.0.5 #
- Grammars:
- Dart:
- Raw single line and raw multiline line strings.
- Improved parser tests for literal String.
- Dart:
0.0.4 #
- Added type check:
ASTType.isInstance
.- Function call now checks type signature and type inheritance.
- Grammars:
- Dart:
- Single line and multiline line strings with escaped chars.
- Java8:
- Single line strings with escaped chars.
- Dart:
0.0.3 #
- Removed
ASTCodeGenerator
, that is language specific now:ApolloCodeGenerator
. - Better external function mapping.
- Grammars:
- Dart:
- Expression operations:
+
,-
,*
,/
,~/
.
- Expression operations:
- Java8:
- Expression operations:
+
,-
,*
,/
.
- Expression operations:
- Dart:
- Improved tests.
0.0.2 #
- Improved execution:
- Now can call a class method or a function.
- Improved code generation:
- Now supporting Java8 and Dart.
- Grammars:
- Dart:
- Basic class definition.
- Java8:
- Basic class definition.
- Dart:
0.0.1 #
- Basic Dart and Java8 support.
- Initial version, created by Stagehand