> Clasp is a new Common Lisp implementation that seamlessly interoperates with C++ libraries and programs using LLVM for compilation to native code. This allows Clasp to take advantage of a vast array of preexisting libraries and programs, such as out of the scientific computing ecosystem. Embedding them in a Common Lisp environment allows you to make use of rapid prototyping, incremental development, and other capabilities that make it a powerful language.
you wrote:
> This project uses LLVM's API, which is sadly difficult to utilize outside of C++.
> Clasp exposes the LLVM C++ library within Common Lisp providing a rich, dynamic, programming environment for exploring the LLVM library and for writing new compilers that generate LLVM-IR.
Then you could write the parser/compiler in Lisp, which supports manipulating s-expressions on a simpler level than C++ does.
1) That's an interesting project. Worthy of discussion on its own.
2) "Why isn't it written in Lisp?" It's 42% C++ according to GitHub.
3) Based on a hunch and past experiences, I'm going to ignore any follow ups on this thread.
EDIT: And now I look like a jerk because lispm replaced his terse comment with a fuller comment. My apologies for even engaging in the first place. Should have known better.
I'm just wondering if there isn't already some large infrastructure in the Lisp world, which could have been reused. Something like CLASP was especially written to seamlessly interoperate with LLVM. Sometimes working with an existing system is difficult, but sometimes it can help both projects.
From the CLASP page:
> Clasp is a new Common Lisp implementation that seamlessly interoperates with C++ libraries and programs using LLVM for compilation to native code. This allows Clasp to take advantage of a vast array of preexisting libraries and programs, such as out of the scientific computing ecosystem. Embedding them in a Common Lisp environment allows you to make use of rapid prototyping, incremental development, and other capabilities that make it a powerful language.
you wrote:
> This project uses LLVM's API, which is sadly difficult to utilize outside of C++.
I would guess that you could use LLVM's API via CLASP. The author initially wrote ( https://drmeister.wordpress.com/2014/09/18/announcing-clasp/) :
> Clasp exposes the LLVM C++ library within Common Lisp providing a rich, dynamic, programming environment for exploring the LLVM library and for writing new compilers that generate LLVM-IR.
Then you could write the parser/compiler in Lisp, which supports manipulating s-expressions on a simpler level than C++ does.