dart-lang / sdk

The Dart SDK, including the VM, dart2js, core libraries, and more.
https://dart.dev
BSD 3-Clause "New" or "Revised" License
9.97k stars 1.53k forks source link

macro language tests are failing on new core libraries addition #56123

Open aam opened 1 week ago

aam commented 1 week ago

https://dart-review.googlesource.com/c/sdk/+/372181 introduces new core library, but macro tests use platform dill from prebuilt dart sdk, so tests fail when macro processor attempts to use old prebuilt platform dill with tests needed new updated platform dill.

See https://dart-review.googlesource.com/c/sdk/+/372181/comment/7ff4aaad_e2813a01/

from logs

/=================================================================================================\
| language/macros/augment/class_declarations_macro_test broke (Pass -> DartkCrash, expected Pass) |
\=================================================================================================/

--- Command "vm_compile_to_kernel" (took 275ms):
DART_CONFIGURATION=ProductX64 /b/s/w/ir/cache/builder/sdk/pkg/vm/tool/gen_kernel --aot --platform=out/ProductX64/vm_platform_strong.dill -o /b/s/w/ir/cache/builder/sdk/out/ProductX64/generated_compilations/vm-aot-linux-product-x64/tests_language_macros_augment_class_declarations_macro_test/out.dill /b/s/w/ir/cache/builder/sdk/tests/language/macros/augment/class_declarations_macro_test.dart -Dtest_runner.configuration=vm-aot-linux-product-x64 --enable-experiment=macros --packages=/b/s/w/ir/cache/builder/sdk/.dart_tool/package_config.json -Ddart.vm.product=true --sound-null-safety

exit code:
253

stderr:
Crash when compiling org-dartlang-macro:///a/b/c/main.dart:
Null check operator used on a null value

#0      DillLoader.read (package:front_end/src/dill/dill_loader.dart:112:38)
#1      DillTarget.loadExtraRequiredLibraries (package:front_end/src/dill/dill_target.dart:42:14)
#2      DillLoader.read (package:front_end/src/dill/dill_loader.dart:127:16)
#3      DillLoader.appendLibraries (package:front_end/src/dill/dill_loader.dart:292:18)
#4      generateKernelInternal.<anonymous closure> (package:front_end/src/kernel_generator_impl.dart:94:27)
<asynchronous suspension>
#5      withCrashReporting (package:front_end/src/base/crash.dart:138:12)
<asynchronous suspension>
#6      kernelForProgramInternal.<anonymous closure> (package:front_end/src/api_prototype/kernel_generator.dart:60:29)
<asynchronous suspension>
#7      CompilerContext.clear (package:front_end/src/base/compiler_context.dart:128:3)
<asynchronous suspension>
#8      kernelForProgramInternal (package:front_end/src/api_prototype/kernel_generator.dart:59:10)
<asynchronous suspension>
#9      _compileMacros (package:front_end/src/kernel_generator_impl.dart:408:7)
<asynchronous suspension>
#10     precompileMacros (package:front_end/src/kernel_generator_impl.dart:343:16)
<asynchronous suspension>
#11     generateKernelInternal.<anonymous closure> (package:front_end/src/kernel_generator_impl.dart:128:11)
<asynchronous suspension>
#12     withCrashReporting (package:front_end/src/base/crash.dart:138:12)
<asynchronous suspension>
#13     kernelForProgramInternal.<anonymous closure> (package:front_end/src/api_prototype/kernel_generator.dart:60:29)
<asynchronous suspension>
#14     CompilerContext.clear (package:front_end/src/base/compiler_context.dart:128:3)
<asynchronous suspension>
#15     kernelForProgramInternal (package:front_end/src/api_prototype/kernel_generator.dart:59:10)
<asynchronous suspension>
#16     kernelForProgram (package:front_end/src/api_prototype/kernel_generator.dart:44:11)
<asynchronous suspension>
#17     compileToKernel (package:vm/kernel_front_end.dart:524:22)
<asynchronous suspension>
#18     runCompiler (package:vm/kernel_front_end.dart:337:19)
<asynchronous suspension>
#19     runBatchModeCompiler.<anonymous closure> (file:///b/s/w/ir/cache/builder/sdk/pkg/vm/bin/gen_kernel.dart:57:22)
<asynchronous suspension>
#20     runBatch (package:kernel/src/tool/batch_util.dart:38:33)
<asynchronous suspension>
#21     runBatchModeCompiler (file:///b/s/w/ir/cache/builder/sdk/pkg/vm/bin/gen_kernel.dart:43:3)
<asynchronous suspension>
#22     main (file:///b/s/w/ir/cache/builder/sdk/pkg/vm/bin/gen_kernel.dart:32:5)
<asynchronous suspension>

--- Re-run this test:
python3 tools/test.py -n vm-aot-linux-product-x64 language/macros/augment/class_declarations_macro_test
dart-github-bot commented 1 week ago

Summary: Macro language tests are failing due to an incompatibility between the prebuilt platform dill used by the macro processor and the updated platform dill required by the new core library introduced in https://dart-review.googlesource.com/c/sdk/+/372181. This results in a crash during compilation, as the macro processor attempts to use the outdated platform dill.