anko / eslisp

un-opinionated S-expression syntax and macro system for JavaScript
ISC License
528 stars 31 forks source link

Building on Windows #44

Open anko opened 8 years ago

anko commented 8 years ago

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:

Anything I've missed? Opinions? Volunteers?

vendethiel commented 8 years ago

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)

anko commented 8 years ago

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

vendethiel commented 8 years ago

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

dead-claudia commented 8 years ago

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 notifications@github.com 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.

vendethiel commented 8 years ago

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

dead-claudia commented 8 years ago

@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).
raymond-w-ko commented 8 years ago

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.

dead-claudia commented 8 years ago

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 notifications@github.com 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.