3 ms·
Why LLVM? Aaron's Co-dfns[1] is an APL compiler that compiles to C++ and there's some advantage to doing this. [1]: https://github.com/arcfide/Co-dfns https:/
by geocar 9y ago
Why LLVM?
Aaron's Co-dfns[1] is an APL compiler that compiles to C++ and there's some advantage to doing this.
[1]: https://github.com/arcfide/Co-dfns https://github.com/arcfide/Co-dfns
- throwaway7645 9y agoI think Hsu's Co-dfn compiler compiles to GPU for running very high performance code if you use the parallel co-dfn paradigm. I'm not sure if you have to just use GPUs or if it gives you a native binary you can use for other purposes. The other problem is you have to have Dyalog APL, which ain't cheap. I think a new array language that has a REPL that JITs to LLVM (good for prototyping, debugging, and testing) and AOT compilation to LLVM for scripts would be amazing for sharing code and deployment.
- geocar 9y ago> I think Hsu's Co-dfn compiler compiles to GPU ... [I'm not sure] if it gives you a native binary you can use for other purposes. It compiles to C++. > The other problem is you have to have Dyalog APL, which ain't cheap. Good isn't. However, you can download Dyalog APL for free and use it for noncommercial purposes, including trying it out and personally learning how to build an APL compiler. I think this is pretty clear from the website. > I think a new array language that has a REPL that JITs to LLVM (good for prototyping, debugging, and testing) and AOT compilation to LLVM for scripts would be amazing for sharing code and deployment. Why do you think that? I don't see how LLVM helps with any of that. The hard part of writing an APL compiler is parsing and analysis, and that means finding an algebraic morphism between APL and CPUs (or GPUs) that you can do meaningful things with. It isn't making executables.