eslisp icon indicating copy to clipboard operation
eslisp copied to clipboard

Building on Windows

Open anko opened this issue 9 years ago • 8 comments

It has come to my attention that eslisp doesn't build on Windows.

I don't have a Windows machine to test on, but from what I can gather, these are the points of friction, in the form of a todo list:

  • [ ] CI-test it, so users on other platforms also know it works. (Travis doesn't do Windows. Alt: AppVeyor?)
  • [ ] Remove the make dependency. (Alt: Jake? Gulp?)
  • [ ] Some code has file paths fixed to being /-delimited. (Should use path.join.)
  • [x] Explicitly call node <filename> in tests. (Windows doesn't recognise the shebang line. @isiahmeadows' #43 addresses this.)

Anything I've missed? Opinions? Volunteers?

anko avatar Jan 02 '16 18:01 anko

make isn't in issue in itself (it works fine on my machine, though I'd probably prefer a full-js alternative..). The main problem is the incompatible binaries (example in LS, find)

vendethiel avatar Jan 02 '16 22:01 vendethiel

@vendethiel What do you mean by incompatible binaries? Is “LS” LiveScript?

anko avatar Jan 02 '16 23:01 anko

Yes, sorry. this line in particular breaks building on windows.

vendethiel avatar Jan 03 '16 00:01 vendethiel

There's no reason why LiveScript's build process should make this not buildable on Windows. If that's the case, then it's a massive LiveScript bug that I'm shocked was never filed and fixed.

I was looking at the fact make doesn't work well on Windows without Cygwin or the like. I normally use Linux, so it's not an issue for me, but it could be an issue for some. Although, you could use npm scripts alone for this project, because it's simple enough.

And the other issue, that of Windows not understanding the shebang, is already addressed. And if it's based in Node, the directory separator shouldn't matter much, even in commands, because Node normalizes those (i.e. ".\foo" is equivalent to "./foo" on both platforms). And merely using path.resolve instead of path.join should fix it if you're running shell commands. (The rest are almost always normalized by Node.)

On Sat, Jan 2, 2016, 19:46 ven [email protected] wrote:

Yes, sorry. this line in particular https://github.com/gkz/LiveScript/blob/master/Makefile#L3 breaks building on windows.

— Reply to this email directly or view it on GitHub https://github.com/anko/eslisp/issues/44#issuecomment-168447129.

dead-claudia avatar Jan 03 '16 01:01 dead-claudia

No, I just quoted LiveScript's build as an example of something that uses a Makefile but doesn't build on windows.

vendethiel avatar Jan 03 '16 12:01 vendethiel

@anko

  1. AppVeyor sounds fine.
  2. npm would even work. lsc works with directories, and you could use npm run compile and {"scripts": {"compile": "lsc src -cbo dest"}}. The rest should work similarly. (npm scripts are actually executed as shell commands)
  3. That should also be fixed by #43, but I haven't tested it on my Windows installation (which is currently somewhat broken and unusually slow - I run a dual boot, spending 99% of my time in Ubuntu).

dead-claudia avatar Jan 06 '16 09:01 dead-claudia

Hello, I am looking alternate languages for a project my company is doing. Since I like Lisp, but my company is mostly using Windows, I am interested in getting this working.

What should I be focusing on first?

I guess I should try this out on Linux first, so I can see what is going on, and how the normal build process works.

raymond-w-ko avatar Jan 13 '16 00:01 raymond-w-ko

I believe you should already be able to use this on Windows, as the compiled version on npm should work everywhere. The problem this bug is discussing is being able to hack on the compiler itself on Windows. You can still use LiveScript on Windows, even though you can't exactly build the compiler.

On Tue, Jan 12, 2016, 19:35 Raymond W. Ko [email protected] wrote:

Hello, I am looking alternate languages for a project my company is doing. Since I like Lisp, but my company is mostly using Windows, I am interested in getting this working.

What should I be focusing on first?

I guess I should try this out on Linux first, so I can see what is going on, and how the normal build process works.

— Reply to this email directly or view it on GitHub https://github.com/anko/eslisp/issues/44#issuecomment-171111385.

dead-claudia avatar Jan 13 '16 07:01 dead-claudia