I have a fairly involved LispWorks Common Lisp module that sits atop some .NET modules via RDNZL.
It has come up that I need to expose some of its functionality to some other .NET applications, and I'm not sure the best (shortest) way to approach this without re-writing the module in C#. I know there are a few CLR Lisp implementations but most seem unmaintained or incomplete and there are many things that cannot be trivially re-written in Scheme.
Is there any facility that exposes the opposite of what RDNZL enables (.NET -> Common Lisp)? Can I use RDNZL to deliver a DLL that accepts .NET objects?
I'm editing this to include some options that most with an interest in Lisp will likely know about if they're on Windows, and why they don't quite meet the requirements above (or how, like your users, I didn't adequately convey my requirements :).
"It has come up that I need to expose some of its functionality to some other .NET applications"
The following isn't exactly what you're asking for, but if you want to think out of the box for a moment, I think that perhaps using messaging would be easiest (this based entirely on the statement quoted above). Something like ZeroMQ, which has bindings for both Common Lisp as well as .Net. Then it wouldn't be a question of how to rewrite a module to make it .Net compatible, but how to integrate messaging into the module for an independent .Net app to consume it. Both sides of the conversation would have to agree on the messaging format, but in my mind that's easier than the route you consider in your post.
If you have to make it more than one application, perhaps a pub/sub architecture would fit your need.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With