-
Notifications
You must be signed in to change notification settings - Fork 195
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
add github workflow for CYGWIN-like platform MSYS2 on Windows #9
base: main
Are you sure you want to change the base?
Conversation
…HANNEL_VERSION_5. Not actually a change, since supported procs are the same. So all internal channels have the same type
…ently) shadowing variable names
…tring is list" & length %2 == 0 to check for a valid dict
…tring is list" & length %2 == 0 to check for a valid dict
…s works for plain 8.6 too
Fix some more warnings, discovered in c20/c++20 mode
* unix/tcl.m4: add 'MSYS_' whenever 'CYGWIN_' * unix/configure: same here.
The env variable MSYSTEM is used in the CYGWIN-like MSYS shell governing the underlying platform type.
The removed code block is generated by the autoconf (2.69) macro AC_ARG_ENABLE. So let's remove it since it works as an idempotent. * unix/tcl.m4: here. * unix/configure: same. * win/tcl.m4: here. * win/configure: same.
The entanglement is unneccessary and rather confusing. * unix/tcl.m4: - remove call of win/configure when builing a shared CYGWIN library * unix/configure: same. * unix/Makefile.in: - remove call of make target 'winextensions' in dir 'win'
* unix/tcl.m4: - use cpp macro condition 'INTPTR_MAX == INT64_MAX' to portably check if platform is 64-bit. * unix/configure: same.
This github workflow is meant to be copied to the windows workflow file. NB: Ignore io-53.4.1 which currently hangs.
There's a "msys2-fixes-v001" branch in fossil now, with your PR. Two changes went right in Tcl now, the additional MSYSTEM environmentvariable, and the MSYS_ prefix in tcl.4: those don't harm any for the other platforms. The entanglement with the "win" directory is only used to build the dde and registry extension. Although those 2 extensions are win32, they work fine with cygwin (and should work fine with msys2 too). Using dde, cygwin Tcl interpreters can communicate with win32 Tcl intepreters, that's usefull. And using registry, cygwin Tcl interpreters and access the Windows registry. I think that's usefull to keep, and is 100% separate from the build in the /unix directory. Automatically determine --enable-64bit is a good idea, but it doesn't work yet together with the 'entaglement' with the "win" directory. Therefore I didn't take it over yet. It's a pity that so many testcases still fail. This shows that msys isn't that compatible with unix (yet). |
Many thanks for looking at that!
Would you be able to provide a pointer to where the tcl package compiles out of the box for CYGWIN including running the test cases? I would be courious to see the logs for config, build and tests.
It could serve as global test to make
Well, that might well be. On the other hand CYGWIN itself applies heavy patches to (cf. references in the first comment)
Again, this is why I would be intrigued to see how the tcl built on CYGWIN compiles (with winextensions) and tests out of the box. Any pointer to such a build for a most recent tcl package version? Many thanks. |
Here's the log when doing a cygwin "make test" for Tcl's unmodified core-8-6-branch (with -skip io-53.4.1, since this testcase fails on Cygwin too) |
Thanks - this is interesting. It looks like that similar tests fail for CYGWIN and MSYS2, so they are not so far apart from each other in this context I believe. Would it be possible to see how the tcl package build was configured, too. Maybe in a Github Action which would be the most transparent way I guess. |
The number of testcases failing on msys2 is now below 100. One of them because of this commit (https://core.tcl-lang.org/tcl/info/921cc1eb98e51b90). The fossil repository (which this GIT repository is a mirror or) now has a "cygwin" branch which contains all official cygwin patches (undoing most of the #ifdef CYGWIN stuff). And there is a "msys2-fixes-v001" branch, which contains the changes from this PR rebased to the "cygwin" branch (so, based on 8.6 too). Most test-failures I see seem to be caused by lack of support for links on Windows. On cygwin it's a little bit better. Thanks for your contribution. B.T.W.: Is fossil ported to msys2? |
This is really good news - congratulations!
I personally would use
This was exactly what I was expecting. The same thing for the sqlite testsuite on MSYS2.
Yes. NB: Call
HTH - thanks again for your work. |
a3659e3
to
b714d26
Compare
2a5ffb4
to
bc4ced9
Compare
335ca95
to
78e6f53
Compare
0616c80
to
39c100c
Compare
This commit series serves the purpose to prepare for and add a github workflow for MSYS(2), a CYGWIN-like environment on Windows. It compiles fine, but reveals many test failures to be fixed.
NB:
win
dir appears to be unneccassary and thus is removed to allow a pureunix
configuration and build for MSYS and CYGWIN.#ifdef __CYGWIN__
branches. I believe that MSYS2 mostly relies on the CYGWIN patch.I hope it is OK that this is a Github PR since this is about a github workflow which should be automatically triggered when opening this PR.