[armedbear-devel] MQTT example using ABCL and Eclipse Paho

Mark Evenson evenson at panix.com
Tue Jun 25 09:25:37 UTC 2013


I think getting constructors to work, even partially, would help everyone.

Sent from my iPad

On Jun 24, 2013, at 19:07, Alessio Stalla <alessiostalla at gmail.com> wrote:

> On Mon, Jun 24, 2013 at 4:50 PM, Frederico Munoz <fsmunoz at gmail.com> wrote:
>> Hi all,
>> 
>> I have written a simple example of using the Eclipse Paho libraries, via
>> ABCL, to send messages in Common Lisp using MQTT. I will not write much
>> more here since it's in the article which contains the code and some
>> other considerations: http://finisterra.motd.org/?p=237
>> 
>> As I note I initially did this in Clojure so - and just like my
>> experiments with Swing before which I sent to the list as well - this is
>> in a way a comparison on how the interop facilities work. My code is not
>> exactly stellar (either the Clojure or the CL one) but it is, I hope,
>> easy enough to understand and follow, especially since I couldn't found
>> any other example out there, which is why I thought the list could have
>> some use for it (even if only for future reference).
> 
> Hi! This is very interesting - both the "how to use Eclipse Paho in
> Lisp" part, and the comparison with Clojure. Thanks for sharing!
> 
>> I stumbled a bit on getting the command-line arguments but that was due
>> to my custom-made abcl script end with $@ instead of "@" - something to
>> watch for :)
>> 
>> I had one problem that I found weird and which I would welcome any help,
>> I'm not sure why the following works:
>> 
>>    CL-USER(3): (#"currentThread" 'Thread)
>>    #<java.lang.Thread Thread[interpreter,5,main] {BD30B16}>
>> 
>> ... but the following doesn't:
>> 
>>    CL-USER(4): (#"sleep" 'Thread 100)
>>    #<THREAD "interpreter" {19AA4D78}>: Debugger invoked on condition of type ERROR
>>      no such method
>>    Restarts:
>>      0: TOP-LEVEL Return to top level.
> 
> I think this is because Thread.sleep takes an argument of type long,
> while 100 is an int, and ABCL isn't smart enough to search for
> applicable methods taking type conversions into account.
> 
>> For another short demo I have I will need to subclass, something used in
>> Swing programming a lot from what I could understand. If I'm not
>> mistaken this isn't currently supported in ABCL, but I will read on it.
> 
> Creating Java classes in Lisp (known as "runtime-class" for historical
> reasons in ABCL) is a partially implemented feature at the moment, and
> documented quite messily (see
> <http://lisp.not.org/trac/armedbear/wiki/JavaFfi/RuntimeClass>; it is
> more of an idea dump than a proper reference). The key missing
> functionality is calling superclass constructors, which renders it not
> useful in a lot of cases. I worked on it a bit a while ago; if you're
> interested, I might start working on it again a bit - adding
> constructors is not a lot of work.
> 
> Cheers,
> Alessio
> 
>> 
>> Best regards,
>> 
>> Frederico
> 
> 
> 
> --
> Some gratuitous spam:
> 
> http://ripple.com Ripple, social credit system
> http://common-lisp.net/project/armedbear ABCL, Common Lisp on the JVM
> http://code.google.com/p/tapulli my Lisp open source projects
> http://www.manydesigns.com/ ManyDesigns Portofino, open source
> model-driven Java web application framework
> 



More information about the armedbear-devel mailing list