Shen-Language / shen-cl

Shen for Common Lisp (Unmaintained)
BSD 3-Clause "New" or "Revised" License
122 stars 11 forks source link

Add support for travils builds on OSX and Windows #32

Closed tizoc closed 5 years ago

tizoc commented 5 years ago

Do not merge, this is a work in progress, will be doing push -f to this branch.

tizoc commented 5 years ago

OSX build is working now (just for SBCL, disabled everything else).

Two problems I'm facing right now:

vrescobar commented 5 years ago

The command and options I gave you are supposed to run and be completely silent without UI (no output) on a modern laptop it runs just fast enough:

msiexec /i sbcl.msi /qnb

Not sure what could happen at Travis, but If the option “n” is not active a UI will pop up congratulating for the installation and might not finish.

Make sure the file exists (my script downloaded the binary and wrote it with this name) and that the slashes are the right ones. You can try msiexec on Mac and Linux with wine, it didn’t really installed the sbcl but it displayed the help option which was really a good help: msiexec /? also the msiexec options are quite standard, perhaps Travis has some specific help for that issue.

If we cannot figure out why it hangs I will try to check it later at home.

P.S I will try to leave the IRC open, shen channel, in the evenings, perhaps it is easier to communicate. I am at Western European time zone.

tizoc commented 5 years ago

@vrescobar I figured it out, powershell -Command "Start-Process msiexec.exe -Wait -ArgumentList '/i sbcl.msi /qn'" does the trick. Apparently Travis breaks something when executing these commands inside bash, wrapping it all in a powershell call solved it.

tizoc commented 5 years ago

Ok, works now (at least for SBCL, disabled other targets).

@rkoeninger I did something ugly in the Makefile -- I set a variable to know if I'm inside travis+windows, then if thats the case call SBCL in a different way (because if I don't point it to the core file it fails). Does this look good to you or do you have a better approach?

rkoeninger commented 5 years ago

@tizoc You could have an environment variable just for TRAVIS and then conditionally set a new SBCL var in the Makefile to whatever the command prefix needs to be. Kind of like the ShenSBCL and RunSBCL. Not a big difference either way though.

tizoc commented 5 years ago

Ok, I like that more, just updated it.

Releasing binaries will be on a separate PR because more work is needed for that, but what is on this PR is enough to have the SBCL target on Windows and OSX. Note sure about the other Common Lisps, on Windows CLisp is installable with chocolatey, but I'm not sure how to run it (the clisp command is not available), and in OSX the CLisp version fails because of #9, which I don't know how to fix.

tizoc commented 5 years ago

Ok, tried to make CLisp work on Windows but it fails (probably because of the dlls thing), so I give up.

I'm happy with the rest, so will probably merge later today.