Closed xiangyi-wang closed 2 years ago
Thank you for reporting the issue and for trying Flarum!
the problem is in the compiler itself, specifically, it does not handle the code on D:\Flarum\src\Foundation\Application.php(190, 13)
Do you have the complete stack trace of the exception?
> 已启动生成…
1>------ 已启动生成: 项目: Flarum, 配置: Debug Any CPU ------
1>PeachPie PHP Compiler version 1.0.11+81e4cbe568dd7cc9d1df35e2e4a05fde654c1e48
1>C:\Users\admin\.nuget\packages\peachpie.net.sdk\1.0.11\build\Peachpie.NET.Core.Sdk.targets(245,5): error : STORE Application[] not implemented at D:\Flarum\src\Foundation\Application.php(190, 13)
1>C:\Users\admin\.nuget\packages\peachpie.net.sdk\1.0.11\build\Peachpie.NET.Core.Sdk.targets(245,5): error : 在 Pchp.CodeAnalysis.Semantics.BoundArrayItemEx.Pchp.CodeAnalysis.Semantics.IVariableReference.EmitStorePreamble(CodeGenerator cg, BoundAccess access)
1>C:\Users\admin\.nuget\packages\peachpie.net.sdk\1.0.11\build\Peachpie.NET.Core.Sdk.targets(245,5): error : 在 Pchp.CodeAnalysis.Semantics.BoundAssignEx.Emit(CodeGenerator cg)
1>C:\Users\admin\.nuget\packages\peachpie.net.sdk\1.0.11\build\Peachpie.NET.Core.Sdk.targets(245,5): error : 在 Pchp.CodeAnalysis.Semantics.BoundExpressionStatement.Emit(CodeGenerator cg)
1>C:\Users\admin\.nuget\packages\peachpie.net.sdk\1.0.11\build\Peachpie.NET.Core.Sdk.targets(245,5): error : 在 Pchp.CodeAnalysis.CodeGen.CodeGenerator.Generate(IGenerator element)
1>C:\Users\admin\.nuget\packages\peachpie.net.sdk\1.0.11\build\Peachpie.NET.Core.Sdk.targets(245,5): error : 在 System.Collections.Generic.List`1.ForEach(Action`1 action)
1>C:\Users\admin\.nuget\packages\peachpie.net.sdk\1.0.11\build\Peachpie.NET.Core.Sdk.targets(245,5): error : 在 Pchp.CodeAnalysis.Semantics.Graph.BoundBlock.Emit(CodeGenerator cg)
1>C:\Users\admin\.nuget\packages\peachpie.net.sdk\1.0.11\build\Peachpie.NET.Core.Sdk.targets(245,5): error : 在 Pchp.CodeAnalysis.CodeGen.CodeGenerator.GenerateBlock(BoundBlock block)
1>C:\Users\admin\.nuget\packages\peachpie.net.sdk\1.0.11\build\Peachpie.NET.Core.Sdk.targets(245,5): error : 在 Pchp.CodeAnalysis.CodeGen.CodeGenerator.GenerateScope(BoundBlock block, ScopeType type, Int32 to)
1>C:\Users\admin\.nuget\packages\peachpie.net.sdk\1.0.11\build\Peachpie.NET.Core.Sdk.targets(245,5): error : 在 Pchp.CodeAnalysis.Semantics.Graph.ForeachMoveNextEdge.Generate(CodeGenerator cg)
1>C:\Users\admin\.nuget\packages\peachpie.net.sdk\1.0.11\build\Peachpie.NET.Core.Sdk.targets(245,5): error : 在 Pchp.CodeAnalysis.Semantics.Graph.BoundBlock.Emit(CodeGenerator cg)
1>C:\Users\admin\.nuget\packages\peachpie.net.sdk\1.0.11\build\Peachpie.NET.Core.Sdk.targets(245,5): error : 在 Pchp.CodeAnalysis.CodeGen.CodeGenerator.GenerateBlock(BoundBlock block)
1>C:\Users\admin\.nuget\packages\peachpie.net.sdk\1.0.11\build\Peachpie.NET.Core.Sdk.targets(245,5): error : 在 Pchp.CodeAnalysis.CodeGen.CodeGenerator.GenerateScope(BoundBlock block, ScopeType type, Int32 to)
1>C:\Users\admin\.nuget\packages\peachpie.net.sdk\1.0.11\build\Peachpie.NET.Core.Sdk.targets(245,5): error : 在 Pchp.CodeAnalysis.Semantics.Graph.ForeachEnumereeEdge.EmitBody(CodeGenerator cg)
1>C:\Users\admin\.nuget\packages\peachpie.net.sdk\1.0.11\build\Peachpie.NET.Core.Sdk.targets(245,5): error : 在 Pchp.CodeAnalysis.Semantics.Graph.ForeachEnumereeEdge.Generate(CodeGenerator cg)
1>C:\Users\admin\.nuget\packages\peachpie.net.sdk\1.0.11\build\Peachpie.NET.Core.Sdk.targets(245,5): error : 在 Pchp.CodeAnalysis.Semantics.Graph.BoundBlock.Emit(CodeGenerator cg)
1>C:\Users\admin\.nuget\packages\peachpie.net.sdk\1.0.11\build\Peachpie.NET.Core.Sdk.targets(245,5): error : 在 Pchp.CodeAnalysis.CodeGen.CodeGenerator.GenerateBlock(BoundBlock block)
1>C:\Users\admin\.nuget\packages\peachpie.net.sdk\1.0.11\build\Peachpie.NET.Core.Sdk.targets(245,5): error : 在 Pchp.CodeAnalysis.CodeGen.CodeGenerator.GenerateScope(BoundBlock block, ScopeType type, Int32 to)
1>C:\Users\admin\.nuget\packages\peachpie.net.sdk\1.0.11\build\Peachpie.NET.Core.Sdk.targets(245,5): error : 在 Pchp.CodeAnalysis.Symbols.SourceRoutineSymbol.Generate(CodeGenerator cg)
1>C:\Users\admin\.nuget\packages\peachpie.net.sdk\1.0.11\build\Peachpie.NET.Core.Sdk.targets(245,5): error : 在 Pchp.CodeAnalysis.CodeGen.MethodGenerator.<>c__DisplayClass1_0.<GenerateMethodBody>b__0(ILBuilder builder)
1>C:\Users\admin\.nuget\packages\peachpie.net.sdk\1.0.11\build\Peachpie.NET.Core.Sdk.targets(245,5): error : 在 Pchp.CodeAnalysis.CodeGen.MethodGenerator.GenerateMethodBody(PEModuleBuilder moduleBuilder, MethodSymbol routine, Action`1 builder, VariableSlotAllocator variableSlotAllocatorOpt, DiagnosticBag diagnostics, Boolean emittingPdb)
1>C:\Users\admin\.nuget\packages\peachpie.net.sdk\1.0.11\build\Peachpie.NET.Core.Sdk.targets(245,5): error : 在 Pchp.CodeAnalysis.SourceCompiler.EmitMethodBody(SourceRoutineSymbol routine)
1>C:\Users\admin\.nuget\packages\peachpie.net.sdk\1.0.11\build\Peachpie.NET.Core.Sdk.targets(245,5): error : 在 System.Threading.Tasks.Parallel.<>c__DisplayClass42_0`2.<PartitionerForEachWorker>b__1()
1>C:\Users\admin\.nuget\packages\peachpie.net.sdk\1.0.11\build\Peachpie.NET.Core.Sdk.targets(245,5): error : 在 System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
1>C:\Users\admin\.nuget\packages\peachpie.net.sdk\1.0.11\build\Peachpie.NET.Core.Sdk.targets(245,5): error : 在 System.Threading.Tasks.Task.<>c__DisplayClass176_0.<ExecuteSelfReplicating>b__0(Object <p0>)
1>已完成生成项目“Flarum.msbuildproj”的操作 - 失败。
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
thank you for the callstack. The issue is caused by this line https://github.com/flarum/core/blob/1217b118964e4bf06fa93b92aad7a236a903b099/src/Foundation/Application.php#L190
We'll try to fix the compiler to deal with it.
I want to try compiling Flarum into a library (like Peachpie_wordpress), a forum framework similar to wordpress(https://github.com/flarum/flarum ,https://github.com/flarum/core ), but I got the following error:
It points to line 245 in the Targets file,Is there anything I need to set up?
<BuildTask Condition=" Exists('$(PeachpieToolFullPath)') "
This isflarum.msbuildproj