stan-dev / stanc3

The Stan transpiler (from Stan to C++ and beyond).
BSD 3-Clause "New" or "Revised" License
143 stars 47 forks source link

Get static binaries building on Windows #53

Closed seantalts closed 5 years ago

seantalts commented 5 years ago

We have a few options: 1) Cross-compile for windows. Needs this PR for Core_kernel and Menhir to be updated (we need to create an issue for that probably on that repo). 2) Compile natively on Windows under Cygwin. The tricky bit here is that we can't run our test suite on Cygwin because they're windows binaries, and we can't run them under the normal Windows command prompt because (???)

VMatthijs commented 5 years ago

This is the error message I'm currently getting on cygwin when I run the tests:

  $ ../../../../../../install/default/bin/stanc.exe --auto-format GLM0.stan
'..' is not recognized as an internal or external command,
operable program or batch file.
seantalts commented 5 years ago

I think dune is passing us unix paths, which we can write something to convert... I can take a crack at this. Then we have to get Cygwin + Jenkins or Cygwin + AppVeyor set up...

VMatthijs commented 5 years ago

Makes sense to me. I wonder if this could be relevant for us: https://stackoverflow.com/questions/17219262/how-to-make-cygwin-the-default-shell-for-jenkins http://abhijitv.blogspot.com/2015/04/jenkins-on-windows-with-cygwin.html

VMatthijs commented 5 years ago

@seantalts , spent a lot of this morning trying to get Cygwin tests to pass. Eventually gave up and started porting libraries to ocaml-cross-windows. Have ported about 8 of them now and have our project cross compiling and passing all tests on Windows. Am submitting PRs to the ocaml-cross-windows repo for this. One has already been merged. No more Cygwin hell.

One remaining issue is that the inline tests also don't work with cross compilation. (Like on Cygwin.) So we'd only have our test models for Windows.

seantalts commented 5 years ago

Whoa! That's crazy cool. Thank you!!! On Fri, Feb 8, 2019 at 19:29 Matthijs Vákár notifications@github.com wrote:

Spent a lot of this morning trying to get Cygwin tests to pass. Eventually gave up and started porting libraries to ocaml-cross-windows. Have ported about 8 of them now and have our project cross compiling and passing all tests on Windows. Am submitting PRs to the ocaml-cross-windows repo for this. One has already been merged. No more Cygwin hell.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/stan-dev/stanc3/issues/53#issuecomment-461992398, or mute the thread https://github.com/notifications/unsubscribe-auth/AAxJ7GiRUe_g77YDvwtX_6mFSO5QahVYks5vLhZzgaJpZM4apFjp .

-- 📲

VMatthijs commented 5 years ago

This is solved by https://github.com/stan-dev/stanc3/pull/90 .