64bit &/or ARM - how to know what is failing during compilation?

Hello all,

Can anyone advise a method to know what are the causes of incomplete compilation - either for 64bit or ARM? When I try to compile for Windows 64bit, it just stops - no crash, no warning, no nothing… all it gives is a frustrating feeling of how to know what went wrong! Where to look! And what the hell happened!

As we all know, this IS new. It IS in technical beta. But one would think that an idicator would be a really really important part of a project like this - especially since it IS a beta!

In any case, if anyone has any ideas - I would sure appreciate them.

FYI - all plugins are updated and approved for 64it OS’s - but not necessarily ARM.

Thanks all,
Tim

Did you check DebugView? Maybe it shows a debug message.

Hi Christian,

Where would I find this? There are no warnings or other messages that show up where you would expect them when running the app in debug mode.

TIm

Only build for one target or the other to narrow things down

https://technet.microsoft.com/en-us/sysinternals/bb896647.aspx

It builds for 32bit no problem.

Thanks for the link Michel!
Tim

Right
Build for 64 bit - see what doesn’t compile or link
Then build for ARM - see what doesn’t compile or link

Right now if you build for several targets all at once you run into <https://xojo.com/issue/6095>

Hi Norman.
Sticking with Windows only first. Compiles to 32 bit. Switch to Windows 64 bit - no go, and no message

This is what debiug view says
00000001 0.00000000 [7376] pre build
00000002 220.62976074 [7376] Command “BuildApp” handled by Window “Xojo - [Axcys Embedded Client_64.xojo_binary_project *]”

I can see it get to linking. But nothing past that.
Tim

What version of Xojo and what OS are you running it on? Could you post a project privately in a Feedback report? We build our examples and other things in 64-bit all the time. Not building at all without an error we would of course consider a bug to fix.

Windows 7 home premium. Xojo 2015 R3.1

The project is very large with lots of external classes. Before posting, would you like me to try it in the new beta?

Tim

Hello Travis,

I think I found the problem. In my case, I have several apps, most are quite large, all use plugins. This weekend I was working with a smaller one that uses the Einhugur grids - CGridSort in my case.

From recent pain, I know that these are not supported for Win64, and will not be, so I had been porting to the Xojo Listbox/Grid object.

It seems that when at least 1 of the Einhuguer grids is in the project, this error occurs. It’s like Xojo has no way of knowing if the plugin is 64 or ARM etc compatible or not. If this was the case, it would immediately fail very early on in the process - at least in my mind.

I would suggest you try this for repeatability. I am quite sure you will be able to, and then program Xojo to be “kinder” to its user and if not provide a message, at least not wait 3 hours for nothing…

I hope this helps!
Tim

The same project referenced in my previous post, would not compile to ARM. It does to Linux 32, and 64 as well as Windows 32 and 64 (each done separately). However when I try to compile to Linux ARM, it fails without any messages from Xojo. Debug view fgives these messages:
[3416] pre build
[3416] Command “BuildApp” handled by Window “Xojo - [Axcys Reports.xojo_binary_project *]”
[5528] Vector smash protection is enabled.
[7148] Language: en
[3744] Vector smash protection is enabled.

Should I open a Feedback Report?
Tim

[quote=237208:@Tim Seyfarth]It seems that when at least 1 of the Einhuguer grids is in the project, this error occurs. It’s like Xojo has no way of knowing if the plugin is 64 or ARM etc compatible or not. If this was the case, it would immediately fail very early on in the process - at least in my mind.

I would suggest you try this for repeatability. I am quite sure you will be able to, and then program Xojo to be “kinder” to its user and if not provide a message, at least not wait 3 hours for nothing…[/quote]

The compiler doesn’t know what plugins the program actually needs until the very end, once it’s performed dead code elimination during linking. It should, however, display a dialog saying the plugin is missing and it’s a bug that it isn’t.

Maybe that is the fallacy. The plugin is not missing, it is just not in a form to be converted into 64 bit. Just guessing here.

Thanks for the reply Joe,
Tim

There’s no “conversion”
Either the plugin has a 64 bit portion or it doesn’t
And if there is no 64 bit portion then the IDE should report that the compiler could not locate a 64 bit portion for whatever plugin it is

The compiler and IDE keep track of what targets a plugin supports and are meant to display an error if the built application requires a plugin that isn’t supported for the target. This should be reporting an error and I haven’t been able to reproduce it failing to give an error, so a bug report would be appreciated if you can reliably reproduce it.

I created a case 41978 - Compiler on Windows shows no error if using plugins with no ARM support and uploaded sample code.
There is also a case 41842 - Compiler on Windows shows no error if using plugins with no x64 support that is the same, but only discusses 64bit.

Tim