-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Kernel VM support post merge cleanup #27590
Comments
The following (non-existing) test fails now: import 'dart:io';
import 'package:expect/expect.dart';
testStdIn() {
stdin;
return 42;
}
main() {
Expect.isTrue(testStdIn() == 42);
} seemingly because of dart:nativewrappers previously (in kernel-sdk) being part of the patched sdk as patched_sdk/lib/nativewrappers with content library dart.nativewrappers;
class NativeFieldWrapperClass1 extends Object {}
class NativeFieldWrapperClass2 extends Object {}
class NativeFieldWrapperClass3 extends Object {}
class NativeFieldWrapperClass4 extends Object {} and now (in dart-sdk) as patched_sdk/lib/html/dartium/ with content library nativewrappers;
class NativeFieldWrapperClass1 {
NativeFieldWrapperClass1() {
throw new UnsupportedError(
"Generative constructors not supported on native types.");
}
}
class NativeFieldWrapperClass2 {
NativeFieldWrapperClass2() {
throw new UnsupportedError(
"Generative constructors not supported on native types.");
}
}
class NativeFieldWrapperClass3 {
NativeFieldWrapperClass3() {
throw new UnsupportedError(
"Generative constructors not supported on native types.");
}
}
class NativeFieldWrapperClass4 {
NativeFieldWrapperClass4() {
throw new UnsupportedError(
"Generative constructors not supported on native types.");
}
} meaning that one gets an exception: Unsupported operation: Generative constructors not supported on native types. |
Just as a note I have the put the "Merge source position information change" in review. Another note, and whether this is useful or not I'm not sure --- if not feel free to ignore it. When running the kernel tests in debug mode (I know I was told not to) I more or less get these 5 types of errors:
Happens < 10 times. E.g. via
Happens lots of times. E.g. via
Happens twice. Via
and
Happens only on
Happens only on
|
I have started working on fixing this issues. To track the progress.
|
Status file update for debug mode after bootstrapping (see 8cb83ec):
|
I am attaching diff between dartk and non-dartk expectation for the JIT mode for |
Filed separate issue for the test expectations; see issue #28263. |
Filed a separate issue for enabling CC tests through kernel based front-end #28264 |
@mraleph can you look at your original list here and mark the ones which are done, so we know what is still left. |
There are no callers of CaptureLocalVariables(), and only CaptureLocalVariables() checks the IsForcedStackBit bitfield of LocalVariables, so remove that and its setter/getter as well. TEST=ci (dead code removal) Issue: #27590 Change-Id: I8032ff8f8cd7a43d3d30f1a4ec4e37cbfcee0a82 Cq-Include-Trybots: luci.dart.try:vm-aot-linux-release-x64-try Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/379802 Commit-Queue: Tess Strickland <sstrickl@google.com> Reviewed-by: Daco Harkes <dacoharkes@google.com>
Bootstrapping:
LookupStaticMethodByKernelProcedure
resolve factory redirections manually, this can probably be removed when we bootstrapKernelReader::ReadProgram
temporary skipsdart:vmservice_io
to work around some class finalization issues, fix this when we start bootstrappingkernel::FlowGraphBuilder::VisitStaticInvocation
has some workarounds for hybrid Kernel-app - Source-core-libraries mode, figure out if they can be removed if we bootstrap from kernel.CreateIsolateAndSetupHelper
.Frontend:
dynamic
bounds in generics sometimes, which is incorrect and is being worked around inKernelReader::ReadPreliminaryClass
(tracking bug: kernel/42)Types:
kernel::FlowGraphBuilder::TranslateFunctionNode
should pass type parameters to generic closureskernel::FlowGraphBuilder::LoadInstantiatorTypeArguments
can be cleaned up to useClass::IsGeneric
.Low (code sharing):
identical(x, y)
in both parser and kernel graph builder. Figure out if this can be moved to a special shared place.kernel::FlowGraphBuilder::MethodKind
should be merged and shared withRecognizeArithmeticOp
.Low (async):
kernel::ScopeBuilder::VisitYieldStatement
promotes all visible local variables into the context. It only should promote those that are used across yields.:await_jump_var
and:await_ctx_var
are bad names - they are used for bothawait
andyield
.kernel::FlowGraphBuilder::VisitYieldStatement
distinguishes betweenawait
(that can throw) andyield
(that can't throw) by number of parameters to the function. The should be a better way.Low:
List<T>::EnsureInitialized
kImplicitGetter
andkImplicitSetter
could containRawField
insideRawFunction::data_
.Other:
KernelReader::LookupClass
creates a dummy script per class.KernelReader::ReadLibrary
creates a fake script for each library, is there a way around it?KernelReader::ReadPreliminaryClass
manually marks interfaces as implementedkernel::FlowGraphBuilder::BuildGraphOfFunction
does not setup correct scope for the constructor argumentsFixed:
CaptureLocalVariables
that prevented capture of some artifical variables. Instead useset_is_forced_stack
.kernel::FlowGraphBuilder::BuildGraphOfFieldAccessor
andkernel::FlowGraphBuilder::TranslateInitializers
)kernel::ScopeBuilder::AddParameter/AddVariable
, does not handlefinal
kernel::FlowGraphBuilder::StoreIndexed/StoreInstanceField
could omit write barrier when storing constantskernel::FlowGraphBuilder::VisitInvalidExpression
should generate better error messages (not really needed)kernel::FlowGraphBuilder::VisitVariableSet
has workaround for the rasta issue - IR might contain stores tofinal
/const
variables.kernel::FlowGraphBuilder::VisitStaticGet
contains similarly unreachable code path.kernel::FlowGraphBuilder::VisitStaticInvocation
has some workarounds for rasta issues, figure out if dartk needs these workaroundskernel::ConstantEvaluator::VisitMethodInvocation
assumes that method invocation can never result innoSuchMethod
, front-end must guarantee that;kernel::DartTypeTranslator::VisitFunctionType
does not handle function types composed of malformed types correctlyThe text was updated successfully, but these errors were encountered: