Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bump janet version to 1.29.1 #2244

Closed
wants to merge 1 commit into from

Conversation

AlecTroemel
Copy link
Sponsor Contributor

closes #2241

@AlecTroemel
Copy link
Sponsor Contributor Author

that android build failure looks like a docker pull timeout

I havent been able to parse out why the windows XP builds is actually failing

@sogaiu
Copy link

sogaiu commented Jul 31, 2023

Not sure how to parse things either, but isn't the Android one something about running out of space?

For Windows XP, I noticed this. I think that might be referring to this part of Janet's source.

@AlecTroemel
Copy link
Sponsor Contributor Author

profileapi.h is a pretty recent addition janet-lang/janet@e8e5f66. Though it appears like that header has been around since windows 2000, so I'd think it would work with windows XP. My amateur cmake/make mind thinks there's probably some flag we need to include.. though thats a completely unfounded hunch.

for the android docker thing, ya I just missread 😞.. though to me running out of space is an odd error in a CI/CD pipeline. This SO discussion seems possibly related.. though I dont really like any of the solutions 😅

@AlecTroemel
Copy link
Sponsor Contributor Author

actually this blog suggests profileapi.h is not present in windows XP wp.xin.at/archives/5484

wp.xin.at/archives/5484

@nesbox
Copy link
Owner

nesbox commented Jul 31, 2023

It's strange because I found this in Janet's sources

#if !defined(JANET_REDUCED_OS) || !defined(JANET_SINGLE_THREADED)
#include <time.h>
#define JANET_GETTIME
#endif

and we have defined JANET_SINGLE_THREADED and JANET_REDUCED_OS in the build/janet/janetconf.h
so JANET_GETTIME must not be defined, but the compiler sees it for an unknown reason

@sogaiu
Copy link

sogaiu commented Aug 1, 2023

so JANET_GETTIME must not be defined, but the compiler sees it for an unknown reason

Puzzling.


I compared some of the output from winxp (failure):

-- The C compiler identification is MSVC 19.16.27050.0
-- The CXX compiler identification is MSVC 19.16.27050.0
...
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/VC/Tools/MSVC/14.16.27023/bin/HostX64/x86/cl.exe - skipped
...
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/VC/Tools/MSVC/14.16.27023/bin/HostX64/x86/cl.exe - skipped

to windows (success) output:

-- The C compiler identification is MSVC 19.29.30151.0
-- The CXX compiler identification is MSVC 19.29.30151.0
...
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe - skipped
...
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe - skipped

The compiler versions seem different.

Don't know if they are, and even if so, perhaps it makes no difference?

@nesbox
Copy link
Owner

nesbox commented Aug 1, 2023

As @AlecTroemel mentioned the problem is with profileapi.h which does not exist in WinXP SDK.
image
We have to find a way to undefine the JANET_GETTIME definition to solve this.

@sogaiu
Copy link

sogaiu commented Aug 2, 2023

I looked into things a bit more.


Using info from here and here, I set things up to replicate the build process locally for the winxp job.

Note that I changed:

cmake --build . --config %BUILD_TYPE% --parallel 

to:

cmake --build . --config MinSizeRel 

in the hopes that the output might be less confusing (seems to have helped) [1].

I had some success in replicating the issue mentioned above about profileapi.h.


After the build stopped, I took a look at vendor/janet/src/conf/janetconf.h. It looked unmodified from the clone of the upstream janet repository so I tried replacing it with the file from @AlecTroemel's PR.

A subsequent execution of cmake --build . --config MinSizeRel resulted in a tic80.exe file.


So about this comment:

so JANET_GETTIME must not be defined, but the compiler sees it for an unknown reason

May be it is defined because a different janetconf.h than expected is being used?

IIUC, the build process for janet has more than one stage. A bootstrap janet binary is produced initially which is used subsequently to build "the real bits". Perhaps the profileapi.h problem has to do with the building of the bootstrap binary.

I think the GitHub CI workflow build output is of a cmake invocation that uses --parallel so it may be kind of hard to see things with stuff being interleaved. If it would help I can try to provide logs from the local build.

Below is a section of what seemed like relevant output.

C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Microsoft\VC\v150\Platforms\Win32\PlatformToolsets\v141_xp\Toolset.targets(39,5): warning MSB8051: Support for targeting Windows XP is deprecated and will not be present in future releases of Visual Studio. Please see https://go.microsoft.com/fwlink/?linkid=2023588 for more information. [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  Generating C:/Users/user/Desktop/TIC-80.alect/vendor/janet/build/c/janet.c
  abstract.c
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\sal_supp.h(57): warning C4005: '__useHeader': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2866): note: see previous definition of '__useHeader'
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\specstrings_supp.h(77): warning C4005: '__on_failure': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2876): note: see previous definition of '__on_failure'
  array.c
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\sal_supp.h(57): warning C4005: '__useHeader': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2866): note: see previous definition of '__useHeader'
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\specstrings_supp.h(77): warning C4005: '__on_failure': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2876): note: see previous definition of '__on_failure'
  asm.c
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\sal_supp.h(57): warning C4005: '__useHeader': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2866): note: see previous definition of '__useHeader'
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\specstrings_supp.h(77): warning C4005: '__on_failure': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2876): note: see previous definition of '__on_failure'
  buffer.c
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\sal_supp.h(57): warning C4005: '__useHeader': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2866): note: see previous definition of '__useHeader'
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\specstrings_supp.h(77): warning C4005: '__on_failure': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2876): note: see previous definition of '__on_failure'
  bytecode.c
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\sal_supp.h(57): warning C4005: '__useHeader': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2866): note: see previous definition of '__useHeader'
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\specstrings_supp.h(77): warning C4005: '__on_failure': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2876): note: see previous definition of '__on_failure'
  capi.c
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\sal_supp.h(57): warning C4005: '__useHeader': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2866): note: see previous definition of '__useHeader'
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\specstrings_supp.h(77): warning C4005: '__on_failure': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2876): note: see previous definition of '__on_failure'
  cfuns.c
  compile.c
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\sal_supp.h(57): warning C4005: '__useHeader': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2866): note: see previous definition of '__useHeader'
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\specstrings_supp.h(77): warning C4005: '__on_failure': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2876): note: see previous definition of '__on_failure'
  corelib.c
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\sal_supp.h(57): warning C4005: '__useHeader': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2866): note: see previous definition of '__useHeader'
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\specstrings_supp.h(77): warning C4005: '__on_failure': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2876): note: see previous definition of '__on_failure'
  debug.c
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\sal_supp.h(57): warning C4005: '__useHeader': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2866): note: see previous definition of '__useHeader'
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\specstrings_supp.h(77): warning C4005: '__on_failure': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2876): note: see previous definition of '__on_failure'
  emit.c
  ev.c
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\sal_supp.h(57): warning C4005: '__useHeader': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2866): note: see previous definition of '__useHeader'
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\specstrings_supp.h(77): warning C4005: '__on_failure': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2876): note: see previous definition of '__on_failure'
  ffi.c
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\sal_supp.h(57): warning C4005: '__useHeader': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2866): note: see previous definition of '__useHeader'
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\specstrings_supp.h(77): warning C4005: '__on_failure': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2876): note: see previous definition of '__on_failure'
  fiber.c
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\sal_supp.h(57): warning C4005: '__useHeader': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2866): note: see previous definition of '__useHeader'
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\specstrings_supp.h(77): warning C4005: '__on_failure': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2876): note: see previous definition of '__on_failure'
  gc.c
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\sal_supp.h(57): warning C4005: '__useHeader': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2866): note: see previous definition of '__useHeader'
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\specstrings_supp.h(77): warning C4005: '__on_failure': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2876): note: see previous definition of '__on_failure'
  inttypes.c
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\sal_supp.h(57): warning C4005: '__useHeader': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2866): note: see previous definition of '__useHeader'
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\specstrings_supp.h(77): warning C4005: '__on_failure': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2876): note: see previous definition of '__on_failure'
  io.c
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\sal_supp.h(57): warning C4005: '__useHeader': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2866): note: see previous definition of '__useHeader'
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\specstrings_supp.h(77): warning C4005: '__on_failure': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2876): note: see previous definition of '__on_failure'
  marsh.c
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\sal_supp.h(57): warning C4005: '__useHeader': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2866): note: see previous definition of '__useHeader'
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\specstrings_supp.h(77): warning C4005: '__on_failure': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2876): note: see previous definition of '__on_failure'
  math.c
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\sal_supp.h(57): warning C4005: '__useHeader': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2866): note: see previous definition of '__useHeader'
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\specstrings_supp.h(77): warning C4005: '__on_failure': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2876): note: see previous definition of '__on_failure'
  net.c
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\sal_supp.h(57): warning C4005: '__useHeader': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2866): note: see previous definition of '__useHeader'
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\specstrings_supp.h(77): warning C4005: '__on_failure': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2876): note: see previous definition of '__on_failure'
src\core\net.c(679): warning C4090: 'function': different 'const' qualifiers [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
src\core\net.c(687): warning C4090: 'function': different 'const' qualifiers [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  os.c
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\sal_supp.h(57): warning C4005: '__useHeader': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2866): note: see previous definition of '__useHeader'
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\specstrings_supp.h(77): warning C4005: '__on_failure': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2876): note: see previous definition of '__on_failure'
  parse.c
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\sal_supp.h(57): warning C4005: '__useHeader': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2866): note: see previous definition of '__useHeader'
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\specstrings_supp.h(77): warning C4005: '__on_failure': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2876): note: see previous definition of '__on_failure'
  peg.c
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\sal_supp.h(57): warning C4005: '__useHeader': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2866): note: see previous definition of '__useHeader'
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\specstrings_supp.h(77): warning C4005: '__on_failure': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2876): note: see previous definition of '__on_failure'
  pp.c
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\sal_supp.h(57): warning C4005: '__useHeader': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2866): note: see previous definition of '__useHeader'
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\specstrings_supp.h(77): warning C4005: '__on_failure': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2876): note: see previous definition of '__on_failure'
  regalloc.c
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\sal_supp.h(57): warning C4005: '__useHeader': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2866): note: see previous definition of '__useHeader'
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\specstrings_supp.h(77): warning C4005: '__on_failure': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2876): note: see previous definition of '__on_failure'
  run.c
  specials.c
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\sal_supp.h(57): warning C4005: '__useHeader': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2866): note: see previous definition of '__useHeader'
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\specstrings_supp.h(77): warning C4005: '__on_failure': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2876): note: see previous definition of '__on_failure'
  state.c
  string.c
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\sal_supp.h(57): warning C4005: '__useHeader': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2866): note: see previous definition of '__useHeader'
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\specstrings_supp.h(77): warning C4005: '__on_failure': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2876): note: see previous definition of '__on_failure'
  strtod.c
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\sal_supp.h(57): warning C4005: '__useHeader': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2866): note: see previous definition of '__useHeader'
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\specstrings_supp.h(77): warning C4005: '__on_failure': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2876): note: see previous definition of '__on_failure'
  struct.c
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\sal_supp.h(57): warning C4005: '__useHeader': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2866): note: see previous definition of '__useHeader'
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\specstrings_supp.h(77): warning C4005: '__on_failure': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2876): note: see previous definition of '__on_failure'
  symcache.c
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\sal_supp.h(57): warning C4005: '__useHeader': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2866): note: see previous definition of '__useHeader'
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\specstrings_supp.h(77): warning C4005: '__on_failure': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2876): note: see previous definition of '__on_failure'
  table.c
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\sal_supp.h(57): warning C4005: '__useHeader': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2866): note: see previous definition of '__useHeader'
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\specstrings_supp.h(77): warning C4005: '__on_failure': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2876): note: see previous definition of '__on_failure'
  tuple.c
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\sal_supp.h(57): warning C4005: '__useHeader': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2866): note: see previous definition of '__useHeader'
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\specstrings_supp.h(77): warning C4005: '__on_failure': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2876): note: see previous definition of '__on_failure'
  util.c
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\sal_supp.h(57): warning C4005: '__useHeader': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2866): note: see previous definition of '__useHeader'
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\specstrings_supp.h(77): warning C4005: '__on_failure': macro redefinition [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.16.27023\include\sal.h(2876): note: see previous definition of '__on_failure'
src\core\util.c(878): fatal error C1083: Cannot open include file: 'profileapi.h': No such file or directory [C:\Users\user\Desktop\TIC-80.alect\build\janet.vcxproj]

*** Build FAILED -- Please check the error messages ***



[1] I also changed the cmake generator info, using Visual Studio 17 2022 as I only had Visual Studio 2022 installed.

@sogaiu
Copy link

sogaiu commented Aug 2, 2023

It's not pretty, but making the following changes and creating 1 file seems to work here.

First, a diff:

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 72e00446..caf1ef92 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -476,6 +476,8 @@ message("BUILD_WITH_JANET: ${BUILD_WITH_JANET}")

 if(BUILD_WITH_JANET)

+    add_library(janet ${THIRDPARTY_DIR}/janet/build/c/janet.c)
+
     if(MINGW)
         find_program(GIT git)
         get_filename_component(GIT_DIR ${GIT} DIRECTORY)
@@ -491,6 +493,12 @@ if(BUILD_WITH_JANET)
             WORKING_DIRECTORY ${THIRDPARTY_DIR}/janet/
         )
     elseif(WIN32)
+        add_custom_command(TARGET janet
+            PRE_BUILD
+            COMMAND ./copy_janetconf_h.bat
+            WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/build/janet
+        )
+
         add_custom_command(
             OUTPUT ${THIRDPARTY_DIR}/janet/build/c/janet.c
             COMMAND ./build_win.bat
@@ -504,7 +512,6 @@ if(BUILD_WITH_JANET)
         )
     endif()

-    add_library(janet ${THIRDPARTY_DIR}/janet/build/c/janet.c)
     target_include_directories(janet PUBLIC ${THIRDPARTY_DIR}/janet/src/include)
     target_include_directories(janet PUBLIC ${CMAKE_SOURCE_DIR}/build/janet/)
 endif()

Also, create build/janet/copy_janetconf_h.bat with content:

COPY /Y .\janetconf.h ..\..\vendor\janet\src\conf\janetconf.h

The basic idea is to copy janetconf.h into the source tree before the janet bootstrap binary is built -- but only for WIN32.

I tried a variety of ways to accomplish this but my cmake fu is virtually nonexistent and this seemed to work (^^;

@nesbox
Copy link
Owner

nesbox commented Aug 2, 2023

so, I update Janet module separately here cd05d0a

@nesbox nesbox closed this Aug 2, 2023
@AlecTroemel
Copy link
Sponsor Contributor Author

Thank you @nesbox and @sogaiu for finishing this!.. I created this PR then had absolutely zero time to actually follow up on it 😞

@sogaiu
Copy link

sogaiu commented Aug 2, 2023

@nesbox and @AlecTroemel thanks for your efforts!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Can't build latest version on macOS due to Janet issue
3 participants