Comments (5)
@kekekeks the compiler mainly emits simple .ldarg
+.call
. Here it's probably an unimplemented optimization where due to more similar overloads, it falls back to runtime overload resolution.
from peachpie.
from peachpie.
The compiler sees several Load()
overloads, so it postpones the resolution to runtime using the callsite (call_Load?0
).
The fix would be to improve the compiler so it resolves the Load(object)
overload in compile time - I'm not sure, why it's not resolving it already, it should.
from peachpie.
The compiler sees several
Load()
overloads, so it postpones the resolution to runtime using the callsite (call_Load?0
).The fix would be to improve the compiler so it resolves the
Load(object)
overload in compile time - I'm not sure, why it's not resolving it already, it should.
As I understand it, this problem can be solved only at the compiler level?
from peachpie.
For a reference: this is how XAML compiler task tries to match AvaloniaXamlLoader.Load(this)
call.
It currently recognizes the normal
ldarg.0
call AvaloniaXamlLoader.Load(object)
pattern and the monstrosity generated by F# compiler.
The peachpie pattern won't be easily recognizable since it would require us to analyze the CallSite static variable initialization that happens elsewhere and looks like an internal implementation detail.
So the preferable solution would be for peachpie to just emit the simple ldarg.0+call sequence.
from peachpie.
Related Issues (20)
- Compiler Crash: MoveToImmutable can only be performed when Count equals Capacity HOT 1
- Peachpie.Library.PDO.MySQL convert MySQL `tinyint` value to `int` error. HOT 1
- Moving to the new .NET Foundation CLA service HOT 1
- Help with solving the problem with the magic __get and __set HOT 2
- ioncube loader HOT 1
- Magic methods not working as expected HOT 4
- PeachPie 1.0.* Status HOT 1
- Peachpie crypt behavior HOT 1
- some syntax error HOT 4
- strange compiler behavior when modifier is "protected" HOT 1
- program execution time HOT 3
- virtual and override HOT 1
- property, variable and PhpValue HOT 4
- Strange behavior when instantiating a class in an anonymous function HOT 4
- can not work woth tinyfilemanager
- Home Page Show Not Found HOT 1
- Change Sdk version to 1.1.5 make error when running HOT 3
- when php google/protobuf is used, generated binary php file cause exception after compiled to dll
- Directly render Blazor component on PHP page (ASP.NET Core 8) HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from peachpie.