4 ms·
Looks very cool. Always loved Ruby, but went to other languages for reasons of speed and ... well, lack of the crufty parts. But...the fact that it's been boot
by SomeCallMeTim 11y ago
Looks very cool. Always loved Ruby, but went to other languages for reasons of speed and ... well, lack of the crufty parts.
But...the fact that it's been bootstrapped means that getting it up and running on Windows will be a bit more of a challenge than if it were written in something that can just be built on Windows (C? Go?). I did find this:
https://github.com/manastech/crystal/issues/26 https://github.com/manastech/crystal/issues/26
...but the effort seems to have stalled.
Cross-compilation would fix the bootstrapping problem, and is also important for its own sake; for building code that runs on ARM, for instance (for Android, iOS, etc.).
Looks like neither Windows support or cross-compilation have any advocates on the core team, which is sad.
- asterite 11y agoThere's support for cross-compilation, it's even documented: http://crystal-lang.org/docs/syntax_and_semantics/cross-compilation.html http://crystal-lang.org/docs/syntax_and_semantics/cross-comp... But porting stuff to Windows is far from trivial: there's making LLVM work, there's exception handling, string handling (seems it's UTF-16 rather than UTF-8 in some places), etc. It's definitely on our long-term roadmap, it will just take a lot of time and effort. And ARM is also on our roadmap, hopefully a short/mid term one.
- SomeCallMeTim 11y agoGood to know that cross-compilation is supported at least. LLVM is supported on Windows. [1] Talking to Windows APIs requires UTF-16, but UTF-8 can (and should!) be used in all languages on all platforms internally. It's trivial to add a UTF-8-to-16 conversion step when calling a Windows API (and the other direction on receiving such strings from Windows). [1] http://llvm.org/docs/GettingStartedVS.html http://llvm.org/docs/GettingStartedVS.html