malforge / mdk2

MIT License
77 stars 5 forks source link

Full minifier sometimes fails to compile code #33

Open DrRak72 opened 3 months ago

DrRak72 commented 3 months ago

Full minifier sometimes fails to compile code, giving an error:

Severity    Code    Description    Project    File    Line    Suppression State

Error (active)    MSB3073    The command ""C:\Users\xxx\.nuget\packages\mal.mdk2.pbpackager\2.0.6\build\..\tools\mdk.exe" pack "C:\Users\xxx\source\repos\SE-NavOS-2\SE-NavOS-2.csproj"  -configuration Debug -interactive" exited with code -2.    SE-NavOS-2    C:\Users\xxx\.nuget\packages\mal.mdk2.pbpackager\2.0.6\build\Mal.Mdk2.PbPackager.props    18

with error log also showing errors with mislabeled names.

Seems to be similar to https://github.com/malware-dev/MDK-SE/issues/331

DrRak72 commented 3 months ago

Additional info:

Severity    Code    Description Project File    Line    Suppression State

Error (active)  CS0246  The type or namespace name 'è' could not be found (are you missing a using directive or an assembly reference?) SE-NavOS-2  C:\Users\xxx\source\repos\SE-NavOS-2\obj\intermediate-script.cs 55  

Error (active)  CS0103  The name 'Orient' does not exist in the current context SE-NavOS-2  C:\Users\xxx\source\repos\SE-NavOS-2\obj\intermediate-script.cs 257 

Codebase resulting in this issue: https://github.com/DrRak72/SE-NavOS-2

irreality-net commented 2 months ago

Full minifer fails with following error for me: C:\Projects*\source*\obj\intermediate-script.cs(97,72): error CS0115: 'Program.O.G()': no suitable method found to override

malware-dev commented 2 months ago

Full minifer fails with following error for me: C:\Projects\source\obj\intermediate-script.cs(97,72): error CS0115: 'Program.O.G()': no suitable method found to override

Hi. Please make your own issue, and I cannot fix anything minifier without a minimalistic reproduction.

(Also make sure your nuget packages are up to date)

irreality-net commented 2 months ago

Will do. Is there a way to keep intermediate-script.cs to see which code syntax is causing it to fail?

malware-dev commented 2 months ago

Will do. Is there a way to keep intermediate-script.cs to see which code syntax is causing it to fail?

Thank you. Yes, and even better, you can get far more output. Go into the main ini file and enable tracing. You'll get all the various intermediates.

I really should push out the update that adds the symbol replacement map too...

irreality-net commented 2 months ago

Thank you. Yes, and even better, you can get far more output. Go into the main ini file and enable tracing. You'll get all the various intermediates.

That did a trick! Thank you. The issue #36 contains all details.

malware-dev commented 2 months ago

Version 2.0.8 fixes the label issue, DrRak72, but I'm still struggling to figure out how to fix your other problem.

slammingprogramming commented 2 weeks ago

Thanks for the 2.0.8 update! Fixing the label issue is a big help, especially with the variety of errors coming from different syntax structures. For the remaining issues, like the CS0246 “missing namespace” and CS0115 “no suitable method to override,” it might be helpful to add more context tracking for when these specific errors occur. Since they’re linked to the intermediate-script.cs file, maybe there could be an option to keep this file by default when errors are thrown, so devs can easily examine the exact code causing the failure.

I agree with adding tracing, as mentioned above, but it might also be helpful if there were a toggle specifically for symbol replacement tracking in the ini file. That could make it easier to pinpoint where symbols might be getting misinterpreted or renamed incorrectly during minification.

Additionally, having some diagnostic flags that could highlight potential problem areas or unsupported syntax (like certain override declarations) might be a good longer-term improvement. This way, we could focus on problematic segments before compiling and identify if there’s a workaround in our code.

Thanks again for all the hard work on the updates—each fix makes a big difference!