blitz-research / monkey2

zlib License
132 stars 43 forks source link

Can't build latest develop (3 hours ago, functions update) with MSVC #415

Open DruggedBunny opened 6 years ago

DruggedBunny commented 6 years ago

I'm not able to build when enabling MSVC and x64 with latest develop:

I:\SpiderOak\DevTools\Monkey2\mx2builder\monkey2\scripts>cmd /K "I:\SpiderOak\De
vTools\Monkey2\mx2builder\monkey2\scripts\rebuildall2go.bat"

I:\SpiderOak\DevTools\Monkey2\mx2builder\monkey2\scripts>echo off

***** Rebuilding mx2cc *****

Mx2cc version 1.1.09

***** Making module 'monkey' (windows release x64 msvc) *****

Parsing...
Semanting...
Translating...
Compiling...
Build error: System command failed:

cl -c -EHs -W0 -MT -utf-8 -bigobj -O2 -DNDEBUG -I"I:/SpiderOak/DevTools/Monkey2/
mx2builder/monkey2/modules/" -I"I:/SpiderOak/DevTools/Monkey2/mx2builder/monkey2
/modules/monkey/native" -showIncludes -Fo"I:/SpiderOak/DevTools/Monkey2/mx2build
er/monkey2/modules/monkey/monkey.buildv1.1.09/windows_release_msvc_x64/build/mon
key_0monkey.cpp.obj" "I:/SpiderOak/DevTools/Monkey2/mx2builder/monkey2/modules/m
onkey/monkey.buildv1.1.09/windows_release_msvc_x64/src/monkey_monkey.cpp" >tmp/s
tdout1.txt

monkey_monkey.cpp
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.1
4.26428\include\cstddef(7): fatal error C1083: Cannot open include file: 'stddef
.h': No such file or directory

Microsoft (R) C/C++ Optimizing Compiler Version 19.14.26433 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

***** Fatal mx2cc error *****

Internal mx2cc build error

I:\SpiderOak\DevTools\Monkey2\mx2builder\monkey2\scripts>

Just tried running rebuildall2go on previous version, and that still builds OK.

DruggedBunny commented 6 years ago

MSVC with x86 fails too -- MinGW x86 seems to be building OK.

blitz-research commented 6 years ago

msvc is working OK here. Have you updated your msvc installation recently? I only use mingw for 'release' builds these days and haven't had any msvc problems for ages.

Ugh, this is the downside of automating the msvc auto-detect, I have no idea what version everyone is using. It used to just give a 'cl.exe not found' if msvc was broken.

Are you using auto-detect? If you are, can you trying forcing msvc using MX2_USE_MSVC=1?

What version of msvc are you using?

What version of windowskit?

On Wed, Aug 1, 2018 at 12:45 PM DruggedBunny notifications@github.com wrote:

MSVC with x86 fails too -- MinGW x86 seems to be building OK.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/blitz-research/monkey2/issues/415#issuecomment-409412443, or mute the thread https://github.com/notifications/unsubscribe-auth/ADU3QrrQUhtlOR7EhA0L3xNHzQBVjHDeks5uMPoegaJpZM4Vpqk6 .

blitz-research commented 6 years ago

Oerrr, msvc 15.7.5 is out, updating now...

On Wed, Aug 1, 2018 at 12:51 PM Mark Sibly blitzmunter@gmail.com wrote:

msvc is working OK here. Have you updated your msvc installation recently? I only use mingw for 'release' builds these days and haven't had any msvc problems for ages.

Ugh, this is the downside of automating the msvc auto-detect, I have no idea what version everyone is using. It used to just give a 'cl.exe not found' if msvc was broken.

Are you using auto-detect? If you are, can you trying forcing msvc using MX2_USE_MSVC=1?

What version of msvc are you using?

What version of windowskit?

On Wed, Aug 1, 2018 at 12:45 PM DruggedBunny notifications@github.com wrote:

MSVC with x86 fails too -- MinGW x86 seems to be building OK.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/blitz-research/monkey2/issues/415#issuecomment-409412443, or mute the thread https://github.com/notifications/unsubscribe-auth/ADU3QrrQUhtlOR7EhA0L3xNHzQBVjHDeks5uMPoegaJpZM4Vpqk6 .

DruggedBunny commented 6 years ago

Yeah, I actually had to update it from scratch the other day, but it's been working OK, and I have re-tested.

Just realised when you said that it might just be auto-detect, will try hard-coding path...

Hmm, hard-coded path in there is what I have, C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428

I appear to have the Windows Kit release too:

C:\Program Files (x86)\Windows Kits\10\bin>dir

 Directory of C:\Program Files (x86)\Windows Kits\10\bin

29/07/2018  19:36    <DIR>          .
29/07/2018  19:36    <DIR>          ..
29/07/2018  19:36    <DIR>          10.0.14393.0
29/07/2018  19:36    <DIR>          10.0.15063.0
29/07/2018  19:36    <DIR>          **10.0.16299.0**
29/07/2018  19:36    <DIR>          10.0.17134.0
29/07/2018  19:36    <DIR>          arm
29/07/2018  19:36    <DIR>          arm64
29/07/2018  19:36    <DIR>          x64
29/07/2018  19:36    <DIR>          x86
               0 File(s)              0 bytes
              10 Dir(s)  22,719,840,256 bytes free

C:\Program Files (x86)\Windows Kits\10\bin>

Oops, will wait...

DruggedBunny commented 6 years ago

Yeah, 15.7.5 is what I have here.

nitrologic commented 6 years ago

apparently c++ version of stddef.h is < cstddef >, I wonder if MSVC is no longer including c headers in c++ search path, it seems like a reasonable optimisation

DruggedBunny commented 6 years ago

Might try whipping up some sort of MSVC-update-checker, as it looks like this is kept up to date with new release numbers:

Visual Studio Release Notes

At least for VS2017...

blitz-research commented 6 years ago

Everything still working fine here after msvc update.

Are you sure it's autodetecting? Is MX2_USE_MSVC actually commented out? If it's set to '1' then this disables auto-detect and forces use of the msvc paths in env_windows.txt, and if these aren't right you'll get missing header files etc problems.

Think I'll add some print systems to mx2cc to show what was actually autodetected though...

What's in your Windows Kits/10/Include dir? latest version here is 10.0.17134.0 which mx2cc should be using, and which contains ucrt/stddef.h

Perhaps it's an msvc installer issue? There are lots of hits for msvc/stddef.h problems.

https://github.com/boostorg/build/issues/257

On Wed, Aug 1, 2018 at 1:21 PM DruggedBunny notifications@github.com wrote:

Might try whipping up some sort of MSVC-update-checker, as it looks like this is kept up to date with new release numbers:

Visual Studio Release Notes https://docs.microsoft.com/en-us/visualstudio/releasenotes/vs2017-relnotes

At least for VS2017...

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/blitz-research/monkey2/issues/415#issuecomment-409417892, or mute the thread https://github.com/notifications/unsubscribe-auth/ADU3QqtxVuSj0Iv9hk1SCL-UO4areLbyks5uMQKlgaJpZM4Vpqk6 .

DruggedBunny commented 6 years ago

Will mess about for a bit, think I've tried both with and without auto-detect.

Just out of interest, how would I get this to print the contents of the VS page above? Might be handy to have... if I can get the page text then I'll mess about in next day or two...

#Import "<std>"
#Import "<httprequest>"

Using std..
Using httprequest..

Const URL:String = "https://docs.microsoft.com/en-us/visualstudio/releasenotes/vs2017-relnotes"

Function Main ()

    Local req:HttpRequest = New HttpRequest

        req.Timeout = 10

        req.ReadyStateChanged = Lambda ()

            Print "Ready state changed to " + Int (req.ReadyState) + " status = " + req.Status

            If req.ReadyState = ReadyState.Done Print "Request response:~n" + req.ResponseText

        End

        req.Open ("GET", "https://docs.microsoft.com/en-us/visualstudio/releasenotes/vs2017-relnotes")

        For Local loop:Int = 1 To 5
            Print "Waiting... " + (6 - loop)
            Sleep (1)
        End

End

Just gives me:


Ready state changed to 1 status = -1
Waiting... 5
Waiting... 4
Waiting... 3
Waiting... 2
Waiting... 1

Finished running app.
DruggedBunny commented 6 years ago

Ah... maybe auto-detect is working -- I'm used to just going in and putting MSVC to 1 and x64! Seems to be building with:

'MX2_USE_MSVC=0

and

MX2_ARCH_WINDOWS=x64

That said, how would you now force MinGW or MSVC? Uncomment MX2_USE_MSVC and force to 0 or 1?

Commented-out MX2_USE_MSVC is auto-detect?

Sorry if I've wasted your time. I'll still try do an MSVC update checker if I can get that HttpRequest to download the page!

DruggedBunny commented 6 years ago

Latest develop failed to use MSVC by default for me -- looks like it was because I have Windows Kit 10.0.17134.0, but env says _MX2_WINDOWSKIT=10.0.16299.0.

Building fine now I've manually edited this path. (Also did an MSVC update and 17134 seems to be the latest.)

Could you have a look at the above code sample, just to get it to print the raw page HTML?

I should be able to parse that for a reasonably reliable update checker -- at least something you could double-click prior to a release to say "MSVC update available".

Found a method to get local install version (eg. "15.7.6") for comparison, but I never managed to simply download a page with HttpRequest!

DruggedBunny commented 6 years ago

Just happened to see a news item pointing out version 15.8 was released the other day.

Note to self: overview including current release.

Figured out my sample above was missing req.Send, but it crashes while loading a page here (any page), not even something the debugger picks up. The httprequest banana works, and my program makes exactly the same calls, but crashes shortly after req.Send. Only thing I can think of is that it's not in an event-based GUI, so perhaps that's relevant...

blitz-research commented 6 years ago

Yes, you currently need to use mojo for httprequest.

On Mon, Aug 20, 2018 at 1:53 AM DruggedBunny notifications@github.com wrote:

Just happened to see a news item pointing out version 15.8 https://docs.microsoft.com/en-us/visualstudio/releasenotes/vs2017-relnotes was released the other day.

Note to self: overview including current release https://docs.microsoft.com/en-us/visualstudio/releasenotes/vs2017-relnotes-history .

Figured out my sample above was missing req.Send, but it crashes while loading a page here (any page), not even something the debugger picks up. The httprequest banana works, and my program makes exactly the same calls, but crashes shortly after req.Send. Only thing I can think of is that it's not in an event-based GUI, so perhaps that's relevant...

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/blitz-research/monkey2/issues/415#issuecomment-414129391, or mute the thread https://github.com/notifications/unsubscribe-auth/ADU3QpcW-_q5kV8LE56qzUTDrZ8c8KBdks5uSW3ygaJpZM4Vpqk6 .

blitz-research commented 6 years ago

but env says MX2_WINDOWS_KIT=10.0.16299.0.

Not sure what you mean, but after updating to 15.8.1, my mx2cc displays:

MSVC installation auto-detected: Tools='C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.15.26726' Include='C:\Program Files (x86)\Windows Kits\10\Include\10.0.17134.0' Lib='C:\Program Files (x86)\Windows Kits\10\Lib\10.0.17134.0'

Which appears to be correct.

Note that 'MX2_WINDOWS_KIT' etc in env file are ignored if MSVC is auto detected, see comment at top of block:

'Note: these paths are only used if legacy MX2_USE_MSVC=1

On Wed, Aug 22, 2018 at 6:22 PM Mark Sibly blitzmunter@gmail.com wrote:

Yes, you currently need to use mojo for httprequest.

On Mon, Aug 20, 2018 at 1:53 AM DruggedBunny notifications@github.com wrote:

Just happened to see a news item pointing out version 15.8 https://docs.microsoft.com/en-us/visualstudio/releasenotes/vs2017-relnotes was released the other day.

Note to self: overview including current release https://docs.microsoft.com/en-us/visualstudio/releasenotes/vs2017-relnotes-history .

Figured out my sample above was missing req.Send, but it crashes while loading a page here (any page), not even something the debugger picks up. The httprequest banana works, and my program makes exactly the same calls, but crashes shortly after req.Send. Only thing I can think of is that it's not in an event-based GUI, so perhaps that's relevant...

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/blitz-research/monkey2/issues/415#issuecomment-414129391, or mute the thread https://github.com/notifications/unsubscribe-auth/ADU3QpcW-_q5kV8LE56qzUTDrZ8c8KBdks5uSW3ygaJpZM4Vpqk6 .

seyhajin commented 5 years ago

Has the problem been solved? If so, this issue can be closed