Thanks for writing, Nate!
Yikes, I totally missed those MSVS docs--it shows just how large and
comprehensive LLVM has become! Thanks for helping clarify MSVS support!
On Apr 1, 2011, at 2:03 PM, nate fries wrote:
> Hi Andy.
> This should be no problem, as long as you don't use MSVC's headers
inside your scripted code (you should be able to use MinGW's to accomplish
the same effect, and I don't believe there will be any licensing issue).
> You can build LLVM with MSVC, although you will unfortunately need to
download a bunch of GNU tools. For more information:
http://llvm.org/docs/GettingStartedVS.html
>
> --- On Fri, 4/1/11, Andy O'Meara <andrew.omeara at
soundspectrum.com> wrote:
>
> From: Andy O'Meara <andrew.omeara at soundspectrum.com>
> Subject: [LLVMdev] Is LLVM our answer??
> To: llvmdev at cs.uiuc.edu
> Date: Friday, April 1, 2011, 2:36 PM
>
>
> Hey everyone, I'm new to LLVM and am conducting LLVM R&D as CTO for
some new technology in our company products. I've done a basic review of
all the major components and have walked through the Kaleidoscope tutorial in
order to get a feel for LLVM since it seems to address the needs we're
looking to fill. Separately, congrats to all the LLVM developers for making
LLVM grow to be more and more central in Apple's tool chain roadmap!
>
> Anyway, so I was hoping that one or more LLVM gurus here could point me in
the right direction... Our newest products currently use embedded CPython in
chorus with callbacks into our C/C++ engine. Unfortunately, CPython's poor
performance has become an increasing liability while our Python code is
generally basic and could be represented in a more strictly-typed language.
Because our software operates in realtime, performance matters so we're
accessing the viability of converting our python code to vanilla C++ (or
something else) and using LLVM/JIT during runtime to compile and run our code.
The compiled code would be linked with callback glue and be invoked by calling
the entry point (and execution would pass to the newly compiled code,
occasionally returning back to app procs as callbacks occur). In other words,
we're considering migrating the language our content is authored from Python
to C++ (or some other JIT-compatible language) in order to get a major
performan!
> ce boost.
>
> >From what I understand of LLVM, this would seem to be well supported.
That said, our customers are very non-technical, so all the LLVM components
we'd have to use would *have* to live inside our app binary and app resource
dirs (so installing any extra components into the system is would be off
limits). Also, we target both OS X and Windows, but I'm not getting the
feeling there's support for MS Visual Studio. I see minGW support not but
no MSVS support, is that correct? What are the implications of this for a
commercial developer who can't just scrap their MSVS environment for minGW?
>
> So, in short, a list of LLVM subcomponents and tutorials for me to
concentrate on would really help us since the LLVM universe seems so massive to
this newcomer!
>
> If you're curious about what we make that this all relates to, check
out soundspectrum.com and our newest product Aeon. When you run Aeon,
you'll see a slideshow of realtime, high-performance and fun graphics
content. Our engine is 8 years worth of high-performance C++ that drives
Direct3D and OpenGL (depending on the platform) and uses embedded Python to run
scripts that make batch-style drawing calls back into the C++ engine for
execution. The result is rich content authored relatively easily and succinctly
that gets good fps and native quality graphics. But CPython's performance
has been a nightmare, and using LLVM in the way we're hoping would be as
exciting for the LLVM community (I hope!) as it would be for us! I'd love
for SoundSpectrum to show off the awesomeness of LLVM!!
>
> Thanks in advance for your insight and time!
>
> Andy
>
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev